Commit Graph
3975 Commits
Author SHA1 Message Date
Bananymous d22ff2cbc4 ports: Add libcroco port 2026-08-24 20:58:09 +03:00
Bananymous 48d8902e98 ports/glib: Add init script to compile schemas 2026-08-24 20:57:27 +03:00
Bananymous b4349511f4 ports/gdk-pixbuf: Add init script to update pixbuf loader cache
If the loader cache is not updated, pixbuf fails to load anything :)
2026-08-24 20:56:25 +03:00
Bananymous b42b16add7 ports/sdl2-compat: Use -f when linking pc files 2026-08-24 20:55:30 +03:00
Bananymous 8fd18eef4d ports/harfbuzz: Don't compile cairo if its not compiled 2026-08-24 20:54:12 +03:00
Bananymous 1e7afa11d7 ports/ffmpeg: Don't compile static libraries 2026-08-24 20:53:11 +03:00
Bananymous 1cfcd76588 init: Run all scripts from /etc/init.d at startup 2026-08-24 20:37:45 +03:00
Bananymous 179f76114b init: Generate /etc/machine-id if it doesn't exist 2026-08-24 19:18:31 +03:00
Bananymous 65e559596b LibC: Add sys/random.h with getrandom 2026-08-24 19:16:37 +03:00
Bananymous 98c11ee33b Kernel: Support non-null-terminated paths in sockaddr_un 2026-08-24 17:37:34 +03:00
Bananymous 2f4fec9ab9 ports: Update shared-mime-info 2.4->2.5.1
2.4 failed to build spec on my machine and did not support disabling it
2026-08-24 03:55:19 +03:00
Bananymous a38e29c59d audio: Passing number to audio now generates a sinwave at that freq 2026-08-24 01:44:37 +03:00
Bananymous c6a435ed36 LibAudio: Allow generating sine waves 2026-08-24 01:44:04 +03:00
Bananymous 2e22ebf0b5 LibC: Cleanup TSC clock_gettime control flow 2026-08-24 01:37:05 +03:00
Bananymous cd6269d406 Kernel: Add very simple BGA driver
Only thing this is currently helpful is qemu when booting with -kernel
flag as that does not provide framebuffer info in multiboot headers
2026-08-24 01:35:06 +03:00
Bananymous 9a9a4fe8c0 Kernel: Don't allow creating zero sized shm objects 2026-08-23 15:51:01 +03:00
Bananymous f163dacce5 Kernel: Safely fail allocating zero sized BAR regions
Our device discovery thinks vmware's audio device is AC97 and allocating
one of the BARs leads to zero sized allocation -> panic from page table
as it tries to allocate 0 pages. Now we gracefully handle these regions
and fail to allocate the BAR
2026-08-23 15:44:12 +03:00
Bananymous 7e7ca3d929 Kernel: Add support for iHDA Selectors
Again this has not been tested as I don't have any hardware with
Selector on an usable output path. My T61 does have Selectors but they
are not used for the internal speakers. The T61 does have mixers though
so they seem to be working fine!
2026-08-23 15:20:41 +03:00
Bananymous c00f37b930 Kernel: Evaluate and validate PS/2 _CRS
Don't assume it is a buffer. On bochs it is a method :D
2026-08-23 15:08:01 +03:00
Bananymous ace5edfda2 Kernel: "Recognize" USB wireless controllers
Apparently USB device descriptor is allowed to have class
WirelessController if and only if it is a bluetooth controller(?) :D Now
we print ENOTSUP instead of EINVAL when encountering these
2026-08-23 14:21:42 +03:00
Bananymous 17813f3fcf Kernel: Store SchedulerThreadNode directly in Thread
Having the pointer indirection was weird and forced allocations when
adding/binding a new thread :P
2026-08-23 14:21:27 +03:00
Bananymous cce6e417df Kernel: Remove obsolete SpinLockGuardAsMutex declaration 2026-08-23 14:21:27 +03:00
Bananymous 8eb572d038 Kernel: Add reads/write to System CMOS to AML 2026-08-23 14:21:27 +03:00
Bananymous cee65bd68e Kernel: Fix ACPI Embedded Controllers
I was polling the wrong bit in read/write which lead to dead locks on
machines that used embedded controllers :D

