]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / ShellPkg / Library / UefiShellLevel2CommandsLib / UefiShellLevel2CommandsLib.h
1 /** @file
2 Main file for NULL named library for level 2 shell command functions.
3
4 these functions are:
5 attrib, cd, cp, date*, time*, rm, reset,
6 load, ls, map, mkdir, mv, parse, set, timezone*
7
8
9 * functions are non-interactive only
10
11
12 Copyright (c) 2009 - 2018, Intel Corporation. All rights reserved.<BR>
13 SPDX-License-Identifier: BSD-2-Clause-Patent
14
15 **/
16
17 #ifndef _UEFI_SHELL_LEVEL2_COMMANDS_LIB_H_
18 #define _UEFI_SHELL_LEVEL2_COMMANDS_LIB_H_
19
20 #include <Uefi.h>
21
22 #include <Guid/GlobalVariable.h>
23 #include <Guid/ShellLibHiiGuid.h>
24
25 #include <Protocol/Shell.h>
26 #include <Protocol/ShellParameters.h>
27 #include <Protocol/DevicePath.h>
28 #include <Protocol/LoadedImage.h>
29 #include <Protocol/UnicodeCollation.h>
30
31 #include <Library/BaseLib.h>
32 #include <Library/BaseMemoryLib.h>
33 #include <Library/DebugLib.h>
34 #include <Library/MemoryAllocationLib.h>
35 #include <Library/PcdLib.h>
36 #include <Library/ShellCommandLib.h>
37 #include <Library/ShellLib.h>
38 #include <Library/UefiLib.h>
39 #include <Library/UefiRuntimeServicesTableLib.h>
40 #include <Library/UefiBootServicesTableLib.h>
41 #include <Library/HiiLib.h>
42 #include <Library/SortLib.h>
43 #include <Library/FileHandleLib.h>
44
45 extern CONST CHAR16 mFileName[];
46 extern EFI_HII_HANDLE gShellLevel2HiiHandle;
47
48 /**
49 Function for 'attrib' command.
50
51 @param[in] ImageHandle Handle to the Image (NULL if Internal).
52 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
53 **/
54 SHELL_STATUS
55 EFIAPI
56 ShellCommandRunAttrib (
57 IN EFI_HANDLE ImageHandle,
58 IN EFI_SYSTEM_TABLE *SystemTable
59 );
60
61 /**
62 Function for 'date' command.
63
64 @param[in] ImageHandle Handle to the Image (NULL if Internal).
65 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
66 **/
67 SHELL_STATUS
68 EFIAPI
69 ShellCommandRunDate (
70 IN EFI_HANDLE ImageHandle,
71 IN EFI_SYSTEM_TABLE *SystemTable
72 );
73
74 /**
75 Function for 'time' command.
76
77 @param[in] ImageHandle Handle to the Image (NULL if Internal).
78 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
79 **/
80 SHELL_STATUS
81 EFIAPI
82 ShellCommandRunTime (
83 IN EFI_HANDLE ImageHandle,
84 IN EFI_SYSTEM_TABLE *SystemTable
85 );
86
87 /**
88 Function for 'load' command.
89
90 @param[in] ImageHandle Handle to the Image (NULL if Internal).
91 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
92 **/
93 SHELL_STATUS
94 EFIAPI
95 ShellCommandRunLoad (
96 IN EFI_HANDLE ImageHandle,
97 IN EFI_SYSTEM_TABLE *SystemTable
98 );
99
100 /**
101 Function for 'ls' command.
102
103 @param[in] ImageHandle Handle to the Image (NULL if Internal).
104 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
105 **/
106 SHELL_STATUS
107 EFIAPI
108 ShellCommandRunLs (
109 IN EFI_HANDLE ImageHandle,
110 IN EFI_SYSTEM_TABLE *SystemTable
111 );
112
113 /**
114 Function for 'map' command.
115
116 @param[in] ImageHandle Handle to the Image (NULL if Internal).
117 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
118 **/
119 SHELL_STATUS
120 EFIAPI
121 ShellCommandRunMap (
122 IN EFI_HANDLE ImageHandle,
123 IN EFI_SYSTEM_TABLE *SystemTable
124 );
125
126 /**
127 Function for 'reset' command.
128
129 @param[in] ImageHandle Handle to the Image (NULL if Internal).
130 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
131 **/
132 SHELL_STATUS
133 EFIAPI
134 ShellCommandRunReset (
135 IN EFI_HANDLE ImageHandle,
136 IN EFI_SYSTEM_TABLE *SystemTable
137 );
138
139 /**
140 Function for 'timezone' command.
141
142 @param[in] ImageHandle Handle to the Image (NULL if Internal).
143 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
144 **/
145 SHELL_STATUS
146 EFIAPI
147 ShellCommandRunTimeZone (
148 IN EFI_HANDLE ImageHandle,
149 IN EFI_SYSTEM_TABLE *SystemTable
150 );
151
152 /**
153 Function for 'set' command.
154
155 @param[in] ImageHandle Handle to the Image (NULL if Internal).
156 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
157 **/
158 SHELL_STATUS
159 EFIAPI
160 ShellCommandRunSet (
161 IN EFI_HANDLE ImageHandle,
162 IN EFI_SYSTEM_TABLE *SystemTable
163 );
164
165 /**
166 Function for 'mkdir' command.
167
168 @param[in] ImageHandle Handle to the Image (NULL if Internal).
169 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
170 **/
171 SHELL_STATUS
172 EFIAPI
173 ShellCommandRunMkDir (
174 IN EFI_HANDLE ImageHandle,
175 IN EFI_SYSTEM_TABLE *SystemTable
176 );
177
178 /**
179 Function for 'cd' command.
180
181 @param[in] ImageHandle Handle to the Image (NULL if Internal).
182 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
183 **/
184 SHELL_STATUS
185 EFIAPI
186 ShellCommandRunCd (
187 IN EFI_HANDLE ImageHandle,
188 IN EFI_SYSTEM_TABLE *SystemTable
189 );
190
191 /**
192 Function for 'cp' command.
193
194 @param[in] ImageHandle Handle to the Image (NULL if Internal).
195 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
196 **/
197 SHELL_STATUS
198 EFIAPI
199 ShellCommandRunCp (
200 IN EFI_HANDLE ImageHandle,
201 IN EFI_SYSTEM_TABLE *SystemTable
202 );
203
204 /**
205 Function for 'parse' command.
206
207 @param[in] ImageHandle Handle to the Image (NULL if Internal).
208 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
209 **/
210 SHELL_STATUS
211 EFIAPI
212 ShellCommandRunParse (
213 IN EFI_HANDLE ImageHandle,
214 IN EFI_SYSTEM_TABLE *SystemTable
215 );
216
217 /**
218 Function for 'rm' command.
219
220 @param[in] ImageHandle Handle to the Image (NULL if Internal).
221 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
222 **/
223 SHELL_STATUS
224 EFIAPI
225 ShellCommandRunRm (
226 IN EFI_HANDLE ImageHandle,
227 IN EFI_SYSTEM_TABLE *SystemTable
228 );
229
230 /**
231 Function for 'mv' command.
232
233 @param[in] ImageHandle Handle to the Image (NULL if Internal).
234 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
235 **/
236 SHELL_STATUS
237 EFIAPI
238 ShellCommandRunMv (
239 IN EFI_HANDLE ImageHandle,
240 IN EFI_SYSTEM_TABLE *SystemTable
241 );
242
243 /**
244 returns a fully qualified directory (contains a map drive at the begining)
245 path from a unknown directory path.
246
247 If Path is already fully qualified this will return a duplicat otherwise this
248 will use get the current directory and use that to build the fully qualified
249 version.
250
251 if the return value is not NULL it must be caller freed.
252
253 @param[in] Path The unknown Path Value
254
255 @retval NULL A memory allocation failed
256 @retval NULL a fully qualified path could not be discovered.
257 @retval other pointer to a fuly qualified path.
258 **/
259 CHAR16 *
260 GetFullyQualifiedPath (
261 IN CONST CHAR16 *Path
262 );
263
264 /**
265 Function to verify all intermediate directories in the path.
266
267 @param[in] Path The pointer to the path to fix.
268
269 @retval EFI_SUCCESS The operation was successful.
270 **/
271 EFI_STATUS
272 VerifyIntermediateDirectories (
273 IN CONST CHAR16 *Path
274 );
275
276 /**
277 String comparison without regard to case for a limited number of characters.
278
279 @param[in] Source The first item to compare.
280 @param[in] Target The second item to compare.
281 @param[in] Count How many characters to compare.
282
283 @retval 0 Source and Target are identical strings without regard to case.
284 @retval !=0 Source is not identical to Target.
285
286 **/
287 INTN
288 StrniCmp (
289 IN CONST CHAR16 *Source,
290 IN CONST CHAR16 *Target,
291 IN CONST UINTN Count
292 );
293
294 /**
295 Cleans off all the quotes in the string.
296
297 @param[in] OriginalString pointer to the string to be cleaned.
298 @param[out] CleanString The new string with all quotes removed.
299 Memory allocated in the function and free
300 by caller.
301
302 @retval EFI_SUCCESS The operation was successful.
303 **/
304 EFI_STATUS
305 ShellLevel2StripQuotes (
306 IN CONST CHAR16 *OriginalString,
307 OUT CHAR16 **CleanString
308 );
309
310 /**
311 Function for 'Vol' command.
312
313 @param[in] ImageHandle Handle to the Image (NULL if Internal).
314 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
315 **/
316 SHELL_STATUS
317 EFIAPI
318 ShellCommandRunVol (
319 IN EFI_HANDLE ImageHandle,
320 IN EFI_SYSTEM_TABLE *SystemTable
321 );
322
323 /**
324 Function to Copy one file to another location
325
326 If the destination exists the user will be prompted and the result put into *resp
327
328 @param[in] Source pointer to source file name
329 @param[in] Dest pointer to destination file name
330 @param[out] Resp pointer to response from question. Pass back on looped calling
331 @param[in] SilentMode whether to run in quiet mode or not
332 @param[in] CmdName Source command name requesting single file copy
333
334 @retval SHELL_SUCCESS The source file was copied to the destination
335 **/
336 SHELL_STATUS
337 CopySingleFile (
338 IN CONST CHAR16 *Source,
339 IN CONST CHAR16 *Dest,
340 OUT VOID **Resp,
341 IN BOOLEAN SilentMode,
342 IN CONST CHAR16 *CmdName
343 );
344
345 /**
346 Delete a node and all nodes under it (including sub directories).
347
348 @param[in] Node The node to start deleting with.
349 @param[in] Quiet TRUE to print no messages.
350
351 @retval SHELL_SUCCESS The operation was successful.
352 @retval SHELL_ACCESS_DENIED A file was read only.
353 @retval SHELL_ABORTED The abort message was received.
354 @retval SHELL_DEVICE_ERROR A device error occurred reading this Node.
355 **/
356 SHELL_STATUS
357 CascadeDelete (
358 IN EFI_SHELL_FILE_INFO *Node,
359 IN CONST BOOLEAN Quiet
360 );
361
362 #endif