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
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
76d4e6bd18
LibGUI: Add support for changing window title
2025-05-05 01:10:05 +03:00
82f4975f45
LibC: Save callee saved registers on setjmp
2025-05-04 13:54:35 +03:00
d457e6ad6a
LibC: Fix printf e/E modifier for negative exponents
2025-05-04 13:42:17 +03:00
abf7c8e68a
LibC: Implement difftime
2025-05-04 13:42:17 +03:00
1a38d0c31e
LibC: Add g/G modifiers to printf
2025-05-04 13:42:17 +03:00
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
8834241417
LibC: Fix scanf %n modifier
...
Old code was always returning off by one
2025-04-22 09:55:38 +03:00
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
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
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
5c9710c78b
LibC: Implement strcoll_l
2025-04-22 00:48:26 +03:00
028c7a822f
LibC: Don't define SCHAR_MAX in locale.c
2025-04-21 22:21:40 +03:00
543bb3cc4b
LibC: Rework malloc locking add proper realloc
2025-04-21 20:29:28 +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
16dbfbb267
LibC: Make limits.h *_MAX usable in #if comparisons
2025-04-20 17:15:20 +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
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
6f9dc2a9b8
Kernel/LibC: Implement fchdir, cleanup chdir and getcwd
2025-04-19 21:28:31 +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
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
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
3ca0ef1583
LibGUI: Add copy_rect API
...
This allows moving parts of window around
2025-04-17 23:14:46 +03:00
88abbd90dc
LibC: Fix strncat
...
strncat was using strncpy internally which nullpadded dest until n bytes
were written.
also there was no terminating null byte added if src was shorter than n
bytes
2025-04-17 23:12:40 +03:00
bdbde25784
LibC: Rewrite environ handling
...
environ is only allocated on heap when you insert new variables.
environment variables are only `free`'d if they are `malloc`'d by libc
2025-04-16 21:08:01 +03:00
ee9e941a56
LibC: Implement getitimer
2025-04-15 23:35:25 +03:00
ac90800c3c
Kernel/LibC/DynamicLoader: Implement thread local storage
...
For some reason this does not work on 32 bit version, so it is disabled
on that platform. I'll have to look into it later to find the bug :)
2025-04-15 23:33:39 +03:00
08f5833ca8
Kernel/LibC: Implement pthread_attr_init
2025-04-15 23:31:17 +03:00