EDK2 doxygen online documents - Firmware Encoding Index 1
EDK2 doxygen online documents - Firmware Encoding Index
Data Structures | Defines | Typedefs | Variables

MdePkg/Include/Protocol/ScsiIo.h File Reference

Go to the source code of this file.

Data Structures

struct  EFI_SCSI_IO_SCSI_REQUEST_PACKET
struct  _EFI_SCSI_IO_PROTOCOL

Defines

#define EFI_SCSI_IO_PROTOCOL_GUID
#define EFI_SCSI_IO_DATA_DIRECTION_READ   0
#define EFI_SCSI_IO_DATA_DIRECTION_WRITE   1
#define EFI_SCSI_IO_DATA_DIRECTION_BIDIRECTIONAL   2
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OK   0x00
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT_COMMAND   0x09
 timeout when processing the command
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT   0x0b
 timeout when waiting for the command processing
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_MESSAGE_REJECT   0x0d
 a message reject was received when processing command
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_RESET   0x0e
 a bus reset was detected
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PARITY_ERROR   0x0f
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_REQUEST_SENSE_FAILED   0x10
 the adapter failed in issuing request sense command
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_SELECTION_TIMEOUT   0x11
 selection timeout
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_DATA_OVERRUN_UNDERRUN   0x12
 data overrun or data underrun
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_FREE   0x13
 Unexepected bus free.
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PHASE_ERROR   0x14
 Target bus phase sequence failure.
#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OTHER   0x7f
#define EFI_SCSI_IO_STATUS_TARGET_GOOD   0x00
#define EFI_SCSI_IO_STATUS_TARGET_CHECK_CONDITION   0x02
 check condition
#define EFI_SCSI_IO_STATUS_TARGET_CONDITION_MET   0x04
 condition met
#define EFI_SCSI_IO_STATUS_TARGET_BUSY   0x08
 busy
#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE   0x10
 intermediate
#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE_CONDITION_MET   0x14
 intermediate-condition met
#define EFI_SCSI_IO_STATUS_TARGET_RESERVATION_CONFLICT   0x18
 reservation conflict
#define EFI_SCSI_IO_STATUS_TARGET_COMMOND_TERMINATED   0x22
 command terminated
#define EFI_SCSI_IO_STATUS_TARGET_QUEUE_FULL   0x28
 queue full

Typedefs

typedef struct
_EFI_SCSI_IO_PROTOCOL 
EFI_SCSI_IO_PROTOCOL
typedef EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE )(IN EFI_SCSI_IO_PROTOCOL *This, OUT UINT8 *DeviceType)
typedef EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION )(IN EFI_SCSI_IO_PROTOCOL *This, IN OUT UINT8 **Target, OUT UINT64 *Lun)
typedef EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_RESET_BUS )(IN EFI_SCSI_IO_PROTOCOL *This)
typedef EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_RESET_DEVICE )(IN EFI_SCSI_IO_PROTOCOL *This)
typedef EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_COMMAND )(IN EFI_SCSI_IO_PROTOCOL *This, IN OUT EFI_SCSI_IO_SCSI_REQUEST_PACKET *Packet, IN EFI_EVENT Event OPTIONAL)

Variables

EFI_GUID gEfiScsiIoProtocolGuid

Detailed Description

EFI_SCSI_IO_PROTOCOL as defined in UEFI 2.0. This protocol is used by code, typically drivers, running in the EFI boot services environment to access SCSI devices. In particular, functions for managing devices on SCSI buses are defined here.

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 http://opensource.org/licenses/bsd-license.php

THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.

Definition in file ScsiIo.h.


Define Documentation

#define EFI_SCSI_IO_DATA_DIRECTION_BIDIRECTIONAL   2

Definition at line 36 of file ScsiIo.h.

#define EFI_SCSI_IO_DATA_DIRECTION_READ   0

Definition at line 34 of file ScsiIo.h.

#define EFI_SCSI_IO_DATA_DIRECTION_WRITE   1

Definition at line 35 of file ScsiIo.h.

#define EFI_SCSI_IO_PROTOCOL_GUID
Value:
{ \
    0x932f47e6, 0x2362, 0x4002, {0x80, 0x3e, 0x3c, 0xd5, 0x4b, 0x13, 0x8f, 0x85 } \
  }

Definition at line 21 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_FREE   0x13

Unexepected bus free.

Definition at line 50 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_RESET   0x0e

a bus reset was detected

Definition at line 45 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_DATA_OVERRUN_UNDERRUN   0x12

data overrun or data underrun

Definition at line 49 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_MESSAGE_REJECT   0x0d

a message reject was received when processing command

Definition at line 44 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OK   0x00

Definition at line 41 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OTHER   0x7f

Definition at line 52 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PARITY_ERROR   0x0f

Definition at line 46 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PHASE_ERROR   0x14

Target bus phase sequence failure.

Definition at line 51 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_REQUEST_SENSE_FAILED   0x10

the adapter failed in issuing request sense command