Also EC GPEs are now only initialized AFTER the ACPI post initialization
is done. This fixes some issues where _GPE body was not fully available
yet
2026-08-23 14:21:27 +03:00
Bananymous 74d7a48c4b Kernel: Make TTY write lock a spinlock
I don't really like this but its needed with the current architecture to
allow printing while interrupts are disabled. I was hitting a dead lock
on few real machines
2026-08-23 14:21:27 +03:00
Bananymous 315d8895a7 WindowServer: Start TaskBar and Terminal after starting up
This removes the race condition from `start-gui` not starting
WindowServer fast enough and leading to the apps crashing as they
timeout while connecting to the server
2026-08-22 16:05:54 +03:00
Bananymous 4e9cfdde97 Kernel: Fix 32 bit target compilation
banos is written with only 64 bit in mind so it has to be disabled
2026-08-22 15:33:49 +03:00
Bananymous 645b6d772d Userspace: Use BAN::Math instead of builtins 2026-08-22 14:45:23 +03:00
Bananymous ae24fb1dd0 Kernel: Use BAN::Math::{ctz,popcount} instead of builtins 2026-08-22 14:39:42 +03:00
Bananymous fe64639842 Kernel/LibC: Make ino_t 32 bit integer
32 bit target could not use atomic ino_t when it was 32 bit. There isn't
really any reason to have 64 bit ino_t as there aren't really
filesystems with that large numbers :D
2026-08-22 14:39:42 +03:00
Bananymous db9beac740 BAN: Add math functions for clz, ctz, popcount 2026-08-22 14:39:42 +03:00
Bananymous 471b6a6c40 Kernel: Replace __atomic builtins with BAN::atomic wrappers 2026-08-22 13:28:56 +03:00
Bananymous fe2b130915 Kernel: Fix __cxa_guard_* implementations 2026-08-22 13:27:25 +03:00
Bananymous 67fdd24a19 Kernel: Prefer 32 bit HPET timers on 32 bit target 2026-08-22 13:23:43 +03:00
Bananymous 0d6b32dc3c Kernel: Fix HPET validation 2026-08-22 13:23:43 +03:00
Bananymous ffceb300db Kernel: Cleanup xHCI debug printing 2026-08-22 11:57:19 +03:00
Bananymous b818e2764c Kernel: Only update USB max packet size for FS devices 2026-08-22 11:57:19 +03:00
Bananymous 4b7d90f939 Kernel: Ignore SET_PROTOCOL(1) errors on HID devices
One of my USB mice is a boot protocol device but stalls on SET_PROTOCOL
request. USB HID is supposed to be in report protocol on initialization
so an error *should* not be an issue
2026-08-22 11:57:19 +03:00
Bananymous 6a7c1c1281 Kernel: Reset xHCI control endpoint on command stall 2026-08-22 11:57:19 +03:00
Bananymous fdbfda189f Kernel: Map non-us hashtag to backspace on HID keyboards
Apparently one of my laptops advertise this key as non-us hashtag
instead of backslash while the key layout is the exact same as my other
keyboards :D
2026-08-22 11:57:19 +03:00
Bananymous e496d889ba Kernel: Deduplicate USB keyboard input code 2026-08-22 11:57:19 +03:00
Bananymous 9967878886 Kernel: Handle array usages for consumer page
Also map consumer page mute button in variable case
2026-08-22 11:57:19 +03:00
Bananymous 51badd75f0 Kernel: Move HID led handling from keyboard to usb device
Apparently some keyboards can have led control on another interface from
the one where input is received. Now led mask is global to the usb
devices instead of per keyboard instance.
2026-08-22 11:57:19 +03:00
Bananymous f6e841e623 Kernel: Don't reset iHDA stream after running out of samples
We can just stop the stream :D This also broke restarting the stream on
some hardware when ig you need to reprogram the DAC after resetting
stream(?)
2026-08-22 11:57:19 +03:00
Bananymous 28bd9cf353 Kernel: Fix PS/2 scancode set detection logic
If we cannot determine current scancode set because either the keyboard
does not respond or responds with bogus value, assume scancode set 1 and
mark the scancode set as uncertain. If we receive the byte 0xF0 while
having the uncertain flag set, swap to scancode set 2. 0xF0 is unused in
scancode set 1 but indicates key release in scancode set 2, so it will
be sent after every key press.
2026-08-22 11:57:19 +03:00
Bananymous 892829adeb Kernel: Fix PS/2 device detection
If we cannot find PS/2 devices in the acpi namespace check 8042 bit in
FADT. Also if user explicitly specified PS/2 scancode set, assume that
we do have a PS/2 controller even when other detection mechanisms fail
2026-08-22 11:57:19 +03:00
Bananymous 82fd57af9e Kernel: Use local labels in assembly 2026-08-22 11:57:19 +03:00
Bananymous 2f25bfb2db Kernel: Use min heap for scheduler block list
This makes insertion to block list O(log n) instead of O(n) when
blocking with wake time. This is more heavy and currently slower than
the previous implementation, but that is just because we don't really
have too many threads running at any given time. This will be more
scalable in the future and even allows implementing priorities if I ever
wish so
2026-08-19 21:32:36 +03:00
Bananymous 7f12e5aaf3 Kernel: Report actual hw volume from AC97 2026-08-19 21:32:36 +03:00
Bananymous 78e40ca353 AudioServer: Add software volume control 2026-08-19 21:32:36 +03:00