1 /* 2 * Copyright (C) 2009 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_INTEGRITY_H 11 #define _LINUX_INTEGRITY_H 12 13 #include <linux/fs.h> 14 15 enum integrity_status { 16 INTEGRITY_PASS = 0, 17 INTEGRITY_PASS_IMMUTABLE, 18 INTEGRITY_FAIL, 19 INTEGRITY_NOLABEL, 20 INTEGRITY_NOXATTRS, 21 INTEGRITY_UNKNOWN, 22 }; 23 24 /* List of EVM protected security xattrs */ 25 #ifdef CONFIG_INTEGRITY 26 extern struct integrity_iint_cache *integrity_inode_get(struct inode *inode); 27 extern void integrity_inode_free(struct inode *inode); 28 extern void __init integrity_load_keys(void); 29 30 #else 31 static inline struct integrity_iint_cache * integrity_inode_get(struct inode * inode)32 integrity_inode_get(struct inode *inode) 33 { 34 return NULL; 35 } 36 integrity_inode_free(struct inode * inode)37static inline void integrity_inode_free(struct inode *inode) 38 { 39 return; 40 } 41 integrity_load_keys(void)42static inline void integrity_load_keys(void) 43 { 44 } 45 #endif /* CONFIG_INTEGRITY */ 46 47 #ifdef CONFIG_INTEGRITY_ASYMMETRIC_KEYS 48 49 extern int integrity_kernel_module_request(char *kmod_name); 50 51 #else 52 integrity_kernel_module_request(char * kmod_name)53static inline int integrity_kernel_module_request(char *kmod_name) 54 { 55 return 0; 56 } 57 58 #endif /* CONFIG_INTEGRITY_ASYMMETRIC_KEYS */ 59 60 #endif /* _LINUX_INTEGRITY_H */ 61