Commit Graph

127 Commits

Author SHA1 Message Date
Bananymous 1fb305fa45 Kernel/LibC: add clock_gettime() for CLOCK_MONOTONIC
This gets the number of milliseconds since boot
2023-07-06 00:38:29 +03:00
Bananymous f09b82c4b5 Kernel/LibC: add SYS_{SET,GET}_PWD and chdir, getpwd 2023-06-12 02:02:52 +03:00
Bananymous 11b68f6a53 Kernel: Add SYS_GET_{,E}{UID,GID} 2023-06-11 22:37:00 +03:00
Bananymous 3fe67e4882 Kernel: Add syscalls for set{,e,re}{uid,gid} 2023-06-11 22:37:00 +03:00
Bananymous 9288537949 LibC: gid_t and id_t are now signed types
I have no idea why I had made them unisigned
2023-06-11 22:37:00 +03:00
Bananymous 297141f321 LibC: add strchrnul()
this is a gnu libc extension
2023-06-11 20:18:03 +03:00
Bananymous 64890bb640 Kernel: Add SYS_OPENAT 2023-06-11 03:29:22 +03:00
Bananymous aa86125f2b Kernel: Implement SYS_FSTAT 2023-06-11 03:29:22 +03:00
Bananymous c423164066 LibC: Implement basic dirent functionality
We don't currently support seeking
2023-06-11 03:29:22 +03:00
Bananymous eae6119039 Kernel: Add syscall for reading directory entries 2023-06-11 00:18:08 +03:00
Bananymous 30f81e1696 LibC: add missing O_EXEC and O_SEARCH 2023-06-11 00:17:18 +03:00
Bananymous 24993f6020 LibC: implement setenv, unsetenv, putenv 2023-06-05 22:51:02 +03:00
Bananymous d1ad38c8d4 Kernel/LibC: add SYS_STAT and stat(), lstat() 2023-06-05 14:37:14 +03:00
Bananymous 40055f023c 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
Bananymous 88e92eec9e 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
Bananymous 8716c8baf4 LibC: remove select() declaration
This already comes from sys/select.h
2023-06-02 17:29:09 +03:00
Bananymous 2d67a7153b LibC: rename [[noreturn]] to __attribute__((__noreturn__))
This compiles with C compiler
2023-06-02 17:28:36 +03:00
Bananymous 3fcc7c6768 LibC: stdlib.h doesn't seem to typedef wchar_t without __need_wchar_t 2023-06-02 17:27:31 +03:00
Bananymous 5d2a062b36 LibC: fix INFINITY definition typo 2023-06-02 17:27:14 +03:00
Bananymous e517ff6b6d LibC: fix DIR typedef for C code 2023-06-02 17:26:38 +03:00
Bananymous 7296846a81 LibC: complex.h undefs I before defining it 2023-06-02 17:13:09 +03:00
Bananymous 6abcb0de9b LibC: mbstate_t is empty struct 2023-06-02 17:10:29 +03:00
Bananymous 40f9d9d9bc LibC: fix sig_atomic_t definition 2023-06-02 17:08:43 +03:00
Bananymous 24a190d1f7 Kernel: Add SYS_EXEC syscall 2023-05-31 20:57:33 +03:00
Bananymous e8f820ef8d LibC: Fix some headers to make gcc build again 2023-05-30 01:17:45 +03:00
Bananymous 998999a755 Kernel: Add SYS_SLEEP 2023-05-28 22:34:48 +03:00
Bananymous f2d767b799 Kernel: Add bareboness fork() function 2023-05-28 18:08:49 +03:00
Bananymous faf14b880e 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
Bananymous 1658e925f2 Kernel: Add bareboness possibility to set termios 2023-05-26 22:31:21 +03:00
Bananymous 729ff267d7 LibC: add function declarations to sys/stat.h 2023-05-11 15:11:33 +03:00
Bananymous d9be14e1fb LibC: add function declarations to dirent.h 2023-05-11 01:42:52 +03:00
Bananymous 8a9f9b07e7 LibC: add definitions to math.h 2023-05-11 01:40:42 +03:00
Bananymous c989a01913 LibC: add defines in stdio.h 2023-05-11 01:39:16 +03:00
Bananymous 5188efcc57 LibC: add function declarations to unistd.h 2023-05-11 00:34:03 +03:00
Bananymous c05a5b796b LibC: add function declarations to string.h 2023-05-11 00:34:03 +03:00
Bananymous f0058e67c2 LibC: add function declarations to math.h 2023-05-11 00:34:03 +03:00
Bananymous 508d6311de LibC: define all errnos and strerror{name,desk}_np 2023-05-11 00:34:03 +03:00
Bananymous 7c6bf40d0d LibC: add function declarations to time.h 2023-05-11 00:34:03 +03:00
Bananymous a74343c589 LibC: add more types to sys/types.h 2023-05-11 00:33:53 +03:00
Bananymous d188576ef3 LibC: Add dummy signal.h 2023-05-10 23:20:27 +03:00
Bananymous d922c5e1d0 LibC: add toupper, tolower in ctype.h 2023-05-10 23:13:56 +03:00
Bananymous 0adf24fcad LibC: Add dummy setjmp.h 2023-05-10 23:00:53 +03:00
Bananymous 80e13965d9 LibC: Add dummy locale.h 2023-05-10 22:58:07 +03:00
Bananymous 5f89f083a2 LibC: add math.h with floorl 2023-05-10 22:35:42 +03:00
Bananymous 480d92fce5 LibC: add better error string support 2023-05-10 02:22:31 +03:00
Bananymous 49fe3d0d4f 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
Bananymous 054c5450df LibC: syscall() now returns -1 on error and updates errno 2023-05-07 01:51:39 +03:00
Bananymous e1a6e7c3ac LibC: add proper stdlib.h header
Function declarations taken from the posix specifications
2023-04-27 15:14:03 +03:00
Bananymous 3537d53d5c LibC: add link to posix stdio.h 2023-04-27 14:16:25 +03:00
Bananymous cd74b2167d LibC: Write mostly functioning stdio 2023-04-23 14:32:37 +03:00
Bananymous 3f9d6f0311 LibC: add needed stubs to build executables with our compiler 2023-04-12 17:53:02 +03:00
Bananymous aa2aee684b Kernel: remove message from BAN::Error
We don't store the error message anymore in BAN::Error.
Instead we store a error code that can be mapped into a string.
This allows BAN::Error to only take 4 bytes instead of 128.

