ptrace.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /* written by Philipp Rumpf, Copyright (C) 1999 SuSE GmbH Nuernberg
  2. ** Copyright (C) 2000 Grant Grundler, Hewlett-Packard
  3. */
  4. #ifndef _UAPI_PARISC_PTRACE_H
  5. #define _UAPI_PARISC_PTRACE_H
  6. #include <linux/types.h>
  7. /* This struct defines the way the registers are stored on the
  8. * stack during a system call.
  9. *
  10. * N.B. gdb/strace care about the size and offsets within this
  11. * structure. If you change things, you may break object compatibility
  12. * for those applications.
  13. */
  14. struct pt_regs {
  15. unsigned long gr[32]; /* PSW is in gr[0] */
  16. __u64 fr[32];
  17. unsigned long sr[ 8];
  18. unsigned long iasq[2];
  19. unsigned long iaoq[2];
  20. unsigned long cr27;
  21. unsigned long pad0; /* available for other uses */
  22. unsigned long orig_r28;
  23. unsigned long ksp;
  24. unsigned long kpc;
  25. unsigned long sar; /* CR11 */
  26. unsigned long iir; /* CR19 */
  27. unsigned long isr; /* CR20 */
  28. unsigned long ior; /* CR21 */
  29. unsigned long ipsw; /* CR22 */
  30. };
  31. /*
  32. * The numbers chosen here are somewhat arbitrary but absolutely MUST
  33. * not overlap with any of the number assigned in <linux/ptrace.h>.
  34. *
  35. * These ones are taken from IA-64 on the assumption that theirs are
  36. * the most correct (and we also want to support PTRACE_SINGLEBLOCK
  37. * since we have taken branch traps too)
  38. */
  39. #define PTRACE_SINGLEBLOCK 12 /* resume execution until next branch */
  40. #endif /* _UAPI_PARISC_PTRACE_H */