69 lines
1.3 KiB
C
69 lines
1.3 KiB
C
#ifndef _LINUX_PTRACE_H
|
|
#define _LINUX_PTRACE_H
|
|
/* ptrace.h */
|
|
/* structs and defines to help the user use the ptrace system call. */
|
|
|
|
/* has the defines to get at the registers. */
|
|
|
|
#define PTRACE_TRACEME 0
|
|
#define PTRACE_PEEKTEXT 1
|
|
#define PTRACE_PEEKDATA 2
|
|
#define PTRACE_PEEKUSR 3
|
|
#define PTRACE_POKETEXT 4
|
|
#define PTRACE_POKEDATA 5
|
|
#define PTRACE_POKEUSR 6
|
|
#define PTRACE_CONT 7
|
|
#define PTRACE_KILL 8
|
|
#define PTRACE_SINGLESTEP 9
|
|
|
|
#define PTRACE_ATTACH 0x10
|
|
#define PTRACE_DETACH 0x11
|
|
|
|
#define PTRACE_SYSCALL 24
|
|
|
|
/* use ptrace (3 or 6, pid, PT_EXCL, data); to read or write
|
|
the processes registers. */
|
|
|
|
#define EBX 0
|
|
#define ECX 1
|
|
#define EDX 2
|
|
#define ESI 3
|
|
#define EDI 4
|
|
#define EBP 5
|
|
#define EAX 6
|
|
#define DS 7
|
|
#define ES 8
|
|
#define FS 9
|
|
#define GS 10
|
|
#define ORIG_EAX 11
|
|
#define EIP 12
|
|
#define CS 13
|
|
#define EFL 14
|
|
#define UESP 15
|
|
#define SS 16
|
|
|
|
|
|
/* this struct defines the way the registers are stored on the
|
|
stack during a system call. */
|
|
|
|
struct pt_regs {
|
|
long ebx;
|
|
long ecx;
|
|
long edx;
|
|
long esi;
|
|
long edi;
|
|
long ebp;
|
|
long eax;
|
|
unsigned short ds, __dsu;
|
|
unsigned short es, __esu;
|
|
unsigned short fs, __fsu;
|
|
unsigned short gs, __gsu;
|
|
long orig_eax;
|
|
long eip;
|
|
unsigned short cs, __csu;
|
|
long eflags;
|
|
long esp;
|
|
unsigned short ss, __ssu;
|
|
};
|
|
|
|
#endif
|