12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #ifndef _UAPI_ASM_X86_PTRACE_H
- #define _UAPI_ASM_X86_PTRACE_H
- #include <linux/compiler.h> /* For __user */
- #include <asm/ptrace-abi.h>
- #include <asm/processor-flags.h>
- #ifndef __ASSEMBLY__
- #ifdef __i386__
- /* this struct defines the way the registers are stored on the
- stack during a system call. */
- #ifndef __KERNEL__
- struct pt_regs {
- long ebx;
- long ecx;
- long edx;
- long esi;
- long edi;
- long ebp;
- long eax;
- int xds;
- int xes;
- int xfs;
- int xgs;
- long orig_eax;
- long eip;
- int xcs;
- long eflags;
- long esp;
- int xss;
- };
- #endif /* __KERNEL__ */
- #else /* __i386__ */
- #ifndef __KERNEL__
- struct pt_regs {
- /*
- * C ABI says these regs are callee-preserved. They aren't saved on kernel entry
- * unless syscall needs a complete, fully filled "struct pt_regs".
- */
- unsigned long r15;
- unsigned long r14;
- unsigned long r13;
- unsigned long r12;
- unsigned long rbp;
- unsigned long rbx;
- /* These regs are callee-clobbered. Always saved on kernel entry. */
- unsigned long r11;
- unsigned long r10;
- unsigned long r9;
- unsigned long r8;
- unsigned long rax;
- unsigned long rcx;
- unsigned long rdx;
- unsigned long rsi;
- unsigned long rdi;
- /*
- * On syscall entry, this is syscall#. On CPU exception, this is error code.
- * On hw interrupt, it's IRQ number:
- */
- unsigned long orig_rax;
- /* Return frame for iretq */
- unsigned long rip;
- unsigned long cs;
- unsigned long eflags;
- unsigned long rsp;
- unsigned long ss;
- /* top of stack page */
- };
- #endif /* __KERNEL__ */
- #endif /* !__i386__ */
- #endif /* !__ASSEMBLY__ */
- #endif /* _UAPI_ASM_X86_PTRACE_H */
|