user.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #undef __WORDSIZE
  2. #define __WORDSIZE 32
  3. typedef struct user_fpregs_struct
  4. {
  5. long cwd, swd, twd, fip, fcs, foo, fos, st_space[20];
  6. } elf_fpregset_t;
  7. typedef struct user_fpxregs_struct
  8. {
  9. unsigned short cwd, swd, twd, fop;
  10. long fip, fcs, foo, fos, mxcsr, reserved;
  11. long st_space[32], xmm_space[32], padding[56];
  12. } elf_fpxregset_t;
  13. struct user_regs_struct
  14. {
  15. long ebx, ecx, edx, esi, edi, ebp, eax, xds, xes, xfs, xgs;
  16. long orig_eax, eip, xcs, eflags, esp, xss;
  17. };
  18. #define ELF_NGREG 17
  19. typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
  20. struct user
  21. {
  22. struct user_regs_struct regs;
  23. int u_fpvalid;
  24. struct user_fpregs_struct i387;
  25. unsigned long u_tsize;
  26. unsigned long u_dsize;
  27. unsigned long u_ssize;
  28. unsigned long start_code;
  29. unsigned long start_stack;
  30. long signal;
  31. int reserved;
  32. struct user_regs_struct *u_ar0;
  33. struct user_fpregs_struct *u_fpstate;
  34. unsigned long magic;
  35. char u_comm[32];
  36. int u_debugreg[8];
  37. };
  38. #define PAGE_MASK (~(PAGE_SIZE-1))
  39. #define NBPG PAGE_SIZE
  40. #define UPAGES 1
  41. #define HOST_TEXT_START_ADDR (u.start_code)
  42. #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)