ptrace.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef _PARISC_PTRACE_H
  2. #define _PARISC_PTRACE_H
  3. /* written by Philipp Rumpf, Copyright (C) 1999 SuSE GmbH Nuernberg
  4. ** Copyright (C) 2000 Grant Grundler, Hewlett-Packard
  5. */
  6. #include <linux/types.h>
  7. /* This struct defines the way the registers are stored on the 
  8.    stack during a system call. */
  9. struct pt_regs {
  10. unsigned long gr[32]; /* PSW is in gr[0] */
  11. __u64 fr[32];
  12. unsigned long sr[ 8];
  13. unsigned long iasq[2];
  14. unsigned long iaoq[2];
  15. unsigned long cr24;
  16. unsigned long cr25;
  17. unsigned long cr26;
  18. unsigned long cr27;
  19. unsigned long cr30;
  20. unsigned long orig_r28;
  21. unsigned long ksp;
  22. unsigned long kpc;
  23. unsigned long sar; /* CR11 */
  24. unsigned long iir; /* CR19 */
  25. unsigned long isr; /* CR20 */
  26. unsigned long ior; /* CR21 */
  27. unsigned long ipsw; /* CR22 */
  28. unsigned long cr_pid[4]; /* CR8,9,12,13 */
  29. };
  30. #define task_regs(task) ((struct pt_regs *) ((char *)(task) + TASK_REGS))
  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. #define PTRACE_GETSIGINFO 13 /* get child's siginfo structure */
  41. #define PTRACE_SETSIGINFO 14 /* set child's siginfo structure */
  42. #ifdef __KERNEL__
  43. /* XXX should we use iaoq[1] or iaoq[0] ? */
  44. #define user_mode(regs) (((regs)->iaoq[0] &  3) ? 1 : 0)
  45. #define instruction_pointer(regs) ((regs)->iaoq[0] & ~3)
  46. extern void show_regs(struct pt_regs *);
  47. #endif
  48. #endif