]>
Commit | Line | Data |
---|---|---|
1da177e4 LT |
1 | #ifndef _LINUX_SECCOMP_H |
2 | #define _LINUX_SECCOMP_H | |
3 | ||
4 | #include <linux/config.h> | |
5 | ||
6 | #ifdef CONFIG_SECCOMP | |
7 | ||
8 | #define NR_SECCOMP_MODES 1 | |
9 | ||
10 | #include <linux/thread_info.h> | |
11 | #include <asm/seccomp.h> | |
12 | ||
13 | typedef struct { int mode; } seccomp_t; | |
14 | ||
15 | extern void __secure_computing(int); | |
16 | static inline void secure_computing(int this_syscall) | |
17 | { | |
18 | if (unlikely(test_thread_flag(TIF_SECCOMP))) | |
19 | __secure_computing(this_syscall); | |
20 | } | |
21 | ||
ffaa8bd6 AA |
22 | static inline int has_secure_computing(struct thread_info *ti) |
23 | { | |
24 | return unlikely(test_ti_thread_flag(ti, TIF_SECCOMP)); | |
25 | } | |
26 | ||
1da177e4 LT |
27 | #else /* CONFIG_SECCOMP */ |
28 | ||
29 | #if (__GNUC__ > 2) | |
30 | typedef struct { } seccomp_t; | |
31 | #else | |
32 | typedef struct { int gcc_is_buggy; } seccomp_t; | |
33 | #endif | |
34 | ||
35 | #define secure_computing(x) do { } while (0) | |
ffaa8bd6 AA |
36 | /* static inline to preserve typechecking */ |
37 | static inline int has_secure_computing(struct thread_info *ti) | |
38 | { | |
39 | return 0; | |
40 | } | |
1da177e4 LT |
41 | |
42 | #endif /* CONFIG_SECCOMP */ | |
43 | ||
44 | #endif /* _LINUX_SECCOMP_H */ |