1/*
2 * Copyright (C) 2009 IBM Corporation
3 * Author: Mimi Zohar <zohar@us.ibm.com>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, version 2 of the License.
8 */
9
10#ifndef _LINUX_INTEGRITY_H
11#define _LINUX_INTEGRITY_H
12
13#include <linux/fs.h>
14
15enum integrity_status {
16 INTEGRITY_PASS = 0,
17 INTEGRITY_PASS_IMMUTABLE,
18 INTEGRITY_FAIL,
19 INTEGRITY_NOLABEL,
20 INTEGRITY_NOXATTRS,
21 INTEGRITY_UNKNOWN,
22};
23
24/* List of EVM protected security xattrs */
25#ifdef CONFIG_INTEGRITY
26extern struct integrity_iint_cache *integrity_inode_get(struct inode *inode);
27extern void integrity_inode_free(struct inode *inode);
28extern void __init integrity_load_keys(void);
29
30#else
31static inline struct integrity_iint_cache *
32 integrity_inode_get(struct inode *inode)
33{
34 return NULL;
35}
36
37static inline void integrity_inode_free(struct inode *inode)
38{
39 return;
40}
41
42static inline void integrity_load_keys(void)
43{
44}
45#endif /* CONFIG_INTEGRITY */
46
47#ifdef CONFIG_INTEGRITY_ASYMMETRIC_KEYS
48
49extern int integrity_kernel_module_request(char *kmod_name);
50
51#else
52
53static inline int integrity_kernel_module_request(char *kmod_name)
54{
55 return 0;
56}
57
58#endif /* CONFIG_INTEGRITY_ASYMMETRIC_KEYS */
59
60#endif /* _LINUX_INTEGRITY_H */
61