9 Commits

Author SHA1 Message Date
45afd3e243 Replace the rand() which reads from /dev/random with a Mersenne PRNG.
Much better now.

Also, it is seeded by reading from /dev/random at startup. Not sure if that's the best idea, but we'll see.
2022-10-15 16:46:54 +02:00
1043b0772d Make libc exit with a specific code if program initialization fails
Now you know, if a program exits with code -127 it's libc's fault :)
2022-10-14 21:26:46 +02:00
d5bc87099f libc: #define STDOUT_FILENO and STDERR_FILENO
Still missing stdin >.<
2022-10-14 21:24:18 +02:00
ccf8f404a8 libc: Make the stdio initialization code cleaner 2022-10-14 19:36:20 +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
be9026442e libc: Check for file descriptors 0 and 1, and if they exist do not close and reopen them 2022-10-12 20:19:45 +02:00
34c35163e4 libc: use the normal names that everybody uses for stdout and stderr 2022-10-12 17:15:57 +02:00
dfdc3b2d11 libc: close fds 0 and 1 before opening stdout and stderr 2022-10-12 17:14:49 +02:00
80ab982fe4 libc: make stdout and stderr functional
what were before one extern FILE* without reference now are opened by libc on program initialization, to point to /dev/console by default.
2022-10-11 21:08:46 +02:00