Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/arch/x86/include/uapi/asm/ptrace.h
26495 views
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 __ASSEMBLER__
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 /* !__ASSEMBLER__ */
85
86
#endif /* _UAPI_ASM_X86_PTRACE_H */
87
88