Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | /* * Copyright (C) 2008 IBM Corporation * Author: Mimi Zohar <zohar@us.ibm.com> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, version 2 of the License. */ #ifndef _LINUX_IMA_H #define _LINUX_IMA_H #include <linux/fs.h> #include <linux/kexec.h> struct linux_binprm; #ifdef CONFIG_IMA extern int ima_bprm_check(struct linux_binprm *bprm); extern int ima_file_check(struct file *file, int mask, int opened); extern void ima_file_free(struct file *file); extern int ima_file_mmap(struct file *file, unsigned long prot); extern int ima_read_file(struct file *file, enum kernel_read_file_id id); extern int ima_post_read_file(struct file *file, void *buf, loff_t size, enum kernel_read_file_id id); extern void ima_post_path_mknod(struct dentry *dentry); #ifdef CONFIG_IMA_KEXEC extern void ima_add_kexec_buffer(struct kimage *image); #endif #else static inline int ima_bprm_check(struct linux_binprm *bprm) { return 0; } static inline int ima_file_check(struct file *file, int mask, int opened) { return 0; } static inline void ima_file_free(struct file *file) { return; } static inline int ima_file_mmap(struct file *file, unsigned long prot) { return 0; } static inline int ima_read_file(struct file *file, enum kernel_read_file_id id) { return 0; } static inline int ima_post_read_file(struct file *file, void *buf, loff_t size, enum kernel_read_file_id id) { return 0; } static inline void ima_post_path_mknod(struct dentry *dentry) { return; } #endif /* CONFIG_IMA */ #ifndef CONFIG_IMA_KEXEC struct kimage; static inline void ima_add_kexec_buffer(struct kimage *image) {} #endif #ifdef CONFIG_IMA_APPRAISE extern bool is_ima_appraise_enabled(void); extern void ima_inode_post_setattr(struct dentry *dentry); extern int ima_inode_setxattr(struct dentry *dentry, const char *xattr_name, const void *xattr_value, size_t xattr_value_len); extern int ima_inode_removexattr(struct dentry *dentry, const char *xattr_name); #else static inline bool is_ima_appraise_enabled(void) { return 0; } static inline void ima_inode_post_setattr(struct dentry *dentry) { return; } static inline int ima_inode_setxattr(struct dentry *dentry, const char *xattr_name, const void *xattr_value, size_t xattr_value_len) { return 0; } static inline int ima_inode_removexattr(struct dentry *dentry, const char *xattr_name) { return 0; } #endif /* CONFIG_IMA_APPRAISE */ #endif /* _LINUX_IMA_H */ |