user.h 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #undef __WORDSIZE
  2. #define __WORDSIZE 64
  3. typedef union {
  4. double d;
  5. float f;
  6. } elf_fpreg_t;
  7. typedef struct {
  8. unsigned fpc;
  9. elf_fpreg_t fprs[16];
  10. } elf_fpregset_t;
  11. #define ELF_NGREG 27
  12. typedef unsigned long elf_greg_t, elf_gregset_t[ELF_NGREG];
  13. struct _user_psw_struct {
  14. unsigned long mask, addr;
  15. };
  16. struct _user_fpregs_struct {
  17. unsigned fpc;
  18. double fprs[16];
  19. };
  20. struct _user_per_struct {
  21. unsigned long control_regs[3];
  22. unsigned single_step : 1;
  23. unsigned instruction_fetch : 1;
  24. unsigned : 30;
  25. unsigned long starting_addr, ending_addr;
  26. unsigned short perc_atmid;
  27. unsigned long address;
  28. unsigned char access_id;
  29. };
  30. struct _user_regs_struct {
  31. struct _user_psw_struct psw;
  32. unsigned long gprs[16];
  33. unsigned acrs[16];
  34. unsigned long orig_gpr2;
  35. struct _user_fpregs_struct fp_regs;
  36. struct _user_per_struct per_info;
  37. unsigned long ieee_instruction_pointer;
  38. };
  39. struct user {
  40. struct _user_regs_struct regs;
  41. unsigned long u_tsize, u_dsize, u_ssize;
  42. unsigned long start_code, start_stack;
  43. long signal;
  44. struct _user_regs_struct *u_ar0;
  45. unsigned long magic;
  46. char u_comm[32];
  47. };
  48. #define PAGE_MASK (~(PAGESIZE-1))
  49. #define NBPG PAGESIZE
  50. #define UPAGES 1
  51. #define HOST_TEXT_START_ADDR (u.start_code)
  52. #define HOST_STACK_END_ADDR (u.start_stack + u.u_ssize * NBPG)