123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /** @file
- BlockIo function declaration for Xen PV block driver.
- Copyright (C) 2014, Citrix Ltd.
- SPDX-License-Identifier: BSD-2-Clause-Patent
- **/
- /**
- Read BufferSize bytes from Lba into Buffer.
- @param This Indicates a pointer to the calling context.
- @param MediaId Id of the media, changes every time the media is replaced.
- @param Lba The starting Logical Block Address to read from
- @param BufferSize Size of Buffer, must be a multiple of device block size.
- @param Buffer A pointer to the destination buffer for the data. The caller is
- responsible for either having implicit or explicit ownership of the buffer.
- @retval EFI_SUCCESS The data was read correctly from the device.
- @retval EFI_DEVICE_ERROR The device reported an error while performing the read.
- @retval EFI_NO_MEDIA There is no media in the device.
- @retval EFI_MEDIA_CHANGED The MediaId does not match the current device.
- @retval EFI_BAD_BUFFER_SIZE The Buffer was not a multiple of the block size of the device.
- @retval EFI_INVALID_PARAMETER The read request contains LBAs that are not valid,
- or the buffer is not on proper alignment.
- **/
- EFI_STATUS
- EFIAPI
- XenPvBlkDxeBlockIoReadBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN UINTN BufferSize,
- OUT VOID *Buffer
- );
- /**
- Write BufferSize bytes from Lba into Buffer.
- @param This Indicates a pointer to the calling context.
- @param MediaId The media ID that the write request is for.
- @param Lba The starting logical block address to be written. The caller is
- responsible for writing to only legitimate locations.
- @param BufferSize Size of Buffer, must be a multiple of device block size.
- @param Buffer A pointer to the source buffer for the data.
- @retval EFI_SUCCESS The data was written correctly to the device.
- @retval EFI_WRITE_PROTECTED The device can not be written to.
- @retval EFI_DEVICE_ERROR The device reported an error while performing the write.
- @retval EFI_NO_MEDIA There is no media in the device.
- @retval EFI_MEDIA_CHANGED The MediaId does not match the current device.
- @retval EFI_BAD_BUFFER_SIZE The Buffer was not a multiple of the block size of the device.
- @retval EFI_INVALID_PARAMETER The write request contains LBAs that are not valid,
- or the buffer is not on proper alignment.
- **/
- EFI_STATUS
- EFIAPI
- XenPvBlkDxeBlockIoWriteBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN UINT32 MediaId,
- IN EFI_LBA Lba,
- IN UINTN BufferSize,
- IN VOID *Buffer
- );
- /**
- Flush the Block Device.
- @param This Indicates a pointer to the calling context.
- @retval EFI_SUCCESS All outstanding data was written to the device
- @retval EFI_DEVICE_ERROR The device reported an error while writing back the data
- @retval EFI_NO_MEDIA There is no media in the device.
- **/
- EFI_STATUS
- EFIAPI
- XenPvBlkDxeBlockIoFlushBlocks (
- IN EFI_BLOCK_IO_PROTOCOL *This
- );
- /**
- Reset the block device hardware.
- @param[in] This Indicates a pointer to the calling context.
- @param[in] ExtendedVerification Not used.
- @retval EFI_SUCCESS The device was reset.
- **/
- EFI_STATUS
- EFIAPI
- XenPvBlkDxeBlockIoReset (
- IN EFI_BLOCK_IO_PROTOCOL *This,
- IN BOOLEAN ExtendedVerification
- );
- extern EFI_BLOCK_IO_MEDIA gXenPvBlkDxeBlockIoMedia;
- extern EFI_BLOCK_IO_PROTOCOL gXenPvBlkDxeBlockIo;
|