]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Include/Protocol/FaultTolerantWriteLite.h
modify coding style to pass ecc tool and provide comments that complied with Doxgen.
[mirror_edk2.git] / MdeModulePkg / Include / Protocol / FaultTolerantWriteLite.h
CommitLineData
1e354c03 1/** @file\r
2 This is a simple fault tolerant write driver, based on PlatformFd library.\r
3 And it only supports write BufferSize <= SpareAreaLength.\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
32 in fault tolerant storage and will complete the write in a recoverable\r
33 manner, ensuring at all times that either the original contents or\r
34 the modified contents are available.\r
88f20127 35\r
1e354c03 36 @param This Calling context \r
37 @param FvBlockHandle The handle of FVB protocol that provides services \r
38 for reading, writing, and erasing the target \r
39 block. \r
40 @param Lba The logical block address of the target block. \r
41 @param Offset The offset within the target block to place the \r
42 data. \r
43 @param Length The number of bytes to write to the target block. \r
44 @param Buffer The data to write. \r
45\r
46 @retval EFI_SUCCESS The function completed successfully \r
47 @retval EFI_ABORTED The function could not complete successfully. \r
48 @retval EFI_BAD_BUFFER_SIZE The write would span a block boundary, which is \r
49 not a valid action. \r
50 @retval EFI_ACCESS_DENIED No writes have been allocated. \r
51 @retval EFI_NOT_READY The last write has not been completed. Restart () \r
52 must be called to complete it. \r
53\r
54**/\r
88f20127 55typedef\r
56EFI_STATUS\r
57(EFIAPI * EFI_FTW_LITE_WRITE) (\r
58 IN EFI_FTW_LITE_PROTOCOL *This,\r
59 IN EFI_HANDLE FvbHandle,\r
60 IN EFI_LBA Lba,\r
61 IN UINTN Offset,\r
62 IN UINTN *NumBytes,\r
63 IN VOID *Buffer\r
1e354c03 64 )\r
65;\r
88f20127 66\r
67//\r
68// Protocol declaration\r
69//\r
70struct _EFI_FTW_LITE_PROTOCOL {\r
71 EFI_FTW_LITE_WRITE Write;\r
72};\r
73\r
74extern EFI_GUID gEfiFaultTolerantWriteLiteProtocolGuid;\r
75\r
76#endif\r