scsidisk.h

来自「EFI BIOS是Intel提出的下一代的BIOS标准。这里上传的Edk源代码是」· C头文件 代码 · 共 777 行 · 第 1/2 页

H
777
字号
;

EFI_STATUS
ScsiDiskInquiryDevice (
  SCSI_DISK_DEV   *ScsiDiskDevice,
  BOOLEAN         *NeedRetry
  )
/*++

Routine Description:

  Send out Inquiry command to Device

Arguments:

  ScsiDiskDevice  - The pointer of SCSI_DISK_DEV
  NeedRetry       - Indicates if needs try again when error happens

Returns:

  EFI_DEVICE_ERROR   - Indicates that error occurs
  EFI_SUCCESS        - Successfully to detect media

--*/
;

VOID
ParseInquiryData (
  SCSI_DISK_DEV   *ScsiDiskDevice
  )
/*++

Routine Description:

  Parse Inquiry data

Arguments:

  ScsiDiskDevice  - The pointer of SCSI_DISK_DEV

Returns:

  NONE

--*/
;

EFI_STATUS
ScsiDiskReadSectors (
  SCSI_DISK_DEV     *ScsiDiskDevice,
  VOID              *Buffer,
  EFI_LBA           Lba,
  UINTN             NumberOfBlocks
  )
/*++

Routine Description:

  Read sector from SCSI Disk

Arguments:

  ScsiDiskDevice  - The poiniter of SCSI_DISK_DEV
  Buffer          - The buffer to fill in the read out data
  Lba             - Logic block address
  NumberOfBlocks  - The number of blocks to read

Returns:

  EFI_DEVICE_ERROR
  EFI_SUCCESS

--*/
;

EFI_STATUS
ScsiDiskWriteSectors (
  SCSI_DISK_DEV     *ScsiDiskDevice,
  VOID              *Buffer,
  EFI_LBA           Lba,
  UINTN             NumberOfBlocks
  )
/*++

Routine Description:

  Write SCSI Disk sectors

Arguments:

  ScsiDiskDevice  - The pointer of SCSI_DISK_DEV
  Buffer          - The data buffer to write sector
  Lba             - Logic block address
  NumberOfBlocks  - The number of blocks to write

Returns:

  EFI_DEVICE_ERROR 
  EFI_SUCCESS

--*/
;

EFI_STATUS
ScsiDiskRead10 (
  SCSI_DISK_DEV         *ScsiDiskDevice,
  BOOLEAN               *NeedRetry,
  EFI_SCSI_SENSE_DATA   **SenseDataArray,
  UINTN                 *NumberOfSenseKeys,
  UINT64                Timeout,
  UINT8                 *DataBuffer,
  UINT32                *DataLength,
  UINT32                StartLba,
  UINT32                SectorSize
  )
/*++

Routine Description:

  Sumbmit Read command 

Arguments:

  ScsiDiskDevice    - The pointer of ScsiDiskDevice
  NeedRetry         - The pointer of flag indicates if needs retry if error happens
  SenseDataArray    - The pointer of an array of sense data
  NumberOfSenseKeys - The number of sense key
  Timeout           - The time to complete the command
  DataBuffer        - The buffer to fill with the read out data
  DataLength        - The length of buffer
  StartLba          - The start logic block address
  SectorSize        - The size of sector

Returns:

  EFI_STATUS

--*/
;

EFI_STATUS
ScsiDiskWrite10 (
  SCSI_DISK_DEV         *ScsiDiskDevice,
  BOOLEAN               *NeedRetry,
  EFI_SCSI_SENSE_DATA   **SenseDataArray,
  UINTN                 *NumberOfSenseKeys,
  UINT64                Timeout,
  UINT8                 *DataBuffer,
  UINT32                *DataLength,
  UINT32                StartLba,
  UINT32                SectorSize
  )
/*++

Routine Description:

  Submit Write Command

Arguments:

  ScsiDiskDevice    - The pointer of ScsiDiskDevice
  NeedRetry         - The pointer of flag indicates if needs retry if error happens
  SenseDataArray    - The pointer of an array of sense data
  NumberOfSenseKeys - The number of sense key
  Timeout           - The time to complete the command
  DataBuffer        - The buffer to fill with the read out data
  DataLength        - The length of buffer
  StartLba          - The start logic block address
  SectorSize        - The size of sector

Returns:

  EFI_STATUS

--*/
;

