brk-imm.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. * 0x007: for kretprobe return
  13. * Allowed values for kgdb are 0x400 - 0x7ff
  14. * 0x100: for triggering a fault on purpose (reserved)
  15. * 0x400: for dynamic BRK instruction
  16. * 0x401: for compile time BRK instruction
  17. * 0x800: kernel-mode BUG() and WARN() traps
  18. * 0x9xx: tag-based KASAN trap (allowed values 0x900 - 0x9ff)
  19. * 0x55xx: Undefined Behavior Sanitizer traps ('U' << 8)
  20. * 0x8xxx: Control-Flow Integrity traps
  21. */
  22. #define KPROBES_BRK_IMM 0x004
  23. #define UPROBES_BRK_IMM 0x005
  24. #define KPROBES_BRK_SS_IMM 0x006
  25. #define KRETPROBES_BRK_IMM 0x007
  26. #define FAULT_BRK_IMM 0x100
  27. #define KGDB_DYN_DBG_BRK_IMM 0x400
  28. #define KGDB_COMPILED_DBG_BRK_IMM 0x401
  29. #define BUG_BRK_IMM 0x800
  30. #define KASAN_BRK_IMM 0x900
  31. #define KASAN_BRK_MASK 0x0ff
  32. #define UBSAN_BRK_IMM 0x5500
  33. #define UBSAN_BRK_MASK 0x00ff
  34. #define CFI_BRK_IMM_TARGET GENMASK(4, 0)
  35. #define CFI_BRK_IMM_TYPE GENMASK(9, 5)
  36. #define CFI_BRK_IMM_BASE 0x8000
  37. #define CFI_BRK_IMM_MASK (CFI_BRK_IMM_TARGET | CFI_BRK_IMM_TYPE)
  38. #endif