forked from mfulz_github/qmk_firmware
Add SCSICodes.h to the Class Driver Common folder, and automatically include it in both the Host and Device Mass Storage Class drivers. Delete existing version from the ClassDriver MassStorage device demo's /Lib/ folder.
This commit is contained in:
parent
31d8ebebc0
commit
a765f71727
|
@ -46,7 +46,6 @@
|
|||
#include "MassStorage.h"
|
||||
#include "Descriptors.h"
|
||||
#include "DataflashManager.h"
|
||||
#include "SCSI_Codes.h"
|
||||
|
||||
/* Macros: */
|
||||
/** Macro to set the current SCSI sense data to the given key, additional sense code and additional sense qualifier. This
|
||||
|
|
|
@ -139,7 +139,7 @@ int main(void)
|
|||
}
|
||||
|
||||
SCSI_Inquiry_Response_t InquiryData;
|
||||
if (MS_Host_GetInquiryData(&FlashDisk_MS_Interface, &InquiryData))
|
||||
if (MS_Host_GetInquiryData(&FlashDisk_MS_Interface, 0, &InquiryData))
|
||||
{
|
||||
printf("Error retreiving device Inquiry data.\r\n");
|
||||
LEDs_SetAllLEDs(LEDMASK_USB_ERROR);
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -47,7 +47,8 @@
|
|||
/* Includes: */
|
||||
#include "../../USB.h"
|
||||
#include "../Common/MassStorage.h"
|
||||
|
||||
#include "../Common/SCSICodes.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
/* Enable C linkage for C++ Compilers: */
|
||||
|
|
|
@ -310,11 +310,53 @@ uint8_t MS_Host_GetMaxLUN(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t* Max
|
|||
return ErrorCode;
|
||||
}
|
||||
|
||||
uint8_t MS_Host_GetInquiryData(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, SCSI_Inquiry_Response_t* InquiryData)
|
||||
uint8_t MS_Host_GetInquiryData(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t LUNIndex, SCSI_Inquiry_Response_t* InquiryData)
|
||||
{
|
||||
if ((USB_HostState != HOST_STATE_Configured) || !(MSInterfaceInfo->State.Active))
|
||||
return HOST_SENDCONTROL_DeviceDisconnect;
|
||||
|
||||
uint8_t ErrorCode = PIPE_RWSTREAM_NoError;
|
||||
|
||||
MS_CommandBlockWrapper_t SCSICommandBlock = (MS_CommandBlockWrapper_t)
|
||||
{
|
||||
.Signature = CBW_SIGNATURE,
|
||||
.Tag = MSInterfaceInfo->State.TransactionTag,
|
||||
.DataTransferLength = sizeof(SCSI_Inquiry_Response_t),
|
||||
.Flags = COMMAND_DIRECTION_DATA_IN,
|
||||
.LUN = LUNIndex,
|
||||
.SCSICommandLength = 6,
|
||||
.SCSICommandData =
|
||||
{
|
||||
SCSI_CMD_INQUIRY,
|
||||
0x00, // Reserved
|
||||
0x00, // Reserved
|
||||
0x00, // Reserved
|
||||
sizeof(SCSI_Inquiry_Response_t), // Allocation Length
|
||||
0x00 // Unused (control)
|
||||
}
|
||||
};
|
||||
|
||||
MassStore_SendCommand(MSInterfaceInfo, &SCSICommandBlock);
|
||||
|
||||
if ((ErrorCode = MassStore_WaitForDataReceived()) != PIPE_RWSTREAM_NoError)
|
||||
{
|
||||
Pipe_Freeze();
|
||||
return ErrorCode;
|
||||
}
|
||||
|
||||
if ((ErrorCode = MassStore_SendReceiveData(MSInterfaceInfo, (uint8_t*)InquiryPtr)) != PIPE_RWSTREAM_NoError)
|
||||
{
|
||||
Pipe_Freeze();
|
||||
return ErrorCode;
|
||||
}
|
||||
|
||||
if ((ErrorCode = MassStore_GetReturnedStatus(MSInterfaceInfo)) != PIPE_RWSTREAM_NoError)
|
||||
{
|
||||
Pipe_Freeze();
|
||||
return ErrorCode;
|
||||
}
|
||||
|
||||
return ErrorCode;
|
||||
}
|
||||
|
||||
uint8_t MS_Host_TestUnitReady(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t LUNIndex, bool* DeviceReady);
|
||||
|
|
|
@ -47,6 +47,7 @@
|
|||
/* Includes: */
|
||||
#include "../../USB.h"
|
||||
#include "../Common/MassStorage.h"
|
||||
#include "../Common/SCSICodes.h"
|
||||
|
||||
/* Enable C linkage for C++ Compilers: */
|
||||
#if defined(__cplusplus)
|
||||
|
@ -210,8 +211,8 @@
|
|||
*/
|
||||
uint8_t MS_Host_GetMaxLUN(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t* MaxLUNIndex) ATTR_NON_NULL_PTR_ARG(1, 2);
|
||||
|
||||
uint8_t MS_Host_GetInquiryData(USB_ClassInfo_MS_Host_t* MSInterfaceInfo,
|
||||
SCSI_Inquiry_Response_t* InquiryData) ATTR_NON_NULL_PTR_ARG(1, 2);
|
||||
uint8_t MS_Host_GetInquiryData(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t LUNIndex,
|
||||
SCSI_Inquiry_Response_t* InquiryData) ATTR_NON_NULL_PTR_ARG(1, 3);
|
||||
|
||||
uint8_t MS_Host_TestUnitReady(USB_ClassInfo_MS_Host_t* MSInterfaceInfo, uint8_t LUNIndex,
|
||||
bool* DeviceReady) ATTR_NON_NULL_PTR_ARG(1, 3);
|
||||
|
|
Loading…
Reference in New Issue