10437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifndef _ASM_X86_PTRACE_ABI_H 20437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define _ASM_X86_PTRACE_ABI_H 30437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 40437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifdef __i386__ 50437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 60437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EBX 0 70437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define ECX 1 80437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EDX 2 90437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define ESI 3 100437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EDI 4 110437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EBP 5 120437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EAX 6 130437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define DS 7 140437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define ES 8 150437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FS 9 160437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define GS 10 170437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define ORIG_EAX 11 180437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EIP 12 190437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define CS 13 200437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EFL 14 210437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define UESP 15 220437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SS 16 230437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FRAME_SIZE 17 240437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 250437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#else /* __i386__ */ 260437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 270437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#if defined(__ASSEMBLY__) || defined(__FRAME_OFFSETS) 280437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define R15 0 290437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define R14 8 300437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define R13 16 310437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define R12 24 320437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define RBP 32 330437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define RBX 40 340437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* arguments: interrupts/non tracing syscalls only save up to here*/ 350437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define R11 48 360437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define R10 56 370437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define R9 64 380437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define R8 72 390437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define RAX 80 400437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define RCX 88 410437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define RDX 96 420437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define RSI 104 430437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define RDI 112 440437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define ORIG_RAX 120 /* = ERROR */ 450437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* end of arguments */ 460437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* cpu exception frame or undefined in case of fast syscall. */ 470437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define RIP 128 480437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define CS 136 490437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define EFLAGS 144 500437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define RSP 152 510437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define SS 160 520437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define ARGOFFSET R11 530437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* __ASSEMBLY__ */ 540437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 550437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* top of stack page */ 560437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define FRAME_SIZE 168 570437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 580437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* !__i386__ */ 590437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 600437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* Arbitrarily choose the same ptrace numbers as used by the Sparc code. */ 610437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PTRACE_GETREGS 12 620437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PTRACE_SETREGS 13 630437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PTRACE_GETFPREGS 14 640437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PTRACE_SETFPREGS 15 650437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PTRACE_GETFPXREGS 18 660437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PTRACE_SETFPXREGS 19 670437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 680437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PTRACE_OLDSETOPTIONS 21 690437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 700437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris/* only useful for access 32bit programs / kernels */ 710437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PTRACE_GET_THREAD_AREA 25 720437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PTRACE_SET_THREAD_AREA 26 730437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 740437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifdef __x86_64__ 750437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris# define PTRACE_ARCH_PRCTL 30 760437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif 770437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 780437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PTRACE_SYSEMU 31 790437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PTRACE_SYSEMU_SINGLESTEP 32 800437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 810437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#define PTRACE_SINGLEBLOCK 33 /* resume execution until next branch */ 820437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 830437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#ifndef __ASSEMBLY__ 840437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#include <linux/types.h> 850437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif 860437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris 870437c52788a98ab8ea84041c6b1f8d7a93e872f6Christopher Ferris#endif /* _ASM_X86_PTRACE_ABI_H */ 88