summaryrefslogtreecommitdiff
path: root/stage3/interrupts.c
diff options
context:
space:
mode:
authorLizzy Fleckenstein <lizzy@vlhl.dev>2023-12-15 16:10:22 +0100
committerLizzy Fleckenstein <lizzy@vlhl.dev>2023-12-15 16:11:38 +0100
commit2298d17186cb0e58a96d285384de431902da9b1e (patch)
tree635d642931d9f55e701639ee3b3707e0e28a805e /stage3/interrupts.c
parent8a25a2935a60e65fcb3e2b715bada858f5fcd6a2 (diff)
downloadcuddles-2298d17186cb0e58a96d285384de431902da9b1e.tar.xz
big chungus
* fix a heap corruption bug * add qemu support * add an ATA driver * add an USTAR read-only file system * boot from disk instead of floppy * font rendering * image rendering * PCI enumeration * init script
Diffstat (limited to 'stage3/interrupts.c')
-rw-r--r--stage3/interrupts.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/stage3/interrupts.c b/stage3/interrupts.c
index e7b819e..71f953f 100644
--- a/stage3/interrupts.c
+++ b/stage3/interrupts.c
@@ -102,6 +102,13 @@ void interrupt_handler(interrupt_frame *frame)
}
}
+typedef struct {
+ u16 size;
+ u64 addr;
+} __attribute__((packed)) idt_descriptor;
+
+idt_descriptor idtr;
+
void init_interrupts()
{
typedef struct {
@@ -139,12 +146,7 @@ void init_interrupts()
};
}
- typedef struct {
- u16 size;
- u64 addr;
- } __attribute__((packed)) idt_descriptor;
-
- idt_descriptor idtr = {
+ idtr = (idt_descriptor) {
.size = 256 * sizeof *idt - 1,
.addr = (u64) &idt[0],
};