ptrace_user.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*
  2. * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
  3. * Licensed under the GPL
  4. */
  5. #ifndef __SYSDEP_I386_PTRACE_USER_H__
  6. #define __SYSDEP_I386_PTRACE_USER_H__
  7. #include <sys/ptrace.h>
  8. #include <linux/ptrace.h>
  9. #include <asm/ptrace.h>
  10. #define PT_OFFSET(r) ((r) * sizeof(long))
  11. #define PT_SYSCALL_NR(regs) ((regs)[ORIG_EAX])
  12. #define PT_SYSCALL_NR_OFFSET PT_OFFSET(ORIG_EAX)
  13. #define PT_SYSCALL_ARG1_OFFSET PT_OFFSET(EBX)
  14. #define PT_SYSCALL_ARG2_OFFSET PT_OFFSET(ECX)
  15. #define PT_SYSCALL_ARG3_OFFSET PT_OFFSET(EDX)
  16. #define PT_SYSCALL_ARG4_OFFSET PT_OFFSET(ESI)
  17. #define PT_SYSCALL_ARG5_OFFSET PT_OFFSET(EDI)
  18. #define PT_SYSCALL_ARG6_OFFSET PT_OFFSET(EBP)
  19. #define PT_SYSCALL_RET_OFFSET PT_OFFSET(EAX)
  20. #define REGS_SYSCALL_NR EAX /* This is used before a system call */
  21. #define REGS_SYSCALL_ARG1 EBX
  22. #define REGS_SYSCALL_ARG2 ECX
  23. #define REGS_SYSCALL_ARG3 EDX
  24. #define REGS_SYSCALL_ARG4 ESI
  25. #define REGS_SYSCALL_ARG5 EDI
  26. #define REGS_SYSCALL_ARG6 EBP
  27. #define REGS_IP_INDEX EIP
  28. #define REGS_SP_INDEX UESP
  29. #define PT_IP_OFFSET PT_OFFSET(EIP)
  30. #define PT_IP(regs) ((regs)[EIP])
  31. #define PT_SP_OFFSET PT_OFFSET(UESP)
  32. #define PT_SP(regs) ((regs)[UESP])
  33. #ifndef FRAME_SIZE
  34. #define FRAME_SIZE (17)
  35. #endif
  36. #define FRAME_SIZE_OFFSET (FRAME_SIZE * sizeof(unsigned long))
  37. #define FP_FRAME_SIZE (27)
  38. #define FPX_FRAME_SIZE (128)
  39. #ifdef PTRACE_GETREGS
  40. #define UM_HAVE_GETREGS
  41. #endif
  42. #ifdef PTRACE_SETREGS
  43. #define UM_HAVE_SETREGS
  44. #endif
  45. #ifdef PTRACE_GETFPREGS
  46. #define UM_HAVE_GETFPREGS
  47. #endif
  48. #ifdef PTRACE_SETFPREGS
  49. #define UM_HAVE_SETFPREGS
  50. #endif
  51. #ifdef PTRACE_GETFPXREGS
  52. #define UM_HAVE_GETFPXREGS
  53. #endif
  54. #ifdef PTRACE_SETFPXREGS
  55. #define UM_HAVE_SETFPXREGS
  56. #endif
  57. #endif