git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@784 6f19259b...
authorlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 6 Jul 2006 04:02:57 +0000 (04:02 +0000)
committerlgao4 <lgao4@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 6 Jul 2006 04:02:57 +0000 (04:02 +0000)
EdkModulePkg/Bus/Scsi/ScsiBus/Dxe/ScsiBus.c
EdkModulePkg/Bus/Scsi/ScsiBus/Dxe/ScsiBus.msa
EdkModulePkg/Bus/Scsi/ScsiDisk/Dxe/ScsiDisk.msa
EdkModulePkg/Core/Dxe/DxeMain/DxeMain.c
EdkModulePkg/EdkModulePkg.spd
EdkModulePkg/Library/EdkScsiLib/EdkScsiLib.msa
EdkModulePkg/Library/EdkScsiLib/ScsiLib.c
MdePkg/Include/Protocol/ScsiIo.h [deleted file]
MdePkg/Include/Protocol/ScsiIoExt.h [new file with mode: 0644]
MdePkg/Include/Uefi/UefiSpec.h
MdePkg/MdePkg.spd

index 866c796..6a3778c 100644 (file)
@@ -366,7 +366,7 @@ EFI_STATUS
 EFIAPI\r
 ScsiGetDeviceLocation (\r
   IN  EFI_SCSI_IO_PROTOCOL    *This,\r
-  OUT UINT8                   **Target,\r
+  OUT UINT32                  *Target,\r
   OUT UINT64                  *Lun\r
   )\r
 /*++\r
@@ -393,7 +393,7 @@ ScsiGetDeviceLocation (
 \r
   ScsiIoDevice  = SCSI_IO_DEV_FROM_THIS (This);\r
 \r
-  *Target       = (UINT8 *) (UINTN) ScsiIoDevice->Pun;\r
+  *Target       = ScsiIoDevice->Pun;\r
   *Lun          = ScsiIoDevice->Lun;\r
 \r
   return EFI_SUCCESS;\r
index b3db037..bf8495b 100644 (file)
@@ -79,7 +79,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
     </Protocol>\r
   </Protocols>\r
   <Externs>\r
-    <Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>\r
+    <Specification>EFI_SPECIFICATION_VERSION 0x00010010</Specification>\r
     <Specification>EDK_RELEASE_VERSION 0x00090000</Specification>\r
     <Extern>\r
       <DriverBinding>gSCSIBusDriverBinding</DriverBinding>\r
index 51af7a9..311913e 100644 (file)
@@ -76,7 +76,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.-->
     </Protocol>\r
   </Protocols>\r
   <Externs>\r
-    <Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>\r
+    <Specification>EFI_SPECIFICATION_VERSION 0x00010010</Specification>\r
     <Specification>EDK_RELEASE_VERSION 0x00090000</Specification>\r
     <Extern>\r
       <DriverBinding>gScsiDiskDriverBinding</DriverBinding>\r
index fc2f6a9..9b8402b 100644 (file)
@@ -308,7 +308,7 @@ EFI_RUNTIME_SERVICES mEfiRuntimeServicesTableTemplate = {
   (EFI_RESET_SYSTEM)             CoreEfiNotAvailableYetArg4       // ResetSystem \r
 #if ((EDK_RELEASE_VERSION != 0) && (EFI_SPECIFICATION_VERSION <  0x00020000))\r
   ,\r
-  (TIANO_REPORT_STATUS_CODE)       CoreEfiNotAvailableYetArg5     // ReportStatusCode\r
+  (EFI_REPORT_STATUS_CODE)       CoreEfiNotAvailableYetArg5       // ReportStatusCode\r
 #elif (EFI_SPECIFICATION_VERSION >= 0x00020000)\r
   ,\r
   (EFI_UPDATE_CAPSULE)              CoreEfiNotAvailableYetArg3,   // UpdateCapsule\r
index 0fb3d51..4b865a5 100644 (file)
       <GuidValue>76B6BDFA-2ACD-4462-9E3F-CB58C969D937</GuidValue>\r
       <HelpText/>\r
     </Entry>\r
+    <Entry Name="ScsiIo">\r
+      <C_Name>gEfiScsiIoProtocolGuid</C_Name>\r
+      <GuidValue>403CD195-F233-48EC-8455-B2E52F1D9E02</GuidValue>\r
+      <HelpText/>\r
+    </Entry>\r
   </ProtocolDeclarations>\r
   <PpiDeclarations>\r
     <Entry Name="PeiInMemory">\r
index 856cf02..985b3e8 100644 (file)
@@ -37,7 +37,7 @@
     <Package PackageGuid="B6EC423C-21D2-490D-85C6-DD5864EAA674"/>\r
   </PackageDependencies>\r
   <Externs>\r
-    <Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>\r
+    <Specification>EFI_SPECIFICATION_VERSION 0x00010010</Specification>\r
     <Specification>EDK_RELEASE_VERSION 0x00090000</Specification>\r
   </Externs>\r
 </ModuleSurfaceArea>
\ No newline at end of file
index 9a6eb67..55b9503 100644 (file)
@@ -68,7 +68,7 @@ Returns:
 {\r
   EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
   UINT64                          Lun;\r
-  UINT8                           *Target;\r
+  UINT32                          Target;\r
   EFI_STATUS                      Status;\r
   UINT8                           Cdb[6];\r
 \r
@@ -76,10 +76,11 @@ Returns:
   ZeroMem (Cdb, 6);\r
 \r
   CommandPacket.Timeout         = Timeout;\r
-  CommandPacket.InDataBuffer    = NULL;\r
+  CommandPacket.DataBuffer      = NULL;\r
   CommandPacket.SenseData       = SenseData;\r
-  CommandPacket.InTransferLength= 0;\r
+  CommandPacket.TransferLength  = 0;\r
   CommandPacket.Cdb             = Cdb;\r
+\r
   //\r
   // Fill Cdb for Test Unit Ready Command\r
   //\r
@@ -151,7 +152,7 @@ Returns:
 {\r
   EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
   UINT64                          Lun;\r
-  UINT8                           *Target;\r
+  UINT32                          Target;\r
   EFI_STATUS                      Status;\r
   UINT8                           Cdb[6];\r
 \r
@@ -159,8 +160,8 @@ Returns:
   ZeroMem (Cdb, 6);\r
 \r
   CommandPacket.Timeout         = Timeout;\r
-  CommandPacket.InDataBuffer    = InquiryDataBuffer;\r
-  CommandPacket.InTransferLength= *InquiryDataLength;\r
+  CommandPacket.DataBuffer      = InquiryDataBuffer;\r
+  CommandPacket.TransferLength  = *InquiryDataLength;\r
   CommandPacket.SenseData       = SenseData;\r
   CommandPacket.SenseDataLength = *SenseDataLength;\r
   CommandPacket.Cdb             = Cdb;\r
@@ -186,7 +187,7 @@ Returns:
   *HostAdapterStatus          = CommandPacket.HostAdapterStatus;\r
   *TargetStatus               = CommandPacket.TargetStatus;\r
   *SenseDataLength            = CommandPacket.SenseDataLength;\r
-  *InquiryDataLength          = CommandPacket.InTransferLength;\r
+  *InquiryDataLength          = CommandPacket.TransferLength;\r
 \r
   return Status;\r
 }\r
@@ -247,7 +248,7 @@ Returns:
 {\r
   EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
   UINT64                          Lun;\r
-  UINT8                           *Target;\r
+  UINT32                          Target;\r
   EFI_STATUS                      Status;\r
   UINT8                           Cdb[10];\r
 \r
@@ -255,9 +256,9 @@ Returns:
   ZeroMem (Cdb, 10);\r
 \r
   CommandPacket.Timeout         = Timeout;\r
-  CommandPacket.InDataBuffer    = DataBuffer;\r
+  CommandPacket.DataBuffer      = DataBuffer;\r
   CommandPacket.SenseData       = SenseData;\r
-  CommandPacket.InTransferLength= *DataLength;\r
+  CommandPacket.TransferLength  = *DataLength;\r
   CommandPacket.Cdb             = Cdb;\r
   //\r
   // Fill Cdb for Mode Sense (10) Command\r
@@ -279,7 +280,7 @@ Returns:
   *HostAdapterStatus            = CommandPacket.HostAdapterStatus;\r
   *TargetStatus                 = CommandPacket.TargetStatus;\r
   *SenseDataLength              = CommandPacket.SenseDataLength;\r
-  *DataLength                   = CommandPacket.InTransferLength;\r
+  *DataLength                   = CommandPacket.TransferLength;\r
 \r
   return Status;\r
 }\r
@@ -330,21 +331,17 @@ Returns:
 {\r
   EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
   UINT64                          Lun;\r
-  UINT8                           *Target;\r
+  UINT32                          Target;\r
   EFI_STATUS                      Status;\r
   UINT8                           Cdb[6];\r
 \r
   ZeroMem (&CommandPacket, sizeof (EFI_SCSI_IO_SCSI_REQUEST_PACKET));\r
   ZeroMem (Cdb, 6);\r
-/*\r
-  if (*SenseDataLength > 0xff) {\r
-    *SenseDataLength = 0xff;\r
-  }\r
-*/\r
+\r
   CommandPacket.Timeout         = Timeout;\r
