git.cappig.dev / apheleiaOS.git master

5f32c194a6ec6ccad259b6964f845a0e48f14816 master
cappig <[email protected]> ยท 3 months ago
Simplify WS event flow and tighten runtime plumbing

* Rework the WS window, framebuffer, and input-event paths around simpler queue management, cleaner wakeups, safer resize and teardown handling, and clearer devfs ownership flow.

* Move vector growth policy into libs/data/vector, add direct size/capacity/resize helpers, and align list/UI helpers with the simpler container behavior.

* Tighten scheduler, signal, lock, and syscall internals across the modularized scheduler tree to keep ownership, wait, and state transitions consistent.

* Refresh supporting arch/runtime and userland integration points, including x86 serial and framebuffer glue plus Doom, clock, and libc time updates for the revised WS and scheduler paths.
37 files changed, 1287 insertions, 671 deletions
README.md +2 -0
aos.png created
aos.ppm created
kernel/arch/arch.h +1 -0
kernel/arch/x86/arch.c +48 -1
kernel/arch/x86/drivers/serial.c +4 -0
kernel/drivers/framebuffer.c +2 -0
kernel/sched/scheduler.c +5 -4
kernel/sched/scheduler.h +5 -3
kernel/sched/scheduler_context.c +1 -0
kernel/sched/scheduler_create.c +9 -2
kernel/sched/scheduler_internal.h +74 -68
kernel/sched/scheduler_mem.c +11 -0
kernel/sched/scheduler_pick.c +5 -1
kernel/sched/scheduler_query.c +29 -16
kernel/sched/scheduler_runqueue.c +14 -0
kernel/sched/scheduler_select.c +18 -6
kernel/sched/scheduler_state.c +106 -6
kernel/sched/scheduler_thread.c +11 -9
kernel/sched/scheduler_tick.c +42 -24
kernel/sched/scheduler_wait.c +93 -22
kernel/sched/scheduler_waitq.c +38 -24
kernel/sched/signal.c +13 -10
kernel/sys/devfs.c +5 -0
kernel/sys/lock.c +12 -2
kernel/sys/lock.h +4 -30
kernel/sys/syscall.c +71 -82
kernel/sys/ws.c +509 -253
kernel/sys/ws.h +33 -0
libs/apheleia/syscall.h +1 -0
libs/data/list.c +2 -1
libs/data/vector.c +75 -3
libs/data/vector.h +4 -0
libs/gui/ui.c +7 -1
libs/libc_usr/time.c +20 -98
userland/games/doom/doom_apheleia.c +13 -2
userland/tools/clock/main.c +0 -3