1 /* SPDX-License-Identifier: GPL-2.0 */ 2 3 #ifndef INCLUDE_VERMAGIC 4 #error "This header can be included from kernel/module.c or *.mod.c only" 5 #endif 6 7 #include <generated/utsrelease.h> 8 9 /* Simply sanity version stamp for modules. */ 10 #ifdef CONFIG_SMP 11 #define MODULE_VERMAGIC_SMP "SMP " 12 #else 13 #define MODULE_VERMAGIC_SMP "" 14 #endif 15 #ifdef CONFIG_PREEMPT 16 #define MODULE_VERMAGIC_PREEMPT "preempt " 17 #elif defined(CONFIG_PREEMPT_RT) 18 #define MODULE_VERMAGIC_PREEMPT "preempt_rt " 19 #else 20 #define MODULE_VERMAGIC_PREEMPT "" 21 #endif 22 #ifdef CONFIG_MODULE_UNLOAD 23 #define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload " 24 #else 25 #define MODULE_VERMAGIC_MODULE_UNLOAD "" 26 #endif 27 #ifdef CONFIG_MODVERSIONS 28 #define MODULE_VERMAGIC_MODVERSIONS "modversions " 29 #else 30 #define MODULE_VERMAGIC_MODVERSIONS "" 31 #endif 32 #ifndef MODULE_ARCH_VERMAGIC 33 #define MODULE_ARCH_VERMAGIC "" 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