Commit Graph

2737 Commits

Author SHA1 Message Date
Bananymous 79a2b84c81 Kernel: Fix process exit when there are multiple threads 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 6be3b1d7f2 commit from banan-os :D 2025-05-27 23:57:43 +00:00
Bananymous 0e0d7016b3 Kernel: Rename has_hangup -> has_hungup 2025-05-17 12:39:23 +03:00
Bananymous 553c76ab0f Kernel: Add locking to inode's epoll list
This was prone to crashing :)
2025-05-17 12:36:36 +03:00
Bananymous b90cfa8e5c test-window: poll events instead of sleeping 2025-05-13 10:19:13 +03:00
Bananymous e7f0cd0c4b stat: Fix return value when one of stats fails 2025-05-13 10:19:13 +03:00
Bananymous 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
Bananymous d1bb72f6fb Kernel: Don't allow CPU load printing underflow 2025-05-13 10:19:13 +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 143a00626b Kernel: Fix fork cmdline copying and copy environ 2025-05-13 10:16:21 +03:00
Bananymous 0eb981f51c Kernel: Fix Random.h includes 2025-05-13 10:16:21 +03:00
Bananymous 6cc01349f7 Kernel: Fix unblocking recv through read 2025-05-13 10:16:21 +03:00
Bananymous a7bd4acd46 Kernel: Remove static variables from virtual tty 2025-05-13 10:16:21 +03:00
Bananymous 8e0a56b49a Kernel: Implement loopback network interface 2025-05-13 10:16:21 +03:00
Bananymous a8844ddd28 WindowServer: Send mouse release to same window as mouse press 2025-05-13 10:16:21 +03:00
Bananymous c18fefd5f3 BuildSystem: Cleanup cmake library linking 2025-05-07 18:42:37 +03:00
Bananymous 3040940e35 ports/tcc: Fix 32 bit build and add version name
tcc was using "Linux" for machine name in version string if it was not
explicitly specified.
2025-05-07 18:33:39 +03:00
Bananymous df3d2d57c3 ports/quake2: Update to new LibGUI interface 2025-05-07 17:23:15 +03:00
Bananymous 92d26f2216 ports/doom: Update to new LibGUI interface 2025-05-07 17:21:29 +03:00
Bananymous 0380c68f89 ports/tinygb: Update to new LibGUI interface 2025-05-07 17:21:29 +03:00
Bananymous 2a6dc6a7b7 LibGUI: Add missing Texture files 2025-05-07 17:21:29 +03:00
Bananymous 40617f0d5c WindowServer: Make mod+d open program launcher 2025-05-06 00:42:15 +03:00
Bananymous 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
Bananymous 57f6f50939 Terminal: Implement dumb font bolding
This is just drawing character twice at one pixel offset
2025-05-05 23:09:53 +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 96496da0ab Kernel: Allow USB mouse to send extra2 button events 2025-05-05 22:32:26 +03:00
Bananymous 2dc4733ac1 test: improve pthread test 2025-05-05 19:21:47 +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 eb79c6c47c mkdir: Add -p option 2025-05-05 19:16:29 +03:00
Bananymous bf1cbb4cde Terminal: Update terminal size and send SIGWINCH on resize 2025-05-05 19:09:21 +03:00
Bananymous 592675022e Kernel: Allow tcgetpgrp on pseudo terminal masters 2025-05-05 19:09:01 +03:00
Bananymous b2e10d7e6e Kernel: Remove unnecessary locks 2025-05-05 19:08:57 +03:00
Bananymous 0689954433 Terminal: Set minimum size to 8x2 cells 2025-05-05 18:20:22 +03:00
Bananymous 5c37f198cb WindowServer/LibGUI: Allow windows to set minimum size 2025-05-05 18:19:59 +03:00
Bananymous 3b02a9d4fe WindowServer: Resize from closest corner 2025-05-05 18:19:19 +03:00
Bananymous c9057aa498 WindowServer: Cleanup code and resize on fullscreen 2025-05-05 16:42:15 +03:00
Bananymous 2b0d198b05 Terminal: Allow resizing of the terminal 2025-05-05 03:15:30 +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 c0181820a9 ports/tinygb: Set title like sdl frontend does 2025-05-05 01:10:41 +03:00
Bananymous 76d4e6bd18 LibGUI: Add support for changing window title 2025-05-05 01:10:05 +03:00
Bananymous ccb81de85d snake: Use box drawing characters
This makes it look much better.

Also fix bug with apples generating on top of snake's tail
2025-05-05 00:30:58 +03:00
Bananymous 82f4975f45 LibC: Save callee saved registers on setjmp 2025-05-04 13:54:35 +03:00