git.cappig.dev / apheleiaOS.git master

a6ecc7f995e1607ca5d1c9d239cf8fbfab4e416c master
cappig <[email protected]> ยท 4 months ago
Userspace malloc, WM overhaul, framebuffer pixel format support

* Implement userspace malloc backed by mmap arenas with realloc,
  replace static buffers with dynamic allocation across userspace
* Use vector for WM window storage, add wallpaper support with
  PPM parser and /etc/wm.conf
* Proper pixel format handling (shift+size) in console, present
  path, and boot (UEFI GOP + VESA channel layout)
* Fix terminal deferred line wrap breaking vi cursor positioning
* Fix mmap base selection skipping COW-split stack regions
35 files changed, 1429 insertions, 180 deletions
kernel/arch/x86/arch.c +20 -3
kernel/arch/x86/boot.h +7 -3
kernel/arch/x86/boot/bios/vesa.c +12 -6
kernel/arch/x86/boot/uefi/util.c +108 -3
kernel/arch/x86/console.c +12 -0
kernel/build_bios_disk_image.py +1 -1
kernel/build_hybrid_disk_image.py +1 -1
kernel/build_hybrid_iso_image.py +1 -1
kernel/sys/console.c +33 -19
kernel/sys/console.h +6 -0
kernel/sys/framebuffer.h +6 -3
kernel/sys/framebuffer_dev.c +38 -5
kernel/sys/syscall.c +7 -7
libs/gui/pixel.h created
libs/libc/stdlib.h +1 -0
libs/libc/string.c +0 -2
libs/libc_usr/malloc.c created
libs/libc_usr/stdio.c +26 -6
libs/parse/ppm.c created
libs/parse/ppm.h created
root/etc/wm.conf created
root/home/user/wall.ppm created
user/build.mk +5 -3
user/mbrot/main.c +1 -1
user/sh/complete.c +12 -3
user/sh/input.c +6 -6
user/sh/main.c +18 -6
user/term/term_screen.c +9 -5
user/vi/main.c +49 -13
user/wm/main.c +178 -4
user/wm/wm.h +2 -1
user/wm/wm_background.c created
user/wm/wm_background.h created
user/wm/wm_loop.c +18 -16
user/wm/wm_state.c +109 -62