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. fpreg_t fprs[16];
  10. } elf_fpregset_t;
  11. #define ELF_NGREG 27
  12. typedef unsigned long elf_greg_t, elf_gregset_t[ELG_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_regs_struct {
  21. struct _user_psw_struct psw;
  22. unsigned long gprs[16];
  23. unsigned acrs[16];
  24. unsigned long orig_gpr2;
  25. struct _user_fpregs_struct fp_regs;
  26. struct _user_per_struct per_info;
  27. unsigned long ieee_instruction_pointer;
  28. };
  29. struct _user_per_struct {
  30. unsigned long control_regs[3];
  31. unsigned single_step : 1;
  32. unsigned instruction_fetch : 1;
  33. unsigned : 30;
  34. unsigned long starting_addr, ending_addr;
  35. unsigned short perc_atmid;
  36. unsigned long address;
  37. unsigned char access_id;
  38. } per_struct;
  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 (~(PAGE_SIZE-1))
  49. #define NBPG PAGE_SIZE
  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)