XenevaOS
Loading...
Searching...
No Matches
ScsiIo.h
Go to the documentation of this file.
1
18#ifndef __EFI_SCSI_IO_PROTOCOL_H__
19#define __EFI_SCSI_IO_PROTOCOL_H__
20
21#define EFI_SCSI_IO_PROTOCOL_GUID \
22 { \
23 0x932f47e6, 0x2362, 0x4002, {0x80, 0x3e, 0x3c, 0xd5, 0x4b, 0x13, 0x8f, 0x85 } \
24 }
25
30
31//
32// SCSI Device type information, defined in the SCSI Primary Commands standard (e.g., SPC-4)
33//
34#define EFI_SCSI_IO_TYPE_DISK 0x00
35#define EFI_SCSI_IO_TYPE_TAPE 0x01
36#define EFI_SCSI_IO_TYPE_PRINTER 0x02
37#define EFI_SCSI_IO_TYPE_PROCESSOR 0x03
38#define EFI_SCSI_IO_TYPE_WORM 0x04
39#define EFI_SCSI_IO_TYPE_CDROM 0x05
40#define EFI_SCSI_IO_TYPE_SCANNER 0x06
41#define EFI_SCSI_IO_TYPE_OPTICAL 0x07
42#define EFI_SCSI_IO_TYPE_MEDIUMCHANGER 0x08
43#define EFI_SCSI_IO_TYPE_COMMUNICATION 0x09
44#define MFI_SCSI_IO_TYPE_A 0x0A
45#define MFI_SCSI_IO_TYPE_B 0x0B
46#define MFI_SCSI_IO_TYPE_RAID 0x0C
47#define MFI_SCSI_IO_TYPE_SES 0x0D
48#define MFI_SCSI_IO_TYPE_RBC 0x0E
49#define MFI_SCSI_IO_TYPE_OCRW 0x0F
50#define MFI_SCSI_IO_TYPE_BRIDGE 0x10
51#define MFI_SCSI_IO_TYPE_OSD 0x11
52#define EFI_SCSI_IO_TYPE_RESERVED_LOW 0x12
53#define EFI_SCSI_IO_TYPE_RESERVED_HIGH 0x1E
54#define EFI_SCSI_IO_TYPE_UNKNOWN 0x1F
55
56//
57// SCSI Data Direction definition
58//
59#define EFI_SCSI_IO_DATA_DIRECTION_READ 0
60#define EFI_SCSI_IO_DATA_DIRECTION_WRITE 1
61#define EFI_SCSI_IO_DATA_DIRECTION_BIDIRECTIONAL 2
62
63//
64// SCSI Host Adapter Status definition
65//
66#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OK 0x00
67#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT_COMMAND 0x09
68#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_TIMEOUT 0x0b
69#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_MESSAGE_REJECT 0x0d
70#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_RESET 0x0e
71#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PARITY_ERROR 0x0f
72#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_REQUEST_SENSE_FAILED 0x10
73#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_SELECTION_TIMEOUT 0x11
74#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_DATA_OVERRUN_UNDERRUN 0x12
75#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_BUS_FREE 0x13
76#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_PHASE_ERROR 0x14
77#define EFI_SCSI_IO_STATUS_HOST_ADAPTER_OTHER 0x7f
78
79
80//
81// SCSI Target Status definition
82//
83#define EFI_SCSI_IO_STATUS_TARGET_GOOD 0x00
84#define EFI_SCSI_IO_STATUS_TARGET_CHECK_CONDITION 0x02
85#define EFI_SCSI_IO_STATUS_TARGET_CONDITION_MET 0x04
86#define EFI_SCSI_IO_STATUS_TARGET_BUSY 0x08
87#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE 0x10
88#define EFI_SCSI_IO_STATUS_TARGET_INTERMEDIATE_CONDITION_MET 0x14
89#define EFI_SCSI_IO_STATUS_TARGET_RESERVATION_CONFLICT 0x18
90#define EFI_SCSI_IO_STATUS_TARGET_COMMOND_TERMINATED 0x22
91#define EFI_SCSI_IO_STATUS_TARGET_QUEUE_FULL 0x28
92
160
172typedef
176 OUT UINT8 *DeviceType
177 );
178
192typedef
196 IN OUT UINT8 **Target,
197 OUT UINT64 *Lun
198 );
199
213typedef
217 );
218
233typedef
237 );
238
239
288typedef
293 IN EFI_EVENT Event OPTIONAL
294 );
295
314
316
317#endif
#define EFIAPI
Definition ProcessorBind.h:172
unsigned int UINT32
Definition ProcessorBind.h:102
#define IN
Definition Base.h:347
#define OUT
Definition Base.h:352
#define OPTIONAL
Definition Base.h:358
EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_RESET_BUS)(IN EFI_SCSI_IO_PROTOCOL *This)
Definition ScsiIo.h:215
EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE)(IN EFI_SCSI_IO_PROTOCOL *This, OUT UINT8 *DeviceType)
Definition ScsiIo.h:174
EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_RESET_DEVICE)(IN EFI_SCSI_IO_PROTOCOL *This)
Definition ScsiIo.h:235
EFI_GUID gEfiScsiIoProtocolGuid
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)
Definition ScsiIo.h:290
EFI_STATUS(EFIAPI * EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION)(IN EFI_SCSI_IO_PROTOCOL *This, IN OUT UINT8 **Target, OUT UINT64 *Lun)
Definition ScsiIo.h:194
RETURN_STATUS EFI_STATUS
Definition UefiBaseType.h:33
VOID * EFI_EVENT
Definition UefiBaseType.h:41
#define VOID
Definition acefi.h:190
unsigned char UINT8
Definition actypes.h:236
COMPILER_DEPENDENT_UINT64 UINT64
Definition actypes.h:239
Definition ScsiIo.h:93
UINT32 InTransferLength
Definition ScsiIo.h:127
UINT8 TargetStatus
Definition ScsiIo.h:153
UINT8 CdbLength
Definition ScsiIo.h:137
UINT64 Timeout
Definition ScsiIo.h:102
UINT32 OutTransferLength
Definition ScsiIo.h:132
UINT8 SenseDataLength
Definition ScsiIo.h:158
UINT8 HostAdapterStatus
Definition ScsiIo.h:148
UINT8 DataDirection
Definition ScsiIo.h:142
VOID * SenseData
Definition ScsiIo.h:117
VOID * InDataBuffer
Definition ScsiIo.h:107
VOID * OutDataBuffer
Definition ScsiIo.h:112
VOID * Cdb
Definition ScsiIo.h:122
Definition Base.h:281
Definition ScsiIo.h:299
EFI_SCSI_IO_PROTOCOL_EXEC_SCSI_COMMAND ExecuteScsiCommand
Definition ScsiIo.h:304
EFI_SCSI_IO_PROTOCOL_RESET_BUS ResetBus
Definition ScsiIo.h:302
UINT32 IoAlign
Definition ScsiIo.h:312
EFI_SCSI_IO_PROTOCOL_RESET_DEVICE ResetDevice
Definition ScsiIo.h:303
EFI_SCSI_IO_PROTOCOL_GET_DEVICE_TYPE GetDeviceType
Definition ScsiIo.h:300
EFI_SCSI_IO_PROTOCOL_GET_DEVICE_LOCATION GetDeviceLocation
Definition ScsiIo.h:301