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

VxWorks

开发平台:

C/C++

  1. /* classLibP.h - private object class management library header file */
  2. /* Copyright 1984-1997 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01d,19may97,jpd  added _ASMLANGUAGE for offsets into OBJ_CLASS.
  7. 01c,10dec93,smb  added windview documentation
  8.  changed helpRtn to instRtn
  9. 01b,22sep92,rrr  added support for c++
  10. 01a,04jul92,jcf  created.
  11. */
  12. #ifndef __INCclassLibPh
  13. #define __INCclassLibPh
  14. #ifdef __cplusplus
  15. extern "C" {
  16. #endif
  17. #ifndef _ASMLANGUAGE
  18. #include "vxWorks.h"
  19. #include "vwModNum.h"
  20. #include "memLib.h"
  21. #include "classLib.h"
  22. #include "private/objLibP.h"
  23. /* windview 
  24.  * Instrumented object used in level 1 windview event logging use
  25.  *
  26.  * FUNCPTR             initRtn;        * object initialization routine *
  27.  * FUNCPTR             instRtn;        * object instrument routine *
  28.  *
  29.  */
  30. #define OBJ_INST_RTN /* include redefinition of obj_class instRtn field */
  31. typedef struct obj_class /* OBJ_CLASS */
  32.     {
  33.     OBJ_CORE objCore; /* object core of class object */
  34.     struct mem_part *objPartId; /* memory partition to allocate from */
  35.     unsigned objSize; /* size of object */
  36.     unsigned objAllocCnt; /* number of allocated objects */
  37.     unsigned objFreeCnt; /* number of deallocated objects */
  38.     unsigned objInitCnt; /* number of initialized objects */
  39.     unsigned objTerminateCnt;/* number of terminiated objects */
  40.     int coreOffset; /* offset from object start to objCore*/
  41.     FUNCPTR createRtn; /* object creation routine */
  42.     FUNCPTR initRtn; /* object initialization routine */
  43.     FUNCPTR destroyRtn; /* object destroy routine */
  44.     FUNCPTR showRtn; /* object show routine */
  45.     FUNCPTR instRtn; /* object inst routine */
  46.     } OBJ_CLASS;
  47. /* function declarations */
  48. #if defined(__STDC__) || defined(__cplusplus)
  49. extern CLASS_ID classCreate (unsigned objectSize, int coreOffset,
  50.      FUNCPTR createRtn, FUNCPTR initRtn,
  51.      FUNCPTR destroyRtn);
  52. extern STATUS classInit (OBJ_CLASS *pObjClass, unsigned objectSize,
  53.    int coreOffset, FUNCPTR createRtn, FUNCPTR initRtn,
  54.    FUNCPTR destroyRtn);
  55. extern STATUS classDestroy (CLASS_ID classId);
  56. extern STATUS classInstConnect (CLASS_ID classId, FUNCPTR instRtn);
  57. extern STATUS classShowConnect (CLASS_ID classId, FUNCPTR showRtn);
  58. extern STATUS   classInstrument ( OBJ_CLASS * pObjClass, 
  59.   OBJ_CLASS * pObjInstClass );
  60. #else /* __STDC__ */
  61. extern CLASS_ID classCreate ();
  62. extern STATUS classInit ();
  63. extern STATUS classDestroy ();
  64. extern STATUS classInstConnect ();
  65. extern STATUS classShowConnect ();
  66. extern STATUS   classInstrument ();
  67. #endif /* __STDC__ */
  68. #else   /* _ASMLANGUAGE */
  69. #if (CPU_FAMILY == ARM)
  70. #define OBJ_CLASS_initRtn 0x24 /* Offsets into OBJ_CLASS */
  71. #endif
  72. #endif  /* _ASMLANGUAGE */
  73.    
  74. #ifdef __cplusplus
  75. }
  76. #endif
  77. #endif /* __INCclassLibPh */