]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / ShellPkg / Library / UefiShellLevel1CommandsLib / UefiShellLevel1CommandsLib.h
1 /** @file
2 Main file for NULL named library for level 1 shell command functions.
3
4 Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
5 SPDX-License-Identifier: BSD-2-Clause-Patent
6
7 **/
8
9 #ifndef _UEFI_SHELL_LEVEL1_COMMANDS_LIB_H_
10 #define _UEFI_SHELL_LEVEL1_COMMANDS_LIB_H_
11
12 #include <Uefi.h>
13
14 #include <Guid/ShellLibHiiGuid.h>
15
16 #include <Protocol/Shell.h>
17 #include <Protocol/ShellParameters.h>
18 #include <Protocol/DevicePath.h>
19 #include <Protocol/LoadedImage.h>
20 #include <Protocol/UnicodeCollation.h>
21
22 #include <Library/BaseLib.h>
23 #include <Library/BaseMemoryLib.h>
24 #include <Library/DebugLib.h>
25 #include <Library/MemoryAllocationLib.h>
26 #include <Library/PcdLib.h>
27 #include <Library/ShellCommandLib.h>
28 #include <Library/ShellLib.h>
29 #include <Library/SortLib.h>
30 #include <Library/UefiLib.h>
31 #include <Library/UefiRuntimeServicesTableLib.h>
32 #include <Library/UefiBootServicesTableLib.h>
33 #include <Library/HiiLib.h>
34 #include <Library/FileHandleLib.h>
35
36 extern EFI_HII_HANDLE gShellLevel1HiiHandle;
37
38 /**
39 Function for 'stall' command.
40
41 @param[in] ImageHandle Handle to the Image (NULL if Internal).
42 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
43 **/
44 SHELL_STATUS
45 EFIAPI
46 ShellCommandRunStall (
47 IN EFI_HANDLE ImageHandle,
48 IN EFI_SYSTEM_TABLE *SystemTable
49 );
50
51 /**
52 Function for 'exit' command.
53
54 @param[in] ImageHandle Handle to the Image (NULL if Internal).
55 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
56 **/
57 SHELL_STATUS
58 EFIAPI
59 ShellCommandRunExit (
60 IN EFI_HANDLE ImageHandle,
61 IN EFI_SYSTEM_TABLE *SystemTable
62 );
63
64 /**
65 Function for 'endif' command.
66
67 @param[in] ImageHandle Handle to the Image (NULL if Internal).
68 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
69 **/
70 SHELL_STATUS
71 EFIAPI
72 ShellCommandRunEndIf (
73 IN EFI_HANDLE ImageHandle,
74 IN EFI_SYSTEM_TABLE *SystemTable
75 );
76
77 /**
78 Function for 'for' command.
79
80 @param[in] ImageHandle Handle to the Image (NULL if Internal).
81 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
82 **/
83 SHELL_STATUS
84 EFIAPI
85 ShellCommandRunFor (
86 IN EFI_HANDLE ImageHandle,
87 IN EFI_SYSTEM_TABLE *SystemTable
88 );
89
90 /**
91 Function for 'endfor' command.
92
93 @param[in] ImageHandle Handle to the Image (NULL if Internal).
94 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
95 **/
96 SHELL_STATUS
97 EFIAPI
98 ShellCommandRunEndFor (
99 IN EFI_HANDLE ImageHandle,
100 IN EFI_SYSTEM_TABLE *SystemTable
101 );
102
103 /**
104 Function for 'if' command.
105
106 @param[in] ImageHandle Handle to the Image (NULL if Internal).
107 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
108 **/
109 SHELL_STATUS
110 EFIAPI
111 ShellCommandRunIf (
112 IN EFI_HANDLE ImageHandle,
113 IN EFI_SYSTEM_TABLE *SystemTable
114 );
115
116 /**
117 Function for 'goto' command.
118
119 @param[in] ImageHandle Handle to the Image (NULL if Internal).
120 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
121 **/
122 SHELL_STATUS
123 EFIAPI
124 ShellCommandRunGoto (
125 IN EFI_HANDLE ImageHandle,
126 IN EFI_SYSTEM_TABLE *SystemTable
127 );
128
129 /**
130 Function for 'shift' command.
131
132 @param[in] ImageHandle Handle to the Image (NULL if Internal).
133 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
134 **/
135 SHELL_STATUS
136 EFIAPI
137 ShellCommandRunShift (
138 IN EFI_HANDLE ImageHandle,
139 IN EFI_SYSTEM_TABLE *SystemTable
140 );
141
142 /**
143 Function for 'else' command.
144
145 @param[in] ImageHandle Handle to the Image (NULL if Internal).
146 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
147 **/
148 SHELL_STATUS
149 EFIAPI
150 ShellCommandRunElse (
151 IN EFI_HANDLE ImageHandle,
152 IN EFI_SYSTEM_TABLE *SystemTable
153 );
154
155 ///
156 /// Function prototype for BOTH GetNextNode and GetPreviousNode...
157 /// This is used to control the MoveToTag function direction...
158 ///
159 typedef
160 LIST_ENTRY *
161 (EFIAPI *LIST_MANIP_FUNC)(
162 IN CONST LIST_ENTRY *List,
163 IN CONST LIST_ENTRY *Node
164 );
165
166 /**
167 Move the script pointer from 1 tag (line) to another.
168
169 It functions so that count starts at 1 and it increases or decreases when it
170 hits the specified tags. when it hits zero the location has been found.
171
172 DecrementerTag and IncrementerTag are used to get around for/endfor and
173 similar paired types where the entire middle should be ignored.
174
175 If label is used it will be used instead of the count.
176
177 @param[in] Function The function to use to enumerate through the
178 list. Normally GetNextNode or GetPreviousNode.
179 @param[in] DecrementerTag The tag to decrement the count at.
180 @param[in] IncrementerTag The tag to increment the count at.
181 @param[in] Label A label to look for.
182 @param[in, out] ScriptFile The pointer to the current script file structure.
183 @param[in] MovePast TRUE makes function return 1 past the found
184 location.
185 @param[in] FindOnly TRUE to not change the ScriptFile.
186 @param[in] WrapAroundScript TRUE to wrap end-to-begining or vise versa in
187 searching.
188 **/
189 BOOLEAN
190 MoveToTag (
191 IN CONST LIST_MANIP_FUNC Function,
192 IN CONST CHAR16 *DecrementerTag,
193 IN CONST CHAR16 *IncrementerTag,
194 IN CONST CHAR16 *Label OPTIONAL,
195 IN OUT SCRIPT_FILE *ScriptFile,
196 IN CONST BOOLEAN MovePast,
197 IN CONST BOOLEAN FindOnly,
198 IN CONST BOOLEAN WrapAroundScript
199 );
200
201 #endif