omap3530/beagle_drivers/wb/api/include/cyanusb.h
author arunabha
Wed, 03 Mar 2010 13:10:32 +0000
changeset 27 117faf51deac
permissions -rw-r--r--
Bug 1996 - Contribution for West Bridge Astoria Symbian Storage Driver this storage driver is for the West Bridge Astoria chipset. This device has a USB, SD and processor port for communication with a baseband processor. In our port, we connected this device DVK to the Beagleboard through the SPI interface of the OMAP3. After driver installation, the Symbian OS can see an external device or D: drive represented by the SD card. In this driver, the USB interface is not used directly, though this may be the subject of future contributions. The appropriate way to test the driver is to access the external volume and do file read and write to it, pretty much the same way you would test a thumb drive on your PC

/*  Cypress West Bridge API header file (cyanusb.h)
 ## Header for backward compatibility with previous Antioch SDK releases.
 ## ===========================
 ##
 ##  Copyright Cypress Semiconductor Corporation, 2006-2009,
 ##  All Rights Reserved
 ##  UNPUBLISHED, LICENSED SOFTWARE.
 ##
 ##  CONFIDENTIAL AND PROPRIETARY INFORMATION
 ##  WHICH IS THE PROPERTY OF CYPRESS.
 ##
 ##  Use of this file is governed
 ##  by the license agreement included in the file
 ##
 ##     <install>/license/license.txt
 ##
 ##  where <install> is the Cypress software
 ##  installation root directory path.
 ##
 ## ===========================
*/

#ifndef _INCLUDED_CYANUSB_H_
#define _INCLUDED_CYANUSB_H_

#if !defined(__doxygen__)

#include "cyanmisc.h"
#include "cyasusb.h"
#include "cyas_cplus_start.h"

#define CY_AN_MAX_USB_DESCRIPTOR_SIZE				(CY_AS_MAX_USB_DESCRIPTOR_SIZE)

typedef CyAsUsbInquiryData_dep CyAnUsbInquiryData;
typedef CyAsUsbUnknownCommandData_dep CyAnUsbUnknownCommandData ;
typedef CyAsUsbStartStopData_dep CyAnUsbStartStopData ;
typedef CyAsMSCProgressData CyAnMSCProgressData ;

#define CyAnUsbNandEnum         CyAsUsbNandEnum
#define CyAnUsbSDEnum           CyAsUsbSDEnum
#define CyAnUsbMMCEnum          CyAsUsbMMCEnum
#define CyAnUsbCEATAEnum        CyAsUsbCEATAEnum
typedef CyAsUsbMassStorageEnum  CyAnUsbMassStorageEnum;

#define CyAnUsbDescDevice		CyAsUsbDescDevice
#define CyAnUsbDescDeviceQual		CyAsUsbDescDeviceQual
#define CyAnUsbDescFSConfiguration	CyAsUsbDescFSConfiguration
#define CyAnUsbDescHSConfiguration	CyAsUsbDescHSConfiguration
#define CyAnUsbDescString               CyAsUsbDescString
typedef CyAsUsbDescType CyAnUsbDescType ;

#define CyAnUsbIn	CyAsUsbIn
#define CyAnUsbOut	CyAsUsbOut
#define CyAnUsbInOut	CyAsUsbInOut
typedef CyAsUsbEndPointDir CyAnUsbEndPointDir ;


#define CyAnUsbControl  CyAsUsbControl
#define CyAnUsbIso      CyAsUsbIso
#define CyAnUsbBulk     CyAsUsbBulk
#define CyAnUsbInt      CyAsUsbInt
typedef CyAsUsbEndPointType CyAnUsbEndPointType ;


typedef CyAsUsbEnumControl_dep CyAnUsbEnumControl ;
typedef CyAsUsbEndPointConfig CyAnUsbEndPointConfig ;

#define CyAnUsbMSUnit0                  CyAsUsbMSUnit0
#define CyAnUsbMSUnit1                  CyAsUsbMSUnit1
#define CyAnUsbMSBoth                   CyAsUsbMSBoth
typedef CyAsUsbMSType_t CyAnUsbMSType_t ;

#define CyAnEventUsbSuspend		CyAsEventUsbSuspend
#define CyAnEventUsbResume		CyAsEventUsbResume
#define CyAnEventUsbReset		CyAsEventUsbReset
#define CyAnEventUsbSetConfig		CyAsEventUsbSetConfig
#define CyAnEventUsbSpeedChange		CyAsEventUsbSpeedChange
#define CyAnEventUsbSetupPacket		CyAsEventUsbSetupPacket
#define CyAnEventUsbStatusPacket	CyAsEventUsbStatusPacket
#define CyAnEventUsbInquiryBefore	CyAsEventUsbInquiryBefore
#define CyAnEventUsbInquiryAfter        CyAsEventUsbInquiryAfter
#define CyAnEventUsbStartStop           CyAsEventUsbStartStop
#define CyAnEventUsbUnknownStorage	CyAsEventUsbUnknownStorage
#define CyAnEventUsbMSCProgress         CyAsEventUsbMSCProgress
typedef CyAsUsbEvent CyAnUsbEvent;

