5256166e7a
libc: Fix strrchr
2022-10-15 16:06:41 +02:00
6953a28ce8
libc: Implement strrchr()
2022-10-15 15:16:19 +02:00
f13c48b562
libc: make strerror() return "Unknown error" instead of an invalid pointer
2022-10-15 15:14:30 +02:00
7139b4403f
libc: Add EPIPE (not returned by anything yet)
2022-10-15 15:14:02 +02:00
e3e33bacbc
libc: Add stubbed signal.h header
2022-10-15 15:13:38 +02:00
8d552b1522
libc: Add setjmp.h stub functions (not implemented)
2022-10-15 15:13:25 +02:00
46f60b192a
libc: Add libgen.h stub functions (not implemented)
2022-10-15 15:13:10 +02:00
9aa96de61d
libc: Start implementing inttypes.h
2022-10-15 15:12:53 +02:00
6507146c60
libc: Add Luna-specific limits
2022-10-15 14:31:55 +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
b1739f7f0d
libc: Add support for the new clock() system call
2022-10-15 13:21:22 +02:00
3a9dddaa57
Kernel, libc: Remove the rand() system call
...
That's why we now have a VFS and a /dev pseudo-filesystem. To provide that kind of things.
Remember, everything is a file!!
The new way to ask the kernel for random numbers is to read from /dev/random.
2022-10-15 13:04:48 +02:00
225284a6ca
libc: Add support for mprotect()
2022-10-15 12:59:13 +02:00
613f8170b6
Kernel, libc: Implement mprotect() and use proper PROT_* values
2022-10-15 12:57:14 +02:00
a002e75725
libc: Add strstr()
2022-10-15 12:33:36 +02:00
3fde7e46f5
libc: Add strcmp() and strncmp()
2022-10-15 12:30:49 +02:00
3e2a4276e9
libc: Add memcmp() and memmove()
...
Those were there since forever in the kernel, but they haven't been added to libc until now.
2022-10-15 12:23:37 +02:00
94a6336e4d
libc: add memchr(), strnlen(), strdup(), and rename memclr() to bzero()
2022-10-15 12:18:37 +02:00
523e88e5a9
libc: Add sched_yield()
2022-10-15 11:43:13 +02:00
b0e071e964
libc: Make functions with no arguments be defined as type function(void)
...
Instead of type function().
2022-10-15 11:39:13 +02:00
3e2bebf0aa
libc: Alias __lc_unreachable to __builtin_unreachable
2022-10-15 11:20:20 +02:00
1e86acd4c0
libc: Implement fcntl(F_DUPFD) and dup()
2022-10-15 11:16:34 +02:00
c77e752a82
libc: Implement fileno()
2022-10-15 10:28:52 +02:00
d0d6557e99
libc: Add assert()
2022-10-15 10:05:48 +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
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
eb67ab113e
libc: Add ctype.h
2022-10-14 21:12:26 +02:00
ccf8f404a8
libc: Make the stdio initialization code cleaner
2022-10-14 19:36:20 +02:00
4e08c9d8ce
libc: Pass the last argument in __luna_syscall5 correctly
2022-10-14 19:24:58 +02:00
0e64c57e10
libc: Change __{stderr, stdout} to {stderr, stdout}
2022-10-14 19:23:14 +02:00
3b83d7ccaf
libc: Implement fsetpos() and fgetpos()
...
Not much to do, since these are kind of equivalent to fseek() and ftell().
2022-10-14 19:12:40 +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
de6041fede
libc: Add fdopen()
2022-10-12 20:19:13 +02:00
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
531afc3d6f
libc: Add support for the new exec() system call
...
execv() is a temporary wrapper that ignores the second parameter, while execve() and execvp() still error out.
2022-10-12 17:45:58 +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
edda41a7bb
libc: Implement fseek(), ftell() and rewind()
...
All three use the new syscall seek() (with its lseek() wrapper in unistd.h)!!
2022-10-12 15:56:03 +02:00
4a5db1dca7
libc: Add lseek()
2022-10-12 15:37:29 +02:00
928ade123c
libc: Add support for the new seek() system call
2022-10-12 15:32:09 +02:00
e40304f2f1
libc: Add off_t to sys/types.h
2022-10-12 15:30:41 +02:00
e90b90c556
Kernel, libc: Round up to nearest page-aligned size instead of down
2022-10-12 12:15:12 +02:00
d89685bb36
libc: Document sys/types.h
2022-10-12 12:07:42 +02:00
1e16a78106
libc: Document functions in sys/mman.h
2022-10-12 12:06:45 +02:00
a3362429d3
libc: Update strerror()
2022-10-12 12:01:18 +02:00
0d3e7d4463
libc: Document errno.h
2022-10-12 12:01:07 +02:00