hc
2024-03-22 a0752693d998599af469473b8dc239ef973a012f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/** @file
*
*  Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
*
*  SPDX-License-Identifier: BSD-2-Clause-Patent
*
**/
 
#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__