diff options
Diffstat (limited to 'src/syscall.h')
-rw-r--r-- | src/syscall.h | 32 |
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); \ + } |