diff options
Diffstat (limited to '')
| -rw-r--r-- | kernel/include/boot/gdt.h | 19 | ||||
| -rw-r--r-- | kernel/include/boot/interrupts.h | 26 |
2 files changed, 18 insertions, 27 deletions
diff --git a/kernel/include/boot/gdt.h b/kernel/include/boot/gdt.h index 49067bd..b104db8 100644 --- a/kernel/include/boot/gdt.h +++ b/kernel/include/boot/gdt.h @@ -92,9 +92,6 @@ #define GDT_KERNEL_CODE_OFFSET 0x8 #define GDT_KERNEL_DATA_OFFSET 0x10 -namespace GDT -{ - typedef struct { uint16_t limit_low; uint16_t base_low; @@ -102,18 +99,16 @@ typedef struct { uint8_t access_flags; uint8_t flags_limit_high; uint8_t base_high; -} PACKED entry_t; +} PACKED gdt_entry_t; typedef struct { - uint16_t limit; /* sizeof(GDT) - 1 */ - entry_t *ptr; /* Address of GDT */ -} PACKED descriptor_t; - -extern "C" void _GDT_flush(descriptor_t *descriptor); + uint16_t limit; /* sizeof(GDT) - 1 */ + gdt_entry_t *ptr; /* Address of GDT */ +} PACKED gdt_descriptor_t; -void initialize(void); -void load(void); +void _GDT_flush(gdt_descriptor_t *descriptor); -} +void gdt_initialize(void); +void gdt_load(void); #endif diff --git a/kernel/include/boot/interrupts.h b/kernel/include/boot/interrupts.h index 4df66e9..d436d30 100644 --- a/kernel/include/boot/interrupts.h +++ b/kernel/include/boot/interrupts.h @@ -21,6 +21,7 @@ #include <boot/gdt.h> #include <common.h> +#include <stdbool.h> #include <stdint.h> #define IDT_ENTRY(isr, attributes) \ @@ -36,14 +37,11 @@ #define IDT_PRESENT (1 << 7) #define IDT_KERNEL_PRIVILEGE_LEVEL (0) #define IDT_USER_PRIVILEGE_LEVEL (3 << 5) -#define IDT_TASK_GATE (0b0101) -#define IDT_16BIT_INTERRUPT_GATE (0b0110) -#define IDT_16BIT_TRAP_GATE (0b0111) -#define IDT_32BIT_INTERRUPT_GATE (0b1110) -#define IDT_32BIT_TRAP_GATE (0b1111) - -namespace Interrupts -{ +#define IDT_TASK_GATE (0x05) +#define IDT_16BIT_INTERRUPT_GATE (0x06) +#define IDT_16BIT_TRAP_GATE (0x07) +#define IDT_32BIT_INTERRUPT_GATE (0x0e) +#define IDT_32BIT_TRAP_GATE (0x0f) typedef struct { uint16_t isr_low; @@ -59,16 +57,14 @@ typedef struct { } PACKED descriptor_t; /* Simply loads IDT and enables interrupts */ -void initialize(void); -void enable(void); -void disable(void); +void interrupts_initialize(void); +void interrupts_enable(void); +void interrupts_disable(void); /* IDT */ -void load_idt(void); +void idt_load(void); bool idt_loaded(void); -extern "C" NORETURN void exception_handler(int irq_number); - -} +NORETURN void exception_handler(int irq_number); #endif |
