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#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