]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.h
ShellPkg/pci: Fix extended register dumping for MFVC capability
[mirror_edk2.git] / ShellPkg / Library / UefiShellDebug1CommandsLib / UefiShellDebug1CommandsLib.h
1 /** @file
2 Main file for NULL named library for Profile1 shell command functions.
3
4 Copyright (c) 2010 - 2016, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials
6 are licensed and made available under the terms and conditions of the BSD License
7 which accompanies this 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 _UEFI_SHELL_DEBUG1_COMMANDS_LIB_H_
16 #define _UEFI_SHELL_DEBUG1_COMMANDS_LIB_H_
17
18 #include <Uefi.h>
19
20 #include <Guid/GlobalVariable.h>
21 #include <Guid/ConsoleInDevice.h>
22 #include <Guid/ConsoleOutDevice.h>
23 #include <Guid/FileSystemInfo.h>
24 #include <Guid/ShellLibHiiGuid.h>
25
26 #include <Protocol/Shell.h>
27 #include <Protocol/ShellParameters.h>
28 #include <Protocol/DevicePath.h>
29 #include <Protocol/LoadedImage.h>
30 #include <Protocol/UnicodeCollation.h>
31 #include <Protocol/DriverDiagnostics2.h>
32 #include <Protocol/DriverDiagnostics.h>
33 #include <Protocol/PlatformDriverOverride.h>
34 #include <Protocol/BusSpecificDriverOverride.h>
35 #include <Protocol/PlatformToDriverConfiguration.h>
36 #include <Protocol/DriverSupportedEfiVersion.h>
37 #include <Protocol/DriverFamilyOverride.h>
38 #include <Protocol/DriverHealth.h>
39 #include <Protocol/SimplePointer.h>
40 #include <Protocol/CpuIo2.h>
41 #include <Protocol/PciRootBridgeIo.h>
42
43 #include <Library/BaseLib.h>
44 #include <Library/BaseMemoryLib.h>
45 #include <Library/DebugLib.h>
46 #include <Library/MemoryAllocationLib.h>
47 #include <Library/PcdLib.h>
48 #include <Library/ShellCommandLib.h>
49 #include <Library/ShellLib.h>
50 #include <Library/SortLib.h>
51 #include <Library/UefiLib.h>
52 #include <Library/UefiRuntimeServicesTableLib.h>
53 #include <Library/UefiBootServicesTableLib.h>
54 #include <Library/HiiLib.h>
55 #include <Library/FileHandleLib.h>
56 #include <Library/DevicePathLib.h>
57 #include <Library/PrintLib.h>
58 #include <Library/HandleParsingLib.h>
59
60
61 extern EFI_HANDLE gShellDebug1HiiHandle;
62
63 /**
64 Function returns a system configuration table that is stored in the
65 EFI System Table based on the provided GUID.
66
67 @param[in] TableGuid A pointer to the table's GUID type.
68 @param[in, out] Table On exit, a pointer to a system configuration table.
69
70 @retval EFI_SUCCESS A configuration table matching TableGuid was found.
71 @retval EFI_NOT_FOUND A configuration table matching TableGuid was not found.
72 **/
73 EFI_STATUS
74 GetSystemConfigurationTable (
75 IN EFI_GUID *TableGuid,
76 IN OUT VOID **Table
77 );
78
79 /**
80 Convert a string representation of a GUID to the GUID value.
81
82 @param[in] StringGuid The pointer to the string containing a GUID printed.
83 @param[in, out] Guid The pointer to the buffer to get the GUID value.
84 **/
85 EFI_STATUS
86 ConvertStringToGuid (
87 IN CONST CHAR16 *StringGuid,
88 IN OUT EFI_GUID *Guid
89 );
90
91 /**
92 Convert a Unicode character to numerical value.
93
94 This internal function only deal with Unicode character
95 which maps to a valid hexadecimal ASII character, i.e.
96 L'0' to L'9', L'a' to L'f' or L'A' to L'F'. For other
97 Unicode character, the value returned does not make sense.
98
99 @param Char The character to convert.
100
101 @return The numerical value converted.
102
103 **/
104 UINTN
105 HexCharToUintn (
106 IN CHAR16 Char
107 );
108
109 /**
110 Function for 'setsize' command.
111
112 @param[in] ImageHandle Handle to the Image (NULL if Internal).
113 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
114 **/
115 SHELL_STATUS
116 EFIAPI
117 ShellCommandRunSetSize (
118 IN EFI_HANDLE ImageHandle,
119 IN EFI_SYSTEM_TABLE *SystemTable
120 );
121
122 /**
123 Function for 'comp' command.
124
125 @param[in] ImageHandle Handle to the Image (NULL if Internal).
126 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
127 **/
128 SHELL_STATUS
129 EFIAPI
130 ShellCommandRunComp (
131 IN EFI_HANDLE ImageHandle,
132 IN EFI_SYSTEM_TABLE *SystemTable
133 );
134
135 /**
136 Function for 'mode' command.
137
138 @param[in] ImageHandle Handle to the Image (NULL if Internal).
139 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
140 **/
141 SHELL_STATUS
142 EFIAPI
143 ShellCommandRunMode (
144 IN EFI_HANDLE ImageHandle,
145 IN EFI_SYSTEM_TABLE *SystemTable
146 );
147
148 /**
149 Function for 'memmap' command.
150
151 @param[in] ImageHandle Handle to the Image (NULL if Internal).
152 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
153 **/
154 SHELL_STATUS
155 EFIAPI
156 ShellCommandRunMemMap (
157 IN EFI_HANDLE ImageHandle,
158 IN EFI_SYSTEM_TABLE *SystemTable
159 );
160
161 /**
162 Function for 'compress' command.
163
164 @param[in] ImageHandle Handle to the Image (NULL if Internal).
165 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
166 **/
167 SHELL_STATUS
168 EFIAPI
169 ShellCommandRunEfiCompress (
170 IN EFI_HANDLE ImageHandle,
171 IN EFI_SYSTEM_TABLE *SystemTable
172 );
173
174 /**
175 Function for 'decompress' command.
176
177 @param[in] ImageHandle Handle to the Image (NULL if Internal).
178 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
179 **/
180 SHELL_STATUS
181 EFIAPI
182 ShellCommandRunEfiDecompress (
183 IN EFI_HANDLE ImageHandle,
184 IN EFI_SYSTEM_TABLE *SystemTable
185 );
186
187 /**
188 Function for 'dmem' command.
189
190 @param[in] ImageHandle Handle to the Image (NULL if Internal).
191 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
192 **/
193 SHELL_STATUS
194 EFIAPI
195 ShellCommandRunDmem (
196 IN EFI_HANDLE ImageHandle,
197 IN EFI_SYSTEM_TABLE *SystemTable
198 );
199
200 /**
201 Function for 'loadpcirom' command.
202
203 @param[in] ImageHandle Handle to the Image (NULL if Internal).
204 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
205 **/
206 SHELL_STATUS
207 EFIAPI
208 ShellCommandRunLoadPciRom (
209 IN EFI_HANDLE ImageHandle,
210 IN EFI_SYSTEM_TABLE *SystemTable
211 );
212
213 /**
214 Function for 'mm' command.
215
216 @param[in] ImageHandle Handle to the Image (NULL if Internal).
217 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
218 **/
219 SHELL_STATUS
220 EFIAPI
221 ShellCommandRunMm (
222 IN EFI_HANDLE ImageHandle,
223 IN EFI_SYSTEM_TABLE *SystemTable
224 );
225
226 /**
227 Function for 'setvar' command.
228
229 @param[in] ImageHandle Handle to the Image (NULL if Internal).
230 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
231 **/
232 SHELL_STATUS
233 EFIAPI
234 ShellCommandRunSetVar (
235 IN EFI_HANDLE ImageHandle,
236 IN EFI_SYSTEM_TABLE *SystemTable
237 );
238
239 /**
240 Function for 'sermode' command.
241
242 @param[in] ImageHandle Handle to the Image (NULL if Internal).
243 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
244 **/
245 SHELL_STATUS
246 EFIAPI
247 ShellCommandRunSerMode (
248 IN EFI_HANDLE ImageHandle,
249 IN EFI_SYSTEM_TABLE *SystemTable
250 );
251
252 /**
253 Function for 'bcfg' command.
254
255 @param[in] ImageHandle Handle to the Image (NULL if Internal).
256 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
257 **/
258 SHELL_STATUS
259 EFIAPI
260 ShellCommandRunBcfg (
261 IN EFI_HANDLE ImageHandle,
262 IN EFI_SYSTEM_TABLE *SystemTable
263 );
264
265 /**
266 Function for 'pci' command.
267
268 @param[in] ImageHandle Handle to the Image (NULL if Internal).
269 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
270 **/
271 SHELL_STATUS
272 EFIAPI
273 ShellCommandRunPci (
274 IN EFI_HANDLE ImageHandle,
275 IN EFI_SYSTEM_TABLE *SystemTable
276 );
277
278 /**
279 Function for 'smbiosview' command.
280
281 @param[in] ImageHandle Handle to the Image (NULL if Internal).
282 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
283 **/
284 SHELL_STATUS
285 EFIAPI
286 ShellCommandRunSmbiosView (
287 IN EFI_HANDLE ImageHandle,
288 IN EFI_SYSTEM_TABLE *SystemTable
289 );
290
291 /**
292 Function for 'dmpstore' command.
293
294 @param[in] ImageHandle Handle to the Image (NULL if Internal).
295 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
296 **/
297 SHELL_STATUS
298 EFIAPI
299 ShellCommandRunDmpStore (
300 IN EFI_HANDLE ImageHandle,
301 IN EFI_SYSTEM_TABLE *SystemTable
302 );
303
304 /**
305 Function for 'dblk' command.
306
307 @param[in] ImageHandle Handle to the Image (NULL if Internal).
308 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
309 **/
310 SHELL_STATUS
311 EFIAPI
312 ShellCommandRunDblk (
313 IN EFI_HANDLE ImageHandle,
314 IN EFI_SYSTEM_TABLE *SystemTable
315 );
316
317 /**
318 Function for 'edit' command.
319
320 @param[in] ImageHandle Handle to the Image (NULL if Internal).
321 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
322 **/
323 SHELL_STATUS
324 EFIAPI
325 ShellCommandRunEdit (
326 IN EFI_HANDLE ImageHandle,
327 IN EFI_SYSTEM_TABLE *SystemTable
328 );
329
330 /**
331 Function for 'hexedit' command.
332
333 @param[in] ImageHandle Handle to the Image (NULL if Internal).
334 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
335 **/
336 SHELL_STATUS
337 EFIAPI
338 ShellCommandRunHexEdit (
339 IN EFI_HANDLE ImageHandle,
340 IN EFI_SYSTEM_TABLE *SystemTable
341 );
342
343 /**
344 Clear the line at the specified Row.
345
346 @param[in] Row The row number to be cleared ( start from 1 )
347 @param[in] LastCol The last printable column.
348 @param[in] LastRow The last printable row.
349 **/
350 VOID
351 EditorClearLine (
352 IN UINTN Row,
353 IN UINTN LastCol,
354 IN UINTN LastRow
355 );
356
357 /**
358 Check if file name has illegal characters.
359
360 @param Name The filename to check.
361
362 @retval TRUE The filename is ok.
363 @retval FALSE The filename is not ok.
364 **/
365 BOOLEAN
366 IsValidFileName (
367 IN CONST CHAR16 *Name
368 );
369
370 /**
371 Find a filename that is valid (not taken) with the given extension.
372
373 @param[in] Extension The file extension.
374
375 @retval NULL Something went wrong.
376 @return the valid filename.
377 **/
378 CHAR16 *
379 EditGetDefaultFileName (
380 IN CONST CHAR16 *Extension
381 );
382
383 /**
384 Read a file into an allocated buffer. The buffer is the responsibility
385 of the caller to free.
386
387 @param[in] FileName The filename of the file to open.
388 @param[out] Buffer Upon successful return, the pointer to the
389 address of the allocated buffer.
390 @param[out] BufferSize If not NULL, then the pointer to the size
391 of the allocated buffer.
392 @param[out] ReadOnly Upon successful return TRUE if the file is
393 read only. FALSE otherwise.
394
395 @retval EFI_NOT_FOUND The filename did not represent a file in the
396 file system. Directories cannot be read with
397 this method.
398 @retval EFI_SUCCESS The file was read into the buffer.
399 @retval EFI_OUT_OF_RESOURCES A memory allocation failed.
400 @retval EFI_LOAD_ERROR The file read operation failed.
401 @retval EFI_INVALID_PARAMETER A parameter was invalid.
402 @retval EFI_INVALID_PARAMETER FileName was NULL.
403 @retval EFI_INVALID_PARAMETER FileName was a directory.
404 **/
405 EFI_STATUS
406 ReadFileIntoBuffer (
407 IN CONST CHAR16 *FileName,
408 OUT VOID **Buffer,
409 OUT UINTN *BufferSize OPTIONAL,
410 OUT BOOLEAN *ReadOnly
411 );
412
413 #endif