summaryrefslogtreecommitdiffstats
path: root/ShellPkg/DynamicCommand/VariablePolicyDynamicCommand/VariablePolicyApp.c
diff options
context:
space:
mode:
Diffstat (limited to 'ShellPkg/DynamicCommand/VariablePolicyDynamicCommand/VariablePolicyApp.c')
-rw-r--r--ShellPkg/DynamicCommand/VariablePolicyDynamicCommand/VariablePolicyApp.c59
1 files changed, 59 insertions, 0 deletions
diff --git a/ShellPkg/DynamicCommand/VariablePolicyDynamicCommand/VariablePolicyApp.c b/ShellPkg/DynamicCommand/VariablePolicyDynamicCommand/VariablePolicyApp.c
new file mode 100644
index 0000000000..f3ab45de6a
--- /dev/null
+++ b/ShellPkg/DynamicCommand/VariablePolicyDynamicCommand/VariablePolicyApp.c
@@ -0,0 +1,59 @@
+/** @file
+ Functionality specific for standalone UEFI application support.
+
+ This application can provide detailed UEFI variable policy configuration
+ information in the UEFI shell.
+
+ Copyright (c) Microsoft Corporation.
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include "VariablePolicy.h"
+
+#include <Library/BaseLib.h>
+#include <Library/HiiLib.h>
+
+extern EFI_HII_HANDLE mVarPolicyShellCommandHiiHandle;
+
+//
+// String token ID of help message text.
+// Shell supports finding the help message in the resource section of an
+// application image if a .MAN file is not found. This global variable is added
+// to make the build tool recognize that the help string is consumed by the user and
+// then the build tool will add the string into the resource section. Thus the
+// application can use '-?' option to show help message in Shell.
+//
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStringHelpTokenId = STRING_TOKEN (STR_GET_HELP_VAR_POLICY);
+
+/**
+ Entry of the UEFI variable policy application.
+
+ @param ImageHandle The image handle of the process.
+ @param SystemTable The EFI System Table pointer.
+
+ @retval EFI_SUCCESS The application successfully initialized.
+ @retval EFI_ABORTED The application failed to initialize.
+ @retval Others A different error occurred.
+
+**/
+EFI_STATUS
+EFIAPI
+VariablePolicyAppInitialize (
+ IN EFI_HANDLE ImageHandle,
+ IN EFI_SYSTEM_TABLE *SystemTable
+ )
+{
+ EFI_STATUS Status;
+
+ mVarPolicyShellCommandHiiHandle = InitializeHiiPackage (ImageHandle);
+ if (mVarPolicyShellCommandHiiHandle == NULL) {
+ return EFI_ABORTED;
+ }
+
+ Status = (EFI_STATUS)RunVarPolicy (ImageHandle, SystemTable);
+
+ HiiRemovePackages (mVarPolicyShellCommandHiiHandle);
+
+ return Status;
+}