| /** @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. | |
| * | |
| **/ | |
| #ifndef __ARM_SHELL_CMD_RUNAXF__ | |
| #define __ARM_SHELL_CMD_RUNAXF__ | |
| #include <Protocol/Shell.h> | |
| #include <Protocol/ShellDynamicCommand.h> | |
| #include <Library/HiiLib.h> | |
| #include <Library/ShellLib.h> | |
| #include <Library/UefiBootServicesTableLib.h> | |
| extern EFI_GUID gRunAxfHiiGuid; | |
| extern EFI_HANDLE gRunAxfHiiHandle; | |
| extern EFI_HANDLE gRunAxfImageHandle; | |
| // List of data segments to load to memory from AXF/ELF file. | |
| typedef struct { | |
| LIST_ENTRY Link; // This attribute must be the first entry of this | |
| // structure (to avoid pointer computation) | |
| UINTN MemOffset; // Where the data should go, Dest | |
| UINTN FileOffset; // Where the data is from, Src | |
| BOOLEAN Zeroes; // A section of Zeroes. Like .bss in ELF | |
| UINTN Length; // Number of bytes. | |
| } RUNAXF_LOAD_LIST; | |
| /** | |
| This is the shell command handler function pointer callback type. This | |
| function handles the command when it is invoked in the shell. | |
| @param[in] This The instance of the | |
| EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL. | |
| @param[in] SystemTable The pointer to the system table. | |
| @param[in] ShellParameters The parameters associated with the command. | |
| @param[in] Shell The instance of the shell protocol used in the | |
| context of processing this command. | |
| @return EFI_SUCCESS The operation was successful. | |
| @return other The operation failed. | |
| **/ | |
| SHELL_STATUS | |
| EFIAPI | |
| ShellDynCmdRunAxfHandler ( | |
| IN EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This, | |
| IN EFI_SYSTEM_TABLE *SystemTable, | |
| IN EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters, | |
| IN EFI_SHELL_PROTOCOL *Shell | |
| ); | |
| /** | |
| This is the command help handler function pointer callback type. This | |
| function is responsible for displaying help information for the associated | |
| command. | |
| @param[in] This The instance of the | |
| EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL. | |
| @param[in] Language The pointer to the language string to use. | |
| @return string Pool allocated help string, must be freed by | |
| caller. | |
| **/ | |
| CHAR16* | |
| EFIAPI | |
| ShellDynCmdRunAxfGetHelp ( | |
| IN EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This, | |
| IN CONST CHAR8 *Language | |
| ); | |
| #endif //__ARM_SHELL_CMD_RUNAXF__ |