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