-  CommandPacket.InDataBuffer    = SenseData;\r
+  CommandPacket.DataBuffer      = SenseData;\r
   CommandPacket.SenseData       = NULL;\r
-  CommandPacket.InTransferLength= *SenseDataLength;\r
+  CommandPacket.TransferLength  = *SenseDataLength;\r
   CommandPacket.Cdb             = Cdb;\r
   //\r
   // Fill Cdb for Request Sense Command\r
@@ -363,7 +360,7 @@ Returns:
 \r
   *HostAdapterStatus            = CommandPacket.HostAdapterStatus;\r
   *TargetStatus                 = CommandPacket.TargetStatus;\r
-  *SenseDataLength              = (UINT8) CommandPacket.InTransferLength;\r
+  *SenseDataLength              = (UINT8) CommandPacket.TransferLength;\r
 \r
   return Status;\r
 }\r
@@ -420,7 +417,7 @@ Returns:
 {\r
   EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
   UINT64                          Lun;\r
-  UINT8                           *Target;\r
+  UINT32                          Target;\r
   EFI_STATUS                      Status;\r
   UINT8                           Cdb[10];\r
 \r
@@ -428,9 +425,9 @@ Returns:
   ZeroMem (Cdb, 10);\r
 \r
   CommandPacket.Timeout         = Timeout;\r
-  CommandPacket.InDataBuffer    = DataBuffer;\r
+  CommandPacket.DataBuffer      = DataBuffer;\r
   CommandPacket.SenseData       = SenseData;\r
-  CommandPacket.InTransferLength= *DataLength;\r
+  CommandPacket.TransferLength  = *DataLength;\r
   CommandPacket.Cdb             = Cdb;\r
   //\r
   // Fill Cdb for Read Capacity Command\r
@@ -457,7 +454,7 @@ Returns:
   *HostAdapterStatus            = CommandPacket.HostAdapterStatus;\r
   *TargetStatus                 = CommandPacket.TargetStatus;\r
   *SenseDataLength              = CommandPacket.SenseDataLength;\r
-  *DataLength                   = CommandPacket.InTransferLength;\r
+  *DataLength                   = CommandPacket.TransferLength;\r
 \r
   return Status;\r
 }\r
