OpenCore  1.0.4
OpenCore Bootloader
Loading...
Searching...
No Matches
OcFirmwareVolumeLib.c File Reference
#include <Library/BaseMemoryLib.h>
#include <Library/OcFirmwareVolumeLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Protocol/FirmwareVolume2.h>
#include "OcFirmwareVolumeLibInternal.h"

Go to the source code of this file.

Functions

STATIC EFI_STATUS EFIAPI GetVolumeAttributesEx (IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, OUT FRAMEWORK_EFI_FV_ATTRIBUTES *Attributes)
 
STATIC EFI_STATUS EFIAPI SetVolumeAttributesEx (IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, IN OUT FRAMEWORK_EFI_FV_ATTRIBUTES *Attributes)
 
STATIC EFI_STATUS EFIAPI ReadFileEx (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)
 
STATIC EFI_STATUS EFIAPI ReadSectionEx (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)
 
STATIC EFI_STATUS EFIAPI WriteFileEx (IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, IN UINT32 NumberOfFiles, IN FRAMEWORK_EFI_FV_WRITE_POLICY WritePolicy, IN FRAMEWORK_EFI_FV_WRITE_FILE_DATA *FileData)
 
STATIC EFI_STATUS EFIAPI GetNextFileEx (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)
 
EFI_FIRMWARE_VOLUME_PROTOCOLOcFirmwareVolumeInstallProtocol (IN BOOLEAN Reinstall)
 

Variables

STATIC FRAMEWORK_EFI_FV_GET_ATTRIBUTES mGetVolumeAttributes = NULL
 
STATIC FRAMEWORK_EFI_FV_SET_ATTRIBUTES mSetVolumeAttributes = NULL
 
STATIC FRAMEWORK_EFI_FV_READ_FILE mReadFile = NULL
 
STATIC FRAMEWORK_EFI_FV_READ_SECTION mReadSection = NULL
 
STATIC FRAMEWORK_EFI_FV_WRITE_FILE mWriteFile = NULL
 
STATIC FRAMEWORK_EFI_FV_GET_NEXT_FILE mGetNextFile = NULL
 
STATIC EFI_FIRMWARE_VOLUME_PROTOCOL mFirmwareVolume
 

Detailed Description

Firmware volume driver that overrides the EFI_FIRMWARE_VOLUME_PROTOCOL and injects images for boot.efi/FileVault 2.

Copyright (C) 2016 Sergey Slice. All rights reserved.
Portions copyright (C) 2018 savvas.
Portions copyright (C) 2006-2014 Intel Corporation. All rights reserved.
Portions copyright (C) 2016-2018 Alex James. 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.

Definition in file OcFirmwareVolumeLib.c.

Function Documentation

◆ GetNextFileEx()

STATIC EFI_STATUS EFIAPI GetNextFileEx ( 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 )

Definition at line 215 of file OcFirmwareVolumeLib.c.

◆ GetVolumeAttributesEx()

STATIC EFI_STATUS EFIAPI GetVolumeAttributesEx ( IN EFI_FIRMWARE_VOLUME_PROTOCOL * This,
OUT FRAMEWORK_EFI_FV_ATTRIBUTES * Attributes )

Definition at line 39 of file OcFirmwareVolumeLib.c.

◆ OcFirmwareVolumeInstallProtocol()

EFI_FIRMWARE_VOLUME_PROTOCOL * OcFirmwareVolumeInstallProtocol ( IN BOOLEAN Reinstall)

Install and initialise EFI Firmware Volume protocol.

Parameters
[in]ReinstallReplace any installed protocol.
Returns
Installed protocol.
Return values
NULLThere was an error installing the protocol.

Definition at line 259 of file OcFirmwareVolumeLib.c.

◆ ReadFileEx()

STATIC EFI_STATUS EFIAPI ReadFileEx ( 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 )

Definition at line 85 of file OcFirmwareVolumeLib.c.

◆ ReadSectionEx()

STATIC EFI_STATUS EFIAPI ReadSectionEx ( 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 )

Definition at line 121 of file OcFirmwareVolumeLib.c.

◆ SetVolumeAttributesEx()

STATIC EFI_STATUS EFIAPI SetVolumeAttributesEx ( IN EFI_FIRMWARE_VOLUME_PROTOCOL * This,
IN OUT FRAMEWORK_EFI_FV_ATTRIBUTES * Attributes )

Definition at line 62 of file OcFirmwareVolumeLib.c.

◆ WriteFileEx()

STATIC EFI_STATUS EFIAPI WriteFileEx ( IN EFI_FIRMWARE_VOLUME_PROTOCOL * This,
IN UINT32 NumberOfFiles,
IN FRAMEWORK_EFI_FV_WRITE_POLICY WritePolicy,
IN FRAMEWORK_EFI_FV_WRITE_FILE_DATA * FileData )

Definition at line 190 of file OcFirmwareVolumeLib.c.

Variable Documentation

◆ mFirmwareVolume

STATIC EFI_FIRMWARE_VOLUME_PROTOCOL mFirmwareVolume
Initial value:
= {
16,
NULL
}
STATIC EFI_STATUS EFIAPI ReadFileEx(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)
STATIC EFI_STATUS EFIAPI GetNextFileEx(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)
STATIC EFI_STATUS EFIAPI GetVolumeAttributesEx(IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, OUT FRAMEWORK_EFI_FV_ATTRIBUTES *Attributes)
STATIC EFI_STATUS EFIAPI ReadSectionEx(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)
STATIC EFI_STATUS EFIAPI SetVolumeAttributesEx(IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, IN OUT FRAMEWORK_EFI_FV_ATTRIBUTES *Attributes)
STATIC EFI_STATUS EFIAPI WriteFileEx(IN EFI_FIRMWARE_VOLUME_PROTOCOL *This, IN UINT32 NumberOfFiles, IN FRAMEWORK_EFI_FV_WRITE_POLICY WritePolicy, IN FRAMEWORK_EFI_FV_WRITE_FILE_DATA *FileData)

Definition at line 239 of file OcFirmwareVolumeLib.c.

◆ mGetNextFile

STATIC FRAMEWORK_EFI_FV_GET_NEXT_FILE mGetNextFile = NULL

Definition at line 34 of file OcFirmwareVolumeLib.c.

◆ mGetVolumeAttributes

STATIC FRAMEWORK_EFI_FV_GET_ATTRIBUTES mGetVolumeAttributes = NULL

Definition at line 29 of file OcFirmwareVolumeLib.c.

◆ mReadFile

STATIC FRAMEWORK_EFI_FV_READ_FILE mReadFile = NULL

Definition at line 31 of file OcFirmwareVolumeLib.c.

◆ mReadSection

STATIC FRAMEWORK_EFI_FV_READ_SECTION mReadSection = NULL

Definition at line 32 of file OcFirmwareVolumeLib.c.

◆ mSetVolumeAttributes

STATIC FRAMEWORK_EFI_FV_SET_ATTRIBUTES mSetVolumeAttributes = NULL

Definition at line 30 of file OcFirmwareVolumeLib.c.

◆ mWriteFile

STATIC FRAMEWORK_EFI_FV_WRITE_FILE mWriteFile = NULL

Definition at line 33 of file OcFirmwareVolumeLib.c.