d50ea76bdc
libc: Make tmpfile() create files in /tmp's filesystem
continuous-integration/drone/push Build is passing
2023-06-19 11:52:38 +02:00
f22689fcf5
libc: Add stubs for fflush() and ungetc()
continuous-integration/drone/push Build is passing
2023-06-19 10:48:02 +02:00
acfad51ac0
libc: Add freopen()
2023-06-19 10:46:08 +02:00
795b0ca8d4
libc/scanf: Some refactoring
continuous-integration/drone/push Build is passing
2023-06-19 01:05:32 +02:00
55d147841f
libc+tests: Add type modifiers and integer conversion specifiers to scanf()
2023-06-19 00:59:42 +02:00
8c2348c425
libc/scanf: Skip whitespace before %%
continuous-integration/drone/push Build is passing
2023-06-18 23:51:44 +02:00
25e9187826
libc+tests: Add basic support for the scanf family of functions
continuous-integration/drone/push Build is passing
2023-06-18 23:44:30 +02:00
e10cc2d954
libc: Add the internal TRY_OR_SET_ERRNO macro
...
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
6b4d41529e
libc: Fix execvp() calling the shell after an ENOEXEC
continuous-integration/drone/push Build is passing
2023-06-03 17:00:24 +02:00
d2334a67dd
apps: Add mktemp
continuous-integration/drone/push Build is passing
2023-06-03 12:15:57 +02:00
cc72a1655d
libc+libluna: Move libluna hooks out of libc and into a central place in libluna
continuous-integration/drone/push Build is passing
2023-06-03 11:18:52 +02:00
5c68d50070
libc: Add a very bare-bones locale.h
2023-05-31 22:12:50 +02:00
88d1da59e8
kernel+libc: Add access()
continuous-integration/drone/push Build is passing
2023-05-27 12:04:27 +02:00
bd8aaa917f
kernel+libc+ln: Add support for userspace hard link creation
continuous-integration/drone/push Build is passing
2023-05-27 11:32:40 +02:00
b0506bf88f
kernel: Add umask
continuous-integration/drone/push Build is passing
2023-05-26 22:27:49 +02:00
84c1871d30
libc: Check if a shell is available if system()'s command argument is NULL
2023-05-26 17:27:37 +02:00
1a6ad11462
kernel+libc+libos+ls: Add readlink()
continuous-integration/drone/push Build is passing
2023-05-23 15:42:38 +02:00
cb205c851c
libc: Add symlink(), symlinkat(), and lstat()
2023-05-20 21:49:25 +02:00
47d505dcbb
libc: Add getline() and getdelim()
continuous-integration/drone/push Build is passing
2023-05-20 15:36:30 +02:00
6de90b3c93
libc: Add getrusage()
2023-05-20 12:48:17 +02:00
a7c6163e7c
libc: Add gettimeofday()
2023-05-20 12:05:22 +02:00
dc169124cc
libc: Add fchown, fchmod, and some POSIX feature test macros
continuous-integration/drone/push Build is passing
2023-05-19 19:59:20 +02:00
1506331872
kernel+libc: Add the pstat() system call
...
Luna-specific, but I like it.
2023-05-18 21:48:47 +02:00
0dbfbe6395
libc+apps: Avoid calling endpwent() and endgrent() after every call to get{pw,gr}{nam,uid,gid}
2023-05-18 21:47:46 +02:00
84bed3ceb3
kernel+libc: Remove mknod()
...
continuous-integration/drone/push Build is passing
Now that we automatically create files in /dev, mknod() is not needed anymore.
2023-05-18 19:42:14 +02:00
1f4c4928cc
kernel+libc+apps: Add mount and umount syscalls, libc wrappers, and utilities
continuous-integration/drone/push Build is passing
2023-05-17 20:30:15 +02:00
18130847c1
libc: Fix some environment-related bugs
2023-05-11 20:09:46 +02:00
411c6c40cd
kernel: Add the fchmodat() and fchownat() system calls
continuous-integration/drone/push Build is passing
2023-05-11 19:49:03 +02:00
4a3a92e9d4
libc: Move chmod from unistd.h to sys/stat.h
...
continuous-integration/drone/push Build is passing
Apparently that's where it's supposed to be.
2023-05-11 19:40:34 +02:00
efc6d03f23
kernel+libc: Add support for unnamed pipes
continuous-integration/drone/push Build is passing
2023-05-10 22:48:31 +02:00
1a2fce5316
kernel+libc: Add the O_TMPFILE open flag and the tmpfile() function
continuous-integration/drone/push Build is passing
2023-05-09 22:04:34 +02:00
d7fee26aa2
initrd+libc: Add /etc/group and grp.h
2023-05-06 12:01:47 +02:00
349ba0acb1
libc: Add syscall wrappers for unlinkat() and openat()
continuous-integration/drone/push Build is passing
2023-05-05 18:50:35 +02:00
58eb2d7703
libc: Print failed assertions to stderr instead of stdout
...
continuous-integration/drone/push Build is passing
This removes two FIXMEs from the time there was no stderr.
2023-05-04 16:37:13 +02:00
1215c38d75
libc: Add mkdtemp() and mkstemp()
...
continuous-integration/drone/push Build is passing
No mktemp() though, as it has race conditions and was removed in POSIX.1-2008.
2023-05-03 16:43:30 +02:00
a0b45a51de
libc: Add rand() + srand()
...
continuous-integration/drone/push Build is passing
Very basic random number generator, but that's what rand() is.
If you want secure numbers then use arc4random() or something idk
2023-05-02 21:20:24 +02:00
d1801d484c
libc: Add qsort()
2023-05-02 20:56:27 +02:00
0fad179485
apps+libc+libos: Remove _LUNA_SYSTEM_ERROR_EXTENSIONS and reorder headers
...
continuous-integration/drone/push Build is passing
libluna/libos headers can now go after errno.h, so there's no reason to keep them separate.
2023-05-02 10:51:53 +02:00
052ae4902e
libluna: Remove EFIXME and make others declare error_string() and error_name()
...
Closes #26 .
2023-05-02 10:51:53 +02:00
2572d5b238
libc: Add wrapper for the fstatat() system call
2023-05-01 20:00:43 +02:00
7fbc644753
libc: Add clearenv
continuous-integration/drone/push Build is passing
2023-05-01 19:06:31 +02:00
967758d464
libc: Implement setenv() and unsetenv()
continuous-integration/drone/push Build is passing
2023-04-30 14:46:34 +02:00
ac4bbd135b
libos: Add Directory::list()
continuous-integration/drone/push Build is passing
2023-04-28 22:41:44 +02:00
3e277b5d6f
libos: Introduce os::Directory
2023-04-28 21:16:43 +02:00
97e9fceaa4
kernel+libc: Add dup2()
continuous-integration/drone/push Build is passing
2023-04-25 20:37:30 +02:00
188a97cf54
libc: Add execlp
continuous-integration/drone/push Build is passing
2023-04-25 20:25:51 +02:00
89fd57dea4
libc: Propagate all errors in execl() and execvpe() + add execle().
continuous-integration/drone/push Build is passing
2023-04-25 17:43:11 +02:00
403b0f6b94
kernel+libc+init: Add a way to modify the system hostname
continuous-integration/drone/push Build is passing
2023-04-24 21:20:44 +02:00
cfb4baab4b
apps: Add uname
continuous-integration/drone/push Build is passing
2023-04-24 21:02:04 +02:00
02f8a50b9d
kernel: Replace unlink() with unlinkat()
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()
continuous-integration/drone/push Build is passing
2023-04-15 20:26:15 +02:00
8c4ead0c0f
libc: Add more conversion specifiers to strftime
2023-04-14 21:08:50 +02:00
b7df596f8a
libc: Add strftime()
continuous-integration/drone/push Build is passing
2023-04-13 21:09:27 +02:00
417e505750
kernel+libc: Add unlink(), rmdir(), remove()
2023-04-12 18:11:36 +02:00
427662d5f1
kernel+libc: Add getcwd()
2023-04-11 22:45:13 +02:00
2a967f4b8b
kernel+libc: Add chdir()
2023-04-11 22:15:21 +02:00
13c9caa856
kernel+libc: Add stat() + fstat()
continuous-integration/drone/push Build is passing
2023-04-10 19:56:03 +02:00
3e5957f9fc
libc: Add ioctl() syscall wrapper
2023-04-09 11:24:13 +02:00
e5a3bbcbbc
libc: Allow empty fields in the password file
continuous-integration/drone/push Build is passing
2023-04-08 22:19:51 +02:00
7667f49d62
libc: Add a password file and pwd.h
2023-04-08 16:30:18 +02:00
059c2bfa3f
kernel+libc: Add chown and chmod
2023-04-08 14:47:34 +02:00
3da1849c99
kernel+libc: Add set* and get* syscalls for UIDs and GIDs
2023-04-08 13:50:18 +02:00
208fdd64ac
execvpe: Execute a shell if errno == ENOEXEC
continuous-integration/drone/push Build is passing
2023-04-08 12:28:26 +02:00
eb3fb04734
libc: Add system()
continuous-integration/drone/push Build is passing
2023-04-08 12:18:52 +02:00
9bb1720cca
libc: Add execvp() and execvpe()
continuous-integration/drone/push Build is passing
2023-04-07 15:39:10 +02:00
3a28771520
kernel+libc+apps: Add support for environment variables
2023-04-07 15:03:38 +02:00
d07b00a892
all: Move all warning flags to a common CMake variable
2023-04-07 12:02:49 +02:00
cb67b41a39
libc: Set errno in mbstowcs() and wcstombs()
2023-04-07 10:55:22 +02:00
47ee52dc0a
libc: Add execl()
continuous-integration/drone/push Build is failing
2023-03-30 21:28:39 +02:00
2fbc6105d7
kernel+libc: Add O_DIRECTORY and use it in opendir()
continuous-integration/drone/push Build is passing
2023-03-29 22:23:52 +02:00
3e30f0a88c
libc: Add opendir, readdir and closedir
2023-03-29 01:06:57 +02:00
0d54d0ece1
libc: Check for a compatible mode in fdopen()
continuous-integration/drone/push Build is passing
2023-03-28 20:56:00 +02:00
d00ca0d3ed
libc: Add setjmp.h
...
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
continuous-integration/drone/push Build is passing
2023-03-24 21:33:20 +01:00
e76ccd6c4c
kernel+libc+init: Add getppid() and wait()
continuous-integration/drone/push Build is passing
2023-03-24 17:39:55 +01:00
b6fb5f3dfe
kernel+libc: Implement waitpid()
continuous-integration/drone/push Build is passing
2023-03-23 22:42:24 +01:00
41c7e3780d
kernel: Add support for exit codes and start preparing for waitpid()
2023-03-23 22:25:56 +01:00
0e9890901f
libc: Add (f)getc, getchar, and fgets
2023-03-23 21:35:09 +01:00
bab9600be5
libc: Add creat()
continuous-integration/drone/push Build is failing
2023-03-19 19:21:36 +01:00
31ef96ebfc
libc: Add stdin
2023-03-19 19:19:20 +01:00
40f01c825d
libc: Add fork()
continuous-integration/drone/push Build is passing
2023-03-18 23:58:56 +01:00
e664af4c2b
libc: Add execv()
continuous-integration/drone/push Build is passing
2023-03-18 22:31:16 +01:00
a4ac3c85ed
kernel+libc: Copy argv to userspace
continuous-integration/drone/push Build is passing
2023-03-18 22:25:19 +01:00
cb1ef3e404
libc: Add (v)fprintf and make (v)printf use that
...
continuous-integration/drone/push Build is passing
Let's free libc of console_write!
2023-03-18 20:11:19 +01:00
629ed9e43b
libc: Start switching to /dev/console for console IO and add a proper init
2023-03-18 19:23:18 +01:00
8c831a6906
libc: Add mknod()
continuous-integration/drone/push Build is passing
2023-03-18 09:13:31 +01:00
08c888eaae
kernel+libc: Remove (de)allocate_memory and replace it with POSIX mmap
continuous-integration/drone/push Build is passing
2023-03-14 20:43:15 +01:00
80a897fbc5
libc: Add fileno()
continuous-integration/drone/push Build is passing
2023-03-12 17:38:35 +01:00
9e9f268562
libc: Make fopen() parse the mode string
2023-03-12 17:36:04 +01:00
d66506256d
kernel/VFS+libc: Introduce modes
continuous-integration/drone/push Build is passing
2023-03-12 16:55:46 +01:00
682d3c753e
kernel+libc: Add mkdir()
continuous-integration/drone/push Build is passing
2023-03-12 15:32:09 +01:00
b54a7f3a80
kernel+libc: Add O_* flags and parse them in open()
...
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
continuous-integration/drone/push Build is passing
2023-03-12 13:15:24 +01:00
292433dc39
kernel+libc: Add the write() system call, and fwrite()
2023-03-12 11:37:41 +01:00
377b8bea43
libc: Adjust comment in string.cpp
continuous-integration/drone/push Build is passing
2023-03-12 10:45:21 +01:00
5c0104111d
libc: Implement fopen, fclose, fread, feof, ferror, and clearerr
continuous-integration/drone/push Build is passing
2023-03-12 10:23:08 +01:00
c0a7f6776f
kernel+libc: Add getpid()
continuous-integration/drone/push Build is passing
2023-03-11 22:19:58 +01:00
8fa72f3cf0
kernel+libc: Implement read()
continuous-integration/drone/push Build is passing
2023-03-11 18:02:50 +01:00
810c4bc257
kernel+libc: Start interfacing with the VFS from userspace (open & close)
...
This commit adds open and close syscalls to the kernel, and adds matching wrappers to libc.
No read/write support, so file descriptors are kind of useless for now.
2023-03-11 17:45:20 +01:00
de38eb6877
luna: Remove pure_cstyle_format
...
continuous-integration/drone/push Build is passing
It was causing a lot of code duplication. If someone doesn't have errors, just return {} from the callback and unwrap the Result.
2023-03-02 13:38:21 +01:00