at v4.7-rc2 2.3 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> 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 /* CONFIG_IMA */ 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 /* CONFIG_IMA_APPRAISE */ 90#endif /* _LINUX_IMA_H */