71e15e94af
Kernel, libc and userspace: Add basic errno support.
...
Kernel: Add an errno.h header with definitions for each header,
and return those, negated, from syscalls when there is an error.
mmap() returns an invalid address with errno encoded, instead of
returning a negated errno; this address is encoded as ffffffffffffffEE
where EE is errno in hex.
libc: make syscall() return -1 and set errno on error, instead of
returning the raw return value of the system call. Also, add mmap()
and munmap() wrappers in sys/mman.h :).
userspace: make the memeater program show the value of errno
when allocating memory fails.
Things to improve: add perror() and strerror() to make the errno
experience even better! >.<
2022-10-08 12:06:09 +02:00
ad115e9bab
libc: Correct include guards
2022-10-08 11:32:01 +02:00
028a1b1a3c
libc: Enable even more warnings
2022-10-07 18:19:06 +02:00
952d8fa294
Be more strict with warnings
2022-10-05 17:34:22 +02:00
560b0a1705
libc: Rename the _ folder to bits, as used internally by libraries
2022-10-04 19:11:54 +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
a050ed9133
libc: add an internal macros.h header with headers to make attributes less verbose
2022-10-04 19:06:56 +02:00
c6ed8d2abb
libc: remove duplicate declaration of strcpy
2022-10-04 18:59:13 +02:00
885e39f60f
libc: fix printf to actually print correct more-than-one-digit numbers (hint: the bugfix was a very stupid one)
2022-10-03 20:30:12 +02:00
cb60e418b2
Add vprintf, (v)sprintf and (v)snprintf to libc + move the non v-printfs to stdio.cpp, since they can now call their v-variants and thus don't depend on internal_printf
2022-10-03 19:59:33 +02:00
9420484c9b
Do not use __builtin_alloca in puts (could overflow the stack for large strings)
2022-10-03 19:05:04 +02:00
34aa953dbc
Add printf() and puts(), quite primitive, looks like hex printing isn't there yet...
2022-10-03 19:00:10 +02:00
dae2ff8d50
Add mmap and munmap syscalls, and thus, add malloc and free to libc!! (yet again, thanks to the wonderful liballoc)
2022-10-02 20:45:04 +02:00
db9e1ba17c
Add a memclr() SSE-optimized function
2022-10-02 19:13:33 +02:00
1ecd24f5d6
Kernel: Add SSE support (enable SSE on boot and save context (user tasks only) on task switch)
2022-10-02 18:53:54 +02:00
ae95a528f2
Make function stubs in libc loudly abort instead of silently failing
2022-10-02 18:10:53 +02:00
8e6741ebd6
Rename SYS_version to SYS_getversion
2022-10-02 17:25:56 +02:00
3c6c94adda
Add a proper syscall() function to unistd.h
2022-10-02 17:02:15 +02:00
6bacded5cf
Update build system
2022-10-02 17:01:30 +02:00
f8a72f15c8
Adjust build system to be more flexible and to work with the new toolchain
2022-10-02 12:44:32 +02:00
dc0fd428d3
Syscalls return a value, right?
2022-10-02 10:47:59 +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