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

VxWorks

开发平台:

C/C++

  1. /* usbEnet.h - Class-specific definitions for USB Ethernet Adapters */
  2. /* Copyright 2000-2001 Wind River Systems, Inc. */
  3. /*
  4. Modification history
  5. --------------------
  6. 01a,02may00,  vis  Created
  7. */
  8. #ifndef __INCusbEneth
  9. #define __INCusbEneth
  10. #ifdef __cplusplus
  11. extern "C" {
  12. #endif /* __cplusplus */
  13. /* includes */
  14. #include "usb/usbCommdevices.h"
  15. #include "usb/usbPlatform.h"
  16. #include "usb/ossLib.h"
  17. #include "usb/usbListLib.h"
  18. #include "usb/usbQueueLib.h"
  19. #include "usb/usbdLib.h"
  20. #include "usb/usbdCoreLib.h"
  21. /* defines */
  22. /* USB Ethernet Control Model Sub class-specific requests */
  23. #define USB_ENET_REQ_SEND_ENCAP_COMMAND 0x00
  24. #define USB_ENET_REQ_GET_ENCAP_RESPONSE 0x01
  25. #define USB_ENET_REQ_SET_MCAST_FILTERS 0x40
  26. #define USB_ENET_REQ_SET_POWMGMT_FILTER 0x41
  27. #define USB_ENET_REQ_GET_POWMGMT_FILTER 0x42
  28. #define USB_ENET_REQ_SET_PACKET_FILTER 0x43
  29. #define USB_ENET_REQ_GET_ENET_STATISTIC 0x44
  30. /* USB Ethernet Control Model Notification codes.*/
  31. #define USB_ENET_NOTIFY_NETWORK_CONNECTION 0x00
  32. #define USB_ENET_NOTIFY_RESPONSE_AVAILABLE 0x01
  33. #define USB_ENET_NOTIFY_CONNECTION_SPD_CHANGE 0x2a
  34. /* 
  35.  * USB Ethernet Control Model - Statistics
  36.  * These values are used in 2 places.
  37.  * 1. In GetEthernetStatistic request, as feature selector
  38.  * 2. In decifering the Function descriptor. 
  39.  */
  40. #define USB_ENET_STAT_XMIT_OK 1
  41. #define USB_ENET_STAT_RVC_OK 2
  42. #define USB_ENET_STAT_XMIT_ERROR 3
  43. #define USB_ENET_STAT_RVC_ERROR 4
  44. #define USB_ENET_STAT_RVC_NO_BUFFER 5
  45. #define USB_ENET_STAT_DIRECTED_BYTES_XMIT 6
  46. #define USB_ENET_STAT_DIRECTED_FRAMES_XMIT 7
  47. #define USB_ENET_STAT_MULTICAST_BYTES_XMIT 8
  48. #define USB_ENET_STAT_MULTICAST_FRAMES_XMIT 9
  49. #define USB_ENET_STAT_BROADCAST_BYTES_XMIT 10
  50. #define USB_ENET_STAT_BROADCAST_FRAMES_XMIT 11
  51. #define USB_ENET_STAT_DIRECTED_BYTES_RCV 12
  52. #define USB_ENET_STAT_DIRECTED_FRAMES_RCV 13
  53. #define USB_ENET_STAT_MULTICAST_BYTES_RCV 14
  54. #define USB_ENET_STAT_MULTICAST_FRAMES_RCV 15
  55. #define USB_ENET_STAT_BROADCAST_BYTES_RCV 16
  56. #define USB_ENET_STAT_BROADCAST_FRAMES_RCV 17
  57. #define USB_ENET_STAT_RCV_CRC_ERROR 18
  58. #define USB_ENET_STAT_TRANSMIT_QUEUE_LENGTH 19
  59. #define USB_ENET_STAT_RCV_ERROR_ALIGNMENT 20
  60. #define USB_ENET_STAT_XMIT_ONE_COLLISION 21
  61. #define USB_ENET_STAT_XMIT_MORE_COLLISIONS 22
  62. #define USB_ENET_STAT_XMIT_DEFERRED 23
  63. #define USB_ENET_STAT_XMIT_MAX_COLLISIONS 24
  64. #define USB_ENET_STAT_RCV_OVERRUN 25
  65. #define USB_ENET_STAT_XMIT_UNDERRUN 26
  66. #define USB_ENET_STAT_XMIT_HEARTBEAT_FAILURE 27
  67. #define USB_ENET_STAT_XMIT_TIMES_CRS_LOST 28
  68. #define USB_ENET_STAT_XMIT_LATE_COLLISIONS 29
  69. /* here is how the Function descriptor is deciphered */
  70. #define GetEnetStat(x) (0x1<<(x-1))
  71. #define MCAST_FILTER_MASK 0x1000
  72. /* 
  73.  * USB Ethernet Control Model - Packet Filter Setup Options.
  74.  * These are used in the SetEthernetPacketFilter request.
  75.  * The Packet Filter is the inclusive OR ofthe below options
  76.  */
  77. #define USB_ENET_PKT_TYPE_PROMISCOUS 0x0001
  78. #define USB_ENET_PKT_TYPE_ALL_MULTICAST 0x0002
  79. #define USB_ENET_PKT_TYPE_DIRECTED 0x0004
  80. #define USB_ENET_PKT_TYPE_BROADCAST 0x0008
  81. #define USB_ENET_PKT_TYPE_MULTICAST 0x0010
  82. /* USB Ethernet Control Model - Function descriptor */
  83. typedef struct usbEnet_Func_descr
  84.     {
  85.     UINT8 length;     /* bFunctionLength */
  86.     UINT8 descriptorType;     /* bDescriptorType */
  87.     UINT8 descriptorSubType;     /* bDescriptorType */
  88.     UINT8 macAddressIndex;     /* iMACAddress */
  89.     UINT32 statisticsBitmap;     /* bmEthernetStatistics */
  90.     UINT16 maxSegmentSize;     /* wMaxSegmentSize */
  91.     UINT16 noOfMCastFilters;     /* wNumbereMCFilters */
  92.     UINT8 noOfPowerFilters;     /* bNumberPowerFilters */
  93.     } USB_ENET_FUNC_DESCR, *pUSB_ENET_FUNC_DESCR;
  94. #define USB_ENET_FUNC_DESCR_LEN 13
  95. #ifdef __cplusplus
  96. }
  97. #endif  /* __cplusplus */
  98. #endif /* __INCusbEneth */