@@ -516,7 +513,7 @@ Returns:
 {\r
   EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
   UINT64                          Lun;\r
-  UINT8                           *Target;\r
+  UINT32                          Target;\r
   EFI_STATUS                      Status;\r
   UINT8                           Cdb[10];\r
 \r
@@ -524,9 +521,9 @@ Returns:
   ZeroMem (Cdb, 10);\r
 \r
   CommandPacket.Timeout         = Timeout;\r
-  CommandPacket.InDataBuffer    = DataBuffer;\r
+  CommandPacket.DataBuffer      = DataBuffer;\r
   CommandPacket.SenseData       = SenseData;\r
-  CommandPacket.InTransferLength= *DataLength;\r
+  CommandPacket.TransferLength  = *DataLength;\r
   CommandPacket.Cdb             = Cdb;\r
   //\r
   // Fill Cdb for Read (10) Command\r
@@ -551,7 +548,7 @@ Returns:
   *HostAdapterStatus            = CommandPacket.HostAdapterStatus;\r
   *TargetStatus                 = CommandPacket.TargetStatus;\r
   *SenseDataLength              = CommandPacket.SenseDataLength;\r
-  *DataLength                   = CommandPacket.InTransferLength;\r
+  *DataLength                   = CommandPacket.TransferLength;\r
 \r
   return Status;\r
 }\r