VOID
GetMediaInfo (
  SCSI_DISK_DEV                 *ScsiDiskDevice,
  EFI_SCSI_DISK_CAPACITY_DATA   *Capacity
  )
/*++

Routine Description:

  Get information from media read capacity command

Arguments:

  ScsiDiskDevice  - The pointer of SCSI_DISK_DEV
  Capacity        - The pointer of EFI_SCSI_DISK_CAPACITY_DATA

Returns:

  NONE

--*/
;

BOOLEAN
ScsiDiskIsNoMedia (
  IN  EFI_SCSI_SENSE_DATA   *SenseData,
  IN  UINTN                 SenseCounts
  )
/*++

Routine Description:

  Check sense key to find if media presents

Arguments:

  SenseData   - The pointer of EFI_SCSI_SENSE_DATA
  SenseCounts - The number of sense key

Returns:

  BOOLEAN

--*/
;

BOOLEAN
ScsiDiskIsMediaError (
  IN  EFI_SCSI_SENSE_DATA   *SenseData,
  IN  UINTN                 SenseCounts
  )
/*++

Routine Description:

  Parse sense key

Arguments:

  SenseData   - The pointer of EFI_SCSI_SENSE_DATA
  SenseCounts - The number of sense key

Returns:

  BOOLEAN

--*/
;

BOOLEAN
ScsiDiskIsHardwareError (
  IN  EFI_SCSI_SENSE_DATA   *SenseData,
  IN  UINTN                 SenseCounts
  )
/*++

Routine Description:

  Check sense key to find if hardware error happens

Arguments:

  SenseData   - The pointer of EFI_SCSI_SENSE_DATA
  SenseCounts - The number of sense key

Returns:

  BOOLEAN

--*/
;

BOOLEAN
ScsiDiskIsMediaChange (
  IN  EFI_SCSI_SENSE_DATA   *SenseData,
  IN  UINTN                 SenseCounts
  )
/*++

Routine Description:

Routine Description:

 Check sense key to find if media has changed

Arguments:

  SenseData   - The pointer of EFI_SCSI_SENSE_DATA
  SenseCounts - The number of sense key

Returns:

  BOOLEAN

--*/
;

BOOLEAN
ScsiDiskIsResetBefore (
  IN  EFI_SCSI_SENSE_DATA   *SenseData,
  IN  UINTN                 SenseCounts
  )
/*++

Routine Description:

  Check sense key to find if reset happens

Arguments:

  SenseData   - The pointer of EFI_SCSI_SENSE_DATA
  SenseCounts - The number of sense key

Returns:

  BOOLEAN

--*/
;

BOOLEAN
ScsiDiskIsDriveReady (
  IN  EFI_SCSI_SENSE_DATA   *SenseData,
  IN  UINTN                 SenseCounts,
  OUT BOOLEAN               *NeedRetry
  )
/*++

Routine Description:

  Check sense key to find if the drive is ready

Arguments:

  SenseData   - The pointer of EFI_SCSI_SENSE_DATA
  SenseCounts - The number of sense key
  RetryLater  - The flag means if need a retry 

Returns:

  BOOLEAN

--*/
;

BOOLEAN
ScsiDiskHaveSenseKey (
  IN  EFI_SCSI_SENSE_DATA   *SenseData,
  IN  UINTN                 SenseCounts
  )
/*++

Routine Description:

  Check sense key to find if it has sense key

Arguments:

  SenseData   - The pointer of EFI_SCSI_SENSE_DATA
  SenseCounts - The number of sense key

Returns:

  BOOLEAN

--*/
;

VOID
ReleaseScsiDiskDeviceResources (
  IN  SCSI_DISK_DEV   *ScsiDiskDevice
  )
/*++

Routine Description:

  Release resource about disk device

Arguments:

  ScsiDiskDevice  - The pointer of SCSI_DISK_DEV

Returns:

  NONE

--*/
;

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?