summaryrefslogtreecommitdiffstats
path: root/include/linux/args.h
diff options
context:
space:
mode:
authorKP Singh <kpsingh@kernel.org>2024-08-16 17:43:06 +0200
committerPaul Moore <paul@paul-moore.com>2024-08-22 12:23:47 -0400
commitd51e783c17bab0c139bf78d6bd9d1f66673f7903 (patch)
tree63a687b2677e5079ac9d3c5970d57df0a8eb87d9 /include/linux/args.h
parent7cff549daa67c7549c5a8688674cea2df8c2ec80 (diff)
downloadlinux-d51e783c17bab0c139bf78d6bd9d1f66673f7903.tar.gz
linux-d51e783c17bab0c139bf78d6bd9d1f66673f7903.tar.bz2
linux-d51e783c17bab0c139bf78d6bd9d1f66673f7903.zip
lsm: count the LSMs enabled at compile time
These macros are a clever trick to determine a count of the number of LSMs that are enabled in the config to ascertain the maximum number of static calls that need to be configured per LSM hook. Without this one would need to generate static calls for the total number of LSMs in the kernel (even if they are not compiled) times the number of LSM hooks which ends up being quite wasteful. Tested-by: Guenter Roeck <linux@roeck-us.net> Suggested-by: Kui-Feng Lee <sinquersw@gmail.com> Suggested-by: Andrii Nakryiko <andrii@kernel.org> Reviewed-by: Kees Cook <keescook@chromium.org> Reviewed-by: Casey Schaufler <casey@schaufler-ca.com> Reviewed-by: John Johansen <john.johansen@canonical.com> Acked-by: Casey Schaufler <casey@schaufler-ca.com> Acked-by: Song Liu <song@kernel.org> Acked-by: Andrii Nakryiko <andrii@kernel.org> Nacked-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Signed-off-by: KP Singh <kpsingh@kernel.org> [PM: added IPE to the count during merge] Signed-off-by: Paul Moore <paul@paul-moore.com>
Diffstat (limited to 'include/linux/args.h')
-rw-r--r--include/linux/args.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/args.h b/include/linux/args.h
index 8ff60a54eb7d..2e8e65d975c7 100644
--- a/include/linux/args.h
+++ b/include/linux/args.h
@@ -17,9 +17,9 @@
* that as _n.
*/
-/* This counts to 12. Any more, it will return 13th argument. */
-#define __COUNT_ARGS(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _n, X...) _n
-#define COUNT_ARGS(X...) __COUNT_ARGS(, ##X, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
+/* This counts to 15. Any more, it will return 16th argument. */
+#define __COUNT_ARGS(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _n, X...) _n
+#define COUNT_ARGS(X...) __COUNT_ARGS(, ##X, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0)
/* Concatenate two parameters, but allow them to be expanded beforehand. */
#define __CONCAT(a, b) a ## b