Commit Graph

3345 Commits

Author SHA1 Message Date
Bananymous 4b5a8196c3 Kernel: Fix bitmap byte index calculation in PMM
No idea how I had not crashed here earlier, but running on real hw with
a bit initrd ended up crashing :D
2026-01-04 01:16:43 +02:00
Bananymous 706c0816dd Kernel: Move smp_initialized flag after schedulers are initialized
Before this real hardware failed to boot with smp enabled. Allocating
the idle thread does a page mapping which ends up broadcasting TLB
shootdown to other processes. This ends up failing somewhere halting the
processors never allowing them to initialize their scheduler
2026-01-03 23:39:07 +02:00
Bananymous a8aa89362d ports/SDL2: Add support for game controllers
SuperTux and tuxracer now work with controller support!
2026-01-03 20:42:42 +02:00
Bananymous 7964698ae5 userspace: Add simple joystick test app 2026-01-03 20:42:42 +02:00
Bananymous 65664b0d65 Kernel: Add support for DualShock 3 controllers
This driver accepts any HID joystick devices but button and axis
mappings will only work on a PS3 controller
2026-01-03 20:07:08 +02:00
Bananymous 08bfa0971e Kernel: Rework storage device and disk cache locking
Syncing the disk cache no longer blocks the underlying storage device
and the disk cache itself during sync
2026-01-02 18:06:56 +02:00
Bananymous 912c5ea0bf Kernel: Implement basic RWLock 2026-01-02 17:50:22 +02:00
Bananymous 6cdf5a5a7f Kernel: Make AHCI controller thread safe 2026-01-02 17:50:22 +02:00
Bananymous 50ba743faf Terminal: Cleanup CSI handling and add =c,>c,c,E,F 2026-01-02 17:13:46 +02:00
Bananymous e26aac3067 Kernel: Decrease the number of syncs done by ext2 inodes
Each allocated inode used to call sync(). Each sync reads and writes
a block from the filesystem. Doing a 1 MiB write ended up syncing around
257 times
2026-01-01 23:54:09 +02:00
Bananymous 941e8aa5d5 Kernel: Optimize ext2 filesystem
block lookup can now also allocate blocks so there is no need to do
multiple lookups of the block did not exist
2026-01-01 23:15:35 +02:00
Bananymous 33b6536e6b Kernel: Make disk cache entry lookup O(log n)
I have absolutely no idea why i was doing a linear lookup here :D
2026-01-01 20:40:38 +02:00
Bananymous 9fbd9288b2 Kernel: Fix symlink deletion from tmpfs
Small symlinks store their target in inline storage of data block
indices. Freeing blocks did not account for this and tried to interpret
the link target as block inidices to delete
2026-01-01 20:40:38 +02:00
Bananymous bef1a56007 ports: Update git 2.48.1->2.52.0
also remove curl link hack as updating curl port fixed the issue
2026-01-01 20:40:38 +02:00
Bananymous bc71ff5e81 ports: Update curl 8.11.1->8.17.0
This fixes broken DT_NEEDED dependencies in curl!
2026-01-01 20:40:38 +02:00
Bananymous bd50444d06 ports: Update ca-certificates 2024-07-02 -> 2025-12-02 2025-12-31 19:28:55 +02:00
Bananymous 2efd6f92b2 rm: add -f and -i options
rm *should* now be posix compatible
2025-12-31 19:28:55 +02:00
Bananymous 7fdfad4088 Kernel: Mount /tmp with sticky bit set 2025-12-31 19:28:55 +02:00
Bananymous 31a1968798 Kernel: Cleanup scheduling while idling
If there are no threads in the run queue and we are idle, attempt to
wake up threads from the sleep queue
2025-12-31 19:28:55 +02:00
Bananymous b0bd4ad546 Kernel: Fix dup2 return value
We returned the wrong fd number :D
2025-12-31 19:28:55 +02:00
Bananymous dc454b9a6a Kernel: Fix SA_RESETHAND handling order
if SA_RESETHAND was set, alt stack would not get used
2025-12-31 19:28:55 +02:00
Bananymous f06e5d33e7 Kernel: Rework socket binding to an address
Sockets are no longer bound to an interface, but an ipv4 address. This
allows servers at 0.0.0.0 talk to multiple different interfaces
2025-12-31 19:28:55 +02:00
Bananymous efdbd1576f ports/SDL2: disable static lib and enable semaphores
Also add libiconv as a dep so SDL_iconv_string etc works
2025-12-28 15:30:02 +02:00
Bananymous 0421fbdc25 LibC: Implement sem_getvalue 2025-12-28 15:29:37 +02:00
Bananymous bd426199f8 Kernel: Remove unused (and broken) code from signal trampoline 2025-12-28 03:53:38 +02:00
Bananymous 8e00b3d110 ports: Add ffmpeg port
This allows basic video and audio playback on banan-os!
2025-12-28 00:12:03 +02:00
Bananymous 6fbf1469aa LibC: define static_assert in assert.h
This is needed from C11 until C23
2025-12-28 00:12:03 +02:00
Bananymous 280d3fd919 LibC: Fix assert.h include guard 2025-12-28 00:12:03 +02:00
Bananymous 40ce95b87f LibC: Add definition for TCP_MAXSEG
This is not implemented yet
2025-12-27 23:37:03 +02:00
Bananymous e7d644b874 AudioServer: Fix rounding the number of samples when resampling
If client tried to play a single sample at lower frequency as the
kenrel, audio server would never play it leading to the client hanging

