original files of m241
This commit is contained in:
@@ -0,0 +1,507 @@
|
||||
/* usbd.h - USBD functional interface definition */
|
||||
|
||||
/*
|
||||
* Copyright (c) 2003, 2006, 2008-2015 Wind River Systems, Inc.
|
||||
*
|
||||
* The right to copy, distribute, modify, or otherwise make use
|
||||
* of this software may be licensed only pursuant to the terms
|
||||
* of an applicable Wind River license agreement.
|
||||
*/
|
||||
|
||||
/* Copyright 2003, 2006, 2008-2014 Wind River Systems, Inc.
|
||||
|
||||
This software includes software licensed to Wind River Systems, Inc.
|
||||
by Wipro, Ltd. Wind River licensees may use this software according
|
||||
to the terms of their Wind River license agreement(s) applicable to
|
||||
this software.
|
||||
*/
|
||||
|
||||
/*
|
||||
Modification history
|
||||
--------------------
|
||||
03c,10dec15,whu Protecte Usb control pipe against concurrent access triggers
|
||||
data abort. (VXW6-84955)
|
||||
02a,03Dec14,wyy Remove compiler warning
|
||||
01z,05Dec13,wyy Add deviceInfoMutex to protect class driver from multi-removing
|
||||
(WIND00446805)
|
||||
01y,04jul13,ljg Change VOID parameter to void for compiler issue (WIND00423631)
|
||||
01x,28apr13,ghs Add support of USB message (WIND00411952)
|
||||
01w,07nov12,s_z Remove compiler CHECKED_RETURN warning (WIND00378821)
|
||||
01v,17oct12,w_x Fix compiler warnings (WIND00370525)
|
||||
01u,19jul12,w_x Add support for USB 3.0 host (WIND00188662)
|
||||
01t,06jul11,ghs Add new match function for device ID matching (WIND00183500)
|
||||
01s,13jan11,w_x Initial USB OTG support changes (WIND00211541)
|
||||
01r,08sep10,ghs Add MHCD and SYNOPSYSHCD count to the max hcd count.
|
||||
01q,21jul10,m_y Add macro USBD_CLEANUP_ENDPOINT_INFO to do the clean action of
|
||||
the structure usbd_endpoint_info
|
||||
01p,04mar10,m_y Add urbList into structure usbd_endpoint_info to record the URBs
|
||||
submitted to this endpoint.(WIND00200272)
|
||||
01o,11may10,m_y Modify macro USBD_DECREMENT_FUNCTIONAL_DEVICE_COUNT,
|
||||
change OSS_ASSERT to "if" judgement (WIND00196406)
|
||||
01d,29apr10,pad Moved extern C statement after include statements.
|
||||
01n,27apr10,j_x Hard code replacement (WIND00183874)
|
||||
01m,13jan10,ghs vxWorks 6.9 LP64 adapting
|
||||
01l,11sep09,ghs Redefine max bus and hcd counts(WIND00152418)
|
||||
01k,24apr09,w_x Moved USBD_NOTIFY_ALL from usbd.c to usbd.h(WIND00163712)
|
||||
01j,12mar09,w_x Moved LOCAL prototype from usbd.h to usbd.c to remove warning
|
||||
(WIND00160883)
|
||||
01i,14feb09,w_x Added root hub handle in USBD_BUS_INFO (WIND00152849)
|
||||
01h,13jan09,w_x Added uParentPortIndex/uParentTier in device info (WIND00151472)
|
||||
01g,23dec08,w_x Added uBCDUSB in device info structure (WIND00149529)
|
||||
01f,17dec08,w_x Added "bAnnounced" flag in device/interface info (WIND00148490)
|
||||
01e,20oct08,w_x Increase USBD_MAX_HCD_NUM and USBD_MAX_BUS_NUM
|
||||
01d,14aug08,w_x Add mutex to sync up pipe delete/re-create (WIND00130877)
|
||||
01c,11jul08,w_x USB Composite device support under vxBus (WIND00127515)
|
||||
01b,07oct06,ami Changes for USB-vxBus porting
|
||||
01a,30may03,nrv Changing the code to WRS standards
|
||||
*/
|
||||
|
||||
/*
|
||||
DESCRIPTION
|
||||
|
||||
This file contains the data structures for usbd module.
|
||||
*/
|
||||
|
||||
/*
|
||||
INTERNAL
|
||||
*******************************************************************************
|
||||
* Filename : Usbd.h
|
||||
*
|
||||
* Copyright :
|
||||
*
|
||||
* THE COPYRIGHT IN THE CONTENTS OF THIS SOFTWARE VEST WITH WIPRO
|
||||
* LIMITED A COMPANY INCORPORATED UNDER THE LAWS OF INDIA AND HAVING
|
||||
* ITS REGISTERED OFFICE AT DODDAKANNELLI SARJAPUR ROAD BANGALORE
|
||||
* 560 035. DISTRIBUTION OR COPYING OF THIS SOFTWARE BY
|
||||
* ANY INDIVIDUAL OR ENTITY OTHER THAN THE ADDRESSEE IS STRICTLY
|
||||
* PROHIBITED AND MAY INCUR LEGAL LIABILITY. IF YOU ARE NOT THE
|
||||
* ADDRESSEE PLEASE NOTIFY US IMMEDIATELY BY PHONE OR BY RETURN EMAIL.
|
||||
* THE ADDRESSEE IS ADVISED TO MAINTAIN THE PROPRIETARY INTERESTS OF
|
||||
* THIS COPYRIGHT AS PER APPLICABLE LAWS.
|
||||
*
|
||||
* Description : This file contains the data structures for usbd module.
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
#ifndef __USBD_H__
|
||||
#define __USBD_H__
|
||||
|
||||
/* Include Files */
|
||||
#include "usbOsal.h"
|
||||
#include "usbHst.h"
|
||||
#include "objLib.h"
|
||||
#include "usbHcdInstr.h"
|
||||
#include "hwif/vxbus/vxBus.h"
|
||||
#include "vxBusLib.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* defines */
|
||||
|
||||
#define USBD_MAX_HCD_NUM ((USB_MAX_UHCI_COUNT) + (USB_MAX_OHCI_COUNT) \
|
||||
+ (USB_MAX_EHCI_COUNT) + (USB_MAX_MHCI_COUNT) \
|
||||
+ (USB_MAX_SYNOPSYSHCI_COUNT)) /* the max
|
||||
* host controllers
|
||||
*/
|
||||
#define USBD_MAX_BUS_NUM ((USBD_MAX_HCD_NUM) * 2) /* the max bus in all HCDs */
|
||||
|
||||
#define USBD_ADDRESS_MAP_SIZE (128/(8*sizeof(UINT8))) /* max # of devices */
|
||||
#define USBD_INVALID_CRC_VALUE 0 /* invalid CRC value for configuration */
|
||||
#define USBD_PARSE_AND_CREATE 0x01 /* used as flag to parse and create pipe */
|
||||
#define USBD_PARSE_ONLY 0x02 /* used as flag to parse only */
|
||||
#define CRC16_MASK 0xFFFF /* CRC16 info */
|
||||
#define CRC16_INITIAL_HOLD 0xFFFF /* CRC16 info */
|
||||
#define CRC16_GENERATOR_POLY 0x8005 /* 1000 0000 0000 0101b */
|
||||
|
||||
#define USBD_NOTIFY_ALL 0xFFFF /* Device/Class match flag wildcard */
|
||||
|
||||
/* Defines the maximum device address */
|
||||
#define USBD_MAX_DEVICE_ADDRESS 127
|
||||
|
||||
/* Defines the offset of bux index in device or hub handle */
|
||||
#define USBD_OFFSET_BUS_INDEX 8
|
||||
|
||||
/* Defines the offset of invalid byte in device handle */
|
||||
#define USBD_OFFSET_INVALID 16
|
||||
|
||||
/* Defines the bit position within a byte */
|
||||
#define USBD_BIT_POSITION 1
|
||||
|
||||
/* Defines the byte and bit position in the device address map */
|
||||
#define USBD_POSITION_ADDRESS_MAP 8
|
||||
|
||||
/* Defines the transfer type bit map in the bmAttributes */
|
||||
#define USBD_TRANSFER_TYPE 0x03
|
||||
|
||||
/* Defines the max packet size is 8 */
|
||||
#define USBD_MAX_PACKET_SIZE_8 8
|
||||
|
||||
/* Defines the max packet size is 16 */
|
||||
#define USBD_MAX_PACKET_SIZE_16 16
|
||||
|
||||
/* Defines the max packet size is 32 */
|
||||
#define USBD_MAX_PACKET_SIZE_32 32
|
||||
|
||||
/* Defines the max packet size is 64 */
|
||||
#define USBD_MAX_PACKET_SIZE_64 64
|
||||
|
||||
/* Defines the max packet size is 512 */
|
||||
#define USBD_MAX_PACKET_SIZE_512 512
|
||||
|
||||
/* Defines the max packet size is 1023 */
|
||||
#define USBD_MAX_PACKET_SIZE_1023 1023
|
||||
|
||||
/* Defines the max packet size is 1024 */
|
||||
#define USBD_MAX_PACKET_SIZE_1024 1024
|
||||
|
||||
/* Defines the range of bInterval */
|
||||
|
||||
/* For full-/high-speed isochronous endpoints,
|
||||
* this value must be in the range from 1 to 16
|
||||
*/
|
||||
|
||||
#define USBD_MIN_BINTERVAL 1
|
||||
#define USBD_MAX_BINTERVAL 16
|
||||
|
||||
/* Defines the length of endpoint descriptor */
|
||||
#define USBD_LENGTH_END_DESC 7
|
||||
|
||||
/* Defines the length of device descriptor */
|
||||
#define USBD_LENGTH_DEV_DESC 18
|
||||
|
||||
/* Defines the length of config descriptor */
|
||||
#define USBD_LENGTH_CONFIG_DESC 9
|
||||
|
||||
/* Defines the USB2.0 SPEC version */
|
||||
#define USBD_USB_SPEC_20 0x0200
|
||||
|
||||
/* Defines the 16-bit reversed value for the hold value */
|
||||
#define USBD_HOLD_VALUE_16 16
|
||||
|
||||
/* Defines the byte reversed value for the hold value */
|
||||
#define USBD_HOLD_VALUE_8 8
|
||||
|
||||
/* Defines transfer direction of bmRequestType */
|
||||
#define USBD_DEVICE_TO_HOST 0x80
|
||||
#define USBD_HOST_TO_DEVICE 0x00
|
||||
|
||||
/* Defines the offset of descriptor type in wValue */
|
||||
#define USBD_OFFSET_DES_TYPE 8
|
||||
|
||||
/* Defines the request status size is 2 */
|
||||
#define USBD_STATUS_SIZE_2 2
|
||||
|
||||
/* Defines the request status size is 1 */
|
||||
#define USBD_STATUS_SIZE_1 1
|
||||
|
||||
/* Defines the request status size is 0 */
|
||||
#define USBD_STATUS_SIZE_0 0
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* USBD_INCREMENT_FUNCTIONAL_DEVICE_COUNT - Increment the functional
|
||||
* device count
|
||||
*
|
||||
* This Macro is used to increment a functional device count on the
|
||||
* specified bus <uBusIndex>.
|
||||
*
|
||||
* RETURNS: N/A
|
||||
*/
|
||||
#define USBD_INCREMENT_FUNCTIONAL_DEVICE_COUNT(uBusIndex) \
|
||||
{ \
|
||||
/* Lock the bus before modifying functional count */ \
|
||||
(void)OS_WAIT_FOR_EVENT((gUSBBusInfoList[(uBusIndex)].busOperationLock),\
|
||||
OS_WAIT_INFINITE); \
|
||||
\
|
||||
/* Increment the functional count of the bus */ \
|
||||
gUSBBusInfoList[(uBusIndex)].uFunctionalCount++; \
|
||||
\
|
||||
/* Release the lock */ \
|
||||
OS_RELEASE_EVENT(gUSBBusInfoList[(uBusIndex)].busOperationLock); \
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* USBD_DECREMENT_FUNCTIONAL_DEVICE_COUNT - decrement a functional device
|
||||
* count
|
||||
*
|
||||
* This Macro is used to decrement a functional device count on the
|
||||
* specified bus <uBusIndex>.
|
||||
*
|
||||
* RETURNS: N/A
|
||||
*/
|
||||
#define USBD_DECREMENT_FUNCTIONAL_DEVICE_COUNT(uBusIndex) \
|
||||
{ \
|
||||
/* Lock the bus before modifying functional count */ \
|
||||
(void)OS_WAIT_FOR_EVENT((gUSBBusInfoList[(uBusIndex)].busOperationLock),\
|
||||
OS_WAIT_INFINITE); \
|
||||
/* Just to check the count is not zero */ \
|
||||
if (gUSBBusInfoList[(uBusIndex)].uFunctionalCount != 0) \
|
||||
/* Decrement the functional count of the bus */ \
|
||||
gUSBBusInfoList[(uBusIndex)].uFunctionalCount--; \
|
||||
\
|
||||
/* Release the lock */ \
|
||||
OS_RELEASE_EVENT((gUSBBusInfoList[(uBusIndex)].busOperationLock)); \
|
||||
}
|
||||
|
||||
/***************************************************************************
|
||||
*
|
||||
* USBD_CLEANUP_ENDPOINT_INFO - do clean action of the USBD_ENDPOINT_INFO
|
||||
*
|
||||
* This Macro is used to do clean action of the USBD_ENDPOINT_INFO.
|
||||
*
|
||||
* RETURNS: N/A
|
||||
*/
|
||||
|
||||
#define USBD_CLEANUP_ENDPOINT_INFO(pEndpointInfo) \
|
||||
{ \
|
||||
NODE *pNode = NULL; \
|
||||
NODE *pNextNode = NULL; \
|
||||
(void)semTake(&(pEndpointInfo->urbListSem),WAIT_FOREVER); \
|
||||
pNode = lstFirst(&(pEndpointInfo->urbList)); \
|
||||
while(pNode != NULL) \
|
||||
{ \
|
||||
pNextNode = lstNext(pNode); \
|
||||
lstDelete(&(pEndpointInfo->urbList), pNode); \
|
||||
pNode = pNextNode; \
|
||||
} \
|
||||
(void)semTerminate(&(pEndpointInfo->urbListSem)); \
|
||||
}
|
||||
|
||||
/* Macro definition of USB message code */
|
||||
#define USBMSG_CODE(SysOrUser, ModuleType, Module, Msg) \
|
||||
(((((UINT32)SysOrUser) & 0xFF) << 24) | ((((UINT32)ModuleType) & 0xF) << 20) \
|
||||
| ((((UINT32)Module) & 0xF) << 16) | ((((UINT32)Msg) & 0xFFFF) << 0))
|
||||
|
||||
/*
|
||||
* Bit Table of Message Code
|
||||
*
|
||||
* All 0 or All 1 is reserved for any sub values
|
||||
*
|
||||
* [31-24] USB System Message or User Message
|
||||
* [0x00]~[0x20] - Unused, Reserved
|
||||
* [0x21] - USB Message
|
||||
* [0x22]~[0x80] - Reserved
|
||||
* [0x81] - User Message
|
||||
* [0x82]~[0xFF] - Reserved
|
||||
*
|
||||
* [23-20] Module Type (for USB only)
|
||||
* [0x0] - Unused, Reserved
|
||||
* [0x1] - HCD Message
|
||||
* [0x2] - TCD Message
|
||||
* [0x3] - OTG Message
|
||||
* [0x4] - USBD Message
|
||||
* [0x5] - Host Class Driver Message
|
||||
* [0x6] - Target Function Driver Message
|
||||
* [0x7] - Tools and Other Type Message
|
||||
* [0x8~0xF] - Unused, Reserved
|
||||
*
|
||||
* [19-16] Modules
|
||||
* Defined by every modules, value [0x0] is reserved.
|
||||
* For GEN2 Host Class Driver Define:
|
||||
* 1 - legacy (GEN1 Reserved) 2 - Hub, 3 - Helper, 4- Keyboard,
|
||||
* 5 - Mouse, 6 - Storage, 7 - Network, 8 - Printer, 9 - Serial,
|
||||
* 10 - PHDC
|
||||
*
|
||||
* [15-0] Message Values
|
||||
* Defined by every modules, value [0x0] is reserved.
|
||||
* For GEN2 Host Class Driver Define:
|
||||
* 1 - New Device Ready, 2 - Device Removed.
|
||||
*
|
||||
*/
|
||||
|
||||
/* USB_MSG_CODE - SysOrUser */
|
||||
|
||||
#define USBMSG_USBSYS 0x21
|
||||
#define USBMSG_USBUSER 0x81
|
||||
|
||||
/* USB_MSG_CODE - ModuleType */
|
||||
|
||||
#define USBMSG_HCD 0x1
|
||||
#define USBMSG_TCD 0x2
|
||||
#define USBMSG_OCD 0x3
|
||||
#define USBMSG_USBD 0x4
|
||||
#define USBMSG_CLASS 0x5
|
||||
#define USBMSG_FUNC 0x6
|
||||
#define USBMSG_TOOL 0x7
|
||||
|
||||
/* flags value to add callback */
|
||||
#define USBMSG_FLAG_CALLBACK_ASYN (1 << 0)
|
||||
|
||||
/********************** STRUCTURES DEFINITION *********************************/
|
||||
|
||||
/*
|
||||
* This structure is used to maintain the list of Class Drivers registered
|
||||
* with USBD
|
||||
*/
|
||||
typedef struct usbd_device_driver_list
|
||||
{
|
||||
pUSBHST_DEVICE_DRIVER pDriver; /* pointer to driver */
|
||||
struct usbd_device_driver_list * pNextDriver; /* pointer to next driver */
|
||||
} USBD_DEVICE_DRIVER_LIST, *pUSBD_DEVICE_DRIVER_LIST;
|
||||
|
||||
/* Structure to hold the endpoint information */
|
||||
typedef struct usbd_endpoint_info
|
||||
{
|
||||
UINT8 uEndpointAddress; /* Address of the end Point */
|
||||
ULONG hPipe; /* Ptr to pipe corresponding to the endpoint */
|
||||
LIST urbList; /* List of the urb submited to this endpoint */
|
||||
SEMAPHORE urbListSem; /* semphore of the urb list */
|
||||
} USBD_ENDPOINT_INFO, *pUSBD_ENDPOINT_INFO;
|
||||
|
||||
/*
|
||||
* This structure is used to store the information about an interface required
|
||||
* by a USB device.
|
||||
*/
|
||||
typedef struct usbd_interface_info
|
||||
{
|
||||
UINT8 uInterfaceNum; /* Interface number */
|
||||
UINT8 uAlternateSetting; /* Alt settting value for this interface */
|
||||
UINT8 uNumEndpoints; /* # of end points in the interface */
|
||||
UINT8 uInterfaceClass; /* Class code for the interface */
|
||||
UINT8 uInterfaceSubClass; /* Sub class ocde for the interface */
|
||||
UINT8 uInterfaceProtocol; /* protocol code for the interface */
|
||||
pUSBHST_DEVICE_DRIVER pDriver; /* Ptr to the DEVICE_DRIVER struct */
|
||||
void * pDriverData; /* Driver data specific to interface */
|
||||
pUSBD_ENDPOINT_INFO pEndpointInformation; /* Ptr to end point info */
|
||||
VXB_DEVICE_ID pInterfaceDev; /* Pointer to struct pDev */
|
||||
BOOLEAN bAnnounced;/* Is the VXB_DEVICE_ID bAnnounced */
|
||||
OS_EVENT_ID pipeLock; /* Lock to protect pipe modification */
|
||||
} USBD_INTERFACE_INFO, *pUSBD_INTERFACE_INFO;
|
||||
|
||||
/* This structure is used to store the information about a USB device */
|
||||
typedef struct usbd_device_info
|
||||
{
|
||||
UINT32 hDevice; /* Handle to the device */
|
||||
UINT8 uDeviceSpeed; /* Speed of the device */
|
||||
UINT8 uDeviceAddress; /* Device addr on particular USB bus */
|
||||
UINT8 uBusIndex; /* Index of the bus in global bus list */
|
||||
UINT16 uHighSpeedHubInfo; /* Nearest high speed hub and port number
|
||||
* info; used for split transfer to full/low
|
||||
* speed devices. high byte holds high speed
|
||||
* address, low byte is port number
|
||||
*/
|
||||
UINT8 uParentPortIndex; /* The port index where this device is attached */
|
||||
UINT8 uParentTier; /* The tier of the parent hub of this device */
|
||||
ULONG hDefaultPipe; /* Ptr to pipe for end point 0 */
|
||||
UINT16 uBCDUSB; /* bcdUSB, USB version device conforms to */
|
||||
UINT8 uDeviceClass; /* Class code of the device */
|
||||
UINT8 uDeviceSubClass; /* Sub class code of the device */
|
||||
UINT8 uDeviceProtocol; /* Protocol code of the device */
|
||||
UINT16 uVendorID; /* Vendor Id of the device */
|
||||
UINT16 uDeviceID; /* Device Id for device */
|
||||
UINT16 uBCDDevice; /* USB device release version binary coded decimal */
|
||||
UINT8 uMaxPacketSize0; /* Max Packet Size for default control endpoint */
|
||||
pUSBHST_DEVICE_DRIVER pDriver; /* Store the driver data */
|
||||
void * pDriverData; /* Driver data specific to interface */
|
||||
UINT8 uInterfaceNumber; /* Interface # */
|
||||
UINT8 uInterfaceCount; /* # of interfaces supported */
|
||||
UCHAR * pBOS; /* Ptr to Binary Device Object Store */
|
||||
UCHAR * pCurrentConfiguration; /* Ptr to hold config of the device */
|
||||
UINT8 uNumConfigurations; /* # of possible configurations */
|
||||
UINT16 uConfigCRCValue; /* CRC Value */
|
||||
pUSBD_INTERFACE_INFO pInterfacesInfo; /* Info about interfaces */
|
||||
struct usbd_device_info *pNextUSBDeviceInfo; /* Ptr to next USB devinfo */
|
||||
VXB_DEVICE_ID pDev; /* Pointer to struct pDev */
|
||||
BOOLEAN bAnnounced; /* Is the VXB_DEVICE_ID bAnnounced */
|
||||
BOOLEAN bIsComposite; /* Is this a composite device */
|
||||
UCHAR * pOtgDescr; /* Ptr to OTG descriptor buffer */
|
||||
UINT16 uOtgDescrOffset; /* Offset of OTG descr in config descr */
|
||||
MUTEX_HANDLE deviceInfoMutex; /* protect deviceInfo from concurrent modification */
|
||||
MUTEX_HANDLE ctrlPipeMutex; /* protect control pipe*/
|
||||
} USBD_DEVICE_INFO, *pUSBD_DEVICE_INFO;
|
||||
|
||||
/* Since the root hub is a virtual device, we can use any non-zero addresses */
|
||||
|
||||
#define USB_ROOT_HUB_ADDRESS USBD_MAX_DEVICE_ADDRESS
|
||||
|
||||
/*
|
||||
* To store the information about a bus and also to maintain a list of USB
|
||||
* devices connected on the specific bus.
|
||||
*/
|
||||
typedef struct usbd_bus_info
|
||||
{
|
||||
UINT8 uDeviceAddressMap[USBD_ADDRESS_MAP_SIZE]; /*
|
||||
* Device address map
|
||||
* of devs on bus.
|
||||
*/
|
||||
UINT8 uRelativeBusIndex; /* rellative bus index in the host controller */
|
||||
UINT8 hcdIndex; /* Host controller driver index */
|
||||
ULONG hDefaultPipe; /* Handle to the default pipe */
|
||||
UINT32 uFunctionalCount; /* Count of functional interfaces/devices */
|
||||
OS_EVENT_ID busOperationLock; /* Lock used while accessing list */
|
||||
pUSBD_DEVICE_INFO pUSBDeviceInfoList; /* info about devices connected */
|
||||
UINT32 hRootHub; /* Root hub device handle */
|
||||
UINT8 uRootHubAddress; /* Root hub device address */
|
||||
UINT8 uBusSpeed; /* Root hub bus speed */
|
||||
VXB_DEVICE_ID pDev; /* Host Controller VxBus Instance */
|
||||
} USBD_BUS_INFO, *pUSBD_BUS_INFO;
|
||||
|
||||
typedef void *(* usbmsg_callback)(UINT32 msgCode, void * pModule,
|
||||
void * param, void * userData);
|
||||
|
||||
typedef usbmsg_callback USBMSG_CALLBACK;
|
||||
|
||||
/*******************************************************************************
|
||||
* Function Name : USBD_TRANSLATE_DEVICE_HANDLE
|
||||
* Description : This function is used to translate device handle
|
||||
* to USB device information. .
|
||||
* Parameters : uHandle IN Device handle to be translated.
|
||||
* pDeviceInfo OUT Pointer to hold the translated device
|
||||
* information.
|
||||
* Return Type : None
|
||||
******************************************************************************/
|
||||
|
||||
void usbdTranslateDeviceHandle
|
||||
(
|
||||
UINT32 uHandle,
|
||||
pUSBD_DEVICE_INFO *pDeviceInfo
|
||||
);
|
||||
|
||||
|
||||
pUSBHST_DEVICE_ID usbdMatchDriverId
|
||||
(
|
||||
pUSBHST_DEVICE_ID pDevId,
|
||||
pUSBHST_DEVICE_ID pDrvDevId
|
||||
);
|
||||
|
||||
void * usbMsgCallbackAdd
|
||||
(
|
||||
UINT32 msgCode,
|
||||
USBMSG_CALLBACK callback,
|
||||
void * userData,
|
||||
UINT32 flags
|
||||
);
|
||||
|
||||
STATUS usbMsgCallbackDel
|
||||
(
|
||||
void * handle
|
||||
);
|
||||
|
||||
void * usbMsgPost
|
||||
(
|
||||
UINT32 msgCode,
|
||||
void * pModule,
|
||||
void * param
|
||||
);
|
||||
|
||||
STATUS usbMsgLibInit
|
||||
(
|
||||
int maxCallback,
|
||||
int maxPendingMsg
|
||||
);
|
||||
|
||||
STATUS usbMsgAsynLibInit
|
||||
(
|
||||
void
|
||||
);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif /* End of __USBD_H__ */
|
||||
/**************************** End of file Usbd.h ******************************/
|
||||
|
||||
Reference in New Issue
Block a user