2 Fault tolerant write lite protocol defines only one interface to write
3 the buffer to the fault tolerant storage.
5 Copyright (c) 2006 - 2008, Intel Corporation. <BR>
6 All rights reserved. This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
16 #ifndef __FW_FAULT_TOLERANT_WRITE_LITE_PROTOCOL_H__
17 #define __FW_FAULT_TOLERANT_WRITE_LITE_PROTOCOL_H__
19 #define EFI_FTW_LITE_PROTOCOL_GUID \
20 { 0x3f557189, 0x8dae, 0x45ae, {0xa0, 0xb3, 0x2b, 0x99, 0xca, 0x7a, 0xa7, 0xa0 } }
23 // Forward reference for pure ANSI compatability
25 typedef struct _EFI_FTW_LITE_PROTOCOL EFI_FTW_LITE_PROTOCOL
;
28 // Protocol API definitions
31 Starts a target block update. This records information about the write
32 in fault tolerant storage and will complete the write in a recoverable
33 manner, ensuring at all times that either the original contents or
34 the modified contents are available.
36 @param This The pointer to this protocol instance.
37 @param FvBlockHandle The handle of FVB protocol that provides services
38 for reading, writing, and erasing the target
40 @param Lba The logical block address of the target block.
41 @param Offset The offset within the target block to place the
43 @param Length The number of bytes to write to the target block.
44 @param Buffer The data to write.
46 @retval EFI_SUCCESS The function completed successfully
47 @retval EFI_ABORTED The function could not complete successfully.
48 @retval EFI_BAD_BUFFER_SIZE The input data can't fit within the target block.
49 @retval EFI_ACCESS_DENIED No writes have been allocated.
50 @retval EFI_OUT_OF_RESOURCES Cannot allocate enough memory resource.
51 @retval EFI_NOT_FOUND Cannot find FVB protocol by handle.
56 (EFIAPI
* EFI_FTW_LITE_WRITE
) (
57 IN EFI_FTW_LITE_PROTOCOL
*This
,
58 IN EFI_HANDLE FvbHandle
,
67 // Protocol declaration
69 struct _EFI_FTW_LITE_PROTOCOL
{
70 EFI_FTW_LITE_WRITE Write
;
73 extern EFI_GUID gEfiFaultTolerantWriteLiteProtocolGuid
;