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