114 lines
3.3 KiB
C
114 lines
3.3 KiB
C
/* usbHalLib.h - define the API's exposed by HAL */
|
|
|
|
/* Copyright 2004, 2010 Wind River Systems, Inc. */
|
|
|
|
/*
|
|
Modification history
|
|
--------------------
|
|
01d,29apr10,pad Moved extern C statement after include statements.
|
|
01c,03aug04,mta Modification History Changes
|
|
01b,19jul04,amit Coding Convention Changes
|
|
01a,04mar04,mta First.
|
|
*/
|
|
|
|
/*
|
|
DESCRIPTION
|
|
|
|
This file defines the interfaces and data structures exposed by the
|
|
Hardware Adaption Layer to the usbTargLib layer
|
|
*/
|
|
|
|
#ifndef __INCusbHalLibh
|
|
#define __INCusbHalLibh
|
|
|
|
|
|
/* includes */
|
|
|
|
#include "usb/usbHandleLib.h"
|
|
#include "usb/usb.h"
|
|
#include "usb/target/usbTcd.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/* defines */
|
|
|
|
/* managment codes passed to USB_TCD_MANAGEMENT_CALLBACK */
|
|
|
|
#define TCD_MNGMT_BUS_RESET 1 /* bus reset */
|
|
#define TCD_MNGMT_SUSPEND 2 /* suspend signalling detected */
|
|
#define TCD_MNGMT_RESUME 3 /* resume signalling detected */
|
|
#define TCD_MNGMT_DISCONNECT 4 /* disconnect detected */
|
|
|
|
/* typedefs */
|
|
|
|
typedef struct usbHalTcdNexus /* USBHAL_TCD_NEXUS */
|
|
{
|
|
USB_TCD_EXEC_FUNC tcdExecFunc; /* TCD primary entry point */
|
|
TCD_HANDLE handle; /* client's handle with TCD */
|
|
} USBHAL_TCD_NEXUS, *pUSBHAL_TCD_NEXUS;
|
|
|
|
/* management notification callback function */
|
|
|
|
typedef VOID (*USB_TCD_MNGMT_CALLBACK)
|
|
(
|
|
pVOID mngmtCallbackParam,
|
|
UINT16 mngmtCode,
|
|
pVOID pContext
|
|
);
|
|
|
|
/* functions declarration */
|
|
|
|
extern STATUS usbHalTcdAttach (USB_TCD_EXEC_FUNC tcdExecFunc, pVOID tcdParam,
|
|
pUSBHAL_TCD_NEXUS pNexus,
|
|
pUSB_APPLN_DEVICE_INFO pDeviceInfo,
|
|
USB_TCD_MNGMT_CALLBACK mngmtCallback,
|
|
pVOID mngmtCallbackParam);
|
|
|
|
extern STATUS usbHalTcdDetach (pUSBHAL_TCD_NEXUS pNexus);
|
|
|
|
extern STATUS usbHalTcdEnable (pUSBHAL_TCD_NEXUS pNexus);
|
|
|
|
extern STATUS usbHalTcdDisable (pUSBHAL_TCD_NEXUS pNexus);
|
|
|
|
extern STATUS usbHalTcdAddressSet (pUSBHAL_TCD_NEXUS pNexus,UINT8 deviceAddress);
|
|
|
|
extern STATUS usbHalTcdSignalResume (pUSBHAL_TCD_NEXUS pNexus);
|
|
|
|
extern STATUS usbHalTcdDeviceFeatureSet (pUSBHAL_TCD_NEXUS pNexus,
|
|
UINT16 uFeatureSelector,
|
|
UINT8 uTestSelector);
|
|
|
|
extern STATUS usbHalTcdDeviceFeatureClear (pUSBHAL_TCD_NEXUS pNexus,
|
|
UINT16 uFeatureSelector);
|
|
|
|
extern STATUS usbHalTcdCurrentFrameGet (pUSBHAL_TCD_NEXUS pNexus,
|
|
pUINT16 pFrameNo);
|
|
|
|
extern STATUS usbHalTcdEndpointAssign (pUSBHAL_TCD_NEXUS pNexus,
|
|
pUSB_ENDPOINT_DESCR pEndpointDesc,
|
|
UINT16 uConfigurationValue,
|
|
UINT16 uInterface,
|
|
UINT16 uAltSetting,
|
|
VOID ** ppPipeHandle);
|
|
|
|
extern STATUS usbHalTcdEndpointRelease (pUSBHAL_TCD_NEXUS pNexus,
|
|
pVOID pPipeHandle);
|
|
|
|
extern STATUS usbHalTcdEndpointStateSet (pUSBHAL_TCD_NEXUS pNexus,
|
|
pVOID pPipeHandle, UINT16 state);
|
|
|
|
extern STATUS usbHalTcdEndpointStatusGet (pUSBHAL_TCD_NEXUS pNexus,
|
|
pVOID pPipeHandle, pUINT8 pStatus);
|
|
|
|
extern STATUS usbHalTcdErpSubmit (pUSBHAL_TCD_NEXUS pNexus, pUSB_ERP pErp);
|
|
|
|
extern STATUS usbHalTcdErpCancel (pUSBHAL_TCD_NEXUS pNexus, pUSB_ERP pErp);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __INCusbHalLibh */
|