Commit Graph

59 Commits

Author SHA1 Message Date
ca3f3fbe16
kernel+libc: Add basic Unix sockets (creation and binding) 2023-07-27 16:37:10 +02:00
48f5f6ea33
kernel+libc+libos: Add inode type for sockets 2023-07-27 16:35:27 +02:00
905e71527e
libc: Actually implement sigsetjmp() and siglongjmp() 2023-07-24 19:39:22 +02:00
b12f42cfe2
libc: Add SIGWINCH
Not used for anything at the moment, I guess if a user program wants to send it...

Required by bc.
2023-07-24 19:11:06 +02:00
de6fe7f7c2
kernel+libc+sh: Make the TTY device actually follow termios rules
All checks were successful
continuous-integration/drone/push Build is passing
Like, so much more termios compatibility!
2023-07-13 20:33:20 +02:00
efd5bae7a5
kernel: Implement querying the terminal window size
Some checks failed
continuous-integration/drone/push Build is failing
2023-07-12 22:09:28 +02:00
546d900454
libc+apps: Start implementing POSIX-compliant termios.h wrappers around tty ioctls
All checks were successful
continuous-integration/drone/push Build is passing
2023-07-12 19:23:06 +02:00
81e1fdf81e
kernel+libc+login+sh+su: Implement foreground and background process groups in the default console
All checks were successful
continuous-integration/drone/push Build is passing
Also, the console sends SIGINT to the foreground process group when ^C is pressed!
2023-07-12 13:49:37 +02:00
71ff763dd9
kernel+libc: Add the SIGTTIN and SIGTTOU signals 2023-07-12 13:45:36 +02:00
0fed45d1c6
libc: Implement _exit()
Apparently, I implemented _Exit in stdlib.h but forgot to add _exit to unistd.h...
2023-07-11 11:49:10 +02:00
86d14e0d0e
kernel+libc: Add the SA_NODEFER and SA_RESETHAND flags for sigaction()
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
2023-07-10 21:54:04 +02:00
e0b5acb2ab
libc: Make struct sigaction C-compatible
All checks were successful
continuous-integration/drone/pr Build is passing
2023-07-10 21:19:43 +02:00
8066e8f1d8
kernel+libc: Implement sigprocmask() and friends
Some checks failed
continuous-integration/drone/pr Build is failing
2023-07-10 21:01:59 +02:00
60d68b74e1
kernel: Define a good set of default signals
Most of these have POSIX-defined numbers.
2023-07-10 20:30:37 +02:00
cde467ee46
kernel: Support returning termination signals from waitpid
All checks were successful
continuous-integration/drone/pr Build is passing
2023-07-10 20:16:06 +02:00
15d6aae701
kernel+libc: Implement basic signals 2023-07-10 19:46:57 +02:00
e10cc2d954
libc: Add the internal TRY_OR_SET_ERRNO macro
All checks were successful
continuous-integration/drone/push Build is passing
Similar mechanism to TRY(), but propagating C-like errors instead of Results on failure.
2023-06-03 20:20:01 +02:00
8bcec00a9d
kernel: Change the timer subsystem to use timespecs natively
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-03 13:15:10 +02:00
5c68d50070
libc: Add a very bare-bones locale.h 2023-05-31 22:12:50 +02:00
d572d56460
libc: Add dummy time fields to struct stat
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 12:22:06 +02:00
8d90d146b2
libc: Fix including sys/time.h
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 12:06:00 +02:00
88d1da59e8
kernel+libc: Add access()
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-27 12:04:27 +02:00
62e14e7580
kernel+libos+apps: Support block devices and disallow seeking character devices or pipes
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-26 20:27:47 +02:00
3a51807fa6
kernel+stat: Handle pipes correctly in stat()
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 20:54:25 +02:00
1094042a7d
kernel: Implement st_dev and st_rdev
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-23 20:45:24 +02:00
67a9d130e2
kernel: Add initial support for symbolic links :D 2023-05-20 21:49:24 +02:00
01111442d3
kernel: Add the getrusage() system call 2023-05-20 12:48:07 +02:00
a7c6163e7c
libc: Add gettimeofday() 2023-05-20 12:05:22 +02:00
1506331872
kernel+libc: Add the pstat() system call
Luna-specific, but I like it.
2023-05-18 21:48:47 +02:00
1a2fce5316
kernel+libc: Add the O_TMPFILE open flag and the tmpfile() function
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-09 22:04:34 +02:00
458e0a87cc
libc: Fix S_IS* macros 2023-05-01 20:00:10 +02:00
9eab0886b6
kernel+libc: Add uname()
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-24 20:34:44 +02:00
4f6e020196
kernel+libc: Add framebuffer ioctls
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-21 18:25:53 +02:00
02f8a50b9d
kernel: Replace unlink() with unlinkat()
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-18 19:36:29 +02:00
82e7b0e860
kernel: Introduce *at() syscall framework, add openat() and fstatat()
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-15 20:26:15 +02:00
13c9caa856
kernel+libc: Add stat() + fstat()
All checks were successful
continuous-integration/drone/push Build is passing
2023-04-10 19:56:03 +02:00
fee33e7a14
kernel: Add ioctls() for termios stuff to ConsoleDevice
Only handles echoing for now.
2023-04-09 11:23:57 +02:00
2fbc6105d7
kernel+libc: Add O_DIRECTORY and use it in opendir()
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-29 22:23:52 +02:00
0847cfcb65
kernel: Add a getdents() syscall
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-28 21:28:56 +02:00
6239ed83c7
kernel+libc: Add F_GETFD, F_SETFD, F_GETFL and F_SETFL to fcntl 2023-03-28 20:55:38 +02:00
d00ca0d3ed
libc: Add setjmp.h
All checks were successful
continuous-integration/drone/push Build is passing
Partially taken from pre-rewrite Luna, converted setjmp.asm to GNU assembly.
2023-03-28 19:40:48 +02:00
770286a19d
kernel+libc: Implement fcntl() for F_DUPFD and F_DUPFD_CLOEXEC
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-24 21:33:20 +01:00
374a9ff7b8
kernel+libc: Implement O_CLOEXEC 2023-03-24 21:19:24 +01:00
b6fb5f3dfe
kernel+libc: Implement waitpid()
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-23 22:42:24 +01:00
51f0bdff0e
kernel+libc: Add O_NONBLOCK
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-19 11:25:14 +01:00
7173c05a22
kernel: Add support for special device files and add a mknod() syscall 2023-03-18 09:10:33 +01:00
08c888eaae
kernel+libc: Remove (de)allocate_memory and replace it with POSIX mmap
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-14 20:43:15 +01:00
d66506256d
kernel/VFS+libc: Introduce modes
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-12 16:55:46 +01:00
b54a7f3a80
kernel+libc: Add O_* flags and parse them in open()
All checks were successful
continuous-integration/drone/push Build is passing
O_RDONLY, O_WRONLY, O_RDWR, O_TRUNC, O_CREAT and O_EXCL are fully implemented.

O_APPEND is partially implemented.

Other flags are not here yet.
2023-03-12 14:43:58 +01:00
7e655e320a
kernel+libc: Add the lseek() syscall, and fseek, ftell, rewind, fsetpos, and fgetpos
All checks were successful
continuous-integration/drone/push Build is passing
2023-03-12 13:15:24 +01:00