Bananymous
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
Bananymous
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
Bananymous
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
Bananymous
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
Bananymous
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
Bananymous
5c9710c78b
LibC: Implement `strcoll_l`
2025-04-22 00:48:26 +03:00
Bananymous
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
Bananymous
028c7a822f
LibC: Don't define SCHAR_MAX in locale.c
2025-04-21 22:21:40 +03:00
Bananymous
18f5f98e62
General: Mark USB hubs done in README
2025-04-21 22:13:31 +03:00
Bananymous
543bb3cc4b
LibC: Rework malloc locking add proper realloc
2025-04-21 20:29:28 +03:00
Bananymous
1c44d24b76
Kernel: Fix TCP closing state machine
2025-04-21 20:02:32 +03:00
Bananymous
5305f962c0
ports/openssl: Make openssl port threaded
2025-04-21 19:59:57 +03:00
Bananymous
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
Bananymous
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
Bananymous
60cb392e97
LibC: Implement pthread_barrier
...
This is yet another bad sched_yield implementation :D
2025-04-21 19:52:14 +03:00
Bananymous
d012c538c3
LibC: Add PTHREAD_SPIN_INITIALIZER
...
This is not posix, but current implementation allows adding this
2025-04-21 19:47:00 +03:00
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
2cbfe70a28
DynamicLoader: Don't leak fds
2025-04-20 18:18:32 +03:00
Bananymous
16dbfbb267
LibC: Make limits.h `*_MAX` usable in #if comparisons
2025-04-20 17:15:20 +03:00
Bananymous
99fc7817c6
Kernel: Cleanup stack alignment assembly
2025-04-20 16:55:18 +03:00
Bananymous
265b4c2b22
LibC: Implement `thread_equal`
2025-04-20 03:27:16 +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
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
Bananymous
98e05fd179
BAN: Implement atomic functions for normal integers
2025-04-20 03:11:41 +03:00
Bananymous
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
Bananymous
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
Bananymous
01626b4c9f
LibC: Add stub for `pthread_detach`
2025-04-20 03:11:41 +03:00
Bananymous
a85841ca76
LibC: Add stub for `pthread_attr_setstacksize`
2025-04-20 03:11:41 +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
252784ff5b
Kernel: Preserve kernel command line on fork
2025-04-19 21:29:52 +03:00
Bananymous
6f9dc2a9b8
Kernel/LibC: Implement `fchdir`, cleanup `chdir` and `getcwd`
2025-04-19 21:28:31 +03:00
Bananymous
7edfae8583
Shell: Cleanup `export` builtin
2025-04-19 21:23:26 +03:00
Bananymous
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
Bananymous
2d19b5074e
LibC: Implement some missing wchar functions
2025-04-19 20:56:41 +03:00
Bananymous
e62cc17797
LibC: Use `nl_langinfo` for strings in `strftime`
2025-04-19 20:03:56 +03:00
Bananymous
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
Bananymous
12d47858c1
LibC: Fix overflow error in `fread` and `fwrite`
2025-04-19 18:42:12 +03:00
Bananymous
3d34e6e6d9
ports: ncurses add support for shared libraries
2025-04-19 05:55:16 +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
201d752850
Kernel: Allow pipe to write partial data
...
This allows potential blocking
2025-04-19 00:39:42 +03:00
Bananymous
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
Bananymous
8cd2d772b0
Shell: Print error if `execv` fails
2025-04-19 00:39:42 +03:00
Bananymous
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
Bananymous
ab4dd6a268
LibC: Add ARG_MAX constant
2025-04-19 00:39:42 +03:00
Bananymous
0094efc7f4
LibC: Fix `execl*` memory leak on error
2025-04-18 20:54:53 +03:00