/** @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; }