ptrace_user.h 1.7 KB
Newer Older
L
Linus Torvalds 已提交
1 2 3 4 5 6 7 8 9 10 11
/* 
 * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
 * Licensed under the GPL
 */

#ifndef __SYSDEP_I386_PTRACE_USER_H__
#define __SYSDEP_I386_PTRACE_USER_H__

#include <sys/ptrace.h>
#include <linux/ptrace.h>
#include <asm/ptrace.h>
J
Jeff Dike 已提交
12
#include "user_constants.h"
L
Linus Torvalds 已提交
13 14 15 16 17 18 19 20 21 22 23

#define PT_OFFSET(r) ((r) * sizeof(long))

#define PT_SYSCALL_NR(regs) ((regs)[ORIG_EAX])
#define PT_SYSCALL_NR_OFFSET PT_OFFSET(ORIG_EAX)

#define PT_SYSCALL_ARG1_OFFSET PT_OFFSET(EBX)
#define PT_SYSCALL_ARG2_OFFSET PT_OFFSET(ECX)
#define PT_SYSCALL_ARG3_OFFSET PT_OFFSET(EDX)
#define PT_SYSCALL_ARG4_OFFSET PT_OFFSET(ESI)
#define PT_SYSCALL_ARG5_OFFSET PT_OFFSET(EDI)
24
#define PT_SYSCALL_ARG6_OFFSET PT_OFFSET(EBP)
L
Linus Torvalds 已提交
25 26 27

#define PT_SYSCALL_RET_OFFSET PT_OFFSET(EAX)

28 29 30 31 32 33 34 35 36 37 38
#define REGS_SYSCALL_NR EAX /* This is used before a system call */
#define REGS_SYSCALL_ARG1 EBX
#define REGS_SYSCALL_ARG2 ECX
#define REGS_SYSCALL_ARG3 EDX
#define REGS_SYSCALL_ARG4 ESI
#define REGS_SYSCALL_ARG5 EDI
#define REGS_SYSCALL_ARG6 EBP

#define REGS_IP_INDEX EIP
#define REGS_SP_INDEX UESP

L
Linus Torvalds 已提交
39 40
#define PT_IP_OFFSET PT_OFFSET(EIP)
#define PT_IP(regs) ((regs)[EIP])
41
#define PT_SP_OFFSET PT_OFFSET(UESP)
L
Linus Torvalds 已提交
42 43
#define PT_SP(regs) ((regs)[UESP])

J
Jeff Dike 已提交
44 45
#define FP_SIZE ((HOST_XFP_SIZE > HOST_FP_SIZE) ? HOST_XFP_SIZE : HOST_FP_SIZE)

L
Linus Torvalds 已提交
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
#ifndef FRAME_SIZE
#define FRAME_SIZE (17)
#endif
#define FRAME_SIZE_OFFSET (FRAME_SIZE * sizeof(unsigned long))

#define FP_FRAME_SIZE (27)
#define FPX_FRAME_SIZE (128)

#ifdef PTRACE_GETREGS
#define UM_HAVE_GETREGS
#endif

#ifdef PTRACE_SETREGS
#define UM_HAVE_SETREGS
#endif

#ifdef PTRACE_GETFPREGS
#define UM_HAVE_GETFPREGS
#endif

#ifdef PTRACE_SETFPREGS
#define UM_HAVE_SETFPREGS
#endif

#ifdef PTRACE_GETFPXREGS
#define UM_HAVE_GETFPXREGS
#endif

#ifdef PTRACE_SETFPXREGS
#define UM_HAVE_SETFPXREGS
#endif

#endif