]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Include/Protocol/FaultTolerantWriteLite.h
Add full version FaultTolerantWrite Dxe driver.
[mirror_edk2.git] / MdeModulePkg / Include / Protocol / FaultTolerantWriteLite.h
CommitLineData
1e354c03 1/** @file\r
5f597758
LG
2 Fault tolerant write lite protocol defines only one interface to write \r
3 the buffer to the fault tolerant storage.\r
88f20127 4\r
1e354c03 5Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
88f20127 6All rights reserved. This program and the accompanying materials\r
7are licensed and made available under the terms and conditions of the BSD License\r
8which accompanies this distribution. The full text of the license may be found at\r
9http://opensource.org/licenses/bsd-license.php\r
10\r
11THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
12WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
13\r
1e354c03 14**/\r
88f20127 15\r
16#ifndef __FW_FAULT_TOLERANT_WRITE_LITE_PROTOCOL_H__\r
17#define __FW_FAULT_TOLERANT_WRITE_LITE_PROTOCOL_H__\r
18\r
19#define EFI_FTW_LITE_PROTOCOL_GUID \\r
20{ 0x3f557189, 0x8dae, 0x45ae, {0xa0, 0xb3, 0x2b, 0x99, 0xca, 0x7a, 0xa7, 0xa0 } }\r
21\r
22//\r
23// Forward reference for pure ANSI compatability\r
24//\r
25typedef struct _EFI_FTW_LITE_PROTOCOL EFI_FTW_LITE_PROTOCOL;\r
26\r
27//\r
28// Protocol API definitions\r
29//\r
1e354c03 30/**\r
31 Starts a target block update. This records information about the write\r
346cf9ac 32 in fault tolerant storage will complete the write in a recoverable\r
1e354c03 33 manner, ensuring at all times that either the original contents or\r
34 the modified contents are available.\r
88f20127 35\r
5f597758 36 @param This The pointer to this protocol instance. \r
346cf9ac
LG
37 @param FvbHandle The handle of FVB protocol that provides services \r
38 for reading, writing, and erasing the target block. \r
1e354c03 39 @param Lba The logical block address of the target block. \r
346cf9ac
LG
40 @param Offset The offset within the target block to place the data. \r
41 @param NumBytes The number of bytes to write to the target block. \r
1e354c03 42 @param Buffer The data to write. \r
43\r
44 @retval EFI_SUCCESS The function completed successfully \r
45 @retval EFI_ABORTED The function could not complete successfully. \r
68dbca6c
LG
46 @retval EFI_BAD_BUFFER_SIZE The input data can't fit within the FTW range. \r
47 The write buffer is too large to be supported.\r
1e354c03 48 @retval EFI_ACCESS_DENIED No writes have been allocated. \r
5f597758
LG
49 @retval EFI_OUT_OF_RESOURCES Cannot allocate enough memory resource.\r
50 @retval EFI_NOT_FOUND Cannot find FVB protocol by handle.\r
51 \r
1e354c03 52**/\r
88f20127 53typedef\r
54EFI_STATUS\r
7d839888 55(EFIAPI * EFI_FTW_LITE_WRITE)(\r
88f20127 56 IN EFI_FTW_LITE_PROTOCOL *This,\r
57 IN EFI_HANDLE FvbHandle,\r
58 IN EFI_LBA Lba,\r
59 IN UINTN Offset,\r
60 IN UINTN *NumBytes,\r
61 IN VOID *Buffer\r
ed66e1bc 62 );\r
88f20127 63\r
64//\r
65// Protocol declaration\r
66//\r
67struct _EFI_FTW_LITE_PROTOCOL {\r
68 EFI_FTW_LITE_WRITE Write;\r
69};\r
70\r
71extern EFI_GUID gEfiFaultTolerantWriteLiteProtocolGuid;\r
72\r
73#endif\r