0001
0002 #ifndef _LINUX_VERMAGIC_H
0003 #define _LINUX_VERMAGIC_H
0004
0005 #ifndef INCLUDE_VERMAGIC
0006 #error "This header can be included from kernel/module.c or *.mod.c only"
0007 #endif
0008
0009 #include <generated/utsrelease.h>
0010 #include <asm/vermagic.h>
0011
0012
0013 #ifdef CONFIG_SMP
0014 #define MODULE_VERMAGIC_SMP "SMP "
0015 #else
0016 #define MODULE_VERMAGIC_SMP ""
0017 #endif
0018 #ifdef CONFIG_PREEMPT_BUILD
0019 #define MODULE_VERMAGIC_PREEMPT "preempt "
0020 #elif defined(CONFIG_PREEMPT_RT)
0021 #define MODULE_VERMAGIC_PREEMPT "preempt_rt "
0022 #else
0023 #define MODULE_VERMAGIC_PREEMPT ""
0024 #endif
0025 #ifdef CONFIG_MODULE_UNLOAD
0026 #define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload "
0027 #else
0028 #define MODULE_VERMAGIC_MODULE_UNLOAD ""
0029 #endif
0030 #ifdef CONFIG_MODVERSIONS
0031 #define MODULE_VERMAGIC_MODVERSIONS "modversions "
0032 #else
0033 #define MODULE_VERMAGIC_MODVERSIONS ""
0034 #endif
0035 #ifdef RANDSTRUCT
0036 #include <generated/randstruct_hash.h>
0037 #define MODULE_RANDSTRUCT "RANDSTRUCT_" RANDSTRUCT_HASHED_SEED
0038 #else
0039 #define MODULE_RANDSTRUCT
0040 #endif
0041
0042 #define VERMAGIC_STRING \
0043 UTS_RELEASE " " \
0044 MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
0045 MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \
0046 MODULE_ARCH_VERMAGIC \
0047 MODULE_RANDSTRUCT
0048
0049 #endif