Data Structures | Defines | Typedefs | Enumerations | Functions
csl_msc.h File Reference

USB MSC functional layer API header file. More...

#include <cslr.h>
#include <csl_error.h>
#include <csl_types.h>
#include <cslr_usb.h>
#include <csl_usb.h>
#include <soc.h>
#include <csl_general.h>

Go to the source code of this file.

Data Structures

struct  CSL_MscRequestStruct
 MSC control request structure. More...
struct  CSL_MscInitStructApp
 MSC application data structure. More...
struct  CSL_MscLunAttribApp
 MSC application Logical unit attribute structure. More...
struct  CSL_MscLogicalUnit
 MSC Logical unit structure. More...
struct  CSL_MscObject
 MSC Mass Storage Object structure. More...
struct  CSL_MscCtrlObject
 MSC Control Object structure. More...
struct  CSL_MscClassStruct
 MSC Control Object structure. More...

Defines

#define CSL_MSC_CBW_0   (1)
 USB MSC Command Block Word definitions.
#define CSL_MSC_CBW_1   (2)
#define CSL_MSC_CBW_2   (3)
#define CSL_MSC_CBW_3   (4)
#define CSL_MSC_CBW_4   (5)
#define CSL_MSC_CBW_5   (6)
#define CSL_MSC_CBW_6   (7)
#define CSL_MSC_CBW_7   (8)
#define CSL_MSC_CBW_8   (9)
#define CSL_MSC_CBW_9   (10)
#define CSL_MSC_CBW_10   (11)
#define CSL_MSC_CBW_11   (12)
#define CSL_MSC_CBW_12   (13)
#define CSL_MSC_CBW_13   (14)
#define CSL_MSC_CBW_14   (15)
#define CSL_MSC_CBW_15   (16)
#define CSL_MSC_CSW_2   (3)
 USB MSC Command Status Word definitions.
#define CSL_MSC_CSW_3   (4)
#define CSL_MSC_CSW_4   (5)
#define CSL_MSC_CSW_5   (6)
#define CSL_MSC_CSW_6   (7)
#define CSL_MSC_CBW_SIGNATURE   (0x43425355)
#define CSL_MSC_CSW_SIGNATURE   (0x53425355)
#define CSL_MSC_CBW_DATADIR_IN   (0x80)
#define CSL_MSC_CBW_DATADIR_OUT   (0x0)
#define CSL_MSC_CBW_DIRBIT_MASK   (0x80)
#define CSL_MSC_MEDIA_PRESENT   (0x1)
 USB MSC media state definitions.
#define CSL_MSC_MEDIA_LOCKED   (0x2)
#define CSL_MSC_MEDIA_WRITEPENDING   (0x4)
#define CSL_MSC_MEDIA_BAD   (0x8)
#define CSL_MSC_MEDIA_WRITEENABLE   (0x0001)
#define CSL_MSC_DEVICE_DESCRIPTOR_TYPE   (0x01)
 USB MSC Descriptor Type Values.
#define CSL_MSC_DEVICE_QUAL_DESCRIPTOR_TYPE   (0x06)
#define CSL_MSC_CONFIGURATION_DESCRIPTOR_TYPE   (0x02)
#define CSL_MSC_OTHERSPEED_CFG_DESCRIPTOR_TYPE   (0x07)
#define CSL_MSC_STRING_DESCRIPTOR_TYPE   (0x03)
#define CSL_MSC_INTERFACE_DESCRIPTOR_TYPE   (0x04)
#define CSL_MSC_ENDPOINT_DESCRIPTOR_TYPE   (0x05)
#define CSL_MSC_POWER_DESCRIPTOR_TYPE   (0x06)
#define CSL_MSC_HID_DESCRIPTOR_TYPE   (0x21)
#define CSL_MSC_FEATURE_ENDPOINT_STALL   (0x0000)
 USB MSC Defined Feature selectors.
#define CSL_MSC_FEATURE_REMOTE_WAKEUP   (0x0001)
#define CSL_MSC_VERIFY_PASSED   (0x0)
 USB MSC status and size definitions.
