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