user.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  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. long ebx, ecx, edx, esi, edi, ebp, eax, xds, xes, xfs, xgs;
  15. long orig_eax, eip, xcs, eflags, esp, xss;
  16. };
  17. #define ELF_NGREG 17
  18. typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
  19. struct user {
  20. struct user_regs_struct regs;
  21. int u_fpvalid;
  22. struct user_fpregs_struct i387;
  23. unsigned long u_tsize;
  24. unsigned long u_dsize;
  25. unsigned long u_ssize;
  26. unsigned long start_code;
  27. unsigned long start_stack;
  28. long signal;
  29. int reserved;
  30. struct user_regs_struct *u_ar0;
  31. struct user_fpregs_struct *u_fpstate;
  32. unsigned long magic;
  33. char u_comm[32];
  34. int u_debugreg[8];
  35. };
  36. #define PAGE_MASK (~(PAGE_SIZE-1))
  37. #define NBPG PAGE_SIZE
  38. #define UPAGES 1
  39. #define HOST_TEXT_START_ADDR (u.start_code)
  40. #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)