📄 usbloopbacklib.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 + -