Bananymous
160a9278c9
LibC: Fix RTLD_* definitions
2025-11-17 05:26:07 +02:00
Bananymous
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
Bananymous
9803209ba1
WindowServer: Make clients nonblock
...
Also dont allow freezed windows to "steal" focus and lock up the window
server :D
2025-11-17 05:26:07 +02:00
Bananymous
2bf7c67767
LibC: Add backtrace signal handlers for SIG{FPE,ILL,BUS,SEGV}
...
This allows programs to dump better backtraces on crashes compared to
what kernel can as libc can resolve symbols and libraries' dynamic bases
2025-11-17 05:26:07 +02:00
Bananymous
dd636ffcb2
Kernel: Add support for SA_SIGINFO
2025-11-17 05:26:07 +02:00
Bananymous
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
Bananymous
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
Bananymous
46f9a9053f
DynamicLoader: Use canonical path for the main executable
2025-11-13 04:20:53 +02:00
Bananymous
c1e2c660bf
LibC: Define caddr_t
...
This is used by some ports
2025-11-13 04:20:53 +02:00
Bananymous
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
Bananymous
7a68ce7e94
DynamicLoader: Fix testing for possible base address
...
Replace MAP_FIXED with MAP_FIXED_NOREPLACE and only attempt to map
program headers with PT_LOAD
2025-11-13 04:20:53 +02:00
Bananymous
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
Bananymous
3a951f4830
LibC: Define IN_LOOPBACKNET
...
some ports expect this to exist
2025-11-12 00:06:36 +02:00
Bananymous
998ea25fb9
LibC: Add netinet/in_systm.h compatibility header
2025-11-12 00:06:36 +02:00
Bananymous
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
Bananymous
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
Bananymous
95fda5dfb7
LibC: Add definitions for IPPROTO_ICMPV6 and IP_TOS
2025-11-10 01:40:33 +02:00
Bananymous
362501a097
LibC: Make x86_64 crt0 PIE compatible
...
Instead of pushing addresses of functions directly, use rip relative
addressing
2025-11-10 01:40:33 +02:00
Bananymous
72982e3c2b
Kernel/LibC: Take fcntl extra field as uintptr_t
...
This allows passing pointers to fcntl
2025-11-10 01:40:33 +02:00
Bananymous
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
Bananymous
2f38306c6b
LibC: Implement simple posix_spawn{,p}
...
This does not support file_actions or attributes
2025-11-10 01:40:33 +02:00
Bananymous
4b36e5197d
LibC: Implement execvpe
...
This is not part of posix but it seems handy
2025-11-09 16:12:29 +02:00
Bananymous
b755cf3e42
LibC: Add sockatmark stub
2025-11-07 14:57:00 +02:00
Bananymous
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
Bananymous
f3319016c4
LibC: Implement if_{,free}nameindex
2025-11-07 14:54:53 +02:00
Bananymous
4e14f7d483
LibC: Implement {,l,ll}{abs,div}
2025-11-06 23:20:35 +02:00
Bananymous
c6ef4b5840
userspace: Implement kill utility
2025-11-04 19:19:46 +02:00
Bananymous
acd792d8b4
userspace: Implement pwd utility
2025-11-04 18:46:13 +02:00
Bananymous
fc730679ed
userspace: Implement uname utility
2025-11-04 18:45:20 +02:00
Bananymous
e05a735589
DynamicLoader: Honour STB_LOCAL binding
2025-11-02 22:47:02 +02:00
Bananymous
0be18c4a53
DynamicLoader: Make everything thread safe
...
This is kinda dumb implementation, but it works. We grap a global lock
on functions :)
2025-11-02 22:47:02 +02:00
Bananymous
e258fde25a
LibC: Implement unnamed semaphores
2025-11-02 21:11:16 +02:00
Bananymous
b822d42889
LibC: Define ESHUTDOWN
...
This is not used but some ports expect it to exist
2025-11-02 21:09:48 +02:00
Bananymous
10084ff1bb
LibC: Define FIONBIO
...
This doesn't do anything but some ports expect it to exist
2025-11-02 21:07:26 +02:00
Bananymous
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
Bananymous
0cfda6f6a7
LibC: Add posix_fadvise as no-op
2025-10-30 16:34:03 +02:00
Bananymous
dc51ce9e92
LibC: Implement readdir_r and fix memory leak
2025-10-30 16:33:17 +02:00
Bananymous
aa0de2b00e
LibC: Fix stack_t::ss_sp type from void** -> void*
2025-10-30 15:43:25 +02:00
Bananymous
37aef630d2
BAN: Fix Array and Vector span constness
2025-10-28 05:50:19 +02:00
Bananymous
d93fcff5db
userspace: Add LibQR
...
This library can be used to generate QR codes
2025-10-28 05:50:19 +02:00
Bananymous
4952a82af5
LibImage: Use LibDEFLATE instead of builtin DEFLATE decompressor
2025-10-28 05:50:19 +02:00
Bananymous
fecda6a034
userspace: Add LibDEFLATE
...
This can be used to compress and decompress DEFLATE data either in raw
or zlib format
2025-10-28 05:50:19 +02:00
Bananymous
73fb085a41
LibC: Add inet_pton for IPv4 addresses
2025-10-02 16:19:49 +03:00
Bananymous
c89780178f
LibC: Add sys/polls.h as wrapper for poll.h
...
some ports require this
2025-10-02 16:02:07 +03:00
Bananymous
791a541381
Kernel: Implement process stopping and continuing
2025-08-31 00:34:52 +03:00
Bananymous
f15f88ebd6
TaskBar: Don't leak fds when reading battery info
2025-08-28 15:57:10 +03:00
Bananymous
f994210927
LibC: Fix sigsetjmp (again)
...
I was using a wrong register for signal mask storage...
2025-08-28 15:55:40 +03:00
Bananymous
9854691265
LibC: Don't leak fds on rename
2025-08-28 15:55:40 +03:00
Bananymous
32afa33a06
LibC: Make sure FILE's buffer does not get overflown
2025-08-28 15:55:40 +03:00
Bananymous
c6946d0145
LibC: Use pthread_mutex on FILE instead of atomics
2025-08-28 15:55:40 +03:00
Bananymous
f11bb082e4
WindowServer/LibGUI: Add window focus events
2025-08-21 03:11:16 +03:00
Bananymous
fb61cab70d
LibC: Rewrite pthread_mutex using a futex
2025-08-21 02:52:49 +03:00
Bananymous
1d6c08478d
LibC: Fix sigsetjmp
...
the call from C sigsetjmp messed up rbp, now sigsetjmp is also written
in assembly.
I did not test the 32 bit code, just ported the tested 64 bit version
over :D
2025-08-21 02:52:49 +03:00
Bananymous
0dfe0b7023
Kernel/LibC: Implement sigaltstack
2025-08-21 02:52:49 +03:00
Bananymous
def236b7cd
Kernel/LibC: Implement sigwait
2025-08-20 20:16:19 +03:00
Bananymous
247743ef9c
Kernel/LibC: Implement sigsuspend
2025-08-20 20:14:54 +03:00
Bananymous
3d5f23a1b2
LibC: Implement wctomb
2025-08-19 16:44:18 +03:00
Bananymous
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
Bananymous
34bdcb12e5
Kernel: Fix termios and enter key handling
...
Enter key now produces expected \r which gets converted to \n by default
by the ICRNL input flag.
Also input flags are now handled always, not just when ICANON is set.
I don't know why I though ICANON should disable input handling
2025-08-19 16:23:30 +03:00
Bananymous
95b353dae5
LibInput: Fix numpad keycode generation
...
I had made this function with broken PS/2 scancode set 3, so it seemed
like it worked
2025-08-19 16:23:30 +03:00
Bananymous
8c9ab2d68c
WindowServer: Fix crash when window closes while being "button window"
2025-08-19 16:23:30 +03:00
Bananymous
8496726ab1
Terminal: Ignore some control characters
2025-08-19 16:23:30 +03:00
Bananymous
0f52f49188
Terminal: Remove unused code
2025-08-19 16:23:30 +03:00
Bananymous
b334259a07
AudioServer: Don't allow client to fully halt audio
2025-08-19 16:23:30 +03:00
Bananymous
9d6656451a
LibC: Make time_t signed integer
...
Some port like python3 assumes this is the case
2025-08-19 16:23:30 +03:00
Bananymous
ca9361abc1
DynamicLoader: Add support for dladdr
2025-08-19 16:23:30 +03:00
Bananymous
36cb3d56fe
LibC: Define Dl_info_t and add stub for dladdr
2025-08-19 16:23:30 +03:00
Bananymous
70bbdbd8f5
LibC: Cleanup syslog output
...
add ": " after the identification and formatted output. syslog does not
require trailing newline so add it in case it is missing.
2025-08-16 22:56:03 +03:00
Bananymous
ceca93c8b1
LibC: Cleanup memmove and memcpy for x86_64
2025-08-16 14:05:21 +03:00
Bananymous
6ed0e84421
LibC: Fix mktime argument updating
2025-08-11 19:00:23 +03:00
Bananymous
9b09d2b47a
LibC: Update struct tm to be POSIX issue 8 compliant
2025-08-11 18:59:20 +03:00
Bananymous
1a6c5deb4b
LibC: Add {AF,PF}_LOCAL as aliases to {AF,PF}_UNIX
2025-08-11 18:48:24 +03:00
Bananymous
45a73b00de
LibC: Make glob_t a typedef
2025-08-11 18:47:55 +03:00
Bananymous
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
Bananymous
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
Bananymous
e5786fe435
init: Start AudioServer on boot
2025-08-11 14:07:37 +03:00
Bananymous
ef6ee78fd1
Kernel/LibC: Implement chroot
2025-08-11 14:07:37 +03:00
Bananymous
c96c264801
LibC: Implement fnmatch
2025-08-10 19:57:31 +03:00
Bananymous
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
Bananymous
5b587d199e
Kernel/LibC: Implement FIONREAD for tcp and udp sockets
2025-08-10 19:57:31 +03:00
Bananymous
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
Bananymous
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
Bananymous
7a5cfe1728
LibAudio/AudioServer: Add support for playing real time audio
2025-08-07 16:43:05 +03:00
Bananymous
a84c348045
LibC: Add shm_{open,unlink} stubs
...
These are needed for our llvm port
2025-08-07 16:28:09 +03:00
Bananymous
d845ecc811
LibC: Add wcstok, wcstol and swprintf stubs
...
These are needed for our python3 port
2025-08-07 16:28:09 +03:00
Bananymous
064d9009a2
LibC: Add clock_getres stub
...
This is needed for our python3 port
2025-08-07 02:50:24 +03:00
Bananymous
b6aa5bdfab
LibC: Implement if_indextoname and if_nametoindex
...
These are needed for our cmake port
2025-08-07 02:50:24 +03:00
Bananymous
a3bdf0456e
LibC: Add getpriority stub
...
This is needed for our cmake port
2025-08-07 02:50:24 +03:00
Bananymous
e3ecf05866
LibC: Add stubs for {get,free}ifaddrs
...
These are needed for our libuv port
2025-08-07 02:50:24 +03:00
Bananymous
6240374dd1
LibC: Add semaphore stubs
...
These are needed for our bochs port
2025-08-07 02:50:24 +03:00
Bananymous
e17ee831a7
LibC: Add times stub
...
This is needed for our openssl port
2025-08-07 02:50:24 +03:00
Bananymous
aef9bd6357
LibC: Add mk{nod,fifo}{,at} stubs
...
These are needed for our tcl port
2025-08-07 02:50:24 +03:00
Bananymous
8857227a35
LibC: Add getservbyname stub
...
This is needed by our tcl port
2025-08-07 02:50:24 +03:00
Bananymous
937250c681
userspace: Add dummy libdl
...
This allows ports to link against without needing to patch it out
2025-08-07 02:50:24 +03:00
Bananymous
66d3a1d025
ls: Output in columns
2025-08-07 02:50:24 +03:00
Bananymous
c593d3ed75
LibC: Add missing libintl.h
2025-08-05 17:10:43 +03:00
Bananymous
46dd411273
LibC: fflush stdout when reading from stdin
...
This is the *intended behaviour* per ISO C specification
2025-08-05 03:32:59 +03:00
Bananymous
2e2ee11452
LibC: Add more reasonable values to stack size constants
2025-08-05 03:32:59 +03:00
Bananymous
ce0df333b3
LibC: Make sa_data in sock_addr zero sized
2025-08-05 03:32:59 +03:00
Bananymous
45ad6082bc
DynamicLoader: Support dlopen(NULL, ...)
2025-08-05 03:09:24 +03:00