#define CSL_MSC_VERIFY_FAILED   (0x1)
#define CSL_MSC_UNIT_REMOVEABLE   (0x1)
#define CSL_MSC_CURRDEV_STAT   (0x01)
#define CSL_MSC_CURRINTRF_STAT   (0x00)
#define CSL_MSC_NO_ENDPTOBJECT   (5)
#define CSL_MSC_DEVDESC_LEN   (10)
#define CSL_MSC_CFGDESC_TOTAL_LEN   (17)
#define CSL_MSC_DEVQUALDESC_LEN   (6)
#define CSL_MSC_CONFDESC_LEN   (6)
#define CSL_MSC_MS_INTDESC_LEN   (6)
#define CSL_MSC_MS_BULKOUT_ENDPTDESC_LEN   (5)
#define CSL_MSC_MS_BULKIN_ENDPTDESC_LEN   (5)
#define CSL_MSC_STRDESC_LANGID_LEN   (4)
#define CSL_MSC_SCSI_INQUIRY_LEN   (50)
#define CSL_MSC_SENSEDATA_LEN   (15)
#define CSL_MSC_LUN_MAX   (4)
#define CSL_MSC_CBWSIZE   (17)
#define CSL_MSC_CSWSIZE   (8)
#define CSL_MSC_READCAP   (6)
#define CSL_MSC_CTRLBUFF_LEN   (5)
#define CSL_MSC_SCSI_INQUIRY_CONF_LEN   (24)
#define CSL_MSC_DEVICE_CLASS_STORAGE   (0x08)
#define CSL_MSC_SCSI_DATA_PROTECT   (0x0007)
#define CSL_MSC_REQUEST_GET_STATUS   (0x8000)
 Symbolic constants for USB MSC requests.
#define CSL_MSC_REQUEST_CLEAR_FEATURE   (0x0001)
#define CSL_MSC_REQUEST_SET_FEATURE   (0x0003)
#define CSL_MSC_REQUEST_SET_ADDRESS   (0x0005)
#define CSL_MSC_REQUEST_GET_DESCRIPTOR   (0x8006)
#define CSL_MSC_REQUEST_SET_DESCRIPTOR   (0x0007)
#define CSL_MSC_REQUEST_GET_CONFIGURATION   (0x8008)
#define CSL_MSC_REQUEST_SET_CONFIGURATION   (0x0009)
#define CSL_MSC_REQUEST_GET_INTERFACE   (0x800A)
#define CSL_MSC_REQUEST_SET_INTERFACE   (0x000B)
#define CSL_MSC_REQUEST_SYNC_FRAME   (0x800C)
#define CSL_MSC_REQUEST_BOT_MSC_RESET   (0x20FF)
#define CSL_MSC_REQUEST_GET_MAX_LUN   (0xA0FE)
#define CSL_MSC_REQUEST_TYPE_BASE   (0x80)
#define CSL_MSC_REQUEST_TYPE_DEVICE_STATUS   (0x0)
#define CSL_MSC_REQUEST_TYPE_INTERFACE_STATUS   (0x1)
#define CSL_MSC_REQUEST_TYPE_EP_STATUS   (0x2)
#define CSL_MSC_DEVICE_SUSPENDED   (0x01)
 MSC Status query API return values.
