Linux-libre 3.12.18-gnu
[librecmc/linux-libre.git] / arch / x86 / include / uapi / asm / ptrace.h
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         unsigned long r15;
45         unsigned long r14;
46         unsigned long r13;
47         unsigned long r12;
48         unsigned long rbp;
49         unsigned long rbx;
50 /* arguments: non interrupts/non tracing syscalls only save up to here*/
51         unsigned long r11;
52         unsigned long r10;
53         unsigned long r9;
54         unsigned long r8;
55         unsigned long rax;
56         unsigned long rcx;
57         unsigned long rdx;
58         unsigned long rsi;
59         unsigned long rdi;
60         unsigned long orig_rax;
61 /* end of arguments */
62 /* cpu exception frame or undefined */
63         unsigned long rip;
64         unsigned long cs;
65         unsigned long eflags;
66         unsigned long rsp;
67         unsigned long ss;
68 /* top of stack page */
69 };
70
71 #endif /* __KERNEL__ */
72 #endif /* !__i386__ */
73
74
75
76 #endif /* !__ASSEMBLY__ */
77
78 #endif /* _UAPI_ASM_X86_PTRACE_H */