12#ifndef __EFI_SCSI_IO_PROTOCOL_H__
13#define __EFI_SCSI_IO_PROTOCOL_H__
15#define EFI_SCSI_IO_PROTOCOL_GUID \
17 0x932f47e6, 0x2362, 0x4002, {0x80, 0x3e, 0x3c, 0xd5, 0x4b, 0x13, 0x8f, 0x85 } \
28#define EFI_SCSI_IO_TYPE_DISK 0x00
29#define EFI_SCSI_IO_TYPE_TAPE 0x01
30#define EFI_SCSI_IO_TYPE_PRINTER 0x02
31#define EFI_SCSI_IO_TYPE_PROCESSOR 0x03
32#define EFI_SCSI_IO_TYPE_WORM 0x04
33#define EFI_SCSI_IO_TYPE_CDROM 0x05
34#define EFI_SCSI_IO_TYPE_SCANNER 0x06
35#define EFI_SCSI_IO_TYPE_OPTICAL 0x07
36#define EFI_SCSI_IO_TYPE_MEDIUMCHANGER 0x08
37#define EFI_SCSI_IO_TYPE_COMMUNICATION 0x09
38#define MFI_SCSI_IO_TYPE_A 0x0A
39#define MFI_SCSI_IO_TYPE_B 0x0B
40#define MFI_SCSI_IO_TYPE_RAID 0x0C
41#define MFI_SCSI_IO_TYPE_SES 0x0D
42#define MFI_SCSI_IO_TYPE_RBC 0x0E
43#define MFI_SCSI_IO_TYPE_OCRW 0x0F
44#define MFI_SCSI_IO_TYPE_BRIDGE 0x10
45#define MFI_SCSI_IO_TYPE_OSD 0x11
46#define EFI_SCSI_IO_TYPE_RESERVED_LOW 0x12
47#define EFI_SCSI_IO_TYPE_RESERVED_HIGH 0x1E
48#define EFI_SCSI_IO_TYPE_UNKNOWN 0x1F
53#define EFI_SCSI_IO_DATA_DIRECTION_READ 0
54#define EFI_SCSI_IO_DATA_DIRECTION_WRITE 1
55#define EFI_SCSI_IO_DATA_DIRECTION_BIDIRECTIONAL 2
60#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OK 0x00
61#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT_COMMAND 0x09
62#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT 0x0b
63#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_MESSAGE_REJECT 0x0d
64#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_RESET 0x0e
65#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PARITY_ERROR 0x0f
66#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_REQUEST_SENSE_FAILED 0x10
67#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_SELECTION_TIMEOUT 0x11
68#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_DATA_OVERRUN_UNDERRUN 0x12
69#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_FREE 0x13
70#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PHASE_ERROR 0x14
71#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OTHER 0x7f
76#define EFI_SCSI_IO_STATUS_TARGET_GOOD 0x00
77#define EFI_SCSI_IO_STATUS_TARGET_CHECK_CONDITION 0x02
78#define EFI_SCSI_IO_STATUS_TARGET_CONDITION_MET 0x04
79#define EFI_SCSI_IO_STATUS_TARGET_BUSY 0x08
80#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE 0x10
81#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE_CONDITION_MET 0x14
82#define EFI_SCSI_IO_STATUS_TARGET_RESERVATION_CONFLICT 0x18
83#define EFI_SCSI_IO_STATUS_TARGET_COMMOND_TERMINATED 0x22
84#define EFI_SCSI_IO_STATUS_TARGET_QUEUE_FULL 0x28
169 OUT UINT8 *DeviceType
189 IN OUT UINT8 **Target,
307extern EFI_GUID gEfiScsiIoProtocolGuid;
EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_RESET_BUS)(IN EFI_SCSI_IO_PROTOCOL *This)
EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE)(IN EFI_SCSI_IO_PROTOCOL *This, OUT UINT8 *DeviceType)
EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_RESET_DEVICE)(IN EFI_SCSI_IO_PROTOCOL *This)
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)
EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION)(IN EFI_SCSI_IO_PROTOCOL *This, IN OUT UINT8 **Target, OUT UINT64 *Lun)