ptrace.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /*
  2. * Copyright (C) 2004, 2007-2010, 2011-2012 Synopsys, Inc. (www.synopsys.com)
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. *
  8. * Amit Bhor, Sameer Dhavale: Codito Technologies 2004
  9. */
  10. #ifndef _UAPI__ASM_ARC_PTRACE_H
  11. #define _UAPI__ASM_ARC_PTRACE_H
  12. #ifndef __ASSEMBLY__
  13. /*
  14. * Userspace ABI: Register state needed by
  15. * -ptrace (gdbserver)
  16. * -sigcontext (SA_SIGNINFO signal frame)
  17. *
  18. * This is to decouple pt_regs from user-space ABI, to be able to change it
  19. * w/o affecting the ABI.
  20. *
  21. * The intermediate pad,pad2 are relics of initial layout based on pt_regs
  22. * for optimizations when copying pt_regs to/from user_regs_struct.
  23. * We no longer need them, but can't be changed as they are part of ABI now.
  24. *
  25. * Also, sigcontext only care about the scratch regs as that is what we really
  26. * save/restore for signal handling. However gdb also uses the same struct
  27. * hence callee regs need to be in there too.
  28. */
  29. struct user_regs_struct {
  30. long pad;
  31. struct {
  32. long bta, lp_start, lp_end, lp_count;
  33. long status32, ret, blink, fp, gp;
  34. long r12, r11, r10, r9, r8, r7, r6, r5, r4, r3, r2, r1, r0;
  35. long sp;
  36. } scratch;
  37. long pad2;
  38. struct {
  39. long r25, r24, r23, r22, r21, r20;
  40. long r19, r18, r17, r16, r15, r14, r13;
  41. } callee;
  42. long efa; /* break pt addr, for break points in delay slots */
  43. long stop_pc; /* give dbg stop_pc after ensuring brkpt trap */
  44. };
  45. #endif /* !__ASSEMBLY__ */
  46. #endif /* _UAPI__ASM_ARC_PTRACE_H */