git.cappig.dev / apheleiaOS.git master

f0d1fe9e07f1db5a9ee50d70242102dc07b9d9f9 master
cappig <[email protected]> ยท 4 months ago
Stabilize boot/runtime paths and streamline WM/WS + libc

* Consolidate ELF parsing around libs/parse helpers, tighten symbol loading validation, and remove ad-hoc loader-side duplication

* Harden x86 storage and boot plumbing (AHCI/ATA probing, disk/devfs/vfs pathing, and startup sequencing) to reduce runtime regressions

* Improve console/init behavior with early-log replay, synchronous rc handling, and cleaner tty/getty/login bring-up

* Continue WM/WS resize and input cleanup (damage/geometry/cursor/config handling) and fix shell redirection input-open failure

* Apply broad API/style cleanup across libc/libc_usr/userland and kernel interfaces to reduce warnings and simplify call paths
172 files changed, 4648 insertions, 1504 deletions
.clang-format +1 -1
kernel/arch/thread.h +7 -2
kernel/arch/x86/ahci.c +71 -21
kernel/arch/x86/apic.c +23 -7
kernel/arch/x86/arch.c +60 -16
kernel/arch/x86/arch_mm.h +2 -1
kernel/arch/x86/arch_syscall.h +2 -1
kernel/arch/x86/ata.c +48 -20
kernel/arch/x86/boot/bios/disk.c +26 -15
kernel/arch/x86/boot/bios/elf.c +11 -13
kernel/arch/x86/boot/bios/main.c +8 -2
kernel/arch/x86/boot/bios/paging32.c +32 -56
kernel/arch/x86/boot/bios/paging32.h +7 -1
kernel/arch/x86/boot/bios/paging64.c +16 -6
kernel/arch/x86/boot/bios/paging64.h +7 -1
kernel/arch/x86/boot/bios/vesa.c +24 -13
kernel/arch/x86/boot/uefi/efi.h +18 -4
kernel/arch/x86/boot/uefi/main.c +136 -50
kernel/arch/x86/boot/uefi/util.c +79 -21
kernel/arch/x86/boot/uefi/util.h +5 -1
kernel/arch/x86/build/build.mk +20 -4
kernel/arch/x86/console.c +19 -5
kernel/arch/x86/e820.c +21 -29
kernel/arch/x86/e820.h +13 -3
kernel/arch/x86/entry/entry32.asm +2 -1
kernel/arch/x86/gdt.c +30 -28
kernel/arch/x86/idt_stubs32.asm +7 -2
kernel/arch/x86/idt_stubs64.asm +2 -1
kernel/arch/x86/mm/heap.c +22 -7
kernel/arch/x86/mm/phys_window.c +11 -8
kernel/arch/x86/mm/physical.c +11 -3
kernel/arch/x86/mm/virtual.h +15 -2
kernel/arch/x86/mm/virtual32.c +11 -2
kernel/arch/x86/mm/virtual64.c +25 -9
kernel/arch/x86/paging64.h +4 -3
kernel/arch/x86/pci.c +37 -20
kernel/arch/x86/pit.h +1 -1
kernel/arch/x86/ps2.c +2 -1
kernel/arch/x86/serial.c +1 -1
kernel/arch/x86/serial_dev.c +13 -5
kernel/arch/x86/signal.c +6 -1
kernel/arch/x86/stacktrace.c +4 -1
kernel/arch/x86/thread.c +7 -2
kernel/arch/x86/vm.c +7 -2
kernel/build_hybrid_iso_image.py +4 -1
kernel/build_image_common.py +30 -6
kernel/fs/ext2fs.c +249 -61
kernel/main.c +2 -1
kernel/sched/scheduler.c +85 -24
kernel/sched/scheduler.h +13 -3
kernel/sched/signal.c +6 -1
kernel/sys/acpi.c +7 -3
kernel/sys/console.c +146 -49
kernel/sys/console.h +9 -1
kernel/sys/devfs.c +104 -20
kernel/sys/devfs.h +2 -1
kernel/sys/disk.c +47 -17
kernel/sys/disk.h +6 -1
kernel/sys/exec.c +84 -65
kernel/sys/framebuffer_dev.c +66 -15
kernel/sys/keyboard.c +17 -2
kernel/sys/keyboard.h +7 -1
kernel/sys/mouse.c +14 -2
kernel/sys/mouse.h +2 -1
kernel/sys/path.c +41 -4
kernel/sys/pci.c +51 -14
kernel/sys/procfs.c +63 -13
kernel/sys/psf.c +21 -5
kernel/sys/pty.c +75 -20
kernel/sys/pty.h +8 -2
kernel/sys/stats.c +10 -5
kernel/sys/symbols.c +18 -5
kernel/sys/syscall.c +177 -52
kernel/sys/tty.c +70 -20
kernel/sys/tty.h +3 -1
kernel/sys/tty_input.c +44 -14
kernel/sys/vfs.c +55 -17
kernel/sys/vfs.h +47 -9
kernel/sys/ws.c +194 -51
kernel/sys/ws.h +4 -2
libs/alloc/bitmap.c +6 -1
libs/alloc/bitmap.h +4 -2
libs/apheleia/syscall.h +35 -35
libs/arch/x86/sys.h +88 -56
libs/base/utf8.h +13 -5
libs/data/hashmap.c +28 -7
libs/data/hashmap.h +5 -1
libs/data/tree.c +7 -3
libs/data/vector.h +0 -2
libs/gui/draw.c +33 -6
libs/gui/draw.h +21 -3
libs/gui/pixel.h +11 -3
libs/gui/psf.c +6 -1
libs/gui/psf.h +6 -1
libs/gui/ui.c +82 -23
libs/gui/ui.h +14 -4
libs/gui/ws.h +1 -1
libs/input/keymap.h +11 -9
libs/libc/assert.h +7 -2
libs/libc/fcntl.h +7 -7
libs/libc/fenv.h +2 -1
libs/libc/float.h +18 -18
libs/libc/qsort.c +4 -2
libs/libc/signal.h +20 -20
libs/libc/sprintf.c +32 -6
libs/libc/sscanf.c +6 -1
libs/libc/stdio.c +22 -4
libs/libc/stdio.h +35 -12
libs/libc/stdlib.c +2 -1
libs/libc/stdlib.h +6 -1
libs/libc/sys/ioctl.h +13 -13
libs/libc/time.c +23 -8
libs/libc_ext/stdlib.c +2 -3
libs/libc_usr/assert.c +6 -1
libs/libc_usr/dirent.c +3 -1
libs/libc_usr/grp.c +22 -3
libs/libc_usr/grp.h +7 -1
libs/libc_usr/malloc.c +8 -3
libs/libc_usr/mman.c +3 -1
libs/libc_usr/poll.c +3 -3
libs/libc_usr/pwd.c +27 -3
libs/libc_usr/pwd.h +7 -1
libs/libc_usr/shadow.c +20 -3
libs/libc_usr/shadow.h +7 -1
libs/libc_usr/signal.c +6 -2
libs/libc_usr/stat.c +12 -4
libs/libc_usr/stdio.c +7 -2
libs/libc_usr/termios.c +2 -1
libs/libc_usr/time.c +3 -1
libs/libc_usr/unistd.c +45 -13
libs/log/log.c +12 -3
libs/log/log.h +10 -2
libs/parse/elf.c +36 -10
libs/parse/elf.h +61 -5
libs/parse/ppm.c +6 -2
libs/parse/psf.c +7 -1
libs/term/ansi.c +21 -5
libs/term/ansi.h +13 -2
libs/user/fsutil.c +6 -1
libs/user/fsutil.h +6 -1
libs/user/kv.c +6 -1
libs/user/kv.h +6 -1
user/build.mk +3 -1
user/cat/main.c +4 -1
user/chmod/main.c +28 -6
user/fetch/main.c +14 -4
user/login/main.c +3 -1
user/ls/main.c +28 -9
user/mbrot/main.c +12 -2
user/mkdir/main.c +3 -1
user/mv/main.c +6 -1
user/ps/main.c +6 -5
user/rmdir/main.c +3 -1
user/sh/complete.c +89 -20
user/sh/input.c +120 -19
user/sh/input.h +6 -1
user/sh/main.c +103 -32
user/term/main.c +22 -10
user/term/term_pty.c +14 -2
user/term/term_pty.h +14 -2
user/term/term_screen.c +69 -20
user/uptime/main.c +3 -1
user/vi/main.c +26 -4
user/wm/main.c +55 -16
user/wm/wm.h +11 -2
user/wm/wm_background.c +16 -2
user/wm/wm_cursor.c +24 -4
user/wm/wm_file.c +6 -1
user/wm/wm_file.h +6 -1
user/wm/wm_loop.c +149 -46
user/wm/wm_state.c +199 -46
utils/ovmf_fetch.py +3 -1