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

VxWorks

开发平台:

C/C++

  1. /* wdbCommIfLib.h - header file for the WDB agents communication interface */
  2. /* Copyright 1984-2002 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 01d,25apr02,jhw  Added C++ support (SPR 76304).
  7. 01c,03jun95,ms changed read/write to sendto/rcvfrom
  8. 01b,05apr95,ms  new data types.
  9. 01a,23sep94,ms  written.
  10. */
  11. #ifndef __INCwdbCommIfLibh
  12. #define __INCwdbCommIfLibh
  13. #ifdef __cplusplus
  14. extern "C" {
  15. #endif
  16. /* includes */
  17. #include "wdb/wdb.h"
  18. #include "netinet/in.h"
  19. /* definitions */
  20. #define WDB_COMM_MODE_POLL      1
  21. #define WDB_COMM_MODE_INT       2
  22. /* data types */
  23. /*
  24.  * WDB_COMM_IF - interface used by the agent to talk to the host.
  25.  */
  26. typedef void * WDB_COMM_ID;
  27. typedef struct wdb_comm_if
  28.     {
  29.     WDB_COMM_ID       commId;
  30.     int (*rcvfrom)    (WDB_COMM_ID commId, caddr_t addr, uint_t len,
  31. struct sockaddr_in *pAddr, struct timeval *tv);
  32.     int (*sendto)     (WDB_COMM_ID commId, caddr_t addr, uint_t len,
  33. struct sockaddr_in *pAddr);
  34.     int (*modeSet)    (WDB_COMM_ID commId, uint_t newMode);
  35.     int (*cancel)     (WDB_COMM_ID commId);
  36.     int (*hookAdd)    (WDB_COMM_ID commId, void (*rout)(), uint_t arg);
  37.     int (*notifyHost) (WDB_COMM_ID commId);
  38.     } WDB_COMM_IF;
  39. /*
  40.  * WDB_DRV_IF - interface between a driver and the agents pseudo-UDP/IP stack
  41.  *
  42.  * The default agent configuration uses the native VxWorks UDP/IP stack which
  43.  * has its own interface to a driver (a net_if structure).
  44.  * The agent can also be configured to use a pseudo-UDP/IP stack that
  45.  * is independant of the OS. The pseudo-UDP/IP stack is used for
  46.  * communication with the system mode agent.
  47.  * The WDB_DRV_IF structure allows new drivers to be installed in the
  48.  * pseudo-UDP/IP stack.
  49.  */
  50. typedef struct wdb_drv_if
  51.     {
  52.     uint_t mode; /* available device modes */
  53.     uint_t   mtu; /* maximum transmit packet size */ 
  54.     void     (*stackRcv)(); /* callback when pkt arrives */
  55.     /* driver routines */
  56.     void *    devId; /* device ID */
  57.     STATUS (*pollRtn)(); /* poll device for data */
  58.     STATUS  (*pktTxRtn)(); /* transmit a packet */
  59.     STATUS  (*modeSetRtn)(); /* toggle driver mode */
  60.     int (*ioctl)(); /* misc */
  61.     } WDB_DRV_IF;
  62. #ifdef __cplusplus
  63. }
  64. #endif
  65. #endif  /* __INCwdbCommIfLibh */