TianoCore EDK2 master
|
#include "RamDiskImpl.h"
Go to the source code of this file.
Variables | |
EFI_BLOCK_IO_PROTOCOL | mRamDiskBlockIoTemplate |
EFI_BLOCK_IO2_PROTOCOL | mRamDiskBlockIo2Template |
Produce EFI_BLOCK_IO_PROTOCOL on a RAM disk device.
Copyright (c) 2016 - 2019, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
Definition in file RamDiskBlockIo.c.
EFI_STATUS EFIAPI RamDiskBlkIo2FlushBlocksEx | ( | IN EFI_BLOCK_IO2_PROTOCOL * | This, |
IN OUT EFI_BLOCK_IO2_TOKEN * | Token | ||
) |
Flushes all modified data to a physical block device.
[in] | This | Indicates a pointer to the calling context. |
[in,out] | Token | A pointer to the token associated with the transaction. |
EFI_SUCCESS | The flush request was queued if Event is not NULL. All outstanding data was written correctly to the device if the Event is NULL. |
EFI_DEVICE_ERROR | The device reported an error while attempting to write data. |
EFI_WRITE_PROTECTED | The device cannot be written to. |
EFI_NO_MEDIA | There is no media in the device. |
EFI_MEDIA_CHANGED | The MediaId is not for the current media. |
EFI_OUT_OF_RESOURCES | The request could not be completed due to a lack of resources. |
Definition at line 458 of file RamDiskBlockIo.c.
EFI_STATUS EFIAPI RamDiskBlkIo2ReadBlocksEx | ( | IN EFI_BLOCK_IO2_PROTOCOL * | This, |
IN UINT32 | MediaId, | ||
IN EFI_LBA | Lba, | ||
IN OUT EFI_BLOCK_IO2_TOKEN * | Token, | ||
IN UINTN | BufferSize, | ||
OUT VOID * | Buffer | ||
) |
Reads the requested number of blocks from the device.
[in] | This | Indicates a pointer to the calling context. |
[in] | MediaId | The media ID that the read request is for. |
[in] | Lba | The starting logical block address to read from on the device. |
[in,out] | Token | A pointer to the token associated with the transaction. |
[in] | BufferSize | The size of the Buffer in bytes. This must be a multiple of the intrinsic block size of the device. |
[out] | Buffer | A pointer to the destination buffer for the data. The caller is responsible for either having implicit or explicit ownership of the buffer. |
EFI_SUCCESS | The read request was queued if Token->Event is not NULL. The data was read correctly from the device if the Token->Event is NULL. |
EFI_DEVICE_ERROR | The device reported an error while attempting to perform the read operation. |
EFI_NO_MEDIA | There is no media in the device. |
EFI_MEDIA_CHANGED | The MediaId is not for the current media. |
EFI_BAD_BUFFER_SIZE | The BufferSize parameter is not a multiple of the intrinsic block size of the device. |
EFI_INVALID_PARAMETER | The read request contains LBAs that are not valid, or the buffer is not on proper alignment. |
EFI_OUT_OF_RESOURCES | The request could not be completed due to a lack of resources. |
Definition at line 331 of file RamDiskBlockIo.c.
EFI_STATUS EFIAPI RamDiskBlkIo2Reset | ( | IN EFI_BLOCK_IO2_PROTOCOL * | This, |
IN BOOLEAN | ExtendedVerification | ||
) |
Resets the block device hardware.
[in] | This | The pointer of EFI_BLOCK_IO2_PROTOCOL. |
[in] | ExtendedVerification | The flag about if extend verificate. |
EFI_SUCCESS | The device was reset. |
EFI_DEVICE_ERROR | The block device is not functioning correctly and could not be reset. |
Definition at line 288 of file RamDiskBlockIo.c.
EFI_STATUS EFIAPI RamDiskBlkIo2WriteBlocksEx | ( | IN EFI_BLOCK_IO2_PROTOCOL * | This, |
IN UINT32 | MediaId, | ||
IN EFI_LBA | Lba, | ||
IN OUT EFI_BLOCK_IO2_TOKEN * | Token, | ||
IN UINTN | BufferSize, | ||
IN VOID * | Buffer | ||
) |
Writes a specified number of blocks to the device.
[in] | This | Indicates a pointer to the calling context. |
[in] | MediaId | The media ID that the write request is for. |
[in] | Lba | The starting logical block address to be written. The caller is responsible for writing to only legitimate locations. |
[in,out] | Token | A pointer to the token associated with the transaction. |
[in] | BufferSize | The size in bytes of Buffer. This must be a multiple of the intrinsic block size of the device. |
[in] | Buffer | A pointer to the source buffer for the data. |
EFI_SUCCESS | The write request was queued if Event is not NULL. The data was written correctly to the device if the Event is NULL. |
EFI_WRITE_PROTECTED | The device cannot be written to. |
EFI_NO_MEDIA | There is no media in the device. |
EFI_MEDIA_CHANGED | The MediaId is not for the current media. |
EFI_DEVICE_ERROR | The device reported an error while attempting to perform the write operation. |
EFI_BAD_BUFFER_SIZE | The BufferSize parameter is not a multiple of the intrinsic block size of the device. |
EFI_INVALID_PARAMETER | The write request contains LBAs that are not valid, or the buffer is not on proper alignment. |
EFI_OUT_OF_RESOURCES | The request could not be completed due to a lack of resources. |
Definition at line 401 of file RamDiskBlockIo.c.
EFI_STATUS EFIAPI RamDiskBlkIoFlushBlocks | ( | IN EFI_BLOCK_IO_PROTOCOL * | This | ) |
Flush the Block Device.
[in] | This | Indicates a pointer to the calling context. |
EFI_SUCCESS | All outstanding data was written to the device. |
EFI_DEVICE_ERROR | The device reported an error while writting back the data |
EFI_NO_MEDIA | There is no media in the device. |
Definition at line 268 of file RamDiskBlockIo.c.
EFI_STATUS EFIAPI RamDiskBlkIoReadBlocks | ( | IN EFI_BLOCK_IO_PROTOCOL * | This, |
IN UINT32 | MediaId, | ||
IN EFI_LBA | Lba, | ||
IN UINTN | BufferSize, | ||
OUT VOID * | Buffer | ||
) |
Read BufferSize bytes from Lba into Buffer.
[in] | This | Indicates a pointer to the calling context. |
[in] | MediaId | Id of the media, changes every time the media is replaced. |
[in] | Lba | The starting Logical Block Address to read from. |
[in] | BufferSize | Size of Buffer, must be a multiple of device block size. |
[out] | Buffer | A pointer to the destination buffer for the data. The caller is responsible for either having implicit or explicit ownership of the buffer. |
EFI_SUCCESS | The data was read correctly from the device. |
EFI_DEVICE_ERROR | The device reported an error while performing the read. |
EFI_NO_MEDIA | There is no media in the device. |
EFI_MEDIA_CHANGED | The MediaId does not matched the current device. |
EFI_BAD_BUFFER_SIZE | The Buffer was not a multiple of the block size of the device. |
EFI_INVALID_PARAMETER | The read request contains LBAs that are not valid, or the buffer is not on proper alignment. |
Definition at line 130 of file RamDiskBlockIo.c.
EFI_STATUS EFIAPI RamDiskBlkIoReset | ( | IN EFI_BLOCK_IO_PROTOCOL * | This, |
IN BOOLEAN | ExtendedVerification | ||
) |
Reset the Block Device.
This | Indicates a pointer to the calling context. |
ExtendedVerification | Driver may perform diagnostics on reset. |
EFI_SUCCESS | The device was reset. |
EFI_DEVICE_ERROR | The device is not functioning properly and could not be reset. |
Definition at line 95 of file RamDiskBlockIo.c.
EFI_STATUS EFIAPI RamDiskBlkIoWriteBlocks | ( | IN EFI_BLOCK_IO_PROTOCOL * | This, |
IN UINT32 | MediaId, | ||
IN EFI_LBA | Lba, | ||
IN UINTN | BufferSize, | ||
IN VOID * | Buffer | ||
) |
Write BufferSize bytes from Lba into Buffer.
[in] | This | Indicates a pointer to the calling context. |
[in] | MediaId | The media ID that the write request is for. |
[in] | Lba | The starting logical block address to be written. The caller is responsible for writing to only legitimate locations. |
[in] | BufferSize | Size of Buffer, must be a multiple of device block size. |
[in] | Buffer | A pointer to the source buffer for the data. |
EFI_SUCCESS | The data was written correctly to the device. |
EFI_WRITE_PROTECTED | The device can not be written to. |
EFI_DEVICE_ERROR | The device reported an error while performing the write. |
EFI_NO_MEDIA | There is no media in the device. |
EFI_MEDIA_CHNAGED | The MediaId does not matched the current device. |
EFI_BAD_BUFFER_SIZE | The Buffer was not a multiple of the block size of the device. |
EFI_INVALID_PARAMETER | The write request contains LBAs that are not valid, or the buffer is not on proper alignment. |
Definition at line 204 of file RamDiskBlockIo.c.
VOID RamDiskInitBlockIo | ( | IN RAM_DISK_PRIVATE_DATA * | PrivateData | ) |
Initialize the BlockIO & BlockIO2 protocol of a RAM disk device.
[in] | PrivateData | Points to RAM disk private data. |
Definition at line 43 of file RamDiskBlockIo.c.
EFI_BLOCK_IO2_PROTOCOL mRamDiskBlockIo2Template |
Definition at line 28 of file RamDiskBlockIo.c.
EFI_BLOCK_IO_PROTOCOL mRamDiskBlockIoTemplate |
Definition at line 15 of file RamDiskBlockIo.c.