aboutsummaryrefslogtreecommitdiff
path: root/lib/mlibc/options/posix/generic/sys-sem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/mlibc/options/posix/generic/sys-sem.cpp')
-rw-r--r--lib/mlibc/options/posix/generic/sys-sem.cpp51
1 files changed, 0 insertions, 51 deletions
diff --git a/lib/mlibc/options/posix/generic/sys-sem.cpp b/lib/mlibc/options/posix/generic/sys-sem.cpp
deleted file mode 100644
index ac3df69..0000000
--- a/lib/mlibc/options/posix/generic/sys-sem.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-
-#include <bits/ensure.h>
-#include <errno.h>
-#include <limits.h>
-#include <sys/sem.h>
-
-#include <mlibc/posix-sysdeps.hpp>
-
-int semget(key_t key, int n, int fl) {
- if(n > USHRT_MAX) {
- errno = EINVAL;
- return -1;
- }
-
- int id = 0;
- auto sysdep = MLIBC_CHECK_OR_ENOSYS(mlibc::sys_semget, -1);
- if(int e = sysdep(key, n, fl, &id); e) {
- errno = e;
- return -1;
- }
- return id;
-}
-
-int semop(int, struct sembuf *, size_t) {
- __ensure(!"Not implemented");
- __builtin_unreachable();
-}
-
-union semun {
- int val;
- struct semid_ds *buf;
- unsigned short *array;
-};
-
-int semctl(int id, int num, int cmd, ...) {
- union semun semun;
- int ret = 0;
-
- va_list ap;
- va_start(ap, cmd);
- semun = va_arg(ap, union semun);
- va_end(ap);
-
- auto sysdep = MLIBC_CHECK_OR_ENOSYS(mlibc::sys_semctl, -1);
- if(int e = sysdep(id, num, cmd, semun.buf, &ret); e) {
- errno = e;
- return -1;
- }
-
- return ret;
-}