00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __RSBAC_SYSCALL_RSBAC_H
00013 #define __RSBAC_SYSCALL_RSBAC_H
00014
00015
00016
00017
00018 #include <linux/unistd.h>
00019 #include <rsbac/types.h>
00020 #include <rsbac/syscalls.h>
00021
00022
00023 #ifdef rsbac_syscall4
00024 static inline rsbac_syscall4(int, rsbac,
00025 int, dummy,
00026 rsbac_version_t, version,
00027 enum rsbac_syscall_t, call,
00028 union rsbac_syscall_arg_t *, arg_p);
00029 #define sys_rsbac(a,b,c) rsbac(0,a,b,c)
00030
00031 #else
00032 #ifndef _syscall3
00033 #define _syscall3(type,name,type1,arg1,type2,arg2,type3,arg3) \
00034 type \
00035 name (type1 arg1, type2 arg2, type3 arg3) \
00036 { \
00037 register long dummy4 __asm__ ("out3"); \
00038 register long dummy5 __asm__ ("out4"); \
00039 \
00040 return __ia64_syscall((long) arg1, (long) arg2, (long) arg3, \
00041 dummy4, dummy5, __NR_##name); \
00042 }
00043 #endif
00044
00045 static inline _syscall3(int, rsbac,
00046 rsbac_version_t, version,
00047 enum rsbac_syscall_t, call,
00048 union rsbac_syscall_arg_t *, arg_p);
00049 #define sys_rsbac(a,b,c) rsbac(a,b,c)
00050
00051 #endif
00052
00053 #endif