diff options
Diffstat (limited to 'arch/x86/include/uapi/asm/ptrace.h')
| -rw-r--r-- | arch/x86/include/uapi/asm/ptrace.h | 78 | 
1 files changed, 78 insertions, 0 deletions
diff --git a/arch/x86/include/uapi/asm/ptrace.h b/arch/x86/include/uapi/asm/ptrace.h new file mode 100644 index 00000000000..ac4b9aa4d99 --- /dev/null +++ b/arch/x86/include/uapi/asm/ptrace.h @@ -0,0 +1,78 @@ +#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 { +	unsigned long r15; +	unsigned long r14; +	unsigned long r13; +	unsigned long r12; +	unsigned long rbp; +	unsigned long rbx; +/* arguments: non interrupts/non tracing syscalls only save up to here*/ +	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; +	unsigned long orig_rax; +/* end of arguments */ +/* cpu exception frame or undefined */ +	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 */  | 