#define CSL_MSC_DEVICE_NOT_SUSPENDED   (0x0)
#define CSL_MSC_LUN_LOCKED   (0x01)
#define CSL_MSC_LUN_NOT_LOCKED   (0x0)
#define CSL_MSC_ACTIVITY_PRESENT   (0x01)
#define CSL_MSC_ACTIVITY_NOT_PRESENT   (0x0)
#define CSL_MSC_16BIT_MASK   (0xFFFF)
#define CSL_MSC_16BIT_SHIFT   (16)
#define CSL_MSC_24BIT_SHIFT   (24)
#define CSL_MSC_8BIT_MASK   (0xFF)
#define CSL_MSC_8BIT_HIGH_MASK   (0xFF00)
#define CSL_MSC_8BIT_SHIFT   (8)
#define CSL_MSC_UNICODE_SIZE   (66)
#define CSL_MSC_DEVICE_DESC_DEFLEN   (18)
#define CSL_MSC_DEVICE_DESC0_DEFVAL   (0x0000)
#define CSL_MSC_DEVICE_DESC2_DEFVAL   (0x0200)
#define CSL_MSC_DEVICE_DESC3_DEFVAL   (0x0000)
#define CSL_MSC_DEVICE_DESC4_DEFVAL   (0x4000)
#define CSL_MSC_DEVICE_DESC5_DEFVAL   (0x0451)
#define CSL_MSC_DEVICE_DESC6_DEFVAL   (0x9010)
#define CSL_MSC_DEVICE_DESC7_DEFVAL   (0x0001)
#define CSL_MSC_DEVICE_DESC8_DEFVAL   (0x0201)
#define CSL_MSC_DEVICE_DESC9_DEFVAL   (0x0103)
#define CSL_MSC_DEVICE_QUAL_DESC_DEFLEN   (10)
#define CSL_MSC_DEVICE_QUAL_DESC0_DEFVAL   (0x0000)
#define CSL_MSC_DEVICE_QUAL_DESC2_DEFVAL   (0x0200)
#define CSL_MSC_DEVICE_QUAL_DESC3_DEFVAL   (0x0000)
#define CSL_MSC_DEVICE_QUAL_DESC4_DEFVAL   (0x4000)
#define CSL_MSC_DEVICE_QUAL_DESC5_DEFVAL   (0x0001)
#define CSL_MSC_CONF_DESC_DEFLEN   (9)
#define CSL_MSC_CONF_DESC0_DEFVAL   (0x0000)
#define CSL_MSC_CONF_DESC2_DEFVAL   (32)
#define CSL_MSC_CONF_DESC3_DEFVAL   (0x0101)
#define CSL_MSC_CONF_DESC4_DEFVAL   (0xC004)
#define CSL_MSC_CONF_DESC5_DEFVAL   (50)
#define CSL_MSC_INTERFACE_DESC_DEFLEN   (9)
#define CSL_MSC_INTERFACE_DESC0_DEFVAL   (0x0000)
#define CSL_MSC_INTERFACE_DESC2_DEFVAL   (0x0000)
#define CSL_MSC_INTERFACE_DESC3_DEFVAL   ((CSL_MSC_DEVICE_CLASS_STORAGE<<8) | 2)
#define CSL_MSC_INTERFACE_DESC4_DEFVAL   (0x5006)
#define CSL_MSC_INTERFACE_DESC5_DEFVAL   (0x05)
#define CSL_MSC_BULKOUTEP_DESC_DEFLEN   (7)
#define CSL_MSC_BULKOUTEP_DESC0_DEFVAL   (0x0000)
#define CSL_MSC_BULKOUTEP_DESC2_DEFVAL   (0x0202)
#define CSL_MSC_BULKOUTEP_DESC3_DEFVAL   (0x0040)
#define CSL_MSC_BULKOUTEP_DESC4_DEFVAL   (0x00)
#define CSL_MSC_BULKINEP_DESC_DEFLEN   (7)
#define CSL_MSC_BULKINEP_DESC0_DEFVAL   (0x0000)
#define CSL_MSC_BULKINEP_DESC2_DEFVAL   (0x0282)
#define CSL_MSC_BULKINEP_DESC3_DEFVAL   (0x0040)
#define CSL_MSC_BULKINEP_DESC4_DEFVAL   (0x00)
#define CSL_MSC_HS_CFG_DESC0_DEFVAL   (0x0000)
#define CSL_MSC_HS_CFG_DESC2_DEFVAL   (32)
#define CSL_MSC_HS_CFG_DESC3_DEFVAL   (0x0101)
#define CSL_MSC_HS_CFG_DESC4_DEFVAL   (0xC004)
#define CSL_MSC_HS_CFG_DESC5_DEFVAL   (0x0932)
#define CSL_MSC_HS_CFG_DESC6_DEFVAL   (CSL_MSC_INTERFACE_DESCRIPTOR_TYPE)
#define CSL_MSC_HS_CFG_DESC7_DEFVAL   (0x0200)
#define CSL_MSC_HS_CFG_DESC8_DEFVAL   (0x0600 | CSL_MSC_DEVICE_CLASS_STORAGE)
#define CSL_MSC_HS_CFG_DESC9_DEFVAL   (0x0550)
#define CSL_MSC_HS_CFG_DESC10_DEFVAL   ((CSL_MSC_ENDPOINT_DESCRIPTOR_TYPE<<8) | 7)
#define CSL_MSC_HS_CFG_DESC11_DEFVAL   (0x0202)
#define CSL_MSC_HS_CFG_DESC12_DEFVAL   (0x0200)
#define CSL_MSC_HS_CFG_DESC13_DEFVAL   (0x0700)
#define CSL_MSC_HS_CFG_DESC14_DEFVAL   (0x8100 | CSL_MSC_ENDPOINT_DESCRIPTOR_TYPE)
#define CSL_MSC_HS_CFG_DESC15_DEFVAL   (0x0002)
#define CSL_MSC_HS_CFG_DESC16_DEFVAL   (0x0002)
#define CSL_MSC_FS_CFG_DESC0_DEFVAL   (0x0000)
#define CSL_MSC_FS_CFG_DESC2_DEFVAL   (32)
#define CSL_MSC_FS_CFG_DESC3_DEFVAL   (0x0101)
#define CSL_MSC_FS_CFG_DESC4_DEFVAL   (0xC004)
#define CSL_MSC_FS_CFG_DESC5_DEFVAL   (0x0932)
#define CSL_MSC_FS_CFG_DESC6_DEFVAL   (CSL_MSC_INTERFACE_DESCRIPTOR_TYPE)
#define CSL_MSC_FS_CFG_DESC7_DEFVAL   (0x0200)
#define CSL_MSC_FS_CFG_DESC8_DEFVAL   (0x0600 | CSL_MSC_DEVICE_CLASS_STORAGE)
#define CSL_MSC_FS_CFG_DESC9_DEFVAL   (0x0550)
#define CSL_MSC_FS_CFG_DESC10_DEFVAL   ((CSL_MSC_ENDPOINT_DESCRIPTOR_TYPE<<8) | 7)
#define CSL_MSC_FS_CFG_DESC11_DEFVAL   (0x0202)
#define CSL_MSC_FS_CFG_DESC12_DEFVAL   (0x0040)
#define CSL_MSC_FS_CFG_DESC13_DEFVAL   (0x0700)
#define CSL_MSC_FS_CFG_DESC14_DEFVAL   (0x8100 | CSL_MSC_ENDPOINT_DESCRIPTOR_TYPE)
#define CSL_MSC_FS_CFG_DESC15_DEFVAL   (0x4002)
#define CSL_MSC_FS_CFG_DESC16_DEFVAL   (0x0000)
#define CSL_MSC_LANGID_DEFLEN   (4)
#define CSL_MSC_LANGID0_DEFVAL   (0x0000)
#define CSL_MSC_LANGID2_DEFVAL   (0x0409)
#define CSL_MSC_LANGID3_DEFVAL   (0x0000)
#define CSL_MSC_SENSE_DATA0_DEFVAL   (26)
#define CSL_MSC_SENSE_DATA1_DEFVAL   (0)
#define CSL_MSC_SENSE_DATA2_DEFVAL   (0x0070)
#define CSL_MSC_SENSE_DATA3_DEFVAL   (0x0000)
#define CSL_MSC_SENSE_DATA4_DEFVAL   (0x0000)
#define CSL_MSC_SENSE_DATA5_DEFVAL   ((11<<8) | 0)
#define CSL_MSC_MODESENSE_DATA0_DEFVAL   (0x08)
#define CSL_MSC_MODESENSE_DATA1_DEFVAL   (0x0)
#define CSL_MSC_MODESENSE_DATA2_DEFVAL   (0x03)
#define CSL_MSC_MODESENSE_DATA3_DEFVAL   (0x0)
#define CSL_MSC_MODESENSE_DATA4_DEFVAL   (0x0)
#define CSL_MSC_READ_CAPACITY0_DEFVAL   (8)
#define CSL_MSC_CSW0_DEFVAL   (0)
#define CSL_MSC_CSW1_DEFVAL   (0x5355)
#define CSL_MSC_CSW2_DEFVAL   (0x5342)
#define CSL_MSC_STORAGE_STATE_RESET   (0)
 MSC Storage state macros.