@@ -610,7 +607,7 @@ Returns:
 {\r
   EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
   UINT64                          Lun;\r
-  UINT8                           *Target;\r
+  UINT32                          Target;\r
   EFI_STATUS                      Status;\r
   UINT8                           Cdb[10];\r
 \r
@@ -618,9 +615,9 @@ Returns:
   ZeroMem (Cdb, 10);\r
 \r
   CommandPacket.Timeout         = Timeout;\r
-  CommandPacket.InDataBuffer    = DataBuffer;\r
+  CommandPacket.DataBuffer      = DataBuffer;\r
   CommandPacket.SenseData       = SenseData;\r
-  CommandPacket.InTransferLength= *DataLength;\r
+  CommandPacket.TransferLength  = *DataLength;\r
   CommandPacket.Cdb             = Cdb;\r
   //\r
   // Fill Cdb for Write (10) Command\r
@@ -645,7 +642,7 @@ Returns:
   *HostAdapterStatus            = CommandPacket.HostAdapterStatus;\r
   *TargetStatus                 = CommandPacket.TargetStatus;\r
   *SenseDataLength              = CommandPacket.SenseDataLength;\r
-  *DataLength                   = CommandPacket.InTransferLength;\r
+  *DataLength                   = CommandPacket.TransferLength;\r
 \r
   return Status;\r
 }\r
