summaryrefslogtreecommitdiff
path: root/src/stem/task/idt_.asm
diff options
context:
space:
mode:
Diffstat (limited to 'src/stem/task/idt_.asm')
-rw-r--r--src/stem/task/idt_.asm155
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