summaryrefslogtreecommitdiff
path: root/src/syscall.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/syscall.h')
-rw-r--r--src/syscall.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/syscall.h b/src/syscall.h
index e1edf80..fab279a 100644
--- a/src/syscall.h
+++ b/src/syscall.h
@@ -1,3 +1,5 @@
+#include <sys/syscall.h>
+
#define _SYMSTR(str) #str
#define SYMSTR(str) _SYMSTR(str)
@@ -21,3 +23,33 @@
#error "add syscall-arch.h"
#endif
+
+#define io_syscall1(type, fname, sname, type1, arg1) \
+ type fname(type1 arg1) \
+ { \
+ return syscall(__NR_##sname, arg1); \
+ }
+
+#define io_syscall2(type, fname, sname, type1, arg1, type2, arg2) \
+ type fname(type1 arg1, type2 arg2) \
+ { \
+ return syscall(__NR_##sname, arg1, arg2); \
+ }
+
+#define io_syscall3(type, fname, sname, type1, arg1, type2, arg2, type3, arg3) \
+ type fname(type1 arg1, type2 arg2, type3 arg3) \
+ { \
+ return syscall(__NR_##sname, arg1, arg2, arg3); \
+ }
+
+#define io_syscall4(type, fname, sname, type1, arg1, type2, arg2, type3, arg3, type4, arg4) \
+ type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
+ { \
+ return syscall(__NR_##sname, arg1, arg2, arg3, arg4); \
+ }
+
+#define io_syscall5(type, fname, sname, type1, arg1, type2, arg2, type3, arg3, type4, arg4, type5, arg5) \
+ type fname(type1 arg1, type2 arg2, type3 arg3, type4 arg4, type5 arg5) \
+ { \
+ return syscall(__NR_##sname, arg1, arg2, arg3, arg4, arg5); \
+ }