| /** @file | |
| FVB Extension protocol provides one extended service to FVB protocol defined in PI specification. | |
| This service can erase the specified range of a firmware volume block. | |
| Copyright (c) 2006 - 2008, Intel Corporation | |
| All rights reserved. This program and the accompanying materials | |
| are licensed and made available under the terms and conditions of the BSD License | |
| which accompanies this distribution. The full text of the license may be found at | |
| http://opensource.org/licenses/bsd-license.php | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| **/ | |
| #ifndef __FVB_EXTENSION_H__ | |
| #define __FVB_EXTENSION_H__ | |
| #define EFI_FVB_EXTENSION_PROTOCOL_GUID \ | |
| {0x53a4c71b, 0xb581, 0x4170, {0x91, 0xb3, 0x8d, 0xb8, 0x7a, 0x4b, 0x5c, 0x46 } } | |
| typedef struct _EFI_FVB_EXTENSION_PROTOCOL EFI_FVB_EXTENSION_PROTOCOL; | |
| // | |
| // FVB Extension Function Prototypes | |
| // | |
| /** | |
| Erases and initializes a specified range of a firmware volume block. | |
| @param[in] This Pointer to the FVB Extension protocol instance | |
| @param[in] StartLba The starting logical block index to be erased | |
| @param[in] OffsetStartLba Offset into the starting block at which to begin erasing | |
| @param[in] LastLba The last logical block index to be erased | |
| @param[in] OffsetLastLba Offset into the last block at which to end erasing | |
| @retval EFI_SUCCESS The specified range was erased successfully | |
| @retval EFI_ACCESS_DENIED The firmware volume block is in the WriteDisabled state | |
| @retval EFI_DEVICE_ERROR The block device is not functioning correctly and | |
| could not be written. Firmware device may have been | |
| partially erased. | |
| **/ | |
| typedef | |
| EFI_STATUS | |
| (EFIAPI * EFI_FV_ERASE_CUSTOM_BLOCK)( | |
| IN EFI_FVB_EXTENSION_PROTOCOL *This, | |
| IN EFI_LBA StartLba, | |
| IN UINTN OffsetStartLba, | |
| IN EFI_LBA LastLba, | |
| IN UINTN OffsetLastLba | |
| ); | |
| // | |
| // FVB Extension PROTOCOL | |
| // | |
| struct _EFI_FVB_EXTENSION_PROTOCOL { | |
| EFI_FV_ERASE_CUSTOM_BLOCK EraseFvbCustomBlock; | |
| }; | |
| extern EFI_GUID gEfiFvbExtensionProtocolGuid; | |
| #endif | |