X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FInclude%2FProtocol%2FScsiPassThru.h;h=2192e9bf4951c36416389d136454bc42c77db3ea;hp=d351c3ecebcca5a1abfe851fbf6d0b69d1e03ae1;hb=4ca9b6c4e7dbbcf94f21b54f41f761cefc6b1086;hpb=c7a54f2560479abe75b51383940b057cac321d22 diff --git a/MdePkg/Include/Protocol/ScsiPassThru.h b/MdePkg/Include/Protocol/ScsiPassThru.h index d351c3eceb..2192e9bf49 100644 --- a/MdePkg/Include/Protocol/ScsiPassThru.h +++ b/MdePkg/Include/Protocol/ScsiPassThru.h @@ -1,7 +1,14 @@ /** @file - SCSI Pass Through protocol. - - Copyright (c) 2006, Intel Corporation + SCSI Pass Through protocol as defined in EFI 1.1. + This protocol allows information about a SCSI channel to be collected, + and allows SCSI Request Packets to be sent to any SCSI devices on a SCSI + channel even if those devices are not boot devices. This protocol is attached + to the device handle of each SCSI channel in a system that the protocol + supports, and can be used for diagnostics. It may also be used to build + a Block I/O driver for SCSI hard drives and SCSI CD-ROM or DVD drives to + allow those devices to become boot devices. + + Copyright (c) 2006 - 2008, Intel Corporation All rights reserved. This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at @@ -133,7 +140,7 @@ typedef struct { **/ typedef EFI_STATUS -(EFIAPI *EFI_SCSI_PASS_THRU_PASSTHRU) ( +(EFIAPI *EFI_SCSI_PASS_THRU_PASSTHRU)( IN EFI_SCSI_PASS_THRU_PROTOCOL *This, IN UINT32 Target, IN UINT64 Lun, @@ -168,7 +175,7 @@ EFI_STATUS **/ typedef EFI_STATUS -(EFIAPI *EFI_SCSI_PASS_THRU_GET_NEXT_DEVICE) ( +(EFIAPI *EFI_SCSI_PASS_THRU_GET_NEXT_DEVICE)( IN EFI_SCSI_PASS_THRU_PROTOCOL *This, IN OUT UINT32 *Target, IN OUT UINT64 *Lun @@ -204,7 +211,7 @@ EFI_STATUS **/ typedef EFI_STATUS -(EFIAPI *EFI_SCSI_PASS_THRU_BUILD_DEVICE_PATH) ( +(EFIAPI *EFI_SCSI_PASS_THRU_BUILD_DEVICE_PATH)( IN EFI_SCSI_PASS_THRU_PROTOCOL *This, IN UINT32 Target, IN UINT64 Lun, @@ -237,7 +244,7 @@ EFI_STATUS **/ typedef EFI_STATUS -(EFIAPI *EFI_SCSI_PASS_THRU_GET_TARGET_LUN) ( +(EFIAPI *EFI_SCSI_PASS_THRU_GET_TARGET_LUN)( IN EFI_SCSI_PASS_THRU_PROTOCOL *This, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, OUT UINT32 *Target, @@ -262,7 +269,7 @@ EFI_STATUS **/ typedef EFI_STATUS -(EFIAPI *EFI_SCSI_PASS_THRU_RESET_CHANNEL) ( +(EFIAPI *EFI_SCSI_PASS_THRU_RESET_CHANNEL)( IN EFI_SCSI_PASS_THRU_PROTOCOL *This ) ; @@ -288,13 +295,44 @@ EFI_STATUS **/ typedef EFI_STATUS -(EFIAPI *EFI_SCSI_PASS_THRU_RESET_TARGET) ( +(EFIAPI *EFI_SCSI_PASS_THRU_RESET_TARGET)( IN EFI_SCSI_PASS_THRU_PROTOCOL *This, IN UINT32 Target, IN UINT64 Lun ) ; +/** + @par Protocol Description: + The EFI_SCSI_PASS_THRU_PROTOCOL provides information about a SCSI channel and + the ability to send SCI Request Packets to any SCSI device attached to that SCSI channel. The + information includes the Target ID of the host controller on the SCSI channel, the attributes of + the SCSI channel, the printable name for the SCSI controller, and the printable name of the + SCSI channel. + + @param Mode + A pointer to the EFI_SCSI_PASS_THRU_MODE data for this SCSI channel. + + @param PassThru + Sends a SCSI Request Packet to a SCSI device that is connected to the SCSI channel. + + @param GetNextDevice + Used to retrieve the list of legal Target IDs and LUNs for the + SCSI devices on a SCSI channel. + + @param BuildDevicePath + Used to allocate and build a device path node for a SCSI device on a SCSI channel. + + @param GetTargetLun + Used to translate a device path node to a Target ID and LUN. + + @param ResetChannel + Resets the SCSI channel. This operation resets all the SCSI + devices connected to the SCSI channel. + + @param ResetTarget + Resets a SCSI device that is connected to the SCSI channel. +**/ struct _EFI_SCSI_PASS_THRU_PROTOCOL { EFI_SCSI_PASS_THRU_MODE *Mode; EFI_SCSI_PASS_THRU_PASSTHRU PassThru;