Commit Graph

2660 Commits

Author SHA1 Message Date
808c97020a Kernel/LibC: Implement SA_RESTART
I have been thinking how to do this for a long time but I finally
figured out a semi-clean way
2025-04-22 02:42:44 +03:00
34e680d792 ports/ncurses: Set some needed environment variables
ncurses depends on these being set to function properly
2025-04-22 01:56:34 +03:00
32d543943b ports: Add lynx port
I have had this for a while but apparently never commited :D
2025-04-22 01:44:49 +03:00
2632507980 ports/ca-certificates: Add symlink to /etc/ssl/cert.pem
Some ports try to use this file
2025-04-22 01:44:02 +03:00
f467a9a309 resolver: Resolve hostname to loopback address
We don't currently support loopback adapters, but some ports were trying
to resolve it.
2025-04-22 00:48:26 +03:00
5c9710c78b LibC: Implement strcoll_l 2025-04-22 00:48:26 +03:00
107b31a0b5 Kernel: Fix E1000{,E} driver for older qemu versions
This patch adds clearing of *Interrupt Cause Registers*, which allows
older qemu versions to send new interrupts. Apparently this is not
needed on newer releases.
2025-04-22 00:31:13 +03:00
028c7a822f LibC: Don't define SCHAR_MAX in locale.c 2025-04-21 22:21:40 +03:00
18f5f98e62 General: Mark USB hubs done in README 2025-04-21 22:13:31 +03:00
543bb3cc4b LibC: Rework malloc locking add proper realloc 2025-04-21 20:29:28 +03:00
1c44d24b76 Kernel: Fix TCP closing state machine 2025-04-21 20:02:32 +03:00
5305f962c0 ports/openssl: Make openssl port threaded 2025-04-21 19:59:57 +03:00
b774f147da LibC: Implement dummy pthread_attr_{get,set}detachstate
detached threads are not yet supported, but this allows implementation
to make sure threads are joinable.
2025-04-21 19:58:01 +03:00
2a5921b9c9 LibC: Implement pthread_barrier
This is not fully working but should be fine for most cases
2025-04-21 19:53:38 +03:00
60cb392e97 LibC: Implement pthread_barrier
This is yet another bad sched_yield implementation :D
2025-04-21 19:52:14 +03:00
d012c538c3 LibC: Add PTHREAD_SPIN_INITIALIZER
This is not posix, but current implementation allows adding this
2025-04-21 19:47:00 +03:00
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
773b8de8ba LibC: Refactor pthread type definitions 2025-04-21 14:38:40 +03:00
5d8dd090a9 LibC: Implement pthread_once 2025-04-21 14:17:17 +03:00
2cbfe70a28 DynamicLoader: Don't leak fds 2025-04-20 18:18:32 +03:00
16dbfbb267 LibC: Make limits.h *_MAX usable in #if comparisons 2025-04-20 17:15:20 +03:00
99fc7817c6 Kernel: Cleanup stack alignment assembly 2025-04-20 16:55:18 +03:00
265b4c2b22 LibC: Implement thread_equal 2025-04-20 03:27:16 +03:00
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
3642eabac0 LibC: Use BAN::atomic_* functions in pthread spinlock
This allows us not to reinterpret_cast pthread_spin_t to
BAN::Atomic<pthread_spin_t> which is much better :)
2025-04-20 03:11:41 +03:00
98e05fd179 BAN: Implement atomic functions for normal integers 2025-04-20 03:11:41 +03:00
1ccff9478f LibC: Don't define __tls_get_addr if TLS is disabled
This makes linking fail if something tries to use TLS :)
2025-04-20 03:11:41 +03:00
85f9b585f5 LibC: Don't yield on pthread_spin_lock
Thats kinda the whole point of spinlocks :D
2025-04-20 03:11:41 +03:00
01626b4c9f LibC: Add stub for pthread_detach 2025-04-20 03:11:41 +03:00
a85841ca76 LibC: Add stub for pthread_attr_setstacksize 2025-04-20 03:11:41 +03:00
fe6c4cd0b5 LibC: Implement POSIX TLD area (pthread_key*) 2025-04-20 03:11:41 +03:00
f1585d09e1 LibC: Add more integer size definintions to limits.h 2025-04-19 21:50:26 +03:00
252784ff5b Kernel: Preserve kernel command line on fork 2025-04-19 21:29:52 +03:00
6f9dc2a9b8 Kernel/LibC: Implement fchdir, cleanup chdir and getcwd 2025-04-19 21:28:31 +03:00
7edfae8583 Shell: Cleanup export builtin 2025-04-19 21:23:26 +03:00
28275d86ea LibC/Shell: set PWD env in Shell, not libc
I have no idea why I was doing it in the libc
2025-04-19 21:16:11 +03:00
2d19b5074e LibC: Implement some missing wchar functions 2025-04-19 20:56:41 +03:00
e62cc17797 LibC: Use nl_langinfo for strings in strftime 2025-04-19 20:03:56 +03:00
407eed212a LibC: Implement nl_langinfo
All values are from POSIX locale except CODESET which can be "UTF-8"
depending on the current locale
2025-04-19 20:02:01 +03:00
12d47858c1 LibC: Fix overflow error in fread and fwrite 2025-04-19 18:42:12 +03:00
3d34e6e6d9 ports: ncurses add support for shared libraries 2025-04-19 05:55:16 +03:00
dc188e601a LibC: Add definition for LOG_UPTO 2025-04-19 02:48:21 +03:00
8a2df23260 LibC: Define RLIM_NLIMITS 2025-04-19 02:34:56 +03:00
46079a8612 LibC: Implement no-op posix_madvice
Also add non-posix prefixed definitions
2025-04-19 02:07:45 +03:00
201d752850 Kernel: Allow pipe to write partial data
This allows potential blocking
2025-04-19 00:39:42 +03:00
63b3d9875d Kernel: Fix Thread::block_with_eintr* functions
I was using wrong block function, `block_with_timeout` instead of
`block_with_wake_time`. This caused functions to block way too long and
caused a lot of hangs.
2025-04-19 00:39:42 +03:00
8cd2d772b0 Shell: Print error if execv fails 2025-04-19 00:39:42 +03:00
2ff3f88b4d LibC: Add support for shebangs
I implemented shebangs in userspace as I don't really see the benefit of
doing it in kernel space. Only benefit I can think of is executing non
readable scripts but I don't really see the benefit in that.
2025-04-19 00:39:42 +03:00
ab4dd6a268 LibC: Add ARG_MAX constant 2025-04-19 00:39:42 +03:00
0094efc7f4 LibC: Fix execl* memory leak on error 2025-04-18 20:54:53 +03:00