move seccomp from /proc to a prctl
[linux-block.git] / include / linux / seccomp.h
CommitLineData
1da177e4
LT
1#ifndef _LINUX_SECCOMP_H
2#define _LINUX_SECCOMP_H
3
1da177e4
LT
4
5#ifdef CONFIG_SECCOMP
6
1da177e4
LT
7#include <linux/thread_info.h>
8#include <asm/seccomp.h>
9
10typedef struct { int mode; } seccomp_t;
11
12extern void __secure_computing(int);
13static inline void secure_computing(int this_syscall)
14{
15 if (unlikely(test_thread_flag(TIF_SECCOMP)))
16 __secure_computing(this_syscall);
17}
18
ffaa8bd6
AA
19static inline int has_secure_computing(struct thread_info *ti)
20{
21 return unlikely(test_ti_thread_flag(ti, TIF_SECCOMP));
22}
23
1d9d02fe
AA
24extern long prctl_get_seccomp(void);
25extern long prctl_set_seccomp(unsigned long);
26
1da177e4
LT
27#else /* CONFIG_SECCOMP */
28
a1365647 29typedef struct { } seccomp_t;
1da177e4
LT
30
31#define secure_computing(x) do { } while (0)
ffaa8bd6
AA
32/* static inline to preserve typechecking */
33static inline int has_secure_computing(struct thread_info *ti)
34{
35 return 0;
36}
1da177e4 37
1d9d02fe
AA
38static inline long prctl_get_seccomp(void)
39{
40 return -EINVAL;
41}
42
43static inline long prctl_set_seccomp(unsigned long arg2)
44{
45 return -EINVAL;
46}
47
1da177e4
LT
48#endif /* CONFIG_SECCOMP */
49
50#endif /* _LINUX_SECCOMP_H */