18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef _LINUX_VERMAGIC_H 38c2ecf20Sopenharmony_ci#define _LINUX_VERMAGIC_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#ifndef INCLUDE_VERMAGIC 68c2ecf20Sopenharmony_ci#error "This header can be included from kernel/module.c or *.mod.c only" 78c2ecf20Sopenharmony_ci#endif 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci#include <generated/utsrelease.h> 108c2ecf20Sopenharmony_ci#include <asm/vermagic.h> 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci/* Simply sanity version stamp for modules. */ 138c2ecf20Sopenharmony_ci#ifdef CONFIG_SMP 148c2ecf20Sopenharmony_ci#define MODULE_VERMAGIC_SMP "SMP " 158c2ecf20Sopenharmony_ci#else 168c2ecf20Sopenharmony_ci#define MODULE_VERMAGIC_SMP "" 178c2ecf20Sopenharmony_ci#endif 188c2ecf20Sopenharmony_ci#ifdef CONFIG_PREEMPT 198c2ecf20Sopenharmony_ci#define MODULE_VERMAGIC_PREEMPT "preempt " 208c2ecf20Sopenharmony_ci#elif defined(CONFIG_PREEMPT_RT) 218c2ecf20Sopenharmony_ci#define MODULE_VERMAGIC_PREEMPT "preempt_rt " 228c2ecf20Sopenharmony_ci#else 238c2ecf20Sopenharmony_ci#define MODULE_VERMAGIC_PREEMPT "" 248c2ecf20Sopenharmony_ci#endif 258c2ecf20Sopenharmony_ci#ifdef CONFIG_MODULE_UNLOAD 268c2ecf20Sopenharmony_ci#define MODULE_VERMAGIC_MODULE_UNLOAD "mod_unload " 278c2ecf20Sopenharmony_ci#else 288c2ecf20Sopenharmony_ci#define MODULE_VERMAGIC_MODULE_UNLOAD "" 298c2ecf20Sopenharmony_ci#endif 308c2ecf20Sopenharmony_ci#ifdef CONFIG_MODVERSIONS 318c2ecf20Sopenharmony_ci#define MODULE_VERMAGIC_MODVERSIONS "modversions " 328c2ecf20Sopenharmony_ci#else 338c2ecf20Sopenharmony_ci#define MODULE_VERMAGIC_MODVERSIONS "" 348c2ecf20Sopenharmony_ci#endif 358c2ecf20Sopenharmony_ci#ifdef RANDSTRUCT_PLUGIN 368c2ecf20Sopenharmony_ci#include <generated/randomize_layout_hash.h> 378c2ecf20Sopenharmony_ci#define MODULE_RANDSTRUCT_PLUGIN "RANDSTRUCT_PLUGIN_" RANDSTRUCT_HASHED_SEED 388c2ecf20Sopenharmony_ci#else 398c2ecf20Sopenharmony_ci#define MODULE_RANDSTRUCT_PLUGIN 408c2ecf20Sopenharmony_ci#endif 418c2ecf20Sopenharmony_ci 428c2ecf20Sopenharmony_ci#define VERMAGIC_STRING \ 438c2ecf20Sopenharmony_ci UTS_RELEASE " " \ 448c2ecf20Sopenharmony_ci MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \ 458c2ecf20Sopenharmony_ci MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \ 468c2ecf20Sopenharmony_ci MODULE_ARCH_VERMAGIC \ 478c2ecf20Sopenharmony_ci MODULE_RANDSTRUCT_PLUGIN 488c2ecf20Sopenharmony_ci 498c2ecf20Sopenharmony_ci#endif /* _LINUX_VERMAGIC_H */ 50