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 12enum 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 23extern struct integrity_iint_cache *integrity_inode_get(struct inode *inode); 24extern void integrity_inode_free(struct inode *inode); 25extern void __init integrity_load_keys(void); 26 27#else 28static inline struct integrity_iint_cache * 29 integrity_inode_get(struct inode *inode) 30{ 31 return NULL; 32} 33 34static inline void integrity_inode_free(struct inode *inode) 35{ 36 return; 37} 38 39static inline void integrity_load_keys(void) 40{ 41} 42#endif /* CONFIG_INTEGRITY */ 43 44#ifdef CONFIG_INTEGRITY_ASYMMETRIC_KEYS 45 46extern int integrity_kernel_module_request(char *kmod_name); 47 48#else 49 50static 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