Commit Graph

716 Commits

Author SHA1 Message Date
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
f52877abb4 LibC: Implement readv and writev 2025-05-28 03:10:01 +03:00
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
4721344518 LibC: Don't fail getaddrinfo if node is null 2025-05-28 03:10:01 +03:00
e0d986dcd7 LibC: Add missing u_char and u_short types 2025-05-28 03:10:01 +03:00
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
89c9bfd052 Kernel/LibC: Implement socketpair for UNIX sockets 2025-05-28 03:10:01 +03:00
12b93567f7 Kernel/LibC: Implement getpeername 2025-05-28 03:10:01 +03:00
8aa4e4ff1e LibC: Implement clearenv
This is GNU extension but seems nice to have :D
2025-05-28 03:10:01 +03:00
7eade002a7 LibC: Fix mktime
yday calculation was off so results were always off for march-december
2025-05-28 03:10:01 +03:00
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
356935bd4f LibC: Fix strtou{,l,ll} for negative values
Also set endp if base is invalid
2025-05-28 03:10:01 +03:00
bce3dd045f LibC: Fix strncat return value 2025-05-28 03:10:01 +03:00
44b762f916 Kernel/LibC: Implement pwrite and make pread non-locking 2025-05-28 03:10:01 +03:00
5d80c880c8 LibC: Fix FILE buffering once again :D 2025-05-28 03:10:01 +03:00
b907263f35 LibC: Implement basic tmpfile 2025-05-28 03:10:01 +03:00
0f0accf82c LibC: Don't use false in pthread initializers 2025-05-28 03:10:01 +03:00
ddcf414107 LibC: Fix netinet/in.h and arpa/inet.h definitions 2025-05-28 03:10:01 +03:00
b90cfa8e5c test-window: poll events instead of sleeping 2025-05-13 10:19:13 +03:00
e7f0cd0c4b stat: Fix return value when one of stats fails 2025-05-13 10:19:13 +03:00
0661b339a0 test-tcp: Fix name resolution
Comparison was the wrong way around so hostname lookup always failed.
2025-05-13 10:19:13 +03:00
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
a8844ddd28 WindowServer: Send mouse release to same window as mouse press 2025-05-13 10:16:21 +03:00
c18fefd5f3 BuildSystem: Cleanup cmake library linking 2025-05-07 18:42:37 +03:00
2a6dc6a7b7 LibGUI: Add missing Texture files 2025-05-07 17:21:29 +03:00
40617f0d5c WindowServer: Make mod+d open program launcher 2025-05-06 00:42:15 +03:00
09745a7835 userspace: Implement program launcher
This is kinda useless as I only have Terminal and test-window
implemented. Also the code is really messy as I don't have GUI widgets.
2025-05-06 00:41:22 +03:00
57f6f50939 Terminal: Implement dumb font bolding
This is just drawing character twice at one pixel offset
2025-05-05 23:09:53 +03:00
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
f78c7e7926 LibGUI: Add API to block until window events are available 2025-05-05 22:33:00 +03:00
2dc4733ac1 test: improve pthread test 2025-05-05 19:21:47 +03:00
f14774d034 libc: fix tmpnam when no name is found 2025-05-05 19:17:16 +03:00
c08c63f420 libc: reorder destructor and fflush in exit 2025-05-05 19:16:52 +03:00
eb79c6c47c mkdir: Add -p option 2025-05-05 19:16:29 +03:00
bf1cbb4cde Terminal: Update terminal size and send SIGWINCH on resize 2025-05-05 19:09:21 +03:00
0689954433 Terminal: Set minimum size to 8x2 cells 2025-05-05 18:20:22 +03:00
5c37f198cb WindowServer/LibGUI: Allow windows to set minimum size 2025-05-05 18:19:59 +03:00
3b02a9d4fe WindowServer: Resize from closest corner 2025-05-05 18:19:19 +03:00
c9057aa498 WindowServer: Cleanup code and resize on fullscreen 2025-05-05 16:42:15 +03:00
2b0d198b05 Terminal: Allow resizing of the terminal 2025-05-05 03:15:30 +03:00
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