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.hpp49
1 files changed, 24 insertions, 25 deletions
diff --git a/arch/x86_64/include/arch/cpu/interrupts.hpp b/arch/x86_64/include/arch/cpu/interrupts.hpp
index 8f156a4..b9adb6e 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;
};
@@ -109,9 +111,6 @@ namespace arch::cpu
auto static read() -> interrupt_descriptor_table_register;
};
- auto enable_interrupts() -> void;
- auto disable_interrupts() -> void;
-
} // namespace arch::cpu
#endif \ No newline at end of file