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