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

📄 usbnc1080end.h

📁 Vxworks 的源代码 C语言编写
💻 H
字号:
/* usbNC1080End.h - USB Netchip End driver header *//* Copyright 2000-2001 Wind River Systems, Inc. *//*Modification history--------------------01d,07may01,wef  changed module number to be (module num << 8) | M_usbHostLib01c,03may01,wef  changed pUsbListDev to USB_NC1080_DEV, moved attach_request 		 definition to .c file from .h file.01b,02may01,wef  changed module number to be M_<module> + M_usbHostLib01a,02may00,bri  Created*/#ifndef __INCusbNC1080Endh#define __INCusbNC1080Endh#ifdef	__cplusplusextern "C" {#endif  /* __cplusplus *//* includes */#include "vxWorks.h"#include "usb/usbEnet.h"#include "endLib.h"/* defines *//* vendor and product id's */#define NETCHIP_PRODUCT_ID	0x1080#define NETCHIP_VENDOR_ID	0x0525/* NetChip Register Definitions */#define NETCHIP_USBCTL		((UINT8)0x04)	    /* USB Control */#define NETCHIP_TTL		    ((UINT8)0x10)       /* Time to Live */#define NETCHIP_STATUS		((UINT8)0x11)	    /* Status */#define NETCHIP_REQ_REGISTER_READ ((UINT8)0x10)	/* bRequest */#define NETCHIP_TTLVAL 		255	                /* msec*//* Control Register */#define	USBCTL_WRITABLE_MASK	0x1f0f/* bits 15-13 reserved */#define	USBCTL_ENABLE_LANG	(1 << 12)#define	USBCTL_ENABLE_MFGR	(1 << 11)#define	USBCTL_ENABLE_PROD	(1 << 10)#define	USBCTL_ENABLE_SERIAL	(1 << 9)#define	USBCTL_ENABLE_DEFAULTS	(1 << 8)/* bits 7-4 reserved */#define	USBCTL_FLUSH_OTHER	(1 << 3)#define	USBCTL_FLUSH_THIS	(1 << 2)#define	USBCTL_DISCONN_OTHER	(1 << 1)#define	USBCTL_DISCONN_THIS	(1 << 0) /* Status register */#define	STATUS_PORT_A		(1 << 15)#define	STATUS_CONN_OTHER	(1 << 14)#define	STATUS_SUSPEND_OTHER	(1 << 13)#define	STATUS_MAILBOX_OTHER	(1 << 12)#define	STATUS_PACKETS_OTHER(n)	(((n) >> 8) && 0x03)#define	STATUS_CONN_THIS	(1 << 6)#define	STATUS_SUSPEND_THIS	(1 << 5)#define	STATUS_MAILBOX_THIS	(1 << 4)#define	STATUS_PACKETS_THIS(n)	(((n) >> 0) && 0x03)#define	STATUS_UNSPEC_MASK	0x0c8c#define	STATUS_NOISE_MASK 	((u16)~(0x0303|STATUS_UNSPEC_MASK))/* Configuration items */#define NETCHIP_MTU		296		#define NETCHIP_BUFSIZ      	(NETCHIP_MTU + ENET_HDR_REAL_SIZ + 6)	#define EH_SIZE			(14)#define NETCHIP_SPEED_10M	10000000	/* 10Mbs */#define NETCHIP_SPEED_100M	100000000	/* 100Mbs */#define NETCHIP_SPEED       	NETCHIP_SPEED_10M/* A shortcut for getting the hardware address from the MIB II stuff. */#define NETCHIP_HADDR(pEnd)	\		((pEnd)->mib2Tbl.ifPhysAddress.phyAddress)#define NETCHIP_HADDR_LEN(pEnd) \		((pEnd)->mib2Tbl.ifPhysAddress.addrLength)#define CLIENT_NAME	"usbNC1080Lib"#define NETCHIP_NAME    "netChip"#define NETCHIP_NAME_LEN (sizeof(NETCHIP_NAME))/* Buffer definitions */#define NETCHIP_NUM_IN_BFRS	10#define NETCHIP_NUM_OUT_BFRS	10#define NETCHIP_OUT_BFR_SIZE	1000#define NETCHIP_IN_BFR_SIZE	1000/* Error Numbers as set the usbNC1080Lib  *//* 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_NC1080_SUB_MODULE  	15#define M_usbNC1080Lib 		( (USB_NC1080_SUB_MODULE  << 8) | M_usbHostLib )#define usbNetChipErr(x)	(M_usbNC1080Lib | (x))#define S_usbNC1080Lib_NOT_INITIALIZED		usbNetChipErr (1)#define S_usbNC1080Lib_BAD_PARAM	    	usbNetChipErr (2)#define S_usbNC1080Lib_OUT_OF_MEMORY		usbNetChipErr (3)#define S_usbNC1080Lib_OUT_OF_RESOURCES		usbNetChipErr (4)#define S_usbNC1080Lib_GENERAL_FAULT		usbNetChipErr (5)#define S_usbNC1080Lib_QUEUE_FULL	    	usbNetChipErr (6)#define S_usbNC1080Lib_QUEUE_EMPTY		usbNetChipErr (7)#define S_usbNC1080Lib_NOT_IMPLEMENTED		usbNetChipErr (8)#define S_usbNC1080Lib_USBD_FAULT	    	usbNetChipErr (9)#define S_usbNC1080Lib_NOT_REGISTERED		usbNetChipErr (10)#define S_usbNC1080Lib_NOT_LOCKED	    	usbNetChipErr (11)/* NETCHIP Device attached */ #define USB_NETCHIP_ATTACH			0/* NETCHIP Device removed  */#define USB_NETCHIP_REMOVE			1/* 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_nc1080_dev    {    LINK devLink;		/* linked list of device structs */    USBD_NODE_ID nodeId;	/* Node Id of the device */    VOID * pDevStructure;	/* Net chip device structure*/    UINT16 configuration;	/* configuration of the device */    UINT16 interface;		/* interface of the device */    UINT16 vendorId;		/* these three fields together */    UINT16 productId;		/* uniquely */    UINT16 serialNo;		/* identify a device */    UINT8 maxPower;		    /* Max. Power Consumption of the device */    BOOL  connected;		/* TRUE if device is connected */    UINT16 lockCount;	    } USB_NC1080_DEV;/* The definition of the driver control structure */typedef struct usb_nc1080_end_device    {    END_OBJ	endObj;			    /* The class we inherit from. */    int		unit;			    /* unit number */    long	flags;			    /* Our local flags. */    UCHAR	enetAddr[6];		/* ethernet address */    CL_POOL_ID	pClPoolId;		/* cluster pool */    BOOL	rxHandling;		/* rcv task is scheduled */    /* usb specifics */    USB_NC1080_DEV * 	pDev;		    /* the device info */    USBD_PIPE_HANDLE outPipeHandle;  /* USBD pipe handle for Tx pipe */    USBD_PIPE_HANDLE inPipeHandle;   /* USBD pipe handle for Rx pipe */     USB_IRP	outIrp;		     /* IRP to transmit output data */    BOOL	outIrpInUse;	     /* TRUE while IRP is outstanding */    USB_IRP	inIrp;		     /* IRP to monitor input from printer */    BOOL	inIrpInUse;	     /* TRUE while IRP is outstanding */    int		txBufIndex; 	     /* What the last submitted IRP is */    int		rxBufIndex;        /* where current buffer is */    int		noOfInBfrs;	 /* no of input buffers*/    int		noOfIrps;	 /* no of Irps */    UINT16	outBfrLen;	     	/* size of output buffer */    UINT16	inBfrLen;		        /* size of input buffer */	    UINT8 **  pOutBfrArray;	 	/*pointer to Output buffers*/    UINT8 **  pInBfrArray;	        /* pointer to input buffers */	    int		txPkts;		/* used for packet_id of the Header */    UINT32	outErrors;		/* count of IRP failures */    UINT32	inErrors;		    	/* count of IRP failures */    } NC1080_END_DEV;/* * As mentioned earlier, the data needs to be packetized before sending  * to the Netchip1080 device for transmission. Also the received data * has to be de-packetized before we send it up. The packetizing protocol * is * ----------------------------- * |header|    data    |footer| * ----------------------------- *  * the header , footer format is given here  */typedef struct netchip_header     {    UINT16	hdr_len;		/* sizeof netchip_header */    UINT16	packet_len;		/* packet size */    UINT16	packet_id;		/* detects dropped packets */    /*      * This is the minimum header required. If anything else is to be there,     * the netchip_header struct should continue like..     * UINT16	vendorId;     * UINT16	productId;     * ...     */        }NC_HEADER;typedef struct netchip_footer     {    UINT16	packet_id;		/* for cross checking */    }NC_FOOTER;typedef VOID (*USB_NETCHIP_ATTACH_CALLBACK)     (    pVOID arg,           /* caller-defined argument     */    USB_NC1080_DEV * pDev,	     /* structure of netchip device */    UINT16 attachCode    /* attach or remove code       */    );		             /*added for Multiple devices  */#ifdef	__cplusplus}#endif	/* __cplusplus */#endif	/* __INCusbNC1080Endh */

⌨️ 快捷键说明

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