From 3b3325f761b09ebbfef04c44eed546cc4fdeb329 Mon Sep 17 00:00:00 2001 From: Kacper Date: Mon, 15 Dec 2025 02:01:33 +0100 Subject: Added aio and eventfd support, along with sleep and yes utilities --- bin/Kbuild | 3 +++ bin/pwd/pwd.c | 3 ++- bin/sleep/Kbuild | 3 +++ bin/sleep/sleep.c | 24 ++++++++++++++++++++++++ bin/yes/Kbuild | 3 +++ bin/yes/yes.c | 22 ++++++++++++++++++++++ 6 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 bin/sleep/Kbuild create mode 100644 bin/sleep/sleep.c create mode 100644 bin/yes/Kbuild create mode 100644 bin/yes/yes.c (limited to 'bin') diff --git a/bin/Kbuild b/bin/Kbuild index 4a96c667..03c196c5 100644 --- a/bin/Kbuild +++ b/bin/Kbuild @@ -1,8 +1,11 @@ +obj-y += basename/ obj-y += clear/ obj-y += echo/ obj-y += false/ obj-y += free/ obj-y += gzip/ obj-y += pwd/ +obj-y += sleep/ obj-y += sync/ obj-y += true/ +obj-y += yes/ diff --git a/bin/pwd/pwd.c b/bin/pwd/pwd.c index 564b22e7..fef433cf 100644 --- a/bin/pwd/pwd.c +++ b/bin/pwd/pwd.c @@ -1,10 +1,11 @@ +#include "stddef.h" #include #include +#include #include #include #include #include -#include #include int main(int argc, char **argv) diff --git a/bin/sleep/Kbuild b/bin/sleep/Kbuild new file mode 100644 index 00000000..2ab7c332 --- /dev/null +++ b/bin/sleep/Kbuild @@ -0,0 +1,3 @@ +bin-$(BIN_SLEEP) := sleep +obj-y += sleep.o +libs-y := $(srctree)/lib/libc/libc.a diff --git a/bin/sleep/sleep.c b/bin/sleep/sleep.c new file mode 100644 index 00000000..7b4ce77a --- /dev/null +++ b/bin/sleep/sleep.c @@ -0,0 +1,24 @@ +#include +#include +#include +#include + +int main(int argc, char **argv) +{ + double seconds; + struct timespec ts; + + if (argc != 2) { + write(1, "usage: sleep seconds\n", 21); + return 0; + } + + seconds = strtod(argv[1], NULL); + ts.tv_sec = (time_t)seconds; + ts.tv_nsec = (long)((seconds - (double)ts.tv_sec) * 1e9); + + if (nanosleep(&ts, NULL) < 0) + err(1, "nanosleep"); + + return 0; +} diff --git a/bin/yes/Kbuild b/bin/yes/Kbuild new file mode 100644 index 00000000..be596906 --- /dev/null +++ b/bin/yes/Kbuild @@ -0,0 +1,3 @@ +bin-y := yes +obj-y := yes.o +libs := $(srctree)/lib/libc/libc.a diff --git a/bin/yes/yes.c b/bin/yes/yes.c new file mode 100644 index 00000000..0ddb2da1 --- /dev/null +++ b/bin/yes/yes.c @@ -0,0 +1,22 @@ +#include +#include + +int main(int argc, char **argv) +{ + char *str; + struct iovec iov[2]; + + str = (argc > 1) ? argv[1] : "y"; + + iov[0].iov_base = str; + iov[0].iov_len = strlen(str); + + iov[1].iov_base = "\n"; + iov[1].iov_len = 1; + + while (1) { + writev(1, iov, 2); + } + + return 0; +} -- cgit v1.2.3