From 610698361dea9357163591a465923e54edcba32a Mon Sep 17 00:00:00 2001 From: jljusten Date: Sat, 26 Sep 2009 07:15:48 +0000 Subject: OVMF: Add library to customize the EMU Variable FVB driver. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9316 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Library/EmuVariableFvbLib/EmuVariableFvbLib.c | 50 ++++++++++++++++++++++ .../EmuVariableFvbLib/EmuVariableFvbLib.inf | 48 +++++++++++++++++++++ 2 files changed, 98 insertions(+) create mode 100644 OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.c create mode 100644 OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf (limited to 'OvmfPkg/Library/EmuVariableFvbLib') diff --git a/OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.c b/OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.c new file mode 100644 index 0000000000..d16be5a5f2 --- /dev/null +++ b/OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.c @@ -0,0 +1,50 @@ +/** @file + OVMF platform customization for EMU Variable FVB driver + + Copyright (c) 2009, 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. + +**/ + +#include "PiDxe.h" +#include +#include +#include +#include +#include + + +/** + This function will be called following a call to the + EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL Write function. + + @param[in] This EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL instance. + @param[in] Lba The starting logical block index to written to. + +**/ +VOID +EFIAPI +PlatformFvbDataWritten ( + IN CONST EFI_FIRMWARE_VOLUME_BLOCK_PROTOCOL *This, + IN EFI_LBA Lba + ) +{ + STATIC EFI_EVENT EventToSignal = NULL; + + if (!EfiAtRuntime ()) { + if (EventToSignal == NULL) { + EventToSignal = (EFI_EVENT)(UINTN) PcdGet64 (PcdEmuVariableEvent); + } + if (EventToSignal != NULL) { + gBS->SignalEvent (EventToSignal); + } + } +} + + diff --git a/OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf b/OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf new file mode 100644 index 0000000000..b6fb4dc087 --- /dev/null +++ b/OvmfPkg/Library/EmuVariableFvbLib/EmuVariableFvbLib.inf @@ -0,0 +1,48 @@ +#/** @file +# OVMF platform customization for EMU Variable FVB driver +# +# This library handles hooks for the EMU Variable FVB driver. +# +# Copyright (c) 2006 - 2009, 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. +# +# +#**/ + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = EmuVariableFvbLib + FILE_GUID = 8a6062ed-7140-4a74-b4ea-fe900e79e24b + MODULE_TYPE = BASE + VERSION_STRING = 1.0 + LIBRARY_CLASS = PlatformFvbLib|DXE_RUNTIME_DRIVER + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC +# + +[Sources.common] + EmuVariableFvbLib.c + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + OvmfPkg/OvmfPkg.dec + +[LibraryClasses] + BaseLib + BaseMemoryLib + DebugLib + MemoryAllocationLib + +[Pcd] + gUefiOvmfPkgTokenSpaceGuid.PcdEmuVariableEvent + -- cgit v1.2.3