File Index
Files and directories
Sign in
FILE

ptrace.h

File preview with syntax highlighting.

linux-6.19.14/arch/x86/include/uapi/asm/ptrace.h C
 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
18struct 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
44struct 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 */
~/ Read-only file preview.