aboutsummaryrefslogtreecommitdiffstats
path: root/roms/edk2/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.c
diff options
context:
space:
mode:
Diffstat (limited to 'roms/edk2/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.c')
-rw-r--r--roms/edk2/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/roms/edk2/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.c b/roms/edk2/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.c
new file mode 100644
index 000000000..1fef0a93b
--- /dev/null
+++ b/roms/edk2/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependency.c
@@ -0,0 +1,47 @@
+/** @file
+ Runtime DXE part corresponding to StanaloneMM variable module.
+
+This module installs variable arch protocol and variable write arch protocol
+to StandaloneMM runtime variable service.
+
+Copyright (c) 2019, ARM Ltd. All rights reserved.
+
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <Library/DebugLib.h>
+#include <Library/UefiBootServicesTableLib.h>
+
+/**
+ The constructor function installs variable arch protocol and variable
+ write arch protocol to StandaloneMM runtime variable service
+
+ @param ImageHandle The firmware allocated handle for the EFI image.
+ @param SystemTable A pointer to the Management mode System Table.
+
+ @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS.
+
+**/
+EFI_STATUS
+EFIAPI
+VariableMmDependencyLibConstructor (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+ EFI_HANDLE Handle;
+
+ Handle = NULL;
+ Status = gBS->InstallMultipleProtocolInterfaces (
+ &Handle,
+ &gEfiSmmVariableProtocolGuid,
+ NULL,
+ &gSmmVariableWriteGuid,
+ NULL,
+ NULL
+ );
+ ASSERT_EFI_ERROR (Status);
+ return EFI_SUCCESS;
+}