d3030d2111
libc: Stub out strtod()
2022-11-09 11:37:52 +01:00
c6ce7a5358
libc: Add bsearch (with a test!!)
2022-11-06 17:34:35 +01:00
1025248cc7
libc: Add qsort (with a test!!)
2022-11-06 17:16:08 +01:00
da182f1c2f
libc: Add mktemp() and mkdtemp(), along with a test for mktemp
2022-11-05 18:07:45 +01:00
534500cda0
Implement enough runtime for binutils to compile
2022-10-31 12:29:53 +01:00
7bd1cba1e3
libc: Stub out bsearch()
2022-10-30 20:02:03 +01:00
0d443385e9
libc: Add system()
2022-10-30 19:43:37 +01:00
32e09d3417
libc: Stub out more functionality so part of binutils builds
2022-10-29 09:39:12 +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
19ee21ae5a
libc: Make string_to_integer_type static
2022-10-23 12:28:25 +02:00
35616993f8
libc: Add div(), ldiv(), and lldiv()
2022-10-23 12:26:48 +02:00
43180b777e
libc: Stub out qsort()
2022-10-23 11:19:08 +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
91969d4d48
libc: strtoul's endptr must not be const
2022-10-22 12:12:52 +02:00
fcd6d9b9f5
Add FIXME
2022-10-21 18:37:18 +02:00
6d7a8a0d0b
libc: Add very basic strtoul()
...
As well as returning NULL in getenv() instead of aborting.
2022-10-21 18:32:46 +02:00
f50017912d
libc: Implement atoi(), atol() and atoll()
2022-10-15 14:02:24 +02:00
2395c7a871
libc: Implement _Exit
...
Exactly the same as _exit, but in stdlib.h instead of unistd.h
2022-10-15 14:02:10 +02:00
8398b2e2e4
libc: Change bits/macros.h to use a __lc_ prefix for internal macros
...
That way, we don't pollute user programs with our own 'noreturn' and 'deprecated' macros
2022-10-15 09:52:37 +02:00
743aedcd49
libc: Implement atexit() and _exit()
...
exit() now calls registered handlers before calling _exit().
And initialize_libc() can now register a handler to close stdout and stderr on program termination!! :)
2022-10-12 20:41:55 +02:00
ffc223c2cf
libc: Document functions in stdlib.h
...
Also, add prototypes for calloc() and realloc(), which were already implemented but not in the header.
2022-10-12 11:30:21 +02:00
f83a6ace51
Kernel, libc: Add support for providing a status code to exit()
...
The exit() libc function already accepted an integer, but didn't pass it on to the kernel since we had no mechanism for it to do that.
Now, the kernel stores a task's exit status to display it later (and in the future, return it to userspace via wait()/waitpid())
2022-10-08 17:56:40 +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
ae95a528f2
Make function stubs in libc loudly abort instead of silently failing
2022-10-02 18:10:53 +02:00
3c6c94adda
Add a proper syscall() function to unistd.h
2022-10-02 17:02:15 +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