9bbb5d0c07
libc: Implement strspn (with a test)
2022-10-22 12:36:31 +02:00
551d731627
libc: Add FIXME
2022-10-22 12:30:30 +02:00
063e2d5e7a
libc: Add more spacing to stdio.cpp
2022-10-22 12:21:04 +02:00
6dc51abfc8
libc: Add remove() stub
2022-10-22 12:20:05 +02:00
81c337cf9a
libc: Add struct tm and localtime(), gmtime() stubs
2022-10-22 12:17:48 +02:00
91969d4d48
libc: strtoul's endptr must not be const
2022-10-22 12:12:52 +02:00
1f5f6a5e3b
libc: Add strcspn (with a test)
2022-10-22 11:57:25 +02:00
27a18a608c
libc: Implement fgets, fgetc, getc, getchar (with buffered read IO)
2022-10-22 11:38:16 +02:00
51e024588e
libc: Update inttypes.h
...
Turns out it was incorrect.
2022-10-22 11:23:12 +02:00
0faabe02e5
Kernel, libc: Implement O_CLOEXEC
2022-10-22 10:28:02 +02:00
fb88459263
libc: Add all missing errors to strerror()
2022-10-22 10:14:40 +02:00
b2f5a0502f
Kernel, libc: Implement O_NONBLOCK
2022-10-21 21:51:03 +02:00
43073cfdbb
Add new __lc_used macro
2022-10-21 18:39:46 +02:00
fcd6d9b9f5
Add FIXME
2022-10-21 18:37:18 +02:00
bef9158450
Kernel, libc: Add isatty() and F_ISTTY to fcntl()
2022-10-21 18:34:31 +02:00
93207820b3
libc: Add a few errors to errno.h
...
As well as ino_t, which I forgot in the fstat() commit :)
2022-10-21 18:34:01 +02:00
62fa773b27
libc: Add dummy argv
2022-10-21 18:33:06 +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
bf026d0dea
libc: Add bad time() function
...
It's just an alias for clock(). Which is not good. But it's a stub, that's the point.
2022-10-21 18:32:01 +02:00
c8a37eaf70
libc: Add SIGINT define
2022-10-21 18:31:19 +02:00
fcf191aa7a
Kernel, libc: Add fstat()
2022-10-21 18:31:09 +02:00
f7cf395f71
Kernel, libc: Add access()
2022-10-20 19:03:24 +02:00
aebd860947
libc: Add stdin
...
Aka keyboard :)
2022-10-19 20:43:04 +02:00
7ec221c36d
libc: Move __luna_syscall* declarations to asm
2022-10-19 17:50:09 +02:00
5816f54293
libc: Move SYS_* constants to sys/syscall.h
2022-10-19 17:49:55 +02:00
b035795eb3
Kernel: Move errno.h and (k)assert.h out of the main include directory
...
This is mostly so IDEs don't pick them up instead of the userspace headers :)
2022-10-19 17:41:23 +02:00
aa90e4a8d9
libc: Implement freopen()
2022-10-19 17:32:59 +02:00
671f2a2de3
Kernel, libc: Implement waitpid()
...
FIXME: exec() is now doing weird page table stuff. But at least it works, no panics :)
2022-10-18 21:30:52 +02:00
f1bfa6bec8
Build system: more cflags + stripping
2022-10-18 18:28:28 +02:00
01564cb905
libc: Adapt libc to getprocid() + add getppid()
2022-10-18 17:36:33 +02:00
3c1146f2c5
libc: Implement setjmp() and longjmp()
2022-10-17 21:22:18 +02:00
511ad67a9a
fdopen: Check for malloc errors
2022-10-17 20:54:32 +02:00
e17a21dbad
libc: Use fdopen() after calling open() in fopen()
2022-10-17 20:54:09 +02:00
8b17065718
Kernel, libc: Rename gettid() to getpid() and move it to unistd.h
2022-10-17 20:08:44 +02:00
87ef210759
Kernel, libc: Remove spawn()
...
Now, fork() and exec() are both implemented. More POSIX-y, thus spawn can be removed.
2022-10-17 19:55:01 +02:00
e7522c21ca
libc: Document fork()
2022-10-17 18:56:04 +02:00
64f5078494
Kernel, libc: Implement fork()
...
This time for real.
Also, add a new per-user-task virtual address allocator (UserHeap), so that mmap'ed pages are in user range and can be copied.
2022-10-17 18:43:35 +02:00
9b39d618de
Kernel, libc: Implement spawn()
...
This function is a Luna alternative to fork() and exec().
Why? Simply because I can't figure out for the life of me how to implement a working fork().
So meanwhile, we have spawn() as a replacement. exec() still exists, though.
2022-10-16 18:48:35 +02:00
6d821d2638
libc: Add support for mkdir()
2022-10-16 17:37:29 +02:00
f35bbe52b7
fnctl: Do not switch on cmd
2022-10-16 17:27:15 +02:00
e1e86ab889
libc: Add support for EEXIST, ENOTDIR, ENOSPC, ENOTSUP and EPIPE to strerror()
2022-10-16 17:24:58 +02:00
d2e2883a79
Kernel: Make mkdir() accessible to userspace
2022-10-16 17:22:12 +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