Bananymous
645150039a
BuildSystem: Add script to package all ports
2026-08-25 15:32:54 +03:00
Bananymous
8a5557f4ae
BuildSystem: Cleanup port install script with packaging
2026-08-25 15:32:54 +03:00
Bananymous
b20a1640b2
ports: Fix packaging of bunch of ports
2026-08-25 15:32:54 +03:00
Bananymous
aca9f459ed
ports: Fix compilation of bunch of ports
2026-08-25 15:32:54 +03:00
Bananymous
ef469ab043
ports: Update python 3.13.3->3.14.7
2026-08-25 15:32:54 +03:00
Bananymous
d2f4137894
ports: Add missing libXxf86vm port
2026-08-25 15:32:54 +03:00
Bananymous
94b2105cd6
LibC: Add duplocale stub
2026-08-25 15:32:54 +03:00
Bananymous
1d618ea39d
ports: Remove circular harfbuzz/freetype/cairo dependency
...
I don't even know why I was rebuilding cairo and freetype can be just
configured with dynamic harfbuzz
2026-08-25 15:32:54 +03:00
Bananymous
c6694f6a28
ports: Create files in /etc/profile.d instead of modifying shellrc
2026-08-25 03:52:52 +03:00
Bananymous
631fec7c4d
init/Shell: init now spawns a login shell which sources /etc/profile
2026-08-25 03:52:52 +03:00
Bananymous
68c741d54d
BuildSystem: Allow packaging ports into xbps packages
...
if you build a package, you can build a port with
`PACKAGE=1 ./build.sh`
2026-08-25 03:52:52 +03:00
Bananymous
f9487b63b0
ports: Add gimp port
2026-08-24 21:53:03 +03:00
Bananymous
1a3dc080e6
ports: Add poppler port
2026-08-24 21:53:03 +03:00
Bananymous
1a227504e2
ports: Add AppStream port
2026-08-24 21:53:03 +03:00
Bananymous
69d8927c12
ports: Add libfyaml port
2026-08-24 21:53:03 +03:00
Bananymous
9b5fd077d2
ports: Add mypaint port
2026-08-24 21:53:03 +03:00
Bananymous
889415b22a
ports: Add gexiv2 port
2026-08-24 21:53:00 +03:00
Bananymous
da94e21dbe
ports: Add gegl port
2026-08-24 21:53:00 +03:00
Bananymous
501783e9ae
ports: Add babl port
2026-08-24 21:53:00 +03:00
Bananymous
f1f2f2aa25
ports: Add lcms2 port
2026-08-24 21:53:00 +03:00
Bananymous
f2d08a85a5
porst: Add json-glib port
2026-08-24 21:52:55 +03:00
Bananymous
44189938d7
ports: Add glib-networking port
2026-08-24 21:01:41 +03:00
Bananymous
c6536260c3
ports: Add librsvg port
...
We use version 2.40.21 as that is the last version that does not need a
rust toolchain
2026-08-24 20:58:21 +03:00
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
Bananymous
1231b16cc3
Kernel: Add mixer support to IHDA
...
This has not been tested as I don't have any hardware with mixers on
output paths :P
2026-08-19 21:32:36 +03:00
Bananymous
6cd3638a85
Kernel: Send set channel count on IHDA
2026-08-19 21:32:36 +03:00
Bananymous
4aead25970
Kernel: Cleanup IHDA volume control and report the actual volume
2026-08-19 21:32:36 +03:00
Bananymous
36b34b0df0
Kernel: Don't store copy of palette in virtual TTY
...
It can be just queried from the terminal driver
2026-08-19 21:32:36 +03:00
Bananymous
bf0bd19289
Kernel: Refactor includes to reduce include dependencies
...
Now modifying Scheduler.h or Thread.h doesnt trigger practically a full
kernel rebuild. This required moving Mutex and RWLock of of line but
that should be fine :^)
2026-08-19 21:32:36 +03:00
Bananymous
8cd9e6dfa8
Kernel: Keep track of thread user and system time separately
2026-08-19 21:32:36 +03:00
Bananymous
f0a114f4e5
Kernel: Fix shm object freeing and track lpid
...
I was deleting based on the key instead of the id which of course does
not work :D
2026-08-19 21:32:36 +03:00
Bananymous
ac99bf128b
LibAudio: Rename AudioLoader -> AudioStream
2026-08-19 21:32:36 +03:00
Bananymous
2c66de888f
BuildSystem: Add option to generate an ISO file
...
This creates ISO file with compressed initrd and grub files that can be
live booted easily
2026-08-19 21:32:36 +03:00
Bananymous
8f4db57ed8
WindowServer: Mark old window area as damaged on resize
2026-08-17 04:58:35 +03:00
Bananymous
b6f922895f
AudioServer: Queue more than 4k bytes per write
...
Before this I was writing audio data to kernel in ~20 ms chuncks. This
feels like way too many syscalls, so now we allow sending upto 1 second
per syscall :D
2026-08-17 04:44:15 +03:00
Bananymous
7aa8eb1778
Kernel: Use 64 bit write on HPET on x86_64
2026-08-17 04:33:20 +03:00
Bananymous
1128e440d2
Kernel: Fix typos and fix power button status clear
2026-08-17 04:32:26 +03:00
Bananymous
ac052fe1c1
Kernel: Program missing entries from redirection entries
...
This wasnt an issue but could be in the future
2026-08-17 04:23:04 +03:00
Bananymous
c915c064e8
BuildSystem: Compile cross gcc with optimizations
...
I guess because I now pass explicit CXXFLAGS, gcc did not add the
default optimization flags
2026-08-11 18:26:06 +03:00
Bananymous
895c586736
LibC: Add uchar.h
...
This was added in POSIX issue 8 and some ports end up with very weird
compile errors if this does not exist :D
2026-08-08 05:43:34 +03:00
Bananymous
04b8f9d7a3
LibC: Fix stdc++ requirement in getpagesize
2026-08-08 03:44:27 +03:00
Bananymous
6e99eed541
WindowServer: Cleanup damaged areas
2026-08-08 01:53:07 +03:00
Bananymous
fc40820150
Kernel/Userspace: Replace my custom SHM system with SysV shm
...
This allows xbanan to use shm!
2026-08-08 01:52:12 +03:00
Bananymous
2c4fee4a82
Kernel: Expose Inode::can_access as static member
2026-08-08 01:41:48 +03:00
Bananymous
2be915a1df
ports: Update xbanan
2026-08-08 01:30:09 +03:00
Bananymous
1a8351eae0
LibC: Cache page size in getpagesize
2026-08-05 05:41:31 +03:00
Bananymous
328771ae29
Kernel: Fix AC97 issues
...
Set last entry bit on the last entry :D
Verify that allocated DMA buffer fits in a 32 bit integer
2026-07-20 11:30:06 +03:00
Bananymous
0b53fba991
Kernel: Fix PCI PIN interrupt allocation and handling
...
We now use the correct PIN interrupt from the interrupt line field
instead of writing to it, this had no effect :D
PIN interrupts are now mapped as shared and level triggered, this
properly allows PIN interrupt sharing with multiple devices
2026-07-20 10:45:32 +03:00
Bananymous
0d390e2246
Kernel: Send EOI after handling the interrupt
...
There is no need to send it prior to handling. This required us to not
yield from HPET/PIT irq so that the EOI actually gets sent
2026-07-20 10:43:50 +03:00
Bananymous
a3b7a758eb
Kernel: Allow allocating shared interrupts and setting trigger mode
2026-07-20 10:28:18 +03:00
Bananymous
d46d7a5123
Kernel: Cleanup entering acpi mode
...
There is no need to pass the current mode as an argument as ACPI has
access to that info either way.
Only route INTx objects when using ACPI, they won't be used otherwise
2026-07-20 09:02:18 +03:00