OpenCore
1.0.4
OpenCore Bootloader
|
#include <PiDxe.h>
#include <Protocol/FirmwareVolume2.h>
#include <Protocol/FirmwareVolume.h>
#include <Library/BaseLib.h>
#include <Library/DebugLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiDriverEntryPoint.h>
#include <Library/UefiLib.h>
#include <Library/MemoryAllocationLib.h>
Go to the source code of this file.
Data Structures | |
struct | FIRMWARE_VOLUME_PRIVATE_DATA |
Macros | |
#define | FIRMWARE_VOLUME_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('f', 'v', 't', 'h') |
#define | FIRMWARE_VOLUME_PRIVATE_DATA_FROM_THIS(a) |
Functions | |
FRAMEWORK_EFI_FV_ATTRIBUTES | Fv2AttributesToFvAttributes (IN EFI_FV_ATTRIBUTES Fv2Attributes) |
EFI_STATUS EFIAPI | FvGetVolumeAttributes (IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, OUT FRAMEWORK_EFI_FV_ATTRIBUTES *Attributes) |
EFI_STATUS EFIAPI | FvSetVolumeAttributes (IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, IN OUT FRAMEWORK_EFI_FV_ATTRIBUTES *Attributes) |
EFI_STATUS EFIAPI | FvReadFile (IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, IN EFI_GUID *NameGuid, IN OUT VOID **Buffer, IN OUT UINTN *BufferSize, OUT EFI_FV_FILETYPE *FoundType, OUT EFI_FV_FILE_ATTRIBUTES *FileAttributes, OUT UINT32 *AuthenticationStatus) |
EFI_STATUS EFIAPI | FvReadSection (IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, IN EFI_GUID *NameGuid, IN EFI_SECTION_TYPE SectionType, IN UINTN SectionInstance, IN OUT VOID **Buffer, IN OUT UINTN *BufferSize, OUT UINT32 *AuthenticationStatus) |
EFI_STATUS EFIAPI | FvWriteFile (IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, IN UINT32 NumberOfFiles, IN FRAMEWORK_EFI_FV_WRITE_POLICY WritePolicy, IN FRAMEWORK_EFI_FV_WRITE_FILE_DATA *FileData) |
EFI_STATUS EFIAPI | FvGetNextFile (IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, IN OUT VOID *Key, IN OUT EFI_FV_FILETYPE *FileType, OUT EFI_GUID *NameGuid, OUT EFI_FV_FILE_ATTRIBUTES *Attributes, OUT UINTN *Size) |
VOID EFIAPI | FvNotificationEvent (IN EFI_EVENT Event, IN VOID *Context) |
EFI_STATUS EFIAPI | InitializeFirmwareVolume2 (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable) |
Variables | |
EFI_EVENT | mFvRegistration |
FIRMWARE_VOLUME_PRIVATE_DATA | gFirmwareVolumePrivateDataTemplate |
UEFI PI specification supersedes Inte's Framework Specification. EFI_FIRMWARE_VOLUME_PROTOCOL defined in Intel Framework Pkg is replaced by EFI_FIRMWARE_VOLUME2_PROTOCOL in MdePkg. This module produces FV on top of FV2. This module is used on platform when both of these two conditions are true: 1) Framework module consuming FV is present 2) And the platform only produces FV2
Copyright (c) 2006 - 2010, 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:
Definition in file FvOnFv2Thunk.c.
#define FIRMWARE_VOLUME_PRIVATE_DATA_FROM_THIS | ( | a | ) |
Definition at line 40 of file FvOnFv2Thunk.c.
#define FIRMWARE_VOLUME_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('f', 'v', 't', 'h') |
Definition at line 32 of file FvOnFv2Thunk.c.
FRAMEWORK_EFI_FV_ATTRIBUTES Fv2AttributesToFvAttributes | ( | IN EFI_FV_ATTRIBUTES | Fv2Attributes | ) |
Convert FV attrbiutes to FV2 attributes.
Fv2Attributes | FV2 attributes. |
Definition at line 51 of file FvOnFv2Thunk.c.
EFI_STATUS EFIAPI FvGetNextFile | ( | IN EFI_FIRMWARE_VOLUME_PROTOCOL * | This, |
IN OUT VOID * | Key, | ||
IN OUT EFI_FV_FILETYPE * | FileType, | ||
OUT EFI_GUID * | NameGuid, | ||
OUT EFI_FV_FILE_ATTRIBUTES * | Attributes, | ||
OUT UINTN * | Size ) |
Given the input key, search for the next matching file in the volume.
This | Calling context |
Key | Pointer to a caller allocated buffer that contains an implementation specific key that is used to track where to begin searching on successive calls. |
FileType | Indicates the file type to filter for |
NameGuid | Guid filename of the file found |
Attributes | Attributes of the file found |
Size | Size in bytes of the file found |
EFI_SUCCESS | The output parameters are filled with data obtained from the first matching file that was found. |
EFI_NOT_FOUND | No files of type FileType were found. |
EFI_DEVICE_ERROR | A hardware error occurred when attempting to access the firmware volume. |
EFI_ACCESS_DENIED | The firmware volume is configured to disallow reads. |
Definition at line 345 of file FvOnFv2Thunk.c.
EFI_STATUS EFIAPI FvGetVolumeAttributes | ( | IN EFI_FIRMWARE_VOLUME_PROTOCOL * | This, |
OUT FRAMEWORK_EFI_FV_ATTRIBUTES * | Attributes ) |
Retrieves attributes, insures positive polarity of attribute bits, returns resulting attributes in output parameter.
This | Calling context |
Attributes | output buffer which contains attributes |
EFI_SUCCESS | The firmware volume attributes were returned. |
Definition at line 73 of file FvOnFv2Thunk.c.
VOID EFIAPI FvNotificationEvent | ( | IN EFI_EVENT | Event, |
IN VOID * | Context ) |
This notification function is invoked when an instance of the EFI_FIRMWARE_VOLUME2_PROTOCOL is produced. It installs another instance of the EFI_FIRMWARE_VOLUME_PROTOCOL on the same handle.
Event | The event that occured |
Context | Context of event. Not used in this nofication function. |
Definition at line 413 of file FvOnFv2Thunk.c.
EFI_STATUS EFIAPI FvReadFile | ( | IN EFI_FIRMWARE_VOLUME_PROTOCOL * | This, |
IN EFI_GUID * | NameGuid, | ||
IN OUT VOID ** | Buffer, | ||
IN OUT UINTN * | BufferSize, | ||
OUT EFI_FV_FILETYPE * | FoundType, | ||
OUT EFI_FV_FILE_ATTRIBUTES * | FileAttributes, | ||
OUT UINT32 * | AuthenticationStatus ) |
Read the requested file (NameGuid) and returns data in Buffer.
This | Calling context |
NameGuid | Filename identifying which file to read |
Buffer | Pointer to pointer to buffer in which contents of file are returned. If Buffer is NULL, only type, attributes, and size are returned as there is no output buffer. If Buffer != NULL and *Buffer == NULL, the output buffer is allocated from BS pool by ReadFile If Buffer != NULL and *Buffer != NULL, the output buffer has been allocated by the caller and is being passed in. |
BufferSize | Indicates the buffer size passed in, and on output the size required to complete the read |
FoundType | Indicates the type of the file who's data is returned |
FileAttributes | Indicates the attributes of the file who's data is resturned |
AuthenticationStatus | Indicates the authentication status of the data |
EFI_SUCCESS | The call completed successfully |
EFI_WARN_BUFFER_TOO_SMALL | The buffer is too small to contain the requested output. The buffer is filled and the output is truncated. |
EFI_NOT_FOUND | NameGuid was not found in the firmware volume. |
EFI_DEVICE_ERROR | A hardware error occurred when attempting to access the firmware volume. |
EFI_ACCESS_DENIED | The firmware volume is configured to disallow reads. |
EFI_OUT_OF_RESOURCES | An allocation failure occurred. |
Definition at line 167 of file FvOnFv2Thunk.c.
EFI_STATUS EFIAPI FvReadSection | ( | IN EFI_FIRMWARE_VOLUME_PROTOCOL * | This, |
IN EFI_GUID * | NameGuid, | ||
IN EFI_SECTION_TYPE | SectionType, | ||
IN UINTN | SectionInstance, | ||
IN OUT VOID ** | Buffer, | ||
IN OUT UINTN * | BufferSize, | ||
OUT UINT32 * | AuthenticationStatus ) |
Read the requested section from the specified file and returns data in Buffer.
This | Calling context |
NameGuid | Filename identifying the file from which to read |
SectionType | Indicates what section type to retrieve |
SectionInstance | Indicates which instance of SectionType to retrieve |
Buffer | Pointer to pointer to buffer in which contents of file are returned. If Buffer is NULL, only type, attributes, and size are returned as there is no output buffer. If Buffer != NULL and *Buffer == NULL, the output buffer is allocated from BS pool by ReadFile If Buffer != NULL and *Buffer != NULL, the output buffer has been allocated by the caller and is being passed in. |
BufferSize | Indicates the buffer size passed in, and on output the size required to complete the read |
AuthenticationStatus | Indicates the authentication status of the data |
EFI_SUCCESS | The call completed successfully. |
EFI_WARN_BUFFER_TOO_SMALL | The buffer is too small to contain the requested output. The buffer is filled and the output is truncated. |
EFI_OUT_OF_RESOURCES | An allocation failure occurred. |
EFI_NOT_FOUND | Name was not found in the firmware volume. |
EFI_DEVICE_ERROR | A hardware error occurred when attempting to access the firmware volume. |
EFI_ACCESS_DENIED | The firmware volume is configured to disallow reads. |
Definition at line 234 of file FvOnFv2Thunk.c.
EFI_STATUS EFIAPI FvSetVolumeAttributes | ( | IN EFI_FIRMWARE_VOLUME_PROTOCOL * | This, |
IN OUT FRAMEWORK_EFI_FV_ATTRIBUTES * | Attributes ) |
Sets volume attributes.
This | Calling context |
Attributes | Buffer which contains attributes |
EFI_INVALID_PARAMETER | A bit in Attributes was invalid |
EFI_SUCCESS | The requested firmware volume attributes were set and the resulting EFI_FV_ATTRIBUTES is returned in Attributes. |
EFI_ACCESS_DENIED | The Device is locked and does not permit modification. |
Definition at line 111 of file FvOnFv2Thunk.c.
EFI_STATUS EFIAPI FvWriteFile | ( | IN EFI_FIRMWARE_VOLUME_PROTOCOL * | This, |
IN UINT32 | NumberOfFiles, | ||
IN FRAMEWORK_EFI_FV_WRITE_POLICY | WritePolicy, | ||
IN FRAMEWORK_EFI_FV_WRITE_FILE_DATA * | FileData ) |
Write the supplied file (NameGuid) to the FV.
This | Calling context |
NumberOfFiles | Indicates the number of file records pointed to by FileData |
WritePolicy | Indicates the level of reliability of the write with respect to things like power failure events. |
FileData | A pointer to an array of EFI_FV_WRITE_FILE_DATA structures. Each element in the array indicates a file to write, and there are NumberOfFiles elements in the input array. |
EFI_SUCCESS | The write completed successfully. |
EFI_OUT_OF_RESOURCES | The firmware volume does not have enough free space to store file(s). |
EFI_DEVICE_ERROR | A hardware error occurred when attempting to access the firmware volume. |
EFI_WRITE_PROTECTED | The firmware volume is configured to disallow writes. |
EFI_NOT_FOUND | A delete was requested, but the requested file was not found in the firmware volume. |
EFI_INVALID_PARAMETER | A delete was requested with a multiple file write. An unsupported WritePolicy was requested. An unknown file type was specified. A file system specific error has occurred. |
Definition at line 286 of file FvOnFv2Thunk.c.
EFI_STATUS EFIAPI InitializeFirmwareVolume2 | ( | IN EFI_HANDLE | ImageHandle, |
IN EFI_SYSTEM_TABLE * | SystemTable ) |
The user Entry Point for DXE driver. The user code starts with this function as the real entry point for the image goes into a library that calls this function.
[in] | ImageHandle | The firmware allocated handle for the EFI image. |
[in] | SystemTable | A pointer to the EFI System Table. |
EFI_SUCCESS | The entry point is executed successfully. |
other | Some error occurs when executing this entry point. |
Definition at line 507 of file FvOnFv2Thunk.c.
FIRMWARE_VOLUME_PRIVATE_DATA gFirmwareVolumePrivateDataTemplate |
Definition at line 383 of file FvOnFv2Thunk.c.
EFI_EVENT mFvRegistration |
Definition at line 381 of file FvOnFv2Thunk.c.