smObjLibP.h
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:3k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* smObjLibP.h - private shared memory objects library header file */
  2. /* Copyright 1984-1992 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01g,01aug94,dvs  backed out pme's changes for reserved fields in main data structures.
  7. 01f,20mar94,pme  added reserved fields in main data structures to allow
  8.  compatibility between future versions.
  9. 01e,29jan93,pme  added little endian support
  10. 01d,22sep92,rrr  added support for c++
  11. 01c,23aug92,jcf  fixed struct reference.
  12. 01b,30jul92,pme  added smObjTaskDeleteFailRtn declaration.
  13. 01a,19jul92,pme  extracted from smObjLib v1d.
  14. */
  15. #ifndef __INCsmObjLibPh
  16. #define __INCsmObjLibPh
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20. #include "vwModNum.h"
  21. #include "smObjLib.h"
  22. #include "smDllLib.h"
  23. #include "smLib.h"
  24. #include "private/smNameLibP.h"
  25. #include "private/smFixBlkLibP.h"
  26. #include "private/smMemLibP.h"
  27. #include "private/semSmLibP.h"
  28. #if (defined (CPU_FAMILY) && (CPU_FAMILY==I960) && (defined __GNUC__))
  29. #pragma align 1                 /* tell gcc960 not to optimize alignments */
  30. #endif  /* CPU_FAMILY==I960 */
  31. /* typedefs */
  32. typedef struct sm_obj_tcb        /* SM_OBJ_TCB - shared memory object tcb */
  33.     {
  34.     SM_DL_NODE        qNode;     /* 0x00: multiway q node for pend q */
  35.     struct windTcb *  localTcb;  /* 0x10: address of local TCB */
  36.     UINT32            ownerCpu;  /* 0x14: cpu number on which task runs */
  37.     UINT32            action;    /* 0x18: action when put on CPU event queue */
  38.     UINT32            removedByGive;/* TRUE: if removed from pend Q by give */
  39.     } SM_OBJ_TCB;
  40. #if (defined (CPU_FAMILY) && (CPU_FAMILY==I960) && (defined __GNUC__))
  41. #pragma align 0                 /* turn off alignment requirement */
  42. #endif  /* CPU_FAMILY==I960 */
  43. /* globals */
  44. extern SM_FIX_BLK_PART_ID smTcbPartId; /* shared TCB partition */
  45. extern FUNCPTR smObjTcbFreeRtn; /* shared TCB free routine */
  46. extern FUNCPTR smObjTcbFreeFailRtn; /* shared TCB free fail routine */
  47. extern FUNCPTR smObjTaskDeleteFailRtn; /* taskDelete fail routine */
  48. /* function declarations */
  49. #if defined(__STDC__) || defined(__cplusplus)
  50. extern STATUS smObjTcbInit ();
  51. extern STATUS smObjTcbFree (SM_OBJ_TCB * pSmObjTcb);
  52. extern void   smObjTimeoutLogMsg (char * routineName, char * lockLocalAdrs);
  53. extern void   smObjTcbFreeLogMsg ();
  54. extern STATUS smObjEventSend (SM_DL_LIST * pEventList, UINT32 destCpu);
  55. extern void   smObjEventProcess (SM_DL_LIST * pEventList);
  56. extern void   smObjObjShow (int smObjId, int level);
  57. #else   /* __STDC__ */
  58. extern STATUS smObjTcbInit ();
  59. extern STATUS smObjTcbFree ();
  60. extern void   smObjTimeoutLogMsg ();
  61. extern void   smObjTcbFreeLogMsg ();
  62. extern STATUS smObjEventSend ();
  63. extern void   smObjEventProcess ();
  64. extern void   smObjObjShow ();
  65. #endif  /* __STDC__ */
  66. #ifdef __cplusplus
  67. }
  68. #endif
  69. #endif /* __INCsmObjLibPh */