brk-imm.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * Copyright (C) 2012 ARM Ltd.
  4. */
  5. #ifndef __ASM_BRK_IMM_H
  6. #define __ASM_BRK_IMM_H
  7. /*
  8. * #imm16 values used for BRK instruction generation
  9. * 0x004: for installing kprobes
  10. * 0x005: for installing uprobes
  11. * 0x006: for kprobe software single-step
  12. * Allowed values for kgdb are 0x400 - 0x7ff
  13. * 0x100: for triggering a fault on purpose (reserved)
  14. * 0x400: for dynamic BRK instruction
  15. * 0x401: for compile time BRK instruction
  16. * 0x800: kernel-mode BUG() and WARN() traps
  17. * 0x9xx: tag-based KASAN trap (allowed values 0x900 - 0x9ff)
  18. * 0x8xxx: Control-Flow Integrity traps
  19. */
  20. #define KPROBES_BRK_IMM 0x004
  21. #define UPROBES_BRK_IMM 0x005
  22. #define KPROBES_BRK_SS_IMM 0x006
  23. #define FAULT_BRK_IMM 0x100
  24. #define KGDB_DYN_DBG_BRK_IMM 0x400
  25. #define KGDB_COMPILED_DBG_BRK_IMM 0x401
  26. #define BUG_BRK_IMM 0x800
  27. #define KASAN_BRK_IMM 0x900
  28. #define KASAN_BRK_MASK 0x0ff
  29. #define CFI_BRK_IMM_TARGET GENMASK(4, 0)
  30. #define CFI_BRK_IMM_TYPE GENMASK(9, 5)
  31. #define CFI_BRK_IMM_BASE 0x8000
  32. #define CFI_BRK_IMM_MASK (CFI_BRK_IMM_TARGET | CFI_BRK_IMM_TYPE)
  33. #endif