Line data Source code
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 5296 : static inline void integrity_inode_free(struct inode *inode) 35 : { 36 5296 : return; 37 : } 38 : 39 1 : static inline void integrity_load_keys(void) 40 : { 41 1 : } 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 */