regsSimhppa.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* regsSimhppa.h - simhppa registers header */
  2. /* Copyright 1993 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01e,02dec96,mem  Added array to hold os-specific async process state.
  7. 01d,05nov96,mem  removed retVal field.
  8. 01c,28oct96,mem  changed __ctxRestore prototype, changed extern to IMPORT.
  9.  removed sig_regs field.
  10. 01b,20nov95,mem  expanded to use the full HP-PA register set.
  11. 01a,11aug93,gae  from rrr.
  12. */
  13. #ifndef __INCregsSimhppah
  14. #define __INCregsSimhppah
  15. #ifndef _ASMLANGUAGE
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. /* some common names for registers */
  20. #define reg_fp  gr[3]
  21. #define reg_pc  pc
  22. #define reg_npc  npc
  23. #define reg_psw  psw
  24. #define reg_arg0 gr[26]
  25. #define reg_dp gr[27]
  26. #define reg_ret0 gr[28]
  27. #define spReg gr[30]
  28. #define reg_sp spReg
  29. typedef struct rset  /* simhppa Register Set. */
  30.     {
  31.     /* fields which are not strictly registers */
  32.     int flags; /* OS flags */
  33.     int reg_mask; /* signal mask for the task. */
  34.     /* HP-PA registers */
  35.     int pc; /* (pcoqh) pc */
  36.     int npc; /* (pcoqt) next pc */
  37.     int pcsqh; /* */
  38.     int pcsqt; /* */
  39.     int gr[32]; /* general regs */
  40.     int sr[8]; /* space regs */
  41.     int sar; /* shift amount register (cr11) */
  42.     int eiem; /* */
  43.     int iir; /* */
  44.     int isr; /* */
  45.     int ior; /* */
  46.     int psw; /* processor status word. */
  47.     int _goto; /* */
  48.     int ccr; /* control register ccr */
  49.     int cr0; /* control register #0 */
  50.     int cr8; /* control register #8 */
  51.     int cr9; /* control register #9 */
  52.     int cr12; /* control register #12 */
  53.     int cr13; /* control register #13 */
  54.     int cr24; /* control register #24 */
  55.     int cr25; /* control register #25 */
  56.     int cr26; /* control register #26 */
  57.     int mpsfu_high; /* */
  58.     int mpsfu_low; /* */
  59.     int mpsfu_ovflo; /* */
  60.     int async; /* TRUE if saved state is async */
  61.     int os_state[350]; /* os-specific async state */
  62.     } REG_SET;
  63. #define PC_OFFSET       OFFSET(REG_SET,reg_pc)
  64. #if defined(__STDC__) || defined(__cplusplus)
  65. IMPORT int sr3RegGet (void);
  66. IMPORT int dpRegGet (void);
  67. IMPORT int spRegGet (void);
  68. IMPORT int vxLDC (void *address);
  69. IMPORT int __ctxSave (REG_SET *pRegs);
  70. IMPORT int __ctxWindSave (REG_SET *pRegs, int reschedule);
  71. IMPORT void __ctxRestore (REG_SET *pRegs);
  72. #else
  73. IMPORT int sr3RegGet ();
  74. IMPORT int dpRegGet ();
  75. IMPORT int spRegGet ();
  76. IMPORT int vxLDC ();
  77. IMPORT int __ctxSave ();
  78. IMPORT int __ctxWindSave ();
  79. IMPORT void __ctxRestore ();
  80. #endif /* defined(__STDC__) || defined(__cplusplus) */
  81. #ifdef __cplusplus
  82. }
  83. #endif
  84. #endif  /* _ASMLANGUAGE */
  85. #define REG_SET_FLAGS 0x0000
  86. #define REG_SET_MASK 0x0004
  87. #define REG_SET_PC 0x0008
  88. #define REG_SET_NPC 0x000c
  89. #define REG_SET_PCSQH 0x0010
  90. #define REG_SET_PCSQT 0x0014
  91. #define REG_SET_GR0 0x0018
  92. #define REG_SET_SR0 0x0098
  93. #define REG_SET_SAR 0x00b8
  94. #define REG_SET_EIEM 0x00bc
  95. #define REG_SET_IIR 0x00c0
  96. #define REG_SET_ISR 0x00c4
  97. #define REG_SET_IOR 0x00c8
  98. #define REG_SET_PSW 0x00cc
  99. #define REG_SET_GOTO 0x00d0
  100. #define REG_SET_CCR 0x00d4
  101. #define REG_SET_CR0 0x00d8
  102. #define REG_SET_CR8 0x00dc
  103. #define REG_SET_CR9 0x00e0
  104. #define REG_SET_CR12 0x00e4
  105. #define REG_SET_CR13 0x00e8
  106. #define REG_SET_CR24 0x00ec
  107. #define REG_SET_CR25 0x00f0
  108. #define REG_SET_CR26 0x00f4
  109. #define REG_SET_MPSFU_HIGH 0x00f8
  110. #define REG_SET_MPSFU_LOW 0x00fc
  111. #define REG_SET_MPSFU_OVFLO 0x0100
  112. #define REG_SET_ASYNC 0x0104
  113. #endif /* __INCregsSimhppah */