syscall.hpp 354 B

123456789101112131415161718
  1. #pragma once
  2. #include <types/types.h>
  3. #include <kernel/interrupt.h>
  4. struct PACKED syscall_stack_data {
  5. struct regs_32 s_regs;
  6. void* v_eip;
  7. uint32_t cs;
  8. uint32_t eflags;
  9. uint32_t esp;
  10. uint32_t ss;
  11. };
  12. // return value is stored in %eax and %edx
  13. typedef void (*syscall_handler)(syscall_stack_data* data);
  14. void init_syscall(void);