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

VxWorks

开发平台:

C/C++

  1. /* distNetLibP.h - distributed objects network layer private header (VxFusion)*/
  2. /* Copyright 1999 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01c,24may99,drm  added vxfusion to VxFusion related includes
  7. 01b,10nov98,drm  moved net-related distCtl() parameters to public .h file
  8. 01a,17jul97,ur   written.
  9. */
  10. #ifndef __INCdistNetLibPh
  11. #define __INCdistNetLibPh
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. #include "vxWorks.h"
  16. #include "vxfusion/distLib.h"
  17. #include "vxfusion/distTBufLib.h"
  18. #include "vxfusion/distNetLib.h"
  19. #include "vxfusion/private/distNodeLibP.h"
  20. #include "vxfusion/private/distPktLibP.h"
  21. /* defines */
  22. #define DIST_SERV_MAX 16
  23. #define DIST_NET_SERV_INST(servId) (servTable[(servId)].servTaskId)
  24. /* typedefs */
  25. typedef struct /* DIST_IOVEC */
  26. {
  27. void *pIOBuffer;
  28. UINT IOLen;
  29. } DIST_IOVEC;
  30. typedef struct /* DIST_SERV_NODE */
  31. {
  32. SEMAPHORE servWait4Jobs;
  33. SEMAPHORE servQLock;
  34. int servId;
  35. BOOL servUp;
  36. DIST_TBUF_HDR *pServQ;
  37. int servTaskId;
  38. int servTaskPrio;
  39. int servNetPrio;
  40. } DIST_SERV_NODE;
  41. typedef int DIST_STATUS; /* DIST_STATUS */
  42. typedef DIST_STATUS (* DIST_SERV_FUNC) (DIST_NODE_ID, DIST_TBUF_HDR *);
  43. /* extern */
  44. extern DIST_SERV_NODE servTable[];
  45. /* function declarations */
  46. #if defined(__STDC__) || defined(__cplusplus)
  47. void distNetInit (void);
  48. int distNetCtl (int function, int argument);
  49. STATUS distNetServAdd (int servId, DIST_SERV_FUNC servInput,
  50. char *servTaskName, int servNetPrio, int servTaskPrio,
  51. int servTaskStackSz);
  52. STATUS distNetServConfig (int servId, int taskPrio, int netPrio);
  53. STATUS distNetServUp (int servId);
  54. STATUS distNetServDown (int servId);
  55. STATUS distNetSend (DIST_NODE_ID nodeId, DIST_PKT *pPkt, UINT size,
  56. int timo, int prio);
  57. STATUS distNetIOVSend (DIST_NODE_ID nodeId, DIST_IOVEC *iov, int num,
  58. int timo, int prio);
  59. #else /* __STDC__ */
  60. void distNetInit ();
  61. int distNetCtl ();
  62. STATUS distNetServAdd ();
  63. STATUS distNetServConfig ();
  64. STATUS distNetServUp ();
  65. STATUS distNetServDown ();
  66. STATUS distNetSend ();
  67. STATUS distNetIOVSend ();
  68. #endif /* __STDC__ */
  69. #ifdef __cplusplus
  70. }
  71. #endif
  72. #endif  /* __INCdistNetLibPh */