9b0f6b6595
Kernel, libc: Add O_EXCL
2022-10-27 07:55:59 +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
e1f58c0163
Kernel: If wrapping a line at screen bottom, scroll properly
2022-10-26 20:14:24 +02:00
a4e430d35e
Kernel: count the null byte while calculating how much stack space argv will use
2022-10-26 20:05:24 +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
af452e2b2a
Kernel, libc: Add dup2()
2022-10-25 18:58:06 +02:00
af46b8d9ac
Kernel: Cleanup file descriptor validation
2022-10-25 18:35:17 +02:00
ec2c314234
Kernel: Add /dev/null
2022-10-25 17:59:55 +02:00
d458c5c848
Fix kernel/Makefile
2022-10-24 20:52:11 +02:00
0dec5f7bad
libc: Add dummy getcwd()
2022-10-24 17:05:28 +02:00
58b01b74e2
Kernel, libc: Add stat()
2022-10-23 18:35:32 +02:00
0c04246300
Next version!
2022-10-23 17:24:18 +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
14367f07b5
Kernel: Add support for getdents() to DeviceFS
2022-10-23 14:05:55 +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
cf94ca2a4e
Kernel: Update libk's string.h
2022-10-22 19:06:06 +02:00
437f51add7
Kernel: move over the mem* functions from libc
2022-10-22 19:04:35 +02:00
20429929dd
InitRD: Bump up the filesystem limits
2022-10-22 17:23:22 +02:00
58ca030711
initrd: warn when failing to register stuff
2022-10-22 17:21:34 +02:00
fef7dd5867
Rename [moon-reaper] to [reaper]
2022-10-22 14:43:41 +02:00
bcdcfc4b45
Kernel: Add a pstat() system call
...
Not part of C or POSIX, but since there is no procfs right now, I thought it would be nice to have an interface to query process information.
It works like this: you pass the process ID and a pointer to a struct pstat (can be null).
If the process ID is -1, the kernel picks the process with the highest PID.
Then, if the pointer to a pstat struct is not null, the kernel fills it in with the process's information, and returns the process's PID.
2022-10-22 14:26:29 +02:00
6816a5b11f
Scheduler: do not reboot on PID 1 exit if we are in a test
2022-10-22 11:56:08 +02:00
0faabe02e5
Kernel, libc: Implement O_CLOEXEC
2022-10-22 10:28:02 +02:00
b2f5a0502f
Kernel, libc: Implement O_NONBLOCK
2022-10-21 21:51:03 +02:00
da61e3648f
Kernel: Implement blocking reads
...
This is a huge step forward!! bc actually runs now, without echo or backspace, but it runs!!
2022-10-21 21:26:19 +02:00
bef9158450
Kernel, libc: Add isatty() and F_ISTTY to fcntl()
2022-10-21 18:34:31 +02:00
93207820b3
libc: Add a few errors to errno.h
...
As well as ino_t, which I forgot in the fstat() commit :)
2022-10-21 18:34:01 +02:00
fcf191aa7a
Kernel, libc: Add fstat()
2022-10-21 18:31:09 +02:00
a06e1c5a21
VFS: Remove warning when file is not found
...
That is a common ocurrence.
2022-10-20 19:11:50 +02:00
f7cf395f71
Kernel, libc: Add access()
2022-10-20 19:03:24 +02:00
27448611b3
UserMemory: do not map refs into kernel memory
...
This is bad design. But it fails if mapped, since something overwrites KernelHeap.
2022-10-20 18:50:07 +02:00
712f4f5e51
KernelHeap: Add more debug logging
2022-10-20 18:49:33 +02:00
9d0dfbaedf
PMM: Log invalid frees
2022-10-20 18:49:12 +02:00
073c90e948
InitRD: leak an unused pointer so kmalloc() doesn't map memory all the time
2022-10-20 18:49:00 +02:00
cd9ecc1746
Kernel: Return EFAULT when the kernel believes the wstatus pointer is invalid
2022-10-20 08:20:56 +02:00
47bdfecedb
Devices: Add /dev/uptime
...
This file contains how many milliseconds have passed since boot at the time of reading it :)
2022-10-19 21:11:12 +02:00
1938a059a2
Kernel: Free the last spawned thread's PID on exit
2022-10-19 20:51:54 +02:00
51665a04b7
Kernel: Restart if init exits
2022-10-19 20:33:41 +02:00
7e9744419e
sh: Improve it
2022-10-19 20:16:21 +02:00
3c5c92c7c3
sh: Add a simple interactive shell
2022-10-19 19:42:05 +02:00
b035795eb3
Kernel: Move errno.h and (k)assert.h out of the main include directory
...
This is mostly so IDEs don't pick them up instead of the userspace headers :)
2022-10-19 17:41:23 +02:00
f3af3e252b
Kernel: refresh task_misbehave()
...
That function was severely outdated.
2022-10-19 17:26:36 +02:00
ef8ba3dec4
Kernel: Do not hang when a user task misbehaves
...
This was for testing/debugging. But we DEFINITELY don't want that.
2022-10-19 17:25:56 +02:00
656667812a
Kernel: reparent child processes to PID 1 when their parent exits
2022-10-19 17:16:01 +02:00
a29f7f8df2
Kernel: waitpid: support -1 as PID (wait for any child)
2022-10-19 17:15:30 +02:00
48d4a5910a
Kernel: Add a few convenience functions to manipulate userland memory
2022-10-19 17:13:16 +02:00
755242719c
VMM: Add a few memsets
...
This seems to fix exec() making weird page tables!!
2022-10-19 07:56:08 +02:00