summaryrefslogtreecommitdiff
path: root/src/nonstd/SYSCALL_NUMBER.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nonstd/SYSCALL_NUMBER.c')
-rw-r--r--src/nonstd/SYSCALL_NUMBER.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/nonstd/SYSCALL_NUMBER.c b/src/nonstd/SYSCALL_NUMBER.c
new file mode 100644
index 00000000..f37e4a21
--- /dev/null
+++ b/src/nonstd/SYSCALL_NUMBER.c
@@ -0,0 +1,8 @@
+#include <nonstd/syscall.h>
+
+#define SYSCALL_NUMBER(_var, _name, _notfound) long _var = _notfound
+
+ static int _var = -2; do { \
+ if (_var == -2) { (_var) = __libc(SYSCALL_LOOKUP)(_name); } \
+ if (_var == -1) { errno = ENOSYS; return (_notfound); } \
+ } while (0)