#include <IndustryStandard/Scsi.h>\r
\r
\r
- //\r
- // Max bytes needed to represent ID of a SCSI device\r
- //\r
-#define EFI_SCSI_TARGET_MAX_BYTES (0x10)\r
- \r
- //\r
- // bit5..7 are for Logical unit number\r
- // 11100000b (0xe0)\r
- //\r
-#define EFI_SCSI_LOGICAL_UNIT_NUMBER_MASK 0xe0\r
- \r
//\r
// Scsi Command Length\r
//\r
)\r
{\r
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
- UINT64 Lun;\r
- UINT8 *Target;\r
- UINT8 TargetArray[EFI_SCSI_TARGET_MAX_BYTES];\r
EFI_STATUS Status;\r
UINT8 Cdb[EFI_SCSI_OP_LENGTH_SIX];\r
\r
//\r
// Fill Cdb for Test Unit Ready Command\r
//\r
- Target = &TargetArray[0];\r
- ScsiIo->GetDeviceLocation (ScsiIo, &Target, &Lun);\r
-\r
Cdb[0] = EFI_SCSI_OP_TEST_UNIT_READY;\r
- Cdb[1] = (UINT8) (LShiftU64 (Lun, 5) & EFI_SCSI_LOGICAL_UNIT_NUMBER_MASK);\r
CommandPacket.CdbLength = (UINT8) EFI_SCSI_OP_LENGTH_SIX;\r
CommandPacket.SenseDataLength = *SenseDataLength;\r
\r
)\r
{\r
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
- UINT64 Lun;\r
- UINT8 *Target;\r
- UINT8 TargetArray[EFI_SCSI_TARGET_MAX_BYTES];\r
EFI_STATUS Status;\r
UINT8 Cdb[EFI_SCSI_OP_LENGTH_SIX];\r
\r
CommandPacket.SenseDataLength = *SenseDataLength;\r
CommandPacket.Cdb = Cdb;\r
\r
- Target = &TargetArray[0];\r
- ScsiIo->GetDeviceLocation (ScsiIo, &Target, &Lun);\r
-\r
Cdb[0] = EFI_SCSI_OP_INQUIRY;\r
- Cdb[1] = (UINT8) (LShiftU64 (Lun, 5) & EFI_SCSI_LOGICAL_UNIT_NUMBER_MASK);\r
if (EnableVitalProductData) {\r
Cdb[1] |= 0x01;\r
Cdb[2] = PageCode;\r
)\r
{\r
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
- UINT64 Lun;\r
- UINT8 *Target;\r
- UINT8 TargetArray[EFI_SCSI_TARGET_MAX_BYTES];\r
EFI_STATUS Status;\r
UINT8 Cdb[EFI_SCSI_OP_LENGTH_TEN];\r
\r
//\r
// Fill Cdb for Mode Sense (10) Command\r
//\r
- Target = &TargetArray[0];\r
- ScsiIo->GetDeviceLocation (ScsiIo, &Target, &Lun);\r
-\r
Cdb[0] = EFI_SCSI_OP_MODE_SEN10;\r
//\r
// DBDField is in Cdb[1] bit3 of (bit7..0)\r
//\r
- Cdb[1] = (UINT8) ((LShiftU64 (Lun, 5) & EFI_SCSI_LOGICAL_UNIT_NUMBER_MASK) + ((DBDField << 3) & 0x08));\r
+ Cdb[1] = (UINT8) ((DBDField << 3) & 0x08);\r
//\r
// PageControl is in Cdb[2] bit7..6, PageCode is in Cdb[2] bit5..0\r
//\r
)\r
{\r
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
- UINT64 Lun;\r
- UINT8 *Target;\r
- UINT8 TargetArray[EFI_SCSI_TARGET_MAX_BYTES];\r
EFI_STATUS Status;\r
UINT8 Cdb[EFI_SCSI_OP_LENGTH_SIX];\r
\r
//\r
// Fill Cdb for Request Sense Command\r
//\r
- Target = &TargetArray[0];\r
- ScsiIo->GetDeviceLocation (ScsiIo, &Target, &Lun);\r
-\r
Cdb[0] = EFI_SCSI_OP_REQUEST_SENSE;\r
- Cdb[1] = (UINT8) (LShiftU64 (Lun, 5) & EFI_SCSI_LOGICAL_UNIT_NUMBER_MASK);\r
Cdb[4] = (UINT8) (*SenseDataLength);\r
\r
CommandPacket.CdbLength = (UINT8) EFI_SCSI_OP_LENGTH_SIX;\r
)\r
{\r
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
- UINT64 Lun;\r
- UINT8 *Target;\r
- UINT8 TargetArray[EFI_SCSI_TARGET_MAX_BYTES];\r
EFI_STATUS Status;\r
UINT8 Cdb[EFI_SCSI_OP_LENGTH_TEN];\r
\r
//\r
// Fill Cdb for Read Capacity Command\r
//\r
- Target = &TargetArray[0];\r
- ScsiIo->GetDeviceLocation (ScsiIo, &Target, &Lun);\r
-\r
Cdb[0] = EFI_SCSI_OP_READ_CAPACITY;\r
- Cdb[1] = (UINT8) (LShiftU64 (Lun, 5) & EFI_SCSI_LOGICAL_UNIT_NUMBER_MASK);\r
if (!Pmi) {\r
//\r
// Partial medium indicator,if Pmi is FALSE, the Cdb.2 ~ Cdb.5 MUST BE ZERO.\r
)\r
{\r
EFI_SCSI_IO_SCSI_REQUEST_PACKET CommandPacket;\r
- UINT64 Lun;\r
- UINT8 *Target;\r
- UINT8 TargetArray[EFI_SCSI_TARGET_MAX_BYTES];\r
EFI_STATUS Status;\r
UINT8 Cdb[16];\r
\r
//\r
// Fill Cdb for Read Capacity Command\r
//\r
- Target = &TargetArray[0];\r
- ScsiIo->GetDeviceLocation (ScsiIo, &Target, &Lun);\r
-\r
Cdb[0] = EFI_SCSI_OP_READ_CAPACITY16;\r
Cdb[1] = 0x10;\r
if (!Pmi) {\r