diff --git a/MdePkg/Include/Protocol/ScsiIo.h b/MdePkg/Include/Protocol/ScsiIo.h
deleted file mode 100644 (file)
index e1019ba..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-/** @file\r
-  EFI_SCSI_IO_PROTOCOL as defined in UEFI 2.0.\r
-\r
-  Copyright (c) 2006, Intel Corporation                                                         \r
-  All rights reserved. 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
-\r
-  Module Name:  ScsiIo.h\r
-\r
-**/\r
-\r
-#ifndef __EFI_SCSI_IO_PROTOCOL_H__\r
-#define __EFI_SCSI_IO_PROTOCOL_H__\r
-\r
-#define EFI_SCSI_IO_PROTOCOL_GUID \\r
-  { \\r
-    0x932f4736, 0x2362, 0x4002, {0x80, 0x3e, 0x3c, 0xd5, 0x4b, 0x13, 0x8f, 0x85 } \\r
-  }\r
-\r
-//\r
-// Forward reference for pure ANSI compatability\r
-//\r
-typedef struct _EFI_SCSI_IO_PROTOCOL EFI_SCSI_IO_PROTOCOL;\r
-\r
-//\r
-// SCSI Data Direction definition\r
-//\r
-#define EFI_SCSI_IO_DATA_DIRECTION_READ                        0\r
-#define EFI_SCSI_IO_DATA_DIRECTION_WRITE                       1\r
-#define EFI_SCSI_IO_DATA_DIRECTION_BIDIRECTIONAL               2\r
-\r
-//\r
-// SCSI Host Adapter Status definition\r
-//\r
-#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OK                     0x00\r
-#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT_COMMAND        0x09    // timeout when processing the command\r
-#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT                0x0b    // timeout when waiting for the command processing\r
-#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_MESSAGE_REJECT         0x0d    // a message reject was received when processing command\r
-#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_RESET              0x0e    // a bus reset was detected\r
-#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PARITY_ERROR           0x0f\r
-#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_REQUEST_SENSE_FAILED   0x10    // the adapter failed in issuing request sense command\r
-#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_SELECTION_TIMEOUT      0x11    // selection timeout\r
-#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_DATA_OVERRUN_UNDERRUN  0x12    // data overrun or data underrun\r
-#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_FREE               0x13    // Unexepected bus free\r
-#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PHASE_ERROR            0x14    // Target bus phase sequence failure\r
-#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OTHER                  0x7f\r
-\r
-\r
-//\r
-// SCSI Target Status definition\r
-//\r
-#define EFI_SCSI_IO_STATUS_TARGET_GOOD                         0x00\r
-#define EFI_SCSI_IO_STATUS_TARGET_CHECK_CONDITION              0x02    // check condition\r
-#define EFI_SCSI_IO_STATUS_TARGET_CONDITION_MET                0x04    // condition met\r
-#define EFI_SCSI_IO_STATUS_TARGET_BUSY                         0x08    // busy\r
-#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE                 0x10    // intermediate\r
-#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE_CONDITION_MET   0x14    // intermediate-condition met\r
-#define EFI_SCSI_IO_STATUS_TARGET_RESERVATION_CONFLICT         0x18    // reservation conflict\r
-#define EFI_SCSI_IO_STATUS_TARGET_COMMOND_TERMINATED           0x22    // command terminated\r
-#define EFI_SCSI_IO_STATUS_TARGET_QUEUE_FULL                   0x28    // queue full\r
-\r
-typedef struct {\r
-  UINT64                              Timeout;\r
-  VOID                                *InDataBuffer;\r
-  VOID                                *OutDataBuffer;\r
-  VOID                                *SenseData;\r
-  VOID                                *Cdb;\r
-  UINT32                              InTransferLength;\r
-  UINT32                              OutTransferLength;\r
-  UINT8                               CdbLength;\r
-  UINT8                               DataDirection;\r
-  UINT8                               HostAdapterStatus;\r
-  UINT8                               TargetStatus;\r
-  UINT8                               SenseDataLength;\r
-} EFI_SCSI_IO_SCSI_REQUEST_PACKET;\r
-\r
-/**\r
-  Retrieves the device type information of the SCSI Controller.\r
-\r
-  @param  This       Protocol instance pointer.\r
-  @param  DeviceType A pointer to the device type information\r
-                     retrieved from 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
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE) (\r
-  IN  EFI_SCSI_IO_PROTOCOL            *This,\r
-  OUT UINT8                           *DeviceType\r
-  )\r
-;\r
-\r
-/**\r
-  Retrieves the device location in the SCSI channel.\r
-\r
-  @param  This   Protocol instance pointer.\r
-  @param  Target A pointer to the Target ID of a SCSI device\r
-                 on the SCSI channel.\r
-  @param  Lun    A pointer to the LUN of the SCSI device on\r
-                 the SCSI channel.\r
-\r
-  @retval EFI_SUCCESS           Retrieves the device location successfully.\r
-  @retval EFI_INVALID_PARAMETER The Target or Lun is NULL.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION) (\r
-  IN EFI_SCSI_IO_PROTOCOL           *This,\r
-  IN OUT UINT8                      **Target,\r
-  OUT UINT64                        *Lun\r
-  )\r
-;\r
-\r
-/**\r
-  Resets the SCSI Bus that the SCSI Controller is attached to.\r
-\r
-  @param  This Protocol instance pointer.\r
-\r
-  @retval EFI_SUCCESS      The SCSI bus is reset successfully.\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
-                            the SCSI bus.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_BUS) (\r
-  IN EFI_SCSI_IO_PROTOCOL     *This\r
-  )\r
-;\r
-\r
-/**\r
-  Resets the SCSI Controller that the device handle specifies.\r
-\r
-  @param  This Protocol instance pointer.\r
-\r
-  @retval EFI_SUCCESS      Reset the SCSI controller successfully.\r
-  @retval EFI_DEVICE_ERROR Errors are encountered when resetting the\r
-                           SCSI Controller.\r
-  @retval EFI_UNSUPPORTED  The SCSI bus does not support a device\r
-                           reset operation.\r
-  @retval EFI_TIMEOUT      A timeout occurred while attempting to\r
-                           reset the SCSI Controller.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_DEVICE) (\r
-  IN EFI_SCSI_IO_PROTOCOL     *This\r
-  )\r
-;\r
-\r
-\r
-/**\r
-  Sends a SCSI Request Packet to the SCSI Controller for execution.\r
-\r
-  @param  This    Protocol instance pointer.\r
-  @param  Packet  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
-                  If Event is NULL, then blocking I/O is performed.\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
-                                    SenseDataLength, and SenseData in that order\r
-                                    for additional status information.\r
-  @retval EFI_WARN_BUFFER_TOO_SMALL 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
-                                    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
-                                    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
-                                    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
-                                    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
-                                    Host Controller). The SCSI Request Packet was not\r
-                                    sent, so no additional status information is\r
-                                    available.\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
-                                    that order for additional status information.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_COMMAND) (\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
-\r
-struct _EFI_SCSI_IO_PROTOCOL {\r
-  EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE      GetDeviceType;\r
-  EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION  GetDeviceLocation;\r
-  EFI_SCSI_IO_PROTOCOL_RESET_BUS            ResetBus;\r
-  EFI_SCSI_IO_PROTOCOL_RESET_DEVICE         ResetDevice;\r
-  EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_COMMAND    ExecuteSCSICommand;    \r
-  UINT32                                    IoAlign;\r
-};\r
-\r
-extern EFI_GUID gEfiScsiIoProtocolGuid;\r
-\r
-#endif\r
diff --git a/MdePkg/Include/Protocol/ScsiIoExt.h b/MdePkg/Include/Protocol/ScsiIoExt.h
new file mode 100644 (file)
index 0000000..872b60c
--- /dev/null
@@ -0,0 +1,233 @@
+/** @file\r
+  EFI_SCSI_IO_PROTOCOL as defined in UEFI 2.0.\r
+\r
+  Copyright (c) 2006, Intel Corporation                                                         \r
+  All rights reserved. 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
+\r
+  Module Name:  ScsiIoExt.h\r
+\r
+**/\r
+\r
+#ifndef __EFI_SCSI_IO_PROTOCOL_H__\r
+#define __EFI_SCSI_IO_PROTOCOL_H__\r
+\r
+#define EFI_SCSI_IO_PROTOCOL_GUID \\r
+  { \\r
+    0x932f4736, 0x2362, 0x4002, {0x80, 0x3e, 0x3c, 0xd5, 0x4b, 0x13, 0x8f, 0x85 } \\r
+  }\r
+\r
+//\r
+// Forward reference for pure ANSI compatability\r
+//\r
+typedef struct _EFI_SCSI_IO_PROTOCOL EFI_SCSI_IO_PROTOCOL;\r
+\r
+//\r
+// SCSI Data Direction definition\r
+//\r
+#define EFI_SCSI_IO_DATA_DIRECTION_READ                        0\r
+#define EFI_SCSI_IO_DATA_DIRECTION_WRITE                       1\r
+#define EFI_SCSI_IO_DATA_DIRECTION_BIDIRECTIONAL               2\r
+\r
+//\r
+// SCSI Host Adapter Status definition\r
+//\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OK                     0x00\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT_COMMAND        0x09    // timeout when processing the command\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT                0x0b    // timeout when waiting for the command processing\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_MESSAGE_REJECT         0x0d    // a message reject was received when processing command\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_RESET              0x0e    // a bus reset was detected\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PARITY_ERROR           0x0f\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_REQUEST_SENSE_FAILED   0x10    // the adapter failed in issuing request sense command\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_SELECTION_TIMEOUT      0x11    // selection timeout\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_DATA_OVERRUN_UNDERRUN  0x12    // data overrun or data underrun\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_FREE               0x13    // Unexepected bus free\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PHASE_ERROR            0x14    // Target bus phase sequence failure\r
+#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OTHER                  0x7f\r
+\r
+\r
+//\r
+// SCSI Target Status definition\r
+//\r
+#define EFI_SCSI_IO_STATUS_TARGET_GOOD                         0x00\r
+#define EFI_SCSI_IO_STATUS_TARGET_CHECK_CONDITION              0x02    // check condition\r
+#define EFI_SCSI_IO_STATUS_TARGET_CONDITION_MET                0x04    // condition met\r
+#define EFI_SCSI_IO_STATUS_TARGET_BUSY                         0x08    // busy\r
+#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE                 0x10    // intermediate\r
+#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE_CONDITION_MET   0x14    // intermediate-condition met\r
+#define EFI_SCSI_IO_STATUS_TARGET_RESERVATION_CONFLICT         0x18    // reservation conflict\r
+#define EFI_SCSI_IO_STATUS_TARGET_COMMOND_TERMINATED           0x22    // command terminated\r
+#define EFI_SCSI_IO_STATUS_TARGET_QUEUE_FULL                   0x28    // queue full\r
+\r
+typedef struct {\r
+  UINT64                              Timeout;\r
+  VOID                                *InDataBuffer;\r
+  VOID                                *OutDataBuffer;\r
+  VOID                                *SenseData;\r
+  VOID                                *Cdb;\r
+  UINT32                              InTransferLength;\r
+  UINT32                              OutTransferLength;\r
+  UINT8                               CdbLength;\r
+  UINT8                               DataDirection;\r
+  UINT8                               HostAdapterStatus;\r
+  UINT8                               TargetStatus;\r
+  UINT8                               SenseDataLength;\r
+} EFI_SCSI_IO_SCSI_REQUEST_PACKET;\r
+\r
+/**\r
+  Retrieves the device type information of the SCSI Controller.\r
+\r
+  @param  This       Protocol instance pointer.\r
+  @param  DeviceType A pointer to the device type information\r
+                     retrieved from 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
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE) (\r
+  IN  EFI_SCSI_IO_PROTOCOL            *This,\r
+  OUT UINT8                           *DeviceType\r
+  )\r
+;\r
+\r
+/**\r
+  Retrieves the device location in the SCSI channel.\r
+\r
+  @param  This   Protocol instance pointer.\r
+  @param  Target A pointer to the Target ID of a SCSI device\r
+                 on the SCSI channel.\r
+  @param  Lun    A pointer to the LUN of the SCSI device on\r
+                 the SCSI channel.\r
+\r
+  @retval EFI_SUCCESS           Retrieves the device location successfully.\r
+  @retval EFI_INVALID_PARAMETER The Target or Lun is NULL.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION) (\r
+  IN EFI_SCSI_IO_PROTOCOL           *This,\r
+  IN OUT UINT8                      **Target,\r
+  OUT UINT64                        *Lun\r
+  )\r
+;\r
+\r
+/**\r
+  Resets the SCSI Bus that the SCSI Controller is attached to.\r
+\r
+  @param  This Protocol instance pointer.\r
+\r
+  @retval EFI_SUCCESS      The SCSI bus is reset successfully.\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
+                            the SCSI bus.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_BUS) (\r
+  IN EFI_SCSI_IO_PROTOCOL     *This\r
+  )\r
+;\r
+\r
+/**\r
+  Resets the SCSI Controller that the device handle specifies.\r
+\r
+  @param  This Protocol instance pointer.\r
+\r
+  @retval EFI_SUCCESS      Reset the SCSI controller successfully.\r
+  @retval EFI_DEVICE_ERROR Errors are encountered when resetting the\r
+                           SCSI Controller.\r
+  @retval EFI_UNSUPPORTED  The SCSI bus does not support a device\r
+                           reset operation.\r
+  @retval EFI_TIMEOUT      A timeout occurred while attempting to\r
+                           reset the SCSI Controller.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_RESET_DEVICE) (\r
+  IN EFI_SCSI_IO_PROTOCOL     *This\r
+  )\r
+;\r
+\r
+\r
+/**\r
+  Sends a SCSI Request Packet to the SCSI Controller for execution.\r
+\r
+  @param  This    Protocol instance pointer.\r
+  @param  Packet  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
+                  If Event is NULL, then blocking I/O is performed.\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
+                                    SenseDataLength, and SenseData in that order\r
+                                    for additional status information.\r
+  @retval EFI_WARN_BUFFER_TOO_SMALL 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
+                                    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
+                                    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
+                                    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
+                                    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
+                                    Host Controller). The SCSI Request Packet was not\r
+                                    sent, so no additional status information is\r
+                                    available.\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
+                                    that order for additional status information.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_COMMAND) (\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
+\r
+struct _EFI_SCSI_IO_PROTOCOL {\r
+  EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE      GetDeviceType;\r
+  EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION  GetDeviceLocation;\r
+  EFI_SCSI_IO_PROTOCOL_RESET_BUS            ResetBus;\r
+  EFI_SCSI_IO_PROTOCOL_RESET_DEVICE         ResetDevice;\r
+  EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_COMMAND    ExecuteSCSICommand;    \r
+  UINT32                                    IoAlign;\r
+};\r
+\r
+extern EFI_GUID gEfiScsiIoProtocolGuid;\r
+\r
+#endif\r
index edb3511..9993cd4 100644 (file)
@@ -1648,7 +1648,7 @@ typedef struct {
   //  It was moved to a protocol to not conflict with UEFI 2.0\r
   //  If Tiano is disabled this item is not enabled for EFI 1.10\r
   //\r
-  TIANO_REPORT_STATUS_CODE        ReportStatusCode;\r
+  EFI_REPORT_STATUS_CODE        ReportStatusCode;\r
 #endif\r
 } EFI_RUNTIME_SERVICES;\r
 \r
@@ -2393,7 +2393,7 @@ typedef enum {
 #include <Protocol/EdidDiscovered.h>\r
 #include <Protocol/EdidActive.h>\r
 #include <Protocol/EdidOverride.h>\r
-#include <Protocol/ScsiIo.h>\r
+#include <Protocol/ScsiIoExt.h>\r
 #include <Protocol/ScsiPassThruExt.h>\r
 #include <Protocol/IScsiInitatorName.h>\r
 #include <Protocol/Usb2HostController.h>\r
index 0c98aef..7dde8bc 100644 (file)
       <GuidValue>A6A72875-2962-4C18-9F46-8DA644CCFE00</GuidValue>\r
       <HelpText/>\r
     </Entry>\r
-    <Entry Name="ScsiIo">\r
+    <Entry Name="ScsiIoExt">\r
       <C_Name>gEfiScsiIoProtocolGuid</C_Name>\r
       <GuidValue>932F4736-2362-4002-803E-3CD54B138F85</GuidValue>\r
       <HelpText/>\r