Commit Graph

305 Commits

Author SHA1 Message Date
Bananymous 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
Bananymous 0e0f5295cf LibC: Make {,__cxa_}atexit thread safe 2025-08-05 03:09:24 +03:00
Bananymous d25a5034db LibC: Update thread id on fork 2025-08-05 03:09:24 +03:00
Bananymous f197d39aaf LibC: Don't allow pthread_join to return EINTR 2025-08-05 03:09:24 +03:00
Bananymous 4a95343936 LibC: Make _get_uthread a macro
This allows nice inlining :)
2025-08-05 03:09:24 +03:00
Bananymous 4e705a91af LibC: Fix pthread keys
I had misunderstood how these are supposed to work :D
2025-08-05 03:09:24 +03:00
Bananymous 8c598a6902 LibC: Include stdint.h instead of inttypes.h in network headers 2025-08-05 03:09:24 +03:00
Bananymous 8e9c40caa4 LibC: Pump OPEN_MAX to 128
cmake seems to use around 70 when checking compiler. That seems quite a
lot but could be "normal"
2025-07-31 22:47:40 +03:00
Bananymous 07e4e764a0 LibC: Implement mbtowc 2025-07-31 22:47:40 +03:00
Bananymous 66fe2f2e50 LibC: Fix readv and writev 2025-07-31 22:47:40 +03:00
Bananymous fda0ced72e LibC: Implement getpw{nam,uid}_r 2025-07-31 22:47:40 +03:00
Bananymous 654e8bb7f6 LibC: Implement getgr{gid,nam}_r 2025-07-31 22:47:40 +03:00
Bananymous 80ffde5e1e LibC: Implement aligned_malloc
This is part of POSIX issue 8
2025-07-31 22:47:40 +03:00
Bananymous 52309e0754 LibC: Add in6addr_{any,loopback} definitions 2025-07-31 22:47:40 +03:00
Bananymous 31e411f8f1 LibC: Implement recvmsg and sendmsg
These just wrap recvfrom and sendto so ancillary data is not supported
2025-07-31 22:47:40 +03:00
Bananymous de45b760b5 LibC: Implement alphasort and scandir 2025-07-31 22:47:40 +03:00
Bananymous ff29e9c4d6 LibC: Implement {,f}pathconf
This just return minimum values specified by posix
2025-07-31 22:47:40 +03:00
Bananymous cc04bd0f06 LibC/Kernel: Implement ttyname_r 2025-07-31 22:47:40 +03:00
Bananymous e72e1e4e43 LibC: Add _SC_NPROCESSORS_{CONF,ONLN) 2025-07-31 22:47:40 +03:00
Bananymous e2eb555ca0 LibC: Add dummy libintl support
This doesn't really do anything but allows some ports to use it :D
2025-07-22 13:26:53 +03:00
Bananymous 8a663cb94f Kernel: Implement basic AC97 driver 2025-07-15 14:17:49 +03:00
Bananymous 163fdcd582 LibC: Fix exec family function path resolution 2025-07-15 14:17:49 +03:00
Bananymous 8aff315c7b LibC: fflush file in setvbuf before updating the buffer 2025-07-02 01:54:03 +03:00
Bananymous 3e6a4f2b16 LibC: Add getgroups stub 2025-06-28 20:25:35 +03:00
Bananymous e4f025edd6 LibC: Implement deprecated bcmp, bcopy, bzero 2025-06-28 20:25:35 +03:00
Bananymous 96f3efbf86 LibC: Fix enviroment variable allocation 2025-06-28 20:25:35 +03:00
Bananymous e8491b34b8 Kernel/LibC: Rework TIOC{G,S}WINSZ more linux like
Userspace can freely set terminal size, kernel just updates it when for
example new font is loaded. Also SIGWINCH is now sent by kernel instead
of userspace.
2025-06-28 19:40:54 +03:00
Bananymous f26a445ce6 LibC: Make malloc actually allign to s_malloc_default_align boundary 2025-06-28 16:55:13 +03:00
Bananymous d68c88c3f9 LibC: Implement rewinddir 2025-06-28 16:55:13 +03:00
Bananymous 397219c22e LibC: Implement very hacky dlopen/dlsym/dclose
If ELF loading fails, this will just crash the program :D

And there is no support for RTLD_LOCAL
2025-06-28 16:55:13 +03:00
Bananymous bc06926702 LibC: Implement gethostbyaddr 2025-06-28 16:55:13 +03:00
Bananymous 9de27110e2 LibC: Add alloca.h 2025-06-28 16:55:13 +03:00
Bananymous 93e5d09a63 Kernel/LibC: Implement flock 2025-06-28 16:55:13 +03:00
Bananymous 85f200bd86 LibC: Add sched_get_priority_{min,max}
I don't support priority scheduling so these are just no-ops
2025-06-28 16:55:13 +03:00
Bananymous 0f2c02fb04 LibC: Add stubs for pthread_{get,set}schedparam 2025-06-28 16:55:13 +03:00
Bananymous 4677d7a1c6 LibC: Update RAND_MAX INT32_MAX -> INT_MAX 2025-06-19 19:06:24 +03:00
Bananymous 15e84f28ed LibC: Include strings.h in string.h 2025-06-19 19:01:45 +03:00
Bananymous 87f348b48e LibC: Fix my ugly and hacked posix_memalign 2025-06-18 14:17:17 +03:00
Bananymous ff289b25b6 LibC: Implement {,v}asprintf
These were added in POSIX issue 8
2025-06-17 13:56:30 +03:00
Bananymous a9f58e96d2 LibC: Add endian.h
This is part of POSIX issue 2024 and some software depends on it
2025-06-17 13:15:42 +03:00
Bananymous 7651ca747d LibC: Allow searching null char with wcschr 2025-06-16 15:09:55 +03:00
Bananymous 7ff7a4aa87 LibC: Fix locale handling in wcrtomb and mbrtowc 2025-06-16 15:09:39 +03:00
Bananymous cdcd226b1a LibC: Fix mbstowcs and add wcstombs 2025-06-16 15:08:49 +03:00
Bananymous f9451915b9 LibC: Use `pause` in pthread spinlock locking 2025-06-16 15:07:58 +03:00
Bananymous 5ad7d7edb1 DynamicLoader: Fix TLS on 32 bit platform
There were two problems with my previous implementation
- TLS was not allocated if nothing used it. There is a fallback
  initialization in _init_libc, but this was not enough if one of the
  init functions tried to access errno.
- __tls_get_addr was not resolved. If __tls_get_addr was called through
  a plt entry, everything would just break :(
2025-06-06 16:27:07 +03:00
Bananymous 00c6820825 LibC: Make {open,sys,close}log use their own FILE instead of stddbg 2025-06-06 11:59:15 +03:00
Bananymous 6beaafcf11 LibC: Define std{in,out,err,dbg} with their actual names 2025-06-06 11:56:39 +03:00
Bananymous a7e20d6e85 LibC: Fix getnameinfo port endianness 2025-06-06 06:52:56 +03:00
Bananymous 84b1f3990c LibC: Fix getnameinfo
How was i doing everything so wrong :D
2025-06-03 16:36:39 +03:00
Bananymous 755d41ca4e LibC: Add pw_passwd and pw_gecos to passwd structure
This information is available in /etc/passwd either way so why not
expose it to the user. Practically all UNIX-likes have these either way
2025-06-02 12:23:06 +03:00