Commit Graph

108 Commits

Author SHA1 Message Date
86f58f60cb LibC: implement setenv, unsetenv, putenv 2023-06-05 22:51:02 +03:00
064ce568c2 Kernel: add basic support for environment variables
exec functions will search files from PATH
2023-06-05 22:51:02 +03:00
b0e9ab0519 Kernel/LibC: pass environ pointer to process 2023-06-05 21:12:08 +03:00
480842a203 LibC: abort now prints 'abort()' and exits
we used to call assert in abort which then recursively called
abort again.
2023-06-05 18:23:19 +03:00
9d64dbd5c2 Kernel/LibC: add SYS_STAT and stat(), lstat() 2023-06-05 14:37:14 +03:00
cbb9f47ee5 LibC: add wait and waitpid
Note that wait() doesn't work since only waiting for specified
pid is supported. wait() will just return -1 and set errno to
ECHILD.
2023-06-04 18:00:52 +03:00
4f84faf392 LibC: printf string persision works now 2023-06-03 15:07:02 +03:00
3c3c7826ef LibC: Add simple definition for realloc
The syscall just crashes the kernel currently. I will implement
this when needed
2023-06-02 17:56:13 +03:00
2207357b93 LibC: add __cxa_at_exit() for libc 2023-06-02 17:50:55 +03:00
3a69768eb0 LibC: remove select() declaration
This already comes from sys/select.h
2023-06-02 17:29:09 +03:00
afb29ff3ec LibC: rename [[noreturn]] to __attribute__((__noreturn__))
This compiles with C compiler
2023-06-02 17:28:36 +03:00
e6f0f891a6 LibC: stdlib.h doesn't seem to typedef wchar_t without __need_wchar_t 2023-06-02 17:27:31 +03:00
36e5aa4683 LibC: fix INFINITY definition typo 2023-06-02 17:27:14 +03:00
7738050105 LibC: fix DIR typedef for C code 2023-06-02 17:26:38 +03:00
4bf11ec349 LibC: complex.h undefs I before defining it 2023-06-02 17:13:09 +03:00
d821012eed LibC: mbstate_t is empty struct 2023-06-02 17:10:29 +03:00
35c6edd989 LibC: fix sig_atomic_t definition 2023-06-02 17:08:43 +03:00
cb359a05dc BuildSystem: link libraries when they change
This also fixed the need for manual linkin on firt build
2023-05-31 23:01:40 +03:00
0acab11620 LibC: add execl 2023-05-31 22:36:26 +03:00
ab61b49aca Kernel: Add SYS_EXEC syscall 2023-05-31 20:57:33 +03:00
341f7e41e5 LibC: Fix some headers to make gcc build again 2023-05-30 01:17:45 +03:00
7151bb86a8 Kernel/LibC: opening standard files is done in libc 2023-05-29 20:21:19 +03:00
2a34391b71 LibC: open() now just returns syscall(SYS_OPEN, ...)
errno is handled in syscall()
2023-05-29 20:19:17 +03:00
0c316ebfb2 Kernel: Add SYS_SLEEP 2023-05-28 22:34:48 +03:00
6fdbe6f9c2 Kernel: Add bareboness fork() function 2023-05-28 18:08:49 +03:00
481c8406f3 LibC: fputs uses fputc instead of putc 2023-05-28 17:48:34 +03:00
f79250c4d4 LibC: Rewrite all the headers.
We now have more or less posix issue 2018 conforming libc headers.

This was a really time consuming and boring operation but it had to
be done.

Now we get to actually start implementing libc :)
2023-05-26 22:31:21 +03:00
9e0abbc2f0 Kernel: Add bareboness possibility to set termios 2023-05-26 22:31:21 +03:00
4a4a3bf184 Kernel/LibC: move file offset back to kernel
This makes keeping track of offsets easier and more proper
2023-05-26 22:31:21 +03:00
d82c6c2337 LibC: fix bugs with printf 2023-05-15 22:47:08 +03:00
1a0fdc5a44 LibC: printf now prints 0 as integer 2023-05-11 18:20:37 +03:00
53f4b5a9da LibC: add function declarations to sys/stat.h 2023-05-11 15:11:33 +03:00
1d4a6c3a42 LibC: add function declarations to dirent.h 2023-05-11 01:42:52 +03:00
40083e4aa1 LibC: add definitions to math.h 2023-05-11 01:40:42 +03:00
bd929bff07 LibC: add defines in stdio.h 2023-05-11 01:39:16 +03:00
cd4a0530fa LibC: add function declarations to unistd.h 2023-05-11 00:34:03 +03:00
273fdd2235 LibC: add function declarations to string.h 2023-05-11 00:34:03 +03:00
b20f2e8d31 LibC: add function declarations to math.h 2023-05-11 00:34:03 +03:00
e756cde2b1 LibC: define all errnos and strerror{name,desk}_np 2023-05-11 00:34:03 +03:00
de18d3e64d LibC: add function declarations to time.h 2023-05-11 00:34:03 +03:00
441999ba9f LibC: add more types to sys/types.h 2023-05-11 00:33:53 +03:00
dd046b1ace LibC: Add dummy signal.h 2023-05-10 23:20:27 +03:00
926aa238ab LibC: add toupper, tolower in ctype.h 2023-05-10 23:13:56 +03:00
01fa521a03 LibC: Add dummy setjmp.h 2023-05-10 23:00:53 +03:00
f31da19266 LibC: Add dummy locale.h 2023-05-10 22:58:07 +03:00
48edc38817 LibC: implement printf conversions e, E, f, F 2023-05-10 22:36:03 +03:00
ac12132ac0 LibC: add math.h with floorl 2023-05-10 22:35:42 +03:00
67005a80be LibC: add working f modifier to printf
This is implementation will write out of bounds if the conversion
takes more than 1024 characters (either super large number or very
big percision).

Also we dont handle NaN and infinity cases
2023-05-10 15:43:42 +03:00
f43bfcb398 LibC: add better error string support 2023-05-10 02:22:31 +03:00
d5ce4c9d2c LibC: add probably functional *printf
I wrote a general printf function that takes an putc function
pointer. We can use this to implement all the printf family
functions. I haven't done thorough testing with this, but it seems
to be functional for the most part
2023-05-10 02:00:28 +03:00