xref: /linux/security/lsm.h (revision 4ab5efcc2829a38a3adcfdd9cd0c0e0eb6fb6939)
1 // SPDX-License-Identifier: GPL-2.0-or-later
2 /*
3  * LSM functions
4  */
5 
6 #ifndef _LSM_H_
7 #define _LSM_H_
8 
9 #include <linux/printk.h>
10 #include <linux/lsm_hooks.h>
11 #include <linux/lsm_count.h>
12 
13 /* LSM debugging */
14 extern bool lsm_debug;
15 #define lsm_pr(...)		pr_info(__VA_ARGS__)
16 #define lsm_pr_cont(...)	pr_cont(__VA_ARGS__)
17 #define lsm_pr_dbg(...)							\
18 	do {								\
19 		if (lsm_debug)						\
20 			pr_info(__VA_ARGS__);				\
21 	} while (0)
22 
23 /* List of configured LSMs */
24 extern unsigned int lsm_active_cnt;
25 extern const struct lsm_id *lsm_idlist[];
26 
27 /* LSM blob configuration */
28 extern struct lsm_blob_sizes blob_sizes;
29 
30 /* LSM blob caches */
31 extern struct kmem_cache *lsm_file_cache;
32 extern struct kmem_cache *lsm_inode_cache;
33 
34 /* LSM blob allocators */
35 int lsm_cred_alloc(struct cred *cred, gfp_t gfp);
36 int lsm_task_alloc(struct task_struct *task);
37 
38 /* LSM framework initializers */
39 
40 #ifdef CONFIG_MMU
41 int min_addr_init(void);
42 #else
43 static inline int min_addr_init(void)
44 {
45 	return 0;
46 }
47 #endif /* CONFIG_MMU */
48 
49 #ifdef CONFIG_SECURITYFS
50 int securityfs_init(void);
51 #else
52 static inline int securityfs_init(void)
53 {
54 	return 0;
55 }
56 #endif /* CONFIG_SECURITYFS */
57 
58 #endif /* _LSM_H_ */
59