mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-09-08 16:07:39 -06:00
bsd-user: Add safe system call macros
Add a series of macros to create system call macros that go via the safe_syscall path. Signed-off-by: Kyle Evans <kevans@FreeBSD.org> Signed-off-by: Warner Losh <imp@bsdimp.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
0ff0508286
commit
a5b8816636
1 changed files with 47 additions and 0 deletions
|
@ -179,4 +179,51 @@ struct target_freebsd__wrusage {
|
||||||
struct target_freebsd_rusage wru_children;
|
struct target_freebsd_rusage wru_children;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define safe_syscall0(type, name) \
|
||||||
|
type safe_##name(void) \
|
||||||
|
{ \
|
||||||
|
return safe_syscall(SYS_##name); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define safe_syscall1(type, name, type1, arg1) \
|
||||||
|
type safe_##name(type1 arg1) \
|
||||||
|
{ \
|
||||||
|
return safe_syscall(SYS_##name, arg1); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define safe_syscall2(type, name, type1, arg1, type2, arg2) \
|
||||||
|
type safe_##name(type1 arg1, type2 arg2) \
|
||||||
|
{ \
|
||||||
|
return safe_syscall(SYS_##name, arg1, arg2); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define safe_syscall3(type, name, type1, arg1, type2, arg2, type3, arg3) \
|
||||||
|
type safe_##name(type1 arg1, type2 arg2, type3 arg3) \
|
||||||
|
{ \
|
||||||
|
return safe_syscall(SYS_##name, arg1, arg2, arg3); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define safe_syscall4(type, name, type1, arg1, type2, arg2, type3, arg3, \
|
||||||
|
type4, arg4) \
|
||||||
|
type safe_##name(type1 arg1, type2 arg2, type3 arg3, type4 arg4) \
|
||||||
|
{ \
|
||||||
|
return safe_syscall(SYS_##name, arg1, arg2, arg3, arg4); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define safe_syscall5(type, name, type1, arg1, type2, arg2, type3, arg3, \
|
||||||
|
type4, arg4, type5, arg5) \
|
||||||
|
type safe_##name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \
|
||||||
|
type5 arg5) \
|
||||||
|
{ \
|
||||||
|
return safe_syscall(SYS_##name, arg1, arg2, arg3, arg4, arg5); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define safe_syscall6(type, name, type1, arg1, type2, arg2, type3, arg3, \
|
||||||
|
type4, arg4, type5, arg5, type6, arg6) \
|
||||||
|
type safe_##name(type1 arg1, type2 arg2, type3 arg3, type4 arg4, \
|
||||||
|
type5 arg5, type6 arg6) \
|
||||||
|
{ \
|
||||||
|
return safe_syscall(SYS_##name, arg1, arg2, arg3, arg4, arg5, arg6); \
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* ! _SYSCALL_DEFS_H_ */
|
#endif /* ! _SYSCALL_DEFS_H_ */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue