diff options
| author | Nic Gaffney <gaffney_nic@protonmail.com> | 2024-02-06 04:58:35 -0600 |
|---|---|---|
| committer | Nic Gaffney <gaffney_nic@protonmail.com> | 2024-02-06 04:58:35 -0600 |
| commit | ecf636f2797647d5dfc38a4562cae53fe275217d (patch) | |
| tree | c71d113c553821c2b949eb6a6cd67de5f2fce068 /src/kernel/idt.c | |
| parent | f1dee4bc58e4bfb97a1b41831c5d4fc327882991 (diff) | |
| download | gftos-ecf636f2797647d5dfc38a4562cae53fe275217d.tar.gz | |
Interrupts + basic keyboard driver
Diffstat (limited to 'src/kernel/idt.c')
| -rw-r--r-- | src/kernel/idt.c | 23 |
1 files changed, 0 insertions, 23 deletions
diff --git a/src/kernel/idt.c b/src/kernel/idt.c deleted file mode 100644 index 2805889..0000000 --- a/src/kernel/idt.c +++ /dev/null @@ -1,23 +0,0 @@ -#include "idt.h" -#include "gdt.h" -#include <stdint.h> - -static Gate_Descriptor_t idt[256]; -extern GDTR_t idtr; - -void get_idtr() { - idtr.offset = (uintptr_t)&idt[0]; - idtr.size = sizeof(Gate_Descriptor_t) * 256 - 1; - for (uint8_t vec = 0; vec < 32; vec++) { - make_gate(stub_table[vec], 0x8E, vec); - } -} - -void make_gate(uint32_t offset, uint8_t attrs, uint8_t vec) { - Gate_Descriptor_t *descriptor = &idt[vec]; - - descriptor->offset_low = offset & 0xFFFF; - descriptor->attrs = (0b1000 << 4) | attrs; - descriptor->offset_high = offset >> 16, descriptor->segment_selector = 0x08; - descriptor->reserved = 0; -} |