#define CSL_MSC_STORAGE_STATE_WAIT_FOR_CBW   (1)
#define CSL_MSC_STORAGE_STATE_SENDING_STALL   (2)
#define CSL_MSC_STORAGE_STATE_SENDING_DATA   (3)
#define CSL_MSC_STORAGE_STATE_SENDING_CSW   (4)
#define CSL_MSC_STORAGE_STATE_READ   (5)
#define CSL_MSC_STORAGE_STATE_WRITE   (6)
#define CSL_MSC_STORAGE_STATE_SENDING_SHORT_PKT   (7)
#define CSL_MSC_STATE_RESET_DATA_SIZE   (31)
#define CSL_MSC_CBW_DATA_SIZE   (31)
#define CSL_MSC_CSW_DATA_SIZE   (13)
#define CSL_MSC_SCSI_COMMAND_TEST_UNIT_READY   (0x00)
 MSC SCSI commands.
#define CSL_MSC_SCSI_COMMAND_REQUEST_SENSE   (0x03)
#define CSL_MSC_SCSI_COMMAND_FORMAT_UNIT   (0x04)
#define CSL_MSC_SCSI_COMMAND_INQUIRY   (0x12)
#define CSL_MSC_SCSI_COMMAND_MODE_SELECT_6   (0x15)
#define CSL_MSC_SCSI_COMMAND_RESERVE_6   (0x16)
#define CSL_MSC_SCSI_COMMAND_RELEASE_6   (0x17)
#define CSL_MSC_SCSI_COMMAND_MODE_SENSE_6   (0x1A)
#define CSL_MSC_SCSI_COMMAND_MODE_SENSE_10   (0x5A)
#define CSL_MSC_SCSI_COMMAND_START_STOP_UNIT   (0x1B)
#define CSL_MSC_SCSI_COMMAND_PREVENT_ALLOW_MEDIA_REMOVAL   (0x1E)
#define CSL_MSC_SCSI_COMMAND_READ_CAPACITY   (0x25)
#define CSL_MSC_SCSI_COMMAND_READ_10   (0x28)
#define CSL_MSC_SCSI_COMMAND_WRITE_10   (0x2A)
#define CSL_MSC_SCSI_COMMAND_VERIFY_10   (0x2F)
#define CSL_MSC_SCSI_COMMAND_SYNCHRONIZE_CACHE   (0x35)
#define CSL_MSC_SCSI_COMMAND_WRITE_BUFFER   (0x3B)
#define CSL_MSC_SCSI_COMMAND_PERSISTENT_RESERVE_IN   (0x5E)
#define CSL_MSC_SCSI_COMMAND_PERSISTENT_RESERVE_OUT   (0x5F)
#define CSL_MSC_SCSI_SENSEKEY_NO_SENSE   (0x00)
 MSC SCSI sense keys.
