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