]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Library/UefiShellLevel2CommandsLib/UefiShellLevel2CommandsLib.h
Update all the code to consume the ConvertDevicePathToText, ConvertDevicePathNodeToTe...
[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 - 2013, Intel Corporation. All rights reserved.<BR>
13 This program and the accompanying materials
14 are licensed and made available under the terms and conditions of the BSD License
15 which accompanies this distribution. The full text of the license may be found at
16 http://opensource.org/licenses/bsd-license.php
17
18 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
19 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
20
21 **/
22
23 #ifndef _UEFI_SHELL_LEVEL2_COMMANDS_LIB_H_
24 #define _UEFI_SHELL_LEVEL2_COMMANDS_LIB_H_
25
26 #include <Uefi.h>
27 #include <ShellBase.h>
28
29 #include <Guid/ShellLibHiiGuid.h>
30
31 #include <Protocol/EfiShell.h>
32 #include <Protocol/EfiShellParameters.h>
33 #include <Protocol/DevicePath.h>
34 #include <Protocol/LoadedImage.h>
35 #include <Protocol/UnicodeCollation.h>
36
37 #include <Library/BaseLib.h>
38 #include <Library/BaseMemoryLib.h>
39 #include <Library/DebugLib.h>
40 #include <Library/MemoryAllocationLib.h>
41 #include <Library/PcdLib.h>
42 #include <Library/ShellCommandLib.h>
43 #include <Library/ShellLib.h>
44 #include <Library/UefiLib.h>
45 #include <Library/UefiRuntimeServicesTableLib.h>
46 #include <Library/UefiBootServicesTableLib.h>
47 #include <Library/HiiLib.h>
48 #include <Library/SortLib.h>
49 #include <Library/FileHandleLib.h>
50 #include <Library/PathLib.h>
51
52 extern CONST CHAR16 mFileName[];
53 extern EFI_HANDLE gShellLevel2HiiHandle;
54
55 /**
56 Function for 'attrib' command.
57
58 @param[in] ImageHandle Handle to the Image (NULL if Internal).
59 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
60 **/
61 SHELL_STATUS
62 EFIAPI
63 ShellCommandRunAttrib (
64 IN EFI_HANDLE ImageHandle,
65 IN EFI_SYSTEM_TABLE *SystemTable
66 );
67
68 /**
69 Function for 'date' command.
70
71 @param[in] ImageHandle Handle to the Image (NULL if Internal).
72 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
73 **/
74 SHELL_STATUS
75 EFIAPI
76 ShellCommandRunDate (
77 IN EFI_HANDLE ImageHandle,
78 IN EFI_SYSTEM_TABLE *SystemTable
79 );
80
81 /**
82 Function for 'time' command.
83
84 @param[in] ImageHandle Handle to the Image (NULL if Internal).
85 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
86 **/
87 SHELL_STATUS
88 EFIAPI
89 ShellCommandRunTime (
90 IN EFI_HANDLE ImageHandle,
91 IN EFI_SYSTEM_TABLE *SystemTable
92 );
93
94 /**
95 Function for 'load' command.
96
97 @param[in] ImageHandle Handle to the Image (NULL if Internal).
98 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
99 **/
100 SHELL_STATUS
101 EFIAPI
102 ShellCommandRunLoad (
103 IN EFI_HANDLE ImageHandle,
104 IN EFI_SYSTEM_TABLE *SystemTable
105 );
106
107 /**
108 Function for 'ls' command.
109
110 @param[in] ImageHandle Handle to the Image (NULL if Internal).
111 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
112 **/
113 SHELL_STATUS
114 EFIAPI
115 ShellCommandRunLs (
116 IN EFI_HANDLE ImageHandle,
117 IN EFI_SYSTEM_TABLE *SystemTable
118 );
119
120 /**
121 Function for 'map' command.
122
123 @param[in] ImageHandle Handle to the Image (NULL if Internal).
124 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
125 **/
126 SHELL_STATUS
127 EFIAPI
128 ShellCommandRunMap (
129 IN EFI_HANDLE ImageHandle,
130 IN EFI_SYSTEM_TABLE *SystemTable
131 );
132
133 /**
134 Function for 'reset' command.
135
136 @param[in] ImageHandle Handle to the Image (NULL if Internal).
137 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
138 **/
139 SHELL_STATUS
140 EFIAPI
141 ShellCommandRunReset (
142 IN EFI_HANDLE ImageHandle,
143 IN EFI_SYSTEM_TABLE *SystemTable
144 );
145
146 /**
147 Function for 'timezone' command.
148
149 @param[in] ImageHandle Handle to the Image (NULL if Internal).
150 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
151 **/
152 SHELL_STATUS
153 EFIAPI
154 ShellCommandRunTimeZone (
155 IN EFI_HANDLE ImageHandle,
156 IN EFI_SYSTEM_TABLE *SystemTable
157 );
158
159 /**
160 Function for 'set' command.
161
162 @param[in] ImageHandle Handle to the Image (NULL if Internal).
163 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
164 **/
165 SHELL_STATUS
166 EFIAPI
167 ShellCommandRunSet (
168 IN EFI_HANDLE ImageHandle,
169 IN EFI_SYSTEM_TABLE *SystemTable
170 );
171
172 /**
173 Function for 'mkdir' command.
174
175 @param[in] ImageHandle Handle to the Image (NULL if Internal).
176 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
177 **/
178 SHELL_STATUS
179 EFIAPI
180 ShellCommandRunMkDir (
181 IN EFI_HANDLE ImageHandle,
182 IN EFI_SYSTEM_TABLE *SystemTable
183 );
184
185 /**
186 Function for 'cd' command.
187
188 @param[in] ImageHandle Handle to the Image (NULL if Internal).
189 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
190 **/
191 SHELL_STATUS
192 EFIAPI
193 ShellCommandRunCd (
194 IN EFI_HANDLE ImageHandle,
195 IN EFI_SYSTEM_TABLE *SystemTable
196 );
197
198 /**
199 Function for 'cp' command.
200
201 @param[in] ImageHandle Handle to the Image (NULL if Internal).
202 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
203 **/
204 SHELL_STATUS
205 EFIAPI
206 ShellCommandRunCp (
207 IN EFI_HANDLE ImageHandle,
208 IN EFI_SYSTEM_TABLE *SystemTable
209 );
210
211 /**
212 Function for 'parse' command.
213
214 @param[in] ImageHandle Handle to the Image (NULL if Internal).
215 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
216 **/
217 SHELL_STATUS
218 EFIAPI
219 ShellCommandRunParse (
220 IN EFI_HANDLE ImageHandle,
221 IN EFI_SYSTEM_TABLE *SystemTable
222 );
223
224 /**
225 Function for 'rm' command.
226
227 @param[in] ImageHandle Handle to the Image (NULL if Internal).
228 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
229 **/
230 SHELL_STATUS
231 EFIAPI
232 ShellCommandRunRm (
233 IN EFI_HANDLE ImageHandle,
234 IN EFI_SYSTEM_TABLE *SystemTable
235 );
236
237 /**
238 Function for 'mv' command.
239
240 @param[in] ImageHandle Handle to the Image (NULL if Internal).
241 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
242 **/
243 SHELL_STATUS
244 EFIAPI
245 ShellCommandRunMv (
246 IN EFI_HANDLE ImageHandle,
247 IN EFI_SYSTEM_TABLE *SystemTable
248 );
249
250 /**
251 returns a fully qualified directory (contains a map drive at the begining)
252 path from a unknown directory path.
253
254 If Path is already fully qualified this will return a duplicat otherwise this
255 will use get the current directory and use that to build the fully qualified
256 version.
257
258 if the return value is not NULL it must be caller freed.
259
260 @param[in] Path The unknown Path Value
261
262 @retval NULL A memory allocation failed
263 @retval NULL a fully qualified path could not be discovered.
264 @retval other pointer to a fuly qualified path.
265 **/
266 CHAR16*
267 EFIAPI
268 GetFullyQualifiedPath(
269 IN CONST CHAR16* Path
270 );
271
272 /**
273 Function to verify all intermediate directories in the path.
274
275 @param[in] Path The pointer to the path to fix.
276
277 @retval EFI_SUCCESS The operation was successful.
278 **/
279 EFI_STATUS
280 EFIAPI
281 VerifyIntermediateDirectories (
282 IN CONST CHAR16 *Path
283 );
284
285 /**
286 CaseInsensitive length limited string comparison.
287
288 @param[in] Source Pointer to first string.
289 @param[in] Target Pointer to second string.
290 @param[in] Count Number of characters to compare.
291
292 @retval 0 The strings are the same.
293 @return non-zero if the strings are different.
294 **/
295 CONST CHAR16*
296 EFIAPI
297 StrniCmp(
298 IN CONST CHAR16 *Source,
299 IN CONST CHAR16 *Target,
300 IN CONST UINTN Count
301 );
302
303 /**
304 Function for 'Vol' command.
305
306 @param[in] ImageHandle Handle to the Image (NULL if Internal).
307 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
308 **/
309 SHELL_STATUS
310 EFIAPI
311 ShellCommandRunVol (
312 IN EFI_HANDLE ImageHandle,
313 IN EFI_SYSTEM_TABLE *SystemTable
314 );
315
316 #endif
317