blob: 899aa4b2a78d542888d09a4812fbb13da34035e3 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
2 * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
3 * Licensed under the GPL
4 */
5
6#ifndef __SYSDEP_I386_PTRACE_USER_H__
7#define __SYSDEP_I386_PTRACE_USER_H__
8
9#include <sys/ptrace.h>
10#include <linux/ptrace.h>
11#include <asm/ptrace.h>
12
13#define PT_OFFSET(r) ((r) * sizeof(long))
14
15#define PT_SYSCALL_NR(regs) ((regs)[ORIG_EAX])
16#define PT_SYSCALL_NR_OFFSET PT_OFFSET(ORIG_EAX)
17
18#define PT_SYSCALL_ARG1_OFFSET PT_OFFSET(EBX)
19#define PT_SYSCALL_ARG2_OFFSET PT_OFFSET(ECX)
20#define PT_SYSCALL_ARG3_OFFSET PT_OFFSET(EDX)
21#define PT_SYSCALL_ARG4_OFFSET PT_OFFSET(ESI)
22#define PT_SYSCALL_ARG5_OFFSET PT_OFFSET(EDI)
Jeff Diked67b5692005-07-07 17:56:49 -070023#define PT_SYSCALL_ARG6_OFFSET PT_OFFSET(EBP)
Linus Torvalds1da177e2005-04-16 15:20:36 -070024
25#define PT_SYSCALL_RET_OFFSET PT_OFFSET(EAX)
26
Jeff Diked67b5692005-07-07 17:56:49 -070027#define REGS_SYSCALL_NR EAX /* This is used before a system call */
28#define REGS_SYSCALL_ARG1 EBX
29#define REGS_SYSCALL_ARG2 ECX
30#define REGS_SYSCALL_ARG3 EDX
31#define REGS_SYSCALL_ARG4 ESI
32#define REGS_SYSCALL_ARG5 EDI
33#define REGS_SYSCALL_ARG6 EBP
34
35#define REGS_IP_INDEX EIP
36#define REGS_SP_INDEX UESP
37
Linus Torvalds1da177e2005-04-16 15:20:36 -070038#define PT_IP_OFFSET PT_OFFSET(EIP)
39#define PT_IP(regs) ((regs)[EIP])
Jeff Diked67b5692005-07-07 17:56:49 -070040#define PT_SP_OFFSET PT_OFFSET(UESP)
Linus Torvalds1da177e2005-04-16 15:20:36 -070041#define PT_SP(regs) ((regs)[UESP])
42
43#ifndef FRAME_SIZE
44#define FRAME_SIZE (17)
45#endif
46#define FRAME_SIZE_OFFSET (FRAME_SIZE * sizeof(unsigned long))
47
48#define FP_FRAME_SIZE (27)
49#define FPX_FRAME_SIZE (128)
50
51#ifdef PTRACE_GETREGS
52#define UM_HAVE_GETREGS
53#endif
54
55#ifdef PTRACE_SETREGS
56#define UM_HAVE_SETREGS
57#endif
58
59#ifdef PTRACE_GETFPREGS
60#define UM_HAVE_GETFPREGS
61#endif
62
63#ifdef PTRACE_SETFPREGS
64#define UM_HAVE_SETFPREGS
65#endif
66
67#ifdef PTRACE_GETFPXREGS
68#define UM_HAVE_GETFPXREGS
69#endif
70
71#ifdef PTRACE_SETFPXREGS
72#define UM_HAVE_SETFPXREGS
73#endif
74
75#endif