| /** @file |
| Include flie for basic command line parser for EBL (Embedded Boot Loader) |
| |
| Copyright (c) 2007, Intel Corporation. All rights reserved.<BR> |
| Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> |
| |
| This program and the accompanying materials |
| are licensed and made available under the terms and conditions of the BSD License |
| which accompanies this distribution. The full text of the license may be found at |
| http://opensource.org/licenses/bsd-license.php |
| |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. |
| |
| **/ |
| |
| #ifndef __EBL_H__ |
| #define __EBL_H__ |
| |
| #include <PiDxe.h> |
| #include <Protocol/BlockIo.h> |
| #include <Protocol/SimpleFileSystem.h> |
| #include <Protocol/FirmwareVolume2.h> |
| #include <Protocol/LoadFile.h> |
| #include <Protocol/FirmwareVolumeBlock.h> |
| #include <Protocol/PxeBaseCode.h> |
| #include <Protocol/LoadedImage.h> |
| #include <Protocol/EblAddCommand.h> |
| #include <Protocol/PciIo.h> |
| #include <Protocol/DevicePath.h> |
| |
| #include <Guid/FileInfo.h> |
| #include <Guid/DxeServices.h> |
| #include <Guid/MemoryTypeInformation.h> |
| #include <Guid/MemoryAllocationHob.h> |
| #include <Library/BaseLib.h> |
| #include <Library/MemoryAllocationLib.h> |
| #include <Library/DevicePathLib.h> |
| #include <Library/PrintLib.h> |
| #include <Library/BaseMemoryLib.h> |
| #include <Library/UefiLib.h> |
| #include <Library/UefiBootServicesTableLib.h> |
| #include <Library/UefiRuntimeServicesTableLib.h> |
| #include <Library/DebugLib.h> |
| #include <Library/EfiFileLib.h> |
| #include <Library/HobLib.h> |
| #include <Library/DebugLib.h> |
| #include <Library/IoLib.h> |
| #include <Library/PcdLib.h> |
| #include <Library/EblCmdLib.h> |
| #include <Library/DevicePathLib.h> |
| #include <Library/UefiLib.h> |
| #include <Library/EblNetworkLib.h> |
| |
| #include <IndustryStandard/Pci.h> |
| |
| // |
| // Prompt for the command line |
| // |
| #define CMD_SEPERATOR ';' |
| #define EBL_MAX_COMMAND_COUNT 0x100 |
| #define MAX_CMD_HISTORY 16 |
| #define MAX_CMD_LINE 256 |
| #define MAX_ARGS 32 |
| |
| #define EBL_CR 0x0a |
| #define EBL_LF 0x0d |
| |
| #define EFI_SET_TIMER_TO_SECOND 10000000 |
| |
| |
| |
| EBL_COMMAND_TABLE * |
| EblGetCommand ( |
| IN CHAR8 *CommandName |
| ); |
| |
| |
| EFI_STATUS |
| EblPathToDevice ( |
| IN CHAR8 *Path, |
| OUT EFI_HANDLE *DeviceHandle, |
| OUT EFI_DEVICE_PATH_PROTOCOL **PathDevicePath, |
| OUT VOID **Buffer, |
| OUT UINTN *BufferSize |
| ); |
| |
| BOOLEAN |
| EblAnyKeyToContinueQtoQuit ( |
| IN UINTN *CurrentRow, |
| IN BOOLEAN PrefixNewline |
| ); |
| |
| VOID |
| EblUpdateDeviceLists ( |
| VOID |
| ); |
| |
| VOID |
| EblInitializeCmdTable ( |
| VOID |
| ); |
| |
| VOID |
| EblShutdownExternalCmdTable ( |
| VOID |
| ); |
| |
| VOID |
| EblSetTextColor ( |
| UINTN Attribute |
| ); |
| |
| |
| EFI_STATUS |
| EblGetCharKey ( |
| IN OUT EFI_INPUT_KEY *Key, |
| IN UINTN TimoutInSec, |
| IN EBL_GET_CHAR_CALL_BACK CallBack OPTIONAL |
| ); |
| |
| // BugBug: Move me to a library |
| INTN |
| EFIAPI |
| AsciiStrniCmp ( |
| IN CONST CHAR8 *FirstString, |
| IN CONST CHAR8 *SecondString, |
| IN UINTN Length |
| ); |
| |
| |
| VOID |
| EblInitializeDeviceCmd ( |
| VOID |
| ); |
| |
| VOID |
| EblInitializemdHwDebugCmds ( |
| VOID |
| ); |
| |
| VOID |
| EblInitializeDirCmd ( |
| VOID |
| ); |
| |
| VOID |
| EblInitializeHobCmd ( |
| VOID |
| ); |
| |
| VOID |
| EblInitializemdHwIoDebugCmds ( |
| VOID |
| ); |
| |
| VOID |
| EblInitializeScriptCmd ( |
| VOID |
| ); |
| |
| VOID |
| EblInitializeNetworkCmd ( |
| VOID |
| ); |
| |
| CHAR8 * |
| ParseArguments ( |
| IN CHAR8 *CmdLine, |
| OUT UINTN *Argc, |
| OUT CHAR8 **Argv |
| ); |
| |
| EFI_STATUS |
| ProcessCmdLine ( |
| IN CHAR8 *CmdLine, |
| IN UINTN MaxCmdLineSize |
| ); |
| |
| EFI_STATUS |
| OutputData ( |
| IN UINT8 *Address, |
| IN UINTN Length, |
| IN UINTN Width, |
| IN UINTN Offset |
| ); |
| |
| UINTN |
| WidthFromCommandName ( |
| IN CHAR8 *Argv, |
| IN UINTN Default |
| ); |
| |
| |
| extern UINTN gScreenColumns; |
| extern UINTN gScreenRows; |
| extern BOOLEAN gPageBreak; |
| extern CHAR8 *gMemMapType[]; |
| |
| #endif |
| |