1 #ifndef __LUNAIX_SYSCALL_H
2 #define __LUNAIX_SYSCALL_H
4 #include <usr/lunaix/syscallid.h>
8 #define SYSCALL_ESTATUS(errno) -((errno) != 0)
10 #define asmlinkage __attribute__((regparm(0)))
12 #define __PARAM_MAP1(t1, p1) t1 p1
13 #define __PARAM_MAP2(t1, p1, ...) t1 p1, __PARAM_MAP1(__VA_ARGS__)
14 #define __PARAM_MAP3(t1, p1, ...) t1 p1, __PARAM_MAP2(__VA_ARGS__)
15 #define __PARAM_MAP4(t1, p1, ...) t1 p1, __PARAM_MAP3(__VA_ARGS__)
16 #define __PARAM_MAP5(t1, p1, ...) t1 p1, __PARAM_MAP4(__VA_ARGS__)
17 #define __PARAM_MAP6(t1, p1, ...) t1 p1, __PARAM_MAP5(__VA_ARGS__)
19 #define __DEFINE_LXSYSCALL(rettype, name) asmlinkage rettype __lxsys_##name()
21 #define __DEFINE_LXSYSCALL1(rettype, name, t1, p1) \
22 asmlinkage rettype __lxsys_##name(__PARAM_MAP1(t1, p1))
24 #define __DEFINE_LXSYSCALL2(rettype, name, t1, p1, t2, p2) \
25 asmlinkage rettype __lxsys_##name(__PARAM_MAP2(t1, p1, t2, p2))
27 #define __DEFINE_LXSYSCALL3(rettype, name, t1, p1, t2, p2, t3, p3) \
28 asmlinkage rettype __lxsys_##name(__PARAM_MAP3(t1, p1, t2, p2, t3, p3))
30 #define __DEFINE_LXSYSCALL4(rettype, name, t1, p1, t2, p2, t3, p3, t4, p4) \
31 asmlinkage rettype __lxsys_##name( \
32 __PARAM_MAP4(t1, p1, t2, p2, t3, p3, t4, p4))
34 #define __DEFINE_LXSYSCALL5( \
35 rettype, name, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5) \
36 asmlinkage rettype __lxsys_##name( \
37 __PARAM_MAP5(t1, p1, t2, p2, t3, p3, t4, p4, t5, p5))
40 #endif /* __LUNAIX_SYSCALL_H */