| /** @file | |
| * | |
| * Copyright (c) 2014, ARM 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 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 <Uefi.h> | |
| #include <Library/BaseLib.h> | |
| #include <Library/DebugLib.h> | |
| #include <Library/UefiLib.h> | |
| #include <Library/ArmShellCmdLib.h> | |
| #include "ArmShellCmdRunAxf.h" | |
| EFI_HANDLE gRunAxfHiiHandle = NULL; | |
| #define RUNAXF_HII_GUID \ | |
| { \ | |
| 0xf5a6413b, 0x78d5, 0x448e, { 0xa2, 0x15, 0x22, 0x82, 0x8e, 0xbc, 0x61, 0x61 } \ | |
| } | |
| EFI_GUID gRunAxfHiiGuid = RUNAXF_HII_GUID; | |
| static EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL mShellDynCmdProtocolRunAxf = { | |
| L"runaxf", // *CommandName | |
| ShellDynCmdRunAxfHandler, // Handler | |
| ShellDynCmdRunAxfGetHelp // GetHelp | |
| }; | |
| EFI_STATUS | |
| ShellDynCmdRunAxfInstall ( | |
| IN EFI_HANDLE ImageHandle | |
| ) | |
| { | |
| EFI_STATUS Status; | |
| // Register our shell command | |
| Status = gBS->InstallMultipleProtocolInterfaces (&ImageHandle, | |
| &gEfiShellDynamicCommandProtocolGuid, | |
| &mShellDynCmdProtocolRunAxf, | |
| NULL); | |
| if (EFI_ERROR (Status)) { | |
| return Status; | |
| } | |
| // Load the manual page for our command | |
| // | |
| // 3rd parameter 'HII strings array' must be name of .uni strings file | |
| // followed by 'Strings', e.g. mycommands.uni must be specified as | |
| // 'mycommandsStrings' because the build Autogen process defines this as a | |
| // string array for the strings in your .uni file. Examine your Build folder | |
| // under your package's DEBUG folder and you will find it defined in a | |
| // xxxStrDefs.h file. | |
| // | |
| gRunAxfHiiHandle = HiiAddPackages (&gRunAxfHiiGuid, ImageHandle, | |
| ArmShellCmdRunAxfStrings, NULL); | |
| if (gRunAxfHiiHandle == NULL) { | |
| return EFI_UNSUPPORTED; | |
| } | |
| return EFI_SUCCESS; | |
| } | |
| EFI_STATUS | |
| ShellDynCmdRunAxfUninstall ( | |
| IN EFI_HANDLE ImageHandle | |
| ) | |
| { | |
| EFI_STATUS Status; | |
| if (gRunAxfHiiHandle != NULL) { | |
| HiiRemovePackages (gRunAxfHiiHandle); | |
| } | |
| Status = gBS->UninstallMultipleProtocolInterfaces (ImageHandle, | |
| &gEfiShellDynamicCommandProtocolGuid, | |
| &mShellDynCmdProtocolRunAxf, | |
| NULL); | |
| if (EFI_ERROR (Status)) { | |
| return Status; | |
| } | |
| return EFI_SUCCESS; | |
| } |