From ec769a83bde09c76bd6ad9ee7f391036dba5cd97 Mon Sep 17 00:00:00 2001 From: Kacper Date: Fri, 12 Dec 2025 15:16:01 +0100 Subject: Add clear command, add sysinfo system call --- .gitignore | 1 + bin/Kbuild | 1 + bin/clear/Kbuild | 3 +++ bin/clear/clear.c | 14 ++++++++++++++ bin/echo/echo | Bin 3480 -> 0 bytes bin/false/false | Bin 824 -> 0 bytes bin/true/true | Bin 824 -> 0 bytes include/sys/sysinfo.h | 21 +++++++++++++++++++++ lib/libc/libc.a | Bin 1358016 -> 0 bytes lib/libc/sys/mount.c | 3 --- lib/libc/sys/sysinfo.c | 7 +++++++ lib/libc/unistd/isatty.c | 2 -- lib/libm/libm.a | Bin 1175300 -> 0 bytes 13 files changed, 47 insertions(+), 5 deletions(-) create mode 100644 bin/clear/Kbuild create mode 100644 bin/clear/clear.c delete mode 100755 bin/echo/echo delete mode 100755 bin/false/false delete mode 100755 bin/true/true create mode 100644 include/sys/sysinfo.h delete mode 100644 lib/libc/libc.a create mode 100644 lib/libc/sys/sysinfo.c delete mode 100644 lib/libm/libm.a diff --git a/.gitignore b/.gitignore index f301536f..e950c442 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ *.o +*.a .cache diff --git a/bin/Kbuild b/bin/Kbuild index 03d8756e..5487a089 100644 --- a/bin/Kbuild +++ b/bin/Kbuild @@ -1,3 +1,4 @@ +obj-y += clear/ obj-y += echo/ obj-y += false/ obj-y += gzip/ diff --git a/bin/clear/Kbuild b/bin/clear/Kbuild new file mode 100644 index 00000000..845df317 --- /dev/null +++ b/bin/clear/Kbuild @@ -0,0 +1,3 @@ +bin-y := clear +obj-y += clear.o +libs-y += $(srctree)/lib/libc/libc.a diff --git a/bin/clear/clear.c b/bin/clear/clear.c new file mode 100644 index 00000000..9c371ea7 --- /dev/null +++ b/bin/clear/clear.c @@ -0,0 +1,14 @@ +#include +#include + +int main(int argc, char **__unused argv) +{ + if (argc) { + write(STDOUT_FILENO, "usage: clear\n", 13); + return 0; + } + + write(STDOUT_FILENO, "\033[H\033[2J", 7); + + return 0; +} diff --git a/bin/echo/echo b/bin/echo/echo deleted file mode 100755 index c9bbb0df..00000000 Binary files a/bin/echo/echo and /dev/null differ diff --git a/bin/false/false b/bin/false/false deleted file mode 100755 index 554098bc..00000000 Binary files a/bin/false/false and /dev/null differ diff --git a/bin/true/true b/bin/true/true deleted file mode 100755 index 49700c41..00000000 Binary files a/bin/true/true and /dev/null differ diff --git a/include/sys/sysinfo.h b/include/sys/sysinfo.h new file mode 100644 index 00000000..dc9ac04b --- /dev/null +++ b/include/sys/sysinfo.h @@ -0,0 +1,21 @@ +#ifndef __SYS_SYSINFO_H +#define __SYS_SYSINFO_H + +struct sysinfo { + long uptime; + unsigned long loads[3]; + unsigned long totalram; + unsigned long freeram; + unsigned long sharedram; + unsigned long bufferram; + unsigned long totalswap; + unsigned long freeswap; + unsigned short procs; + unsigned long totalhigh; + unsigned long freehigh; + unsigned int mem_unit; +}; + +int sysinfo(struct sysinfo *); + +#endif diff --git a/lib/libc/libc.a b/lib/libc/libc.a deleted file mode 100644 index 7a52d590..00000000 Binary files a/lib/libc/libc.a and /dev/null differ diff --git a/lib/libc/sys/mount.c b/lib/libc/sys/mount.c index c42dc90e..67f2d9af 100644 --- a/lib/libc/sys/mount.c +++ b/lib/libc/sys/mount.c @@ -1,6 +1,3 @@ - - - #include // for mount #include // for __syscall_5, syscall diff --git a/lib/libc/sys/sysinfo.c b/lib/libc/sys/sysinfo.c new file mode 100644 index 00000000..5af79c60 --- /dev/null +++ b/lib/libc/sys/sysinfo.c @@ -0,0 +1,7 @@ +#include +#include + +int sysinfo(struct sysinfo *info) +{ + return syscall(sysinfo, info); +} diff --git a/lib/libc/unistd/isatty.c b/lib/libc/unistd/isatty.c index b356a694..46a952e4 100644 --- a/lib/libc/unistd/isatty.c +++ b/lib/libc/unistd/isatty.c @@ -1,5 +1,3 @@ - - #include // for TIOCGWINSZ #include // for __syscall_3, syscall #include // for winsize diff --git a/lib/libm/libm.a b/lib/libm/libm.a deleted file mode 100644 index ac371df8..00000000 Binary files a/lib/libm/libm.a and /dev/null differ -- cgit v1.2.3