git.cappig.dev / apheleiaOS.git master

fe7b6843ae61e6436a3c4758e228d29a2fe3581a master
cappig <[email protected]> ยท 4 months ago
Scheduler, ext2, and ATA perf work, tons of fixes

* Scheduler: replace O(n) sleep scan with min-heap, fix
  pipe-release wake race and COW fault ordering
* ext2: add 64-entry LRU block cache. ATA/AHCI: replace
  busy-wait with IRQ wait queues and dynamic timeouts.
* Console: binary search for glyph lookups. Bitmap allocator:
  next-fit roving pointer with wrap-around.
* Window manager: event-driven redraw with dynamic poll timeouts,
  spinlock instead of IRQ disable, deferred window free
* Bunch of correctness fixes across signals, syscalls, VFS, PTY,
  TTY, exec, terminal rendering.. too many to list
33 files changed, 2067 insertions, 1293 deletions
kernel/arch/x86/ahci.c +88 -72
kernel/arch/x86/ahci.h +2 -1
kernel/arch/x86/ata.c +77 -45
kernel/fs/ext2fs.c +304 -219
kernel/sched/scheduler.c +426 -271
kernel/sched/scheduler.h +8 -1
kernel/sched/signal.c +25 -24
kernel/sys/console.c +76 -5
kernel/sys/devfs.c +17 -17
kernel/sys/disk.c +1 -1
kernel/sys/exec.c +58 -51
kernel/sys/exec.h +7 -1
kernel/sys/psf.c +3 -3
kernel/sys/pty.c +5 -5
kernel/sys/syscall.c +141 -149
kernel/sys/tty.c +14 -16
kernel/sys/tty_input.c +68 -68
kernel/sys/vfs.c +30 -25
kernel/sys/ws.c +187 -82
libs/alloc/bitmap.c +43 -16
libs/alloc/bitmap.h +1 -0
libs/gui/ui.c +55 -0
libs/gui/ui.h +1 -0
libs/libc_usr/stdlib.c +4 -0
root/etc/loader.conf +1 -1
user/init/main.c +1 -76
user/term/main.c +25 -11
user/term/term_pty.c +29 -4
user/term/term_screen.c +187 -33
user/term/term_screen.h +1 -1
user/wm/main.c +30 -23
user/wm/wm_loop.c +101 -31
user/wm/wm_state.c +51 -41