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

📄 usbloopbacklib.h

📁 VxWorks BSP for S3C2510A
💻 H
字号:
/* usbLoopbackLib.h - USB Loopback device driver definitions *//* Copyright 2002 SAMSUNG ELECTRONICS *//*modification history--------------------01a,3Oct2003,Ajay Raj Sharma created.*/#ifndef __INCusbLoopbackLibh#define __INCusbLoopbackLibh#ifdef	__cplusplusextern "C" {#endif/* includes */#include "usb/usbPlatform.h"#include "vwModNum.h"           /* USB Module Number Def's *//* defines *//* Maximum data which can be loopbacked on any endpoint of the device*/#define USB_LOOPBACK_MAX_LEN 4096/* Loopback device class, sub class and protocol*/#define    USB_CLASS_LOOPBACK    0xAB#define    USB_SUBCLASS_LOOPBACK 0xCD#define    USB_PROTOCOL_CTRL_LOOPBACK 0x01#define    USB_PROTOCOL_BULK_LOOPBACK 0x02#define    USB_PROTOCOL_INT_LOOPBACK 0x04#define    USB_PROTOCOL_ISOCH_LOOPBACK 0x08/* Utitlity macros to check the loopback device capablities */#define USB_IS_CTRL_LOOPBACK_SUPPORTED(p) ((p) & USB_PROTOCOL_CTRL_LOOPBACK)#define USB_IS_BULK_LOOPBACK_SUPPORTED(p) ((p) & USB_PROTOCOL_BULK_LOOPBACK)#define USB_IS_INT_LOOPBACK_SUPPORTED(p) ((p) & USB_PROTOCOL_INT_LOOPBACK)#define USB_IS_ISOCH_LOOPBACK_SUPPORTED(p) ((p) & USB_PROTOCOL_ISOCH_LOOPBACK)/* usbLoopbackLib 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_LOOPBACK_SUB_MODULE 15#define M_usbLoopbackLib ( ( USB_LOOPBACK_SUB_MODULE   << 8) | M_usbHostLib )#define usbLoppbackErr(x)	(M_usbLoopbackLib | (x))#define S_usbLoopbackLib_NOT_INITIALIZED     usbLoppbackErr (1)#define S_usbLoopbackLib_BAD_PARAM	    usbLoppbackErr (2)#define S_usbLoopbackLib_OUT_OF_MEMORY	    usbLoppbackErr (3)#define S_usbLoopbackLib_OUT_OF_RESOURCES    usbLoppbackErr (4)#define S_usbLoopbackLib_GENERAL_FAULT	    usbLoppbackErr (5)#define S_usbLoopbackLib_QUEUE_FULL	    usbLoppbackErr (6)#define S_usbLoopbackLib_QUEUE_EMPTY	    usbLoppbackErr (7)#define S_usbLoopbackLib_NOT_IMPLEMENTED     usbLoppbackErr (8)#define S_usbLoopbackLib_USBD_FAULT	    usbLoppbackErr (9)#define S_usbLoopbackLib_NOT_REGISTERED	    usbLoppbackErr (10)#define S_usbLoopbackLib_NOT_LOCKED	    usbLoppbackErr (11)/* USB_LOOPBACK_xxxx define "attach codes" used by USB_LOOPBACK_ATTACH_CALLBACK. */#define USB_LOOPBACK_ATTACH	0	    /* new Loopback device attached */#define USB_LOOPBACK_REMOVE	1	    /* Loopback device has been removed *//* IOCTL codes unique to usbLoopbackLib. */#define USB_LOOPBACK_PROTOCOL_GET 0x10F0#define USB_LOOPBACK_STAT_GET 0x10F1/* typedefs */typedef struct usb_loopback_stat				/* a loopback channel */    {    UINT32 ctrlOutErrors;		/* count of control out failures */    UINT32 ctrlInErrors;		/* count of control input failures */    UINT32 ctrlPacketMismatch; /* Packet mismatch of control loopback transfer */    UINT32 bulkOutErrors;		/* count of bulk out failures */    UINT32 bulkInErrors;		/* count of bulk input failures */    UINT32 bulkPacketMismatch; /* Packet mismatch of bulk loopback transfer */    UINT32 intInErrors;		/* count of interrupt input failures */    UINT32 intOutErrors;		/* count of interrupt out failures */    UINT32 intPacketMismatch; /* Packet mismatch of interrupt loopback transfer */        UINT32 isochOutErrors;		/* count of isoch out failures */    UINT32 isochInErrors;		/* count of isoch input failures */    UINT32 isochPacketMismatch; /* Packet mismatch isoch loopback transfer */    } USB_LOOPBACK_STAT;typedef struct usb_loopback_drv_funcs USB_LOOPBACK_DRV_FNC;typedef struct usb_loopback_chan				/* a loopback channel */    {    USB_LOOPBACK_DRV_FNC * pDrvFuncs;    /* device data */    } USB_LOOPBACK_CHAN;struct usb_loopback_drv_funcs				/* USB loopback driver functions */    {        int		(*controlLoopback)       (       USB_LOOPBACK_CHAN *pChan,       char *outBfr,       char *inBfr,       int loopbackLen,       int iteration       );    int		(*bulkLoopback)       (       USB_LOOPBACK_CHAN *pChan,       char *outBfr,       char *inBfr,       int loopbackLen,       int iteration       );    int		(*interruptLoopback)       (       USB_LOOPBACK_CHAN *pChan,       char *outBfr,       char *inBfr,       int loopbackLen,       int iteration       );    int		(*isochLoopback)       (       USB_LOOPBACK_CHAN *pChan,       char *outBfr,       char *inBfr,       int loopbackLen,       int iteration       );     int		(*ioctl)		(		USB_LOOPBACK_CHAN *	pChan,		int		cmd,		void *arg		);    };/* USB_LOOPBACK_ATTACH_CALLBACK defines a callback routine which will be * invoked by usbLoopbackLib.c when the attachment or removal of a loopback * device is detected. */typedef VOID (*USB_LOOPBACK_ATTACH_CALLBACK)    (    pVOID arg,			    /* caller-defined argument */    USB_LOOPBACK_CHAN *pChan,		    /* pointer to affected USB_LOOPBACK_CHAN */    UINT16 attachCode		    /* defined as USB_LOOPBACK_xxxx */    );/* function prototypes */STATUS usbLoopbackDevInit (void);STATUS usbLoopbackDevShutdown (void);STATUS usbLoopbackDynamicAttachRegister    (    USB_LOOPBACK_ATTACH_CALLBACK callback,	/* new callback to be registered */    pVOID arg				/* user-defined arg to callback */    );STATUS usbLoopbackDynamicAttachUnRegister    (    USB_LOOPBACK_ATTACH_CALLBACK callback,	/* callback to be unregistered */    pVOID arg				/* user-defined arg to callback */    );STATUS usbLoopbackChanLock    (    USB_LOOPBACK_CHAN *pChan		    /* USB_LOOPBACK_CHAN to be marked as in use */    );STATUS usbLoopbackChanUnlock    (    USB_LOOPBACK_CHAN *pChan		    /* USB_LOOPBACK_CHAN to be marked as unused */    );#ifdef	__cplusplus}#endif#endif	/* __INCusbLoopbackLibh *//* End of file. */

⌨️ 快捷键说明

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