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