⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usbklsiend.h

📁 VxWorks源码
💻 H
字号:
/* usbKlsiEnd.h - USB Klsi End driver header *//* Copyright 2000-2001 Wind River Systems, Inc. *//*Modification history--------------------01h,07may01,wef  undid 01f01g,07may01,wef  changed module number to be (module num << 8) | M_usbHostLib01f,03may01,wef  changed pUsbListDev to pUSB_KLSI_DEV01e,02may01,wef  changed module number to be M_<module> + M_usbHostLib01d,30apr01,wef  changed USB_DEV struct to USB_KLSI_DEV01c,05dec00,wef  moved Module number defs to vwModNum.h - add this                 to #includes02b,11aug00,sab  KLSI_DEVICE structure modified, added ENET_IRP structure.01a,02may00,vis  Created*/#ifndef __INCusbklsiEndh#define __INCusbklsiEndh#ifdef	__cplusplusextern "C" {#endif  /* __cplusplus *//* includes */#include "endLib.h"#include "usb/usbEnet.h"#include "vwModNum.h"           /* USB Module Number Def's *//* defines *//* Error Numbers as set the usbEnetLib  *//* usbEnetLib error values *//*  * USB errnos are defined as being part of the USB host Module, as are all * vxWorks module numbers, but the USB Module number is further divided into  * sub-modules.  Each sub-module has upto 255 values for its own error codes */ #define USB_KLSI_SUB_MODULE  13#define M_usbKlsiLib 	( (USB_KLSI_SUB_MODULE  << 8) | M_usbHostLib )#define usbKlsiErr(x)	(M_usbKlsiLib | (x))#define S_usbKlsiLib_NOT_INITIALIZED	usbKlsiErr (1)#define S_usbKlsiLib_BAD_PARAM	    	usbKlsiErr (2)#define S_usbKlsiLib_OUT_OF_MEMORY	usbKlsiErr (3)#define S_usbKlsiLib_OUT_OF_RESOURCES	usbKlsiErr (4)#define S_usbKlsiLib_GENERAL_FAULT	usbKlsiErr (5)#define S_usbKlsiLib_QUEUE_FULL	    	usbKlsiErr (6)#define S_usbKlsiLib_QUEUE_EMPTY	usbKlsiErr (7)#define S_usbKlsiLib_NOT_IMPLEMENTED	usbKlsiErr (8)#define S_usbKlsiLib_USBD_FAULT	    	usbKlsiErr (9)#define S_usbKlsiLib_NOT_REGISTERED	usbKlsiErr (10)#define S_usbKlsiLib_NOT_LOCKED	    	usbKlsiErr (11)/* Klsi specific constants *//* List of Vendor Ids and Product Ids of devices employing KLSI adapter */#define NETGEAR_VENDOR_ID		0x0846#define NETGEAR_PRODUCT_ID		0x1001#define SMC_VENDOR_ID			0x0707#define SMC_PRODUCT_ID			0x0100/* Packet Filter Bitmap Constants */#define PACKET_TYPE_MULTICAST		0x10#define PACKET_TYPE_BROADCAST		0x08#define PACKET_TYPE_DIRECTED		0x04#define PACKET_TYPE_ALL_MULTICAST	0x02#define PACKET_TYPE_PROMISCOUS		0x01/* Vendor Specific Commands */#define USB_REQ_KLSI_ETHDESC_GET	0x00#define USB_REQ_KLSI_SET_MCAST_FILTER	0x01#define USB_REQ_KLSI_SET_PACKET_FILTER	0x02#define USB_REQ_KLSI_GET_STATS		0x03#define USB_REQ_KLSI_GET_AUX_INPUTS	0x04#define USB_REQ_KLSI_SET_AUX_OUTPUTS	0x05#define	USB_REQ_KLSI_SET_TEMP_MAC	0x06#define	USB_REQ_KLSI_GET_TEMP_MAC	0x07#define	USB_REQ_KLSI_SET_URB_SIZE	0x08#define	USB_REQ_KLSI_SET_SOFS_TO_WAIT	0x09#define	USB_REQ_KLSI_SET_EVEN_PACKETS	0x0a#define	USB_REQ_KLSI_SCAN		0xff/* Offsets for reading the Ethernet Functional Descriptor */#define KLSI_OFFSET_MACADRS		3#define KLSI_OFFSET_STAT_BMP		9#define KLSI_OFFSET_SEGMENT_SIZE	13#define KLSI_OFFSET_MCAST		15/* Buffer Sizes */#define KLSI_OUT_BFR_SIZE       1550	    	/* size of output bfr */#define KLSI_IN_BFR_SIZE        1550		/* size of input bfr */#define KLSI_M_BULK_NUM		512		/* number of mbulks */ #define KLSI_CL_NUMBER   	256		/* number of clusters */#define KLSI_INTERRUPT_TO_USE	100		/* interrupt used in */						/* downloading firmware */#define USB_KLSI_ATTACH	                0      /* KLSI Device attached */#define USB_KLSI_REMOVE	                1      /* KLSI Device removed  *//* typedefs *//*  * usb Device structure  * This structure is a priliminary structure and is used in the  * call back functions for dynamic attachment. * Later when the final end_obj structure is created, this structure * will be linked to the end_obj structure. */ typedef struct usb_klsi_dev     {    LINK 		devLink;	/* linked list of device structs */        USBD_NODE_ID 	nodeId;		/* Node Id of the device */    VOID * 		pDevStructure;	/* link to KLSI_DEVICE Structure */    UINT16		configuration;	/* configuration of the device */    UINT16 		interface;	/* interface of the device */    UINT16 		vendorId;	/* vendor identification number */	    UINT16 		productId;	/* product identification number */    BOOL                connected;      /* TRUE if KLSI device connected  */     UINT16              lockCount;      /* Count of times structure locked */     }USB_KLSI_DEV, *pUsbListDev;/*  * Statistics, to be maintained by the device/driver  * As on today all the stats are not supported by the driver. */typedef struct klsi_stats    {    UINT32 bitmap;	/* bitmap indicating the supported stats */			/* This bitmap will be in the same way as given */			/* in the Function descriptor of the device. */			/* Corresponding bit will be set if the stat is */			/* supported both by the device and the driver */    UINT32 xmitOk;	/* Frames Transmitted without errors. XMIT_OK */    UINT32 rvcOk;	/* Frames received without errors. RVC_OK */    UINT32 xmitErr;	/* Frames not transmitted or transmitted with errors */    UINT32 rvcErr;	/* Frames recd. with errors that are not delivered */			/* to usb Host */    UINT32 rvcNoBuf;	/* Frames missed, nobuffers */    UINT32 rvcCrcErr;	/* Frames recd. with CRC or FCS error */    UINT32 rvcOverRun;	/* Frames not recd. due to over run */    }KLSI_STATS, *pKlsiStats;/*  * the multicast filter support details.  */typedef struct klsi_mcast    {    UINT8  isMCastPerfect;	/* if TRUE, the device supports perfect */				/* multicast address filtering (no hashing) */    UINT16  noMCastFilters;	/* No.of Multicast Address filters Supported */    }KLSI_MCAST_DETAILS, *pKlsiMCastDetails;/*  * Irp buffer structure */ typedef struct klsi_enet_irp	{	USB_IRP outIrp;		    /* IRP to transmit output data */   	BOOL outIrpInUse;	    /* TRUE while IRP is outstanding */	} KLSI_ENET_IRP; 	 /*  * Usb Ethernet END Device structure..  * This structure is used both by the file usbKlsiEnd.c. */typedef struct klsi_device    {    END_OBJ endObj;		     /* must be first field */    USB_KLSI_DEV * pDev;	     /* the device info */    UINT8 unit;    UINT8 communicateOk;	    /* TRUE after Starting */				    /* and FALSE if stopped */        UINT8 macAdrs[6];		    /* MAC adress */    CL_POOL_ID pClPoolId;	    /* Pointer to the Cluster Pool */    BOOL connected;		    /* TRUE if device is currently connected */    USBD_PIPE_HANDLE outPipeHandle; /* USBD pipe handle for bulk OUT pipe */	    KLSI_ENET_IRP * pEnetIrp;	    /* pointer to details of Irp structure*/    int noOfIrps;		    /* no of Irps */		    int	 txIrpIndex;		    /* What the last submitted IRP is */    UINT8 * outBfr;		    /* pointer to output buffer */    UINT16 outBfrLen;		    /* size of output buffer */    UINT32 outErrors;		    /* count of IRP failures */    USBD_PIPE_HANDLE inPipeHandle;  /* USBD pipe handle for bulk IN pipe */    USB_IRP inIrp;		    /* IRP to monitor input from printer */    BOOL inIrpInUse;		    /* TRUE while IRP is outstanding */		         UINT8 **	pInBfrArray;	     /* pointer to input buffers */	    int		noOfInBfrs;	     /* no of input buffers*/    int         rxIndex;             /* where current buffer is */    UINT16 inBfrLen;		    /* size of input buffer */    UINT32 inErrors;		    /* count of IRP failures */    KLSI_STATS stats;	    /* Statistics */    KLSI_MCAST_DETAILS mCastFilters; /* Multicast address filter details */    UINT16 maxSegmentSize;	    /* Max. Segment supported by the device */    UINT8 maxPower;		    /* Max. Power Consumption of the device */				    /* in 2mA units */    } KLSI_DEVICE, *pKlsiDevCtrl;/* USB_KLSI_ATTACH_CALLBACK defines a callback routine which will be * invoked by usbKlsiEnd.c when the attachment or removal of a KLSI * device is detected.  When the callback is invoked with an attach code of * USB_KLSI_ATTACH, the nodeId represents the ID of newly added device.  When * the attach code is USB_KLSI_REMOVE, nodeId points to the KLSI device which  * is no longer attached. */typedef VOID (*USB_KLSI_ATTACH_CALLBACK)     (    pVOID arg,           /* caller-defined argument     */    USBD_NODE_ID nodeId, /* nodeId of the KLSI device    */    UINT16 attachCode    /* attach or remove code       */    );LOCAL UINT16 klsiAdapterList[][2] = {			 	{ NETGEAR_VENDOR_ID, NETGEAR_PRODUCT_ID },			 					{ SMC_VENDOR_ID, SMC_PRODUCT_ID }			       };/* function prototypes*/STATUS usbKlsiDynamicAttachRegister ( USB_KLSI_ATTACH_CALLBACK callback,                                         pVOID arg);STATUS usbKlsiDynamicAttachUnregister ( USB_KLSI_ATTACH_CALLBACK callback,                                          pVOID arg);STATUS usbKlsiDevLock (USBD_NODE_ID nodeId);STATUS usbKlsiDevUnlock (USBD_NODE_ID nodeId);#ifdef	__cplusplus}#endif	/* __cplusplus */#endif	/* __INCusbKlsiEndh */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -