]> git.proxmox.com Git - mirror_edk2.git/blob - EmbeddedPkg/Ebl/Ebl.h
ArmPlatformPkg: remove EblCmdLib implementation
[mirror_edk2.git] / EmbeddedPkg / Ebl / Ebl.h
1 /** @file
2 Include file for basic command line parser for EBL (Embedded Boot Loader)
3
4 Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
5 Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
6 (C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR>
7
8 This program and the accompanying materials
9 are licensed and made available under the terms and conditions of the BSD License
10 which accompanies this distribution. The full text of the license may be found at
11 http://opensource.org/licenses/bsd-license.php
12
13 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
14 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
15
16 **/
17
18 #ifndef __EBL_H__
19 #define __EBL_H__
20
21 #include <PiDxe.h>
22 #include <Protocol/BlockIo.h>
23 #include <Protocol/SimpleFileSystem.h>
24 #include <Protocol/FirmwareVolume2.h>
25 #include <Protocol/LoadFile.h>
26 #include <Protocol/FirmwareVolumeBlock.h>
27 #include <Protocol/PxeBaseCode.h>
28 #include <Protocol/LoadedImage.h>
29 #include <Protocol/EblAddCommand.h>
30 #include <Protocol/PciIo.h>
31 #include <Protocol/DevicePath.h>
32
33 #include <Guid/FileInfo.h>
34 #include <Guid/DxeServices.h>
35 #include <Guid/MemoryTypeInformation.h>
36 #include <Guid/MemoryAllocationHob.h>
37 #include <Library/BaseLib.h>
38 #include <Library/MemoryAllocationLib.h>
39 #include <Library/DevicePathLib.h>
40 #include <Library/PrintLib.h>
41 #include <Library/BaseMemoryLib.h>
42 #include <Library/UefiLib.h>
43 #include <Library/UefiBootServicesTableLib.h>
44 #include <Library/UefiRuntimeServicesTableLib.h>
45 #include <Library/DebugLib.h>
46 #include <Library/EfiFileLib.h>
47 #include <Library/HobLib.h>
48 #include <Library/DebugLib.h>
49 #include <Library/IoLib.h>
50 #include <Library/PcdLib.h>
51 #include <Library/EblCmdLib.h>
52 #include <Library/DevicePathLib.h>
53 #include <Library/UefiLib.h>
54 #include <Library/EblNetworkLib.h>
55 #include <Library/TimerLib.h>
56
57 #include <IndustryStandard/Pci.h>
58
59 //
60 // Prompt for the command line
61 //
62 #define CMD_SEPARATOR ';'
63 #define EBL_MAX_COMMAND_COUNT 0x100
64 #define MAX_CMD_HISTORY 16
65 #define MAX_CMD_LINE 256
66 #define MAX_ARGS 32
67
68 #define EBL_CR 0x0a
69 #define EBL_LF 0x0d
70
71 #define EFI_SET_TIMER_TO_SECOND 10000000
72
73
74
75 EBL_COMMAND_TABLE *
76 EblGetCommand (
77 IN CHAR8 *CommandName
78 );
79
80
81 EFI_STATUS
82 EblPathToDevice (
83 IN CHAR8 *Path,
84 OUT EFI_HANDLE *DeviceHandle,
85 OUT EFI_DEVICE_PATH_PROTOCOL **PathDevicePath,
86 OUT VOID **Buffer,
87 OUT UINTN *BufferSize
88 );
89
90 BOOLEAN
91 EFIAPI
92 EblAnyKeyToContinueQtoQuit (
93 IN UINTN *CurrentRow,
94 IN BOOLEAN PrefixNewline
95 );
96
97 VOID
98 EblUpdateDeviceLists (
99 VOID
100 );
101
102 VOID
103 EblInitializeCmdTable (
104 VOID
105 );
106
107 VOID
108 EblShutdownExternalCmdTable (
109 VOID
110 );
111
112 VOID
113 EblSetTextColor (
114 UINTN Attribute
115 );
116
117
118 EFI_STATUS
119 EFIAPI
120 EblGetCharKey (
121 IN OUT EFI_INPUT_KEY *Key,
122 IN UINTN TimoutInSec,
123 IN EBL_GET_CHAR_CALL_BACK CallBack OPTIONAL
124 );
125
126 // BugBug: Move me to a library
127 INTN
128 EFIAPI
129 AsciiStrniCmp (
130 IN CONST CHAR8 *FirstString,
131 IN CONST CHAR8 *SecondString,
132 IN UINTN Length
133 );
134
135
136 VOID
137 EblInitializeDeviceCmd (
138 VOID
139 );
140
141 VOID
142 EblInitializemdHwDebugCmds (
143 VOID
144 );
145
146 VOID
147 EblInitializeDirCmd (
148 VOID
149 );
150
151 VOID
152 EblInitializeHobCmd (
153 VOID
154 );
155
156 VOID
157 EblInitializemdHwIoDebugCmds (
158 VOID
159 );
160
161 VOID
162 EblInitializeScriptCmd (
163 VOID
164 );
165
166 VOID
167 EblInitializeNetworkCmd (
168 VOID
169 );
170
171 VOID
172 EblInitializeVariableCmds (
173 VOID
174 );
175
176 CHAR8 *
177 ParseArguments (
178 IN CHAR8 *CmdLine,
179 OUT UINTN *Argc,
180 OUT CHAR8 **Argv
181 );
182
183 EFI_STATUS
184 ProcessCmdLine (
185 IN CHAR8 *CmdLine,
186 IN UINTN MaxCmdLineSize
187 );
188
189 EFI_STATUS
190 OutputData (
191 IN UINT8 *Address,
192 IN UINTN Length,
193 IN UINTN Width,
194 IN UINTN Offset
195 );
196
197 UINTN
198 WidthFromCommandName (
199 IN CHAR8 *Argv,
200 IN UINTN Default
201 );
202
203
204 extern UINTN gScreenColumns;
205 extern UINTN gScreenRows;
206 extern BOOLEAN gPageBreak;
207 extern CHAR8 *gMemMapType[];
208
209 #endif
210