msdscsi.c File Reference
SCSI interface for Mass Storage Devices (MSD).
License
Copyright 2018 Silicon Laboratories Inc. www.silabs.com
SPDX-License-Identifier: Zlib
The licensor of this software is Silicon Laboratories Inc.
This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
- The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
- Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
- This notice may not be removed or altered from any source distribution.
Definition in file
msdscsi.c
.
#include "
em_usb.h
"
#include "
msdscsi.h
"
#include "
msdbot.h
"
Functions |
|
bool | MSDSCSI_Init (USBH_Ep_TypeDef *out, USBH_Ep_TypeDef *in) |
MSDSCSI module initialization.
|
|
bool | MSDSCSI_Inquiry ( MSDSCSI_InquiryData_TypeDef *data) |
Issue a SCSI Inquiry command.
|
|
bool | MSDSCSI_Read10 (uint32_t lba, uint16_t sectors, void *data) |
Issue a SCSI Read(10) command.
|
|
bool | MSDSCSI_ReadCapacity ( MSDSCSI_ReadCapacityData_TypeDef *data) |
Issue a SCSI Read Capacity command.
|
|
bool | MSDSCSI_RequestSense ( MSDSCSI_RequestSenseData_TypeDef *data) |
Issue a SCSI Request Sense command.
|
|
bool | MSDSCSI_TestUnitReady (void) |
Issue a SCSI Test Unit Ready command.
|
|
bool | MSDSCSI_Write10 (uint32_t lba, uint16_t sectors, const void *data) |
Perform a SCSI Write(10) command.
|
|
Function Documentation
bool MSDSCSI_Init | ( | USBH_Ep_TypeDef * |
out,
|
USBH_Ep_TypeDef * |
in
|
||
) |
MSDSCSI module initialization.
- Parameters
-
[in] out
Pointer to an MSD bulk OUT endpoint structure. [in] in
Pointer to an MSD bulk IN endpoint structure.
- Returns
- Returns true on success, false otherwise.
Definition at line
170
of file
msdscsi.c
.
References MSDBOT_Init() , MSDBOT_STATUS_OK , SCSI_INQUIRYDATA_LEN , SCSI_READ10_LEN , SCSI_READCAPACITYDATA_LEN , SCSI_REQUESTSENSEDATA_LEN , and SCSI_WRITE10_LEN .
Referenced by MSDH_Init() .
bool MSDSCSI_Inquiry | ( | MSDSCSI_InquiryData_TypeDef * |
data
|
) |
Issue a SCSI Inquiry command.
- Parameters
-
[out] data
Inquiry response data buffer.
- Returns
- Returns true on success, false otherwise.
Definition at line
202
of file
msdscsi.c
.
References MSDBOT_Xfer() , and SCSI_INQUIRYDATA_LEN .
Referenced by MSDH_Init() .
bool MSDSCSI_Read10 | ( | uint32_t |
lba,
|
uint16_t |
sectors,
|
||
void * |
data
|
||
) |
Issue a SCSI Read(10) command.
- Parameters
-
[in] lba
Sector address (LBA) of first sector to read. [in] sectors
Number of sectors to read. [out] data
Data buffer through which data is returned to caller.
- Returns
- Returns true on success, false otherwise.
Definition at line
227
of file
msdscsi.c
.
References MSDSCSI_Read10_TypeDef::Lba , MSDBOT_Xfer() , SL_ALIGN , SL_ATTRIBUTE_ALIGN , and MSDSCSI_Read10_TypeDef::TransferLength .
Referenced by MSDH_ReadSectors() .
bool MSDSCSI_ReadCapacity | ( | MSDSCSI_ReadCapacityData_TypeDef * |
data
|
) |
Issue a SCSI Read Capacity command.
- Parameters
-
[out] data
Read Capacity response data buffer.
- Returns
- Returns true on success, false otherwise.
Definition at line
255
of file
msdscsi.c
.
References MSDSCSI_ReadCapacityData_TypeDef::LogicalBlockAddress , MSDSCSI_ReadCapacityData_TypeDef::LogicalBlockLength , MSDBOT_Xfer() , and SCSI_READCAPACITYDATA_LEN .
Referenced by MSDH_GetBlockSize() , MSDH_GetSectorCount() , MSDH_GetSectorSize() , and MSDH_Init() .
bool MSDSCSI_RequestSense | ( | MSDSCSI_RequestSenseData_TypeDef * |
data
|
) |
Issue a SCSI Request Sense command.
- Parameters
-
[out] data
Request Sense response data buffer.
- Returns
- Returns true on success, false otherwise.
Definition at line
281
of file
msdscsi.c
.
References MSDBOT_Xfer() , and SCSI_REQUESTSENSEDATA_LEN .
Referenced by MSDH_Init() .
bool MSDSCSI_TestUnitReady | ( | void |
|
) |
Issue a SCSI Test Unit Ready command.
- Returns
- Returns true if device ready, false if device not ready or cmd transfer error.
Definition at line
298
of file
msdscsi.c
.
References MSDBOT_STATUS_OK , and MSDBOT_Xfer() .
Referenced by MSDH_Init() .
bool MSDSCSI_Write10 | ( | uint32_t |
lba,
|
uint16_t |
sectors,
|
||
const void * |
data
|
||
) |
Perform a SCSI Write(10) command.
- Parameters
-
[in] lba
Sector address (LBA) of first sector to write. [in] sectors
Number of sectors to write. [out] data
Data buffer containing data to be written.
- Returns
- Returns true on success, false otherwise.
Definition at line
323
of file
msdscsi.c
.
References MSDSCSI_Write10_TypeDef::Lba , MSDBOT_Xfer() , SL_ALIGN , SL_ATTRIBUTE_ALIGN , and MSDSCSI_Write10_TypeDef::TransferLength .
Referenced by MSDH_WriteSectors() .