- Main Page
- Modules
- Data Structures
- Files

- File List
- Globals

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_MscInitStructApp * | pMscAppClassHandle
| MSc application class handle.
typedef struct CSL_MscLunAttribApp | CSL_MscLunAttribApp
| MSC application Logical unit attribute structure.
typedef CSL_MscLunAttribApp * | pMscAppLunAttribHandle
| 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_MscClassStruct * | pMscClassHandle
| 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