We should also make some kernel initialization just panic instead
of returning errors since they are required for succesfull boot
anyway.
2023-04-11 23:25:21 +03:00
Bananymous a5830c5424 LibC: add stubs for a lot of functions 2023-04-05 23:58:40 +03:00
Bananymous b6896a6d85 LibC: sys/types uses 'typedef' instead of 'using' 2023-04-05 15:03:24 +03:00
Bananymous 67ff01e915 LibC: Add errno ENOTTY 2023-04-05 02:47:37 +03:00
Bananymous 63e863ad35 LibC: Add unistd.h with STD{IN,OUT,ERR}_FILENO definitions 2023-04-05 00:59:48 +03:00
Bananymous 86d777e2eb LibC: add device macros in sys/sysmacros.h 2023-04-03 10:59:15 +03:00
Bananymous cd0d10b64e LibC: add ENOBUFS errno 2023-03-29 10:58:25 +03:00
Bananymous 32c3aca52f LibC: add dirent.h 2023-03-25 02:08:33 +02:00
Bananymous 9fd17ef73c LibC: Add stat structure 2023-03-24 18:08:22 +02:00
Bananymous 1be8b2f514 LibC: add more typedefs to sys/types 2023-03-23 19:24:12 +02:00
Bananymous d6e4430692 LibC: add errno NAMETOOLONG 2023-03-23 14:48:42 +02:00
Bananymous cf2be54e8f LibC: add errno ENOTEMPTY 2023-03-19 05:43:40 +02:00
Bananymous 3ab62e83d3 LibC: add errno EEXISTS 2023-03-19 04:17:39 +02:00
Bananymous ceb53533be LibC: add fcntl.h with some defines 2023-03-17 21:18:41 +02:00
Bananymous e2707b9416 LibC: Add EBADF errno 2023-03-16 16:22:11 +02:00
Bananymous 4493c9bbe6 LibC: Add ENTOSUP errno 2023-03-16 16:03:51 +02:00
Bananymous 1b7625581d Kernel: Add basic concept of Processes
We now create Shell as a process that has its own threads
2023-03-16 12:17:04 +02:00
Bananymous 10ef3c6a54 LibC: add declarations for malloc and free 2023-03-04 02:59:48 +02:00
Bananymous 52aa98ba25 Kernel+LibC: Add some errno codes
Kernel now returns ENOMEM and other errnos, so we dont have to write
error messages
2023-03-02 21:10:44 +02:00
Bananymous 5cd97e44e2 LibC: Add strcmp and strncmp 2023-02-23 15:57:33 +02:00
Bananymous fd16c1cf58 LibC: Add is*() functions to libc 2023-01-16 20:05:51 +02:00
Bananymous f4b614aa61 LibC: Add some new functions 2022-12-13 00:51:57 +02:00
Bananymous 123382eace Fixes :) 2022-11-15 21:42:14 +02:00
Bananymous b185ed4fd3 Libc is now written in C++ 2022-11-14 00:31:24 +02:00
Bananymous 5a3596170c Add strcpy and strncpy 2022-11-12 23:47:06 +02:00
Bananymous e6b4866ab0 Initial commit. We have a booting kernel 2022-11-12 21:04:47 +02:00