kgdb.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. /*
  3. * PA-RISC KGDB support
  4. *
  5. * Copyright (c) 2019 Sven Schnelle <svens@stackframe.org>
  6. *
  7. */
  8. #ifndef __PARISC_KGDB_H__
  9. #define __PARISC_KGDB_H__
  10. #define BREAK_INSTR_SIZE 4
  11. #define PARISC_KGDB_COMPILED_BREAK_INSN 0x3ffc01f
  12. #define PARISC_KGDB_BREAK_INSN 0x3ffa01f
  13. #define NUMREGBYTES sizeof(struct parisc_gdb_regs)
  14. #define BUFMAX 4096
  15. #define KGDB_MAX_BREAKPOINTS 40
  16. #define CACHE_FLUSH_IS_SAFE 1
  17. #ifndef __ASSEMBLER__
  18. static inline void arch_kgdb_breakpoint(void)
  19. {
  20. asm(".word %0" : : "i"(PARISC_KGDB_COMPILED_BREAK_INSN) : "memory");
  21. }
  22. struct parisc_gdb_regs {
  23. unsigned long gpr[32];
  24. unsigned long sar;
  25. unsigned long iaoq_f;
  26. unsigned long iasq_f;
  27. unsigned long iaoq_b;
  28. unsigned long iasq_b;
  29. unsigned long eiem;
  30. unsigned long iir;
  31. unsigned long isr;
  32. unsigned long ior;
  33. unsigned long ipsw;
  34. unsigned long __unused0;
  35. unsigned long sr4;
  36. unsigned long sr0;
  37. unsigned long sr1;
  38. unsigned long sr2;
  39. unsigned long sr3;
  40. unsigned long sr5;
  41. unsigned long sr6;
  42. unsigned long sr7;
  43. unsigned long cr0;
  44. unsigned long pid1;
  45. unsigned long pid2;
  46. unsigned long scrccr;
  47. unsigned long pid3;
  48. unsigned long pid4;
  49. unsigned long cr24;
  50. unsigned long cr25;
  51. unsigned long cr26;
  52. unsigned long cr27;
  53. unsigned long cr28;
  54. unsigned long cr29;
  55. unsigned long cr30;
  56. u64 fr[32];
  57. };
  58. #endif
  59. #endif