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

VxWorks

开发平台:

C/C++

  1. /* wdbRegs.h - header file for register layout as view by the WDB agent */
  2. /* Copyright 1984-2002 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01i,25apr02,jhw  Added C++ support (SPR 76304).
  7. 01h,13jul01,kab  Cleanup for merge to mainline
  8. 01g,13apr01,pcs  Add Altivec Support.
  9. 01f,15mar01,pcs  Change include filename altiVecLib.h to altivecLib.h
  10. 01e,29jan01,dtr  Adding altivec register support.
  11. 01e,28feb00,frf  Add SH4 support for T2
  12. 01d,31jul98,kab  Added DSP register support.
  13. 01d,12feb99,dbt  fixed __STDC__ use.
  14. 01c,17dec96,ms  WDB now uses FP_CONTEXT instead of FPREG_SET (SPR 7654).
  15. 01b,25may95,ms  defined register objects.
  16. 01a,03may95,ms   written.
  17. */
  18. #ifndef __INCwdbRegsh
  19. #define __INCwdbRegsh
  20. #ifdef __cplusplus
  21. extern "C" {
  22. #endif
  23. /* includes */
  24. #include "wdb/dll.h"
  25. #include "wdb/wdb.h"
  26. #include "regs.h" /* WDB_IU_REGS = VxWorks REG_SET */
  27. #include "fppLib.h" /* WDB_FPU_REGS = VxWorks FP_CONTEXT */
  28. #include "dspLib.h" /* WDB_DSP_REGS = VxWorks DSP_CONTEXT */
  29. #ifdef  _WRS_ALTIVEC_SUPPORT
  30. #include "altivecLib.h"
  31. #endif /* _WRS_ALTIVEC_SUPPORT */
  32. /* data types */
  33. #if     CPU_FAMILY==MC680X0
  34. typedef struct WDB_IU_REGS
  35.     {
  36.     REG_SET     regSet;
  37.     int         padding;
  38.     } WDB_IU_REGS;
  39. #else
  40. typedef REG_SET WDB_IU_REGS;
  41. #endif
  42. typedef FP_CONTEXT WDB_FPU_REGS;
  43. typedef DSP_CONTEXT WDB_DSP_REGS;
  44. typedef struct
  45.     {
  46.     dll_t node;
  47.     WDB_REG_SET_TYPE regSetType; /* type of register set */
  48.     void (*save) (void); /* save current regs */
  49.     void (*load) (void); /* load saved regs */
  50.     void (*get)  (char ** ppRegs); /* get saved regs */
  51.     void (*set)  (char *pRegs); /* change saved regs */
  52.     } WDB_REG_SET_OBJ;
  53. #ifdef  _WRS_ALTIVEC_SUPPORT
  54. typedef ALTIVEC_CONTEXT WDB_ALTIVEC_REGS;
  55. typedef struct
  56.     {
  57.      /*  NOTE:  altivecContext has to be the first element in the struct.
  58.              altivecContext has to be 16 byte aligned. Anyone who uses
  59.              this object should define it as a pointer and memalign to
  60.              get it 16 byte aligned.
  61.      */
  62.     WDB_ALTIVEC_REGS    altivecContext; /* the hardware context */
  63.     WDB_REG_SET_OBJ     regSet;         /* generic register set */
  64.     } ALTIVEC_REG_SET_OBJ;
  65. #endif /* _WRS_ALTIVEC_SUPPORT */
  66. /* function prototypes */
  67. #ifdef  __STDC__
  68. extern  WDB_REG_SET_OBJ * wdbAltivecLibInit (void);
  69. extern WDB_REG_SET_OBJ * wdbFpLibInit (void);
  70. extern WDB_REG_SET_OBJ * wdbDspLibInit (void);
  71. extern void              wdbExternRegSetObjAdd (WDB_REG_SET_OBJ *pRegSet);
  72. #else /* ! __STDC__ */
  73. extern  WDB_REG_SET_OBJ * wdbAltivecLibInit ();
  74. extern WDB_REG_SET_OBJ * wdbFpLibInit ();
  75. extern WDB_REG_SET_OBJ * wdbDspLibInit ();
  76. extern void              wdbExternRegSetObjAdd ();
  77. #endif /* __STDC__ */
  78. #ifdef __cplusplus
  79. }
  80. #endif
  81. #endif  /* __INCwdbRegsh */