/* SPDX-License-Identifier: GPL-2.0-only */ /* * Copyright (C) 2009 IBM Corporation * Author: Mimi Zohar */ #ifndef _LINUX_INTEGRITY_H #define _LINUX_INTEGRITY_H #include 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 */