#include <stdint.h>
-#include "idt.h"
+#include "arch/x86/idt.h"
#if defined(__i386__)
__attribute__((noreturn)) void x86_enter_usermode(uintptr_t user_eip, uintptr_t user_esp);
+++ /dev/null
-#ifndef GDT_H
-#define GDT_H
-
-#if defined(__i386__) || defined(__x86_64__)
-#include "arch/x86/gdt.h"
-#else
-
-#include <stdint.h>
-#include <stddef.h>
-
-static inline void gdt_init(void) { }
-static inline void tss_set_kernel_stack(uintptr_t esp0) { (void)esp0; }
-
-#endif
-
-#endif
+++ /dev/null
-#ifndef IDT_H
-#define IDT_H
-
-#include <stdint.h>
-
-#if defined(__i386__) || defined(__x86_64__)
-#include "arch/x86/idt.h"
-#else
-
-/* Non-x86: provide a minimal compatibility surface.
- Interrupt controller specifics live in arch code. */
-struct registers {
- uint32_t int_no;
- uint32_t err_code;
-};
-
-typedef void (*isr_handler_t)(struct registers*);
-
-static inline void idt_init(void) { }
-static inline void register_interrupt_handler(uint8_t n, isr_handler_t handler) {
- (void)n;
- (void)handler;
-}
-
-#endif
-
-#endif
--- /dev/null
+#ifndef INTERRUPTS_H
+#define INTERRUPTS_H
+
+#include <stdint.h>
+
+#if defined(__i386__) || defined(__x86_64__)
+#include "arch/x86/idt.h"
+#else
+
+/* Non-x86: provide a minimal compatibility surface.
+ Interrupt controller specifics live in arch code. */
+struct registers {
+ uint32_t int_no;
+ uint32_t err_code;
+};
+
+typedef void (*isr_handler_t)(struct registers*);
+
+static inline void idt_init(void) { }
+static inline void register_interrupt_handler(uint8_t n, isr_handler_t handler) {
+ (void)n;
+ (void)handler;
+}
+
+#endif
+
+#endif /* INTERRUPTS_H */
#define PROCESS_H
#include <stdint.h>
-#include "idt.h" // For struct registers
+#include "interrupts.h" // For struct registers
#include "fs.h"
#include "signal.h"
#include "kernel/boot_info.h"
-#include "gdt.h"
-#include "idt.h"
+#include "arch/x86/gdt.h"
+#include "arch/x86/idt.h"
#include "uart_console.h"
#include "multiboot2.h"
-#include "gdt.h"
+#include "arch/x86/gdt.h"
#include "uart_console.h"
#include "utils.h"
-#include "idt.h"
+#include "arch/x86/idt.h"
#include "io.h"
#include "uart_console.h"
#include "process.h"
#include "uart_console.h"
#include "utils.h"
#include "arch/x86/usermode.h"
-#include "idt.h"
+#include "arch/x86/idt.h"
#if defined(__i386__)
#include "hal/cpu.h"
-#include "gdt.h"
+#include "arch/x86/gdt.h"
#if defined(__i386__) || defined(__x86_64__)
#include "hal/keyboard.h"
#if defined(__i386__)
-#include "idt.h"
+#include "arch/x86/idt.h"
#include "io.h"
static hal_keyboard_char_cb_t g_cb = 0;
#include "hal/timer.h"
#if defined(__i386__)
-#include "idt.h"
+#include "arch/x86/idt.h"
#include "io.h"
static hal_timer_tick_cb_t g_tick_cb = 0;
#include "uart_console.h"
#include "pmm.h"
#include "vmm.h"
-#include "idt.h"
-#include "io.h"
#include "process.h"
#include "keyboard.h"
#include "shell.h"
#include "syscall.h"
-#include "idt.h"
+#include "interrupts.h"
#include "fs.h"
#include "process.h"
#include "spinlock.h"
#include "uaccess.h"
#include "errno.h"
-#include "idt.h"
+#include "interrupts.h"
#include <stdint.h>