On 04/30/20 03:13, Rebecca Cran wrote: > Add a null implementation library for QemuFwCfgLib, in order to > support building PciHostBridgeLib for bhyve. > > Signed-off-by: Rebecca Cran <[email protected]> > Cc: Jordan Justen <[email protected]> > Cc: Laszlo Ersek <[email protected]> > Cc: Ard Biesheuvel <[email protected]> > --- > .../Library/QemuFwCfgLib/QemuFwCfgLibNull.inf | 37 ++++ > OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgNull.c | 209 ++++++++++++++++++ > 2 files changed, 246 insertions(+) > create mode 100644 OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibNull.inf > create mode 100644 OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgNull.c > > diff --git a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibNull.inf > b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibNull.inf > new file mode 100644 > index 0000000000..09f86c2b02 > --- /dev/null > +++ b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgLibNull.inf > @@ -0,0 +1,37 @@ > +## @file > +# > +# Stateful, implicitly initialized fw_cfg library. > +# > +# Copyright (C) 2013, Red Hat, Inc. > +# Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.<BR> > +# Copyright (c) 2017, AMD Incorporated. All rights reserved.<BR> > +# > +# SPDX-License-Identifier: BSD-2-Clause-Patent > +# > +## > + > +[Defines] > + INF_VERSION = 0x00010005 > + BASE_NAME = QemuFwCfgLibNull > + FILE_GUID = B9D1A1F2-01E2-4732-982D-C7F9ED51AC6B > + MODULE_TYPE = BASE > + VERSION_STRING = 1.0 > + LIBRARY_CLASS = QemuFwCfgLib > + > +# > +# The following information is for reference only and not required by the > build tools. > +# > +# VALID_ARCHITECTURES = IA32 X64 > +# > + > +[Sources] > + QemuFwCfgLibInternal.h > + QemuFwCfgNull.c > + > +[Packages] > + MdePkg/MdePkg.dec > + MdeModulePkg/MdeModulePkg.dec > + OvmfPkg/OvmfPkg.dec > + > +[LibraryClasses] > + DebugLib > diff --git a/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgNull.c > b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgNull.c > new file mode 100644 > index 0000000000..e2cc5f3406 > --- /dev/null > +++ b/OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgNull.c > @@ -0,0 +1,209 @@ > +/** @file > + > + Stateful and implicitly initialized fw_cfg library implementation. > + > + Copyright (C) 2013, Red Hat, Inc. > + Copyright (c) 2011 - 2013, Intel Corporation. All rights reserved.<BR> > + Copyright (c) 2017, Advanced Micro Devices. All rights reserved.<BR> > + > + SPDX-License-Identifier: BSD-2-Clause-Patent > +**/ > + > +#include <Uefi.h> > +#include <Library/DebugLib.h> > +#include <IndustryStandard/QemuFwCfg.h>
Didn't you mean to address Phil feedback? https://edk2.groups.io/g/devel/message/58165 Thanks, Laszlo > + > +/** > + Returns a boolean indicating if the firmware configuration interface > + is available or not. > + > + This function may change fw_cfg state. > + > + @retval TRUE The interface is available > + @retval FALSE The interface is not available > + > +**/ > +BOOLEAN > +EFIAPI > +QemuFwCfgIsAvailable ( > + VOID > + ) > +{ > + return FALSE; > +} > + > + > +/** > + Selects a firmware configuration item for reading. > + > + Following this call, any data read from this item will start from > + the beginning of the configuration item's data. > + > + @param[in] QemuFwCfgItem - Firmware Configuration item to read > + > +**/ > +VOID > +EFIAPI > +QemuFwCfgSelectItem ( > + IN FIRMWARE_CONFIG_ITEM QemuFwCfgItem > + ) > +{ > + ASSERT (FALSE); > +} > + > + > +/** > + Reads firmware configuration bytes into a buffer > + > + If called multiple times, then the data read will > + continue at the offset of the firmware configuration > + item where the previous read ended. > + > + @param[in] Size - Size in bytes to read > + @param[in] Buffer - Buffer to store data into > + > +**/ > +VOID > +EFIAPI > +QemuFwCfgReadBytes ( > + IN UINTN Size, > + IN VOID *Buffer OPTIONAL > + ) > +{ > + ASSERT (FALSE); > +} > + > + > +/** > + Writes firmware configuration bytes from a buffer > + > + If called multiple times, then the data written will > + continue at the offset of the firmware configuration > + item where the previous write ended. > + > + @param[in] Size - Size in bytes to write > + @param[in] Buffer - Buffer to read data from > + > +**/ > +VOID > +EFIAPI > +QemuFwCfgWriteBytes ( > + IN UINTN Size, > + IN VOID *Buffer > + ) > +{ > + ASSERT (FALSE); > +} > + > + > +/** > + Skip bytes in the firmware configuration item. > + > + Increase the offset of the firmware configuration item without transferring > + bytes between the item and a caller-provided buffer. Subsequent read, write > + or skip operations will commence at the increased offset. > + > + @param[in] Size Number of bytes to skip. > +**/ > +VOID > +EFIAPI > +QemuFwCfgSkipBytes ( > + IN UINTN Size > + ) > +{ > + ASSERT (FALSE); > +} > + > + > +/** > + Reads a UINT8 firmware configuration value > + > + @return Value of Firmware Configuration item read > + > +**/ > +UINT8 > +EFIAPI > +QemuFwCfgRead8 ( > + VOID > + ) > +{ > + ASSERT (FALSE); > + return 0; > +} > + > + > +/** > + Reads a UINT16 firmware configuration value > + > + @return Value of Firmware Configuration item read > + > +**/ > +UINT16 > +EFIAPI > +QemuFwCfgRead16 ( > + VOID > + ) > +{ > + ASSERT (FALSE); > + return 0; > +} > + > + > +/** > + Reads a UINT32 firmware configuration value > + > + @return Value of Firmware Configuration item read > + > +**/ > +UINT32 > +EFIAPI > +QemuFwCfgRead32 ( > + VOID > + ) > +{ > + ASSERT (FALSE); > + return 0; > +} > + > + > +/** > + Reads a UINT64 firmware configuration value > + > + @return Value of Firmware Configuration item read > + > +**/ > +UINT64 > +EFIAPI > +QemuFwCfgRead64 ( > + VOID > + ) > +{ > + ASSERT (FALSE); > + return 0; > +} > + > + > +/** > + Find the configuration item corresponding to the firmware configuration > file. > + > + @param[in] Name - Name of file to look up. > + @param[out] Item - Configuration item corresponding to the file, to be > passed > + to QemuFwCfgSelectItem (). > + @param[out] Size - Number of bytes in the file. > + > + @return RETURN_SUCCESS If file is found. > + RETURN_NOT_FOUND If file is not found. > + RETURN_UNSUPPORTED If firmware configuration is unavailable. > + > +**/ > +RETURN_STATUS > +EFIAPI > +QemuFwCfgFindFile ( > + IN CONST CHAR8 *Name, > + OUT FIRMWARE_CONFIG_ITEM *Item, > + OUT UINTN *Size > + ) > +{ > + return RETURN_UNSUPPORTED; > +} > + > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#58434): https://edk2.groups.io/g/devel/message/58434 Mute This Topic: https://groups.io/mt/73367092/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
