summaryrefslogtreecommitdiffstats
path: root/scripts/mod/modpost.c
diff options
context:
space:
mode:
authorMasahiro Yamada <masahiroy@kernel.org>2022-08-01 18:39:00 +0900
committerMasahiro Yamada <masahiroy@kernel.org>2022-08-04 20:32:13 +0900
commit7452dd26a59a9dfcde3f179594f3be6c4752a9a9 (patch)
treec7f1fdae3c6cdf93e26c279289545e4dccd31ac3 /scripts/mod/modpost.c
parent072dd2c8928f2ecdc52cdf5acf30479b327386c9 (diff)
downloadlinux-stable-7452dd26a59a9dfcde3f179594f3be6c4752a9a9.tar.gz
linux-stable-7452dd26a59a9dfcde3f179594f3be6c4752a9a9.tar.bz2
linux-stable-7452dd26a59a9dfcde3f179594f3be6c4752a9a9.zip
modpost: add PATTERNS() helper macro
This will be useful to define a NULL-terminated array inside a function call. Currently, string arrays passed to match() are defined in separate places: static const char *const init_sections[] = { ALL_INIT_SECTIONS, NULL }; static const char *const text_sections[] = { ALL_TEXT_SECTIONS, NULL }; static const char *const optim_symbols[] = { "*.constprop.*", NULL }; ... /* Check for pattern 5 */ if (match(fromsec, text_sections) && match(tosec, init_sections) && match(fromsym, optim_symbols)) return 0; With the new helper macro, you can list the patterns directly in the function call, like this: /* Check for pattern 5 */ if (match(fromsec, PATTERNS(ALL_TEXT_SECTIONS)) && match(tosec, PATTERNS(ALL_INIT_SECTIONS)) && match(fromsym, PATTERNS("*.contprop.*"))) return 0; Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Diffstat (limited to 'scripts/mod/modpost.c')
-rw-r--r--scripts/mod/modpost.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
index 9e8ae2636ec1..c2949a1a0d5e 100644
--- a/scripts/mod/modpost.c
+++ b/scripts/mod/modpost.c
@@ -746,6 +746,13 @@ static bool match(const char *string, const char *const patterns[])
return false;
}
+/* useful to pass patterns to match() directly */
+#define PATTERNS(...) \
+ ({ \
+ static const char *const patterns[] = {__VA_ARGS__, NULL}; \
+ patterns; \
+ })
+
/* sections that we do not want to do full section mismatch check on */
static const char *const section_white_list[] =
{