typedef CyAsUsbEventCallback_dep CyAnUsbEventCallback ;

typedef CyAsUsbIoCallback CyAnUsbIoCallback;
typedef CyAsUsbFunctionCallback CyAnUsbFunctionCallback;

/******* USB Functions ********************/

/* Sync Usb Start */
extern CyAnReturnStatus_t
CyAnUsbStart(
	CyAnDeviceHandle		handle
	) ;
#define CyAnUsbStart(handle) CyAsUsbStart((CyAsDeviceHandle)(handle), 0, 0)

/*Async Usb Start */
extern CyAnReturnStatus_t
CyAnUsbStartEX(
	CyAnDeviceHandle		handle,
	CyAnFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbStartEX(h, cb, client) CyAsUsbStart((CyAsDeviceHandle)(h), (CyAsFunctionCallback)(cb), (client))

/* Sync Usb Stop */
extern CyAnReturnStatus_t
CyAnUsbStop(
	CyAnDeviceHandle		handle
	) ;
#define CyAnUsbStop(handle) CyAsUsbStop((CyAsDeviceHandle)(handle), 0, 0)

/*Async Usb Stop */
extern CyAnReturnStatus_t
CyAnUsbStopEX(
	CyAnDeviceHandle		handle,
	CyAnFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbStopEX(h, cb, client) CyAsUsbStop((CyAsDeviceHandle)(h), (CyAsFunctionCallback)(cb), (client))

/* Register USB event callback */
EXTERN CyAnReturnStatus_t
CyAnUsbRegisterCallback(
	CyAnDeviceHandle		handle,
	CyAnUsbEventCallback		callback
	) ;
#define CyAnUsbRegisterCallback(h, cb) 		\
    CyAsUsbRegisterCallback_dep((CyAsDeviceHandle)(h), (CyAsUsbEventCallback_dep)(cb))

/*Sync Usb connect */
EXTERN CyAnReturnStatus_t
CyAnUsbConnect(
	CyAnDeviceHandle		handle
	) ;
#define CyAnUsbConnect(handle) CyAsUsbConnect((CyAsDeviceHandle)(handle), 0, 0)

/*Async Usb connect */
extern CyAnReturnStatus_t
CyAnUsbConnectEX(
	CyAnDeviceHandle		handle,
	CyAnFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbConnectEX(h, cb, client)		\
    CyAsUsbConnect((CyAsDeviceHandle)(h), (CyAsFunctionCallback)(cb), (client))

/*Sync Usb disconnect */
EXTERN CyAnReturnStatus_t
CyAnUsbDisconnect(
	CyAnDeviceHandle		handle
	) ;
#define CyAnUsbDisconnect(handle) CyAsUsbDisconnect((CyAsDeviceHandle)(handle), 0, 0)

/*Async Usb disconnect */
extern CyAnReturnStatus_t
CyAnUsbDisconnectEX(
	CyAnDeviceHandle		handle,
	CyAnFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbDisconnectEX(h, cb, client)	\
    CyAsUsbDisconnect((CyAsDeviceHandle)(h), (CyAsFunctionCallback)(cb), (client))

/* Sync version of set enum config */
EXTERN CyAnReturnStatus_t
CyAnUsbSetEnumConfig(
	CyAnDeviceHandle	handle,
	CyAnUsbEnumControl *	config_p
	) ;
#define CyAnUsbSetEnumConfig(handle, config_p) \
    CyAsUsbSetEnumConfig_dep((CyAsDeviceHandle)(handle), (CyAsUsbEnumControl_dep *)(config_p), 0, 0)

/* Async version of set enum config */
extern CyAnReturnStatus_t
CyAnUsbSetEnumConfigEX(
	CyAnDeviceHandle		handle,
	CyAnUsbEnumControl *		config_p,
	CyAnFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbSetEnumConfigEX(h, config_p, cb, client)						\
    CyAsUsbSetEnumConfig_dep((CyAsDeviceHandle)(h), (CyAsUsbEnumControl_dep *)(config_p), 	\
	    (CyAsFunctionCallback)(cb), (client))

/* Sync version of get enum config */
EXTERN CyAnReturnStatus_t
CyAnUsbGetEnumConfig(
	CyAnDeviceHandle		handle,
	CyAnUsbEnumControl *	config_p
	) ;
#define CyAnUsbGetEnumConfig(handle, config_p) \
    CyAsUsbGetEnumConfig_dep((CyAsDeviceHandle)(handle), (CyAsUsbEnumControl_dep *)(config_p), 0, 0)

/* Async version of get enum config */
extern CyAnReturnStatus_t
CyAnUsbGetEnumConfigEX(
	CyAnDeviceHandle		handle,
	CyAnUsbEnumControl *		config_p,
	CyAnFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbGetEnumConfigEX(h, config_p, cb, client)						\
    CyAsUsbGetEnumConfig_dep((CyAsDeviceHandle)(h), (CyAsUsbEnumControl_dep *)(config_p), 	\
	    (CyAsFunctionCallback)(cb), (client))

/* Sync Version of Set descriptor */
EXTERN CyAnReturnStatus_t
CyAnUsbSetDescriptor(
	CyAnDeviceHandle		handle,
	CyAnUsbDescType			type,
	uint8_t				index,
	void *				desc_p,
	uint16_t			length
	) ;
#define CyAnUsbSetDescriptor(handle, type, index, desc_p, length) \
    CyAsUsbSetDescriptor((CyAsDeviceHandle)(handle), (CyAsUsbDescType)(type), (index), (desc_p), (length), 0, 0)

/* Async Version of Set descriptor */
extern CyAnReturnStatus_t
CyAnUsbSetDescriptorEX(
	CyAnDeviceHandle		handle,
	CyAnUsbDescType			type,
	uint8_t				index,
	void *				desc_p,
	uint16_t			length,
	CyAnFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbSetDescriptorEX(h, type, index, desc_p, length, cb, client)				\
    CyAsUsbSetDescriptor((CyAsDeviceHandle)(h), (CyAsUsbDescType)(type), (index), (desc_p), (length),	\
	    (CyAsFunctionCallback)(cb), (client))

/* Only version of clear descriptors */
EXTERN CyAnReturnStatus_t
CyAnUsbClearDescriptors(
	CyAnDeviceHandle		handle,
        CyAnFunctionCallback            cb,
        uint32_t                        client
	) ;
#define CyAnUsbClearDescriptors(h, cb, client)                                                          \
    CyAsUsbClearDescriptors((CyAsDeviceHandle)(h), (CyAsFunctionCallback)(cb), (client))

/* Sync version of get descriptor*/
EXTERN CyAnReturnStatus_t
CyAnUsbGetDescriptor(
	CyAnDeviceHandle	handle,
	CyAnUsbDescType		type,
	uint8_t			index,
	void *			desc_p,
	uint32_t *		length_p
	) ;
#define CyAnUsbGetDescriptor(h, type, index, desc_p, length_p)	\
    CyAsUsbGetDescriptor_dep((CyAsDeviceHandle)(h), (CyAsUsbDescType)(type), (index), (desc_p), (length_p))

typedef CyAsGetDescriptorData CyAnGetDescriptorData ;

/* Async version of get descriptor */
extern CyAnReturnStatus_t
CyAnUsbGetDescriptorEX(
	CyAnDeviceHandle		handle,
	CyAnUsbDescType			type,
	uint8_t				index,
	CyAnGetDescriptorData *		data,
	CyAnFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbGetDescriptorEX(h, type, index, data, cb, client)						   \
    CyAsUsbGetDescriptor((CyAsDeviceHandle)(h), (CyAsUsbDescType)(type), (index), (CyAsGetDescriptorData *)(data), \
	    (CyAsFunctionCallback)(cb), (client))

EXTERN CyAnReturnStatus_t
CyAnUsbSetPhysicalConfiguration(
    CyAnDeviceHandle		handle,
    uint8_t			config
    ) ;
#define CyAnUsbSetPhysicalConfiguration(h, config)	\
    CyAsUsbSetPhysicalConfiguration((CyAsDeviceHandle)(h), (config))

EXTERN CyAnReturnStatus_t
CyAnUsbSetEndPointConfig(
    CyAnDeviceHandle			handle,
    CyAnEndPointNumber_t		ep,
    CyAnUsbEndPointConfig *		config_p
	) ;
#define CyAnUsbSetEndPointConfig(h, ep, config_p)	\
    CyAsUsbSetEndPointConfig((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (CyAsUsbEndPointConfig *)(config_p))

EXTERN CyAnReturnStatus_t
CyAnUsbGetEndPointConfig(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyAnUsbEndPointConfig *		config_p
	) ;
#define CyAnUsbGetEndPointConfig(h, ep, config_p)	\
    CyAsUsbGetEndPointConfig((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (CyAsUsbEndPointConfig *)(config_p))

/* Sync version of commit */
EXTERN CyAnReturnStatus_t
CyAnUsbCommitConfig(
	CyAnDeviceHandle		handle
	) ;
#define CyAnUsbCommitConfig(handle) CyAsUsbCommitConfig((CyAsDeviceHandle)(handle), 0, 0)

/* Async version of commit */
extern CyAnReturnStatus_t
CyAnUsbCommitConfigEX(
	CyAnDeviceHandle		handle,
	CyAnFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbCommitConfigEX(h, cb, client)	\
    CyAsUsbCommitConfig((CyAsDeviceHandle)(h), (CyAsFunctionCallback)(cb), (client))

EXTERN CyAnReturnStatus_t
CyAnUsbReadData(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyBool				pktread,
	uint32_t			dsize,
	uint32_t *			dataread,
	void *				data
	) ;
#define CyAnUsbReadData(h, ep, pkt, dsize, dataread, data_p)	\
    CyAsUsbReadData((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (pkt), (dsize), (dataread), (data_p))

EXTERN CyAnReturnStatus_t
CyAnUsbReadDataAsync(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyBool				pktread,
	uint32_t			dsize,
	void *				data,
	CyAnUsbIoCallback		callback
	) ;
#define CyAnUsbReadDataAsync(h, ep, pkt, dsize, data_p, cb)						\
    CyAsUsbReadDataAsync((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (pkt), (dsize), (data_p),	\
	    (CyAsUsbIoCallback)(cb))

EXTERN CyAnReturnStatus_t
CyAnUsbWriteData(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	uint32_t			dsize,
	void *				data
	) ;
#define CyAnUsbWriteData(h, ep, dsize, data_p)		\
    CyAsUsbWriteData((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (dsize), (data_p))

EXTERN CyAnReturnStatus_t
CyAnUsbWriteDataAsync(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	uint32_t			dsize,
	void *				data,
	CyBool				spacket,
	CyAnUsbIoCallback		callback
	) ;
#define CyAnUsbWriteDataAsync(h, ep, dsize, data_p, spacket, cb)						\
    CyAsUsbWriteDataAsync((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (dsize), (data_p), (spacket),	\
	    (CyAsUsbIoCallback)(cb))

EXTERN CyAnReturnStatus_t
CyAnUsbCancelAsync(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep
	) ;
#define CyAnUsbCancelAsync(h, ep) CyAsUsbCancelAsync((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep))

/* Sync version of set stall */
EXTERN CyAnReturnStatus_t
CyAnUsbSetStall(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyAnUsbFunctionCallback		cb,
	uint32_t			client
) ;
#define CyAnUsbSetStall(h, ep, cb, client)	\
    CyAsUsbSetStall_dep((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (CyAsUsbFunctionCallback)(cb), (client))

/* Async version of set stall */
extern CyAnReturnStatus_t
CyAnUsbSetStallEX(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyAnFunctionCallback		cb,
	uint32_t			client
) ;
#define CyAnUsbSetStallEX(h, ep, cb, client)	\
    CyAsUsbSetStall((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (CyAsFunctionCallback)(cb), (client))

/*Sync version of clear stall */
EXTERN CyAnReturnStatus_t
CyAnUsbClearStall(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyAnUsbFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbClearStall(h, ep, cb, client)	\
    CyAsUsbClearStall_dep((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (CyAsUsbFunctionCallback)(cb), (client))

/*Sync version of clear stall */
extern CyAnReturnStatus_t
CyAnUsbClearStallEX(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyAnFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbClearStallEX(h, ep, cb, client)	\
    CyAsUsbClearStall((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (CyAsFunctionCallback)(cb), (client))

/* Sync get stall */
EXTERN CyAnReturnStatus_t
CyAnUsbGetStall(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyBool *			stall_p
	) ;
#define CyAnUsbGetStall(handle, ep, stall_p) \
    CyAsUsbGetStall((CyAsDeviceHandle)(handle), (CyAsEndPointNumber_t)(ep), (stall_p), 0, 0)

/* Async get stall */
extern CyAnReturnStatus_t
CyAnUsbGetStallEX(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyBool *			stall_p,
	CyAnFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbGetStallEX(h, ep, stall_p, cb, client)	\
    CyAsUsbGetStall((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (stall_p), (CyAsFunctionCallback)(cb), (client))

/* Sync version of Set Nak */
EXTERN CyAnReturnStatus_t
CyAnUsbSetNak(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyAnUsbFunctionCallback		cb,
	uint32_t			client
) ;

#define CyAnUsbSetNak(h, ep, cb, client)		\
    CyAsUsbSetNak_dep((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (CyAsUsbFunctionCallback)(cb), (client))

/* Async version of Set Nak */
extern CyAnReturnStatus_t
CyAnUsbSetNakEX(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyAnFunctionCallback		cb,
	uint32_t			client
) ;
#define CyAnUsbSetNakEX(h, ep, cb, client)		\
    CyAsUsbSetNak((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (CyAsFunctionCallback)(cb), (client))

/* Sync version of clear nak */
EXTERN CyAnReturnStatus_t
CyAnUsbClearNak(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyAnUsbFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbClearNak(h, ep, cb, client)		\
    CyAsUsbClearNak_dep((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (CyAsUsbFunctionCallback)(cb), (client))

/* Sync version of clear nak */
extern CyAnReturnStatus_t
CyAnUsbClearNakEX(
	CyAnDeviceHandle		handle,
	CyAnEndPointNumber_t		ep,
	CyAnFunctionCallback		cb,
	uint32_t			client
	) ;
#define CyAnUsbClearNakEX(h, ep, cb, client)		\
    CyAsUsbClearNak((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (CyAsFunctionCallback)(cb), (client))

/* Sync Get NAK */
EXTERN CyAnReturnStatus_t
CyAnUsbGetNak(
    CyAnDeviceHandle		    handle,
    CyAnEndPointNumber_t	    ep,
    CyBool *			    nak_p
) ;
#define CyAnUsbGetNak(handle, ep, nak_p) \
    CyAsUsbGetNak((CyAsDeviceHandle)(handle), (CyAsEndPointNumber_t)(ep), (nak_p), 0, 0)

/* Async Get NAK */
EXTERN CyAnReturnStatus_t
CyAnUsbGetNakEX(
    CyAnDeviceHandle		    handle,
    CyAnEndPointNumber_t	    ep,
    CyBool *			    nak_p,
    CyAnFunctionCallback	    cb,
    uint32_t			    client
) ;
#define CyAnUsbGetNakEX(h, ep, nak_p, cb, client)	\
    CyAsUsbGetNak((CyAsDeviceHandle)(h), (CyAsEndPointNumber_t)(ep), (nak_p), (CyAsFunctionCallback)(cb), (client))

/* Sync remote wakup */
EXTERN CyAnReturnStatus_t
CyAnUsbSignalRemoteWakeup(
        CyAnDeviceHandle            handle
        ) ;
#define CyAnUsbSignalRemoteWakeup(handle) CyAsUsbSignalRemoteWakeup((CyAsDeviceHandle)(handle), 0, 0)

/* Async remote wakup */
EXTERN CyAnReturnStatus_t
CyAnUsbSignalRemoteWakeupEX(
        CyAnDeviceHandle            handle,
        CyAnFunctionCallback        cb,
        uint32_t                    client
        ) ;
#define CyAnUsbSignalRemoteWakeupEX(h, cb, client)	\
    CyAsUsbSignalRemoteWakeup((CyAsDeviceHandle)(h), (CyAsFunctionCallback)(cb), (client))

/* Only version of SetMSReportThreshold */
EXTERN CyAnReturnStatus_t
CyAnUsbSetMSReportThreshold(
        CyAnDeviceHandle            handle,
        uint32_t                    wr_sectors,
        uint32_t                    rd_sectors,
        CyAnFunctionCallback        cb,
        uint32_t                    client
        ) ;
#define CyAnUsbSetMSReportThreshold(h, wr_cnt, rd_cnt, cb, client)              \
    CyAsUsbSetMSReportThreshold((CyAsDeviceHandle)(h), wr_cnt, rd_cnt, (CyAsFunctionCallback)(cb), (client))

/* Select storage partitions to be enumerated. */
EXTERN CyAnReturnStatus_t
CyAnUsbSelectMSPartitions (
        CyAnDeviceHandle                handle,
        CyAnMediaType                   media,
        uint32_t                        device,
        CyAnUsbMSType_t                 type,
        CyAnFunctionCallback            cb,
        uint32_t                        client
        ) ;
#define CyAnUsbSelectMSPartitions(h, media, dev, type, cb, client)                              \
    CyAsUsbSelectMSPartitions_dep((CyAsDeviceHandle)(h), (CyAsMediaType)(media), (dev),        \
                (CyAsUsbMSType_t)(type), (CyAsFunctionCallback)(cb), (client))

#include "cyas_cplus_end.h"
#endif /*__doxygen__*/
#endif	/*_INCLUDED_CYANUSB_H_*/