/*++ | |
Copyright (c) 2006, 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. | |
Module Name: | |
ScsiLib.h | |
Abstract: | |
Common Libarary for SCSI | |
Revision History | |
--*/ | |
#ifndef _SCSI_LIB_H | |
#define _SCSI_LIB_H | |
// | |
// 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 |