| /* SPDX-License-Identifier: GPL-2.0-only */ |
| /* |
| * Copyright (C) 2009 IBM Corporation |
| * Author: Mimi Zohar <zohar@us.ibm.com> |
| */ |
| |
| #ifndef _LINUX_INTEGRITY_H |
| #define _LINUX_INTEGRITY_H |
| |
| #include <linux/fs.h> |
| |
| enum integrity_status { |
| INTEGRITY_PASS = 0, |
| INTEGRITY_PASS_IMMUTABLE, |
| INTEGRITY_FAIL, |
| INTEGRITY_FAIL_IMMUTABLE, |
| INTEGRITY_NOLABEL, |
| INTEGRITY_NOXATTRS, |
| INTEGRITY_UNKNOWN, |
| }; |
| |
| /* List of EVM protected security xattrs */ |
| #ifdef CONFIG_INTEGRITY |
| extern struct integrity_iint_cache *integrity_inode_get(struct inode *inode); |
| extern void integrity_inode_free(struct inode *inode); |
| extern void __init integrity_load_keys(void); |
| |
| #else |
| static inline struct integrity_iint_cache * |
| integrity_inode_get(struct inode *inode) |
| { |
| return NULL; |
| } |
| |
| static inline void integrity_inode_free(struct inode *inode) |
| { |
| return; |
| } |
| |
| static inline void integrity_load_keys(void) |
| { |
| } |
| #endif /* CONFIG_INTEGRITY */ |
| |
| #ifdef CONFIG_INTEGRITY_ASYMMETRIC_KEYS |
| |
| extern int integrity_kernel_module_request(char *kmod_name); |
| |
| #else |
| |
| static inline int integrity_kernel_module_request(char *kmod_name) |
| { |
| return 0; |
| } |
| |
| #endif /* CONFIG_INTEGRITY_ASYMMETRIC_KEYS */ |
| |
| #endif /* _LINUX_INTEGRITY_H */ |