1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * include/asm-generic/seccomp.h
4  *
5  * Copyright (C) 2014 Linaro Limited
6  * Author: AKASHI Takahiro <takahiro.akashi@linaro.org>
7  */
8 #ifndef _ASM_GENERIC_SECCOMP_H
9 #define _ASM_GENERIC_SECCOMP_H
10 
11 #include <linux/unistd.h>
12 
13 #if defined(CONFIG_COMPAT) && !defined(__NR_seccomp_read_32)
14 #define __NR_seccomp_read_32		__NR_read
15 #define __NR_seccomp_write_32		__NR_write
16 #define __NR_seccomp_exit_32		__NR_exit
17 #ifndef __NR_seccomp_sigreturn_32
18 #define __NR_seccomp_sigreturn_32	__NR_rt_sigreturn
19 #endif
20 #endif /* CONFIG_COMPAT && ! already defined */
21 
22 #define __NR_seccomp_read		__NR_read
23 #define __NR_seccomp_write		__NR_write
24 #define __NR_seccomp_exit		__NR_exit
25 #ifndef __NR_seccomp_sigreturn
26 #define __NR_seccomp_sigreturn		__NR_rt_sigreturn
27 #endif
28 
29 #ifdef CONFIG_COMPAT
30 #ifndef get_compat_mode1_syscalls
get_compat_mode1_syscalls(void)31 static inline const int *get_compat_mode1_syscalls(void)
32 {
33 	static const int mode1_syscalls_32[] = {
34 		__NR_seccomp_read_32, __NR_seccomp_write_32,
35 		__NR_seccomp_exit_32, __NR_seccomp_sigreturn_32,
36 		-1, /* negative terminated */
37 	};
38 	return mode1_syscalls_32;
39 }
40 #endif
41 #endif /* CONFIG_COMPAT */
42 
43 #endif /* _ASM_GENERIC_SECCOMP_H */
44