Commit Graph

7 Commits

Author SHA1 Message Date
6088031c49 stdio: log stuff more 2022-10-11 17:19:03 +02:00
81815a0bdd Refactor sys/stdio.cpp 2022-10-11 17:10:44 +02:00
2a755fcd93 sys_open(): actually return EMFILE if the process has used all of its file slots 2022-10-11 17:03:16 +02:00
da2ede3450 Kernel, libc, userspace: Implement file descriptors
Kernel: Implement a descriptor struct which stores the opened node and read offset, and give each task 8 of those.
Implement three syscalls: sys_read, sys_open and sys_close (sys_write still writes to the console instead of using a fd, for now)
Implement three new errors: ENOENT, EBADF and EMFILE.

libc: Implement the new errors, and the new syscalls in syscall().
Also fix _RETURN_WITH_ERRNO() to set errno correctly, which was making strerror() return null, thus crashing perror().

userspace: make init demonstrate the new file API.
2022-10-10 20:21:39 +02:00
ba4806f9d3 Syscall: do not send user programs' output to the serial console 2022-10-01 15:53:55 +02:00
0e46ea8ada Finally, a text renderer that actually works. We can now see the kernel messages without a serial port :) 2022-10-01 14:27:45 +02:00
f25014a8ed refine syscalls 2022-09-29 19:17:43 +02:00