]> git.proxmox.com Git - mirror_edk2.git/blob - ShellPkg/Library/UefiShellLevel1CommandsLib/UefiShellLevel1CommandsLib.h
ShellPkg: acpiview: Add GT Frame Number validation to GTDT parser
[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_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 /**
144 Function for 'else' command.
145
146 @param[in] ImageHandle Handle to the Image (NULL if Internal).
147 @param[in] SystemTable Pointer to the System Table (NULL if Internal).
148 **/
149 SHELL_STATUS
150 EFIAPI
151 ShellCommandRunElse (
152 IN EFI_HANDLE ImageHandle,
153 IN EFI_SYSTEM_TABLE *SystemTable
154 );
155
156 ///
157 /// Function prototype for BOTH GetNextNode and GetPreviousNode...
158 /// This is used to control the MoveToTag function direction...
159 ///
160 typedef
161 LIST_ENTRY *
162 (EFIAPI *LIST_MANIP_FUNC)(
163 IN CONST LIST_ENTRY *List,
164 IN CONST LIST_ENTRY *Node
165 );
166
167 /**
168 Move the script pointer from 1 tag (line) to another.
169
170 It functions so that count starts at 1 and it increases or decreases when it
171 hits the specified tags. when it hits zero the location has been found.
172
173 DecrementerTag and IncrementerTag are used to get around for/endfor and
174 similar paired types where the entire middle should be ignored.
175
176 If label is used it will be used instead of the count.
177
178 @param[in] Function The function to use to enumerate through the
179 list. Normally GetNextNode or GetPreviousNode.
180 @param[in] DecrementerTag The tag to decrement the count at.
181 @param[in] IncrementerTag The tag to increment the count at.
182 @param[in] Label A label to look for.
183 @param[in, out] ScriptFile The pointer to the current script file structure.
184 @param[in] MovePast TRUE makes function return 1 past the found
185 location.
186 @param[in] FindOnly TRUE to not change the ScriptFile.
187 @param[in] WrapAroundScript TRUE to wrap end-to-begining or vise versa in
188 searching.
189 **/
190 BOOLEAN
191 MoveToTag (
192 IN CONST LIST_MANIP_FUNC Function,
193 IN CONST CHAR16 *DecrementerTag,
194 IN CONST CHAR16 *IncrementerTag,
195 IN CONST CHAR16 *Label OPTIONAL,
196 IN OUT SCRIPT_FILE *ScriptFile,
197 IN CONST BOOLEAN MovePast,
198 IN CONST BOOLEAN FindOnly,
199 IN CONST BOOLEAN WrapAroundScript
200 );
201
202 #endif
203