Definition at line 47 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_SELECTION_TIMEOUT   0x11

selection timeout

Definition at line 48 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT   0x0b

timeout when waiting for the command processing

Definition at line 43 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT_COMMAND   0x09

timeout when processing the command

Definition at line 42 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_TARGET_BUSY   0x08

busy

Definition at line 61 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_TARGET_CHECK_CONDITION   0x02

check condition

Definition at line 59 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_TARGET_COMMOND_TERMINATED   0x22

command terminated

Definition at line 65 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_TARGET_CONDITION_MET   0x04

condition met

Definition at line 60 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_TARGET_GOOD   0x00

Definition at line 58 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE   0x10

intermediate

Definition at line 62 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE_CONDITION_MET   0x14

intermediate-condition met

Definition at line 63 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_TARGET_QUEUE_FULL   0x28

queue full

Definition at line 66 of file ScsiIo.h.

#define EFI_SCSI_IO_STATUS_TARGET_RESERVATION_CONFLICT   0x18

reservation conflict

Definition at line 64 of file ScsiIo.h.


Typedef Documentation

Forward reference for pure ANSI compatability

Definition at line 29 of file ScsiIo.h.

Sends a SCSI Request Packet to the SCSI Controller for execution.

Parameters:
ThisProtocol instance pointer.
PacketThe SCSI request packet to send to the SCSI Controller specified by the device handle.
EventIf the SCSI bus to which the SCSI device is attached does not support non-blocking I/O, then Event is ignored, and blocking I/O is performed. If Event is NULL, then blocking I/O is performed. If Event is not NULL and non-blocking I/O is supported, then non-blocking I/O is performed, and Event will be signaled when the SCSI Request Packet completes.
Return values:
EFI_SUCCESSThe SCSI Request Packet was sent by the host successfully, and TransferLength bytes were transferred to/from DataBuffer. See HostAdapterStatus, TargetStatus, SenseDataLength, and SenseData in that order for additional status information.
EFI_BAD_BUFFER_SIZEThe SCSI Request Packet was executed, but the entire DataBuffer could not be transferred. The actual number of bytes transferred is returned in TransferLength. See HostAdapterStatus, TargetStatus, SenseDataLength, and SenseData in that order for additional status information.
EFI_NOT_READYThe SCSI Request Packet could not be sent because there are too many SCSI Command Packets already queued.The caller may retry again later.
EFI_DEVICE_ERRORA device error occurred while attempting to send the SCSI Request Packet. See HostAdapterStatus, TargetStatus, SenseDataLength, and SenseData in that order for additional status information.
EFI_INVALID_PARAMETERThe contents of CommandPacket are invalid. The SCSI Request Packet was not sent, so no additional status information is available.
EFI_UNSUPPORTEDThe command described by the SCSI Request Packet is not supported by the SCSI initiator(i.e., SCSI Host Controller). The SCSI Request Packet was not sent, so no additional status information is available.
EFI_TIMEOUTA timeout occurred while waiting for the SCSI Request Packet to execute. See HostAdapterStatus, TargetStatus, SenseDataLength, and SenseData in that order for additional status information.

Definition at line 265 of file ScsiIo.h.

Retrieves the device location in the SCSI channel.

Parameters:
ThisProtocol instance pointer.
TargetA pointer to the Target ID of a SCSI device on the SCSI channel.
LunA pointer to the LUN of the SCSI device on the SCSI channel.
Return values:
EFI_SUCCESSRetrieves the device location successfully.
EFI_INVALID_PARAMETERThe Target or Lun is NULL.

Definition at line 169 of file ScsiIo.h.

Retrieves the device type information of the SCSI Controller.

Parameters:
ThisProtocol instance pointer.
DeviceTypeA pointer to the device type information retrieved from the SCSI Controller.
Return values:
EFI_SUCCESSRetrieved the device type information successfully.
EFI_INVALID_PARAMETERThe DeviceType is NULL.

Definition at line 149 of file ScsiIo.h.

Resets the SCSI Bus that the SCSI Controller is attached to.

Parameters:
ThisProtocol instance pointer.
Return values:
EFI_SUCCESSThe SCSI bus is reset successfully.
EFI_DEVICE_ERRORErrors encountered when resetting the SCSI bus.
EFI_UNSUPPORTEDThe bus reset operation is not supported by the SCSI Host Controller.
EFI_TIMEOUTA timeout occurred while attempting to reset the SCSI bus.

Definition at line 190 of file ScsiIo.h.

Resets the SCSI Controller that the device handle specifies.

Parameters:
ThisProtocol instance pointer.
Return values:
EFI_SUCCESSReset the SCSI controller successfully.
EFI_DEVICE_ERRORErrors were encountered when resetting the SCSI Controller.
EFI_UNSUPPORTEDThe SCSI bus does not support a device reset operation.
EFI_TIMEOUTA timeout occurred while attempting to reset the SCSI Controller.

Definition at line 210 of file ScsiIo.h.


Variable Documentation

Definition at line 25 of file ScsiIo.c.

 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines