1  /* SPDX-License-Identifier: GPL-2.0-only */
2  /*
3   * AppArmor security module
4   *
5   * This file contains AppArmor basic global
6   *
7   * Copyright (C) 1998-2008 Novell/SUSE
8   * Copyright 2009-2017 Canonical Ltd.
9   */
10  
11  #ifndef __APPARMOR_H
12  #define __APPARMOR_H
13  
14  #include <linux/types.h>
15  
16  /*
17   * Class of mediation types in the AppArmor policy db
18   */
19  #define AA_CLASS_NONE		0
20  #define AA_CLASS_UNKNOWN	1
21  #define AA_CLASS_FILE		2
22  #define AA_CLASS_CAP		3
23  #define AA_CLASS_DEPRECATED	4
24  #define AA_CLASS_RLIMITS	5
25  #define AA_CLASS_DOMAIN		6
26  #define AA_CLASS_MOUNT		7
27  #define AA_CLASS_PTRACE		9
28  #define AA_CLASS_SIGNAL		10
29  #define AA_CLASS_XMATCH		11
30  #define AA_CLASS_NET		14
31  #define AA_CLASS_LABEL		16
32  #define AA_CLASS_POSIX_MQUEUE	17
33  #define AA_CLASS_MODULE		19
34  #define AA_CLASS_DISPLAY_LSM	20
35  #define AA_CLASS_NS		21
36  #define AA_CLASS_IO_URING	22
37  
38  #define AA_CLASS_X		31
39  #define AA_CLASS_DBUS		32
40  
41  #define AA_CLASS_LAST		AA_CLASS_DBUS
42  
43  /* Control parameters settable through module/boot flags */
44  extern enum audit_mode aa_g_audit;
45  extern bool aa_g_audit_header;
46  extern bool aa_g_debug;
47  extern bool aa_g_hash_policy;
48  extern bool aa_g_export_binary;
49  extern int aa_g_rawdata_compression_level;
50  extern bool aa_g_lock_policy;
51  extern bool aa_g_logsyscall;
52  extern bool aa_g_paranoid_load;
53  extern unsigned int aa_g_path_max;
54  
55  #ifdef CONFIG_SECURITY_APPARMOR_EXPORT_BINARY
56  #define AA_MIN_CLEVEL zstd_min_clevel()
57  #define AA_MAX_CLEVEL zstd_max_clevel()
58  #define AA_DEFAULT_CLEVEL ZSTD_CLEVEL_DEFAULT
59  #else
60  #define AA_MIN_CLEVEL 0
61  #define AA_MAX_CLEVEL 0
62  #define AA_DEFAULT_CLEVEL 0
63  #endif /* CONFIG_SECURITY_APPARMOR_EXPORT_BINARY */
64  
65  
66  #endif /* __APPARMOR_H */
67