ptrace_user.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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. #include "user_constants.h"
  11. #define PT_OFFSET(r) ((r) * sizeof(long))
  12. #define PT_SYSCALL_NR(regs) ((regs)[ORIG_EAX])
  13. #define PT_SYSCALL_NR_OFFSET PT_OFFSET(ORIG_EAX)
  14. #define PT_SYSCALL_ARG1_OFFSET PT_OFFSET(EBX)
  15. #define PT_SYSCALL_ARG2_OFFSET PT_OFFSET(ECX)
  16. #define PT_SYSCALL_ARG3_OFFSET PT_OFFSET(EDX)
  17. #define PT_SYSCALL_ARG4_OFFSET PT_OFFSET(ESI)
  18. #define PT_SYSCALL_ARG5_OFFSET PT_OFFSET(EDI)
  19. #define PT_SYSCALL_ARG6_OFFSET PT_OFFSET(EBP)
  20. #define PT_SYSCALL_RET_OFFSET PT_OFFSET(EAX)
  21. #define REGS_SYSCALL_NR EAX /* This is used before a system call */
  22. #define REGS_SYSCALL_ARG1 EBX
  23. #define REGS_SYSCALL_ARG2 ECX
  24. #define REGS_SYSCALL_ARG3 EDX
  25. #define REGS_SYSCALL_ARG4 ESI
  26. #define REGS_SYSCALL_ARG5 EDI
  27. #define REGS_SYSCALL_ARG6 EBP
  28. #define REGS_IP_INDEX EIP
  29. #define REGS_SP_INDEX UESP
  30. #define PT_IP_OFFSET PT_OFFSET(EIP)
  31. #define PT_IP(regs) ((regs)[EIP])
  32. #define PT_SP_OFFSET PT_OFFSET(UESP)
  33. #define PT_SP(regs) ((regs)[UESP])
  34. #define FP_SIZE ((HOST_FPX_SIZE > HOST_FP_SIZE) ? HOST_FPX_SIZE : HOST_FP_SIZE)
  35. #ifndef FRAME_SIZE
  36. #define FRAME_SIZE (17)
  37. #endif
  38. #endif