Merge branch 'core/urgent' into x86/urgent, to pick up objtool fix
[sfrench/cifs-2.6.git] / include / linux / integrity.h
1 /*
2  * Copyright (C) 2009 IBM Corporation
3  * Author: Mimi Zohar <zohar@us.ibm.com>
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation, version 2 of the License.
8  */
9
10 #ifndef _LINUX_INTEGRITY_H
11 #define _LINUX_INTEGRITY_H
12
13 #include <linux/fs.h>
14
15 enum integrity_status {
16         INTEGRITY_PASS = 0,
17         INTEGRITY_PASS_IMMUTABLE,
18         INTEGRITY_FAIL,
19         INTEGRITY_NOLABEL,
20         INTEGRITY_NOXATTRS,
21         INTEGRITY_UNKNOWN,
22 };
23
24 /* List of EVM protected security xattrs */
25 #ifdef CONFIG_INTEGRITY
26 extern struct integrity_iint_cache *integrity_inode_get(struct inode *inode);
27 extern void integrity_inode_free(struct inode *inode);
28 extern void __init integrity_load_keys(void);
29
30 #else
31 static inline struct integrity_iint_cache *
32                                 integrity_inode_get(struct inode *inode)
33 {
34         return NULL;
35 }
36
37 static inline void integrity_inode_free(struct inode *inode)
38 {
39         return;
40 }
41
42 static inline void integrity_load_keys(void)
43 {
44 }
45 #endif /* CONFIG_INTEGRITY */
46
47 #ifdef CONFIG_INTEGRITY_ASYMMETRIC_KEYS
48
49 extern int integrity_kernel_module_request(char *kmod_name);
50
51 #else
52
53 static inline int integrity_kernel_module_request(char *kmod_name)
54 {
55         return 0;
56 }
57
58 #endif /* CONFIG_INTEGRITY_ASYMMETRIC_KEYS */
59
60 #endif /* _LINUX_INTEGRITY_H */