aboutsummaryrefslogtreecommitdiff
path: root/arch/x86_64/include
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86_64/include')
-rw-r--r--arch/x86_64/include/arch/cpu/interrupts.hpp46
1 files changed, 24 insertions, 22 deletions
diff --git a/arch/x86_64/include/arch/cpu/interrupts.hpp b/arch/x86_64/include/arch/cpu/interrupts.hpp
index 8f156a4..08ecd9c 100644
--- a/arch/x86_64/include/arch/cpu/interrupts.hpp
+++ b/arch/x86_64/include/arch/cpu/interrupts.hpp
@@ -1,6 +1,8 @@
#ifndef TEACHOS_X86_64_CPU_INTERRUPTS_HPP
#define TEACHOS_X86_64_CPU_INTERRUPTS_HPP
+#include "kapi/memory.hpp"
+
#include "arch/cpu/segment_selector.hpp"
#include <array>
@@ -57,36 +59,36 @@ namespace arch::cpu
{
struct
{
- std::uint64_t r15;
- std::uint64_t r14;
- std::uint64_t r13;
- std::uint64_t r12;
- std::uint64_t r11;
- std::uint64_t r10;
- std::uint64_t r9;
- std::uint64_t r8;
- std::uint64_t rdi;
- std::uint64_t rsi;
- std::uint64_t rbp;
- std::uint64_t rdx;
- std::uint64_t rcx;
- std::uint64_t rbx;
- std::uint64_t rax;
+ std::uint64_t r15{};
+ std::uint64_t r14{};
+ std::uint64_t r13{};
+ std::uint64_t r12{};
+ std::uint64_t r11{};
+ std::uint64_t r10{};
+ std::uint64_t r9{};
+ std::uint64_t r8{};
+ std::uint64_t rdi{};
+ std::uint64_t rsi{};
+ std::uint64_t rbp{};
+ std::uint64_t rdx{};
+ std::uint64_t rcx{};
+ std::uint64_t rbx{};
+ std::uint64_t rax{};
} handler_saved;
struct
{
- std::uint64_t number;
- std::uint64_t error_code;
+ std::uint64_t number{};
+ std::uint64_t error_code{};
} interrupt;
struct
{
- std::uint64_t rip;
- std::uint64_t cs;
- std::uint64_t rflags;
- std::uint64_t rsp;
- std::uint64_t ss;
+ kapi::memory::linear_address rip{};
+ std::uint64_t cs{};
+ std::uint64_t rflags{};
+ kapi::memory::linear_address rsp{};
+ std::uint64_t ss{};
} cpu_saved;
};