Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
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 /* Simply sanity version stamp for modules. */
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 /* _LINUX_VERMAGIC_H */