ac6e6f3ec1
Kernel: Add ioctl to sync rectangular areas in framebuffer
...
msync is not really the best API for framebuffer synchronization
2026-04-11 08:29:10 +03:00
2f9b8b6fc9
Kernel/LibC: Rework userspace syscall interface
...
Kernel syscall API no longer zeros all unused argument registers and
libc now uses inlined syscall macro internally. This significantly
cleans up generated code for basic syscall wrapper functions.
2026-04-11 03:30:52 +03:00
80c4213501
LibC: Make errno macro directly access uthread
...
This allows inlining errno usages
This breaks libc ABI and requires toolchain rebuild
2026-04-11 03:30:32 +03:00
e0af23a924
LibC: Move uthread definition to its own header
...
Use `__asm__` instead of `asm` to allow compilation with --std=c99 and
before
2026-04-11 03:30:32 +03:00
7fb27b16e8
LibC: Fix pthread cancellation
...
Install SIGCANCEL handler for all threads.
Remove unneeded atomic stores and loads. States are only changed within
the thread itself.
Define pthread_testcancel as a macro so it gets inlined inside
cancellation points
2026-04-07 03:41:25 +03:00
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
db0507e670
LibC: Mark pthread_exit noreturn
2026-04-05 11:30:45 +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
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
5647cf24d2
Kernel: Implement volume control to audio drivers
2026-04-02 15:14:27 +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
14f1c1a358
LibC: Implement vsyslog
2026-03-23 19:13:38 +02:00
b0db645248
LibC: Add basic elf.h
2026-03-17 20:25:38 +02:00
c1a424a635
Kernel: Implement linux's eventfd
2026-03-17 20:24:06 +02:00
1f22b9b982
DynamicLinker: Implement RTLD_NOLOAD
2026-03-17 20:04:48 +02:00
1d07d8e08e
LibC/DynamicLoader: Add support for dynamically loaded TLS
...
Previously I failed to dlopen if any of the objects contained TLS
section
2026-03-17 20:01:51 +02:00
8fac88c9a6
LibC: Add sincos{,f,l}
2026-03-17 19:42:53 +02:00
b3bbfaeff0
LibC: Fix posix_spawnattr_t definition
2026-02-10 01:22:25 +02:00
2e59373a1e
Kernel: Fix non blocking sockets blocking :D
2026-02-08 19:33:28 +02:00
c304133224
LibC: Indicate regex support in unistd.h
2026-01-25 01:47:30 +02:00
7843d3de62
LibC: Support attrs and file actions in posix spawn
...
Apparently GCC wants to use posix_spawn now that it is available, this
patch adds support for the missing fields. POSIX Issue 8 did add some
fields that are not supported here
2026-01-25 01:45:47 +02:00
0299d4d44e
Kernel/LibC: remove SYS_TERMID
...
This syscall is not needed. /dev/tty is already a symlink to the
controlling terminal. Also this syscall did not handle pseudo terminals
2026-01-16 15:57:36 +02:00
24d91eee90
Kernel/LibInput: Rework Joystick handling
...
Joystick axis and buttons are now named to standard values, this allows
interfacing multiple different controllers (only DS3 is supported)
Add ioctl calls for userspace to set joystick player leds and rumble
Only use DS3 code paths when we detect that the attached device is
actually an DS3 controller
update test-joystick program to the new interface and add support to
control rumble and player leds
2026-01-07 19:01:07 +02:00
8f1b314802
Kernel: Add ioctls to select audio device's output pin
2026-01-06 22:26:11 +02:00
3e19c3b62e
LibC: Fix timeradd and timersub overflow/underflow
2026-01-06 21:58:56 +02:00
d970debb4d
LibC: Define MAXPATHLEN in sys/param.h
...
This file is not POSIX, but some software seems to rely on it
2026-01-06 21:58:56 +02:00
d0ba52073f
LibC: Add stubs for shm_* functions
2026-01-06 21:58:56 +02:00
943e3b6f51
LibC: Define IN_CLASS* macros
...
These are not POSIX but some software seems to rely on them
2026-01-06 21:58:56 +02:00
25d43682aa
LibC: Bump FOPEN_MAX 16->64
2026-01-06 21:58:56 +02:00
6fbf1469aa
LibC: define static_assert in assert.h
...
This is needed from C11 until C23
2025-12-28 00:12:03 +02:00
280d3fd919
LibC: Fix assert.h include guard
2025-12-28 00:12:03 +02:00
40ce95b87f
LibC: Add definition for TCP_MAXSEG
...
This is not implemented yet
2025-12-27 23:37:03 +02:00
4ec8f4a4bf
Kernel/LibC: Implement rename{,at}
2025-11-22 23:55:10 +02:00
d60f12d3b8
Kernel: Add support for SCM_CREDENTIALS and fix recvmsg
...
recvmsg was broken when receiving into more than a single iovec
2025-11-18 05:40:36 +02:00
160a9278c9
LibC: Fix RTLD_* definitions
2025-11-17 05:26:07 +02:00
ee507de154
LibC: Implement posix regex
...
This is an almost complete implementation, it does not support
alternations or collating elements and it is restricted to the ASCII
character set
2025-11-17 05:26:07 +02:00
dd636ffcb2
Kernel: Add support for SA_SIGINFO
2025-11-17 05:26:07 +02:00
a44c45ff9e
LibC: Cleanup signal.h
...
Make sa_handler and sa_sigaction be part of an union
Add definitions of SIGIO TRAP_BRKPT TRAP_TRACE
2025-11-17 05:26:07 +02:00
6facd54a7e
LibC: Add ru_maxrss to struct rusage
...
This is not required by posix but some ports use it
2025-11-17 05:26:07 +02:00
c1e2c660bf
LibC: Define caddr_t
...
This is used by some ports
2025-11-13 04:20:53 +02:00
89c0ff1a9d
Kernel/LibC: Replace SYS_{GET,SET}_TLS with SYS_{SET,GET}_{FS,GS}BASE
...
This allows userspace to use both registers
2025-11-13 04:20:53 +02:00
f1d12c330e
Kernel/LibC: Implement MMAP_FIXED_NOREPLACE
...
This is a handy thing from linux
Also fix MMAP_FIXED validation and error reporting
2025-11-12 00:06:36 +02:00
3a951f4830
LibC: Define IN_LOOPBACKNET
...
some ports expect this to exist
2025-11-12 00:06:36 +02:00
998ea25fb9
LibC: Add netinet/in_systm.h compatibility header
2025-11-12 00:06:36 +02:00
641ccfdd47
LibC: Add BSD compatibility defines S_I{READ,WRITE,EXEC}
...
These just map to S_I{R,W,X}USR respectively
2025-11-10 01:40:33 +02:00