MdeModulePkg: Apply uncrustify changes
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdeModulePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
committed by
mergify[bot]
parent
7c7184e201
commit
1436aea4d5
@@ -6,7 +6,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
|
||||
#include "ScsiBus.h"
|
||||
|
||||
//
|
||||
@@ -21,16 +20,15 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gScsiBusComponentName
|
||||
//
|
||||
// EFI Component Name 2 Protocol
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gScsiBusComponentName2 = {
|
||||
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ScsiBusComponentNameGetDriverName,
|
||||
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ScsiBusComponentNameGetControllerName,
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gScsiBusComponentName2 = {
|
||||
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME)ScsiBusComponentNameGetDriverName,
|
||||
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)ScsiBusComponentNameGetControllerName,
|
||||
"en"
|
||||
};
|
||||
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mScsiBusDriverNameTable[] = {
|
||||
{ "eng;en", (CHAR16 *) L"SCSI Bus Driver" },
|
||||
{ NULL , NULL }
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mScsiBusDriverNameTable[] = {
|
||||
{ "eng;en", (CHAR16 *)L"SCSI Bus Driver" },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -160,11 +158,11 @@ ScsiBusComponentNameGetDriverName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiBusComponentNameGetControllerName (
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
|
@@ -7,11 +7,9 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
|
||||
#include "ScsiBus.h"
|
||||
|
||||
|
||||
EFI_DRIVER_BINDING_PROTOCOL gSCSIBusDriverBinding = {
|
||||
EFI_DRIVER_BINDING_PROTOCOL gSCSIBusDriverBinding = {
|
||||
SCSIBusDriverBindingSupported,
|
||||
SCSIBusDriverBindingStart,
|
||||
SCSIBusDriverBindingStop,
|
||||
@@ -80,8 +78,8 @@ NotifyFunction (
|
||||
**/
|
||||
VOID *
|
||||
AllocateAlignedBuffer (
|
||||
IN SCSI_IO_DEV *ScsiIoDevice,
|
||||
IN UINTN BufferSize
|
||||
IN SCSI_IO_DEV *ScsiIoDevice,
|
||||
IN UINTN BufferSize
|
||||
)
|
||||
{
|
||||
return AllocateAlignedPages (EFI_SIZE_TO_PAGES (BufferSize), ScsiIoDevice->ScsiIo.IoAlign);
|
||||
@@ -99,8 +97,8 @@ AllocateAlignedBuffer (
|
||||
**/
|
||||
VOID
|
||||
FreeAlignedBuffer (
|
||||
IN VOID *Buffer,
|
||||
IN UINTN BufferSize
|
||||
IN VOID *Buffer,
|
||||
IN UINTN BufferSize
|
||||
)
|
||||
{
|
||||
if (Buffer != NULL) {
|
||||
@@ -120,12 +118,12 @@ FreeAlignedBuffer (
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
InitializeScsiBus(
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
InitializeScsiBus (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS Status;
|
||||
|
||||
//
|
||||
// Install driver model protocol(s).
|
||||
@@ -143,7 +141,6 @@ InitializeScsiBus(
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Test to see if this driver supports ControllerHandle.
|
||||
|
||||
@@ -171,12 +168,12 @@ SCSIBusDriverBindingSupported (
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_SCSI_PASS_THRU_PROTOCOL *PassThru;
|
||||
EFI_EXT_SCSI_PASS_THRU_PROTOCOL *ExtPassThru;
|
||||
UINT64 Lun;
|
||||
UINT8 *TargetId;
|
||||
SCSI_TARGET_ID ScsiTargetId;
|
||||
EFI_STATUS Status;
|
||||
EFI_SCSI_PASS_THRU_PROTOCOL *PassThru;
|
||||
EFI_EXT_SCSI_PASS_THRU_PROTOCOL *ExtPassThru;
|
||||
UINT64 Lun;
|
||||
UINT8 *TargetId;
|
||||
SCSI_TARGET_ID ScsiTargetId;
|
||||
|
||||
TargetId = &ScsiTargetId.ScsiId.ExtScsi[0];
|
||||
SetMem (TargetId, TARGET_MAX_BYTES, 0xFF);
|
||||
@@ -197,7 +194,7 @@ SCSIBusDriverBindingSupported (
|
||||
|
||||
if (Status == EFI_ALREADY_STARTED) {
|
||||
return EFI_SUCCESS;
|
||||
} else if (!EFI_ERROR(Status)) {
|
||||
} else if (!EFI_ERROR (Status)) {
|
||||
//
|
||||
// Check if RemainingDevicePath is NULL or the End of Device Path Node,
|
||||
// if yes, return EFI_SUCCESS.
|
||||
@@ -227,7 +224,7 @@ SCSIBusDriverBindingSupported (
|
||||
This->DriverBindingHandle,
|
||||
Controller
|
||||
);
|
||||
if (!EFI_ERROR(Status)) {
|
||||
if (!EFI_ERROR (Status)) {
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
}
|
||||
@@ -271,7 +268,6 @@ SCSIBusDriverBindingSupported (
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Start this driver on ControllerHandle.
|
||||
|
||||
@@ -299,20 +295,20 @@ SCSIBusDriverBindingStart (
|
||||
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
|
||||
)
|
||||
{
|
||||
UINT64 Lun;
|
||||
UINT8 *TargetId;
|
||||
BOOLEAN ScanOtherPuns;
|
||||
BOOLEAN FromFirstTarget;
|
||||
BOOLEAN ExtScsiSupport;
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS DevicePathStatus;
|
||||
EFI_STATUS PassThruStatus;
|
||||
SCSI_BUS_DEVICE *ScsiBusDev;
|
||||
SCSI_TARGET_ID ScsiTargetId;
|
||||
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
|
||||
EFI_SCSI_PASS_THRU_PROTOCOL *ScsiInterface;
|
||||
EFI_EXT_SCSI_PASS_THRU_PROTOCOL *ExtScsiInterface;
|
||||
EFI_SCSI_BUS_PROTOCOL *BusIdentify;
|
||||
UINT64 Lun;
|
||||
UINT8 *TargetId;
|
||||
BOOLEAN ScanOtherPuns;
|
||||
BOOLEAN FromFirstTarget;
|
||||
BOOLEAN ExtScsiSupport;
|
||||
EFI_STATUS Status;
|
||||
EFI_STATUS DevicePathStatus;
|
||||
EFI_STATUS PassThruStatus;
|
||||
SCSI_BUS_DEVICE *ScsiBusDev;
|
||||
SCSI_TARGET_ID ScsiTargetId;
|
||||
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
|
||||
EFI_SCSI_PASS_THRU_PROTOCOL *ScsiInterface;
|
||||
EFI_EXT_SCSI_PASS_THRU_PROTOCOL *ExtScsiInterface;
|
||||
EFI_SCSI_BUS_PROTOCOL *BusIdentify;
|
||||
|
||||
TargetId = NULL;
|
||||
ScanOtherPuns = TRUE;
|
||||
@@ -326,7 +322,7 @@ SCSIBusDriverBindingStart (
|
||||
DevicePathStatus = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
(VOID **) &ParentDevicePath,
|
||||
(VOID **)&ParentDevicePath,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
@@ -352,7 +348,7 @@ SCSIBusDriverBindingStart (
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiExtScsiPassThruProtocolGuid,
|
||||
(VOID **) &ExtScsiInterface,
|
||||
(VOID **)&ExtScsiInterface,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
@@ -360,11 +356,11 @@ SCSIBusDriverBindingStart (
|
||||
//
|
||||
// Fail to open UEFI ExtendPassThru Protocol, then try to open EFI PassThru Protocol instead.
|
||||
//
|
||||
if (EFI_ERROR(Status) && (Status != EFI_ALREADY_STARTED)) {
|
||||
if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) {
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiScsiPassThruProtocolGuid,
|
||||
(VOID **) &ScsiInterface,
|
||||
(VOID **)&ScsiInterface,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
@@ -373,7 +369,7 @@ SCSIBusDriverBindingStart (
|
||||
// Fail to open EFI PassThru Protocol, Close the DevicePathProtocol if it is opened by this time.
|
||||
//
|
||||
if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) {
|
||||
if (!EFI_ERROR(DevicePathStatus)) {
|
||||
if (!EFI_ERROR (DevicePathStatus)) {
|
||||
gBS->CloseProtocol (
|
||||
Controller,
|
||||
&gEfiDevicePathProtocolGuid,
|
||||
@@ -381,6 +377,7 @@ SCSIBusDriverBindingStart (
|
||||
Controller
|
||||
);
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
} else {
|
||||
@@ -393,7 +390,7 @@ SCSIBusDriverBindingStart (
|
||||
PassThruStatus = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiScsiPassThruProtocolGuid,
|
||||
(VOID **) &ScsiInterface,
|
||||
(VOID **)&ScsiInterface,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_BY_DRIVER
|
||||
@@ -406,18 +403,19 @@ SCSIBusDriverBindingStart (
|
||||
// on this handle for this time. Then construct Host controller private data.
|
||||
//
|
||||
ScsiBusDev = NULL;
|
||||
ScsiBusDev = AllocateZeroPool(sizeof(SCSI_BUS_DEVICE));
|
||||
ScsiBusDev = AllocateZeroPool (sizeof (SCSI_BUS_DEVICE));
|
||||
if (ScsiBusDev == NULL) {
|
||||
Status = EFI_OUT_OF_RESOURCES;
|
||||
goto ErrorExit;
|
||||
}
|
||||
ScsiBusDev->Signature = SCSI_BUS_DEVICE_SIGNATURE;
|
||||
ScsiBusDev->ExtScsiSupport = ExtScsiSupport;
|
||||
ScsiBusDev->DevicePath = ParentDevicePath;
|
||||
|
||||
ScsiBusDev->Signature = SCSI_BUS_DEVICE_SIGNATURE;
|
||||
ScsiBusDev->ExtScsiSupport = ExtScsiSupport;
|
||||
ScsiBusDev->DevicePath = ParentDevicePath;
|
||||
if (ScsiBusDev->ExtScsiSupport) {
|
||||
ScsiBusDev->ExtScsiInterface = ExtScsiInterface;
|
||||
} else {
|
||||
ScsiBusDev->ScsiInterface = ScsiInterface;
|
||||
ScsiBusDev->ScsiInterface = ScsiInterface;
|
||||
}
|
||||
|
||||
//
|
||||
@@ -442,7 +440,7 @@ SCSIBusDriverBindingStart (
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiCallerIdGuid,
|
||||
(VOID **) &BusIdentify,
|
||||
(VOID **)&BusIdentify,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@@ -451,6 +449,7 @@ SCSIBusDriverBindingStart (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
ScsiBusDev = SCSI_BUS_CONTROLLER_DEVICE_FROM_THIS (BusIdentify);
|
||||
}
|
||||
|
||||
@@ -463,7 +462,7 @@ SCSIBusDriverBindingStart (
|
||||
ParentDevicePath
|
||||
);
|
||||
|
||||
Lun = 0;
|
||||
Lun = 0;
|
||||
if (RemainingDevicePath == NULL) {
|
||||
//
|
||||
// If RemainingDevicePath is NULL,
|
||||
@@ -492,7 +491,7 @@ SCSIBusDriverBindingStart (
|
||||
ScanOtherPuns = FALSE;
|
||||
}
|
||||
|
||||
while(ScanOtherPuns) {
|
||||
while (ScanOtherPuns) {
|
||||
if (FromFirstTarget) {
|
||||
//
|
||||
// Remaining Device Path is NULL, scan all the possible Puns in the
|
||||
@@ -503,6 +502,7 @@ SCSIBusDriverBindingStart (
|
||||
} else {
|
||||
Status = ScsiBusDev->ScsiInterface->GetNextDevice (ScsiBusDev->ScsiInterface, &ScsiTargetId.ScsiId.Scsi, &Lun);
|
||||
}
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
//
|
||||
// no legal Pun and Lun found any more
|
||||
@@ -512,6 +512,7 @@ SCSIBusDriverBindingStart (
|
||||
} else {
|
||||
ScanOtherPuns = FALSE;
|
||||
}
|
||||
|
||||
//
|
||||
// Avoid creating handle for the host adapter.
|
||||
//
|
||||
@@ -524,12 +525,14 @@ SCSIBusDriverBindingStart (
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Scan for the scsi device, if it attaches to the scsi bus,
|
||||
// then create handle and install scsi i/o protocol.
|
||||
//
|
||||
Status = ScsiScanCreateDevice (This, Controller, &ScsiTargetId, Lun, ScsiBusDev);
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
|
||||
ErrorExit:
|
||||
@@ -561,6 +564,7 @@ ErrorExit:
|
||||
Controller
|
||||
);
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -586,20 +590,20 @@ ErrorExit:
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
SCSIBusDriverBindingStop (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
BOOLEAN AllChildrenStopped;
|
||||
UINTN Index;
|
||||
EFI_SCSI_IO_PROTOCOL *ScsiIo;
|
||||
SCSI_IO_DEV *ScsiIoDevice;
|
||||
VOID *ScsiPassThru;
|
||||
EFI_SCSI_BUS_PROTOCOL *Scsidentifier;
|
||||
SCSI_BUS_DEVICE *ScsiBusDev;
|
||||
EFI_STATUS Status;
|
||||
BOOLEAN AllChildrenStopped;
|
||||
UINTN Index;
|
||||
EFI_SCSI_IO_PROTOCOL *ScsiIo;
|
||||
SCSI_IO_DEV *ScsiIoDevice;
|
||||
VOID *ScsiPassThru;
|
||||
EFI_SCSI_BUS_PROTOCOL *Scsidentifier;
|
||||
SCSI_BUS_DEVICE *ScsiBusDev;
|
||||
|
||||
if (NumberOfChildren == 0) {
|
||||
//
|
||||
@@ -608,7 +612,7 @@ SCSIBusDriverBindingStop (
|
||||
Status = gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiCallerIdGuid,
|
||||
(VOID **) &Scsidentifier,
|
||||
(VOID **)&Scsidentifier,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@@ -675,11 +679,10 @@ SCSIBusDriverBindingStop (
|
||||
AllChildrenStopped = TRUE;
|
||||
|
||||
for (Index = 0; Index < NumberOfChildren; Index++) {
|
||||
|
||||
Status = gBS->OpenProtocol (
|
||||
ChildHandleBuffer[Index],
|
||||
&gEfiScsiIoProtocolGuid,
|
||||
(VOID **) &ScsiIo,
|
||||
(VOID **)&ScsiIo,
|
||||
This->DriverBindingHandle,
|
||||
Controller,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@@ -700,7 +703,6 @@ SCSIBusDriverBindingStop (
|
||||
This->DriverBindingHandle,
|
||||
ChildHandleBuffer[Index]
|
||||
);
|
||||
|
||||
} else {
|
||||
Status = gBS->CloseProtocol (
|
||||
Controller,
|
||||
@@ -751,7 +753,6 @@ SCSIBusDriverBindingStop (
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Retrieves the device type information of the SCSI Controller.
|
||||
|
||||
@@ -766,22 +767,21 @@ SCSIBusDriverBindingStop (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiGetDeviceType (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
OUT UINT8 *DeviceType
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
OUT UINT8 *DeviceType
|
||||
)
|
||||
{
|
||||
SCSI_IO_DEV *ScsiIoDevice;
|
||||
SCSI_IO_DEV *ScsiIoDevice;
|
||||
|
||||
if (DeviceType == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
ScsiIoDevice = SCSI_IO_DEV_FROM_THIS (This);
|
||||
*DeviceType = ScsiIoDevice->ScsiDeviceType;
|
||||
ScsiIoDevice = SCSI_IO_DEV_FROM_THIS (This);
|
||||
*DeviceType = ScsiIoDevice->ScsiDeviceType;
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Retrieves the device location in the SCSI channel.
|
||||
|
||||
@@ -798,22 +798,22 @@ ScsiGetDeviceType (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiGetDeviceLocation (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
IN OUT UINT8 **Target,
|
||||
OUT UINT64 *Lun
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
IN OUT UINT8 **Target,
|
||||
OUT UINT64 *Lun
|
||||
)
|
||||
{
|
||||
SCSI_IO_DEV *ScsiIoDevice;
|
||||
SCSI_IO_DEV *ScsiIoDevice;
|
||||
|
||||
if (Target == NULL || Lun == NULL) {
|
||||
if ((Target == NULL) || (Lun == NULL)) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
ScsiIoDevice = SCSI_IO_DEV_FROM_THIS (This);
|
||||
|
||||
CopyMem (*Target,&ScsiIoDevice->Pun, TARGET_MAX_BYTES);
|
||||
CopyMem (*Target, &ScsiIoDevice->Pun, TARGET_MAX_BYTES);
|
||||
|
||||
*Lun = ScsiIoDevice->Lun;
|
||||
*Lun = ScsiIoDevice->Lun;
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
@@ -833,10 +833,10 @@ ScsiGetDeviceLocation (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiResetBus (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This
|
||||
IN EFI_SCSI_IO_PROTOCOL *This
|
||||
)
|
||||
{
|
||||
SCSI_IO_DEV *ScsiIoDevice;
|
||||
SCSI_IO_DEV *ScsiIoDevice;
|
||||
|
||||
ScsiIoDevice = SCSI_IO_DEV_FROM_THIS (This);
|
||||
|
||||
@@ -849,14 +849,13 @@ ScsiResetBus (
|
||||
ScsiIoDevice->ScsiBusDeviceData->DevicePath
|
||||
);
|
||||
|
||||
if (ScsiIoDevice->ExtScsiSupport){
|
||||
if (ScsiIoDevice->ExtScsiSupport) {
|
||||
return ScsiIoDevice->ExtScsiPassThru->ResetChannel (ScsiIoDevice->ExtScsiPassThru);
|
||||
} else {
|
||||
return ScsiIoDevice->ScsiPassThru->ResetChannel (ScsiIoDevice->ScsiPassThru);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Resets the SCSI Controller that the device handle specifies.
|
||||
|
||||
@@ -871,7 +870,7 @@ ScsiResetBus (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiResetDevice (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This
|
||||
IN EFI_SCSI_IO_PROTOCOL *This
|
||||
)
|
||||
{
|
||||
SCSI_IO_DEV *ScsiIoDevice;
|
||||
@@ -888,25 +887,23 @@ ScsiResetDevice (
|
||||
ScsiIoDevice->ScsiBusDeviceData->DevicePath
|
||||
);
|
||||
|
||||
CopyMem (Target,&ScsiIoDevice->Pun, TARGET_MAX_BYTES);
|
||||
|
||||
CopyMem (Target, &ScsiIoDevice->Pun, TARGET_MAX_BYTES);
|
||||
|
||||
if (ScsiIoDevice->ExtScsiSupport) {
|
||||
return ScsiIoDevice->ExtScsiPassThru->ResetTargetLun (
|
||||
ScsiIoDevice->ExtScsiPassThru,
|
||||
Target,
|
||||
ScsiIoDevice->Lun
|
||||
);
|
||||
ScsiIoDevice->ExtScsiPassThru,
|
||||
Target,
|
||||
ScsiIoDevice->Lun
|
||||
);
|
||||
} else {
|
||||
return ScsiIoDevice->ScsiPassThru->ResetTarget (
|
||||
ScsiIoDevice->ScsiPassThru,
|
||||
ScsiIoDevice->Pun.ScsiId.Scsi,
|
||||
ScsiIoDevice->Lun
|
||||
);
|
||||
ScsiIoDevice->ScsiPassThru,
|
||||
ScsiIoDevice->Pun.ScsiId.Scsi,
|
||||
ScsiIoDevice->Lun
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Sends a SCSI Request Packet to the SCSI Controller for execution.
|
||||
|
||||
@@ -957,9 +954,9 @@ ScsiResetDevice (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiExecuteSCSICommand (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
IN OUT EFI_SCSI_IO_SCSI_REQUEST_PACKET *Packet,
|
||||
IN EFI_EVENT Event OPTIONAL
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
IN OUT EFI_SCSI_IO_SCSI_REQUEST_PACKET *Packet,
|
||||
IN EFI_EVENT Event OPTIONAL
|
||||
)
|
||||
{
|
||||
SCSI_IO_DEV *ScsiIoDevice;
|
||||
@@ -975,11 +972,11 @@ ScsiExecuteSCSICommand (
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
ScsiIoDevice = SCSI_IO_DEV_FROM_THIS (This);
|
||||
CopyMem (Target,&ScsiIoDevice->Pun, TARGET_MAX_BYTES);
|
||||
ScsiIoDevice = SCSI_IO_DEV_FROM_THIS (This);
|
||||
CopyMem (Target, &ScsiIoDevice->Pun, TARGET_MAX_BYTES);
|
||||
|
||||
if (ScsiIoDevice->ExtScsiSupport) {
|
||||
ExtRequestPacket = (EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *) Packet;
|
||||
ExtRequestPacket = (EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *)Packet;
|
||||
|
||||
if (((ScsiIoDevice->ExtScsiPassThru->Mode->Attributes & EFI_SCSI_PASS_THRU_ATTRIBUTES_NONBLOCKIO) != 0) && (Event != NULL)) {
|
||||
Status = ScsiIoDevice->ExtScsiPassThru->PassThru (
|
||||
@@ -1001,7 +998,7 @@ ScsiExecuteSCSICommand (
|
||||
ExtRequestPacket,
|
||||
NULL
|
||||
);
|
||||
if ((!EFI_ERROR(Status)) && (Event != NULL)) {
|
||||
if ((!EFI_ERROR (Status)) && (Event != NULL)) {
|
||||
//
|
||||
// Signal Event to tell caller to pick up the SCSI IO packet if the
|
||||
// PassThru() succeeds.
|
||||
@@ -1010,8 +1007,7 @@ ScsiExecuteSCSICommand (
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
mWorkingBuffer = AllocatePool (sizeof(EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET));
|
||||
mWorkingBuffer = AllocatePool (sizeof (EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET));
|
||||
|
||||
if (mWorkingBuffer == NULL) {
|
||||
return EFI_DEVICE_ERROR;
|
||||
@@ -1020,67 +1016,66 @@ ScsiExecuteSCSICommand (
|
||||
//
|
||||
// Convert package into EFI1.0, EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET.
|
||||
//
|
||||
Status = ScsiioToPassThruPacket(Packet, (EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET*)mWorkingBuffer);
|
||||
if (EFI_ERROR(Status)) {
|
||||
FreePool(mWorkingBuffer);
|
||||
Status = ScsiioToPassThruPacket (Packet, (EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *)mWorkingBuffer);
|
||||
if (EFI_ERROR (Status)) {
|
||||
FreePool (mWorkingBuffer);
|
||||
return Status;
|
||||
}
|
||||
|
||||
if (((ScsiIoDevice->ScsiPassThru->Mode->Attributes & EFI_SCSI_PASS_THRU_ATTRIBUTES_NONBLOCKIO) != 0) && (Event != NULL)) {
|
||||
EventData.Data1 = (VOID*)Packet;
|
||||
EventData.Data1 = (VOID *)Packet;
|
||||
EventData.Data2 = Event;
|
||||
//
|
||||
// Create Event
|
||||
//
|
||||
Status = gBS->CreateEvent (
|
||||
EVT_NOTIFY_SIGNAL,
|
||||
TPL_NOTIFY,
|
||||
NotifyFunction,
|
||||
&EventData,
|
||||
&PacketEvent
|
||||
);
|
||||
if (EFI_ERROR(Status)) {
|
||||
FreePool(mWorkingBuffer);
|
||||
EVT_NOTIFY_SIGNAL,
|
||||
TPL_NOTIFY,
|
||||
NotifyFunction,
|
||||
&EventData,
|
||||
&PacketEvent
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
FreePool (mWorkingBuffer);
|
||||
return Status;
|
||||
}
|
||||
|
||||
Status = ScsiIoDevice->ScsiPassThru->PassThru (
|
||||
ScsiIoDevice->ScsiPassThru,
|
||||
ScsiIoDevice->Pun.ScsiId.Scsi,
|
||||
ScsiIoDevice->Lun,
|
||||
mWorkingBuffer,
|
||||
PacketEvent
|
||||
);
|
||||
ScsiIoDevice->ScsiPassThru,
|
||||
ScsiIoDevice->Pun.ScsiId.Scsi,
|
||||
ScsiIoDevice->Lun,
|
||||
mWorkingBuffer,
|
||||
PacketEvent
|
||||
);
|
||||
|
||||
if (EFI_ERROR(Status)) {
|
||||
FreePool(mWorkingBuffer);
|
||||
gBS->CloseEvent(PacketEvent);
|
||||
if (EFI_ERROR (Status)) {
|
||||
FreePool (mWorkingBuffer);
|
||||
gBS->CloseEvent (PacketEvent);
|
||||
return Status;
|
||||
}
|
||||
|
||||
} else {
|
||||
//
|
||||
// If there's no event or SCSI Device doesn't support NON-BLOCKING, just convert
|
||||
// EFI1.0 PassThru packet back to UEFI2.0 SCSI IO Packet.
|
||||
//
|
||||
Status = ScsiIoDevice->ScsiPassThru->PassThru (
|
||||
ScsiIoDevice->ScsiPassThru,
|
||||
ScsiIoDevice->Pun.ScsiId.Scsi,
|
||||
ScsiIoDevice->Lun,
|
||||
mWorkingBuffer,
|
||||
NULL
|
||||
);
|
||||
if (EFI_ERROR(Status)) {
|
||||
FreePool(mWorkingBuffer);
|
||||
ScsiIoDevice->ScsiPassThru,
|
||||
ScsiIoDevice->Pun.ScsiId.Scsi,
|
||||
ScsiIoDevice->Lun,
|
||||
mWorkingBuffer,
|
||||
NULL
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
FreePool (mWorkingBuffer);
|
||||
return Status;
|
||||
}
|
||||
|
||||
PassThruToScsiioPacket((EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET*)mWorkingBuffer,Packet);
|
||||
PassThruToScsiioPacket ((EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *)mWorkingBuffer, Packet);
|
||||
//
|
||||
// After converting EFI1.0 PassThru Packet back to UEFI2.0 SCSI IO Packet,
|
||||
// free mWorkingBuffer.
|
||||
//
|
||||
FreePool(mWorkingBuffer);
|
||||
FreePool (mWorkingBuffer);
|
||||
|
||||
//
|
||||
// Signal Event to tell caller to pick up the SCSI IO Packet.
|
||||
@@ -1090,10 +1085,10 @@ ScsiExecuteSCSICommand (
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Scan SCSI Bus to discover the device, and attach ScsiIoProtocol to it.
|
||||
|
||||
@@ -1111,11 +1106,11 @@ ScsiExecuteSCSICommand (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiScanCreateDevice (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN SCSI_TARGET_ID *TargetId,
|
||||
IN UINT64 Lun,
|
||||
IN OUT SCSI_BUS_DEVICE *ScsiBusDev
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN SCSI_TARGET_ID *TargetId,
|
||||
IN UINT64 Lun,
|
||||
IN OUT SCSI_BUS_DEVICE *ScsiBusDev
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
@@ -1123,7 +1118,7 @@ ScsiScanCreateDevice (
|
||||
EFI_DEVICE_PATH_PROTOCOL *ScsiDevicePath;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath;
|
||||
EFI_HANDLE DeviceHandle;
|
||||
EFI_HANDLE DeviceHandle;
|
||||
|
||||
DevicePath = NULL;
|
||||
RemainingDevicePath = NULL;
|
||||
@@ -1133,7 +1128,7 @@ ScsiScanCreateDevice (
|
||||
//
|
||||
// Build Device Path
|
||||
//
|
||||
if (ScsiBusDev->ExtScsiSupport){
|
||||
if (ScsiBusDev->ExtScsiSupport) {
|
||||
Status = ScsiBusDev->ExtScsiInterface->BuildDevicePath (
|
||||
ScsiBusDev->ExtScsiInterface,
|
||||
&TargetId->ScsiId.ExtScsi[0],
|
||||
@@ -1149,7 +1144,7 @@ ScsiScanCreateDevice (
|
||||
);
|
||||
}
|
||||
|
||||
if (EFI_ERROR(Status)) {
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
@@ -1163,10 +1158,10 @@ ScsiScanCreateDevice (
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
DeviceHandle = NULL;
|
||||
DeviceHandle = NULL;
|
||||
RemainingDevicePath = DevicePath;
|
||||
Status = gBS->LocateDevicePath (&gEfiDevicePathProtocolGuid, &RemainingDevicePath, &DeviceHandle);
|
||||
if (!EFI_ERROR (Status) && (DeviceHandle != NULL) && IsDevicePathEnd(RemainingDevicePath)) {
|
||||
Status = gBS->LocateDevicePath (&gEfiDevicePathProtocolGuid, &RemainingDevicePath, &DeviceHandle);
|
||||
if (!EFI_ERROR (Status) && (DeviceHandle != NULL) && IsDevicePathEnd (RemainingDevicePath)) {
|
||||
//
|
||||
// The device has been started, directly return to fast boot.
|
||||
//
|
||||
@@ -1180,20 +1175,19 @@ ScsiScanCreateDevice (
|
||||
goto ErrorExit;
|
||||
}
|
||||
|
||||
ScsiIoDevice->Signature = SCSI_IO_DEV_SIGNATURE;
|
||||
ScsiIoDevice->ScsiBusDeviceData = ScsiBusDev;
|
||||
CopyMem(&ScsiIoDevice->Pun, TargetId, TARGET_MAX_BYTES);
|
||||
ScsiIoDevice->Lun = Lun;
|
||||
ScsiIoDevice->Signature = SCSI_IO_DEV_SIGNATURE;
|
||||
ScsiIoDevice->ScsiBusDeviceData = ScsiBusDev;
|
||||
CopyMem (&ScsiIoDevice->Pun, TargetId, TARGET_MAX_BYTES);
|
||||
ScsiIoDevice->Lun = Lun;
|
||||
|
||||
if (ScsiBusDev->ExtScsiSupport) {
|
||||
ScsiIoDevice->ExtScsiPassThru = ScsiBusDev->ExtScsiInterface;
|
||||
ScsiIoDevice->ExtScsiSupport = TRUE;
|
||||
ScsiIoDevice->ScsiIo.IoAlign = ScsiIoDevice->ExtScsiPassThru->Mode->IoAlign;
|
||||
|
||||
ScsiIoDevice->ExtScsiPassThru = ScsiBusDev->ExtScsiInterface;
|
||||
ScsiIoDevice->ExtScsiSupport = TRUE;
|
||||
ScsiIoDevice->ScsiIo.IoAlign = ScsiIoDevice->ExtScsiPassThru->Mode->IoAlign;
|
||||
} else {
|
||||
ScsiIoDevice->ScsiPassThru = ScsiBusDev->ScsiInterface;
|
||||
ScsiIoDevice->ExtScsiSupport = FALSE;
|
||||
ScsiIoDevice->ScsiIo.IoAlign = ScsiIoDevice->ScsiPassThru->Mode->IoAlign;
|
||||
ScsiIoDevice->ScsiPassThru = ScsiBusDev->ScsiInterface;
|
||||
ScsiIoDevice->ExtScsiSupport = FALSE;
|
||||
ScsiIoDevice->ScsiIo.IoAlign = ScsiIoDevice->ScsiPassThru->Mode->IoAlign;
|
||||
}
|
||||
|
||||
ScsiIoDevice->ScsiIo.GetDeviceType = ScsiGetDeviceType;
|
||||
@@ -1233,22 +1227,23 @@ ScsiScanCreateDevice (
|
||||
gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiExtScsiPassThruProtocolGuid,
|
||||
(VOID **) &(ScsiBusDev->ExtScsiInterface),
|
||||
(VOID **)&(ScsiBusDev->ExtScsiInterface),
|
||||
This->DriverBindingHandle,
|
||||
ScsiIoDevice->Handle,
|
||||
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
|
||||
);
|
||||
} else {
|
||||
} else {
|
||||
gBS->OpenProtocol (
|
||||
Controller,
|
||||
&gEfiScsiPassThruProtocolGuid,
|
||||
(VOID **) &(ScsiBusDev->ScsiInterface),
|
||||
(VOID **)&(ScsiBusDev->ScsiInterface),
|
||||
This->DriverBindingHandle,
|
||||
ScsiIoDevice->Handle,
|
||||
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
|
||||
ErrorExit:
|
||||
@@ -1271,7 +1266,6 @@ ErrorExit:
|
||||
return Status;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Discovery SCSI Device
|
||||
|
||||
@@ -1283,19 +1277,19 @@ ErrorExit:
|
||||
**/
|
||||
BOOLEAN
|
||||
DiscoverScsiDevice (
|
||||
IN OUT SCSI_IO_DEV *ScsiIoDevice
|
||||
IN OUT SCSI_IO_DEV *ScsiIoDevice
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
UINT32 InquiryDataLength;
|
||||
UINT8 SenseDataLength;
|
||||
UINT8 HostAdapterStatus;
|
||||
UINT8 TargetStatus;
|
||||
EFI_SCSI_INQUIRY_DATA *InquiryData;
|
||||
EFI_SCSI_SENSE_DATA *SenseData;
|
||||
UINT8 MaxRetry;
|
||||
UINT8 Index;
|
||||
BOOLEAN ScsiDeviceFound;
|
||||
EFI_STATUS Status;
|
||||
UINT32 InquiryDataLength;
|
||||
UINT8 SenseDataLength;
|
||||
UINT8 HostAdapterStatus;
|
||||
UINT8 TargetStatus;
|
||||
EFI_SCSI_INQUIRY_DATA *InquiryData;
|
||||
EFI_SCSI_SENSE_DATA *SenseData;
|
||||
UINT8 MaxRetry;
|
||||
UINT8 Index;
|
||||
BOOLEAN ScsiDeviceFound;
|
||||
|
||||
HostAdapterStatus = 0;
|
||||
TargetStatus = 0;
|
||||
@@ -1327,29 +1321,33 @@ DiscoverScsiDevice (
|
||||
MaxRetry = 2;
|
||||
for (Index = 0; Index < MaxRetry; Index++) {
|
||||
Status = ScsiInquiryCommand (
|
||||
&ScsiIoDevice->ScsiIo,
|
||||
SCSI_BUS_TIMEOUT,
|
||||
SenseData,
|
||||
&SenseDataLength,
|
||||
&HostAdapterStatus,
|
||||
&TargetStatus,
|
||||
(VOID *) InquiryData,
|
||||
&InquiryDataLength,
|
||||
FALSE
|
||||
);
|
||||
&ScsiIoDevice->ScsiIo,
|
||||
SCSI_BUS_TIMEOUT,
|
||||
SenseData,
|
||||
&SenseDataLength,
|
||||
&HostAdapterStatus,
|
||||
&TargetStatus,
|
||||
(VOID *)InquiryData,
|
||||
&InquiryDataLength,
|
||||
FALSE
|
||||
);
|
||||
if (!EFI_ERROR (Status)) {
|
||||
if ((HostAdapterStatus == EFI_SCSI_IO_STATUS_HOST_ADAPTER_OK) &&
|
||||
(TargetStatus == EFI_SCSI_IO_STATUS_TARGET_CHECK_CONDITION) &&
|
||||
(SenseData->Error_Code == 0x70) &&
|
||||
(SenseData->Sense_Key == EFI_SCSI_SK_ILLEGAL_REQUEST)) {
|
||||
(SenseData->Sense_Key == EFI_SCSI_SK_ILLEGAL_REQUEST))
|
||||
{
|
||||
ScsiDeviceFound = FALSE;
|
||||
goto Done;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
if ((Status == EFI_BAD_BUFFER_SIZE) ||
|
||||
(Status == EFI_INVALID_PARAMETER) ||
|
||||
(Status == EFI_UNSUPPORTED)) {
|
||||
(Status == EFI_UNSUPPORTED))
|
||||
{
|
||||
ScsiDeviceFound = FALSE;
|
||||
goto Done;
|
||||
}
|
||||
@@ -1369,7 +1367,8 @@ DiscoverScsiDevice (
|
||||
}
|
||||
|
||||
if ((InquiryData->Peripheral_Type >= EFI_SCSI_TYPE_RESERVED_LOW) &&
|
||||
(InquiryData->Peripheral_Type <= EFI_SCSI_TYPE_RESERVED_HIGH)) {
|
||||
(InquiryData->Peripheral_Type <= EFI_SCSI_TYPE_RESERVED_HIGH))
|
||||
{
|
||||
ScsiDeviceFound = FALSE;
|
||||
goto Done;
|
||||
}
|
||||
@@ -1385,7 +1384,7 @@ DiscoverScsiDevice (
|
||||
//
|
||||
// ANSI-approved version
|
||||
//
|
||||
ScsiIoDevice->ScsiVersion = (UINT8) (InquiryData->Version & 0x07);
|
||||
ScsiIoDevice->ScsiVersion = (UINT8)(InquiryData->Version & 0x07);
|
||||
}
|
||||
|
||||
ScsiDeviceFound = TRUE;
|
||||
@@ -1397,7 +1396,6 @@ Done:
|
||||
return ScsiDeviceFound;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Convert EFI_SCSI_IO_SCSI_REQUEST_PACKET packet to EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET packet.
|
||||
|
||||
@@ -1413,7 +1411,7 @@ ScsiioToPassThruPacket (
|
||||
)
|
||||
{
|
||||
//
|
||||
//EFI 1.10 doesn't support Bi-Direction Command.
|
||||
// EFI 1.10 doesn't support Bi-Direction Command.
|
||||
//
|
||||
if (Packet->DataDirection == EFI_SCSI_IO_DATA_DIRECTION_BIDIRECTIONAL) {
|
||||
return EFI_UNSUPPORTED;
|
||||
@@ -1431,16 +1429,16 @@ ScsiioToPassThruPacket (
|
||||
CommandPacket->SenseDataLength = Packet->SenseDataLength;
|
||||
|
||||
if (Packet->DataDirection == EFI_SCSI_IO_DATA_DIRECTION_READ) {
|
||||
CommandPacket->DataBuffer = Packet->InDataBuffer;
|
||||
CommandPacket->DataBuffer = Packet->InDataBuffer;
|
||||
CommandPacket->TransferLength = Packet->InTransferLength;
|
||||
} else if (Packet->DataDirection == EFI_SCSI_IO_DATA_DIRECTION_WRITE) {
|
||||
CommandPacket->DataBuffer = Packet->OutDataBuffer;
|
||||
CommandPacket->DataBuffer = Packet->OutDataBuffer;
|
||||
CommandPacket->TransferLength = Packet->OutTransferLength;
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
Convert EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET packet to EFI_SCSI_IO_SCSI_REQUEST_PACKET packet.
|
||||
|
||||
@@ -1465,10 +1463,10 @@ PassThruToScsiioPacket (
|
||||
Packet->SenseDataLength = ScsiPacket->SenseDataLength;
|
||||
|
||||
if (ScsiPacket->DataDirection == EFI_SCSI_IO_DATA_DIRECTION_READ) {
|
||||
Packet->InDataBuffer = ScsiPacket->DataBuffer;
|
||||
Packet->InDataBuffer = ScsiPacket->DataBuffer;
|
||||
Packet->InTransferLength = ScsiPacket->TransferLength;
|
||||
} else if (Packet->DataDirection == EFI_SCSI_IO_DATA_DIRECTION_WRITE) {
|
||||
Packet->OutDataBuffer = ScsiPacket->DataBuffer;
|
||||
Packet->OutDataBuffer = ScsiPacket->DataBuffer;
|
||||
Packet->OutTransferLength = ScsiPacket->TransferLength;
|
||||
}
|
||||
|
||||
@@ -1490,31 +1488,30 @@ NotifyFunction (
|
||||
IN VOID *Context
|
||||
)
|
||||
{
|
||||
EFI_SCSI_IO_SCSI_REQUEST_PACKET *Packet;
|
||||
EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *ScsiPacket;
|
||||
EFI_EVENT CallerEvent;
|
||||
SCSI_EVENT_DATA *PassData;
|
||||
EFI_SCSI_IO_SCSI_REQUEST_PACKET *Packet;
|
||||
EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *ScsiPacket;
|
||||
EFI_EVENT CallerEvent;
|
||||
SCSI_EVENT_DATA *PassData;
|
||||
|
||||
PassData = (SCSI_EVENT_DATA*)Context;
|
||||
Packet = (EFI_SCSI_IO_SCSI_REQUEST_PACKET *)PassData->Data1;
|
||||
ScsiPacket = (EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET*)mWorkingBuffer;
|
||||
PassData = (SCSI_EVENT_DATA *)Context;
|
||||
Packet = (EFI_SCSI_IO_SCSI_REQUEST_PACKET *)PassData->Data1;
|
||||
ScsiPacket = (EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *)mWorkingBuffer;
|
||||
|
||||
//
|
||||
// Convert EFI1.0 PassThru packet to UEFI2.0 SCSI IO Packet.
|
||||
//
|
||||
PassThruToScsiioPacket(ScsiPacket, Packet);
|
||||
PassThruToScsiioPacket (ScsiPacket, Packet);
|
||||
|
||||
//
|
||||
// After converting EFI1.0 PassThru Packet back to UEFI2.0 SCSI IO Packet,
|
||||
// free mWorkingBuffer.
|
||||
//
|
||||
gBS->FreePool(mWorkingBuffer);
|
||||
gBS->FreePool (mWorkingBuffer);
|
||||
|
||||
//
|
||||
// Signal Event to tell caller to pick up UEFI2.0 SCSI IO Packet.
|
||||
//
|
||||
CallerEvent = PassData->Data2;
|
||||
gBS->CloseEvent(Event);
|
||||
gBS->SignalEvent(CallerEvent);
|
||||
gBS->CloseEvent (Event);
|
||||
gBS->SignalEvent (CallerEvent);
|
||||
}
|
||||
|
||||
|
@@ -9,7 +9,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#ifndef _SCSI_BUS_H_
|
||||
#define _SCSI_BUS_H_
|
||||
|
||||
|
||||
#include <Uefi.h>
|
||||
|
||||
#include <Protocol/ScsiPassThru.h>
|
||||
@@ -31,22 +30,21 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
#include <IndustryStandard/Scsi.h>
|
||||
|
||||
#define SCSI_IO_DEV_SIGNATURE SIGNATURE_32 ('s', 'c', 'i', 'o')
|
||||
#define SCSI_IO_DEV_SIGNATURE SIGNATURE_32 ('s', 'c', 'i', 'o')
|
||||
|
||||
typedef union {
|
||||
UINT32 Scsi;
|
||||
UINT8 ExtScsi[4];
|
||||
UINT32 Scsi;
|
||||
UINT8 ExtScsi[4];
|
||||
} SCSI_ID;
|
||||
|
||||
typedef struct _SCSI_TARGET_ID {
|
||||
SCSI_ID ScsiId;
|
||||
UINT8 ExtScsiId[12];
|
||||
}SCSI_TARGET_ID;
|
||||
|
||||
SCSI_ID ScsiId;
|
||||
UINT8 ExtScsiId[12];
|
||||
} SCSI_TARGET_ID;
|
||||
|
||||
typedef struct {
|
||||
VOID *Data1;
|
||||
VOID *Data2;
|
||||
VOID *Data1;
|
||||
VOID *Data2;
|
||||
} SCSI_EVENT_DATA;
|
||||
|
||||
//
|
||||
@@ -57,7 +55,7 @@ typedef struct {
|
||||
//
|
||||
// SCSI Bus Timeout Experience Value
|
||||
//
|
||||
#define SCSI_BUS_TIMEOUT EFI_TIMER_PERIOD_SECONDS (3)
|
||||
#define SCSI_BUS_TIMEOUT EFI_TIMER_PERIOD_SECONDS (3)
|
||||
|
||||
//
|
||||
// The ScsiBusProtocol is just used to locate ScsiBusDev
|
||||
@@ -67,16 +65,16 @@ typedef struct {
|
||||
// gEfiCallerIdGuid will be used as its protocol guid.
|
||||
//
|
||||
typedef struct _EFI_SCSI_BUS_PROTOCOL {
|
||||
UINT64 Reserved;
|
||||
UINT64 Reserved;
|
||||
} EFI_SCSI_BUS_PROTOCOL;
|
||||
|
||||
typedef struct _SCSI_BUS_DEVICE {
|
||||
UINTN Signature;
|
||||
EFI_SCSI_BUS_PROTOCOL BusIdentify;
|
||||
BOOLEAN ExtScsiSupport;
|
||||
EFI_SCSI_PASS_THRU_PROTOCOL *ScsiInterface;
|
||||
EFI_EXT_SCSI_PASS_THRU_PROTOCOL *ExtScsiInterface;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
UINTN Signature;
|
||||
EFI_SCSI_BUS_PROTOCOL BusIdentify;
|
||||
BOOLEAN ExtScsiSupport;
|
||||
EFI_SCSI_PASS_THRU_PROTOCOL *ScsiInterface;
|
||||
EFI_EXT_SCSI_PASS_THRU_PROTOCOL *ExtScsiInterface;
|
||||
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
|
||||
} SCSI_BUS_DEVICE;
|
||||
|
||||
#define SCSI_BUS_CONTROLLER_DEVICE_FROM_THIS(a) CR (a, SCSI_BUS_DEVICE, BusIdentify, SCSI_BUS_DEVICE_SIGNATURE)
|
||||
@@ -182,15 +180,16 @@ SCSIBusDriverBindingStart (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
SCSIBusDriverBindingStop (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer
|
||||
);
|
||||
|
||||
//
|
||||
// EFI Component Name Functions
|
||||
//
|
||||
|
||||
/**
|
||||
Retrieves a Unicode string that is the user readable name of the driver.
|
||||
|
||||
@@ -309,11 +308,11 @@ ScsiBusComponentNameGetDriverName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiBusComponentNameGetControllerName (
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -330,8 +329,8 @@ ScsiBusComponentNameGetControllerName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiGetDeviceType (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
OUT UINT8 *DeviceType
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
OUT UINT8 *DeviceType
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -350,9 +349,9 @@ ScsiGetDeviceType (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiGetDeviceLocation (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
IN OUT UINT8 **Target,
|
||||
OUT UINT64 *Lun
|
||||
IN EFI_SCSI_IO_PROTOCOL *This,
|
||||
IN OUT UINT8 **Target,
|
||||
OUT UINT64 *Lun
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -370,7 +369,7 @@ ScsiGetDeviceLocation (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiResetBus (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This
|
||||
IN EFI_SCSI_IO_PROTOCOL *This
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -387,7 +386,7 @@ ScsiResetBus (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiResetDevice (
|
||||
IN EFI_SCSI_IO_PROTOCOL *This
|
||||
IN EFI_SCSI_IO_PROTOCOL *This
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -462,11 +461,11 @@ ScsiExecuteSCSICommand (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiScanCreateDevice (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN SCSI_TARGET_ID *TargetId,
|
||||
IN UINT64 Lun,
|
||||
IN OUT SCSI_BUS_DEVICE *ScsiBusDev
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN SCSI_TARGET_ID *TargetId,
|
||||
IN UINT64 Lun,
|
||||
IN OUT SCSI_BUS_DEVICE *ScsiBusDev
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -480,7 +479,7 @@ ScsiScanCreateDevice (
|
||||
**/
|
||||
BOOLEAN
|
||||
DiscoverScsiDevice (
|
||||
IN OUT SCSI_IO_DEV *ScsiIoDevice
|
||||
IN OUT SCSI_IO_DEV *ScsiIoDevice
|
||||
);
|
||||
|
||||
#endif
|
||||
|
@@ -6,7 +6,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
|
||||
#include "ScsiDisk.h"
|
||||
|
||||
//
|
||||
@@ -21,16 +20,15 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gScsiDiskComponentNam
|
||||
//
|
||||
// EFI Component Name 2 Protocol
|
||||
//
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gScsiDiskComponentName2 = {
|
||||
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME) ScsiDiskComponentNameGetDriverName,
|
||||
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) ScsiDiskComponentNameGetControllerName,
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gScsiDiskComponentName2 = {
|
||||
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME)ScsiDiskComponentNameGetDriverName,
|
||||
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)ScsiDiskComponentNameGetControllerName,
|
||||
"en"
|
||||
};
|
||||
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mScsiDiskDriverNameTable[] = {
|
||||
{ "eng;en", (CHAR16 *) L"Scsi Disk Driver" },
|
||||
{ NULL , NULL }
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mScsiDiskDriverNameTable[] = {
|
||||
{ "eng;en", (CHAR16 *)L"Scsi Disk Driver" },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -160,16 +158,16 @@ ScsiDiskComponentNameGetDriverName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskComponentNameGetControllerName (
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
SCSI_DISK_DEV *ScsiDiskDevice;
|
||||
EFI_BLOCK_IO_PROTOCOL *BlockIo;
|
||||
EFI_STATUS Status;
|
||||
SCSI_DISK_DEV *ScsiDiskDevice;
|
||||
EFI_BLOCK_IO_PROTOCOL *BlockIo;
|
||||
|
||||
//
|
||||
// This is a device driver, so ChildHandle must be NULL.
|
||||
@@ -189,13 +187,14 @@ ScsiDiskComponentNameGetControllerName (
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Get the device context
|
||||
//
|
||||
Status = gBS->OpenProtocol (
|
||||
ControllerHandle,
|
||||
&gEfiBlockIoProtocolGuid,
|
||||
(VOID **) &BlockIo,
|
||||
(VOID **)&BlockIo,
|
||||
gScsiDiskDriverBinding.DriverBindingHandle,
|
||||
ControllerHandle,
|
||||
EFI_OPEN_PROTOCOL_GET_PROTOCOL
|
||||
@@ -214,5 +213,4 @@ ScsiDiskComponentNameGetControllerName (
|
||||
ControllerName,
|
||||
(BOOLEAN)(This == &gScsiDiskComponentName)
|
||||
);
|
||||
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -9,10 +9,8 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#ifndef _SCSI_DISK_H_
|
||||
#define _SCSI_DISK_H_
|
||||
|
||||
|
||||
#include <Uefi.h>
|
||||
|
||||
|
||||
#include <Protocol/ScsiIo.h>
|
||||
#include <Protocol/ComponentName.h>
|
||||
#include <Protocol/BlockIo.h>
|
||||
@@ -24,7 +22,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#include <Protocol/DiskInfo.h>
|
||||
#include <Protocol/StorageSecurityCommand.h>
|
||||
|
||||
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/UefiDriverEntryPoint.h>
|
||||
#include <Library/UefiLib.h>
|
||||
@@ -37,74 +34,74 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#include <IndustryStandard/Scsi.h>
|
||||
#include <IndustryStandard/Atapi.h>
|
||||
|
||||
#define IS_DEVICE_FIXED(a) (a)->FixedDevice ? 1 : 0
|
||||
#define IS_DEVICE_FIXED(a) (a)->FixedDevice ? 1 : 0
|
||||
|
||||
#define IS_ALIGNED(addr, size) (((UINTN) (addr) & (size - 1)) == 0)
|
||||
#define IS_ALIGNED(addr, size) (((UINTN) (addr) & (size - 1)) == 0)
|
||||
|
||||
#define UFS_WLUN_RPMB 0xC4
|
||||
#define UFS_WLUN_RPMB 0xC4
|
||||
|
||||
typedef struct {
|
||||
UINT32 MaxLbaCnt;
|
||||
UINT32 MaxBlkDespCnt;
|
||||
UINT32 GranularityAlignment;
|
||||
UINT32 MaxLbaCnt;
|
||||
UINT32 MaxBlkDespCnt;
|
||||
UINT32 GranularityAlignment;
|
||||
} SCSI_UNMAP_PARAM_INFO;
|
||||
|
||||
#define SCSI_DISK_DEV_SIGNATURE SIGNATURE_32 ('s', 'c', 'd', 'k')
|
||||
#define SCSI_DISK_DEV_SIGNATURE SIGNATURE_32 ('s', 'c', 'd', 'k')
|
||||
|
||||
typedef struct {
|
||||
UINT32 Signature;
|
||||
UINT32 Signature;
|
||||
|
||||
EFI_HANDLE Handle;
|
||||
EFI_HANDLE Handle;
|
||||
|
||||
EFI_STORAGE_SECURITY_COMMAND_PROTOCOL StorageSecurity;
|
||||
EFI_STORAGE_SECURITY_COMMAND_PROTOCOL StorageSecurity;
|
||||
|
||||
EFI_BLOCK_IO_PROTOCOL BlkIo;
|
||||
EFI_BLOCK_IO2_PROTOCOL BlkIo2;
|
||||
EFI_BLOCK_IO_MEDIA BlkIoMedia;
|
||||
EFI_ERASE_BLOCK_PROTOCOL EraseBlock;
|
||||
EFI_SCSI_IO_PROTOCOL *ScsiIo;
|
||||
UINT8 DeviceType;
|
||||
BOOLEAN FixedDevice;
|
||||
UINT16 Reserved;
|
||||
EFI_BLOCK_IO_PROTOCOL BlkIo;
|
||||
EFI_BLOCK_IO2_PROTOCOL BlkIo2;
|
||||
EFI_BLOCK_IO_MEDIA BlkIoMedia;
|
||||
EFI_ERASE_BLOCK_PROTOCOL EraseBlock;
|
||||
EFI_SCSI_IO_PROTOCOL *ScsiIo;
|
||||
UINT8 DeviceType;
|
||||
BOOLEAN FixedDevice;
|
||||
UINT16 Reserved;
|
||||
|
||||
EFI_SCSI_SENSE_DATA *SenseData;
|
||||
UINTN SenseDataNumber;
|
||||
EFI_SCSI_INQUIRY_DATA InquiryData;
|
||||
EFI_SCSI_SENSE_DATA *SenseData;
|
||||
UINTN SenseDataNumber;
|
||||
EFI_SCSI_INQUIRY_DATA InquiryData;
|
||||
|
||||
EFI_UNICODE_STRING_TABLE *ControllerNameTable;
|
||||
EFI_UNICODE_STRING_TABLE *ControllerNameTable;
|
||||
|
||||
EFI_DISK_INFO_PROTOCOL DiskInfo;
|
||||
EFI_DISK_INFO_PROTOCOL DiskInfo;
|
||||
|
||||
//
|
||||
// The following fields are only valid for ATAPI/SATA device
|
||||
//
|
||||
UINT32 Channel;
|
||||
UINT32 Device;
|
||||
ATAPI_IDENTIFY_DATA IdentifyData;
|
||||
UINT32 Channel;
|
||||
UINT32 Device;
|
||||
ATAPI_IDENTIFY_DATA IdentifyData;
|
||||
|
||||
//
|
||||
// Scsi UNMAP command parameters information
|
||||
//
|
||||
SCSI_UNMAP_PARAM_INFO UnmapInfo;
|
||||
BOOLEAN BlockLimitsVpdSupported;
|
||||
SCSI_UNMAP_PARAM_INFO UnmapInfo;
|
||||
BOOLEAN BlockLimitsVpdSupported;
|
||||
|
||||
//
|
||||
// The flag indicates if 16-byte command can be used
|
||||
//
|
||||
BOOLEAN Cdb16Byte;
|
||||
BOOLEAN Cdb16Byte;
|
||||
|
||||
//
|
||||
// The queue for asynchronous task requests
|
||||
//
|
||||
LIST_ENTRY AsyncTaskQueue;
|
||||
LIST_ENTRY AsyncTaskQueue;
|
||||
} SCSI_DISK_DEV;
|
||||
|
||||
#define SCSI_DISK_DEV_FROM_BLKIO(a) CR (a, SCSI_DISK_DEV, BlkIo, SCSI_DISK_DEV_SIGNATURE)
|
||||
#define SCSI_DISK_DEV_FROM_BLKIO2(a) CR (a, SCSI_DISK_DEV, BlkIo2, SCSI_DISK_DEV_SIGNATURE)
|
||||
#define SCSI_DISK_DEV_FROM_BLKIO(a) CR (a, SCSI_DISK_DEV, BlkIo, SCSI_DISK_DEV_SIGNATURE)
|
||||
#define SCSI_DISK_DEV_FROM_BLKIO2(a) CR (a, SCSI_DISK_DEV, BlkIo2, SCSI_DISK_DEV_SIGNATURE)
|
||||
#define SCSI_DISK_DEV_FROM_ERASEBLK(a) CR (a, SCSI_DISK_DEV, EraseBlock, SCSI_DISK_DEV_SIGNATURE)
|
||||
#define SCSI_DISK_DEV_FROM_STORSEC(a) CR (a, SCSI_DISK_DEV, StorageSecurity, SCSI_DISK_DEV_SIGNATURE)
|
||||
#define SCSI_DISK_DEV_FROM_STORSEC(a) CR (a, SCSI_DISK_DEV, StorageSecurity, SCSI_DISK_DEV_SIGNATURE)
|
||||
|
||||
#define SCSI_DISK_DEV_FROM_DISKINFO(a) CR (a, SCSI_DISK_DEV, DiskInfo, SCSI_DISK_DEV_SIGNATURE)
|
||||
#define SCSI_DISK_DEV_FROM_DISKINFO(a) CR (a, SCSI_DISK_DEV, DiskInfo, SCSI_DISK_DEV_SIGNATURE)
|
||||
|
||||
//
|
||||
// Asynchronous I/O request
|
||||
@@ -113,55 +110,55 @@ typedef struct {
|
||||
// Private data structure for a BlockIo2 request
|
||||
//
|
||||
typedef struct {
|
||||
EFI_BLOCK_IO2_TOKEN *Token;
|
||||
EFI_BLOCK_IO2_TOKEN *Token;
|
||||
//
|
||||
// The flag indicates if the last Scsi Read/Write sub-task for a BlockIo2
|
||||
// request is sent to device
|
||||
//
|
||||
BOOLEAN LastScsiRW;
|
||||
BOOLEAN LastScsiRW;
|
||||
|
||||
//
|
||||
// The queue for Scsi Read/Write sub-tasks of a BlockIo2 request
|
||||
//
|
||||
LIST_ENTRY ScsiRWQueue;
|
||||
LIST_ENTRY ScsiRWQueue;
|
||||
|
||||
LIST_ENTRY Link;
|
||||
LIST_ENTRY Link;
|
||||
} SCSI_BLKIO2_REQUEST;
|
||||
|
||||
//
|
||||
// Private data structure for a SCSI Read/Write request
|
||||
//
|
||||
typedef struct {
|
||||
SCSI_DISK_DEV *ScsiDiskDevice;
|
||||
UINT64 Timeout;
|
||||
EFI_SCSI_SENSE_DATA *SenseData;
|
||||
UINT8 SenseDataLength;
|
||||
UINT8 HostAdapterStatus;
|
||||
UINT8 TargetStatus;
|
||||
UINT8 *InBuffer;
|
||||
UINT8 *OutBuffer;
|
||||
UINT32 DataLength;
|
||||
UINT64 StartLba;
|
||||
UINT32 SectorCount;
|
||||
UINT8 TimesRetry;
|
||||
SCSI_DISK_DEV *ScsiDiskDevice;
|
||||
UINT64 Timeout;
|
||||
EFI_SCSI_SENSE_DATA *SenseData;
|
||||
UINT8 SenseDataLength;
|
||||
UINT8 HostAdapterStatus;
|
||||
UINT8 TargetStatus;
|
||||
UINT8 *InBuffer;
|
||||
UINT8 *OutBuffer;
|
||||
UINT32 DataLength;
|
||||
UINT64 StartLba;
|
||||
UINT32 SectorCount;
|
||||
UINT8 TimesRetry;
|
||||
|
||||
//
|
||||
// The BlockIo2 request this SCSI command belongs to
|
||||
//
|
||||
SCSI_BLKIO2_REQUEST *BlkIo2Req;
|
||||
SCSI_BLKIO2_REQUEST *BlkIo2Req;
|
||||
|
||||
LIST_ENTRY Link;
|
||||
LIST_ENTRY Link;
|
||||
} SCSI_ASYNC_RW_REQUEST;
|
||||
|
||||
//
|
||||
// Private data structure for an EraseBlock request
|
||||
//
|
||||
typedef struct {
|
||||
EFI_ERASE_BLOCK_TOKEN *Token;
|
||||
EFI_ERASE_BLOCK_TOKEN *Token;
|
||||
|
||||
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
||||
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;
|
||||
|
||||
LIST_ENTRY Link;
|
||||
LIST_ENTRY Link;
|
||||
} SCSI_ERASEBLK_REQUEST;
|
||||
|
||||
//
|
||||
@@ -173,14 +170,14 @@ extern EFI_COMPONENT_NAME2_PROTOCOL gScsiDiskComponentName2;
|
||||
//
|
||||
// action code used in detect media process
|
||||
//
|
||||
#define ACTION_NO_ACTION 0x00
|
||||
#define ACTION_READ_CAPACITY 0x01
|
||||
#define ACTION_RETRY_COMMAND_LATER 0x02
|
||||
#define ACTION_RETRY_WITH_BACKOFF_ALGO 0x03
|
||||
#define ACTION_NO_ACTION 0x00
|
||||
#define ACTION_READ_CAPACITY 0x01
|
||||
#define ACTION_RETRY_COMMAND_LATER 0x02
|
||||
#define ACTION_RETRY_WITH_BACKOFF_ALGO 0x03
|
||||
|
||||
#define SCSI_COMMAND_VERSION_1 0x01
|
||||
#define SCSI_COMMAND_VERSION_2 0x02
|
||||
#define SCSI_COMMAND_VERSION_3 0x03
|
||||
#define SCSI_COMMAND_VERSION_1 0x01
|
||||
#define SCSI_COMMAND_VERSION_2 0x02
|
||||
#define SCSI_COMMAND_VERSION_3 0x03
|
||||
|
||||
//
|
||||
// SCSI Disk Timeout Experience Value
|
||||
@@ -189,7 +186,7 @@ extern EFI_COMPONENT_NAME2_PROTOCOL gScsiDiskComponentName2;
|
||||
// value is updated to 30s to follow ATA/ATAPI spec in which the device may take up to 30s
|
||||
// to respond command.
|
||||
//
|
||||
#define SCSI_DISK_TIMEOUT EFI_TIMER_PERIOD_SECONDS (30)
|
||||
#define SCSI_DISK_TIMEOUT EFI_TIMER_PERIOD_SECONDS (30)
|
||||
|
||||
/**
|
||||
Test to see if this driver supports ControllerHandle.
|
||||
@@ -267,15 +264,16 @@ ScsiDiskDriverBindingStart (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskDriverBindingStop (
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
|
||||
IN EFI_DRIVER_BINDING_PROTOCOL *This,
|
||||
IN EFI_HANDLE Controller,
|
||||
IN UINTN NumberOfChildren,
|
||||
IN EFI_HANDLE *ChildHandleBuffer OPTIONAL
|
||||
);
|
||||
|
||||
//
|
||||
// EFI Component Name Functions
|
||||
//
|
||||
|
||||
/**
|
||||
Retrieves a Unicode string that is the user readable name of the driver.
|
||||
|
||||
@@ -323,7 +321,6 @@ ScsiDiskComponentNameGetDriverName (
|
||||
OUT CHAR16 **DriverName
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Retrieves a Unicode string that is the user readable name of the controller
|
||||
that is being managed by a driver.
|
||||
@@ -395,11 +392,11 @@ ScsiDiskComponentNameGetDriverName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskComponentNameGetControllerName (
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
IN EFI_COMPONENT_NAME_PROTOCOL *This,
|
||||
IN EFI_HANDLE ControllerHandle,
|
||||
IN EFI_HANDLE ChildHandle OPTIONAL,
|
||||
IN CHAR8 *Language,
|
||||
OUT CHAR16 **ControllerName
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -418,11 +415,10 @@ ScsiDiskComponentNameGetControllerName (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskReset (
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN BOOLEAN ExtendedVerification
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
The function is to Read Block from SCSI Disk.
|
||||
|
||||
@@ -443,14 +439,13 @@ ScsiDiskReset (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskReadBlocks (
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
The function is to Write Block to SCSI Disk.
|
||||
|
||||
@@ -472,14 +467,13 @@ ScsiDiskReadBlocks (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskWriteBlocks (
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Flush Block to Disk.
|
||||
|
||||
@@ -493,10 +487,9 @@ ScsiDiskWriteBlocks (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskFlushBlocks (
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This
|
||||
IN EFI_BLOCK_IO_PROTOCOL *This
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Reset SCSI Disk.
|
||||
|
||||
@@ -545,12 +538,12 @@ ScsiDiskResetEx (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskReadBlocksEx (
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
|
||||
IN UINTN BufferSize,
|
||||
OUT VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -579,12 +572,12 @@ ScsiDiskReadBlocksEx (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskWriteBlocksEx (
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
IN EFI_BLOCK_IO2_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
|
||||
IN UINTN BufferSize,
|
||||
IN VOID *Buffer
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -638,14 +631,13 @@ ScsiDiskFlushBlocksEx (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskEraseBlocks (
|
||||
IN EFI_ERASE_BLOCK_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_ERASE_BLOCK_TOKEN *Token,
|
||||
IN UINTN Size
|
||||
IN EFI_ERASE_BLOCK_PROTOCOL *This,
|
||||
IN UINT32 MediaId,
|
||||
IN EFI_LBA Lba,
|
||||
IN OUT EFI_ERASE_BLOCK_TOKEN *Token,
|
||||
IN UINTN Size
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Send a security protocol command to a device that receives data and/or the result
|
||||
of one or more commands sent by SendData.
|
||||
@@ -713,14 +705,14 @@ ScsiDiskEraseBlocks (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskReceiveData (
|
||||
IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,
|
||||
IN UINT32 MediaId OPTIONAL,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 SecurityProtocolId,
|
||||
IN UINT16 SecurityProtocolSpecificData,
|
||||
IN UINTN PayloadBufferSize,
|
||||
OUT VOID *PayloadBuffer,
|
||||
OUT UINTN *PayloadTransferSize
|
||||
IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,
|
||||
IN UINT32 MediaId OPTIONAL,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 SecurityProtocolId,
|
||||
IN UINT16 SecurityProtocolSpecificData,
|
||||
IN UINTN PayloadBufferSize,
|
||||
OUT VOID *PayloadBuffer,
|
||||
OUT UINTN *PayloadTransferSize
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -781,16 +773,15 @@ ScsiDiskReceiveData (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskSendData (
|
||||
IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,
|
||||
IN UINT32 MediaId OPTIONAL,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 SecurityProtocolId,
|
||||
IN UINT16 SecurityProtocolSpecificData,
|
||||
IN UINTN PayloadBufferSize,
|
||||
OUT VOID *PayloadBuffer
|
||||
IN EFI_STORAGE_SECURITY_COMMAND_PROTOCOL *This,
|
||||
IN UINT32 MediaId OPTIONAL,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 SecurityProtocolId,
|
||||
IN UINT16 SecurityProtocolSpecificData,
|
||||
IN UINTN PayloadBufferSize,
|
||||
OUT VOID *PayloadBuffer
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Provides inquiry information for the controller type.
|
||||
|
||||
@@ -810,12 +801,11 @@ ScsiDiskSendData (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskInfoInquiry (
|
||||
IN EFI_DISK_INFO_PROTOCOL *This,
|
||||
IN OUT VOID *InquiryData,
|
||||
IN OUT UINT32 *InquiryDataSize
|
||||
IN EFI_DISK_INFO_PROTOCOL *This,
|
||||
IN OUT VOID *InquiryData,
|
||||
IN OUT UINT32 *InquiryDataSize
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Provides identify information for the controller type.
|
||||
|
||||
@@ -837,12 +827,11 @@ ScsiDiskInfoInquiry (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskInfoIdentify (
|
||||
IN EFI_DISK_INFO_PROTOCOL *This,
|
||||
IN OUT VOID *IdentifyData,
|
||||
IN OUT UINT32 *IdentifyDataSize
|
||||
IN EFI_DISK_INFO_PROTOCOL *This,
|
||||
IN OUT VOID *IdentifyData,
|
||||
IN OUT UINT32 *IdentifyDataSize
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Provides sense data information for the controller type.
|
||||
|
||||
@@ -863,10 +852,10 @@ ScsiDiskInfoIdentify (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskInfoSenseData (
|
||||
IN EFI_DISK_INFO_PROTOCOL *This,
|
||||
IN OUT VOID *SenseData,
|
||||
IN OUT UINT32 *SenseDataSize,
|
||||
OUT UINT8 *SenseDataNumber
|
||||
IN EFI_DISK_INFO_PROTOCOL *This,
|
||||
IN OUT VOID *SenseData,
|
||||
IN OUT UINT32 *SenseDataSize,
|
||||
OUT UINT8 *SenseDataNumber
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -883,12 +872,11 @@ ScsiDiskInfoSenseData (
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
ScsiDiskInfoWhichIde (
|
||||
IN EFI_DISK_INFO_PROTOCOL *This,
|
||||
OUT UINT32 *IdeChannel,
|
||||
OUT UINT32 *IdeDevice
|
||||
IN EFI_DISK_INFO_PROTOCOL *This,
|
||||
OUT UINT32 *IdeChannel,
|
||||
OUT UINT32 *IdeDevice
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Detect Device and read out capacity ,if error occurs, parse the sense key.
|
||||
|
||||
@@ -902,9 +890,9 @@ ScsiDiskInfoWhichIde (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskDetectMedia (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN BOOLEAN MustReadCapacity,
|
||||
OUT BOOLEAN *MediaChange
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN BOOLEAN MustReadCapacity,
|
||||
OUT BOOLEAN *MediaChange
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -925,13 +913,12 @@ ScsiDiskDetectMedia (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskTestUnitReady (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
OUT EFI_SCSI_SENSE_DATA **SenseDataArray,
|
||||
OUT UINTN *NumberOfSenseKeys
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
OUT EFI_SCSI_SENSE_DATA **SenseDataArray,
|
||||
OUT UINTN *NumberOfSenseKeys
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Parsing Sense Keys which got from request sense command.
|
||||
|
||||
@@ -946,13 +933,12 @@ ScsiDiskTestUnitReady (
|
||||
**/
|
||||
EFI_STATUS
|
||||
DetectMediaParsingSenseKeys (
|
||||
OUT SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN NumberOfSenseKeys,
|
||||
OUT UINTN *Action
|
||||
OUT SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN NumberOfSenseKeys,
|
||||
OUT UINTN *Action
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Send read capacity command to device and get the device parameter.
|
||||
|
||||
@@ -967,10 +953,10 @@ DetectMediaParsingSenseKeys (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskReadCapacity (
|
||||
IN OUT SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
OUT EFI_SCSI_SENSE_DATA **SenseDataArray,
|
||||
OUT UINTN *NumberOfSenseKeys
|
||||
IN OUT SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
OUT EFI_SCSI_SENSE_DATA **SenseDataArray,
|
||||
OUT UINTN *NumberOfSenseKeys
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -986,10 +972,9 @@ ScsiDiskReadCapacity (
|
||||
**/
|
||||
EFI_STATUS
|
||||
CheckHostAdapterStatus (
|
||||
IN UINT8 HostAdapterStatus
|
||||
IN UINT8 HostAdapterStatus
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Check the target status and re-interpret it in EFI_STATUS.
|
||||
|
||||
@@ -1002,7 +987,7 @@ CheckHostAdapterStatus (
|
||||
**/
|
||||
EFI_STATUS
|
||||
CheckTargetStatus (
|
||||
IN UINT8 TargetStatus
|
||||
IN UINT8 TargetStatus
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1024,11 +1009,11 @@ CheckTargetStatus (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskRequestSenseKeys (
|
||||
IN OUT SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
OUT EFI_SCSI_SENSE_DATA **SenseDataArray,
|
||||
OUT UINTN *NumberOfSenseKeys,
|
||||
IN BOOLEAN AskResetIfError
|
||||
IN OUT SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
OUT EFI_SCSI_SENSE_DATA **SenseDataArray,
|
||||
OUT UINTN *NumberOfSenseKeys,
|
||||
IN BOOLEAN AskResetIfError
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1043,8 +1028,8 @@ ScsiDiskRequestSenseKeys (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskInquiryDevice (
|
||||
IN OUT SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry
|
||||
IN OUT SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1055,7 +1040,7 @@ ScsiDiskInquiryDevice (
|
||||
**/
|
||||
VOID
|
||||
ParseInquiryData (
|
||||
IN OUT SCSI_DISK_DEV *ScsiDiskDevice
|
||||
IN OUT SCSI_DISK_DEV *ScsiDiskDevice
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1072,10 +1057,10 @@ ParseInquiryData (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskReadSectors (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT VOID *Buffer,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN NumberOfBlocks
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT VOID *Buffer,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN NumberOfBlocks
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1092,10 +1077,10 @@ ScsiDiskReadSectors (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskWriteSectors (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN VOID *Buffer,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN NumberOfBlocks
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN VOID *Buffer,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN NumberOfBlocks
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1115,11 +1100,11 @@ ScsiDiskWriteSectors (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskAsyncReadSectors (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT VOID *Buffer,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN NumberOfBlocks,
|
||||
IN EFI_BLOCK_IO2_TOKEN *Token
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT VOID *Buffer,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN NumberOfBlocks,
|
||||
IN EFI_BLOCK_IO2_TOKEN *Token
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1139,11 +1124,11 @@ ScsiDiskAsyncReadSectors (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskAsyncWriteSectors (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN VOID *Buffer,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN NumberOfBlocks,
|
||||
IN EFI_BLOCK_IO2_TOKEN *Token
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN VOID *Buffer,
|
||||
IN EFI_LBA Lba,
|
||||
IN UINTN NumberOfBlocks,
|
||||
IN EFI_BLOCK_IO2_TOKEN *Token
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1161,13 +1146,13 @@ ScsiDiskAsyncWriteSectors (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskRead10 (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
IN UINT64 Timeout,
|
||||
OUT UINT8 *DataBuffer,
|
||||
IN OUT UINT32 *DataLength,
|
||||
IN UINT32 StartLba,
|
||||
IN UINT32 SectorCount
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
IN UINT64 Timeout,
|
||||
OUT UINT8 *DataBuffer,
|
||||
IN OUT UINT32 *DataLength,
|
||||
IN UINT32 StartLba,
|
||||
IN UINT32 SectorCount
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1186,13 +1171,13 @@ ScsiDiskRead10 (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskWrite10 (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 *DataBuffer,
|
||||
IN OUT UINT32 *DataLength,
|
||||
IN UINT32 StartLba,
|
||||
IN UINT32 SectorCount
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 *DataBuffer,
|
||||
IN OUT UINT32 *DataLength,
|
||||
IN UINT32 StartLba,
|
||||
IN UINT32 SectorCount
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1210,13 +1195,13 @@ ScsiDiskWrite10 (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskRead16 (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
IN UINT64 Timeout,
|
||||
OUT UINT8 *DataBuffer,
|
||||
IN OUT UINT32 *DataLength,
|
||||
IN UINT64 StartLba,
|
||||
IN UINT32 SectorCount
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
IN UINT64 Timeout,
|
||||
OUT UINT8 *DataBuffer,
|
||||
IN OUT UINT32 *DataLength,
|
||||
IN UINT64 StartLba,
|
||||
IN UINT32 SectorCount
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1235,13 +1220,13 @@ ScsiDiskRead16 (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskWrite16 (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 *DataBuffer,
|
||||
IN OUT UINT32 *DataLength,
|
||||
IN UINT64 StartLba,
|
||||
IN UINT32 SectorCount
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
OUT BOOLEAN *NeedRetry,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 *DataBuffer,
|
||||
IN OUT UINT32 *DataLength,
|
||||
IN UINT64 StartLba,
|
||||
IN UINT32 SectorCount
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1266,15 +1251,15 @@ ScsiDiskWrite16 (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskAsyncRead10 (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 TimesRetry,
|
||||
OUT UINT8 *DataBuffer,
|
||||
IN UINT32 DataLength,
|
||||
IN UINT32 StartLba,
|
||||
IN UINT32 SectorCount,
|
||||
IN OUT SCSI_BLKIO2_REQUEST *BlkIo2Req,
|
||||
IN EFI_BLOCK_IO2_TOKEN *Token
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 TimesRetry,
|
||||
OUT UINT8 *DataBuffer,
|
||||
IN UINT32 DataLength,
|
||||
IN UINT32 StartLba,
|
||||
IN UINT32 SectorCount,
|
||||
IN OUT SCSI_BLKIO2_REQUEST *BlkIo2Req,
|
||||
IN EFI_BLOCK_IO2_TOKEN *Token
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1299,15 +1284,15 @@ ScsiDiskAsyncRead10 (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskAsyncWrite10 (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 TimesRetry,
|
||||
IN UINT8 *DataBuffer,
|
||||
IN UINT32 DataLength,
|
||||
IN UINT32 StartLba,
|
||||
IN UINT32 SectorCount,
|
||||
IN OUT SCSI_BLKIO2_REQUEST *BlkIo2Req,
|
||||
IN EFI_BLOCK_IO2_TOKEN *Token
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 TimesRetry,
|
||||
IN UINT8 *DataBuffer,
|
||||
IN UINT32 DataLength,
|
||||
IN UINT32 StartLba,
|
||||
IN UINT32 SectorCount,
|
||||
IN OUT SCSI_BLKIO2_REQUEST *BlkIo2Req,
|
||||
IN EFI_BLOCK_IO2_TOKEN *Token
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1332,15 +1317,15 @@ ScsiDiskAsyncWrite10 (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskAsyncRead16 (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 TimesRetry,
|
||||
OUT UINT8 *DataBuffer,
|
||||
IN UINT32 DataLength,
|
||||
IN UINT64 StartLba,
|
||||
IN UINT32 SectorCount,
|
||||
IN OUT SCSI_BLKIO2_REQUEST *BlkIo2Req,
|
||||
IN EFI_BLOCK_IO2_TOKEN *Token
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 TimesRetry,
|
||||
OUT UINT8 *DataBuffer,
|
||||
IN UINT32 DataLength,
|
||||
IN UINT64 StartLba,
|
||||
IN UINT32 SectorCount,
|
||||
IN OUT SCSI_BLKIO2_REQUEST *BlkIo2Req,
|
||||
IN EFI_BLOCK_IO2_TOKEN *Token
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1365,15 +1350,15 @@ ScsiDiskAsyncRead16 (
|
||||
**/
|
||||
EFI_STATUS
|
||||
ScsiDiskAsyncWrite16 (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 TimesRetry,
|
||||
IN UINT8 *DataBuffer,
|
||||
IN UINT32 DataLength,
|
||||
IN UINT64 StartLba,
|
||||
IN UINT32 SectorCount,
|
||||
IN OUT SCSI_BLKIO2_REQUEST *BlkIo2Req,
|
||||
IN EFI_BLOCK_IO2_TOKEN *Token
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN UINT64 Timeout,
|
||||
IN UINT8 TimesRetry,
|
||||
IN UINT8 *DataBuffer,
|
||||
IN UINT32 DataLength,
|
||||
IN UINT64 StartLba,
|
||||
IN UINT32 SectorCount,
|
||||
IN OUT SCSI_BLKIO2_REQUEST *BlkIo2Req,
|
||||
IN EFI_BLOCK_IO2_TOKEN *Token
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1401,8 +1386,8 @@ GetMediaInfo (
|
||||
**/
|
||||
BOOLEAN
|
||||
ScsiDiskIsNoMedia (
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1417,8 +1402,8 @@ ScsiDiskIsNoMedia (
|
||||
**/
|
||||
BOOLEAN
|
||||
ScsiDiskIsMediaError (
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1433,8 +1418,8 @@ ScsiDiskIsMediaError (
|
||||
**/
|
||||
BOOLEAN
|
||||
ScsiDiskIsHardwareError (
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1448,8 +1433,8 @@ ScsiDiskIsHardwareError (
|
||||
**/
|
||||
BOOLEAN
|
||||
ScsiDiskIsMediaChange (
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1464,8 +1449,8 @@ ScsiDiskIsMediaChange (
|
||||
**/
|
||||
BOOLEAN
|
||||
ScsiDiskIsResetBefore (
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1481,9 +1466,9 @@ ScsiDiskIsResetBefore (
|
||||
**/
|
||||
BOOLEAN
|
||||
ScsiDiskIsDriveReady (
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts,
|
||||
OUT BOOLEAN *RetryLater
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts,
|
||||
OUT BOOLEAN *RetryLater
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1498,8 +1483,8 @@ ScsiDiskIsDriveReady (
|
||||
**/
|
||||
BOOLEAN
|
||||
ScsiDiskHaveSenseKey (
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts
|
||||
IN EFI_SCSI_SENSE_DATA *SenseData,
|
||||
IN UINTN SenseCounts
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1510,7 +1495,7 @@ ScsiDiskHaveSenseKey (
|
||||
**/
|
||||
VOID
|
||||
ReleaseScsiDiskDeviceResources (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1525,7 +1510,7 @@ ReleaseScsiDiskDeviceResources (
|
||||
**/
|
||||
BOOLEAN
|
||||
DetermineInstallBlockIo (
|
||||
IN EFI_HANDLE ChildHandle
|
||||
IN EFI_HANDLE ChildHandle
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1542,8 +1527,8 @@ DetermineInstallBlockIo (
|
||||
**/
|
||||
VOID
|
||||
InitializeInstallDiskInfo (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN EFI_HANDLE ChildHandle
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN EFI_HANDLE ChildHandle
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1561,8 +1546,8 @@ InitializeInstallDiskInfo (
|
||||
VOID *
|
||||
EFIAPI
|
||||
GetParentProtocol (
|
||||
IN EFI_GUID *ProtocolGuid,
|
||||
IN EFI_HANDLE ChildHandle
|
||||
IN EFI_GUID *ProtocolGuid,
|
||||
IN EFI_HANDLE ChildHandle
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1577,8 +1562,8 @@ GetParentProtocol (
|
||||
**/
|
||||
BOOLEAN
|
||||
DetermineInstallEraseBlock (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN EFI_HANDLE ChildHandle
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN EFI_HANDLE ChildHandle
|
||||
);
|
||||
|
||||
/**
|
||||
@@ -1593,8 +1578,8 @@ DetermineInstallEraseBlock (
|
||||
**/
|
||||
BOOLEAN
|
||||
DetermineInstallStorageSecurity (
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN EFI_HANDLE ChildHandle
|
||||
IN SCSI_DISK_DEV *ScsiDiskDevice,
|
||||
IN EFI_HANDLE ChildHandle
|
||||
);
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user