From fc00c656c96528112d05cf0edf8631bd5eaea446 Mon Sep 17 00:00:00 2001 From: Kacper Date: Sun, 7 Dec 2025 20:10:31 +0100 Subject: Add build system scaffolding and libc headers --- lib/libc/sem/semctl.c | 24 ++++++++++++++++++++++++ lib/libc/sem/semget.c | 7 +++++++ lib/libc/sem/semop.c | 7 +++++++ 3 files changed, 38 insertions(+) create mode 100644 lib/libc/sem/semctl.c create mode 100644 lib/libc/sem/semget.c create mode 100644 lib/libc/sem/semop.c (limited to 'lib/libc/sem') diff --git a/lib/libc/sem/semctl.c b/lib/libc/sem/semctl.c new file mode 100644 index 00000000..78a1adf8 --- /dev/null +++ b/lib/libc/sem/semctl.c @@ -0,0 +1,24 @@ +#include +#include +#include +#include +#include + +int semctl(int semid, int semnum, int cmd, ...) +{ + va_list ap; + struct semid_ds *buf = NULL; + + switch (cmd) { + case SETVAL: + case GETALL: + case SETALL: + case IPC_SET: + case IPC_STAT: + va_start(ap, cmd); + buf = va_arg(ap, struct semid_ds *); + va_end(ap); + } + + return syscall(semctl, semid, semnum, cmd, buf); +} diff --git a/lib/libc/sem/semget.c b/lib/libc/sem/semget.c new file mode 100644 index 00000000..75e1bab9 --- /dev/null +++ b/lib/libc/sem/semget.c @@ -0,0 +1,7 @@ +#include +#include + +int semget(key_t key, int nsems, int semflg) +{ + return syscall(semget, key, nsems, semflg); +} diff --git a/lib/libc/sem/semop.c b/lib/libc/sem/semop.c new file mode 100644 index 00000000..82e956dc --- /dev/null +++ b/lib/libc/sem/semop.c @@ -0,0 +1,7 @@ +#include +#include + +int semop(int semid, struct sembuf *sops, size_t nsops) +{ + return syscall(semop, semid, sops, nsops); +} -- cgit v1.2.3