1 /* SPDX-License-Identifier: GPL-2.0 */ 1 2 3 /* 4 * Copyright (C) 2023 Google LLC. 5 */ 6 7 #ifndef __LINUX_LSM_COUNT_H 8 #define __LINUX_LSM_COUNT_H 9 10 #include <linux/args.h> 11 12 #ifdef CONFIG_SECURITY 13 14 /* 15 * Macros to count the number of LSMs enabled 16 */ 17 18 /* 19 * Capabilities is enabled when CONFIG_SECURIT 20 */ 21 #if IS_ENABLED(CONFIG_SECURITY) 22 #define CAPABILITIES_ENABLED 1, 23 #else 24 #define CAPABILITIES_ENABLED 25 #endif 26 27 #if IS_ENABLED(CONFIG_SECURITY_SELINUX) 28 #define SELINUX_ENABLED 1, 29 #else 30 #define SELINUX_ENABLED 31 #endif 32 33 #if IS_ENABLED(CONFIG_SECURITY_SMACK) 34 #define SMACK_ENABLED 1, 35 #else 36 #define SMACK_ENABLED 37 #endif 38 39 #if IS_ENABLED(CONFIG_SECURITY_APPARMOR) 40 #define APPARMOR_ENABLED 1, 41 #else 42 #define APPARMOR_ENABLED 43 #endif 44 45 #if IS_ENABLED(CONFIG_SECURITY_TOMOYO) 46 #define TOMOYO_ENABLED 1, 47 #else 48 #define TOMOYO_ENABLED 49 #endif 50 51 #if IS_ENABLED(CONFIG_SECURITY_YAMA) 52 #define YAMA_ENABLED 1, 53 #else 54 #define YAMA_ENABLED 55 #endif 56 57 #if IS_ENABLED(CONFIG_SECURITY_LOADPIN) 58 #define LOADPIN_ENABLED 1, 59 #else 60 #define LOADPIN_ENABLED 61 #endif 62 63 #if IS_ENABLED(CONFIG_SECURITY_LOCKDOWN_LSM) 64 #define LOCKDOWN_ENABLED 1, 65 #else 66 #define LOCKDOWN_ENABLED 67 #endif 68 69 #if IS_ENABLED(CONFIG_SECURITY_SAFESETID) 70 #define SAFESETID_ENABLED 1, 71 #else 72 #define SAFESETID_ENABLED 73 #endif 74 75 #if IS_ENABLED(CONFIG_BPF_LSM) 76 #define BPF_LSM_ENABLED 1, 77 #else 78 #define BPF_LSM_ENABLED 79 #endif 80 81 #if IS_ENABLED(CONFIG_SECURITY_LANDLOCK) 82 #define LANDLOCK_ENABLED 1, 83 #else 84 #define LANDLOCK_ENABLED 85 #endif 86 87 #if IS_ENABLED(CONFIG_IMA) 88 #define IMA_ENABLED 1, 89 #else 90 #define IMA_ENABLED 91 #endif 92 93 #if IS_ENABLED(CONFIG_EVM) 94 #define EVM_ENABLED 1, 95 #else 96 #define EVM_ENABLED 97 #endif 98 99 #if IS_ENABLED(CONFIG_SECURITY_IPE) 100 #define IPE_ENABLED 1, 101 #else 102 #define IPE_ENABLED 103 #endif 104 105 /* 106 * There is a trailing comma that we need to 107 * using a skipped argument in __COUNT_LSMS 108 */ 109 #define __COUNT_LSMS(skipped_arg, args...) COU 110 #define COUNT_LSMS(args...) __COUNT_LSMS(args) 111 112 #define MAX_LSM_COUNT \ 113 COUNT_LSMS( \ 114 CAPABILITIES_ENABLED \ 115 SELINUX_ENABLED \ 116 SMACK_ENABLED \ 117 APPARMOR_ENABLED \ 118 TOMOYO_ENABLED \ 119 YAMA_ENABLED \ 120 LOADPIN_ENABLED \ 121 LOCKDOWN_ENABLED \ 122 SAFESETID_ENABLED \ 123 BPF_LSM_ENABLED \ 124 LANDLOCK_ENABLED \ 125 IMA_ENABLED \ 126 EVM_ENABLED \ 127 IPE_ENABLED) 128 129 #else 130 131 #define MAX_LSM_COUNT 0 132 133 #endif /* CONFIG_SECURITY */ 134 135 #endif /* __LINUX_LSM_COUNT_H */ 136
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.