1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2009 IBM Corporation 4 * Author: Mimi Zohar <zohar@us.ibm.com> 5 */ 6 7 #ifndef _LINUX_INTEGRITY_H 8 #define _LINUX_INTEGRITY_H 9 10 #include <linux/fs.h> 11 12 enum integrity_status { 13 INTEGRITY_PASS = 0, 14 INTEGRITY_PASS_IMMUTABLE, 15 INTEGRITY_FAIL, 16 INTEGRITY_NOLABEL, 17 INTEGRITY_NOXATTRS, 18 INTEGRITY_UNKNOWN, 19 }; 20 21 /* List of EVM protected security xattrs */ 22 #ifdef CONFIG_INTEGRITY 23 extern struct integrity_iint_cache *integrity_inode_get(struct inode *inode); 24 extern void integrity_inode_free(struct inode *inode); 25 extern void __init integrity_load_keys(void); 26 27 #else 28 static inline struct integrity_iint_cache * 29 integrity_inode_get(struct inode *inode) 30 { 31 return NULL; 32 } 33 34 static inline void integrity_inode_free(struct inode *inode) 35 { 36 return; 37 } 38 39 static inline void integrity_load_keys(void) 40 { 41 } 42 #endif /* CONFIG_INTEGRITY */ 43 44 #ifdef CONFIG_INTEGRITY_ASYMMETRIC_KEYS 45 46 extern int integrity_kernel_module_request(char *kmod_name); 47 48 #else 49 50 static inline int integrity_kernel_module_request(char *kmod_name) 51 { 52 return 0; 53 } 54 55 #endif /* CONFIG_INTEGRITY_ASYMMETRIC_KEYS */ 56 57 #endif /* _LINUX_INTEGRITY_H */ 58