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
4288f70d04
LibC: Make poll and epoll macros match with each other
...
This was an assertion in one of my ports and I couldn't be bothered to
write a patch for it :D
2025-11-10 01:40:33 +02:00
95fda5dfb7
LibC: Add definitions for IPPROTO_ICMPV6 and IP_TOS
2025-11-10 01:40:33 +02:00
04d24bce70
Kernel/LibC: Implement {recv,send}msg as syscalls
...
This also removes the now old recvfrom and sendto syscalls. These are
now implemented as wrappers around recvmsg and sendmsg.
Also replace unnecessary spinlocks from unix socket with mutexes
2025-11-10 01:40:33 +02:00
2f38306c6b
LibC: Implement simple posix_spawn{,p}
...
This does not support file_actions or attributes
2025-11-10 01:40:33 +02:00
4b36e5197d
LibC: Implement execvpe
...
This is not part of posix but it seems handy
2025-11-09 16:12:29 +02:00
3acad7c911
LibC: Add ifreq.ifr_{flags,mtu} and fix defines
...
compatibility defines for ifr_{netmask,gwaddr,hwaddr} were wrong
2025-11-07 14:55:30 +02:00
e258fde25a
LibC: Implement unnamed semaphores
2025-11-02 21:11:16 +02:00
b822d42889
LibC: Define ESHUTDOWN
...
This is not used but some ports expect it to exist
2025-11-02 21:09:48 +02:00
10084ff1bb
LibC: Define FIONBIO
...
This doesn't do anything but some ports expect it to exist
2025-11-02 21:07:26 +02:00
c3c69ac727
LibC: Update _POSIX_* definitions and extern environ
...
environ is externed by other operating systems so some ports expect it
to be there
2025-10-30 16:49:12 +02:00
aa0de2b00e
LibC: Fix stack_t::ss_sp type from void** -> void*
2025-10-30 15:43:25 +02:00
c89780178f
LibC: Add sys/polls.h as wrapper for poll.h
...
some ports require this
2025-10-02 16:02:07 +03:00
791a541381
Kernel: Implement process stopping and continuing
2025-08-31 00:34:52 +03:00
fb61cab70d
LibC: Rewrite pthread_mutex using a futex
2025-08-21 02:52:49 +03:00
0dfe0b7023
Kernel/LibC: Implement sigaltstack
2025-08-21 02:52:49 +03:00
def236b7cd
Kernel/LibC: Implement sigwait
2025-08-20 20:16:19 +03:00
247743ef9c
Kernel/LibC: Implement sigsuspend
2025-08-20 20:14:54 +03:00
8b26b6604d
LibC: Make mbstate_t into int
...
This is not used, but makes more sense than an empty struct
2025-08-19 16:29:46 +03:00
9d6656451a
LibC: Make time_t signed integer
...
Some port like python3 assumes this is the case
2025-08-19 16:23:30 +03:00
36cb3d56fe
LibC: Define Dl_info_t and add stub for dladdr
2025-08-19 16:23:30 +03:00
9b09d2b47a
LibC: Update struct tm to be POSIX issue 8 compliant
2025-08-11 18:59:20 +03:00
1a6c5deb4b
LibC: Add {AF,PF}_LOCAL as aliases to {AF,PF}_UNIX
2025-08-11 18:48:24 +03:00
45a73b00de
LibC: Make glob_t a typedef
2025-08-11 18:47:55 +03:00
59fff26a5f
LibC: Remove our iconv.h header and add libiconv port
...
If I ever end up writing my own iconv, i will drop the port :D
2025-08-11 18:46:15 +03:00
fde4d4662e
LibC: Implement getopt_long{,_only}
...
Few ports attempt to use this so lets add them :D
2025-08-11 18:36:46 +03:00
ef6ee78fd1
Kernel/LibC: Implement chroot
2025-08-11 14:07:37 +03:00
af0bca74e4
Kernel/LibC: Implement {get,set,init}groups
...
This allows dropping /etc/group parsing from the kernel :D
2025-08-10 19:57:31 +03:00
5b587d199e
Kernel/LibC: Implement FIONREAD for tcp and udp sockets
2025-08-10 19:57:31 +03:00
009b073892
LibC: Add IN6_IS_ADDR_* and IN_MULTICAST macros
...
These are assumed to exist by some ports
2025-08-10 19:57:31 +03:00
92e962430b
LibC: Make sockaddr and sockaddr_in compatible with other systems
...
sockaddr:
make sa_data is 14 bytes on all systems
sockaddr_in:
add sin_zero
2025-08-10 19:57:31 +03:00
e3ecf05866
LibC: Add stubs for {get,free}ifaddrs
...
These are needed for our libuv port
2025-08-07 02:50:24 +03:00
c593d3ed75
LibC: Add missing libintl.h
2025-08-05 17:10:43 +03:00
2e2ee11452
LibC: Add more reasonable values to stack size constants
2025-08-05 03:32:59 +03:00
ce0df333b3
LibC: Make sa_data in sock_addr zero sized
2025-08-05 03:32:59 +03:00
f1369c8fd6
Kernel/LibC: Implement mprotect
...
There may be some race conditions with this but i think this is good
enough to start with
2025-08-05 03:09:24 +03:00
eb7922ab88
LibC: Implement pthread_cond_* using a futex
2025-08-05 03:09:24 +03:00
5940e912b3
Kernel/LibC: Implement simple futex
2025-08-05 03:09:24 +03:00
658a001d91
LibC: Make pthread_barrier safe
...
It used to deadlock and it was not safe if more threads than the target
were attempting to wait on it.
2025-08-05 03:09:24 +03:00
fa7b58057c
LibC: Add MAP_ANON as synonym for MAP_ANONYMOUS
...
This is part of POSIX issue 8 and some things only check MAP_ANON
2025-08-05 03:09:24 +03:00
4a95343936
LibC: Make _get_uthread a macro
...
This allows nice inlining :)
2025-08-05 03:09:24 +03:00
8c598a6902
LibC: Include stdint.h instead of inttypes.h in network headers
2025-08-05 03:09:24 +03:00