mirror of https://github.com/acidanthera/audk.git
95 lines
2.5 KiB
C
95 lines
2.5 KiB
C
/** @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
|