]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Include/Protocol/FvbExtension.h
Move DiskInfo Protocol from MdeModulePkg to IntelFrameworkModule package.
[mirror_edk2.git] / MdeModulePkg / Include / Protocol / FvbExtension.h
1 /** @file
2
3 FVB Extension protocol provides one extended service to FVB protocol defined in PI specification.
4 This service can erase the specified range of a firmware volume block.
5
6 Copyright (c) 2006 - 2008, Intel Corporation
7 All rights reserved. This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php
11
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14
15 **/
16
17 #ifndef __FVB_EXTENSION_H__
18 #define __FVB_EXTENSION_H__
19
20 #define EFI_FVB_EXTENSION_PROTOCOL_GUID \
21 {0x53a4c71b, 0xb581, 0x4170, {0x91, 0xb3, 0x8d, 0xb8, 0x7a, 0x4b, 0x5c, 0x46 } }
22
23 typedef struct _EFI_FVB_EXTENSION_PROTOCOL EFI_FVB_EXTENSION_PROTOCOL;
24
25 //
26 // FVB Extension Function Prototypes
27 //
28 /**
29 Erases and initializes a specified range of a firmware volume block.
30
31 @param[in] This Pointer to the FVB Extension protocol instance
32 @param[in] StartLba The starting logical block index to be erased
33 @param[in] OffsetStartLba Offset into the starting block at which to begin erasing
34 @param[in] LastLba The last logical block index to be erased
35 @param[in] OffsetLastLba Offset into the last block at which to end erasing
36
37 @retval EFI_SUCCESS The specified range was erased successfully
38 @retval EFI_ACCESS_DENIED The firmware volume block is in the WriteDisabled state
39 @retval EFI_DEVICE_ERROR The block device is not functioning correctly and
40 could not be written. Firmware device may have been
41 partially erased.
42 **/
43 typedef
44 EFI_STATUS
45 (EFIAPI * EFI_FV_ERASE_CUSTOM_BLOCK)(
46 IN EFI_FVB_EXTENSION_PROTOCOL *This,
47 IN EFI_LBA StartLba,
48 IN UINTN OffsetStartLba,
49 IN EFI_LBA LastLba,
50 IN UINTN OffsetLastLba
51 );
52
53 //
54 // FVB Extension PROTOCOL
55 //
56 struct _EFI_FVB_EXTENSION_PROTOCOL {
57 EFI_FV_ERASE_CUSTOM_BLOCK EraseFvbCustomBlock;
58 };
59
60 extern EFI_GUID gEfiFvbExtensionProtocolGuid;
61
62 #endif
63