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

VxWorks

开发平台:

C/C++

  1. /* distPktLibP.h - */
  2. #ifndef __INCdistPktLibPh
  3. #define __INCdistPktLibPh
  4. #include "vxWorks.h"
  5. #define DIST_PKT_TYPE_MSG_Q DIST_ID_MSG_Q_SERV
  6. #define DIST_PKT_TYPE_MSG_Q_GRP DIST_ID_MSG_Q_GRP_SERV
  7. #define DIST_PKT_TYPE_DNDB DIST_ID_DNDB_SERV
  8. #define DIST_PKT_TYPE_DGDB DIST_ID_DGDB_SERV
  9. #define DIST_PKT_TYPE_INCO DIST_ID_INCO_SERV
  10. #define DIST_PKT_TYPE_GAP DIST_ID_GAP_SERV
  11. /* subtypes of BOOTSTRAP telegram */
  12. #define DIST_BOOTING_REQ 0
  13. /*
  14.  * The __DIST_PKT_HDR_END__ makro must end a structure representing
  15.  * a packet header. The DIST_PKT_HDR_SIZEOF() makro looks for it!
  16.  * This is because several ABIs require a structure to be rouded up
  17.  * in length. Therefore sizeof() is useless here. We want the true
  18.  * size so that we do not waste network bandwidth.
  19.  */
  20. #define __DIST_PKT_HDR_END__ 
  21. char __distPktHdrEnd__[0]; /* should evaluate to nothing */
  22. #define DIST_PKT_HDR_SIZEOF(struct) 
  23. ((int) &((struct *) NULL)->__distPktHdrEnd__)
  24. /*
  25.  * General node to build structures for sending on the network:
  26.  *
  27.  * Be sure that an element of type <t> is stored at an address that
  28.  * is at least aligned to sizeof (<t>). This ensures, that there is
  29.  * no space wasted in between and different compilers for different
  30.  * architectures do not have different understandings of the structure.
  31.  *
  32.  * Put __DIST_PKT_HDR_END__ as the last element of a packet header
  33.  * structure. Note: Each network header structure starts of with DIST_PKT.
  34.  * Therefore DIST_PKT does not need __DIST_PKT_HDR_END__.
  35.  */
  36. typedef struct /* DIST_PKT */
  37. {
  38. uint8_t pktType;
  39. uint8_t pktSubType;
  40. uint16_t pktLen;
  41. } DIST_PKT;
  42. typedef struct /* DIST_PKT_BOOT */
  43. {
  44. uint8_t pktBootType;
  45. } DIST_PKT_BOOT;
  46. #endif /* __INCdistPktLibPh */