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
4bad782aad
Kernel: Increment the maximum number of file descriptors a task can have
...
Doesn't use up more space in the Task structure, and now we are above the Minimum Acceptable Value as defined by POSIX (20), I think.
2022-10-15 14:20:29 +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
62a2bcf2ff
Kernel: Add a clock() system call
2022-10-15 13:17:26 +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
62d631f1b4
Kernel: Rename assert.h to kassert.h so IDEs pickup the kernel header instead of the userspace one
2022-10-15 12:56:48 +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
36bb1cab5c
FileDescriptor: add operator=() so that the fcntl(F_DUPFD syscall compiles :)
2022-10-15 11:16:18 +02:00
5c61252061
Kernel: Add a new fcntl() system call
2022-10-15 10:56:06 +02:00
3eb1bff2e9
Task: add an alloc_fd() function
2022-10-15 10:45:12 +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
91d76a2ee4
Devices: Add a new RandomDevice :)
...
This new device uses the seeded Mersenne PRNG we use in the kernel.
This device is not meant for regular userspace use, but more for userspace to seed their own PRNGs from.
If the DeviceFS is mounted at /dev, this device can be found at /dev/random.
2022-10-14 20:14:49 +02:00
faaf930a14
Moon 0.12-dev
2022-10-14 19:55:29 +02:00
97461c7c1f
Prepare for moon 0.11
2022-10-14 19:49:52 +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
e0aa552fae
Kernel: Add a move() function
...
The standard C++ move() function.
2022-10-14 19:04:56 +02:00
f82fbbe60c
Make address spaces not cloned by default
2022-10-14 18:23:04 +02:00
c8a92af4d2
Whoops! bugfix
2022-10-14 18:21:09 +02:00
e11280ad3f
Merge branch 'address-spaces'
2022-10-14 18:20:42 +02:00
1c3377fc98
Prepare for cloning address spaces, not there yet
2022-10-14 18:17:57 +02:00
e43777bd31
Apparently, it just works now.
2022-10-14 18:00:33 +02:00
97a8a4a4a2
Solve rebase
2022-10-14 17:39:24 +02:00
81f56083c5
Almost there!
2022-10-14 17:38:29 +02:00
cdb73836b0
Some more multiple address space stuff
...
This page-faults. This is because the memory where the ELF should be is all zeroes, which the CPU tries to interpret.
2022-10-14 17:37:51 +02:00