Commit Graph

2866 Commits

Author SHA1 Message Date
60d1c26114 Kernel: Fix race condition in FileBackedRegion creation 2025-06-01 13:48:03 +03:00
692ba43182 Kernel: Fix spinlock bugs found by the new spinlock security 2025-06-01 13:48:03 +03:00
6542a037df Kernel: Make spinlocks more safe
Kernel now makes sure thread is not holding any spinlocks when it tries
to lock a mutex or yield. Spinlocks are supposed to be only used for
short times without the possibility of yielding
2025-06-01 13:48:03 +03:00
9f4b451501 Kernel: Fix epoll deadlock
If epoll_wait and epoll_notify were called at the same time, there was a
possible deadlock when epoll was confirming the event from the inode
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
8392472bac ports: Add git port
This commit is pushed from banan-os :D
2025-05-29 00:31:40 +00:00
cd5b351ce4 Kernel: Fix fchmodat mode handling
Ignore file type bits instead of returning EINVAL if they are set
2025-05-29 03:24:31 +03:00
50024fbf8b ports/vim: Set EDITOR=vim in .shellrc 2025-05-29 01:20:30 +03:00
4d4fb3b6ec Kernel: Cleanup and fix pipe
pipe now sends SIGPIPE and returns EPIPE when writing and no readers are
open
2025-05-29 01:02:22 +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
2f37776614 Kernel: Notify epoll on new TCP connections 2025-05-28 03:10:01 +03:00
f778bca3f2 Kernel: Remove accidentally commited debug code :) 2025-05-28 03:10:01 +03:00
a945d19750 Kernel: Partially fix PCI PIN interrupt routing
Don't fail early if the first device is not the one we are looking for
2025-05-28 03:10:01 +03:00
7f04b2c96c Kernel: Fix E1000 interrupt handling
E1000 does not support MSI-X and thus does not generate RxQ0 interrupts.
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
79a2b84c81 Kernel: Fix process exit when there are multiple threads 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
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