[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL 16/16] bsd-user: Add safe system call macros
From: |
Warner Losh |
Subject: |
[PULL 16/16] bsd-user: Add safe system call macros |
Date: |
Mon, 28 Feb 2022 11:12:14 -0700 |
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>
---
bsd-user/syscall_defs.h | 47 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 47 insertions(+)
diff --git a/bsd-user/syscall_defs.h b/bsd-user/syscall_defs.h
index 62b472b990b..c3bf14f38f4 100644
--- a/bsd-user/syscall_defs.h
+++ b/bsd-user/syscall_defs.h
@@ -179,4 +179,51 @@ struct target_freebsd__wrusage {
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_ */
--
2.33.1
- [PULL 05/16] bsd-user/arm/target_arch_cpu.h: Only support FreeBSD sys calls, (continued)
- [PULL 05/16] bsd-user/arm/target_arch_cpu.h: Only support FreeBSD sys calls, Warner Losh, 2022/02/28
- [PULL 04/16] bsd-user/i386/target_arch_cpu.h: Remove openbsd syscall, Warner Losh, 2022/02/28
- [PULL 07/16] bsd-user/x86_64/target_arch_thread.h: Assume a FreeBSD target, Warner Losh, 2022/02/28
- [PULL 08/16] bsd-user: Remove bsd_type, Warner Losh, 2022/02/28
- [PULL 09/16] bsd-user/freebsd/os-syscall.c: Move syscall processing here, Warner Losh, 2022/02/28
- [PULL 10/16] bsd-user: Move system call building to os-syscall.c, Warner Losh, 2022/02/28
- [PULL 11/16] bsd-user/sycall.c: Now obsolete, remove, Warner Losh, 2022/02/28
- [PULL 13/16] bsd-user/bsd-file.h: Implementation details for the filesystem calls, Warner Losh, 2022/02/28
- [PULL 12/16] bsd-user/freebsd/os-syscall.c: Add get_errno and host_to_target_errno, Warner Losh, 2022/02/28
- [PULL 15/16] bsd-user: Define target_arg64, Warner Losh, 2022/02/28
- [PULL 16/16] bsd-user: Add safe system call macros,
Warner Losh <=
- [PULL 14/16] bsd-user: introduce target.h, Warner Losh, 2022/02/28