at v4.12 2.5 kB view raw
1/* 2 * Copyright (C) 2008 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_IMA_H 11#define _LINUX_IMA_H 12 13#include <linux/fs.h> 14#include <linux/kexec.h> 15struct linux_binprm; 16 17#ifdef CONFIG_IMA 18extern int ima_bprm_check(struct linux_binprm *bprm); 19extern int ima_file_check(struct file *file, int mask, int opened); 20extern void ima_file_free(struct file *file); 21extern int ima_file_mmap(struct file *file, unsigned long prot); 22extern int ima_read_file(struct file *file, enum kernel_read_file_id id); 23extern int ima_post_read_file(struct file *file, void *buf, loff_t size, 24 enum kernel_read_file_id id); 25extern void ima_post_path_mknod(struct dentry *dentry); 26 27#ifdef CONFIG_IMA_KEXEC 28extern void ima_add_kexec_buffer(struct kimage *image); 29#endif 30 31#else 32static inline int ima_bprm_check(struct linux_binprm *bprm) 33{ 34 return 0; 35} 36 37static inline int ima_file_check(struct file *file, int mask, int opened) 38{ 39 return 0; 40} 41 42static inline void ima_file_free(struct file *file) 43{ 44 return; 45} 46 47static inline int ima_file_mmap(struct file *file, unsigned long prot) 48{ 49 return 0; 50} 51 52static inline int ima_read_file(struct file *file, enum kernel_read_file_id id) 53{ 54 return 0; 55} 56 57static inline int ima_post_read_file(struct file *file, void *buf, loff_t size, 58 enum kernel_read_file_id id) 59{ 60 return 0; 61} 62 63static inline void ima_post_path_mknod(struct dentry *dentry) 64{ 65 return; 66} 67 68#endif /* CONFIG_IMA */ 69 70#ifndef CONFIG_IMA_KEXEC 71struct kimage; 72 73static inline void ima_add_kexec_buffer(struct kimage *image) 74{} 75#endif 76 77#ifdef CONFIG_IMA_APPRAISE 78extern void ima_inode_post_setattr(struct dentry *dentry); 79extern int ima_inode_setxattr(struct dentry *dentry, const char *xattr_name, 80 const void *xattr_value, size_t xattr_value_len); 81extern int ima_inode_removexattr(struct dentry *dentry, const char *xattr_name); 82#else 83static inline void ima_inode_post_setattr(struct dentry *dentry) 84{ 85 return; 86} 87 88static inline int ima_inode_setxattr(struct dentry *dentry, 89 const char *xattr_name, 90 const void *xattr_value, 91 size_t xattr_value_len) 92{ 93 return 0; 94} 95 96static inline int ima_inode_removexattr(struct dentry *dentry, 97 const char *xattr_name) 98{ 99 return 0; 100} 101#endif /* CONFIG_IMA_APPRAISE */ 102#endif /* _LINUX_IMA_H */