/** @file Common Libarary for SCSI Copyright (c) 2006 - 2007, 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. **/ #ifndef _SCSI_LIB_H #define _SCSI_LIB_H #include // // the time unit is 100ns, since the SCSI I/O defines timeout in 100ns unit. // #define EFI_SCSI_STALL_1_MICROSECOND 10 #define EFI_SCSI_STALL_1_MILLISECOND 10000 #define EFI_SCSI_STALL_1_SECOND 10000000 // // this macro cannot be directly used by the gBS->Stall(), // since the value output by this macro is in 100ns unit, // not 1us unit (1us = 1000ns) // #define EfiScsiStallSeconds(a) (a) * EFI_SCSI_STALL_1_SECOND EFI_STATUS SubmitTestUnitReadyCommand ( IN EFI_SCSI_IO_PROTOCOL *ScsiIo, IN UINT64 Timeout, OUT VOID *SenseData, OUT UINT8 *SenseDataLength, OUT UINT8 *HostAdapterStatus, OUT UINT8 *TargetStatus ) /*++ Routine Description: TODO: Add function description Arguments: ScsiIo - TODO: add argument description Timeout - TODO: add argument description SenseData - TODO: add argument description SenseDataLength - TODO: add argument description HostAdapterStatus - TODO: add argument description TargetStatus - TODO: add argument description Returns: TODO: add return values --*/ ; EFI_STATUS SubmitInquiryCommand ( IN EFI_SCSI_IO_PROTOCOL *ScsiIo, IN UINT64 Timeout, IN VOID *SenseData, IN OUT UINT8 *SenseDataLength, OUT UINT8 *HostAdapterStatus, OUT UINT8 *TargetStatus, IN OUT VOID *InquiryDataBuffer, IN OUT UINT32 *InquiryDataLength, IN BOOLEAN EnableVitalProductData ) /*++ Routine Description: TODO: Add function description Arguments: ScsiIo - TODO: add argument description Timeout - TODO: add argument description SenseData - TODO: add argument description SenseDataLength - TODO: add argument description HostAdapterStatus - TODO: add argument description TargetStatus - TODO: add argument description InquiryDataBuffer - TODO: add argument description InquiryDataLength - TODO: add argument description EnableVitalProductData - TODO: add argument description Returns: TODO: add return values --*/ ; EFI_STATUS SubmitModeSense10Command ( IN EFI_SCSI_IO_PROTOCOL *ScsiIo, IN UINT64 Timeout, IN VOID *SenseData, IN OUT UINT8 *SenseDataLength, OUT UINT8 *HostAdapterStatus, OUT UINT8 *TargetStatus, IN VOID *DataBuffer, IN OUT UINT32 *DataLength, IN UINT8 DBDField, OPTIONAL IN UINT8 PageControl, IN UINT8 PageCode ) /*++ Routine Description: TODO: Add function description Arguments: ScsiIo - TODO: add argument description Timeout - TODO: add argument description SenseData - TODO: add argument description SenseDataLength - TODO: add argument description HostAdapterStatus - TODO: add argument description TargetStatus - TODO: add argument description DataBuffer - TODO: add argument description DataLength - TODO: add argument description DBDField - TODO: add argument description PageControl - TODO: add argument description PageCode - TODO: add argument description Returns: TODO: add return values --*/ ; EFI_STATUS SubmitRequestSenseCommand ( IN EFI_SCSI_IO_PROTOCOL *ScsiIo, IN UINT64 Timeout, IN VOID *SenseData, IN OUT UINT8 *SenseDataLength, OUT UINT8 *HostAdapterStatus, OUT UINT8 *TargetStatus ) /*++ Routine Description: TODO: Add function description Arguments: ScsiIo - TODO: add argument description Timeout - TODO: add argument description SenseData - TODO: add argument description SenseDataLength - TODO: add argument description HostAdapterStatus - TODO: add argument description TargetStatus - TODO: add argument description Returns: TODO: add return values --*/ ; // // Commands for direct access command // EFI_STATUS SubmitReadCapacityCommand ( IN EFI_SCSI_IO_PROTOCOL *ScsiIo, IN UINT64 Timeout, IN VOID *SenseData, IN OUT UINT8 *SenseDataLength, OUT UINT8 *HostAdapterStatus, OUT UINT8 *TargetStatus, OUT VOID *DataBuffer, IN OUT UINT32 *DataLength, IN BOOLEAN PMI ) /*++ Routine Description: TODO: Add function description Arguments: ScsiIo - TODO: add argument description Timeout - TODO: add argument description SenseData - TODO: add argument description SenseDataLength - TODO: add argument description HostAdapterStatus - TODO: add argument description TargetStatus - TODO: add argument description DataBuffer - TODO: add argument description DataLength - TODO: add argument description PMI - TODO: add argument description Returns: TODO: add return values --*/ ; EFI_STATUS SubmitRead10Command ( IN EFI_SCSI_IO_PROTOCOL *ScsiIo, IN UINT64 Timeout, IN VOID *SenseData, IN OUT UINT8 *SenseDataLength, OUT UINT8 *HostAdapterStatus, OUT UINT8 *TargetStatus, OUT VOID *DataBuffer, IN OUT UINT32 *DataLength, IN UINT32 StartLba, IN UINT32 SectorSize ) /*++ Routine Description: TODO: Add function description Arguments: ScsiIo - TODO: add argument description Timeout - TODO: add argument description SenseData - TODO: add argument description SenseDataLength - TODO: add argument description HostAdapterStatus - TODO: add argument description TargetStatus - TODO: add argument description DataBuffer - TODO: add argument description DataLength - TODO: add argument description StartLba - TODO: add argument description SectorSize - TODO: add argument description Returns: TODO: add return values --*/ ; EFI_STATUS SubmitWrite10Command ( IN EFI_SCSI_IO_PROTOCOL *ScsiIo, IN UINT64 Timeout, IN VOID *SenseData, IN OUT UINT8 *SenseDataLength, OUT UINT8 *HostAdapterStatus, OUT UINT8 *TargetStatus, OUT VOID *DataBuffer, IN OUT UINT32 *DataLength, IN UINT32 StartLba, IN UINT32 SectorSize ) /*++ Routine Description: TODO: Add function description Arguments: ScsiIo - TODO: add argument description Timeout - TODO: add argument description SenseData - TODO: add argument description SenseDataLength - TODO: add argument description HostAdapterStatus - TODO: add argument description TargetStatus - TODO: add argument description DataBuffer - TODO: add argument description DataLength - TODO: add argument description StartLba - TODO: add argument description SectorSize - TODO: add argument description Returns: TODO: add return values --*/ ; #endif