Subversion Repositories Kolibri OS

Rev

Rev 5270 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. #ifndef _UAPI_ASM_X86_PTRACE_H
  2. #define _UAPI_ASM_X86_PTRACE_H
  3.  
  4. #include <linux/compiler.h>     /* For __user */
  5. #include <asm/ptrace-abi.h>
  6. #include <asm/processor-flags.h>
  7.  
  8.  
  9. #ifndef __ASSEMBLY__
  10.  
  11. #ifdef __i386__
  12. /* this struct defines the way the registers are stored on the
  13.    stack during a system call. */
  14.  
  15. #ifndef __KERNEL__
  16.  
  17. struct pt_regs {
  18.         long ebx;
  19.         long ecx;
  20.         long edx;
  21.         long esi;
  22.         long edi;
  23.         long ebp;
  24.         long eax;
  25.         int  xds;
  26.         int  xes;
  27.         int  xfs;
  28.         int  xgs;
  29.         long orig_eax;
  30.         long eip;
  31.         int  xcs;
  32.         long eflags;
  33.         long esp;
  34.         int  xss;
  35. };
  36.  
  37. #endif /* __KERNEL__ */
  38.  
  39. #else /* __i386__ */
  40.  
  41. #ifndef __KERNEL__
  42.  
  43. struct pt_regs {
  44. /*
  45.  * C ABI says these regs are callee-preserved. They aren't saved on kernel entry
  46.  * unless syscall needs a complete, fully filled "struct pt_regs".
  47.  */
  48.         unsigned long r15;
  49.         unsigned long r14;
  50.         unsigned long r13;
  51.         unsigned long r12;
  52.         unsigned long rbp;
  53.         unsigned long rbx;
  54. /* These regs are callee-clobbered. Always saved on kernel entry. */
  55.         unsigned long r11;
  56.         unsigned long r10;
  57.         unsigned long r9;
  58.         unsigned long r8;
  59.         unsigned long rax;
  60.         unsigned long rcx;
  61.         unsigned long rdx;
  62.         unsigned long rsi;
  63.         unsigned long rdi;
  64. /*
  65.  * On syscall entry, this is syscall#. On CPU exception, this is error code.
  66.  * On hw interrupt, it's IRQ number:
  67.  */
  68.         unsigned long orig_rax;
  69. /* Return frame for iretq */
  70.         unsigned long rip;
  71.         unsigned long cs;
  72.         unsigned long eflags;
  73.         unsigned long rsp;
  74.         unsigned long ss;
  75. /* top of stack page */
  76. };
  77.  
  78. #endif /* __KERNEL__ */
  79. #endif /* !__i386__ */
  80.  
  81.  
  82.  
  83. #endif /* !__ASSEMBLY__ */
  84.  
  85. #endif /* _UAPI_ASM_X86_PTRACE_H */
  86.