]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPlatformPkg/Library/ArmShellCmdRunAxf/ArmShellCmdRunAxf.h
ArmPlatformPkg/ArmShellCmdRunAxf: Added 'runaxf' cmd to shell
[mirror_edk2.git] / ArmPlatformPkg / Library / ArmShellCmdRunAxf / ArmShellCmdRunAxf.h
1 /** @file
2 *
3 * Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
4 *
5 * This program and the accompanying materials are licensed and made available
6 * under the terms and conditions of the BSD License which accompanies this
7 * distribution. The full text of the license may be found at
8 * http://opensource.org/licenses/bsd-license.php
9 *
10 * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 *
13 **/
14
15 #ifndef __ARM_SHELL_CMD_RUNAXF__
16 #define __ARM_SHELL_CMD_RUNAXF__
17
18 #include <ShellBase.h>
19
20 #include <Protocol/EfiShell.h>
21 #include <Protocol/EfiShellDynamicCommand.h>
22
23 #include <Library/HiiLib.h>
24 #include <Library/ShellLib.h>
25 #include <Library/UefiBootServicesTableLib.h>
26
27 extern EFI_GUID gRunAxfHiiGuid;
28 extern EFI_HANDLE gRunAxfHiiHandle;
29 extern EFI_HANDLE gRunAxfImageHandle;
30
31 // List of data segments to load to memory from AXF/ELF file.
32 typedef struct {
33 LIST_ENTRY Link; // This attribute must be the first entry of this
34 // structure (to avoid pointer computation)
35 UINTN MemOffset; // Where the data should go, Dest
36 UINTN FileOffset; // Where the data is from, Src
37 BOOLEAN Zeroes; // A section of Zeroes. Like .bss in ELF
38 UINTN Length; // Number of bytes.
39 } RUNAXF_LOAD_LIST;
40
41
42 /**
43 This is the shell command handler function pointer callback type. This
44 function handles the command when it is invoked in the shell.
45
46 @param[in] This The instance of the
47 EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL.
48 @param[in] SystemTable The pointer to the system table.
49 @param[in] ShellParameters The parameters associated with the command.
50 @param[in] Shell The instance of the shell protocol used in the
51 context of processing this command.
52
53 @return EFI_SUCCESS The operation was successful.
54 @return other The operation failed.
55 **/
56 SHELL_STATUS
57 EFIAPI
58 ShellDynCmdRunAxfHandler (
59 IN EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This,
60 IN EFI_SYSTEM_TABLE *SystemTable,
61 IN EFI_SHELL_PARAMETERS_PROTOCOL *ShellParameters,
62 IN EFI_SHELL_PROTOCOL *Shell
63 );
64
65
66 /**
67 This is the command help handler function pointer callback type. This
68 function is responsible for displaying help information for the associated
69 command.
70
71 @param[in] This The instance of the
72 EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL.
73 @param[in] Language The pointer to the language string to use.
74
75 @return string Pool allocated help string, must be freed by
76 caller.
77 **/
78 CHAR16*
79 EFIAPI
80 ShellDynCmdRunAxfGetHelp (
81 IN EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This,
82 IN CONST CHAR8 *Language
83 );
84
85 #endif //__ARM_SHELL_CMD_RUNAXF__