c1a424a635
Kernel: Implement linux's eventfd
2026-03-17 20:24:06 +02:00
0299d4d44e
Kernel/LibC: remove SYS_TERMID
...
This syscall is not needed. /dev/tty is already a symlink to the
controlling terminal. Also this syscall did not handle pseudo terminals
2026-01-16 15:57:36 +02:00
4ec8f4a4bf
Kernel/LibC: Implement rename{,at}
2025-11-22 23:55:10 +02:00
89c0ff1a9d
Kernel/LibC: Replace SYS_{GET,SET}_TLS with SYS_{SET,GET}_{FS,GS}BASE
...
This allows userspace to use both registers
2025-11-13 04:20:53 +02:00
04d24bce70
Kernel/LibC: Implement {recv,send}msg as syscalls
...
This also removes the now old recvfrom and sendto syscalls. These are
now implemented as wrappers around recvmsg and sendmsg.
Also replace unnecessary spinlocks from unix socket with mutexes
2025-11-10 01:40:33 +02:00
0dfe0b7023
Kernel/LibC: Implement sigaltstack
2025-08-21 02:52:49 +03:00
def236b7cd
Kernel/LibC: Implement sigwait
2025-08-20 20:16:19 +03:00
247743ef9c
Kernel/LibC: Implement sigsuspend
2025-08-20 20:14:54 +03:00
ef6ee78fd1
Kernel/LibC: Implement chroot
2025-08-11 14:07:37 +03:00
af0bca74e4
Kernel/LibC: Implement {get,set,init}groups
...
This allows dropping /etc/group parsing from the kernel :D
2025-08-10 19:57:31 +03:00
f1369c8fd6
Kernel/LibC: Implement mprotect
...
There may be some race conditions with this but i think this is good
enough to start with
2025-08-05 03:09:24 +03:00
5940e912b3
Kernel/LibC: Implement simple futex
2025-08-05 03:09:24 +03:00
e72e1e4e43
LibC: Add _SC_NPROCESSORS_{CONF,ONLN)
2025-07-31 22:47:40 +03:00
93e5d09a63
Kernel/LibC: Implement flock
2025-06-28 16:55:13 +03:00
31bcad2535
LibC: Implement truncate
2025-06-01 13:48:03 +03:00
b75970958e
Kernel/LibC: Implement unlinkat
2025-06-01 13:48:03 +03:00
56fdf6002c
Kernel/LibC: Implement pthread_kill
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
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
44b762f916
Kernel/LibC: Implement pwrite and make pread non-locking
2025-05-28 03:10:01 +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
6f9dc2a9b8
Kernel/LibC: Implement fchdir, cleanup chdir and getcwd
2025-04-19 21:28:31 +03:00
4bcd3ed86f
Kernel: Start working on TLS, add SYS_{SET,GET}_TLS
2025-04-15 23:31:17 +03:00
be786be67d
Kernel/LibC: Implement pthread_join
2025-04-02 12:58:39 +03:00
9066e62a97
Kernel/LibC: Implement sched_yield
2025-04-02 12:58:39 +03:00
5549696c3a
Kernel/LibC: Implement pthread_self
2025-04-02 02:39:29 +03:00
c1618e2b5d
Kernel/LibC: Add basic support for pthread_{create,exit}
2025-04-01 23:26:13 +03:00
9893c90e74
Kernel: Remove SYS_DUP and implement it using fcntl F_DUPFD
2025-01-17 19:29:47 +02:00
713daf6cd3
Kernel/LibC: Add support for creating hardlinks
2024-12-03 16:12:26 +02:00
d58ca5f37a
Kernel/LibC: Implement symlink{,at}
2024-12-02 20:13:38 +02:00
a10ca47657
Kernel/LibC: Implement {,f}statvfs
2024-12-02 20:13:37 +02:00
ad1f175a39
Kernel/LibC: Implement getppid
2024-12-02 20:13:37 +02:00
6ed1435aeb
Kernel/LibC: Implement tcgetpgrp
2024-12-02 20:13:37 +02:00
747c3b2a4b
Kernel/LibC: Implement fsync
2024-12-02 20:13:37 +02:00
e431e90b20
Kernel/LibC: Implement all chown family function with fchownat
2024-09-17 18:35:01 +03:00
4aa466b948
Kernel/LibC: Implement all chmod family functions using fchmodat
2024-09-17 17:19:26 +03:00
3666525d24
Kernel/LibC: Implement readlink in terms of readlinkat
2024-09-17 16:38:15 +03:00
f1a4bbce53
Kernel/LibC: Implement all stat family functions with fstatat
...
This patch gets rid of 2 unnecessary syscalls!
2024-09-17 16:38:01 +03:00
708a720d9d
Kernel: Remove SYS_OPEN
...
This can be done with SYS_OPENAT with fd set to AT_FDCWD
2024-09-17 16:16:47 +03:00
d88ee5c9ee
Kernel/LibC: Implement creat with open
...
This allows getting rid of unnecessary SYS_CREATE. Directory creation
still has its own syscall, but I could combine it with SYS_OPEN also.
2024-09-17 15:55:53 +03:00
991ae4383a
Kernel/LibC: Implement fchmod
2024-08-25 15:07:42 +03:00
a5a097fa4a
Kernel/LibC: Add initial pseudo terminal support
...
This patch implements posix_openpt() and ptsname()
grantpt() and unlockpt() are left in LibC as stubs, as posix_openpt
currently does all of the needed work.
2024-08-11 01:02:59 +03:00
ad645f31d0
Kernel/LibC: Add setsid()
2024-08-11 00:58:12 +03:00
a33b63d066
Kernel/LibC: Implement alarm() and setitimer()
...
This makes vim able to start!
2024-08-01 21:09:56 +03:00
6de350ce9d
Kernel/LibC: Cleanup, fix and implement a lot of signal code
...
This patch implements sigsets and some of their usages
2024-08-01 17:01:18 +03:00
f0be4f86a6
LibC/Kernel: Implement access
2024-07-30 11:51:07 +03:00
e5bb843059
LibC/Kernel: Implement ttyname
2024-07-30 11:41:18 +03:00
681d8327f5
LibC/Kernel: Cleanup termios code
...
This is still not correct, but much better than it used to be
2024-07-30 11:10:43 +03:00