From b14f83f53dfb1f4bf1b5eeb8162891a9aeeaff1c Mon Sep 17 00:00:00 2001 From: Xander Date: Fri, 7 Jul 2023 16:07:49 +0200 Subject: Default interrupts --- kernel/interrupts/idt.sats | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'kernel/interrupts/idt.sats') diff --git a/kernel/interrupts/idt.sats b/kernel/interrupts/idt.sats index d8391aa..ce40cd8 100644 --- a/kernel/interrupts/idt.sats +++ b/kernel/interrupts/idt.sats @@ -1,20 +1,21 @@ - #define TRAP_GATE_FLAGS 0x8F // p=1, dpl=0b00, type=0b1111 +#define +INT_GATE_FLAGS 0x8E // p=1, dpl=0b00, type=0b1110 typedef idt_entry_t = @{ isr_low = uint16, // The lower 16 bits of the ISR's address kernel_cs = uint16, // The GDT segment selector that the CPU will load into CS before calling the ISR - ist = uint8, // The IST in the TSS that the CPU will load into RSP; set to zero for now + ist = uint8 0, // The IST in the TSS that the CPU will load into RSP; set to zero for now attributes = uint8, // Type and attributes; see the IDT page isr_mid = uint16, // The higher 16 bits of the lower 32 bits of the ISR's address isr_high = uint32, // The higher 32 bits of the ISR's address - reserved = uint32 // Set to zero + reserved = uint32 0 // Set to zero } typedef idtr_t = @{ limit = uint16, - base = uint64 + base = [l : addr] ptr l } // Interrupt frame to pass to ISR -- cgit v1.2.3