Commit Graph

15 Commits

Author SHA1 Message Date
5f8376409d Kernel, libc: Implement EFAULT 2022-10-12 19:25:35 +02:00
4091799701 Kernel, libc: Add ENOEXEC (Exec format error) 2022-10-12 19:15:44 +02:00
a3362429d3 libc: Update strerror() 2022-10-12 12:01:18 +02:00
c8c4d31cca Add a FIXME to string.cpp 2022-10-12 11:20:48 +02:00
19ee20b6f5 libc: Document the functions in string.h 2022-10-12 11:19:14 +02:00
feb8c1c31b libc: Implement strchr() 2022-10-11 19:50:18 +02:00
1278cec065 VFS: Add a 'type' flag to Nodes, implement EISDIR 2022-10-11 17:48:11 +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
ce6ec3585c Kernel, libc: Add ENOSYS
This error is returned by the kernel/C Library when an attempt is made to use a system call that doesn't exist.
2022-10-08 14:18:25 +02:00
8f0b6d80b2 libc: Implement strerror() 2022-10-08 12:29:06 +02:00
028a1b1a3c libc: Enable even more warnings 2022-10-07 18:19:06 +02:00
48b858af5a libc: Add strncpy and strncat, and deprecate strcpy and strcat (which, since we're building with -Werror, is an instant ban from using these functions) 2022-10-04 19:08:59 +02:00
db9e1ba17c Add a memclr() SSE-optimized function 2022-10-02 19:13:33 +02:00
ae95a528f2 Make function stubs in libc loudly abort instead of silently failing 2022-10-02 18:10:53 +02:00
fcf5923cc0 WIP: Add a C Library, let's try to compile a Hosted GCC cross-compiler using this! 2022-10-01 20:59:22 +02:00