|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | #ifndef _LINUX_VERMAGIC_H | 
|  | #define _LINUX_VERMAGIC_H | 
|  |  | 
|  | #ifndef INCLUDE_VERMAGIC | 
|  | #error "This header can be included from kernel/module.c or *.mod.c only" | 
|  | #endif | 
|  |  | 
|  | #include <generated/utsrelease.h> | 
|  | #include <asm/vermagic.h> | 
|  |  | 
|  | /* Simply sanity version stamp for modules. */ | 
|  | #ifdef CONFIG_SMP | 
|  | #define MODULE_VERMAGIC_SMP "SMP " | 
|  | #else | 
|  | #define MODULE_VERMAGIC_SMP "" | 
|  | #endif | 
|  | #ifdef CONFIG_PREEMPT_BUILD | 
|  | #define MODULE_VERMAGIC_PREEMPT "preempt " | 
|  | #elif defined(CONFIG_PREEMPT_RT) | 
|  | #define MODULE_VERMAGIC_PREEMPT "preempt_rt " | 
|  | #else | 
|  | #define MODULE_VERMAGIC_PREEMPT "" | 
|  | #endif | 
|  | #ifdef CONFIG_MODULE_UNLOAD | 
|  | #define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload " | 
|  | #else | 
|  | #define MODULE_VERMAGIC_MODULE_UNLOAD "" | 
|  | #endif | 
|  | #ifdef CONFIG_MODVERSIONS | 
|  | #define MODULE_VERMAGIC_MODVERSIONS "modversions " | 
|  | #else | 
|  | #define MODULE_VERMAGIC_MODVERSIONS "" | 
|  | #endif | 
|  | #ifdef RANDSTRUCT | 
|  | #include <generated/randstruct_hash.h> | 
|  | #define MODULE_RANDSTRUCT "RANDSTRUCT_" RANDSTRUCT_HASHED_SEED | 
|  | #else | 
|  | #define MODULE_RANDSTRUCT | 
|  | #endif | 
|  |  | 
|  | #define VERMAGIC_STRING 						\ | 
|  | UTS_RELEASE " "							\ | 
|  | MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT 			\ | 
|  | MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS	\ | 
|  | MODULE_ARCH_VERMAGIC						\ | 
|  | MODULE_RANDSTRUCT | 
|  |  | 
|  | #endif /* _LINUX_VERMAGIC_H */ |