sys: Implement LAPIC and IOAPIC support, add PS/2 keyboard driver

- Added LAPIC implementation in `apic.c` and `apic.h`, including initialization and basic operations.
- Introduced IOAPIC (I/O Advanced Programmable Interrupt Controller) support in `ioapic.c` and `ioapic.h`, parsing the ACPI MADT to locate IOAPICs and manage redirection entries.
- Implemented PS/2 keyboard driver in `ps2.c` and `ps2.h`, handling keyboard interrupts and translating scancodes to ASCII.
- Attempted to make usermode work again (it failed, coming soon)
- Cleaned up comments in `time.c` and `render.c` for clarity.

Signed-off-by: kaguya <vpshinomiya@protonmail.com>
This commit is contained in:
kaguya
2026-04-24 01:59:33 -04:00
parent 551eb00708
commit 3b6e68bc16
27 changed files with 1009 additions and 504 deletions
+8 -8
View File
@@ -1,12 +1,12 @@
.global _start
.section .text
.global _start
_start:
call main
mov $60, %rax # exit syscall (you define this later)
xor %rdi, %rdi
mov $1, %rax
mov $'H', %rdi
syscall
hang:
jmp hang
mov $1, %rax
mov $'i', %rdi
syscall
1: jmp 1b