1 #ifndef __LUNAIX_SYSCALL_H
2 #define __LUNAIX_SYSCALL_H
4 #include <arch/x86/vectors.h>
5 #include <usr/lunaix/syscallid.h>
9 #define SYSCALL_ESTATUS(errno) -((errno) != 0)
14 #define asmlinkage __attribute__((regparm(0)))
16 #define __PARAM_MAP1(t1, p1) t1 p1
17 #define __PARAM_MAP2(t1, p1, ...) t1 p1, __PARAM_MAP1(__VA_ARGS__)
18 #define __PARAM_MAP3(t1, p1, ...) t1 p1, __PARAM_MAP2(__VA_ARGS__)
19 #define __PARAM_MAP4(t1, p1, ...) t1 p1, __PARAM_MAP3(__VA_ARGS__)
20 #define __PARAM_MAP5(t1, p1, ...) t1 p1, __PARAM_MAP4(__VA_ARGS__)
21 #define __PARAM_MAP6(t1, p1, ...) t1 p1, __PARAM_MAP5(__VA_ARGS__)
23 #define __DEFINE_LXSYSCALL(rettype, name) asmlinkage rettype __lxsys_##name()
25 #define __DEFINE_LXSYSCALL1(rettype, name, t1, p1) \
26 asmlinkage rettype __lxsys_##name(__PARAM_MAP1(t1, p1))
28 #define __DEFINE_LXSYSCALL2(rettype, name, t1, p1, t2, p2) \
29 asmlinkage rettype __lxsys_##name(__PARAM_MAP2(t1, p1, t2, p2))
31 #define __DEFINE_LXSYSCALL3(rettype, name, t1, p1, t2, p2, t3, p3) \
32 asmlinkage rettype __lxsys_##name(__PARAM_MAP3(t1, p1, t2, p2, t3, p3))
34 #define __DEFINE_LXSYSCALL4(rettype, name, t1, p1, t2, p2, t3, p3, t4, p4) \
35 asmlinkage rettype __lxsys_##name( \
36 __PARAM_MAP4(t1, p1, t2, p2, t3, p3, t4, p4))
38 #define __DEFINE_LXSYSCALL5( \
39 rettype, name, t1, p1, t2, p2, t3, p3, t4, p4, t5, p5) \
40 asmlinkage rettype __lxsys_##name( \
41 __PARAM_MAP5(t1, p1, t2, p2, t3, p3, t4, p4, t5, p5))
43 #define __SYSCALL_INTERRUPTIBLE(code) \
48 #endif /* __LUNAIX_SYSCALL_H */