Commit Graph

180 Commits

Author SHA1 Message Date
aabff7a1d3 libc: Add mktime() 2022-10-30 20:46:25 +01:00
f83c78bcad libc: Implement gettimeofday() and instantly mark it as deprecated 2022-10-30 20:40:05 +01:00
7bd1cba1e3 libc: Stub out bsearch() 2022-10-30 20:02:03 +01:00
52d4f34f05 Kernel, libc: Implement umask() 2022-10-30 19:55:38 +01:00
0d443385e9 libc: Add system() 2022-10-30 19:43:37 +01:00
e244c150c2 Kernel, libc: Add ECHILD 2022-10-30 19:24:26 +01:00
d186d573dd libc: Document strftime in time.h 2022-10-30 17:48:54 +01:00
e640c6e245 Kernel, libc, userspace: Add file timestamps (atime,ctime,mtime) 2022-10-30 09:57:17 +01:00
324fb42ee2 libc: Add support for the new time functionality in the kernel 2022-10-30 09:08:29 +01:00
32e09d3417 libc: Stub out more functionality so part of binutils builds 2022-10-29 09:39:12 +02:00
7d0e442cde libc: Add /etc/passwd and the pwd.h API
getpwent, getpwnam, getpwuid... they may have been a pain to implement but once they work they're awesome :)

Right now passwords are stored in plaintext in the world-readable passwd file, which is not good.
But I don't have any sort of hashing implemented so it'll stay that way for now.
2022-10-28 20:55:00 +02:00
8f0e358360 libc: Add setuid, setgid, seteuid, setegid 2022-10-28 17:52:39 +02:00
09a615bd99 Kernel, libc: Expose processes' UID and GID in pstat() 2022-10-28 17:31:34 +02:00
17671fd435 libc: Implement getuid, geteuid, getgid, getegid 2022-10-28 17:24:28 +02:00
1c4f1ab867 Kernel, libc: Add setuid() and setgid() system calls 2022-10-28 17:19:26 +02:00
c312d81de4 Kernel, libc: Add st_uid and st_gid to stat, and handle st_mode differently 2022-10-28 17:13:20 +02:00
16dc227a05 Kernel: Add UID and GID fields to Task 2022-10-28 17:06:13 +02:00
d93a4062a2 libc: Do not use the heavy variadic syscall() function for wrappers
That function is meant more for user programs, and should still be rarely used, since it's not portable.
Instead, we already know the number of arguments. We just call __lc_fast_syscallN, which also sets errno.
2022-10-27 17:42:00 +02:00
0eb0ca4028 libc: Add an empty locale.h 2022-10-27 17:23:59 +02:00
7155cf8d6b libc: Add alloca.h 2022-10-27 17:23:50 +02:00
703b0a1435 libc: Make tv_usec in timeval signed, as it should be 2022-10-27 17:20:46 +02:00
50cda50f01 Kernel, libc: Add F_GETFD, F_SETFD and FD_CLOEXEC 2022-10-27 17:17:24 +02:00
fcf53ef6a5 Kernel: Make waitpid() block by default unless WNOHANG is specified 2022-10-27 17:05:42 +02:00
da8a3de480 It's actually S_ISCHR in this case 2022-10-27 08:10:35 +02:00
cdb1f46b93 libc: Add S_ISDEV 2022-10-27 08:09:10 +02:00
f9dad8a8d6 Kernel, libc: Stub out struct stat.st_dev 2022-10-27 08:01:33 +02:00
9b0f6b6595 Kernel, libc: Add O_EXCL 2022-10-27 07:55:59 +02:00
211c76f920 libc: Provide a definition for timeval 2022-10-27 07:55:02 +02:00
1c35eabb2b open(): Add a third optional mode argument 2022-10-27 07:52:57 +02:00
a3c6635f3e Kernel, libc: Add O_APPEND and stub out O_CREAT and O_TRUNC 2022-10-27 07:43:55 +02:00
41f7232b77 Devices: Return EOF after first read for some devices
Still not optimal.
2022-10-26 20:54:47 +02:00
8eb986df63 libc: Add program_invocation_name
This is a GNU extension, but I'm fine with adding it to libc.
It's guarded by the _GNU_SOURCE feature test macro anyways.
2022-10-26 19:17:05 +02:00
7d20c507b1 Kernel, libc, userspace: Implement command-line arguments (argv)
The only thing missing now is for sh to pass them on.
2022-10-26 18:57:06 +02:00
9b1e50ae27 libc: Add EACCES 2022-10-25 20:29:56 +02:00
57658f2d3e libc: Add EOPNOTSUPP 2022-10-25 20:28:12 +02:00
13fce2c4b3 libc: Update headers with more comments 2022-10-25 19:27:24 +02:00
af452e2b2a Kernel, libc: Add dup2() 2022-10-25 18:58:06 +02:00
0dec5f7bad libc: Add dummy getcwd() 2022-10-24 17:05:28 +02:00
b615166373 libc: Stub out tmpfile() as well as add an empty math.h 2022-10-23 18:58:48 +02:00
58b01b74e2 Kernel, libc: Add stat() 2022-10-23 18:35:32 +02:00
865018e7f8 libc: Implement dirfd, rewinddir, telldir and seekdir 2022-10-23 14:59:06 +02:00
e457b88b04 Kernel, libc: Implement O_DIRECTORY and use that in dirent.h 2022-10-23 14:46:27 +02:00
8bf2904d74 libc: Implement a basic subset of dirent.h 2022-10-23 14:41:45 +02:00
78d72c2f0c Kernel, libc: Add a getdents() system call
This is meant to be a low-level interface to implement dirent.h on top of.
2022-10-23 14:03:46 +02:00
35616993f8 libc: Add div(), ldiv(), and lldiv() 2022-10-23 12:26:48 +02:00
51bd7de17b libc: Patch mman.h so libgcov builds 2022-10-23 12:10:05 +02:00
43180b777e libc: Stub out qsort() 2022-10-23 11:19:08 +02:00
9dc8bfbdce libc: Define a dummy FILENAME_MAX 2022-10-23 11:17:22 +02:00
bd8825231a libc: Stub out sscanf() 2022-10-23 11:16:36 +02:00
51580bb846 libc: Add abs(), labs() and llabs()
Just needed to alias them to GCC builtins.
2022-10-23 11:10:26 +02:00