Bananymous
1c88d0d7f7
LibC: Implement pthread_rwlock
...
This uses the same dumb sched_yield instead of actually blocking :D
2025-04-21 18:48:47 +03:00
Bananymous
773b8de8ba
LibC: Refactor pthread type definitions
2025-04-21 14:38:40 +03:00
Bananymous
5d8dd090a9
LibC: Implement `pthread_once`
2025-04-21 14:17:17 +03:00
Bananymous
16dbfbb267
LibC: Make limits.h `*_MAX` usable in #if comparisons
2025-04-20 17:15:20 +03:00
Bananymous
db9db2cc40
LibC: Implement basic pthread mutexes
...
This implementation is just calling sched_yield if it could not get
mutex. This is not optimal as it does not allow the CPU to idle, but it
works for now :)
Also I did not test this code at all, but it feels correct :D
2025-04-20 03:27:16 +03:00
Bananymous
fe6c4cd0b5
LibC: Implement POSIX TLD area (pthread_key*)
2025-04-20 03:11:41 +03:00
Bananymous
f1585d09e1
LibC: Add more integer size definintions to limits.h
2025-04-19 21:50:26 +03:00
Bananymous
6f9dc2a9b8
Kernel/LibC: Implement `fchdir`, cleanup `chdir` and `getcwd`
2025-04-19 21:28:31 +03:00
Bananymous
dc188e601a
LibC: Add definition for LOG_UPTO
2025-04-19 02:48:21 +03:00
Bananymous
8a2df23260
LibC: Define RLIM_NLIMITS
2025-04-19 02:34:56 +03:00
Bananymous
46079a8612
LibC: Implement no-op posix_madvice
...
Also add non-posix prefixed definitions
2025-04-19 02:07:45 +03:00
Bananymous
ab4dd6a268
LibC: Add ARG_MAX constant
2025-04-19 00:39:42 +03:00
Bananymous
ac90800c3c
Kernel/LibC/DynamicLoader: Implement thread local storage
...
For some reason this does not work on 32 bit version, so it is disabled
on that platform. I'll have to look into it later to find the bug :)
2025-04-15 23:33:39 +03:00
Bananymous
4bcd3ed86f
Kernel: Start working on TLS, add SYS_{SET,GET}_TLS
2025-04-15 23:31:17 +03:00
Bananymous
64002626b9
LibC: Add h_addr definition for hostent backwards compatibility
2025-04-15 21:39:50 +03:00
Bananymous
be786be67d
Kernel/LibC: Implement pthread_join
2025-04-02 12:58:39 +03:00
Bananymous
f32f62dfc1
LibC: Implement pthread_spin_* functions
2025-04-02 12:58:39 +03:00
Bananymous
28392050bf
LibC: Make pthread_t pid_t
2025-04-02 12:58:39 +03:00
Bananymous
9066e62a97
Kernel/LibC: Implement sched_yield
2025-04-02 12:58:39 +03:00
Bananymous
5549696c3a
Kernel/LibC: Implement pthread_self
2025-04-02 02:39:29 +03:00
Bananymous
2ba25b4c28
LibC: Add non standard types/values used by ports
2025-04-01 23:26:13 +03:00
Bananymous
c1618e2b5d
Kernel/LibC: Add basic support for pthread_{create,exit}
2025-04-01 23:26:13 +03:00
Bananymous
48eca3d031
LibC: Make libc usable with tcc
...
tcc does not provide its own stdint.h but defines everything in
stddef.h. Also tcc does not support [[noreturn]] attribute syntax.
2025-01-28 17:27:41 +02:00
Bananymous
9893c90e74
Kernel: Remove SYS_DUP and implement it using fcntl F_DUPFD
2025-01-17 19:29:47 +02:00
Bananymous
72059a9441
LibC: Redefine SEEK_* macros to match common systems
...
some ports written in assembly seem to depend on this
2025-01-14 22:52:13 +02:00
Bananymous
4b2c303873
LibC: Add weak_alias header that defines a weak_alias macro
2025-01-14 18:33:57 +02:00
Bananymous
8c45249c06
LibC: Remove stdint.h as toolchain provides one
...
I have no idea why i even had this written, it was just containing
compiler macros
2024-12-30 06:26:17 +02:00
Bananymous
0fab7ad63b
Kernel: Fix SYS_FCNTL command handling :)
...
I had misunderstood how these work
2024-12-03 16:12:26 +02:00
Bananymous
713daf6cd3
Kernel/LibC: Add support for creating hardlinks
2024-12-03 16:12:26 +02:00
Bananymous
415b20f884
LibC: Remove errno EEXISTS
...
I don't know why I had added this. It doesn't seem to be a thing on
either POSIX or linux. This was literally equivalent to EXIST
2024-12-02 20:13:38 +02:00
Bananymous
d58ca5f37a
Kernel/LibC: Implement symlink{,at}
2024-12-02 20:13:38 +02:00
Bananymous
11b6ee423e
LibC: Define timezone structure
2024-12-02 20:13:37 +02:00
Bananymous
a10ca47657
Kernel/LibC: Implement {,f}statvfs
2024-12-02 20:13:37 +02:00
Bananymous
ad1f175a39
Kernel/LibC: Implement getppid
2024-12-02 20:13:37 +02:00
Bananymous
b8013c883c
LibC: Implement getpass
2024-12-02 20:13:37 +02:00
Bananymous
4508e099ff
LibC: Implement getpagesize
2024-12-02 20:13:37 +02:00
Bananymous
6ed1435aeb
Kernel/LibC: Implement tcgetpgrp
2024-12-02 20:13:37 +02:00
Bananymous
747c3b2a4b
Kernel/LibC: Implement fsync
2024-12-02 20:13:37 +02:00
Bananymous
f4c6afbdae
LibC: Add definitions to LibC that are used by some ports
2024-12-02 20:13:37 +02:00
Bananymous
d1ef380e6b
LibC: Add missing definitions for ifreq members
2024-12-02 20:13:37 +02:00
Bananymous
c02de2580d
Kernel: Add support for SIOCGIFNAME ioctl
2024-12-02 20:13:37 +02:00
Bananymous
783627c315
LibC: Fix time.h sigevent defition
2024-12-01 21:31:27 +02:00
Bananymous
d465ea2a67
LibC: Fix headers :)
2024-11-27 21:32:10 +02:00
Bananymous
92862fdf39
LibC: Implement nan{,f,l} as functions
...
One port was using function pointers to these functions so macros don't
work.
2024-11-08 02:49:21 +02:00
Bananymous
f4be37700f
Kernel/userspace: rework floating point math
...
SSE is now unconditionally enabled any where and most of math.h is now
actually implemented. using __builtin_<func> lead to many hangs where
the builtin function would just call itself.
2024-11-03 20:28:15 +02:00
Bananymous
2464fccadd
LibC: Fix *scanf consuming extra characters
2024-10-19 12:43:23 +03:00
Bananymous
e431e90b20
Kernel/LibC: Implement all chown family function with fchownat
2024-09-17 18:35:01 +03:00
Bananymous
4aa466b948
Kernel/LibC: Implement all chmod family functions using fchmodat
2024-09-17 17:19:26 +03:00
Bananymous
3666525d24
Kernel/LibC: Implement `readlink` in terms of `readlinkat`
2024-09-17 16:38:15 +03:00
Bananymous
f1a4bbce53
Kernel/LibC: Implement all stat family functions with fstatat
...
This patch gets rid of 2 unnecessary syscalls!
2024-09-17 16:38:01 +03:00