42b90ae76c
Kernel/LibC: Add {get,set}pgrp()
2023-08-22 11:36:33 +03:00
b10168eb1c
LibC: make printf buffer only 128 bytes
...
Only reason for it to be big is if you want super large zero padding
for your number. This will eventually be handled without the buffer.
2023-08-18 16:49:27 +03:00
dc7391dc89
BuildSystem: only apply stack usage warning to libc
2023-08-17 20:49:52 +03:00
dcd8374b89
LibC: add fileno() and fdopen()
...
fdopen() doesn't currently care about mode and will have same mode
as the underlying file descriptor.
2023-08-17 12:03:59 +03:00
8e4216215e
Kernel/LibC: add dup() syscall and function
2023-08-17 12:03:29 +03:00
9a63d3b2da
LibC: printf handles nan and inf
2023-08-16 10:49:34 +03:00
bf02330db9
LibC: math.h defines is*() macros and uses builtins for values
2023-08-16 10:41:55 +03:00
d34c0a5abe
LibC: cleanup fstatat
2023-08-11 12:25:15 +03:00
165a379c73
LibC: Fix S_IF* macros and add macros for access/type masks
2023-08-11 10:30:50 +03:00
c67a7cec5b
LibC: fix typo
2023-08-02 22:10:12 +03:00
13852e865c
LibC: sys/wait.h now has proper exit status macros
...
We use the same format as basically every implementation
2023-08-01 10:32:04 +03:00
679d47131d
BuildSystem: Edit build flags regarding sse and warnings
2023-07-31 22:31:17 +03:00
8ec6d4c9fc
LibC: we don't parse syscall arguments in unistd
...
We just call Kernel::syscall() with 5 arguments from the variadic function.
This was a necessary addition since the syscall() function
used over 2 KiB of stack space.
2023-07-31 22:24:11 +03:00
432c296b7b
Kernel: Implement SYS_GET_PID and SYS_TCSETPGID
...
we don't have consept of process groups yet
2023-07-24 22:29:59 +03:00
adb14ba373
Kernel: Userspace signal handlers are now called one at a time
...
I added a syscall for telling the kernel when signal execution has
finished. We should send a random hash or id to the signal trampoline
that we would include in the syscall, so validity of signal exit can
be confirmed.
2023-07-23 13:34:53 +03:00
7391d91317
Kernel/LibC: add SYS_SIGNAL/signal()
2023-07-21 20:08:13 +03:00
2149cec29f
Kernel: Make signals more POSIX
2023-07-21 20:01:12 +03:00
ad756c36fc
Kernel/LibC: Add SYS_KILL/kill()
2023-07-21 19:27:38 +03:00
dcd4d0daeb
Kernel/LibC: Add bareboness signals
...
You can now call raise() to raise a signal. Signal handlers are
not yet supported, but the handling works :)
2023-07-21 15:45:02 +03:00
bba09a3cd0
LibC: add getpwname() and getpwuid()
2023-07-13 12:01:16 +03:00
985df3532b
LibC: implement endpwent(), getpwent() and setpwent()
2023-07-13 11:22:09 +03:00
4972284dde
Kernel: open() and openat() now take mode as parameter
...
O_CREAT now tries to create file if O_CREAT is specified
2023-07-10 15:08:54 +03:00
6d93c1eb92
LibC: add NAME_MAX to limits.h
...
This is defined to 255 which is _XOPEN_NAME_MAX, smallest value
for XOPEN compliance
2023-07-10 11:48:11 +03:00
274ecbba78
LibC: limits.h now defined OPEN_MAX
2023-07-07 23:08:49 +03:00
a549336530
Kernel/LibC: add basic dup2
2023-07-06 23:17:54 +03:00
4eb95c963d
Kernel/LibC: Add basic pipe() syscall and command
...
You can now create pipes :)
2023-07-06 22:16:26 +03:00
22caacd2a9
LibC: add read() and write() to unistd
2023-07-06 22:15:55 +03:00
3c068aa0ae
Kernel/LibC: add clock_gettime() for CLOCK_MONOTONIC
...
This gets the number of milliseconds since boot
2023-07-06 00:38:29 +03:00
d99e704728
LibC: Fix syscall SYS_READ and SYS_WRITE arguments
2023-06-19 10:38:29 +03:00
0f63cfa43f
Kernel/LibC: add SYS_{SET,GET}_PWD and chdir, getpwd
2023-06-12 02:02:52 +03:00
b254ade69b
Kernel: Add SYS_GET_{,E}{UID,GID}
2023-06-11 22:37:00 +03:00
ef4ebaa969
Kernel: Add syscalls for set{,e,re}{uid,gid}
2023-06-11 22:37:00 +03:00
99f8133b91
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
51eb44bf40
Kernel/Userspace: Add basic init process
...
This process parses /etc/passwd and promps login screen.
When an username is entered, it will launch that users shell
2023-06-11 22:37:00 +03:00
071da18fa3
LibC: add strchrnul()
...
this is a gnu libc extension
2023-06-11 20:18:03 +03:00
8be28012ee
LibC: Reorder some syscalls
2023-06-11 03:29:22 +03:00
5aed186827
Kernel: Add SYS_OPENAT
2023-06-11 03:29:22 +03:00
f0b22c48b2
LibC: implement close
2023-06-11 03:29:22 +03:00
52c4eebd77
Kernel: Implement SYS_FSTAT
2023-06-11 03:29:22 +03:00
24f0d26fce
LibC: Implement basic dirent functionality
...
We don't currently support seeking
2023-06-11 03:29:22 +03:00
7a5d5cabad
Kernel: Add syscall for reading directory entries
2023-06-11 00:18:08 +03:00
f7de310889
LibC: add missing O_EXEC and O_SEARCH
2023-06-11 00:17:18 +03:00
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