linux/include/linux/vermagic.h
<<
>>
Prefs
   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
  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_PLUGIN
  36#include <generated/randomize_layout_hash.h>
  37#define MODULE_RANDSTRUCT_PLUGIN "RANDSTRUCT_PLUGIN_" RANDSTRUCT_HASHED_SEED
  38#else
  39#define MODULE_RANDSTRUCT_PLUGIN
  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_PLUGIN
  48
  49#endif /* _LINUX_VERMAGIC_H */
  50