Commit Graph

703 Commits

Author SHA1 Message Date
Bananymous c97b60e7e5 LibGUI: Remove parameters I had forgot in function declarations 2025-06-11 01:53:31 +03:00
Bananymous 8a73414e3e LibGUI: Add support for clip area to texture 2025-06-11 01:53:31 +03:00
Bananymous ac22e006a4 Shell: Don't get stuck on broken state when failing to build command 2025-06-10 11:03:02 +03:00
Bananymous 30d5d85d1d userspace: Add `test` utility 2025-06-08 23:56:39 +03:00
Bananymous 8ea0a67280 Terminal: Add support for tabs 2025-06-06 16:41:06 +03:00
Bananymous 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
Bananymous 00c6820825 LibC: Make {open,sys,close}log use their own FILE instead of stddbg 2025-06-06 11:59:15 +03:00
Bananymous 6beaafcf11 LibC: Define std{in,out,err,dbg} with their actual names 2025-06-06 11:56:39 +03:00
Bananymous a7e20d6e85 LibC: Fix getnameinfo port endianness 2025-06-06 06:52:56 +03:00
Bananymous cfeabc4580 Kernel/Terminal: Fix ANSI SGR 8 bit color parsing 2025-06-05 20:43:57 +03:00
Bananymous 49f203d61d Terminal: Add ANSI CSI P and ANSI SGR 22 2025-06-05 02:41:48 +03:00
Bananymous 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
Bananymous 8de19aff3c Kernel/Terminal: Fix 24 bit ANSI SGR color parsing 2025-06-05 02:38:07 +03:00
Bananymous 84b1f3990c LibC: Fix getnameinfo
How was i doing everything so wrong :D
2025-06-03 16:36:39 +03:00
Bananymous 775c77c0fa Shell: Get default backspace key from c_cc[VERASE] 2025-06-02 15:55:20 +03:00
Bananymous e473118ec8 userspace: Add nologin "shell" 2025-06-02 12:26:16 +03:00
Bananymous 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
Bananymous 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
Bananymous fac742c038 test-sort: Add qsort test 2025-06-02 11:41:34 +03:00
Bananymous 5a6b43fc90 LibC: Remove debug printing from getnameinfo 2025-06-02 11:39:18 +03:00
Bananymous 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
Bananymous 895909b7fa LibC: Add CMSG_* definitions to sys/socket.h 2025-06-02 11:39:18 +03:00
Bananymous 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
Bananymous 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
Bananymous 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
Bananymous e9f8471a28 BAN: Return UTF::invalid from byte_length instead of 0 2025-06-02 11:39:18 +03:00
Bananymous 4656b11256 LibC: actually use ATEXIT_MAX for atexit limit 2025-06-02 10:43:49 +03:00
Bananymous 2b48933f29 LibC: Implement all functions from complex.h 2025-06-01 13:48:03 +03:00
Bananymous 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
Bananymous cc07c3df94 LibC: Add basic strxfrm{,_l} 2025-06-01 13:48:03 +03:00
Bananymous 31bcad2535 LibC: Implement truncate 2025-06-01 13:48:03 +03:00
Bananymous b75970958e Kernel/LibC: Implement unlinkat 2025-06-01 13:48:03 +03:00
Bananymous 91756c057e LibC: Add all of the missing POSIX definitions in unistd.h and limits.h 2025-06-01 13:48:03 +03:00
Bananymous df7f245cf8 LibC: Implement pthread_atfork
Again this code is not tested but *feels* right :D
2025-06-01 13:48:03 +03:00
Bananymous 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
Bananymous 56fdf6002c Kernel/LibC: Implement pthread_kill 2025-06-01 13:48:03 +03:00
Bananymous 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
Bananymous 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
Bananymous 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
Bananymous 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
Bananymous 1bd454b8fd Kernel/LibC: Implement utime* family functions
This patch adds *working*
 - utime
 - utimes
 - utimensat
 - futimens
2025-06-01 13:48:03 +03:00
Bananymous 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
Bananymous 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
Bananymous 7691b019e2 LibC: Fix printf %c modifier for null byte 2025-05-28 03:10:01 +03:00
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