2008-04-09 09:07:50 +02:00
|
|
|
/** @file
|
2007-06-26 10:03:14 +02:00
|
|
|
|
2008-12-03 09:55:36 +01:00
|
|
|
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.
|
2008-04-09 09:07:50 +02:00
|
|
|
|
|
|
|
Copyright (c) 2006 - 2008, Intel Corporation
|
2007-06-26 10:03:14 +02:00
|
|
|
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.
|
|
|
|
|
2008-04-09 09:07:50 +02:00
|
|
|
**/
|
2007-06-26 10:03:14 +02:00
|
|
|
|
|
|
|
#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
|
|
|
|
//
|
2008-07-08 15:29:42 +02:00
|
|
|
/**
|
2008-12-03 09:55:36 +01:00
|
|
|
Erases and initializes a specified range of a firmware volume block.
|
2008-07-08 15:29:42 +02:00
|
|
|
|
|
|
|
@param[in] This Pointer to the FVB Extension protocol instance
|
|
|
|
@param[in] StartLba The starting logical block index to be erased
|
2008-12-03 09:55:36 +01:00
|
|
|
@param[in] OffsetStartLba Offset into the starting block at which to begin erasing
|
2008-07-08 15:29:42 +02:00
|
|
|
@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
|
2008-12-03 09:55:36 +01:00
|
|
|
partially erased.
|
2008-04-09 09:07:50 +02:00
|
|
|
**/
|
2007-06-26 10:03:14 +02:00
|
|
|
typedef
|
|
|
|
EFI_STATUS
|
2008-07-31 09:09:47 +02:00
|
|
|
(EFIAPI * EFI_FV_ERASE_CUSTOM_BLOCK)(
|
2007-06-26 10:03:14 +02:00
|
|
|
IN EFI_FVB_EXTENSION_PROTOCOL *This,
|
2008-07-08 15:29:42 +02:00
|
|
|
IN EFI_LBA StartLba,
|
|
|
|
IN UINTN OffsetStartLba,
|
|
|
|
IN EFI_LBA LastLba,
|
|
|
|
IN UINTN OffsetLastLba
|
2007-06-26 10:03:14 +02:00
|
|
|
);
|
|
|
|
|
|
|
|
//
|
2008-04-09 09:07:50 +02:00
|
|
|
// FVB Extension PROTOCOL
|
2007-06-26 10:03:14 +02:00
|
|
|
//
|
|
|
|
struct _EFI_FVB_EXTENSION_PROTOCOL {
|
|
|
|
EFI_FV_ERASE_CUSTOM_BLOCK EraseFvbCustomBlock;
|
|
|
|
};
|
|
|
|
|
|
|
|
extern EFI_GUID gEfiFvbExtensionProtocolGuid;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|