#define CSL_MSC_SCSI_SENSEKEY_RECOVERED_ERROR   (0x01)
#define CSL_MSC_SCSI_SENSEKEY_NOT_READY   (0x02)
#define CSL_MSC_SCSI_SENSEKEY_MEDIA_ERROR   (0x03)
#define CSL_MSC_SCSI_SENSEKEY_HARDWARE_ERROR   (0x04)
#define CSL_MSC_SCSI_SENSEKEY_ILLEGAL_REQUEST   (0x05)
#define CSL_MSC_SCSI_SENSEKEY_UNIT_ATTENTION   (0x06)
#define CSL_MSC_SCSI_SENSEKEY_DATA_PROTECT   (0x07)
#define CSL_MSC_SCSI_SENSEKEY_BLANK_CHECK   (0x08)
#define CSL_MSC_SCSI_SENSEKEY_VENDOR_SPECIFIC   (0x09)
#define CSL_MSC_SCSI_SENSEKEY_COPY_ABORTED   (0x0A)
#define CSL_MSC_SCSI_SENSEKEY_ABORTED_COMMAND   (0x0B)
#define CSL_MSC_SCSI_SENSEKEY_EQUAL   (0x0C)
#define CSL_MSC_SCSI_SENSEKEY_VOLUME_OVERFLOW   (0x0D)
#define CSL_MSC_SCSI_SENSEKEY_MISCOMPARE   (0x0E)
#define CSL_MSC_SCSI_SENSEKEY_RESERVED   (0x0F)
#define CSL_MSC_SCSI_ASC_MISCOMPARE_VERIFY   (0x001D)
#define CSL_MSC_SCSI_ASC_NO_ADDITIONAL_SENSE_INFORMATION   (0x0000)
 MSC SCSI additional sense keys.
