| /*++ | |
| 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 |