summaryrefslogtreecommitdiff
path: root/lib/libc/unistd
diff options
context:
space:
mode:
authorKacper <kacper@mail.openlinux.dev>2025-12-07 22:22:16 +0100
committerKacper <kacper@mail.openlinux.dev>2025-12-07 22:22:16 +0100
commit8f9e448b2ef6db7cd905540c21f3c5b190e7a1e7 (patch)
treeae0285dd15042d1e9236a5ce2e60daf65acbdca0 /lib/libc/unistd
parentfc00c656c96528112d05cf0edf8631bd5eaea446 (diff)
Add bin/true and bin/false implementations
- Added assembly implementations for `true` and `false` commands. - Updated Kbuild files to include new binaries. - Removed unused libraries and headers. - Cleaned up makefile and unused code.
Diffstat (limited to 'lib/libc/unistd')
-rw-r--r--lib/libc/unistd/Kbuild77
-rw-r--r--lib/libc/unistd/execlp.c6
-rw-r--r--lib/libc/unistd/execvp.c3
-rw-r--r--lib/libc/unistd/getentropy.c2
-rw-r--r--lib/libc/unistd/gethostname.c2
-rw-r--r--lib/libc/unistd/getlogin_r.c2
-rw-r--r--lib/libc/unistd/lockf.c3
-rw-r--r--lib/libc/unistd/nice.c1
-rw-r--r--lib/libc/unistd/posix_close.c2
9 files changed, 92 insertions, 6 deletions
diff --git a/lib/libc/unistd/Kbuild b/lib/libc/unistd/Kbuild
new file mode 100644
index 00000000..ff3f025a
--- /dev/null
+++ b/lib/libc/unistd/Kbuild
@@ -0,0 +1,77 @@
+obj-y += _exit.o
+obj-y += _Fork.o
+obj-y += access.o
+obj-y += alarm.o
+obj-y += chdir.o
+obj-y += chown.o
+obj-y += close.o
+obj-y += dup.o
+obj-y += dup2.o
+obj-y += dup3.o
+obj-y += execl.o
+obj-y += execlp.o
+obj-y += execv.o
+obj-y += execve.o
+obj-y += execvp.o
+obj-y += faccessat.o
+obj-y += fchdir.o
+obj-y += fchown.o
+obj-y += fchownat.o
+obj-y += fdatasync.o
+obj-y += fork.o
+obj-y += fsync.o
+obj-y += ftruncate.o
+obj-y += getcwd.o
+obj-y += getegid.o
+obj-y += getentropy.o
+obj-y += geteuid.o
+obj-y += getgid.o
+obj-y += getgroups.o
+obj-y += gethostid.o
+obj-y += gethostname.o
+obj-y += getlogin_r.o
+obj-y += getlogin.o
+obj-y += getopt.o
+obj-y += getpgid.o
+obj-y += getpid.o
+obj-y += getppid.o
+obj-y += getresgid.o
+obj-y += getresuid.o
+obj-y += getsid.o
+obj-y += getuid.o
+obj-y += isatty.o
+obj-y += lchown.o
+obj-y += link.o
+obj-y += linkat.o
+obj-y += lockf.o
+obj-y += lseek.o
+obj-y += nice.o
+obj-y += pause.o
+obj-y += pipe.o
+obj-y += pipe2.o
+obj-y += posix_close.o
+obj-y += pread.o
+obj-y += pwrite.o
+obj-y += read.o
+obj-y += readlink.o
+obj-y += readlinkat.o
+obj-y += rmdir.o
+obj-y += setegid.o
+obj-y += seteuid.o
+obj-y += setgid.o
+obj-y += setpgid.o
+obj-y += setregid.o
+obj-y += setresgid.o
+obj-y += setresuid.o
+obj-y += setreuid.o
+obj-y += setsid.o
+obj-y += setuid.o
+obj-y += sleep.o
+obj-y += swab.o
+obj-y += symlink.o
+obj-y += symlinkat.o
+obj-y += sync.o
+obj-y += truncate.o
+obj-y += unlink.o
+obj-y += unlinkat.o
+obj-y += write.o
diff --git a/lib/libc/unistd/execlp.c b/lib/libc/unistd/execlp.c
index 4613a7ee..db044d50 100644
--- a/lib/libc/unistd/execlp.c
+++ b/lib/libc/unistd/execlp.c
@@ -1,8 +1,6 @@
#include <stdarg.h>
-#include <stddef.h>
-#include <syscall.h>
+#include <unistd.h>
-// TODO: need to find in path and call execl
int execlp(const char *path, const char *argv0, ...)
{
int argc;
@@ -23,5 +21,5 @@ int execlp(const char *path, const char *argv0, ...)
argv[argc] = NULL;
va_end(ap);
- return syscall(execve, path, argv, 0);
+ return execve(path, argv, 0);
}
diff --git a/lib/libc/unistd/execvp.c b/lib/libc/unistd/execvp.c
index 2ce69354..ae8ecdb9 100644
--- a/lib/libc/unistd/execvp.c
+++ b/lib/libc/unistd/execvp.c
@@ -3,6 +3,7 @@
#include <string.h>
#include <unistd.h>
#include <stdio.h>
+#include <stdlib.h>
extern char **environ;
@@ -17,7 +18,7 @@ int execvp(const char *file, char *const argv[])
return execv(file, argv);
} else {
char *ptr;
- char *path = NULL; // TODO: getenv
+ char *path = getenv("PATH");
if (path == NULL || *path == '\0') {
path = "/bin";
diff --git a/lib/libc/unistd/getentropy.c b/lib/libc/unistd/getentropy.c
index f55fed7a..3a651ba5 100644
--- a/lib/libc/unistd/getentropy.c
+++ b/lib/libc/unistd/getentropy.c
@@ -3,6 +3,8 @@
int getentropy(void *buffer, size_t length)
{
+ (void)buffer;
+ (void)length;
// TODO
return 0;
}
diff --git a/lib/libc/unistd/gethostname.c b/lib/libc/unistd/gethostname.c
index a20808e1..5bd303f5 100644
--- a/lib/libc/unistd/gethostname.c
+++ b/lib/libc/unistd/gethostname.c
@@ -3,6 +3,8 @@
int gethostname(char *name, size_t namelen)
{
+ (void)name;
+ (void)namelen;
// TODO
return 0;
}
diff --git a/lib/libc/unistd/getlogin_r.c b/lib/libc/unistd/getlogin_r.c
index 3dea2dff..70ae5ddd 100644
--- a/lib/libc/unistd/getlogin_r.c
+++ b/lib/libc/unistd/getlogin_r.c
@@ -3,6 +3,8 @@
int getlogin_r(char *name, size_t namesize)
{
+ (void)name;
+ (void)namesize;
// TODO
return 0;
}
diff --git a/lib/libc/unistd/lockf.c b/lib/libc/unistd/lockf.c
index 8b807c34..6f109c55 100644
--- a/lib/libc/unistd/lockf.c
+++ b/lib/libc/unistd/lockf.c
@@ -3,6 +3,9 @@
int lockf(int fildes, int function, off_t size)
{
+ (void)fildes;
+ (void)function;
+ (void)size;
// TODO
return 0;
}
diff --git a/lib/libc/unistd/nice.c b/lib/libc/unistd/nice.c
index 3b240c93..6da984df 100644
--- a/lib/libc/unistd/nice.c
+++ b/lib/libc/unistd/nice.c
@@ -3,6 +3,7 @@
int nice(int incr)
{
+ (void)incr;
// TODO: needs getpriority and setpriority from sys/resouce.h
return 0;
}
diff --git a/lib/libc/unistd/posix_close.c b/lib/libc/unistd/posix_close.c
index fe44a7b9..78ec692e 100644
--- a/lib/libc/unistd/posix_close.c
+++ b/lib/libc/unistd/posix_close.c
@@ -1,7 +1,7 @@
#include <libc.h>
#include <syscall.h>
-int posix_close(int fildes, int unused flag)
+int posix_close(int fildes, int __unused flag)
{
return syscall(close, fildes);
}