16#ifndef __SCSI_PASS_THROUGH_H__
17#define __SCSI_PASS_THROUGH_H__
19#define EFI_SCSI_PASS_THRU_PROTOCOL_GUID \
21 0xa59e8fcf, 0xbda0, 0x43bb, {0x90, 0xb1, 0xd3, 0x73, 0x2e, 0xca, 0xa8, 0x77 } \
29#define EFI_SCSI_PASS_THRU_ATTRIBUTES_PHYSICAL 0x0001
30#define EFI_SCSI_PASS_THRU_ATTRIBUTES_LOGICAL 0x0002
31#define EFI_SCSI_PASS_THRU_ATTRIBUTES_NONBLOCKIO 0x0004
36#define EFI_SCSI_STATUS_HOST_ADAPTER_OK 0x00
37#define EFI_SCSI_STATUS_HOST_ADAPTER_TIMEOUT_COMMAND 0x09
38#define EFI_SCSI_STATUS_HOST_ADAPTER_TIMEOUT 0x0b
39#define EFI_SCSI_STATUS_HOST_ADAPTER_MESSAGE_REJECT 0x0d
40#define EFI_SCSI_STATUS_HOST_ADAPTER_BUS_RESET 0x0e
41#define EFI_SCSI_STATUS_HOST_ADAPTER_PARITY_ERROR 0x0f
42#define EFI_SCSI_STATUS_HOST_ADAPTER_REQUEST_SENSE_FAILED 0x10
43#define EFI_SCSI_STATUS_HOST_ADAPTER_SELECTION_TIMEOUT 0x11
44#define EFI_SCSI_STATUS_HOST_ADAPTER_DATA_OVERRUN_UNDERRUN 0x12
45#define EFI_SCSI_STATUS_HOST_ADAPTER_BUS_FREE 0x13
46#define EFI_SCSI_STATUS_HOST_ADAPTER_PHASE_ERROR 0x14
47#define EFI_SCSI_STATUS_HOST_ADAPTER_OTHER 0x7f
52#define EFI_SCSI_STATUS_TARGET_GOOD 0x00
53#define EFI_SCSI_STATUS_TARGET_CHECK_CONDITION 0x02
54#define EFI_SCSI_STATUS_TARGET_CONDITION_MET 0x04
55#define EFI_SCSI_STATUS_TARGET_BUSY 0x08
56#define EFI_SCSI_STATUS_TARGET_INTERMEDIATE 0x10
57#define EFI_SCSI_STATUS_TARGET_INTERMEDIATE_CONDITION_MET 0x14
58#define EFI_SCSI_STATUS_TARGET_RESERVATION_CONFLICT 0x18
59#define EFI_SCSI_STATUS_TARGET_COMMOND_TERMINATED 0x22
60#define EFI_SCSI_STATUS_TARGET_QUEUE_FULL 0x28
235 IN OUT UINT32 *Target,
375extern EFI_GUID gEfiScsiPassThruProtocolGuid;
EFI_STATUS(EFIAPI * EFI_SCSI_PASS_THRU_RESET_TARGET)(IN EFI_SCSI_PASS_THRU_PROTOCOL *This, IN UINT32 Target, IN UINT64 Lun)
EFI_STATUS(EFIAPI * EFI_SCSI_PASS_THRU_GET_TARGET_LUN)(IN EFI_SCSI_PASS_THRU_PROTOCOL *This, IN EFI_DEVICE_PATH_PROTOCOL *DevicePath, OUT UINT32 *Target, OUT UINT64 *Lun)
EFI_STATUS(EFIAPI * EFI_SCSI_PASS_THRU_PASSTHRU)(IN EFI_SCSI_PASS_THRU_PROTOCOL *This, IN UINT32 Target, IN UINT64 Lun, IN OUT EFI_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *Packet, IN EFI_EVENT Event OPTIONAL)
EFI_STATUS(EFIAPI * EFI_SCSI_PASS_THRU_BUILD_DEVICE_PATH)(IN EFI_SCSI_PASS_THRU_PROTOCOL *This, IN UINT32 Target, IN UINT64 Lun, IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath)
EFI_STATUS(EFIAPI * EFI_SCSI_PASS_THRU_RESET_CHANNEL)(IN EFI_SCSI_PASS_THRU_PROTOCOL *This)
EFI_STATUS(EFIAPI * EFI_SCSI_PASS_THRU_GET_NEXT_DEVICE)(IN EFI_SCSI_PASS_THRU_PROTOCOL *This, IN OUT UINT32 *Target, IN OUT UINT64 *Lun)
EFI_SCSI_PASS_THRU_MODE * Mode