+++ /dev/null
-/** @file\r
-\r
- Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
-\r
- This program and the accompanying materials\r
- are licensed and made available under the terms and conditions of the BSD License\r
- which accompanies this distribution. The full text of the license may be found at\r
- http://opensource.org/licenses/bsd-license.php\r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-**/\r
-\r
-\r
-#ifndef __EBL_ADD_COMMAND_H__\r
-#define __EBL_ADD_COMMAND_H__\r
-\r
-\r
-\r
-//\r
-// Protocol GUID\r
-//\r
-// AEDA2428-9A22-4637-9B21-545E28FBB829\r
-\r
-#define EBL_ADD_COMMAND_PROTOCOL_GUID \\r
- { 0xaeda2428, 0x9a22, 0x4637, { 0x9b, 0x21, 0x54, 0x5e, 0x28, 0xfb, 0xb8, 0x29 } }\r
-\r
-\r
-typedef struct _EBL_ADD_COMMAND_PROTOCOL EBL_ADD_COMMAND_PROTOCOL;\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EBL_COMMMAND) (\r
- IN UINTN Argc,\r
- IN CHAR8 **Argv\r
- );\r
-\r
-typedef struct {\r
- CHAR8 *Name;\r
- CHAR8 *HelpSummary;\r
- CHAR8 *Help;\r
- EBL_COMMMAND Command;\r
-} EBL_COMMAND_TABLE;\r
-\r
-\r
-/**\r
- Add a single command table entry.\r
-\r
- @param EntryArray Pointer EBL_COMMAND_TABLE of the command that is being added\r
-\r
-**/\r
-typedef\r
-VOID\r
-(EFIAPI *EBL_ADD_COMMAND) (\r
- IN const EBL_COMMAND_TABLE *Entry\r
- );\r
-\r
-\r
-/**\r
- Add a multiple command table entry.\r
-\r
- @param EntryArray Pointer EBL_COMMAND_TABLE of the commands that are being added\r
-\r
- @param ArrayCount Number of commands in the EntryArray.\r
-\r
-**/\r
-typedef\r
-VOID\r
-(EFIAPI *EBL_ADD_COMMANDS) (\r
- IN const EBL_COMMAND_TABLE *EntryArray,\r
- IN UINTN ArrayCount\r
- );\r
-\r
-\r
-typedef\r
-VOID\r
-(EFIAPI *EBL_GET_CHAR_CALL_BACK) (\r
- IN UINTN ElapsedTime\r
- );\r
-\r
-/**\r
- Return a keypress or optionally timeout if a timeout value was passed in.\r
- An optional callback function is called every second when waiting for a\r
- timeout.\r
-\r
- @param Key EFI Key information returned\r
- @param TimeoutInSec Number of seconds to wait to timeout\r
- @param CallBack Callback called every second during the timeout wait\r
-\r
- @return EFI_SUCCESS Key was returned\r
- @return EFI_TIMEOUT If the TimoutInSec expired\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EBL_GET_CHAR_KEY) (\r
- IN OUT EFI_INPUT_KEY *Key,\r
- IN UINTN TimeoutInSec,\r
- IN EBL_GET_CHAR_CALL_BACK CallBack OPTIONAL\r
- );\r
-\r
-\r
-/**\r
- This routine is used prevent command output data from scrolling off the end\r
- of the screen. The global gPageBreak is used to turn on or off this feature.\r
- If the CurrentRow is near the end of the screen pause and print out a prompt\r
- If the use hits Q to quit return TRUE else for any other key return FALSE.\r
- PrefixNewline is used to figure out if a newline is needed before the prompt\r
- string. This depends on the last print done before calling this function.\r
- CurrentRow is updated by one on a call or set back to zero if a prompt is\r
- needed.\r
-\r
- @param CurrentRow Used to figure out if its the end of the page and updated\r
- @param PrefixNewline Did previous print issue a newline\r
-\r
- @return TRUE if Q was hit to quit, FALSE in all other cases.\r
-\r
-**/\r
-typedef\r
-BOOLEAN\r
-(EFIAPI *EBL_ANY_KEY_CONTINUE_Q_QUIT) (\r
- IN UINTN *CurrentRow,\r
- IN BOOLEAN PrefixNewline\r
- );\r
-\r
-\r
-\r
-struct _EBL_ADD_COMMAND_PROTOCOL {\r
- EBL_ADD_COMMAND AddCommand;\r
- EBL_ADD_COMMANDS AddCommands;\r
-\r
- // Commands to reuse EBL infrastructure\r
- EBL_GET_CHAR_KEY EblGetCharKey;\r
- EBL_ANY_KEY_CONTINUE_Q_QUIT EblAnyKeyToContinueQtoQuit;\r
-};\r
-\r
-extern EFI_GUID gEfiEblAddCommandProtocolGuid;\r
-\r
-#endif\r
-\r
-\r