Merge tag 'mm-nonmm-stable-2023-04-27-16-01' of git://git.kernel.org/pub/scm/linux...
[linux-block.git] / include / linux / vermagic.h
CommitLineData
b2441318 1/* SPDX-License-Identifier: GPL-2.0 */
62d0fd59
MY
2#ifndef _LINUX_VERMAGIC_H
3#define _LINUX_VERMAGIC_H
51161bfc
LR
4
5#ifndef INCLUDE_VERMAGIC
6#error "This header can be included from kernel/module.c or *.mod.c only"
7#endif
8
273b281f 9#include <generated/utsrelease.h>
62d0fd59 10#include <asm/vermagic.h>
1da177e4
LT
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
a8b76910 18#ifdef CONFIG_PREEMPT_BUILD
1da177e4 19#define MODULE_VERMAGIC_PREEMPT "preempt "
4b950bb9
TG
20#elif defined(CONFIG_PREEMPT_RT)
21#define MODULE_VERMAGIC_PREEMPT "preempt_rt "
1da177e4
LT
22#else
23#define MODULE_VERMAGIC_PREEMPT ""
24#endif
5ac90c9f
PBG
25#ifdef CONFIG_MODULE_UNLOAD
26#define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload "
27#else
28#define MODULE_VERMAGIC_MODULE_UNLOAD ""
29#endif
6c2545ee
RR
30#ifdef CONFIG_MODVERSIONS
31#define MODULE_VERMAGIC_MODVERSIONS "modversions "
32#else
33#define MODULE_VERMAGIC_MODVERSIONS ""
34#endif
595b893e 35#ifdef RANDSTRUCT
be2b34fa 36#include <generated/randstruct_hash.h>
595b893e 37#define MODULE_RANDSTRUCT "RANDSTRUCT_" RANDSTRUCT_HASHED_SEED
313dd1b6 38#else
595b893e 39#define MODULE_RANDSTRUCT
313dd1b6 40#endif
1da177e4
LT
41
42#define VERMAGIC_STRING \
43 UTS_RELEASE " " \
44 MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
6c2545ee 45 MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \
313dd1b6 46 MODULE_ARCH_VERMAGIC \
595b893e 47 MODULE_RANDSTRUCT
1bb4996b 48
62d0fd59 49#endif /* _LINUX_VERMAGIC_H */