vermagic.h 1.3 KB

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