/*++ | |
Copyright (c) 2006, 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. | |
Module Name: | |
EdkFvbServiceLib.h | |
Abstract: | |
--*/ | |
#ifndef __EDK_FVB_SERVICE_LIB_H__ | |
#define __EDK_FVB_SERVICE_LIB_H__ | |
EFI_STATUS | |
EfiFvbReadBlock ( | |
IN UINTN Instance, | |
IN EFI_LBA Lba, | |
IN UINTN Offset, | |
IN OUT UINTN *NumBytes, | |
IN UINT8 *Buffer | |
) | |
/*++ | |
Routine Description: | |
Reads specified number of bytes into a buffer from the specified block | |
Arguments: | |
Instance - The FV instance to be read from | |
Lba - The logical block address to be read from | |
Offset - Offset into the block at which to begin reading | |
NumBytes - Pointer that on input contains the total size of | |
the buffer. On output, it contains the total number | |
of bytes read | |
Buffer - Pointer to a caller allocated buffer that will be | |
used to hold the data read | |
Returns: | |
Status code | |
EFI_INVALID_PARAMETER - invalid parameter | |
--*/ | |
; | |
EFI_STATUS | |
EfiFvbWriteBlock ( | |
IN UINTN Instance, | |
IN EFI_LBA Lba, | |
IN UINTN Offset, | |
IN OUT UINTN *NumBytes, | |
IN UINT8 *Buffer | |
) | |
/*++ | |
Routine Description: | |
Writes specified number of bytes from the input buffer to the block | |
Arguments: | |
Instance - The FV instance to be written to | |
Lba - The starting logical block index to write to | |
Offset - Offset into the block at which to begin writing | |
NumBytes - Pointer that on input contains the total size of | |
the buffer. On output, it contains the total number | |
of bytes actually written | |
Buffer - Pointer to a caller allocated buffer that contains | |
the source for the write | |
Returns: | |
Status code | |
EFI_INVALID_PARAMETER - invalid parameter | |
--*/ | |
; | |
EFI_STATUS | |
EfiFvbEraseBlock ( | |
IN UINTN Instance, | |
IN EFI_LBA Lba | |
) | |
/*++ | |
Routine Description: | |
Erases and initializes a firmware volume block | |
Arguments: | |
Instance - The FV instance to be erased | |
Lba - The logical block index to be erased | |
Returns: | |
Status code | |
EFI_INVALID_PARAMETER - invalid parameter | |
--*/ | |
; | |
EFI_STATUS | |
EfiFvbGetVolumeAttributes ( | |
IN UINTN Instance, | |
OUT EFI_FVB_ATTRIBUTES *Attributes | |
) | |
/*++ | |
Routine Description: | |
Retrieves attributes, insures positive polarity of attribute bits, returns | |
resulting attributes in output parameter | |
Arguments: | |
Instance - The FV instance whose attributes is going to be | |
returned | |
Attributes - Output buffer which contains attributes | |
Returns: | |
Status code | |
EFI_INVALID_PARAMETER - invalid parameter | |
--*/ | |
; | |
EFI_STATUS | |
EfiFvbSetVolumeAttributes ( | |
IN UINTN Instance, | |
IN EFI_FVB_ATTRIBUTES Attributes | |
) | |
/*++ | |
Routine Description: | |
Modifies the current settings of the firmware volume according to the | |
input parameter, and returns the new setting of the volume | |
Arguments: | |
Instance - The FV instance whose attributes is going to be | |
modified | |
Attributes - On input, it is a pointer to EFI_FVB_ATTRIBUTES | |
containing the desired firmware volume settings. | |
On successful return, it contains the new settings | |
of the firmware volume | |
Returns: | |
Status code | |
EFI_INVALID_PARAMETER - invalid parameter | |
--*/ | |
; | |
EFI_STATUS | |
EfiFvbGetPhysicalAddress ( | |
IN UINTN Instance, | |
OUT EFI_PHYSICAL_ADDRESS *BaseAddress | |
) | |
/*++ | |
Routine Description: | |
Retrieves the physical address of a memory mapped FV | |
Arguments: | |
Instance - The FV instance whose base address is going to be | |
returned | |
BaseAddress - Pointer to a caller allocated EFI_PHYSICAL_ADDRESS | |
that on successful return, contains the base address | |
of the firmware volume. | |
Returns: | |
Status code | |
EFI_INVALID_PARAMETER - invalid parameter | |
--*/ | |
; | |
EFI_STATUS | |
EfiFvbGetBlockSize ( | |
IN UINTN Instance, | |
IN EFI_LBA Lba, | |
OUT UINTN *BlockSize, | |
OUT UINTN *NumOfBlocks | |
) | |
/*++ | |
Routine Description: | |
Retrieve the size of a logical block | |
Arguments: | |
Instance - The FV instance whose block size is going to be | |
returned | |
Lba - Indicates which block to return the size for. | |
BlockSize - A pointer to a caller allocated UINTN in which | |
the size of the block is returned | |
NumOfBlocks - a pointer to a caller allocated UINTN in which the | |
number of consecutive blocks starting with Lba is | |
returned. All blocks in this range have a size of | |
BlockSize | |
Returns: | |
EFI_SUCCESS - The firmware volume was read successfully and | |
contents are in Buffer | |
EFI_INVALID_PARAMETER - invalid parameter | |
--*/ | |
; | |
EFI_STATUS | |
EfiFvbEraseCustomBlockRange ( | |
IN UINTN Instance, | |
IN EFI_LBA StartLba, | |
IN UINTN OffsetStartLba, | |
IN EFI_LBA LastLba, | |
IN UINTN OffsetLastLba | |
) | |
/*++ | |
Routine Description: | |
Erases and initializes a specified range of a firmware volume | |
Arguments: | |
Instance - The FV instance to be erased | |
StartLba - The starting logical block index to be erased | |
OffsetStartLba - Offset into the starting block at which to | |
begin erasing | |
LastLba - The last logical block index to be erased | |
OffsetLastLba - Offset into the last block at which to end erasing | |
Returns: | |
Status code | |
EFI_INVALID_PARAMETER - invalid parameter | |
EFI_UNSUPPORTED - not support | |
--*/ | |
; | |
#endif |