File Index
Files and directories
Sign in
FILE

lsm_count.h

File preview with syntax highlighting.

linux-6.19.14/include/linux/lsm_count.h C
  1/* SPDX-License-Identifier: GPL-2.0 */
  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 in the kernel at compile time.
 16 */
 17
 18/*
 19 * Capabilities is enabled when CONFIG_SECURITY is enabled.
 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 be accounted for. This is done by
107 *  using a skipped argument in __COUNT_LSMS
108 */
109#define __COUNT_LSMS(skipped_arg, args...) COUNT_ARGS(args...)
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 */
~/ Read-only file preview.