diff options
Diffstat (limited to 'src/stem/task/idt_.asm')
-rw-r--r-- | src/stem/task/idt_.asm | 155 |
1 files changed, 0 insertions, 155 deletions
diff --git a/src/stem/task/idt_.asm b/src/stem/task/idt_.asm deleted file mode 100644 index 63d1570..0000000 --- a/src/stem/task/idt_.asm +++ /dev/null @@ -1,155 +0,0 @@ -; UNRELATED - -[GLOBAL gdt_flush] - -gdt_flush: - mov eax, [esp+4] - lgdt [eax] - - mov ax, 0x10 - mov ds, ax - mov es, ax - mov fs, ax - mov gs, ax - mov ss, ax - jmp 0x08:.flush - -.flush: - ret - -; RELATED - -[GLOBAL idt_flush] -idt_flush: - mov eax, [esp+4] ; Get the pointer to the IDT, passed as a parameter. - lidt [eax] ; Load the IDT pointer. - ret - -;************************************************************************************ - -%macro COMMONSTUB 1 -[EXTERN idt_%1Handler] -%1_common_stub: - pusha ; Pushes edi,esi,ebp,esp,ebx,edx,ecx,eax - - 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 ds, ax - mov es, ax - mov fs, ax - mov gs, ax - - mov eax, cr3 - push eax - - call idt_%1Handler - - pop eax - mov cr3, eax - - pop eax ; reload the original data segment descriptor - mov ds, ax - mov es, ax - mov fs, ax - mov gs, ax - - popa ; Pops edi,esi,ebp... - add esp, 8 ; Cleans up the pushed error code and pushed ISR number - sti - iret -%endmacro - -COMMONSTUB isr -COMMONSTUB irq -COMMONSTUB syscall - -;************************************************************************************ - -%macro ISR_NOERRCODE 1 ; define a macro, taking one parameter - [GLOBAL isr%1] ; %1 accesses the first parameter. - isr%1: - cli - push byte 0 - push byte %1 - jmp isr_common_stub -%endmacro - -%macro ISR_ERRCODE 1 - [GLOBAL isr%1] - isr%1: - cli - push byte %1 - jmp isr_common_stub -%endmacro - -%macro IRQ 2 - [GLOBAL irq%1] - irq%1: - cli - push byte %1 ;push irq number - push byte %2 ;push int number - jmp irq_common_stub -%endmacro - -%macro SYSCALL 1 - [GLOBAL syscall%1] - syscall%1: - cli - push byte 0 - push byte %1 - jmp syscall_common_stub -%endmacro - -ISR_NOERRCODE 0 -ISR_NOERRCODE 1 -ISR_NOERRCODE 2 -ISR_NOERRCODE 3 -ISR_NOERRCODE 4 -ISR_NOERRCODE 5 -ISR_NOERRCODE 6 -ISR_NOERRCODE 7 -ISR_ERRCODE 8 -ISR_NOERRCODE 9 -ISR_ERRCODE 10 -ISR_ERRCODE 11 -ISR_ERRCODE 12 -ISR_ERRCODE 13 -ISR_ERRCODE 14 -ISR_NOERRCODE 15 -ISR_NOERRCODE 16 -ISR_NOERRCODE 17 -ISR_NOERRCODE 18 -ISR_NOERRCODE 19 -ISR_NOERRCODE 20 -ISR_NOERRCODE 21 -ISR_NOERRCODE 22 -ISR_NOERRCODE 23 -ISR_NOERRCODE 24 -ISR_NOERRCODE 25 -ISR_NOERRCODE 26 -ISR_NOERRCODE 27 -ISR_NOERRCODE 28 -ISR_NOERRCODE 29 -ISR_NOERRCODE 30 -ISR_NOERRCODE 31 - -IRQ 0, 32 -IRQ 1, 33 -IRQ 2, 34 -IRQ 3, 35 -IRQ 4, 36 -IRQ 5, 37 -IRQ 6, 38 -IRQ 7, 39 -IRQ 8, 40 -IRQ 9, 41 -IRQ 10, 42 -IRQ 11, 43 -IRQ 12, 44 -IRQ 13, 45 -IRQ 14, 46 -IRQ 15, 47 - -SYSCALL 64 |