162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * AppArmor security module
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * This file contains AppArmor basic global
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci * Copyright (C) 1998-2008 Novell/SUSE
862306a36Sopenharmony_ci * Copyright 2009-2017 Canonical Ltd.
962306a36Sopenharmony_ci */
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#ifndef __APPARMOR_H
1262306a36Sopenharmony_ci#define __APPARMOR_H
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci#include <linux/types.h>
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci/*
1762306a36Sopenharmony_ci * Class of mediation types in the AppArmor policy db
1862306a36Sopenharmony_ci */
1962306a36Sopenharmony_ci#define AA_CLASS_NONE		0
2062306a36Sopenharmony_ci#define AA_CLASS_UNKNOWN	1
2162306a36Sopenharmony_ci#define AA_CLASS_FILE		2
2262306a36Sopenharmony_ci#define AA_CLASS_CAP		3
2362306a36Sopenharmony_ci#define AA_CLASS_DEPRECATED	4
2462306a36Sopenharmony_ci#define AA_CLASS_RLIMITS	5
2562306a36Sopenharmony_ci#define AA_CLASS_DOMAIN		6
2662306a36Sopenharmony_ci#define AA_CLASS_MOUNT		7
2762306a36Sopenharmony_ci#define AA_CLASS_PTRACE		9
2862306a36Sopenharmony_ci#define AA_CLASS_SIGNAL		10
2962306a36Sopenharmony_ci#define AA_CLASS_XMATCH		11
3062306a36Sopenharmony_ci#define AA_CLASS_NET		14
3162306a36Sopenharmony_ci#define AA_CLASS_LABEL		16
3262306a36Sopenharmony_ci#define AA_CLASS_POSIX_MQUEUE	17
3362306a36Sopenharmony_ci#define AA_CLASS_IO_URING	18
3462306a36Sopenharmony_ci#define AA_CLASS_MODULE		19
3562306a36Sopenharmony_ci#define AA_CLASS_DISPLAY_LSM	20
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci#define AA_CLASS_X		31
3862306a36Sopenharmony_ci#define AA_CLASS_DBUS		32
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci#define AA_CLASS_LAST		AA_CLASS_DBUS
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci/* Control parameters settable through module/boot flags */
4362306a36Sopenharmony_ciextern enum audit_mode aa_g_audit;
4462306a36Sopenharmony_ciextern bool aa_g_audit_header;
4562306a36Sopenharmony_ciextern bool aa_g_debug;
4662306a36Sopenharmony_ciextern bool aa_g_hash_policy;
4762306a36Sopenharmony_ciextern bool aa_g_export_binary;
4862306a36Sopenharmony_ciextern int aa_g_rawdata_compression_level;
4962306a36Sopenharmony_ciextern bool aa_g_lock_policy;
5062306a36Sopenharmony_ciextern bool aa_g_logsyscall;
5162306a36Sopenharmony_ciextern bool aa_g_paranoid_load;
5262306a36Sopenharmony_ciextern unsigned int aa_g_path_max;
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci#ifdef CONFIG_SECURITY_APPARMOR_EXPORT_BINARY
5562306a36Sopenharmony_ci#define AA_MIN_CLEVEL zstd_min_clevel()
5662306a36Sopenharmony_ci#define AA_MAX_CLEVEL zstd_max_clevel()
5762306a36Sopenharmony_ci#define AA_DEFAULT_CLEVEL ZSTD_CLEVEL_DEFAULT
5862306a36Sopenharmony_ci#else
5962306a36Sopenharmony_ci#define AA_MIN_CLEVEL 0
6062306a36Sopenharmony_ci#define AA_MAX_CLEVEL 0
6162306a36Sopenharmony_ci#define AA_DEFAULT_CLEVEL 0
6262306a36Sopenharmony_ci#endif /* CONFIG_SECURITY_APPARMOR_EXPORT_BINARY */
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci#endif /* __APPARMOR_H */
66