Bananymous
f55d6b11c5
LibC: Implement `mblen`
2025-05-28 03:10:01 +03:00
Bananymous
f52877abb4
LibC: Implement `readv` and `writev`
2025-05-28 03:10:01 +03:00
Bananymous
ee7c9b6731
LibC: Add simple `getnameinfo`
...
This doesn't actually do any name resolution but just formats input to
string.
2025-05-28 03:10:01 +03:00
Bananymous
4721344518
LibC: Don't fail `getaddrinfo` if node is null
2025-05-28 03:10:01 +03:00
Bananymous
e0d986dcd7
LibC: Add missing u_char and u_short types
2025-05-28 03:10:01 +03:00
Bananymous
c7be3dcd5b
LibC: Add timer{add,sub,clear,isset,cmp}
...
These are not POSIX but used by used by some ports
2025-05-28 03:10:01 +03:00
Bananymous
89c9bfd052
Kernel/LibC: Implement `socketpair` for UNIX sockets
2025-05-28 03:10:01 +03:00
Bananymous
12b93567f7
Kernel/LibC: Implement `getpeername`
2025-05-28 03:10:01 +03:00
Bananymous
8aa4e4ff1e
LibC: Implement `clearenv`
...
This is GNU extension but seems nice to have :D
2025-05-28 03:10:01 +03:00
Bananymous
7eade002a7
LibC: Fix `mktime`
...
yday calculation was off so results were always off for march-december
2025-05-28 03:10:01 +03:00
Bananymous
a8f8d27f4e
LibC: Implement basic tzset()
...
I still don't have timezone support so this just sets values to UTC
2025-05-28 03:10:01 +03:00
Bananymous
356935bd4f
LibC: Fix strtou{,l,ll} for negative values
...
Also set endp if base is invalid
2025-05-28 03:10:01 +03:00
Bananymous
bce3dd045f
LibC: Fix strncat return value
2025-05-28 03:10:01 +03:00
Bananymous
44b762f916
Kernel/LibC: Implement pwrite and make pread non-locking
2025-05-28 03:10:01 +03:00
Bananymous
5d80c880c8
LibC: Fix `FILE` buffering once again :D
2025-05-28 03:10:01 +03:00
Bananymous
b907263f35
LibC: Implement basic tmpfile
2025-05-28 03:10:01 +03:00
Bananymous
0f0accf82c
LibC: Don't use `false` in pthread initializers
2025-05-28 03:10:01 +03:00
Bananymous
ddcf414107
LibC: Fix netinet/in.h and arpa/inet.h definitions
2025-05-28 03:10:01 +03:00
Bananymous
1bcd1edbf5
Kernel/LibC: Implement basic epoll
...
This implementation is on top of inodes instead of fds as linux does it.
If I start finding ports/software that relies on epoll allowing
duplicate inodes, I will do what linux does.
I'm probably missing multiple epoll_notify's which may cause hangs but
the system seems to work fine :dd:
2025-05-13 10:18:05 +03:00
Bananymous
c18fefd5f3
BuildSystem: Cleanup cmake library linking
2025-05-07 18:42:37 +03:00
Bananymous
2a6dc6a7b7
LibGUI: Add missing Texture files
2025-05-07 17:21:29 +03:00
Bananymous
f959905adf
LibGUI: Rework window rendering
...
Abstract drawing surface to Texture. All windows now contain a texture
matching its size.
2025-05-05 23:08:01 +03:00
Bananymous
f78c7e7926
LibGUI: Add API to block until window events are available
2025-05-05 22:33:00 +03:00
Bananymous
f14774d034
libc: fix tmpnam when no name is found
2025-05-05 19:17:16 +03:00
Bananymous
c08c63f420
libc: reorder destructor and fflush in exit
2025-05-05 19:16:52 +03:00
Bananymous
5c37f198cb
WindowServer/LibGUI: Allow windows to set minimum size
2025-05-05 18:19:59 +03:00
Bananymous
7798145c74
WindowServer: Implement window resizing
...
windows can now set resizable attribute which allows window server to
resize them
2025-05-05 03:14:50 +03:00
Bananymous
fcfadd7c74
LibGUI: Add background color for windows
...
This is used when resizing a window to fill the empty space
2025-05-05 03:12:31 +03:00
Bananymous
76d4e6bd18
LibGUI: Add support for changing window title
2025-05-05 01:10:05 +03:00
Bananymous
82f4975f45
LibC: Save callee saved registers on setjmp
2025-05-04 13:54:35 +03:00
Bananymous
d457e6ad6a
LibC: Fix printf e/E modifier for negative exponents
2025-05-04 13:42:17 +03:00
Bananymous
abf7c8e68a
LibC: Implement `difftime`
2025-05-04 13:42:17 +03:00
Bananymous
1a38d0c31e
LibC: Add g/G modifiers to printf
2025-05-04 13:42:17 +03:00
Bananymous
006a196e4a
LibC: optimize strpbrk, str{,c}spn, strtok{,_r}
...
These matches are now detected with bitmasks instead of looping over the
second string
2025-04-24 01:39:49 +03:00
Bananymous
8834241417
LibC: Fix scanf %n modifier
...
Old code was always returning off by one
2025-04-22 09:55:38 +03:00
Bananymous
96740d6be4
LibC: Make `inet_addr` spec compliant
...
I was not doing any error checking, basically i validated anything that
started with atleast a single digit.
2025-04-22 09:40:46 +03:00
Bananymous
33a0f562d3
resolver: Add support for CNAME
...
Also rework resolver's send format and convert test-tcp and nslookup to
use getaddrinfo
2025-04-22 08:36:44 +03:00
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
5c9710c78b
LibC: Implement `strcoll_l`
2025-04-22 00:48:26 +03:00
Bananymous
028c7a822f
LibC: Don't define SCHAR_MAX in locale.c
2025-04-21 22:21:40 +03:00
Bananymous
543bb3cc4b
LibC: Rework malloc locking add proper realloc
2025-04-21 20:29:28 +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
16dbfbb267
LibC: Make limits.h `*_MAX` usable in #if comparisons
2025-04-20 17:15:20 +03:00
Bananymous
265b4c2b22
LibC: Implement `thread_equal`
2025-04-20 03:27:16 +03:00