Commit Graph

2197 Commits

Author SHA1 Message Date
18fbccafb7 VFS: add an exists() function 2022-10-16 16:58:18 +02:00
0a46feb162 Add strnlen test 2022-10-16 16:00:14 +02:00
d62eb6c791 Tests: Add test framework 2022-10-16 15:31:58 +02:00
f8154ce230 Kernel: Implement mkdir() from a single path
This is done using dirname() and basename() :)
2022-10-16 14:45:25 +02:00
8c0a57f0c2 Kernel: Copy strrchr, dirname and basename over from libc 2022-10-16 14:36:25 +02:00
1624f0360d exec: More logging 2022-10-15 17:47:57 +02:00
d30010d524 apps/sym: Read from the end of the file 2022-10-15 17:45:53 +02:00
68403dc029 Kernel: Make AddressSpaces reference-counted 2022-10-15 17:40:33 +02:00
eca7227fda StackTracer: Stop when instruction is at nullptr 2022-10-15 17:31:57 +02:00
aca1367158 Kernel: Switch to strlcpy() as well
Surprisingly, most uses of strncpy() are in places where strncpy() is actually a better choice.
For example, copying to a fixed-length char array in a structure.
2022-10-15 17:30:34 +02:00
42b6b927c9 libc: Implement strlcpy(), and make strncpy() standard-compliant 2022-10-15 17:24:22 +02:00
48f38bdcef libc: More inttypes.h 2022-10-15 16:53:26 +02:00
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
18f1f8b7ca Add VERY HACKY rand() implementation. 2022-10-15 16:31:08 +02:00
dd358eca29 libc/libgen.cpp: Remove #include <luna.h>
This header was included for the NOT_IMPLEMENTED macro.

Now it is implemented.
2022-10-15 16:09:54 +02:00
116e7326a4 libc: Implement dirname() and basename() 2022-10-15 16:08:27 +02:00
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
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