1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_VERMAGIC_H
3 #define _LINUX_VERMAGIC_H
5 #include <generated/utsrelease.h>
6 #include <asm/vermagic.h>
8 /* Simply sanity version stamp for modules. */
10 #define MODULE_VERMAGIC_SMP "SMP "
12 #define MODULE_VERMAGIC_SMP ""
15 #define MODULE_VERMAGIC_PREEMPT "preempt "
16 #elif defined(CONFIG_PREEMPT_RT)
17 #define MODULE_VERMAGIC_PREEMPT "preempt_rt "
19 #define MODULE_VERMAGIC_PREEMPT ""
21 #ifdef CONFIG_MODULE_UNLOAD
22 #define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload "
24 #define MODULE_VERMAGIC_MODULE_UNLOAD ""
26 #ifdef CONFIG_MODVERSIONS
27 #define MODULE_VERMAGIC_MODVERSIONS "modversions "
29 #define MODULE_VERMAGIC_MODVERSIONS ""
31 #ifdef RANDSTRUCT_PLUGIN
32 #include <generated/randomize_layout_hash.h>
33 #define MODULE_RANDSTRUCT_PLUGIN "RANDSTRUCT_PLUGIN_" RANDSTRUCT_HASHED_SEED
35 #define MODULE_RANDSTRUCT_PLUGIN
38 #define VERMAGIC_STRING \
40 MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
41 MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \
42 MODULE_ARCH_VERMAGIC \
43 MODULE_RANDSTRUCT_PLUGIN
45 #endif /* _LINUX_VERMAGIC_H */