#define CSL_MSC_SCSI_ASC_MEDIA_NOT_PRESENT   (0x003A)
#define CSL_MSC_SCSI_ASC_INVALID_COMMAND_OPERATION_CODE   (0x0020)
#define CSL_MSC_SCSI_ASC_MEDIA_MAY_HAVE_CHANGED   (0x0028)
#define CSL_MSC_SCSI_ASC_MEDIA_MANUALINTERVENTION_REQUIRED   (0x0004)
#define CSL_MSC_SCSI_ASC_MEDIA_OUTOFRANGE   (0x0021)
#define CSL_MSC_SCSI_ASC_WRITE_PROTECTED   (0x0027)
#define CSL_MSC_SCSI_ASC_MEDIA_REMOVAL_PREVENTED   (0x0253)
#define CSL_MSC_CSW_STATUS_COMMAND_PASSED   (0x00)
 MSC CSW status macros.
#define CSL_MSC_CSW_STATUS_COMMAND_FAILED   (0x01)
#define CSL_MSC_CSW_STATUS_PHASE_ERROR   (0x02)
#define CSL_MSC_RC_1   (2)
#define CSL_MSC_RC_2   (3)
#define CSL_MSC_RC_3   (4)
#define CSL_MSC_RC_4   (5)
#define CSL_MSC_SSD_2   (3)
#define CSL_MSC_SSD_7   (8)
#define CSL_SCSI_DATA0_DEFVAL   (96)
#define CSL_SCSI_DATA1_DEFVAL   (0x0)
#define CSL_SCSI_DATA2_DEFVAL   (0x8000)
#define CSL_SCSI_DATA3_DEFVAL   (0x0200)
#define CSL_SCSI_DATA4_DEFVAL   (92)
#define CSL_SCSI_DATA5_DEFVAL   (0x0000)
#define CSL_SCSI_DATA30_DEFVAL   (0x0000)
#define CSL_SCSI_DATA31_DEFVAL   (0x2002)
#define CSL_SCSI_DATA32_DEFVAL   (0x3802)
#define CSL_SCSI_DATA_NULL_VAL   (0x0000)
#define CSL_SCSI_DATA_SIZE1   (6)
#define CSL_SCSI_DATA_SIZE2   (30)
#define CSL_SCSI_DATA_SIZE3   (33)
#define CSL_SCSI_DATA_SIZE4   (50)
#define CSL_MSC_ERROR_BASE   (CSL_EUSB_FIRST)
#define CSL_MSC_INVALID_REQUEST_HANDLER   (CSL_MSC_ERROR_BASE - 1)
#define CSL_MSC_REQUEST_ARGS
 MSC Request arguments.

Typedefs

typedef struct CSL_MscRequestStruct CSL_MscRequestStruct
 MSC control request structure.
typedef struct CSL_MscInitStructApp CSL_MscInitStructApp
 MSC application data structure.
typedef CSL_MscInitStructApppMscAppClassHandle
 MSc application class handle.
typedef struct CSL_MscLunAttribApp CSL_MscLunAttribApp
 MSC application Logical unit attribute structure.
typedef CSL_MscLunAttribApppMscAppLunAttribHandle
 MSc application Lun attribute handle.
typedef CSL_MscRequestRet(* fpMSC_REQ_HANDLER )(CSL_MSC_REQUEST_ARGS)
 MSC request handler function pointer.
typedef struct CSL_MscLogicalUnit CSL_MscLogicalUnit
 MSC Logical unit structure.
typedef struct CSL_MscObject CSL_MscObject
 MSC Mass Storage Object structure.
typedef struct CSL_MscCtrlObject CSL_MscCtrlObject
 MSC Control Object structure.
