usbdLib.h
上传用户:nvosite88
上传日期:2007-01-17
资源大小:4983k
文件大小:14k
- /* usbdLib.h - USBD functional interface definition */
- /* Copyright 2000 Wind River Systems, Inc. */
- /*
- Modification history
- --------------------
- 01h,18sep01,wef merge from wrs.tor2_0.usb1_1-f for veloce
- 01g,07may01,wef changed module number to be (module sub num << 8) |
- M_usbHostLib
- 01f,02may01,wef changed module number to be M_<module> + M_usbHostLib
- 01e,05dec00,wef moved Module number defs to vwModNum.h - add this
- to #includes
- 01d,26jan00,rcb Redefine <bandwidth> parameter to usbdPipeCreate() as UINT32.
- 01c,29nov99,rcb Increase frame number fields to 32-bits in
- usbdCurrentFrameGet().
- 01b,07sep99,rcb Add management callbacks and set-bus-state API.
- 01a,07may99,rcb First.
- */
- /*
- DESCRIPTION
- Defines the USBD functional interface. Functions are provided to invoke
- each of the underlying USBD URBs (request blocks).
- */
- #ifndef __INCusbdLibh
- #define __INCusbdLibh
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* includes */
- #include "usb/usbHandleLib.h" /* handle utility funcs */
- #include "usb/usb.h" /* Basic USB definitions */
- #include "drv/usb/usbHcd.h" /* USB HCD interface definitions */
- #include "vwModNum.h" /* USB Module number def's */
- /* defines */
- /* USBD Results - URB_HEADER.Result */
- /*
- * 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_USBD_SUB_MODULE 5
- #define M_usbdLib ( (USB_USBD_SUB_MODULE << 8) | M_usbHostLib )
- #define usbdErr(x) (M_usbdLib | (x))
- #define S_usbdLib_BAD_CLIENT usbdErr(1)
- #define S_usbdLib_BAD_PARAM usbdErr(2)
- #define S_usbdLib_BAD_HANDLE usbdErr(3)
- #define S_usbdLib_OUT_OF_MEMORY usbdErr(4)
- #define S_usbdLib_OUT_OF_RESOURCES usbdErr(5)
- #define S_usbdLib_NOT_IMPLEMENTED usbdErr(6)
- #define S_usbdLib_GENERAL_FAULT usbdErr(7)
- #define S_usbdLib_NOT_INITIALIZED usbdErr(8)
- #define S_usbdLib_INTERNAL_FAULT usbdErr(9)
- #define S_usbdLib_TIMEOUT usbdErr(10)
- #define S_usbdLib_HCD_FAULT usbdErr(11)
- #define S_usbdLib_IO_FAULT usbdErr(12)
- #define S_usbdLib_NOT_HUB usbdErr(13)
- #define S_usbdLib_CANNOT_CANCEL usbdErr(14)
- #define S_usbdLib_BANDWIDTH_FAULT usbdErr(15)
- #define S_usbdLib_POWER_FAULT usbdErr(16)
- #define S_usbdLib_SOF_MASTER_FAULT usbdErr(17)
- /* String length definitions */
- #define USBD_NAME_LEN 32 /* Maximum length for name */
- /* management events */
- #define USBD_MNGMT_RESUME 1 /* remote wakeup/resume */
- /* bus states - see usbdBusStateSet() */
- #define USBD_BUS_SUSPEND 0x0001 /* suspend bus */
- #define USBD_BUS_RESUME 0x0002 /* resume bus */
- /* USBD_NOTIFY_ALL pertains to dynamic attach/removal notification */
- #define USBD_NOTIFY_ALL 0xffff
- #define USBD_DYNA_ATTACH 0
- #define USBD_DYNA_REMOVE 1
- /* typedefs */
- /* Handles and callbacks. */
- typedef GENERIC_HANDLE USBD_CLIENT_HANDLE, *pUSBD_CLIENT_HANDLE;
- typedef GENERIC_HANDLE USBD_NODE_ID, *pUSBD_NODE_ID;
- typedef GENERIC_HANDLE USBD_PIPE_HANDLE, *pUSBD_PIPE_HANDLE;
- typedef VOID (*URB_CALLBACK) (pVOID pUrb);
- typedef VOID (*USBD_ATTACH_CALLBACK)
- (
- USBD_NODE_ID nodeId,
- UINT16 attachAction,
- UINT16 configuration,
- UINT16 interface,
- UINT16 deviceClass,
- UINT16 deviceSubClass,
- UINT16 deviceProtocol
- );
- typedef VOID (*USBD_MNGMT_CALLBACK)
- (
- pVOID callbackParam,
- USBD_NODE_ID nodeId,
- UINT16 mngmtCode
- );
- /*
- * USBD_NODE_INFO
- */
- typedef struct usbd_node_info
- {
- UINT16 nodeType; /* Type of node */
- UINT16 nodeSpeed; /* Speed of node, e.g., 12MBit, 1.5MBit */
- USBD_NODE_ID parentHubId; /* Node Id of hub to which node is connected */
- UINT16 parentHubPort; /* Port on parent hub to which connected */
- USBD_NODE_ID rootId; /* Node Id of root for USB to which connected */
- } USBD_NODE_INFO, *pUSBD_NODE_INFO;
- /*
- * USBD_STATS
- */
- typedef struct usbd_stats
- {
- UINT16 totalTransfersIn; /* Total # of inbound transfers */
- UINT16 totalTransfersOut; /* Total # of outbound transfers */
- UINT16 totalReceiveErrors; /* Errors on inbound traffic */
- UINT16 totalTransmitErrors; /* Errors on transmit */
- } USBD_STATS, *pUSBD_STATS;
- /* function prototypes */
- STATUS usbdInitialize (void);
- STATUS usbdShutdown (void);
- STATUS usbdClientRegister
- (
- pCHAR pClientName, /* Client name */
- pUSBD_CLIENT_HANDLE pClientHandle /* Client hdl returned by USBD */
- );
- STATUS usbdClientUnregister
- (
- USBD_CLIENT_HANDLE clientHandle /* Client handle */
- );
- STATUS usbdMngmtCallbackSet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_MNGMT_CALLBACK mngmtCallback, /* management callback */
- pVOID mngmtCallbackParam /* client-defined parameter */
- );
- STATUS usbdBusStateSet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* node ID */
- UINT16 busState /* new bus state: USBD_BUS_xxxx */
- );
- STATUS usbdBusCountGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- pUINT16 pBusCount /* Word bfr to receive bus count */
- );
- STATUS usbdRootNodeIdGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- UINT16 busIndex, /* Bus index */
- pUSBD_NODE_ID pRootId /* bfr to receive Root Id */
- );
- STATUS usbdHubPortCountGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID hubId, /* Node Id for desired hub */
- pUINT16 pPortCount /* UINT16 bfr to receive port count */
- );
- STATUS usbdNodeIdGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID hubId, /* Node Id for desired hub */
- UINT16 portIndex, /* Port index */
- pUINT16 pNodeType, /* bfr to receive node type */
- pUSBD_NODE_ID pNodeId /* bfr to receive Node Id */
- );
- STATUS usbdNodeInfoGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- pUSBD_NODE_INFO pNodeInfo, /* Structure to receive node info */
- UINT16 infoLen /* Len of bfr allocated by client */
- );
- STATUS usbdDynamicAttachRegister
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- UINT16 deviceClass, /* USB class code */
- UINT16 deviceSubClass, /* USB sub-class code */
- UINT16 deviceProtocol, /* USB device protocol */
- USBD_ATTACH_CALLBACK attachCallback /* User-supplied callback routine */
- );
- STATUS usbdDynamicAttachUnRegister
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- UINT16 deviceClass, /* USB class code */
- UINT16 deviceSubClass, /* USB sub-class code */
- UINT16 deviceProtocol, /* USB device protocol */
- USBD_ATTACH_CALLBACK attachCallback /* User-supplied callback routine */
- );
- STATUS usbdFeatureClear
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- UINT16 requestType, /* Selects request type */
- UINT16 feature, /* Feature selector */
- UINT16 index /* Interface/endpoint index */
- );
- STATUS usbdFeatureSet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- UINT16 requestType, /* Selects request type */
- UINT16 feature, /* Feature selector */
- UINT16 index /* Interface/endpoint index */
- );
- STATUS usbdConfigurationGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- pUINT16 pConfiguration /* bfr to receive config value */
- );
- STATUS usbdConfigurationSet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- UINT16 configuration, /* New configuration to be set */
- UINT16 maxPower /* max power this config will draw */
- );
- STATUS usbdDescriptorGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- UINT8 requestType, /* specifies type of request */
- UINT8 descriptorType, /* Type of descriptor */
- UINT8 descriptorIndex, /* Index of descriptor */
- UINT16 languageId, /* Language ID */
- UINT16 bfrLen, /* Max length of data to be returned */
- pUINT8 pBfr, /* Pointer to bfr to receive data */
- pUINT16 pActLen /* bfr to receive actual length */
- );
- STATUS usbdDescriptorSet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- UINT8 requestType, /* selects request type */
- UINT8 descriptorType, /* Type of descriptor */
- UINT8 descriptorIndex, /* Index of descriptor */
- UINT16 languageId, /* Language ID */
- UINT16 bfrLen, /* Max length of data to be returned */
- pUINT8 pBfr /* Pointer to bfr to receive data */
- );
- STATUS usbdInterfaceGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- UINT16 interfaceIndex, /* Index of interface */
- pUINT16 pAlternateSetting /* Current alternate setting */
- );
- STATUS usbdInterfaceSet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- UINT16 interfaceIndex, /* Index of interface */
- UINT16 alternateSetting /* Alternate setting */
- );
- STATUS usbdStatusGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- UINT16 requestType, /* Selects device/interface/endpoint */
- UINT16 index, /* Interface/endpoint index */
- UINT16 bfrLen, /* length of bfr */
- pUINT8 pBfr, /* bfr to receive status */
- pUINT16 pActLen /* bfr to receive act len xfr'd */
- );
- STATUS usbdAddressGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- pUINT16 pDeviceAddress /* Currently assigned device address */
- );
- STATUS usbdAddressSet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- UINT16 deviceAddress /* New device address */
- );
- STATUS usbdVendorSpecific
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- UINT8 requestType, /* bmRequestType in USB spec. */
- UINT8 request, /* bRequest in USB spec. */
- UINT16 value, /* wValue in USB spec. */
- UINT16 index, /* wIndex in USB spec. */
- UINT16 length, /* wLength in USB spec. */
- pUINT8 pBfr, /* ptr to data buffer */
- pUINT16 pActLen /* actual length of IN */
- );
- STATUS usbdPipeCreate
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- UINT16 endpoint, /* Endpoint number */
- UINT16 configuration, /* config w/which pipe associated */
- UINT16 interface, /* interface w/which pipe associated */
- UINT16 transferType, /* Type of transfer: control, bulk... */
- UINT16 direction, /* Specifies IN or OUT endpoint */
- UINT16 maxPayload, /* Maximum data payload per packet */
- UINT32 bandwidth, /* Bandwidth required for pipe */
- UINT16 serviceInterval, /* Required service interval */
- pUSBD_PIPE_HANDLE pPipeHandle /* pipe handle returned by USBD */
- );
- STATUS usbdPipeDestroy
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_PIPE_HANDLE pipeHandle /* pipe handle */
- );
- STATUS usbdTransfer
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_PIPE_HANDLE pipeHandle, /* Pipe handle */
- pUSB_IRP pIrp /* ptr to I/O request packet */
- );
- STATUS usbdTransferAbort
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_PIPE_HANDLE pipeHandle, /* Pipe handle */
- pUSB_IRP pIrp /* ptr to I/O to abort */
- );
- STATUS usbdSynchFrameGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client Handle */
- USBD_NODE_ID nodeId, /* Node Id of device/hub */
- UINT16 endpoint, /* Endpoint to be queried */
- pUINT16 pFrameNo /* Frame number returned by device */
- );
- STATUS usbdCurrentFrameGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of root for desired USB */
- pUINT32 pFrameNo, /* bfr to receive current frame no. */
- pUINT32 pFrameWindow /* bfr to receive frame window */
- );
- STATUS usbdSofMasterTake
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId /* Node Id of node on desired USB */
- );
-
- STATUS usbdSofMasterRelease
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId /* Node Id of node on desired USB */
- );
- STATUS usbdSofIntervalGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of node on desired USB */
- pUINT16 pSofInterval /* bfr to receive SOF interval */
- );
- STATUS usbdSofIntervalSet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of node on desired USB */
- UINT16 sofInterval /* new SOF interval */
- );
- STATUS usbdVersionGet
- (
- pUINT16 pVersion, /* UINT16 bfr to receive version */
- pCHAR pMfg /* bfr to receive USBD mfg string */
- );
- STATUS usbdHcdAttach
- (
- HCD_EXEC_FUNC hcdExecFunc, /* Ptr to HCD抯 primary entry point */
- pVOID param, /* HCD-specific parameter */
- pGENERIC_HANDLE pAttachToken /* Token to identify HCD in future */
- );
- STATUS usbdHcdDetach
- (
- GENERIC_HANDLE attachToken /* AttachToken returned */
- );
- STATUS usbdStatisticsGet
- (
- USBD_CLIENT_HANDLE clientHandle, /* Client handle */
- USBD_NODE_ID nodeId, /* Node Id of a node on desired USB */
- pUSBD_STATS pStatistics, /* Ptr to structure to receive stats */
- UINT16 statLen /* Len of bfr provided by caller */
- );
- #ifdef __cplusplus
- }
- #endif
- #endif /* __INCusbdLibh */
- /* End of file. */