summaryrefslogtreecommitdiff
path: root/arch/i386/kernel/idt.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2025-01-12PROJECT RESTRUCTURINGDanny Holman1-149/+0
Move the entire kernel into its own directory. Create new directories for system commands, libraries and other required essentials for a complete Unix-like operating system. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-06-25kernel: interrupt: create a generic interrupt APIDanny Holman1-15/+12
Create a generic interface for drivers to make use of interrupt vectors. This API should be platform-agnostic enough to allow any driver to make use of virtually any interrupt vector on any CPU. On x86, the first 32 interrupts are set aside for CPU exceptions, and interrupt 128 is set aside for system calls. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-05-27arch: i386: update all files to use the new libkDanny Holman1-12/+12
Update all the files under arch to make use of the new libk implementation. Most of these changes are simply path changes in include directives. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-02-24arch: i386: cleanup everything and reorganizeDanny Holman1-26/+16
Clean up everything in the i386 arch directory. This code has been in dire need of refactoring for a long while. All the inline assembly functions and the data structures related to the architecture should be placed into their own header file. Now the scheduler can access registers and ISRs without having to deal with arch-specific code. Signed-off-by: Danny Holman <dholman@gymli.org>
2024-02-16arch: i386: move IRQ functions to PIC driverDanny Holman1-17/+26
Move all the functions that control IRQ lines to the PIC driver. This allows the IDT controller to handle only raw interrupts no matter where they come from. Signed-off-by: Danny Holman <dholman@gymli.org>
2023-11-26arch: i386: idt.c: install the ISR handlersDanny Holman1-47/+62
Actually install the ISR handlers to the IDT. Signed-off-by: Danny Holman <dholman@gymli.org>
2023-11-26arch: i386: idt.c: remove the irq number from handlerDanny Holman1-1/+2
Remove the irq number from the irq handler. This information is already stored in the ISR frame structure. Signed-off-by: Danny Holman <dholman@gymli.org>
2023-11-26arch: i386: idt.c: call the page fault handlerDanny Holman1-3/+1
Call the page fault handler when a page fault occurs instead of just dumping the registers and halting. Signed-off-by: Danny Holman <dholman@gymli.org>
2023-11-26arch: i386: idt.c: add a stopgap to halt_catch_fireDanny Holman1-0/+1
Add a infinite while loop just in case the "hlt" instruction fails. Signed-off-by: Danny Holman <dholman@gymli.org>
2023-11-26arch: i386: idt.c: remove unneeded define macrosDanny Holman1-23/+1
Remove several preprocessor macros that serve no purpose and pollute the source file. Signed-off-by: Danny Holman <dholman@gymli.org>
2022-03-22arch: i386: make serial_writestring inlineDanny Holman1-14/+8
The serial_writestring function is small enough and platform-agnostic, and therefore it should be moved into the main serial header and marked as inline. Signed-off-by: Danny Holman <dholman@gymli.org>
2022-01-15arch: i386: add support for IRQs and system callsDanny Holman1-1/+5
Add support for rudementary system calls and IRQ interrupts. Signed-off-by: Danny Holman <dholman@gymli.org>
2022-01-15arch: i386: simplify IDT setupDanny Holman1-4/+100
Simplify the interrupt descriptor table setup and frame assembly. Signed-off-by: Danny Holman <dholman@gymli.org>
2021-10-09arch: i386: include more information in IDTDanny Holman1-40/+40
Include information about the current stack frame in the IDT handler(s). Signed-off-by: Danny Holman <dholman@gymli.xyz>
2021-09-28arch: i386: fix IDT exception handlerDanny Holman1-33/+49
Fix the i386's general exception handler to actually work. Fix provided by Jon Sanderson (jjs295356@gmail.com). Signed-off-by: Danny Holman <dholman@gymli.xyz>
2021-08-30i386: create idt.c and isr.sDanny Holman1-0/+50
Create files that add IDT support for i386. Signed-off-by: Danny Holman <dholman@gymli.xyz>