\r
**/\r
\r
-\r
#include "ScsiBus.h"\r
\r
-\r
-EFI_DRIVER_BINDING_PROTOCOL gSCSIBusDriverBinding = {\r
+EFI_DRIVER_BINDING_PROTOCOL gSCSIBusDriverBinding = {\r
SCSIBusDriverBindingSupported,\r
SCSIBusDriverBindingStart,\r
SCSIBusDriverBindingStop,\r
**/\r
VOID *\r
AllocateAlignedBuffer (\r
- IN SCSI_IO_DEV *ScsiIoDevice,\r
- IN UINTN BufferSize\r
+ IN SCSI_IO_DEV *ScsiIoDevice,\r
+ IN UINTN BufferSize\r
)\r
{\r
return AllocateAlignedPages (EFI_SIZE_TO_PAGES (BufferSize), ScsiIoDevice->ScsiIo.IoAlign);\r
**/\r
VOID\r
FreeAlignedBuffer (\r
- IN VOID *Buffer,\r
- IN UINTN BufferSize\r
+ IN VOID *Buffer,\r
+ IN UINTN BufferSize\r
)\r
{\r
if (Buffer != NULL) {\r
**/\r
EFI_STATUS\r
EFIAPI\r
-InitializeScsiBus(\r
- IN EFI_HANDLE ImageHandle,\r
- IN EFI_SYSTEM_TABLE *SystemTable\r
+InitializeScsiBus (\r
+ IN EFI_HANDLE ImageHandle,\r
+ IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
\r
//\r
// Install driver model protocol(s).\r
return Status;\r
}\r
\r
-\r
/**\r
Test to see if this driver supports ControllerHandle.\r
\r
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_SCSI_PASS_THRU_PROTOCOL *PassThru;\r
- EFI_EXT_SCSI_PASS_THRU_PROTOCOL *ExtPassThru;\r
- UINT64 Lun;\r
- UINT8 *TargetId;\r
- SCSI_TARGET_ID ScsiTargetId;\r
+ EFI_STATUS Status;\r
+ EFI_SCSI_PASS_THRU_PROTOCOL *PassThru;\r
+ EFI_EXT_SCSI_PASS_THRU_PROTOCOL *ExtPassThru;\r
+ UINT64 Lun;\r
+ UINT8 *TargetId;\r
+ SCSI_TARGET_ID ScsiTargetId;\r
\r
TargetId = &ScsiTargetId.ScsiId.ExtScsi[0];\r
SetMem (TargetId, TARGET_MAX_BYTES, 0xFF);\r
\r
if (Status == EFI_ALREADY_STARTED) {\r
return EFI_SUCCESS;\r
- } else if (!EFI_ERROR(Status)) {\r
+ } else if (!EFI_ERROR (Status)) {\r
//\r
// Check if RemainingDevicePath is NULL or the End of Device Path Node,\r
// if yes, return EFI_SUCCESS.\r
This->DriverBindingHandle,\r
Controller\r
);\r
- if (!EFI_ERROR(Status)) {\r
+ if (!EFI_ERROR (Status)) {\r
return EFI_SUCCESS;\r
}\r
}\r
return Status;\r
}\r
\r
-\r
/**\r
Start this driver on ControllerHandle.\r
\r
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath\r
)\r
{\r
- UINT64 Lun;\r
- UINT8 *TargetId;\r
- BOOLEAN ScanOtherPuns;\r
- BOOLEAN FromFirstTarget;\r
- BOOLEAN ExtScsiSupport;\r
- EFI_STATUS Status;\r
- EFI_STATUS DevicePathStatus;\r
- EFI_STATUS PassThruStatus;\r
- SCSI_BUS_DEVICE *ScsiBusDev;\r
- SCSI_TARGET_ID ScsiTargetId;\r
- EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;\r
- EFI_SCSI_PASS_THRU_PROTOCOL *ScsiInterface;\r
- EFI_EXT_SCSI_PASS_THRU_PROTOCOL *ExtScsiInterface;\r
- EFI_SCSI_BUS_PROTOCOL *BusIdentify;\r
+ UINT64 Lun;\r
+ UINT8 *TargetId;\r
+ BOOLEAN ScanOtherPuns;\r
+ BOOLEAN FromFirstTarget;\r
+ BOOLEAN ExtScsiSupport;\r
+ EFI_STATUS Status;\r
+ EFI_STATUS DevicePathStatus;\r
+ EFI_STATUS PassThruStatus;\r
+ SCSI_BUS_DEVICE *ScsiBusDev;\r
+ SCSI_TARGET_ID ScsiTargetId;\r
+ EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;\r
+ EFI_SCSI_PASS_THRU_PROTOCOL *ScsiInterface;\r
+ EFI_EXT_SCSI_PASS_THRU_PROTOCOL *ExtScsiInterface;\r
+ EFI_SCSI_BUS_PROTOCOL *BusIdentify;\r
\r
TargetId = NULL;\r
ScanOtherPuns = TRUE;\r
DevicePathStatus = gBS->OpenProtocol (\r
Controller,\r
&gEfiDevicePathProtocolGuid,\r
- (VOID **) &ParentDevicePath,\r
+ (VOID **)&ParentDevicePath,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiExtScsiPassThruProtocolGuid,\r
- (VOID **) &ExtScsiInterface,\r
+ (VOID **)&ExtScsiInterface,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
//\r
// Fail to open UEFI ExtendPassThru Protocol, then try to open EFI PassThru Protocol instead.\r
//\r
- if (EFI_ERROR(Status) && (Status != EFI_ALREADY_STARTED)) {\r
+ if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) {\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiScsiPassThruProtocolGuid,\r
- (VOID **) &ScsiInterface,\r
+ (VOID **)&ScsiInterface,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
// Fail to open EFI PassThru Protocol, Close the DevicePathProtocol if it is opened by this time.\r
//\r
if (EFI_ERROR (Status) && (Status != EFI_ALREADY_STARTED)) {\r
- if (!EFI_ERROR(DevicePathStatus)) {\r
+ if (!EFI_ERROR (DevicePathStatus)) {\r
gBS->CloseProtocol (\r
Controller,\r
&gEfiDevicePathProtocolGuid,\r
Controller\r
);\r
}\r
+\r
return Status;\r
}\r
} else {\r
PassThruStatus = gBS->OpenProtocol (\r
Controller,\r
&gEfiScsiPassThruProtocolGuid,\r
- (VOID **) &ScsiInterface,\r
+ (VOID **)&ScsiInterface,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_BY_DRIVER\r
// on this handle for this time. Then construct Host controller private data.\r
//\r
ScsiBusDev = NULL;\r
- ScsiBusDev = AllocateZeroPool(sizeof(SCSI_BUS_DEVICE));\r
+ ScsiBusDev = AllocateZeroPool (sizeof (SCSI_BUS_DEVICE));\r
if (ScsiBusDev == NULL) {\r
Status = EFI_OUT_OF_RESOURCES;\r
goto ErrorExit;\r
}\r
- ScsiBusDev->Signature = SCSI_BUS_DEVICE_SIGNATURE;\r
- ScsiBusDev->ExtScsiSupport = ExtScsiSupport;\r
- ScsiBusDev->DevicePath = ParentDevicePath;\r
+\r
+ ScsiBusDev->Signature = SCSI_BUS_DEVICE_SIGNATURE;\r
+ ScsiBusDev->ExtScsiSupport = ExtScsiSupport;\r
+ ScsiBusDev->DevicePath = ParentDevicePath;\r
if (ScsiBusDev->ExtScsiSupport) {\r
ScsiBusDev->ExtScsiInterface = ExtScsiInterface;\r
} else {\r
- ScsiBusDev->ScsiInterface = ScsiInterface;\r
+ ScsiBusDev->ScsiInterface = ScsiInterface;\r
}\r
\r
//\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiCallerIdGuid,\r
- (VOID **) &BusIdentify,\r
+ (VOID **)&BusIdentify,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
ScsiBusDev = SCSI_BUS_CONTROLLER_DEVICE_FROM_THIS (BusIdentify);\r
}\r
\r
ParentDevicePath\r
);\r
\r
- Lun = 0;\r
+ Lun = 0;\r
if (RemainingDevicePath == NULL) {\r
//\r
// If RemainingDevicePath is NULL,\r
ScanOtherPuns = FALSE;\r
}\r
\r
- while(ScanOtherPuns) {\r
+ while (ScanOtherPuns) {\r
if (FromFirstTarget) {\r
//\r
// Remaining Device Path is NULL, scan all the possible Puns in the\r
} else {\r
Status = ScsiBusDev->ScsiInterface->GetNextDevice (ScsiBusDev->ScsiInterface, &ScsiTargetId.ScsiId.Scsi, &Lun);\r
}\r
+\r
if (EFI_ERROR (Status)) {\r
//\r
// no legal Pun and Lun found any more\r
} else {\r
ScanOtherPuns = FALSE;\r
}\r
+\r
//\r
// Avoid creating handle for the host adapter.\r
//\r
continue;\r
}\r
}\r
+\r
//\r
// Scan for the scsi device, if it attaches to the scsi bus,\r
// then create handle and install scsi i/o protocol.\r
//\r
Status = ScsiScanCreateDevice (This, Controller, &ScsiTargetId, Lun, ScsiBusDev);\r
}\r
+\r
return EFI_SUCCESS;\r
\r
ErrorExit:\r
Controller\r
);\r
}\r
+\r
return Status;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
SCSIBusDriverBindingStop (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN UINTN NumberOfChildren,\r
- IN EFI_HANDLE *ChildHandleBuffer\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN UINTN NumberOfChildren,\r
+ IN EFI_HANDLE *ChildHandleBuffer\r
)\r
{\r
- EFI_STATUS Status;\r
- BOOLEAN AllChildrenStopped;\r
- UINTN Index;\r
- EFI_SCSI_IO_PROTOCOL *ScsiIo;\r
- SCSI_IO_DEV *ScsiIoDevice;\r
- VOID *ScsiPassThru;\r
- EFI_SCSI_BUS_PROTOCOL *Scsidentifier;\r
- SCSI_BUS_DEVICE *ScsiBusDev;\r
+ EFI_STATUS Status;\r
+ BOOLEAN AllChildrenStopped;\r
+ UINTN Index;\r
+ EFI_SCSI_IO_PROTOCOL *ScsiIo;\r
+ SCSI_IO_DEV *ScsiIoDevice;\r
+ VOID *ScsiPassThru;\r
+ EFI_SCSI_BUS_PROTOCOL *Scsidentifier;\r
+ SCSI_BUS_DEVICE *ScsiBusDev;\r
\r
if (NumberOfChildren == 0) {\r
//\r
Status = gBS->OpenProtocol (\r
Controller,\r
&gEfiCallerIdGuid,\r
- (VOID **) &Scsidentifier,\r
+ (VOID **)&Scsidentifier,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
AllChildrenStopped = TRUE;\r
\r
for (Index = 0; Index < NumberOfChildren; Index++) {\r
-\r
Status = gBS->OpenProtocol (\r
ChildHandleBuffer[Index],\r
&gEfiScsiIoProtocolGuid,\r
- (VOID **) &ScsiIo,\r
+ (VOID **)&ScsiIo,\r
This->DriverBindingHandle,\r
Controller,\r
EFI_OPEN_PROTOCOL_GET_PROTOCOL\r
This->DriverBindingHandle,\r
ChildHandleBuffer[Index]\r
);\r
-\r
} else {\r
Status = gBS->CloseProtocol (\r
Controller,\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Retrieves the device type information of the SCSI Controller.\r
\r
EFI_STATUS\r
EFIAPI\r
ScsiGetDeviceType (\r
- IN EFI_SCSI_IO_PROTOCOL *This,\r
- OUT UINT8 *DeviceType\r
+ IN EFI_SCSI_IO_PROTOCOL *This,\r
+ OUT UINT8 *DeviceType\r
)\r
{\r
- SCSI_IO_DEV *ScsiIoDevice;\r
+ SCSI_IO_DEV *ScsiIoDevice;\r
\r
if (DeviceType == NULL) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- ScsiIoDevice = SCSI_IO_DEV_FROM_THIS (This);\r
- *DeviceType = ScsiIoDevice->ScsiDeviceType;\r
+ ScsiIoDevice = SCSI_IO_DEV_FROM_THIS (This);\r
+ *DeviceType = ScsiIoDevice->ScsiDeviceType;\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Retrieves the device location in the SCSI channel.\r
\r
EFI_STATUS\r
EFIAPI\r
ScsiGetDeviceLocation (\r
- IN EFI_SCSI_IO_PROTOCOL *This,\r
- IN OUT UINT8 **Target,\r
- OUT UINT64 *Lun\r
+ IN EFI_SCSI_IO_PROTOCOL *This,\r
+ IN OUT UINT8 **Target,\r
+ OUT UINT64 *Lun\r
)\r
{\r
- SCSI_IO_DEV *ScsiIoDevice;\r
+ SCSI_IO_DEV *ScsiIoDevice;\r
\r
- if (Target == NULL || Lun == NULL) {\r
+ if ((Target == NULL) || (Lun == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
ScsiIoDevice = SCSI_IO_DEV_FROM_THIS (This);\r
\r
- CopyMem (*Target,&ScsiIoDevice->Pun, TARGET_MAX_BYTES);\r
+ CopyMem (*Target, &ScsiIoDevice->Pun, TARGET_MAX_BYTES);\r
\r
- *Lun = ScsiIoDevice->Lun;\r
+ *Lun = ScsiIoDevice->Lun;\r
\r
return EFI_SUCCESS;\r
}\r
EFI_STATUS\r
EFIAPI\r
ScsiResetBus (\r
- IN EFI_SCSI_IO_PROTOCOL *This\r
+ IN EFI_SCSI_IO_PROTOCOL *This\r
)\r
{\r
- SCSI_IO_DEV *ScsiIoDevice;\r
+ SCSI_IO_DEV *ScsiIoDevice;\r
\r
ScsiIoDevice = SCSI_IO_DEV_FROM_THIS (This);\r
\r
ScsiIoDevice->ScsiBusDeviceData->DevicePath\r
);\r
\r
- if (ScsiIoDevice->ExtScsiSupport){\r
+ if (ScsiIoDevice->ExtScsiSupport) {\r
return ScsiIoDevice->ExtScsiPassThru->ResetChannel (ScsiIoDevice->ExtScsiPassThru);\r
} else {\r
return ScsiIoDevice->ScsiPassThru->ResetChannel (ScsiIoDevice->ScsiPassThru);\r
}\r
}\r
\r
-\r
/**\r
Resets the SCSI Controller that the device handle specifies.\r
\r
EFI_STATUS\r
EFIAPI\r
ScsiResetDevice (\r
- IN EFI_SCSI_IO_PROTOCOL *This\r
+ IN EFI_SCSI_IO_PROTOCOL *This\r
)\r
{\r
SCSI_IO_DEV *ScsiIoDevice;\r
ScsiIoDevice->ScsiBusDeviceData->DevicePath\r
);\r
\r
- CopyMem (Target,&ScsiIoDevice->Pun, TARGET_MAX_BYTES);\r
-\r
+ CopyMem (Target, &ScsiIoDevice->Pun, TARGET_MAX_BYTES);\r
\r
if (ScsiIoDevice->ExtScsiSupport) {\r
return ScsiIoDevice->ExtScsiPassThru->ResetTargetLun (\r
- ScsiIoDevice->ExtScsiPassThru,\r
- Target,\r
- ScsiIoDevice->Lun\r
- );\r
+ ScsiIoDevice->ExtScsiPassThru,\r
+ Target,\r
+ ScsiIoDevice->Lun\r
+ );\r
} else {\r
return ScsiIoDevice->ScsiPassThru->ResetTarget (\r
- ScsiIoDevice->ScsiPassThru,\r
- ScsiIoDevice->Pun.ScsiId.Scsi,\r
- ScsiIoDevice->Lun\r
- );\r
+ ScsiIoDevice->ScsiPassThru,\r
+ ScsiIoDevice->Pun.ScsiId.Scsi,\r
+ ScsiIoDevice->Lun\r
+ );\r
}\r
}\r
\r
-\r
/**\r
Sends a SCSI Request Packet to the SCSI Controller for execution.\r
\r
EFI_STATUS\r
EFIAPI\r
ScsiExecuteSCSICommand (\r
- IN EFI_SCSI_IO_PROTOCOL *This,\r
- IN OUT EFI_SCSI_IO_SCSI_REQUEST_PACKET *Packet,\r
- IN EFI_EVENT Event OPTIONAL\r
+ IN EFI_SCSI_IO_PROTOCOL *This,\r
+ IN OUT EFI_SCSI_IO_SCSI_REQUEST_PACKET *Packet,\r
+ IN EFI_EVENT Event OPTIONAL\r
)\r
{\r
SCSI_IO_DEV *ScsiIoDevice;\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- ScsiIoDevice = SCSI_IO_DEV_FROM_THIS (This);\r
- CopyMem (Target,&ScsiIoDevice->Pun, TARGET_MAX_BYTES);\r
+ ScsiIoDevice = SCSI_IO_DEV_FROM_THIS (This);\r
+ CopyMem (Target, &ScsiIoDevice->Pun, TARGET_MAX_BYTES);\r
\r
if (ScsiIoDevice->ExtScsiSupport) {\r
- ExtRequestPacket = (EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *) Packet;\r
+ ExtRequestPacket = (EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *)Packet;\r
\r
if (((ScsiIoDevice->ExtScsiPassThru->Mode->Attributes & EFI_SCSI_PASS_THRU_ATTRIBUTES_NONBLOCKIO) != 0) && (Event != NULL)) {\r
Status = ScsiIoDevice->ExtScsiPassThru->PassThru (\r
ExtRequestPacket,\r
NULL\r
);\r
- if ((!EFI_ERROR(Status)) && (Event != NULL)) {\r
+ if ((!EFI_ERROR (Status)) && (Event != NULL)) {\r
//\r
// Signal Event to tell caller to pick up the SCSI IO packet if the\r
// PassThru() succeeds.\r
}\r
}\r
} else {\r
-\r
- mWorkingBuffer = AllocatePool (sizeof(EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET));\r
+ mWorkingBuffer = AllocatePool (sizeof (EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET));\r
\r
if (mWorkingBuffer == NULL) {\r
return EFI_DEVICE_ERROR;\r
//\r
// Convert package into EFI1.0, EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET.\r
//\r
- Status = ScsiioToPassThruPacket(Packet, (EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET*)mWorkingBuffer);\r
- if (EFI_ERROR(Status)) {\r
- FreePool(mWorkingBuffer);\r
+ Status = ScsiioToPassThruPacket (Packet, (EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *)mWorkingBuffer);\r
+ if (EFI_ERROR (Status)) {\r
+ FreePool (mWorkingBuffer);\r
return Status;\r
}\r
\r
if (((ScsiIoDevice->ScsiPassThru->Mode->Attributes & EFI_SCSI_PASS_THRU_ATTRIBUTES_NONBLOCKIO) != 0) && (Event != NULL)) {\r
- EventData.Data1 = (VOID*)Packet;\r
+ EventData.Data1 = (VOID *)Packet;\r
EventData.Data2 = Event;\r
//\r
// Create Event\r
//\r
Status = gBS->CreateEvent (\r
- EVT_NOTIFY_SIGNAL,\r
- TPL_NOTIFY,\r
- NotifyFunction,\r
- &EventData,\r
- &PacketEvent\r
- );\r
- if (EFI_ERROR(Status)) {\r
- FreePool(mWorkingBuffer);\r
+ EVT_NOTIFY_SIGNAL,\r
+ TPL_NOTIFY,\r
+ NotifyFunction,\r
+ &EventData,\r
+ &PacketEvent\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ FreePool (mWorkingBuffer);\r
return Status;\r
}\r
\r
Status = ScsiIoDevice->ScsiPassThru->PassThru (\r
- ScsiIoDevice->ScsiPassThru,\r
- ScsiIoDevice->Pun.ScsiId.Scsi,\r
- ScsiIoDevice->Lun,\r
- mWorkingBuffer,\r
- PacketEvent\r
- );\r
+ ScsiIoDevice->ScsiPassThru,\r
+ ScsiIoDevice->Pun.ScsiId.Scsi,\r
+ ScsiIoDevice->Lun,\r
+ mWorkingBuffer,\r
+ PacketEvent\r
+ );\r
\r
- if (EFI_ERROR(Status)) {\r
- FreePool(mWorkingBuffer);\r
- gBS->CloseEvent(PacketEvent);\r
+ if (EFI_ERROR (Status)) {\r
+ FreePool (mWorkingBuffer);\r
+ gBS->CloseEvent (PacketEvent);\r
return Status;\r
}\r
-\r
} else {\r
//\r
// If there's no event or SCSI Device doesn't support NON-BLOCKING, just convert\r
// EFI1.0 PassThru packet back to UEFI2.0 SCSI IO Packet.\r
//\r
Status = ScsiIoDevice->ScsiPassThru->PassThru (\r
- ScsiIoDevice->ScsiPassThru,\r
- ScsiIoDevice->Pun.ScsiId.Scsi,\r
- ScsiIoDevice->Lun,\r
- mWorkingBuffer,\r
- NULL\r
- );\r
- if (EFI_ERROR(Status)) {\r
- FreePool(mWorkingBuffer);\r
+ ScsiIoDevice->ScsiPassThru,\r
+ ScsiIoDevice->Pun.ScsiId.Scsi,\r
+ ScsiIoDevice->Lun,\r
+ mWorkingBuffer,\r
+ NULL\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ FreePool (mWorkingBuffer);\r
return Status;\r
}\r
\r
- PassThruToScsiioPacket((EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET*)mWorkingBuffer,Packet);\r
+ PassThruToScsiioPacket ((EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *)mWorkingBuffer, Packet);\r
//\r
// After converting EFI1.0 PassThru Packet back to UEFI2.0 SCSI IO Packet,\r
// free mWorkingBuffer.\r
//\r
- FreePool(mWorkingBuffer);\r
+ FreePool (mWorkingBuffer);\r
\r
//\r
// Signal Event to tell caller to pick up the SCSI IO Packet.\r
}\r
}\r
}\r
+\r
return Status;\r
}\r
\r
-\r
/**\r
Scan SCSI Bus to discover the device, and attach ScsiIoProtocol to it.\r
\r
EFI_STATUS\r
EFIAPI\r
ScsiScanCreateDevice (\r
- IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
- IN EFI_HANDLE Controller,\r
- IN SCSI_TARGET_ID *TargetId,\r
- IN UINT64 Lun,\r
- IN OUT SCSI_BUS_DEVICE *ScsiBusDev\r
+ IN EFI_DRIVER_BINDING_PROTOCOL *This,\r
+ IN EFI_HANDLE Controller,\r
+ IN SCSI_TARGET_ID *TargetId,\r
+ IN UINT64 Lun,\r
+ IN OUT SCSI_BUS_DEVICE *ScsiBusDev\r
)\r
{\r
EFI_STATUS Status;\r
EFI_DEVICE_PATH_PROTOCOL *ScsiDevicePath;\r
EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath;\r
- EFI_HANDLE DeviceHandle;\r
+ EFI_HANDLE DeviceHandle;\r
\r
DevicePath = NULL;\r
RemainingDevicePath = NULL;\r
//\r
// Build Device Path\r
//\r
- if (ScsiBusDev->ExtScsiSupport){\r
+ if (ScsiBusDev->ExtScsiSupport) {\r
Status = ScsiBusDev->ExtScsiInterface->BuildDevicePath (\r
ScsiBusDev->ExtScsiInterface,\r
&TargetId->ScsiId.ExtScsi[0],\r
);\r
}\r
\r
- if (EFI_ERROR(Status)) {\r
+ if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
\r
goto ErrorExit;\r
}\r
\r
- DeviceHandle = NULL;\r
+ DeviceHandle = NULL;\r
RemainingDevicePath = DevicePath;\r
- Status = gBS->LocateDevicePath (&gEfiDevicePathProtocolGuid, &RemainingDevicePath, &DeviceHandle);\r
- if (!EFI_ERROR (Status) && (DeviceHandle != NULL) && IsDevicePathEnd(RemainingDevicePath)) {\r
+ Status = gBS->LocateDevicePath (&gEfiDevicePathProtocolGuid, &RemainingDevicePath, &DeviceHandle);\r
+ if (!EFI_ERROR (Status) && (DeviceHandle != NULL) && IsDevicePathEnd (RemainingDevicePath)) {\r
//\r
// The device has been started, directly return to fast boot.\r
//\r
goto ErrorExit;\r
}\r
\r
- ScsiIoDevice->Signature = SCSI_IO_DEV_SIGNATURE;\r
- ScsiIoDevice->ScsiBusDeviceData = ScsiBusDev;\r
- CopyMem(&ScsiIoDevice->Pun, TargetId, TARGET_MAX_BYTES);\r
- ScsiIoDevice->Lun = Lun;\r
+ ScsiIoDevice->Signature = SCSI_IO_DEV_SIGNATURE;\r
+ ScsiIoDevice->ScsiBusDeviceData = ScsiBusDev;\r
+ CopyMem (&ScsiIoDevice->Pun, TargetId, TARGET_MAX_BYTES);\r
+ ScsiIoDevice->Lun = Lun;\r
\r
if (ScsiBusDev->ExtScsiSupport) {\r
- ScsiIoDevice->ExtScsiPassThru = ScsiBusDev->ExtScsiInterface;\r
- ScsiIoDevice->ExtScsiSupport = TRUE;\r
- ScsiIoDevice->ScsiIo.IoAlign = ScsiIoDevice->ExtScsiPassThru->Mode->IoAlign;\r
-\r
+ ScsiIoDevice->ExtScsiPassThru = ScsiBusDev->ExtScsiInterface;\r
+ ScsiIoDevice->ExtScsiSupport = TRUE;\r
+ ScsiIoDevice->ScsiIo.IoAlign = ScsiIoDevice->ExtScsiPassThru->Mode->IoAlign;\r
} else {\r
- ScsiIoDevice->ScsiPassThru = ScsiBusDev->ScsiInterface;\r
- ScsiIoDevice->ExtScsiSupport = FALSE;\r
- ScsiIoDevice->ScsiIo.IoAlign = ScsiIoDevice->ScsiPassThru->Mode->IoAlign;\r
+ ScsiIoDevice->ScsiPassThru = ScsiBusDev->ScsiInterface;\r
+ ScsiIoDevice->ExtScsiSupport = FALSE;\r
+ ScsiIoDevice->ScsiIo.IoAlign = ScsiIoDevice->ScsiPassThru->Mode->IoAlign;\r
}\r
\r
ScsiIoDevice->ScsiIo.GetDeviceType = ScsiGetDeviceType;\r
gBS->OpenProtocol (\r
Controller,\r
&gEfiExtScsiPassThruProtocolGuid,\r
- (VOID **) &(ScsiBusDev->ExtScsiInterface),\r
+ (VOID **)&(ScsiBusDev->ExtScsiInterface),\r
This->DriverBindingHandle,\r
ScsiIoDevice->Handle,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
);\r
- } else {\r
+ } else {\r
gBS->OpenProtocol (\r
Controller,\r
&gEfiScsiPassThruProtocolGuid,\r
- (VOID **) &(ScsiBusDev->ScsiInterface),\r
+ (VOID **)&(ScsiBusDev->ScsiInterface),\r
This->DriverBindingHandle,\r
ScsiIoDevice->Handle,\r
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER\r
);\r
- }\r
+ }\r
}\r
+\r
return EFI_SUCCESS;\r
\r
ErrorExit:\r
return Status;\r
}\r
\r
-\r
/**\r
Discovery SCSI Device\r
\r
**/\r
BOOLEAN\r
DiscoverScsiDevice (\r
- IN OUT SCSI_IO_DEV *ScsiIoDevice\r
+ IN OUT SCSI_IO_DEV *ScsiIoDevice\r
)\r
{\r
- EFI_STATUS Status;\r
- UINT32 InquiryDataLength;\r
- UINT8 SenseDataLength;\r
- UINT8 HostAdapterStatus;\r
- UINT8 TargetStatus;\r
- EFI_SCSI_INQUIRY_DATA *InquiryData;\r
- EFI_SCSI_SENSE_DATA *SenseData;\r
- UINT8 MaxRetry;\r
- UINT8 Index;\r
- BOOLEAN ScsiDeviceFound;\r
+ EFI_STATUS Status;\r
+ UINT32 InquiryDataLength;\r
+ UINT8 SenseDataLength;\r
+ UINT8 HostAdapterStatus;\r
+ UINT8 TargetStatus;\r
+ EFI_SCSI_INQUIRY_DATA *InquiryData;\r
+ EFI_SCSI_SENSE_DATA *SenseData;\r
+ UINT8 MaxRetry;\r
+ UINT8 Index;\r
+ BOOLEAN ScsiDeviceFound;\r
\r
HostAdapterStatus = 0;\r
TargetStatus = 0;\r
MaxRetry = 2;\r
for (Index = 0; Index < MaxRetry; Index++) {\r
Status = ScsiInquiryCommand (\r
- &ScsiIoDevice->ScsiIo,\r
- SCSI_BUS_TIMEOUT,\r
- SenseData,\r
- &SenseDataLength,\r
- &HostAdapterStatus,\r
- &TargetStatus,\r
- (VOID *) InquiryData,\r
- &InquiryDataLength,\r
- FALSE\r
- );\r
+ &ScsiIoDevice->ScsiIo,\r
+ SCSI_BUS_TIMEOUT,\r
+ SenseData,\r
+ &SenseDataLength,\r
+ &HostAdapterStatus,\r
+ &TargetStatus,\r
+ (VOID *)InquiryData,\r
+ &InquiryDataLength,\r
+ FALSE\r
+ );\r
if (!EFI_ERROR (Status)) {\r
if ((HostAdapterStatus == EFI_SCSI_IO_STATUS_HOST_ADAPTER_OK) &&\r
(TargetStatus == EFI_SCSI_IO_STATUS_TARGET_CHECK_CONDITION) &&\r
(SenseData->Error_Code == 0x70) &&\r
- (SenseData->Sense_Key == EFI_SCSI_SK_ILLEGAL_REQUEST)) {\r
+ (SenseData->Sense_Key == EFI_SCSI_SK_ILLEGAL_REQUEST))\r
+ {\r
ScsiDeviceFound = FALSE;\r
goto Done;\r
}\r
+\r
break;\r
}\r
+\r
if ((Status == EFI_BAD_BUFFER_SIZE) ||\r
(Status == EFI_INVALID_PARAMETER) ||\r
- (Status == EFI_UNSUPPORTED)) {\r
+ (Status == EFI_UNSUPPORTED))\r
+ {\r
ScsiDeviceFound = FALSE;\r
goto Done;\r
}\r
}\r
\r
if ((InquiryData->Peripheral_Type >= EFI_SCSI_TYPE_RESERVED_LOW) &&\r
- (InquiryData->Peripheral_Type <= EFI_SCSI_TYPE_RESERVED_HIGH)) {\r
+ (InquiryData->Peripheral_Type <= EFI_SCSI_TYPE_RESERVED_HIGH))\r
+ {\r
ScsiDeviceFound = FALSE;\r
goto Done;\r
}\r
//\r
// ANSI-approved version\r
//\r
- ScsiIoDevice->ScsiVersion = (UINT8) (InquiryData->Version & 0x07);\r
+ ScsiIoDevice->ScsiVersion = (UINT8)(InquiryData->Version & 0x07);\r
}\r
\r
ScsiDeviceFound = TRUE;\r
return ScsiDeviceFound;\r
}\r
\r
-\r
/**\r
Convert EFI_SCSI_IO_SCSI_REQUEST_PACKET packet to EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET packet.\r
\r
)\r
{\r
//\r
- //EFI 1.10 doesn't support Bi-Direction Command.\r
+ // EFI 1.10 doesn't support Bi-Direction Command.\r
//\r
if (Packet->DataDirection == EFI_SCSI_IO_DATA_DIRECTION_BIDIRECTIONAL) {\r
return EFI_UNSUPPORTED;\r
CommandPacket->SenseDataLength = Packet->SenseDataLength;\r
\r
if (Packet->DataDirection == EFI_SCSI_IO_DATA_DIRECTION_READ) {\r
- CommandPacket->DataBuffer = Packet->InDataBuffer;\r
+ CommandPacket->DataBuffer = Packet->InDataBuffer;\r
CommandPacket->TransferLength = Packet->InTransferLength;\r
} else if (Packet->DataDirection == EFI_SCSI_IO_DATA_DIRECTION_WRITE) {\r
- CommandPacket->DataBuffer = Packet->OutDataBuffer;\r
+ CommandPacket->DataBuffer = Packet->OutDataBuffer;\r
CommandPacket->TransferLength = Packet->OutTransferLength;\r
}\r
+\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
Convert EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET packet to EFI_SCSI_IO_SCSI_REQUEST_PACKET packet.\r
\r
Packet->SenseDataLength = ScsiPacket->SenseDataLength;\r
\r
if (ScsiPacket->DataDirection == EFI_SCSI_IO_DATA_DIRECTION_READ) {\r
- Packet->InDataBuffer = ScsiPacket->DataBuffer;\r
+ Packet->InDataBuffer = ScsiPacket->DataBuffer;\r
Packet->InTransferLength = ScsiPacket->TransferLength;\r
} else if (Packet->DataDirection == EFI_SCSI_IO_DATA_DIRECTION_WRITE) {\r
- Packet->OutDataBuffer = ScsiPacket->DataBuffer;\r
+ Packet->OutDataBuffer = ScsiPacket->DataBuffer;\r
Packet->OutTransferLength = ScsiPacket->TransferLength;\r
}\r
\r
IN VOID *Context\r
)\r
{\r
- EFI_SCSI_IO_SCSI_REQUEST_PACKET *Packet;\r
- EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *ScsiPacket;\r
- EFI_EVENT CallerEvent;\r
- SCSI_EVENT_DATA *PassData;\r
+ EFI_SCSI_IO_SCSI_REQUEST_PACKET *Packet;\r
+ EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *ScsiPacket;\r
+ EFI_EVENT CallerEvent;\r
+ SCSI_EVENT_DATA *PassData;\r
\r
- PassData = (SCSI_EVENT_DATA*)Context;\r
- Packet = (EFI_SCSI_IO_SCSI_REQUEST_PACKET *)PassData->Data1;\r
- ScsiPacket = (EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET*)mWorkingBuffer;\r
+ PassData = (SCSI_EVENT_DATA *)Context;\r
+ Packet = (EFI_SCSI_IO_SCSI_REQUEST_PACKET *)PassData->Data1;\r
+ ScsiPacket = (EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *)mWorkingBuffer;\r
\r
//\r
// Convert EFI1.0 PassThru packet to UEFI2.0 SCSI IO Packet.\r
//\r
- PassThruToScsiioPacket(ScsiPacket, Packet);\r
+ PassThruToScsiioPacket (ScsiPacket, Packet);\r
\r
//\r
// After converting EFI1.0 PassThru Packet back to UEFI2.0 SCSI IO Packet,\r
// free mWorkingBuffer.\r
//\r
- gBS->FreePool(mWorkingBuffer);\r
+ gBS->FreePool (mWorkingBuffer);\r
\r
//\r
// Signal Event to tell caller to pick up UEFI2.0 SCSI IO Packet.\r
//\r
CallerEvent = PassData->Data2;\r
- gBS->CloseEvent(Event);\r
- gBS->SignalEvent(CallerEvent);\r
+ gBS->CloseEvent (Event);\r
+ gBS->SignalEvent (CallerEvent);\r
}\r
-\r