at v6.16 1.2 kB view raw
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_RT 19#define MODULE_VERMAGIC_PREEMPT "preempt_rt " 20#elif defined(CONFIG_PREEMPT_BUILD) 21#define MODULE_VERMAGIC_PREEMPT "preempt " 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#define MODULE_RANDSTRUCT "RANDSTRUCT_" RANDSTRUCT_HASHED_SEED 37#else 38#define MODULE_RANDSTRUCT 39#endif 40 41#define VERMAGIC_STRING \ 42 UTS_RELEASE " " \ 43 MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \ 44 MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \ 45 MODULE_ARCH_VERMAGIC \ 46 MODULE_RANDSTRUCT 47 48#endif /* _LINUX_VERMAGIC_H */