In the next patch we'll add a simple query function to the XenHypercallLib library class that is supposed to be called by initialization code in modules. Among those, in constructors of dependent libraries too.
Library construction ordering is ensured only between libraries with constructors, plus we shouldn't allow a dependent library with a constructor to call into any XenHypercallLib instances (the simple query function) before XenHypercallLib is constructed itself. For this reason, introduce an (empty) constructor for ARM & AARCH64 too. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <ler...@redhat.com> --- Notes: v2: - unify INF files too [Jordan] OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf | 5 +++- OvmfPkg/Library/XenHypercallLib/ArmXenHypercall.c | 25 ++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf b/OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf index efc26fe..f4503a4 100644 --- a/OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf +++ b/OvmfPkg/Library/XenHypercallLib/XenHypercallLib.inf @@ -18,10 +18,10 @@ FILE_GUID = B5EE9A32-CA5A-49A8-82E3-ADA4CCB77C7C MODULE_TYPE = BASE VERSION_STRING = 1.0 + CONSTRUCTOR = XenHypercallLibInit [Defines.IA32, Defines.X64] LIBRARY_CLASS = XenHypercallLib|DXE_DRIVER UEFI_DRIVER - CONSTRUCTOR = XenHypercallLibInit [Defines.ARM, Defines.AARCH64] LIBRARY_CLASS = XenHypercallLib @@ -41,6 +41,9 @@ [Sources.X64] X64/hypercall.nasm +[Sources.ARM, Sources.AARCH64] + ArmXenHypercall.c + [Sources.ARM] Arm/Hypercall.S diff --git a/OvmfPkg/Library/XenHypercallLib/ArmXenHypercall.c b/OvmfPkg/Library/XenHypercallLib/ArmXenHypercall.c new file mode 100644 index 0000000..1f213d6 --- /dev/null +++ b/OvmfPkg/Library/XenHypercallLib/ArmXenHypercall.c @@ -0,0 +1,25 @@ +/** @file + Xen Hypercall Library implementation for ARM architecture + + Copyright (C) 2015, Red Hat, Inc. + Copyright (c) 2014, Linaro Ltd. All rights reserved.<BR> + + This program and the accompanying materials are licensed and made available + under the terms and conditions of the BSD License that 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 <Base.h> + +RETURN_STATUS +EFIAPI +XenHypercallLibInit ( + VOID + ) +{ + return RETURN_SUCCESS; +} -- 1.8.3.1 ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel