diff options
Diffstat (limited to 'include/linux/seccomp.h')
| -rw-r--r-- | include/linux/seccomp.h | 45 |
1 files changed, 1 insertions, 44 deletions
diff --git a/include/linux/seccomp.h b/include/linux/seccomp.h index 84f6320da50f..6f19cfd1840e 100644 --- a/include/linux/seccomp.h +++ b/include/linux/seccomp.h | |||
| @@ -1,50 +1,8 @@ | |||
| 1 | #ifndef _LINUX_SECCOMP_H | 1 | #ifndef _LINUX_SECCOMP_H |
| 2 | #define _LINUX_SECCOMP_H | 2 | #define _LINUX_SECCOMP_H |
| 3 | 3 | ||
| 4 | #include <linux/compiler.h> | 4 | #include <uapi/linux/seccomp.h> |
| 5 | #include <linux/types.h> | ||
| 6 | 5 | ||
| 7 | |||
| 8 | /* Valid values for seccomp.mode and prctl(PR_SET_SECCOMP, <mode>) */ | ||
| 9 | #define SECCOMP_MODE_DISABLED 0 /* seccomp is not in use. */ | ||
| 10 | #define SECCOMP_MODE_STRICT 1 /* uses hard-coded filter. */ | ||
| 11 | #define SECCOMP_MODE_FILTER 2 /* uses user-supplied filter. */ | ||
| 12 | |||
| 13 | /* | ||
| 14 | * All BPF programs must return a 32-bit value. | ||
| 15 | * The bottom 16-bits are for optional return data. | ||
| 16 | * The upper 16-bits are ordered from least permissive values to most. | ||
| 17 | * | ||
| 18 | * The ordering ensures that a min_t() over composed return values always | ||
| 19 | * selects the least permissive choice. | ||
| 20 | */ | ||
| 21 | #define SECCOMP_RET_KILL 0x00000000U /* kill the task immediately */ | ||
| 22 | #define SECCOMP_RET_TRAP 0x00030000U /* disallow and force a SIGSYS */ | ||
| 23 | #define SECCOMP_RET_ERRNO 0x00050000U /* returns an errno */ | ||
| 24 | #define SECCOMP_RET_TRACE 0x7ff00000U /* pass to a tracer or disallow */ | ||
| 25 | #define SECCOMP_RET_ALLOW 0x7fff0000U /* allow */ | ||
| 26 | |||
| 27 | /* Masks for the return value sections. */ | ||
| 28 | #define SECCOMP_RET_ACTION 0x7fff0000U | ||
| 29 | #define SECCOMP_RET_DATA 0x0000ffffU | ||
| 30 | |||
| 31 | /** | ||
| 32 | * struct seccomp_data - the format the BPF program executes over. | ||
| 33 | * @nr: the system call number | ||
| 34 | * @arch: indicates system call convention as an AUDIT_ARCH_* value | ||
| 35 | * as defined in <linux/audit.h>. | ||
| 36 | * @instruction_pointer: at the time of the system call. | ||
| 37 | * @args: up to 6 system call arguments always stored as 64-bit values | ||
| 38 | * regardless of the architecture. | ||
| 39 | */ | ||
| 40 | struct seccomp_data { | ||
| 41 | int nr; | ||
| 42 | __u32 arch; | ||
| 43 | __u64 instruction_pointer; | ||
| 44 | __u64 args[6]; | ||
| 45 | }; | ||
| 46 | |||
| 47 | #ifdef __KERNEL__ | ||
| 48 | #ifdef CONFIG_SECCOMP | 6 | #ifdef CONFIG_SECCOMP |
| 49 | 7 | ||
| 50 | #include <linux/thread_info.h> | 8 | #include <linux/thread_info.h> |
| @@ -129,5 +87,4 @@ static inline void get_seccomp_filter(struct task_struct *tsk) | |||
| 129 | return; | 87 | return; |
| 130 | } | 88 | } |
| 131 | #endif /* CONFIG_SECCOMP_FILTER */ | 89 | #endif /* CONFIG_SECCOMP_FILTER */ |
| 132 | #endif /* __KERNEL__ */ | ||
| 133 | #endif /* _LINUX_SECCOMP_H */ | 90 | #endif /* _LINUX_SECCOMP_H */ |
