This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
%macro IRQ 2
|
||||
global irq%1
|
||||
irq%1:
|
||||
cli
|
||||
push byte 0 ; push a dummy error code
|
||||
push byte %2 ; push the IRQ number
|
||||
jmp irq_common_stub
|
||||
%endmacro
|
||||
|
||||
extern irq_handler
|
||||
|
||||
irq_common_stub:
|
||||
pusha ; push all general-purpose registers
|
||||
mov ax, ds ; lower 16-bits of eax = ds
|
||||
push eax ; save the data segment descriptor
|
||||
mov ax, 0x10 ; load the kernel data segment descriptor
|
||||
mov edx, eax
|
||||
call irq_handler
|
||||
|
||||
%assign i 0
|
||||
%rep 8
|
||||
ISR_NOERRCODE i
|
||||
%assign i i+1
|
||||
%endrep
|
||||
|
||||
ISR_NOERRCODE 9
|
||||
Reference in New Issue
Block a user