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/interrupt_handling/generic_interrupt_handler.hpp20
1 files changed, 14 insertions, 6 deletions
diff --git a/arch/x86_64/include/arch/interrupt_handling/generic_interrupt_handler.hpp b/arch/x86_64/include/arch/interrupt_handling/generic_interrupt_handler.hpp
index 6c1db12..309acbb 100644
--- a/arch/x86_64/include/arch/interrupt_handling/generic_interrupt_handler.hpp
+++ b/arch/x86_64/include/arch/interrupt_handling/generic_interrupt_handler.hpp
@@ -13,12 +13,12 @@ namespace teachos::arch::interrupt_handling
*/
struct [[gnu::packed]] interrupt_frame
{
- uint64_t error_code; ///< Error code pushed by some exceptions.
- uint64_t ip; ///< Instruction pointer at the time of the interrupt.
- uint64_t cs; ///< Code segment selector indicating privilege level.
- uint64_t flags; ///< CPU flags (RFLAGS) storing processor state.
- uint64_t sp; ///< Stack pointer at the time of the interrupt.
- uint64_t ss; ///< Stack segment selector, usually unused in 64-bit mode.
+ // uint64_t error_code; ///< Error code pushed by some exceptions.
+ uint64_t ip; ///< Instruction pointer at the time of the interrupt.
+ uint64_t cs; ///< Code segment selector indicating privilege level.
+ uint64_t flags; ///< CPU flags (RFLAGS) storing processor state.
+ uint64_t sp; ///< Stack pointer at the time of the interrupt.
+ uint64_t ss; ///< Stack segment selector, usually unused in 64-bit mode.
};
/**
@@ -29,6 +29,14 @@ namespace teachos::arch::interrupt_handling
[[gnu::interrupt]]
auto generic_interrupt_handler(struct interrupt_frame * frame) -> void;
+ /**
+ * @brief Interrupt handler function for syscalls (INT 0x80).
+ *
+ * @param frame Pointer to the interrupt frame containing CPU state.
+ */
+ [[gnu::interrupt]]
+ auto syscall_interrupt_handler(struct interrupt_frame * frame) -> void;
+
} // namespace teachos::arch::interrupt_handling
#endif // TEACHOS_ARCH_X86_64_INTERRUPT_HANDLING_GENERIC_INTERRUPT_HANDLER_HPP