git.cappig.dev / apheleiaOS.git master

3a90cbae7d9ec58ba7a751aee53a6ed670beb75c master
cappig <[email protected]> ยท 4 months ago
Lock abstraction, init ordering fixes, WM cursor

* Add lock.h with generic lock()/unlock() helpers, replace all
  open-coded spinloops in ws, scheduler, exec, pty, tty, input,
  keyboard, mouse, and syscall
* Fix destroy_thread and user_exec to free regions before
  destroying the vm_space, fixing use-after-free on exec
* Separate subsystem state init from devfs registration in ws,
  tty, and input; register_devfs now checks ready instead of
  calling init itself
* Add wm_cursor.c/wm_file.c: load cursor from /etc/cursor.ppm
  and replace the hardcoded 5x5 white square
20 files changed, 597 insertions, 332 deletions
kernel/sched/scheduler.c +12 -27
kernel/sys/exec.c +39 -6
kernel/sys/framebuffer_dev.c +5 -7
kernel/sys/input.c +17 -17
kernel/sys/keyboard.c +29 -23
kernel/sys/lock.h created
kernel/sys/mouse.c +35 -28
kernel/sys/pty.c +30 -18
kernel/sys/syscall.c +23 -33
kernel/sys/tty.c +27 -19
kernel/sys/ws.c +80 -61
root/etc/cursor.ppm created
root/etc/wm.conf +1 -0
user/wm/main.c +64 -15
user/wm/wm_background.c +9 -67
user/wm/wm_cursor.c created
user/wm/wm_cursor.h created
user/wm/wm_file.c created
user/wm/wm_file.h created
user/wm/wm_loop.c +3 -11