Commit Graph

2731 Commits

Author SHA1 Message Date
6be3b1d7f2 commit from banan-os :D 2025-05-27 23:57:43 +00:00
0e0d7016b3 Kernel: Rename has_hangup -> has_hungup 2025-05-17 12:39:23 +03:00
553c76ab0f Kernel: Add locking to inode's epoll list
This was prone to crashing :)
2025-05-17 12:36:36 +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
d1bb72f6fb Kernel: Don't allow CPU load printing underflow 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
143a00626b Kernel: Fix fork cmdline copying and copy environ 2025-05-13 10:16:21 +03:00
0eb981f51c Kernel: Fix Random.h includes 2025-05-13 10:16:21 +03:00
6cc01349f7 Kernel: Fix unblocking recv through read 2025-05-13 10:16:21 +03:00
a7bd4acd46 Kernel: Remove static variables from virtual tty 2025-05-13 10:16:21 +03:00
8e0a56b49a Kernel: Implement loopback network interface 2025-05-13 10:16:21 +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
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
df3d2d57c3 ports/quake2: Update to new LibGUI interface 2025-05-07 17:23:15 +03:00
92d26f2216 ports/doom: Update to new LibGUI interface 2025-05-07 17:21:29 +03:00
0380c68f89 ports/tinygb: Update to new LibGUI interface 2025-05-07 17:21:29 +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
96496da0ab Kernel: Allow USB mouse to send extra2 button events 2025-05-05 22:32:26 +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
592675022e Kernel: Allow tcgetpgrp on pseudo terminal masters 2025-05-05 19:09:01 +03:00
b2e10d7e6e Kernel: Remove unnecessary locks 2025-05-05 19:08:57 +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
c0181820a9 ports/tinygb: Set title like sdl frontend does 2025-05-05 01:10:41 +03:00
76d4e6bd18 LibGUI: Add support for changing window title 2025-05-05 01:10:05 +03:00
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
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
9ff9d679e9 Kernel: Fix text mode cursor
Apparently text mode renders cursor in the *foreground* color. My
current clear function used the same color for foreground and background
making the cursor effectively invisible.

Also cursor hiding is now done by moving the cursor off bounds (0, height)
some website I read said this to be valid even on VGA compatible cards
without disable bit.

http://www.osdever.net/FreeVGA/vga/textcur.htm
2025-04-25 02:31:33 +03:00
9f3f8f950a Kernel: Add better panic message for failed shutdown
ACPI shutdown does not work on the web emulator and running `poweroff`
crashes on `ASSERT_NOT_REACHED()`.
2025-04-25 01:52:33 +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