/* usbEnet.h - Class-specific definitions for USB Ethernet Adapters */ /* Copyright 2000-2001, 2010 Wind River Systems, Inc. */ /* Modification history -------------------- 01a,29apr10,pad Moved extern C statement after include statements. 01a,02may00, vis Created */ #ifndef __INCusbEneth #define __INCusbEneth /* includes */ #include "usb/usbCommdevices.h" #include "usb/usbPlatform.h" #include "usb/ossLib.h" #include "usb/usbListLib.h" #include "usb/usbQueueLib.h" #include "usb/usbdLib.h" #include "usb/usbdCoreLib.h" #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* defines */ /* USB Ethernet Control Model Sub class-specific requests */ #define USB_ENET_REQ_SEND_ENCAP_COMMAND 0x00 #define USB_ENET_REQ_GET_ENCAP_RESPONSE 0x01 #define USB_ENET_REQ_SET_MCAST_FILTERS 0x40 #define USB_ENET_REQ_SET_POWMGMT_FILTER 0x41 #define USB_ENET_REQ_GET_POWMGMT_FILTER 0x42 #define USB_ENET_REQ_SET_PACKET_FILTER 0x43 #define USB_ENET_REQ_GET_ENET_STATISTIC 0x44 /* USB Ethernet Control Model Notification codes.*/ #define USB_ENET_NOTIFY_NETWORK_CONNECTION 0x00 #define USB_ENET_NOTIFY_RESPONSE_AVAILABLE 0x01 #define USB_ENET_NOTIFY_CONNECTION_SPD_CHANGE 0x2a /* * USB Ethernet Control Model - Statistics * These values are used in 2 places. * 1. In GetEthernetStatistic request, as feature selector * 2. In decifering the Function descriptor. */ #define USB_ENET_STAT_XMIT_OK 1 #define USB_ENET_STAT_RVC_OK 2 #define USB_ENET_STAT_XMIT_ERROR 3 #define USB_ENET_STAT_RVC_ERROR 4 #define USB_ENET_STAT_RVC_NO_BUFFER 5 #define USB_ENET_STAT_DIRECTED_BYTES_XMIT 6 #define USB_ENET_STAT_DIRECTED_FRAMES_XMIT 7 #define USB_ENET_STAT_MULTICAST_BYTES_XMIT 8 #define USB_ENET_STAT_MULTICAST_FRAMES_XMIT 9 #define USB_ENET_STAT_BROADCAST_BYTES_XMIT 10 #define USB_ENET_STAT_BROADCAST_FRAMES_XMIT 11 #define USB_ENET_STAT_DIRECTED_BYTES_RCV 12 #define USB_ENET_STAT_DIRECTED_FRAMES_RCV 13 #define USB_ENET_STAT_MULTICAST_BYTES_RCV 14 #define USB_ENET_STAT_MULTICAST_FRAMES_RCV 15 #define USB_ENET_STAT_BROADCAST_BYTES_RCV 16 #define USB_ENET_STAT_BROADCAST_FRAMES_RCV 17 #define USB_ENET_STAT_RCV_CRC_ERROR 18 #define USB_ENET_STAT_TRANSMIT_QUEUE_LENGTH 19 #define USB_ENET_STAT_RCV_ERROR_ALIGNMENT 20 #define USB_ENET_STAT_XMIT_ONE_COLLISION 21 #define USB_ENET_STAT_XMIT_MORE_COLLISIONS 22 #define USB_ENET_STAT_XMIT_DEFERRED 23 #define USB_ENET_STAT_XMIT_MAX_COLLISIONS 24 #define USB_ENET_STAT_RCV_OVERRUN 25 #define USB_ENET_STAT_XMIT_UNDERRUN 26 #define USB_ENET_STAT_XMIT_HEARTBEAT_FAILURE 27 #define USB_ENET_STAT_XMIT_TIMES_CRS_LOST 28 #define USB_ENET_STAT_XMIT_LATE_COLLISIONS 29 /* here is how the Function descriptor is deciphered */ #define GetEnetStat(x) (0x1<<(x-1)) #define MCAST_FILTER_MASK 0x1000 /* * USB Ethernet Control Model - Packet Filter Setup Options. * These are used in the SetEthernetPacketFilter request. * The Packet Filter is the inclusive OR ofthe below options */ #define USB_ENET_PKT_TYPE_PROMISCOUS 0x0001 #define USB_ENET_PKT_TYPE_ALL_MULTICAST 0x0002 #define USB_ENET_PKT_TYPE_DIRECTED 0x0004 #define USB_ENET_PKT_TYPE_BROADCAST 0x0008 #define USB_ENET_PKT_TYPE_MULTICAST 0x0010 /* USB Ethernet Control Model - Function descriptor */ typedef struct usbEnet_Func_descr { UINT8 length; /* bFunctionLength */ UINT8 descriptorType; /* bDescriptorType */ UINT8 descriptorSubType; /* bDescriptorType */ UINT8 macAddressIndex; /* iMACAddress */ UINT32 statisticsBitmap; /* bmEthernetStatistics */ UINT16 maxSegmentSize; /* wMaxSegmentSize */ UINT16 noOfMCastFilters; /* wNumbereMCFilters */ UINT8 noOfPowerFilters; /* bNumberPowerFilters */ } USB_ENET_FUNC_DESCR, *pUSB_ENET_FUNC_DESCR; #define USB_ENET_FUNC_DESCR_LEN 13 #ifdef __cplusplus } #endif /* __cplusplus */ #endif /* __INCusbEneth */