The following macros have been defined in Linux/include/linux/syscalls.h:
Copy Code
#define SYSCALL_DEFINE1 (name, ...) Syscall_definex (1, _# #name, __va_args__)
#define SYSCALL_DEFINE2 (name, ...) Syscall_definex (2, _# #name, __va_args__)
#define SYSCALL_DEFINE3 (name, ...) Syscall_definex (3, _# #name, __va_args__)
#define SYSCALL_DEFINE4 (name, ...) Syscall_definex (4, _# #name, __va_args__)
#define SYSCALL_DEFINE5 (name, ...) Syscall_definex (5, _# #name, __va_args__)
#define SYSCALL_DEFINE6 (name, ...) Syscall_definex (6, _# #name, __va_args__)
Copy Code
And also:
Copy Code
#define SYSCALL_DEFINEX (x, sname, ...) \
__syscall_definex (x, sname, __va_args__)
#define __SYSCALL_DEFINEX (x, Name, ...) \
Asmlinkage long sys# #name (__sc_decl# #x (__va_args__)); \
Static inline long sysc# #name (__sc_decl# #x (__va_args__)); \
Asmlinkage long sys# #name (__sc_long# #x (__va_args__)) \
{ \
__sc_test# #x (__va_args__); \
Return (long) sysc# #name (__sc_cast# #x (__va_args__)); \
} \
Syscall_alias (sys# #name, sys# #name); \
Static inline long sysc# #name (__sc_decl# #x (__va_args__))
Copy Code