Loading...
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _LINUX_VERMAGIC_H
3#define _LINUX_VERMAGIC_H
4
5#ifndef INCLUDE_VERMAGIC
6#error "This header can be included from kernel/module.c or *.mod.c only"
7#endif
8
9#include <generated/utsrelease.h>
10#include <asm/vermagic.h>
11
12/* Simply sanity version stamp for modules. */
13#ifdef CONFIG_SMP
14#define MODULE_VERMAGIC_SMP "SMP "
15#else
16#define MODULE_VERMAGIC_SMP ""
17#endif
18#ifdef CONFIG_PREEMPT
19#define MODULE_VERMAGIC_PREEMPT "preempt "
20#elif defined(CONFIG_PREEMPT_RT)
21#define MODULE_VERMAGIC_PREEMPT "preempt_rt "
22#else
23#define MODULE_VERMAGIC_PREEMPT ""
24#endif
25#ifdef CONFIG_MODULE_UNLOAD
26#define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload "
27#else
28#define MODULE_VERMAGIC_MODULE_UNLOAD ""
29#endif
30#ifdef CONFIG_MODVERSIONS
31#define MODULE_VERMAGIC_MODVERSIONS "modversions "
32#else
33#define MODULE_VERMAGIC_MODVERSIONS ""
34#endif
35#ifdef RANDSTRUCT_PLUGIN
36#include <generated/randomize_layout_hash.h>
37#define MODULE_RANDSTRUCT_PLUGIN "RANDSTRUCT_PLUGIN_" RANDSTRUCT_HASHED_SEED
38#else
39#define MODULE_RANDSTRUCT_PLUGIN
40#endif
41
42#define VERMAGIC_STRING \
43 UTS_RELEASE " " \
44 MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
45 MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \
46 MODULE_ARCH_VERMAGIC \
47 MODULE_RANDSTRUCT_PLUGIN
48
49#endif /* _LINUX_VERMAGIC_H */
1#include <generated/utsrelease.h>
2#include <linux/module.h>
3
4/* Simply sanity version stamp for modules. */
5#ifdef CONFIG_SMP
6#define MODULE_VERMAGIC_SMP "SMP "
7#else
8#define MODULE_VERMAGIC_SMP ""
9#endif
10#ifdef CONFIG_PREEMPT
11#define MODULE_VERMAGIC_PREEMPT "preempt "
12#else
13#define MODULE_VERMAGIC_PREEMPT ""
14#endif
15#ifdef CONFIG_MODULE_UNLOAD
16#define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload "
17#else
18#define MODULE_VERMAGIC_MODULE_UNLOAD ""
19#endif
20#ifdef CONFIG_MODVERSIONS
21#define MODULE_VERMAGIC_MODVERSIONS "modversions "
22#else
23#define MODULE_VERMAGIC_MODVERSIONS ""
24#endif
25#ifndef MODULE_ARCH_VERMAGIC
26#define MODULE_ARCH_VERMAGIC ""
27#endif
28
29#define VERMAGIC_STRING \
30 UTS_RELEASE " " \
31 MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
32 MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \
33 MODULE_ARCH_VERMAGIC
34