/** @file\r
Header file for SCSI Bus Driver.\r
\r
-Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
\r
typedef union {\r
UINT32 Scsi;\r
- UINT8 ExtScsi[4]; \r
+ UINT8 ExtScsi[4];\r
} SCSI_ID;\r
\r
typedef struct _SCSI_TARGET_ID {\r
//\r
#define SCSI_BUS_DEVICE_SIGNATURE SIGNATURE_32 ('s', 'c', 's', 'i')\r
\r
+//\r
+// SCSI Bus Timeout Experience Value\r
+//\r
+#define SCSI_BUS_TIMEOUT EFI_TIMER_PERIOD_SECONDS (3)\r
+\r
//\r
// The ScsiBusProtocol is just used to locate ScsiBusDev\r
// structure in the SCSIBusDriverBindingStop(). Then we can\r
typedef struct _SCSI_BUS_DEVICE {\r
UINTN Signature;\r
EFI_SCSI_BUS_PROTOCOL BusIdentify;\r
- BOOLEAN ExtScsiSupport; \r
+ BOOLEAN ExtScsiSupport;\r
EFI_SCSI_PASS_THRU_PROTOCOL *ScsiInterface;\r
EFI_EXT_SCSI_PASS_THRU_PROTOCOL *ExtScsiInterface;\r
EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
EFI_HANDLE Handle;\r
EFI_SCSI_IO_PROTOCOL ScsiIo;\r
EFI_DEVICE_PATH_PROTOCOL *DevicePath;\r
- BOOLEAN ExtScsiSupport; \r
+ BOOLEAN ExtScsiSupport;\r
EFI_SCSI_PASS_THRU_PROTOCOL *ScsiPassThru;\r
EFI_EXT_SCSI_PASS_THRU_PROTOCOL *ExtScsiPassThru;\r
SCSI_BUS_DEVICE *ScsiBusDeviceData;\r
restrictions for this service. DisconnectController() must follow these\r
calling restrictions. If any other agent wishes to call Stop() it must also\r
follow these calling restrictions.\r
- \r
+\r
@param This Protocol instance pointer.\r
@param ControllerHandle Handle of device to stop driver on\r
@param NumberOfChildren Number of Handles in ChildHandleBuffer. If number of\r
\r
@param This Protocol instance pointer.\r
@param DeviceType A pointer to the device type information retrieved from\r
- the SCSI Controller. \r
+ the SCSI Controller.\r
\r
@retval EFI_SUCCESS Retrieves the device type information successfully.\r
@retval EFI_INVALID_PARAMETER The DeviceType is NULL.\r
- \r
+\r
**/\r
EFI_STATUS\r
EFIAPI\r
@retval EFI_DEVICE_ERROR Errors encountered when resetting the SCSI bus.\r
@retval EFI_UNSUPPORTED The bus reset operation is not supported by the\r
SCSI Host Controller.\r
- @retval EFI_TIMEOUT A timeout occurred while attempting to reset \r
+ @retval EFI_TIMEOUT A timeout occurred while attempting to reset\r
the SCSI bus.\r
**/\r
EFI_STATUS\r
Sends a SCSI Request Packet to the SCSI Controller for execution.\r
\r
@param This Protocol instance pointer.\r
- @param CommandPacket The SCSI request packet to send to the SCSI \r
+ @param CommandPacket The SCSI request packet to send to the SCSI\r
Controller specified by the device handle.\r
@param Event If the SCSI bus where the SCSI device is attached\r
- does not support non-blocking I/O, then Event is \r
- ignored, and blocking I/O is performed. \r
+ does not support non-blocking I/O, then Event is\r
+ ignored, and blocking I/O is performed.\r
If Event is NULL, then blocking I/O is performed.\r
- If Event is not NULL and non-blocking I/O is \r
+ If Event is not NULL and non-blocking I/O is\r
supported, then non-blocking I/O is performed,\r
and Event will be signaled when the SCSI Request\r
Packet completes.\r
\r
- @retval EFI_SUCCESS The SCSI Request Packet was sent by the host \r
- successfully, and TransferLength bytes were \r
- transferred to/from DataBuffer.See \r
- HostAdapterStatus, TargetStatus, \r
+ @retval EFI_SUCCESS The SCSI Request Packet was sent by the host\r
+ successfully, and TransferLength bytes were\r
+ transferred to/from DataBuffer.See\r
+ HostAdapterStatus, TargetStatus,\r
SenseDataLength, and SenseData in that order\r
for additional status information.\r
- @retval EFI_BAD_BUFFER_SIZE The SCSI Request Packet was executed, \r
+ @retval EFI_BAD_BUFFER_SIZE The SCSI Request Packet was executed,\r
but the entire DataBuffer could not be transferred.\r
The actual number of bytes transferred is returned\r
- in TransferLength. See HostAdapterStatus, \r
- TargetStatus, SenseDataLength, and SenseData in \r
+ in TransferLength. See HostAdapterStatus,\r
+ TargetStatus, SenseDataLength, and SenseData in\r
that order for additional status information.\r
- @retval EFI_NOT_READY The SCSI Request Packet could not be sent because \r
- there are too many SCSI Command Packets already \r
+ @retval EFI_NOT_READY The SCSI Request Packet could not be sent because\r
+ there are too many SCSI Command Packets already\r
queued.The caller may retry again later.\r
- @retval EFI_DEVICE_ERROR A device error occurred while attempting to send \r
- the SCSI Request Packet. See HostAdapterStatus, \r
- TargetStatus, SenseDataLength, and SenseData in \r
+ @retval EFI_DEVICE_ERROR A device error occurred while attempting to send\r
+ the SCSI Request Packet. See HostAdapterStatus,\r
+ TargetStatus, SenseDataLength, and SenseData in\r
that order for additional status information.\r
- @retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid. \r
- The SCSI Request Packet was not sent, so no \r
+ @retval EFI_INVALID_PARAMETER The contents of CommandPacket are invalid.\r
+ The SCSI Request Packet was not sent, so no\r
additional status information is available.\r
@retval EFI_UNSUPPORTED The command described by the SCSI Request Packet\r
- is not supported by the SCSI initiator(i.e., SCSI \r
+ is not supported by the SCSI initiator(i.e., SCSI\r
Host Controller). The SCSI Request Packet was not\r
- sent, so no additional status information is \r
+ sent, so no additional status information is\r
available.\r
- @retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI \r
+ @retval EFI_TIMEOUT A timeout occurred while waiting for the SCSI\r
Request Packet to execute. See HostAdapterStatus,\r
- TargetStatus, SenseDataLength, and SenseData in \r
+ TargetStatus, SenseDataLength, and SenseData in\r
that order for additional status information.\r
**/\r
EFI_STATUS\r