diff options
Diffstat (limited to 'kernel/include')
| -rw-r--r-- | kernel/include/irq_handler.h | 3 | ||||
| -rw-r--r-- | kernel/include/paging.h | 2 | ||||
| -rw-r--r-- | kernel/include/panic.h | 2 | ||||
| -rw-r--r-- | kernel/include/regs.h | 27 | ||||
| -rw-r--r-- | kernel/include/timer.h | 2 |
5 files changed, 31 insertions, 5 deletions
diff --git a/kernel/include/irq_handler.h b/kernel/include/irq_handler.h index 571d1ab..01f4950 100644 --- a/kernel/include/irq_handler.h +++ b/kernel/include/irq_handler.h @@ -3,8 +3,7 @@ #include <types.h> -void isr_def_handler(uint64_t number, uint64_t error); void eoi(uint64_t number); -void irq_def_handler(uint64_t number); +void isr_def_handler(uint64_t number, uint64_t rsp, uint64_t error); #endif diff --git a/kernel/include/paging.h b/kernel/include/paging.h index 4aaf6af..65c9652 100644 --- a/kernel/include/paging.h +++ b/kernel/include/paging.h @@ -12,7 +12,7 @@ void load_pt_lvl4(uint64_t *); void init_paging(void); void map_addr(uint64_t virt, uint64_t phys, uint32_t flags); -void page_fault(uint64_t error); +void page_fault(uint64_t rsp, uint64_t error); extern uint64_t __attribute__((aligned(4096))) page_table_lvl4[512]; extern uint64_t __attribute__((aligned(4096))) page_table_lvl3[512]; diff --git a/kernel/include/panic.h b/kernel/include/panic.h index 4949c77..9fb3f4f 100644 --- a/kernel/include/panic.h +++ b/kernel/include/panic.h @@ -5,6 +5,6 @@ extern uint64_t panic_rsp; -__attribute__((noreturn)) void panic(const char *error, ...); +__attribute__((noreturn)) void panic(uint64_t rsp, const char *s, ...); #endif diff --git a/kernel/include/regs.h b/kernel/include/regs.h new file mode 100644 index 0000000..81b8a69 --- /dev/null +++ b/kernel/include/regs.h @@ -0,0 +1,27 @@ +#ifndef REGS_H +#define REGS_H + +#define R15_OFF 0x0 +#define R14_OFF 0x08 +#define R13_OFF 0x10 +#define R12_OFF 0x18 +#define RBP_OFF 0x20 +#define RBX_OFF 0x28 +#define SEG_OFF 0x30 +#define R11_OFF 0x38 +#define R10_OFF 0x40 +#define R9_OFF 0x48 +#define R8_OFF 0x50 +#define RDI_OFF 0x58 +#define RSI_OFF 0x60 +#define RDX_OFF 0x68 +#define RCX_OFF 0x70 +#define RAX_OFF 0x78 +#define ERROR_OFF 0x80 +#define RIP_OFF 0x88 +#define CS_OFF 0x90 +#define RFLAGS_OFF 0x98 +#define RSP_OFF 0x100 +#define SS_OFF 0x108 + +#endif diff --git a/kernel/include/timer.h b/kernel/include/timer.h index 3ddef4d..899f09f 100644 --- a/kernel/include/timer.h +++ b/kernel/include/timer.h @@ -5,7 +5,7 @@ #define TICKS_PER_SECOND 1000 -void timer_handler(void); +void timer_handler(uint64_t rsp); void wait(uint64_t ms); void init_timer(uint32_t frequency); |