This makes calculations round the number of samples always up to fix
this
2025-12-18 16:05:28 +02:00
Bananymous c64159d5c3 AudioServer: Fix resampling math
This caused resampled audio to freeze the whole audio system after few
minutes of playing (like doom)
2025-12-18 14:59:55 +02:00
Bananymous e2ccc3026f BAN: Remove unnecessary c++ header inclusion 2025-12-16 16:44:42 +02:00
Bananymous 2af6066ee3 LibC: Fix sysconf(_SC_OPEN_MAX) 2025-12-16 05:20:18 +02:00
Bananymous fc16b5331c LibC: Fix backtrace compilation
Also dump backtrace on SIGABRT
2025-12-16 05:20:00 +02:00
Bananymous b2723a0c5f aoc2025: Implement day12 solution 2025-12-15 19:06:17 +02:00
Bananymous 01042a24f0 aoc2025: Implement day11 solution 2025-12-15 17:57:45 +02:00
Bananymous f9643b3881 aoc2025: Implement day10 solution 2025-12-15 14:42:03 +02:00
Bananymous d2d18bea5d aoc2025: Implement day9 solution 2025-12-13 03:09:15 +02:00
Bananymous 87e595b83e aoc2025: Implement day8 solution 2025-12-12 22:37:03 +02:00
Bananymous 08031b1227 aoc2025: Implement day7 solution 2025-12-12 21:15:22 +02:00
Bananymous 9a87c1f734 aoc2025: Implement day6 solution 2025-12-12 20:17:12 +02:00
Bananymous edeb667ead aoc2025: Implement day5 solution 2025-12-12 06:30:03 +02:00
Bananymous db2aa495b8 aoc2025: Implement day4 solution 2025-12-12 06:08:00 +02:00
Bananymous ddfb591094 aoc2025: Implement day3 solution 2025-12-12 04:34:40 +02:00
Bananymous e8f1ba3722 aoc2025: Implement day2 solution 2025-12-12 02:49:33 +02:00
Bananymous 19c4f34ccb aoc2025: Implement day1 solution 2025-12-12 02:49:10 +02:00
Bananymous 5d9e9c021a aoc2025: Prepare programming environment 2025-12-12 02:48:40 +02:00
Bananymous 6a924db68c Kernel: Implement FIONREAD for tty and pty 2025-11-24 18:15:10 +02:00
Bananymous 9d0990e5e8 Kernel: Implement /proc/<n>/fd 2025-11-24 00:19:51 +02:00
Bananymous 3207f5d61f Kernel: Fix possible page fault on file lookup 2025-11-23 19:49:07 +02:00