summaryrefslogtreecommitdiff
path: root/inc/efishellintf.h
diff options
context:
space:
mode:
authorNigel Croxon <nigel.croxon@hp.com>2014-11-25 10:09:50 -0500
committerNigel Croxon <nigel.croxon@hp.com>2014-11-25 10:09:50 -0500
commit530d68ba191850edafc6da22cb2df55bec0c5fa5 (patch)
tree6752986507d3fc8ffc65085deedf11e7887a3d2a /inc/efishellintf.h
parent00bd66ef46b59a1623a293491a8b2c65a6d61975 (diff)
downloadgnu-efi-530d68ba191850edafc6da22cb2df55bec0c5fa5.tar.gz
The gnu-efi-3.0 toplevel subdirectory is really annoying. Kill it.
Signed-off-by: Peter Jones <pjones@redhat.com> Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
Diffstat (limited to 'inc/efishellintf.h')
-rw-r--r--inc/efishellintf.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/inc/efishellintf.h b/inc/efishellintf.h
new file mode 100644
index 0000000..e649acd
--- /dev/null
+++ b/inc/efishellintf.h
@@ -0,0 +1,94 @@
+/** @file
+ 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.
+
+**/
+/*
+ * This is based on ShellPkg/Include/Protocol/EfiShellInterface.h from EDK II.
+ */
+
+#ifndef _SHELLINTERFACE_H_
+#define _SHELLINTERFACE_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 = 1<<0,
+ ARG_PARTIALLY_QUOTED = 1<<1,
+ ARG_FIRST_HALF_QUOTED = 1<<2,
+ ARG_FIRST_CHAR_IS_ESC = 1<<3
+} 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 *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 *StdIn;
+ EFI_FILE *StdOut;
+ EFI_FILE *StdErr;
+
+ ///
+ /// List of attributes for each argument.
+ ///
+ EFI_SHELL_ARG_INFO *ArgInfo;
+
+ ///
+ /// Whether we are echoing.
+ ///
+ BOOLEAN EchoOn;
+} EFI_SHELL_INTERFACE;
+
+#endif