7ff7a4aa87
LibC: Fix locale handling in wcrtomb and mbrtowc
2025-06-16 15:09:39 +03:00
cdcd226b1a
LibC: Fix mbstowcs and add wcstombs
2025-06-16 15:08:49 +03:00
f9451915b9
LibC: Use pause in pthread spinlock locking
2025-06-16 15:07:58 +03:00
5e4e174d61
tests: Add tls test
2025-06-16 15:07:26 +03:00
4a00cb7d55
DynamicLoader: Add few more TLS relocations
2025-06-16 15:06:48 +03:00
c97b60e7e5
LibGUI: Remove parameters I had forgot in function declarations
2025-06-11 01:53:31 +03:00
8a73414e3e
LibGUI: Add support for clip area to texture
2025-06-11 01:53:31 +03:00
ac22e006a4
Shell: Don't get stuck on broken state when failing to build command
2025-06-10 11:03:02 +03:00
30d5d85d1d
userspace: Add test utility
2025-06-08 23:56:39 +03:00
8ea0a67280
Terminal: Add support for tabs
2025-06-06 16:41:06 +03:00
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
00c6820825
LibC: Make {open,sys,close}log use their own FILE instead of stddbg
2025-06-06 11:59:15 +03:00
6beaafcf11
LibC: Define std{in,out,err,dbg} with their actual names
2025-06-06 11:56:39 +03:00
a7e20d6e85
LibC: Fix getnameinfo port endianness
2025-06-06 06:52:56 +03:00
cfeabc4580
Kernel/Terminal: Fix ANSI SGR 8 bit color parsing
2025-06-05 20:43:57 +03:00
49f203d61d
Terminal: Add ANSI CSI P and ANSI SGR 22
2025-06-05 02:41:48 +03:00
a912a4dc67
LibGUI: Remove fill_color from texture copy API
...
Nothing was using this and it just overcomplicated everything
2025-06-05 02:40:51 +03:00
8de19aff3c
Kernel/Terminal: Fix 24 bit ANSI SGR color parsing
2025-06-05 02:38:07 +03:00
84b1f3990c
LibC: Fix getnameinfo
...
How was i doing everything so wrong :D
2025-06-03 16:36:39 +03:00
775c77c0fa
Shell: Get default backspace key from c_cc[VERASE]
2025-06-02 15:55:20 +03:00
e473118ec8
userspace: Add nologin "shell"
2025-06-02 12:26:16 +03:00
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
fdcb38ac1f
Shell: Accept '\r' as enter
...
This happens with some terminals and i don't want to bother with fixing
my termios :D
2025-06-02 11:42:06 +03:00
fac742c038
test-sort: Add qsort test
2025-06-02 11:41:34 +03:00
5a6b43fc90
LibC: Remove debug printing from getnameinfo
2025-06-02 11:39:18 +03:00
317f413746
LibC: Implement very hacky posix_memalign
...
I did not even test this and i know the code is super hacky. I could not
bother with writing proper code for this xD
2025-06-02 11:39:18 +03:00
895909b7fa
LibC: Add CMSG_* definitions to sys/socket.h
2025-06-02 11:39:18 +03:00
2ee8b6c8b4
LibC: Add more definitions to netinet/in.h
...
These are non-standard but a lot of UNIX-likes have them networking
software attempts to use them
2025-06-02 11:39:18 +03:00
022bb69782
LibC: Implement inet_aton
...
This is not POSIX but IMO it makes sense to have the counter part to
inet_ntoa
2025-06-02 11:39:18 +03:00
b7948551ff
userspace: Add empty libm and libpthread
...
These making porting stuff easier. I could not find a way to tell CMake
that the system does not have threads library
2025-06-02 11:39:18 +03:00
e9f8471a28
BAN: Return UTF::invalid from byte_length instead of 0
2025-06-02 11:39:18 +03:00
4656b11256
LibC: actually use ATEXIT_MAX for atexit limit
2025-06-02 10:43:49 +03:00
2b48933f29
LibC: Implement all functions from complex.h
2025-06-01 13:48:03 +03:00
4ac6cbe70e
LibC: Add some missing wchar.h functions
...
isw* functions are just wrappers to is*
tow* functions are just wrappers to to*
2025-06-01 13:48:03 +03:00
cc07c3df94
LibC: Add basic strxfrm{,_l}
2025-06-01 13:48:03 +03:00
31bcad2535
LibC: Implement truncate
2025-06-01 13:48:03 +03:00
b75970958e
Kernel/LibC: Implement unlinkat
2025-06-01 13:48:03 +03:00
91756c057e
LibC: Add all of the missing POSIX definitions in unistd.h and limits.h
2025-06-01 13:48:03 +03:00
df7f245cf8
LibC: Implement pthread_atfork
...
Again this code is not tested but *feels* right :D
2025-06-01 13:48:03 +03:00
dbdefa0f4a
LibC: Implement pthread cancelation
...
This code is not tested at all but it looks correct xD
2025-06-01 13:48:03 +03:00
56fdf6002c
Kernel/LibC: Implement pthread_kill
2025-06-01 13:48:03 +03:00
c957f1ddca
LibC: Cleanup pthread code and add some pthread_attr functions
...
errno, pthread cleanup and pthread id are now stored in uthread. This
allows using these without TLS
2025-06-01 13:48:03 +03:00
423386a052
LibC: Add memory.h that just includes string.h
...
There are a lot of ports trying to include memory.h. This is not posix
but glibc just includes string.h. I think this is just to privide mem*
functionss...?
2025-06-01 13:48:03 +03:00
1c882ea361
DynamicLoader: Don't print TODOs on PT_GNU_ headers
...
These should be either handled by kernel or just used as optimizations.
There is no requirement to handle them in dynamic loader
2025-06-01 13:48:03 +03:00
b1065fa01d
Kernel/LibC: Add ppoll syscall and fix poll
...
poll is now using its own syscall instead of wrapping aroung pselect.
This adds less overhead on top of poll and adds support for POLLHUP
2025-06-01 13:48:03 +03:00
1bd454b8fd
Kernel/LibC: Implement utime* family functions
...
This patch adds *working*
- utime
- utimes
- utimensat
- futimens
2025-06-01 13:48:03 +03:00
37dea8aee7
userspace: Implement basic less program
...
This is very simple and only supports couple of flags and scrolling
2025-05-29 01:00:28 +03:00
69c4940b27
LibC: Fix signal return value
...
signal was returning `func` when it should've returned the old handler
2025-05-29 00:58:30 +03:00
7691b019e2
LibC: Fix printf %c modifier for null byte
2025-05-28 03:10:01 +03:00
f55d6b11c5
LibC: Implement mblen
2025-05-28 03:10:01 +03:00