From 73a33c23a421a58bc42061fd23a8cc405fcca104 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Lov=C3=A9n?= Date: Wed, 14 Feb 2018 08:30:58 +0100 Subject: [PATCH] Clean up header file for interrupts --- src/kernel/cpu/interrupts.c | 27 ++++++++++++++++++++++++--- src/kernel/cpu/interrupts.tt | 3 --- src/kernel/include/interrupts.h | 24 ------------------------ 3 files changed, 24 insertions(+), 30 deletions(-) diff --git a/src/kernel/cpu/interrupts.c b/src/kernel/cpu/interrupts.c index d159a70..467876a 100644 --- a/src/kernel/cpu/interrupts.c +++ b/src/kernel/cpu/interrupts.c @@ -2,11 +2,32 @@ #include #include #include +#include + +#define IDT_INTERRUPT 0xE +#define IDT_DPL0 0x0 +#define IDT_PRESENT 0x80 + +#define NUM_INTERRUPTS 256 + +struct idt +{ + uint16_t base_l; + uint16_t cs; + uint8_t ist; + uint8_t flags; + uint16_t base_m; + uint32_t base_h; + uint32_t ignored; +} __attribute__((packed)) idt[NUM_INTERRUPTS]; + +struct +{ + uint16_t len; + struct idt *addr; +} __attribute__((packed)) idtr; -struct int_gate_descriptor idt[NUM_INTERRUPTS]; -struct idtr idtr; extern uintptr_t isr_table[]; - int_handler_t int_handlers[NUM_INTERRUPTS]; void idt_set_gate(uint32_t num, uintptr_t vector, uint16_t cs, uint8_t ist, uint8_t flags) diff --git a/src/kernel/cpu/interrupts.tt b/src/kernel/cpu/interrupts.tt index 8944702..17f5fbd 100644 --- a/src/kernel/cpu/interrupts.tt +++ b/src/kernel/cpu/interrupts.tt @@ -1,8 +1,5 @@ // vim: ft=c #include -#include -#undef debug -#define debug(...) #include "interrupts.c" uintptr_t isr_table[] ={}; diff --git a/src/kernel/include/interrupts.h b/src/kernel/include/interrupts.h index 01ab576..f227a04 100644 --- a/src/kernel/include/interrupts.h +++ b/src/kernel/include/interrupts.h @@ -1,29 +1,5 @@ #pragma once #include -#include - -#define IDT_INTERRUPT 0xE -#define IDT_DPL0 0x0 -#define IDT_PRESENT 0x80 - -#define NUM_INTERRUPTS 256 - -struct int_gate_descriptor -{ - uint16_t base_l; - uint16_t cs; - uint8_t ist; - uint8_t flags; - uint16_t base_m; - uint32_t base_h; - uint32_t ignored; -} __attribute__((packed)); - -struct idtr -{ - uint16_t len; - struct int_gate_descriptor *addr; -} __attribute__((packed)); typedef struct {