34b59f062b
LibC: Implement blocking pthread_rwlock
...
pthread_rwlock now uses a mutex and condition variable internally so it
doesn't need to yield while waiting!
2026-04-06 19:29:34 +03:00
ec4aa8d0b6
LibC: Fix shared pthread_barrier init
...
Initialize internal lock and cond as shared when the barrier is shared
2026-04-05 12:06:18 +03:00
1eebe85071
LibC: Fix pthread_cond_timedwait
...
If timeout occurred, I was not removing the entry from block list
2026-04-05 11:31:16 +03:00
db0507e670
LibC: Mark pthread_exit noreturn
2026-04-05 11:30:45 +03:00
1e3ca7dc18
Kernel: Fix signal related syscalls
...
There were missing locks, out of order sigprocmask, incorrect signal
masking...
2026-04-05 02:31:30 +03:00
8ca3c5d778
Kernel: Clean up signal handling
...
We now appreciate sa_mask and SA_NODEFER and change the signal mask for
the duration of signal handler. This is done by making a sigprocmask
syscall at the end of the signal handler. Back-to-back signals will
still grow stack as original registers are popped AFTER the block mask
is updated. I guess this is why linux has sigreturn(?).
2026-04-05 02:25:59 +03:00
df257755f7
Kernel: If userspace sets fs or gs, dont overwrite it
...
Current cpu index is stored at either segment. If userspace sets that
segment, kernel will not overwrite it on every reschedule. This is fine
as long as user program does not use anything that relies on it :)
2026-04-04 23:48:43 +03:00
d7e292a9f8
Kernel: Drop 32 bit userspace stack to 4 MiB
...
32 bit userspace only has 256 MiB reserved for stacks, so with 32 MiB
stacks it only allowed total of 7 threads. Now we can have up to 62
threads
2026-04-04 23:48:43 +03:00
9fce114e8e
Kernel: Don't clone entire kernel stack on fork
...
We only need to copy area between [ret_sp, stack_end]. This range is
always very small compared to the whole stack (64 KiB).
2026-04-04 23:48:43 +03:00
9d83424346
Kernel: Remove unnecessary stack pointer loading
...
Any time I started a thread I was loading the stack pointer which is
already correctly passed :D
2026-04-04 23:48:43 +03:00
a29681a524
Kernel: Fix signal generation
...
We need to have interrupts enabled when signal kills the process as
process does mutex locking. Also signals are now only checked when
returning to userspace in the same place where userspace segments are
loaded.
2026-04-04 23:48:43 +03:00
47d85eb281
Kernel: Pass the actual vaddr range to reserve pages
2026-04-04 23:48:43 +03:00
85f676c30a
DynamicLoader: Calulate max loaded file count based on dtv size
...
dtv should be dynamic but i dont care right now :)
2026-04-04 23:48:43 +03:00
8c5fa1c0b8
DynamicLoader: Fix R_386_PC32 relocation
...
I was not accounting elf base with offset
2026-04-04 23:48:43 +03:00
c7690053ae
LibC: Don't crash on 32 bit pthread_create
2026-04-04 23:48:43 +03:00
3f55be638d
Kernel: Allow reserve_free_page{,s} to fail
...
Apparently I was asserting here before :D
2026-04-04 23:48:43 +03:00
664c824bc0
Kernel: Keep fast page always reserved
...
There was a bug where 32 bit target's reserve_free_page was allocating
the fast page address
2026-04-04 23:48:43 +03:00
e239d9ca55
ports/SDL2: Use 48 kHz floats instead of 44.1 kHz PCM16
2026-04-03 16:17:16 +03:00
bf1d9662d7
LibAudio: Use floats instead of doubles for samples
2026-04-03 16:15:02 +03:00
675c215e6a
Kernel: Add CoW support to MemoryBackedRegion
...
This speeds up fork by A LOT. Forking WindowServer took ~90 ms before
this and now its ~5 ms.
2026-04-03 01:54:59 +03:00
c09bca56f9
Kernel: Add fast write perm remove to page tables
2026-04-03 01:54:22 +03:00
7d8f7753d5
Kernel: Cleanup and fix page tables and better TLB shootdown
2026-04-03 01:53:30 +03:00
f77aa65dc5
Kernel: Cleanup accessing userspace memory
...
Instead of doing page validiation and loading manually we just do simple
memcpy and handle the possible page faults
2026-04-02 16:36:33 +03:00
9589b5984d
Kernel: Move USERSPACE_END to lower half
...
This allows calculating distance to USERSPACE_END from lower half
address
2026-04-02 16:34:47 +03:00
32806a5af3
LibC: Allow "t" in stdio mode
2026-04-02 15:44:50 +03:00
876fbe3d7c
LibC: Fix sem_{,timed}wait
2026-04-02 15:43:34 +03:00
c1b8f5e475
LibC: Add and cleanup network definitions
2026-04-02 15:42:00 +03:00
cf31ea9cbe
LibC: Add _SC_PHYS_PAGES and _SC_AVPHYS_PAGES
2026-04-02 15:41:26 +03:00
7e6b8c93b4
LibC: Implement strsep
2026-04-02 15:40:23 +03:00
dd2bbe4588
LibC: Implement sched_getcpu
2026-04-02 15:39:36 +03:00
e01e35713b
LibC: Allow including assert.h multiple times
...
Some shit seems to depend on this
2026-04-02 15:38:06 +03:00
82d5d9ba58
LibC: Write memchr, memcmp and strlen with sse
2026-04-02 15:35:03 +03:00
d168492462
WindowServer: bind volume up/down to volume control
2026-04-02 15:24:02 +03:00
6f2e8320a9
TaskBar: Show current volume level
2026-04-02 15:22:42 +03:00
bf4831f468
AudioServer: Add support for volume control
2026-04-02 15:21:38 +03:00
5647cf24d2
Kernel: Implement volume control to audio drivers
2026-04-02 15:14:27 +03:00
85f61aded5
BAN: Use builtins for math overflow
2026-04-02 14:49:12 +03:00
21639071c2
kill: Allow killing with process name
2026-04-02 05:02:05 +03:00
68506a789a
Kernel: Add support for volume control keys
2026-04-02 05:02:05 +03:00
d9ca25b796
LibC: Add FNM_CASEFOLD and FNM_IGNORECASE
...
These are part of POSIX issue 8
2026-03-25 04:27:00 +02:00
e9c81477d7
BAN/LibC: Implement remainder
...
This is basically just fmod but with fprem1 instead of fprem
2026-03-25 01:06:45 +02:00
5c20d5e291
Kernel: HDAudio hide unusable pins and cleanup path finding
2026-03-24 01:16:47 +02:00
f89d690716
Kernel: HDAudio only probe codecs in STATESTS
...
This removes unnecessary probing that lead to timeouts. Also cap codec
address at 14 instead of 15. My test laptop was duplicating codec 0 at
address 15 leading to duplicate devices.
2026-03-24 00:49:47 +02:00
c563efcd1c
AudioServer: Query pins of the asked device and not the current one
2026-03-23 22:57:49 +02:00
dedeebbfbe
Kernel: Use ByteRingBuffer with audio buffers
2026-03-23 22:12:40 +02:00
35e2a70de0
AudioServer: Handle client data before disconnecting clients
2026-03-23 20:41:13 +02:00
81d5c86a7a
WindowServer: Automatically launch xbanan if installed
2026-03-23 19:39:08 +02:00
db6644bae9
BuildSystem: Set glib-compile- binaries in meson cross file
2026-03-23 19:34:00 +02:00
14f1c1a358
LibC: Implement vsyslog
2026-03-23 19:13:38 +02:00
5be9bc64a2
ports/libxml2: Configure with -shared-libgcc
...
otherwise it doesn't seem to find libiconv due to __divdc3
2026-03-23 19:09:33 +02:00