xref: /openbmc/linux/include/linux/vermagic.h (revision be2b34fa)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
262d0fd59SMasahiro Yamada #ifndef _LINUX_VERMAGIC_H
362d0fd59SMasahiro Yamada #define _LINUX_VERMAGIC_H
451161bfcSLeon Romanovsky 
551161bfcSLeon Romanovsky #ifndef INCLUDE_VERMAGIC
651161bfcSLeon Romanovsky #error "This header can be included from kernel/module.c or *.mod.c only"
751161bfcSLeon Romanovsky #endif
851161bfcSLeon Romanovsky 
9273b281fSSam Ravnborg #include <generated/utsrelease.h>
1062d0fd59SMasahiro Yamada #include <asm/vermagic.h>
111da177e4SLinus Torvalds 
121da177e4SLinus Torvalds /* Simply sanity version stamp for modules. */
131da177e4SLinus Torvalds #ifdef CONFIG_SMP
141da177e4SLinus Torvalds #define MODULE_VERMAGIC_SMP "SMP "
151da177e4SLinus Torvalds #else
161da177e4SLinus Torvalds #define MODULE_VERMAGIC_SMP ""
171da177e4SLinus Torvalds #endif
18a8b76910SValentin Schneider #ifdef CONFIG_PREEMPT_BUILD
191da177e4SLinus Torvalds #define MODULE_VERMAGIC_PREEMPT "preempt "
204b950bb9SThomas Gleixner #elif defined(CONFIG_PREEMPT_RT)
214b950bb9SThomas Gleixner #define MODULE_VERMAGIC_PREEMPT "preempt_rt "
221da177e4SLinus Torvalds #else
231da177e4SLinus Torvalds #define MODULE_VERMAGIC_PREEMPT ""
241da177e4SLinus Torvalds #endif
255ac90c9fSPaolo 'Blaisorblade' Giarrusso #ifdef CONFIG_MODULE_UNLOAD
265ac90c9fSPaolo 'Blaisorblade' Giarrusso #define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload "
275ac90c9fSPaolo 'Blaisorblade' Giarrusso #else
285ac90c9fSPaolo 'Blaisorblade' Giarrusso #define MODULE_VERMAGIC_MODULE_UNLOAD ""
295ac90c9fSPaolo 'Blaisorblade' Giarrusso #endif
306c2545eeSRusty Russell #ifdef CONFIG_MODVERSIONS
316c2545eeSRusty Russell #define MODULE_VERMAGIC_MODVERSIONS "modversions "
326c2545eeSRusty Russell #else
336c2545eeSRusty Russell #define MODULE_VERMAGIC_MODVERSIONS ""
346c2545eeSRusty Russell #endif
35595b893eSKees Cook #ifdef RANDSTRUCT
36*be2b34faSKees Cook #include <generated/randstruct_hash.h>
37595b893eSKees Cook #define MODULE_RANDSTRUCT "RANDSTRUCT_" RANDSTRUCT_HASHED_SEED
38313dd1b6SKees Cook #else
39595b893eSKees Cook #define MODULE_RANDSTRUCT
40313dd1b6SKees Cook #endif
411da177e4SLinus Torvalds 
421da177e4SLinus Torvalds #define VERMAGIC_STRING 						\
431da177e4SLinus Torvalds 	UTS_RELEASE " "							\
441da177e4SLinus Torvalds 	MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT 			\
456c2545eeSRusty Russell 	MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS	\
46313dd1b6SKees Cook 	MODULE_ARCH_VERMAGIC						\
47595b893eSKees Cook 	MODULE_RANDSTRUCT
481bb4996bSAndi Kleen 
4962d0fd59SMasahiro Yamada #endif /* _LINUX_VERMAGIC_H */
50