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