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