1
2
3
4
5
6
7
8
9
10#ifndef _LINUX_IMA_H
11#define _LINUX_IMA_H
12
13#include <linux/fs.h>
14struct linux_binprm;
15
16#ifdef CONFIG_IMA
17extern int ima_bprm_check(struct linux_binprm *bprm);
18extern int ima_file_check(struct file *file, int mask, int opened);
19extern void ima_file_free(struct file *file);
20extern int ima_file_mmap(struct file *file, unsigned long prot);
21extern int ima_read_file(struct file *file, enum kernel_read_file_id id);
22extern int ima_post_read_file(struct file *file, void *buf, loff_t size,
23 enum kernel_read_file_id id);
24extern void ima_post_path_mknod(struct dentry *dentry);
25
26#else
27static inline int ima_bprm_check(struct linux_binprm *bprm)
28{
29 return 0;
30}
31
32static inline int ima_file_check(struct file *file, int mask, int opened)
33{
34 return 0;
35}
36
37static inline void ima_file_free(struct file *file)
38{
39 return;
40}
41
42static inline int ima_file_mmap(struct file *file, unsigned long prot)
43{
44 return 0;
45}
46
47static inline int ima_read_file(struct file *file, enum kernel_read_file_id id)
48{
49 return 0;
50}
51
52static inline int ima_post_read_file(struct file *file, void *buf, loff_t size,
53 enum kernel_read_file_id id)
54{
55 return 0;
56}
57
58static inline void ima_post_path_mknod(struct dentry *dentry)
59{
60 return;
61}
62
63#endif
64
65#ifdef CONFIG_IMA_APPRAISE
66extern void ima_inode_post_setattr(struct dentry *dentry);
67extern int ima_inode_setxattr(struct dentry *dentry, const char *xattr_name,
68 const void *xattr_value, size_t xattr_value_len);
69extern int ima_inode_removexattr(struct dentry *dentry, const char *xattr_name);
70#else
71static inline void ima_inode_post_setattr(struct dentry *dentry)
72{
73 return;
74}
75
76static inline int ima_inode_setxattr(struct dentry *dentry,
77 const char *xattr_name,
78 const void *xattr_value,
79 size_t xattr_value_len)
80{
81 return 0;
82}
83
84static inline int ima_inode_removexattr(struct dentry *dentry,
85 const char *xattr_name)
86{
87 return 0;
88}
89#endif
90#endif
91