2 Include file for basic command line parser for EBL (Embedded Boot Loader)
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>
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
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.
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>
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>
57 #include <IndustryStandard/Pci.h>
60 // Prompt for the command line
62 #define CMD_SEPARATOR ';'
63 #define EBL_MAX_COMMAND_COUNT 0x100
64 #define MAX_CMD_HISTORY 16
65 #define MAX_CMD_LINE 256
71 #define EFI_SET_TIMER_TO_SECOND 10000000
84 OUT EFI_HANDLE
*DeviceHandle
,
85 OUT EFI_DEVICE_PATH_PROTOCOL
**PathDevicePath
,
92 EblAnyKeyToContinueQtoQuit (
94 IN BOOLEAN PrefixNewline
98 EblUpdateDeviceLists (
103 EblInitializeCmdTable (
108 EblShutdownExternalCmdTable (
121 IN OUT EFI_INPUT_KEY
*Key
,
122 IN UINTN TimoutInSec
,
123 IN EBL_GET_CHAR_CALL_BACK CallBack OPTIONAL
126 // BugBug: Move me to a library
130 IN CONST CHAR8
*FirstString
,
131 IN CONST CHAR8
*SecondString
,
137 EblInitializeDeviceCmd (
142 EblInitializemdHwDebugCmds (
147 EblInitializeDirCmd (
152 EblInitializeHobCmd (
157 EblInitializemdHwIoDebugCmds (
162 EblInitializeScriptCmd (
167 EblInitializeNetworkCmd (
172 EblInitializeVariableCmds (
186 IN UINTN MaxCmdLineSize
198 WidthFromCommandName (
204 extern UINTN gScreenColumns
;
205 extern UINTN gScreenRows
;
206 extern BOOLEAN gPageBreak
;
207 extern CHAR8
*gMemMapType
[];