MdeModulePkg[all]
0.98
|
Data Structures | |
struct | _EFI_FAULT_TOLERANT_WRITE_PROTOCOL |
Macros | |
#define | EFI_FAULT_TOLERANT_WRITE_PROTOCOL_GUID |
Variables | |
EFI_GUID | gEfiFaultTolerantWriteProtocolGuid |
Fault Tolerant Write protocol provides boot-time service for fault tolerant write capability for block devices. The protocol provides for non-volatile storage of the intermediate data and private information a caller would need to recover from a critical fault, such as a power failure.
Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
#define EFI_FAULT_TOLERANT_WRITE_PROTOCOL_GUID |
typedef EFI_STATUS(EFIAPI * EFI_FAULT_TOLERANT_WRITE_ABORT)(IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This) |
Aborts all previously allocated writes.
This | The calling context. |
EFI_SUCCESS | The function completed successfully. |
EFI_ABORTED | The function could not complete successfully. |
EFI_NOT_FOUND | No allocated writes exist. |
typedef EFI_STATUS(EFIAPI * EFI_FAULT_TOLERANT_WRITE_ALLOCATE)(IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This, IN EFI_GUID *CallerId, IN UINTN PrivateDataSize, IN UINTN NumberOfWrites) |
Allocates space for the protocol to maintain information about writes. Since writes must be completed in a fault-tolerant manner and multiple writes require more resources to be successful, this function enables the protocol to ensure that enough space exists to track information about upcoming writes.
This | A pointer to the calling context. |
CallerId | The GUID identifying the write. |
PrivateDataSize | The size of the caller's private data that must be recorded for each write. |
NumberOfWrites | The number of fault tolerant block writes that will need to occur. |
EFI_SUCCESS | The function completed successfully |
EFI_ABORTED | The function could not complete successfully. |
EFI_ACCESS_DENIED | Not all allocated writes have been completed. All writes must be completed or aborted before another fault tolerant write can occur. |
typedef EFI_STATUS(EFIAPI * EFI_FAULT_TOLERANT_WRITE_GET_LAST_WRITE)(IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This, OUT EFI_GUID *CallerId, OUT EFI_LBA *Lba, OUT UINTN *Offset, OUT UINTN *Length, IN OUT UINTN *PrivateDataSize, OUT VOID *PrivateData, OUT BOOLEAN *Complete) |
Starts a target block update. This function records information about the write in fault-tolerant storage and completes the write in a recoverable manner, ensuring at all times that either the original contents or the modified contents are available.
This | Indicates a pointer to the calling context. |
CallerId | The GUID identifying the last write. |
Lba | The logical block address of the last write. |
Offset | The offset within the block of the last write. |
Length | The length of the last write. |
PrivateDataSize | On input, the size of the PrivateData buffer. On output, the size of the private data stored for this write. |
PrivateData | A pointer to a buffer. The function will copy PrivateDataSize bytes from the private data stored for this write. |
Complete | A Boolean value with TRUE indicating that the write was completed. |
EFI_SUCCESS | The function completed successfully. |
EFI_ABORTED | The function could not complete successfully. |
EFI_NOT_FOUND | No allocated writes exist. |
typedef EFI_STATUS(EFIAPI * EFI_FAULT_TOLERANT_WRITE_GET_MAX_BLOCK_SIZE)(IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This, OUT UINTN *BlockSize) |
Get the size of the largest block that can be updated in a fault-tolerant manner.
This | Indicates a pointer to the calling context. |
BlockSize | A pointer to a caller-allocated UINTN that is updated to indicate the size of the largest block that can be updated. |
EFI_SUCCESS | The function completed successfully. |
EFI_ABORTED | The function could not complete successfully. |
typedef EFI_STATUS(EFIAPI * EFI_FAULT_TOLERANT_WRITE_RESTART)(IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This, IN EFI_HANDLE FvbHandle) |
Restarts a previously interrupted write. The caller must provide the block protocol needed to complete the interrupted write.
This | The calling context. |
FvBlockProtocol | The handle of FVB protocol that provides services. for reading, writing, and erasing the target block. |
EFI_SUCCESS | The function completed successfully. |
EFI_ABORTED | The function could not complete successfully. |
EFI_ACCESS_DENIED | No pending writes exist. |
typedef EFI_STATUS(EFIAPI * EFI_FAULT_TOLERANT_WRITE_WRITE)(IN EFI_FAULT_TOLERANT_WRITE_PROTOCOL *This, IN EFI_LBA Lba, IN UINTN Offset, IN UINTN Length, IN VOID *PrivateData, IN EFI_HANDLE FvbHandle, IN VOID *Buffer) |
Starts a target block update. This records information about the write in fault tolerant storage, and will complete the write in a recoverable manner, ensuring at all times that either the original contents or the modified contents are available.
This | The calling context. |
Lba | The logical block address of the target block. |
Offset | The offset within the target block to place the data. |
Length | The number of bytes to write to the target block. |
PrivateData | A pointer to private data that the caller requires to complete any pending writes in the event of a fault. |
FvBlockHandle | The handle of FVB protocol that provides services for reading, writing, and erasing the target block. |
Buffer | The data to write. |
EFI_SUCCESS | The function completed successfully. |
EFI_ABORTED | The function could not complete successfully. |
EFI_BAD_BUFFER_SIZE | The write would span a block boundary, which is not a valid action. |
EFI_ACCESS_DENIED | No writes have been allocated. |
EFI_NOT_READY | The last write has not been completed. Restart() must be called to complete it. |
EFI_GUID gEfiFaultTolerantWriteProtocolGuid |