| /** @file | |
| EFI Shell Interface protocol from EDK shell (no spec). | |
| Shell Interface - additional information (over image_info) provided | |
| to an application started by the shell. | |
| ConIo provides a file-style interface to the console. | |
| The shell interface's and data (including ConIo) are only valid during | |
| the applications Entry Point. Once the application returns from it's | |
| entry point the data is freed by the invoking shell. | |
| Copyright (c) 2006 - 2010, Intel Corporation. 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 _SHELLINTERFACE_H_ | |
| #define _SHELLINTERFACE_H_ | |
| #include <Protocol/SimpleFileSystem.h> | |
| #define SHELL_INTERFACE_PROTOCOL_GUID \ | |
| { \ | |
| 0x47c7b223, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} \ | |
| } | |
| /// | |
| /// Bit definitions for EFI_SHELL_ARG_INFO | |
| /// | |
| typedef enum { | |
| ARG_NO_ATTRIB = 0x0, | |
| ARG_IS_QUOTED = BIT0, | |
| ARG_PARTIALLY_QUOTED = BIT1, | |
| ARG_FIRST_HALF_QUOTED = BIT2, | |
| ARG_FIRST_CHAR_IS_ESC = BIT3 | |
| } EFI_SHELL_ARG_INFO_TYPES; | |
| /// | |
| /// Attributes for an argument. | |
| /// | |
| typedef struct _EFI_SHELL_ARG_INFO { | |
| UINT32 Attributes; | |
| } EFI_SHELL_ARG_INFO; | |
| /// | |
| /// This protocol provides access to additional information about a shell application. | |
| /// | |
| typedef struct { | |
| /// | |
| /// Handle back to original image handle & image information. | |
| /// | |
| EFI_HANDLE ImageHandle; | |
| EFI_LOADED_IMAGE_PROTOCOL *Info; | |
| /// | |
| /// Parsed arg list converted more C-like format. | |
| /// | |
| CHAR16 **Argv; | |
| UINTN Argc; | |
| /// | |
| /// Storage for file redirection args after parsing. | |
| /// | |
| CHAR16 **RedirArgv; | |
| UINTN RedirArgc; | |
| /// | |
| /// A file style handle for console io. | |
| /// | |
| EFI_FILE_PROTOCOL *StdIn; | |
| EFI_FILE_PROTOCOL *StdOut; | |
| EFI_FILE_PROTOCOL *StdErr; | |
| /// | |
| /// List of attributes for each argument. | |
| /// | |
| EFI_SHELL_ARG_INFO *ArgInfo; | |
| /// | |
| /// Whether we are echoing. | |
| /// | |
| BOOLEAN EchoOn; | |
| } EFI_SHELL_INTERFACE; | |
| extern EFI_GUID gEfiShellInterfaceGuid; | |
| #endif |