typedef struct CSL_MscClassStruct CSL_MscClassStruct
 MSC Control Object structure.
typedef CSL_MscClassStructpMscClassHandle
 MSc class handle.

Enumerations

enum  CSL_MscRequestRet {
  CSL_MSC_REQUEST_DONE = 0,
  CSL_MSC_REQUEST_STALL,
  CSL_MSC_REQUEST_SEND_ACK,
  CSL_MSC_REQUEST_GET_ACK,
  CSL_MSC_REQUEST_DATA_IN,
  CSL_MSC_REQUEST_DATA_OUT
}
 This Enum defines the Msc request return values.
enum  CSL_MscMediaStatus {
  CSL_MSC_MEDIACCESS_OVERFLOW,
  CSL_MSC_MEDIACCESS_SUCCESS,
  CSL_MSC_MEDIACCESS_NOTPRESENT,
  CSL_MSC_MEDIACCESS_WRITEPROTECT,
  CSL_MSC_MEDIACCESS_BADMEDIA
}
 This Enum defines the Msc media access status. More...
enum  CSL_MscMediaLockStatus {
  CSL_MSC_UNLOCK = 0,
  CSL_MSC_LOCK
}
 This Enum defines the Msc media lock status. More...

Functions

CSL_Status MSC_Open (pMscAppClassHandle pAppClassHandle)
CSL_Status MSC_OpenFullspeed (pMscAppClassHandle pAppClassHandle)
static CSL_Status MSC_Setup (pMscAppClassHandle pAppClassHandle, Bool usbSpeedCfg)
CSL_Status MSC_Close (pMscAppClassHandle pAppClassHandle)
CSL_Status MSC_SetLunAttr (pMscAppClassHandle pAppClassHandle, CSL_MscLunAttribApp *lunHandle, Uint16 lunNum)
CSL_Status MSC_Ctrl (void *pMSC)
CSL_Status MSC_Bulk (void *pMSC)
Uint16 MSC_GetLunLockedStatus (void *pMSC, Uint16 lunNum)
Uint16 MSC_GetactivityFlagStatus (void *pMSC)
Uint16 MSC_GetsuspendFlagStatus (void *pMSC)
static CSL_Status MSC_initCtrlDesc (CSL_MscCtrlObject *pCtrlHandle)
static CSL_Status MSC_initMscVal (CSL_MscObject *pMscHandle)
CSL_Status MSC_HandleStateWaitForCBW (CSL_MscObject *pMscHandle, pUsbEpHandle hUsbOutEp, pUsbEpHandle hUsbInEp)
CSL_Status MSC_ExecuteRead (CSL_MscObject *pMscHandle, Uint16 lunNum, Uint16 first)
CSL_Status MSC_ExecuteWrite (CSL_MscObject *pMscHandle, Uint16 lunNum, Uint16 first)
CSL_Status MSC_HandleTestUnitReady (CSL_MscObject *pMscHandle, pUsbEpHandle hUsbInEp, Uint16 logicalUnit)
CSL_Status MSC_HandlePreventAllowMediaRemoval (CSL_MscObject *pMscHandle, pUsbEpHandle hUsbInEp, Uint16 logicalUnit)
CSL_Status MSC_HandleReadCapacity (CSL_MscObject *pMscHandle, pUsbEpHandle hUsbInEp, Uint16 logicalUnit)
CSL_MscRequestRet MSC_reqGetDescriptor (CSL_UsbDevNum devNum, CSL_UsbSetupStruct *usbSetup, pUsbEpHandle hInEp, pUsbEpHandle hOutEp, void *pMsc)
CSL_MscRequestRet MSC_reqBotMscReset (CSL_UsbDevNum devNum, CSL_UsbSetupStruct *usbSetup, pUsbEpHandle hInEp, pUsbEpHandle hOutEp, void *pMsc)
CSL_Status MSC_sendCswWithPhaseError (CSL_MscObject *pMscHandle, pUsbEpHandle hUsbInEp)
CSL_Status MSC_handleDataDirMisMatch (CSL_MscObject *pMscHandle, Uint16 dataDir)

Detailed Description

USB MSC functional layer API header file.

Path: \(CSLPATH)\ inc