feat(isr): use offset instead of huge struct for handler
This commit is contained in:
parent
f258a08be0
commit
b33bf5aef6
8
k/idt.h
8
k/idt.h
@ -44,14 +44,6 @@ struct idt_r
|
|||||||
// by the isr. We can refactor this by offsetting esp before pushing it.
|
// by the isr. We can refactor this by offsetting esp before pushing it.
|
||||||
struct int_args
|
struct int_args
|
||||||
{
|
{
|
||||||
uint32_t edi;
|
|
||||||
uint32_t esi;
|
|
||||||
uint32_t ebp;
|
|
||||||
uint32_t esp;
|
|
||||||
uint32_t ebx;
|
|
||||||
uint32_t edx;
|
|
||||||
uint32_t ecx;
|
|
||||||
uint32_t eax;
|
|
||||||
uint32_t int_code;
|
uint32_t int_code;
|
||||||
uint32_t err_code;
|
uint32_t err_code;
|
||||||
} __attribute__ ((packed));
|
} __attribute__ ((packed));
|
||||||
|
1
k/isr.S
1
k/isr.S
@ -4,6 +4,7 @@ isr:
|
|||||||
pushal // save registers
|
pushal // save registers
|
||||||
|
|
||||||
pushl %esp
|
pushl %esp
|
||||||
|
add $32, (%esp)
|
||||||
call handle_interrupt
|
call handle_interrupt
|
||||||
|
|
||||||
add $4, %esp
|
add $4, %esp
|
||||||
|
Loading…
Reference in New Issue
Block a user