git.cappig.dev / apheleiaOS.git master

e3607741fc2b1414a8f8b68d1f5c232414a6ec47 master
cappig <[email protected]> ยท 1 year ago
Implement APIC & friends, TSC, time.h in libc

* Switch from using the lagacy PIC to the APIC
* Implement the IOAPIC for handling IRQs
* Nicer IRQ handling
* Implement the TSC
* Implement mktime(...) in libc's time.h
* Some other miscellaneous fixes
31 files changed, 764 insertions, 100 deletions
build/toolchain.mk +5 -1
kernel/arch/apic.c created
kernel/arch/apic.h created
kernel/arch/idt.c +12 -15
kernel/arch/idt.h +7 -28
kernel/arch/irq.c created
kernel/arch/irq.h created
kernel/arch/pic.h +3 -0
kernel/arch/pit.c +4 -8
kernel/arch/pit.h +6 -0
kernel/arch/tsc.c created
kernel/arch/tsc.h created
kernel/drivers/acpi.h +12 -1
kernel/drivers/ide.c +7 -7
kernel/drivers/pci.c +4 -3
kernel/drivers/pci.h +0 -1
kernel/drivers/ps2.c +5 -4
kernel/main.c +16 -7
kernel/mem/virtual.h +1 -0
kernel/vfs/driver.h +1 -1
kernel/vfs/pipe.c +3 -3
kernel/vfs/pty.c +1 -1
kernel/video/tty.c +1 -1
libs/libc/sprintf.c +2 -1
libs/libc/sscanf.c +1 -1
libs/libc/stdlib.c +1 -0
libs/libc/time.c +88 -8
libs/libc/time.h +2 -0
libs/term/parser.c +1 -1
libs/x86/asm.h +11 -7
libs/x86/e820.c +1 -1