efishellintf.h revision 1.1 1 1.1 jmcneill /* $NetBSD: efishellintf.h,v 1.1 2018/08/16 18:17:47 jmcneill Exp $ */
2 1.1 jmcneill
3 1.1 jmcneill /** @file
4 1.1 jmcneill SHELL_INTERFACE_PROTOCOL from EDK shell (no spec).
5 1.1 jmcneill
6 1.1 jmcneill Shell Interface - additional information (over image_info) provided
7 1.1 jmcneill to an application started by the shell.
8 1.1 jmcneill
9 1.1 jmcneill ConIo provides a file-style interface to the console.
10 1.1 jmcneill
11 1.1 jmcneill The shell interface's and data (including ConIo) are only valid during
12 1.1 jmcneill the applications Entry Point. Once the application returns from it's
13 1.1 jmcneill entry point the data is freed by the invoking shell.
14 1.1 jmcneill
15 1.1 jmcneill Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
16 1.1 jmcneill This program and the accompanying materials
17 1.1 jmcneill are licensed and made available under the terms and conditions of the BSD License
18 1.1 jmcneill which accompanies this distribution. The full text of the license may be found at
19 1.1 jmcneill http://opensource.org/licenses/bsd-license.php
20 1.1 jmcneill
21 1.1 jmcneill THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
22 1.1 jmcneill WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
23 1.1 jmcneill
24 1.1 jmcneill **/
25 1.1 jmcneill /*
26 1.1 jmcneill * This is based on ShellPkg/Include/Protocol/EfiShellInterface.h from EDK II.
27 1.1 jmcneill */
28 1.1 jmcneill
29 1.1 jmcneill #ifndef _SHELLINTERFACE_H_
30 1.1 jmcneill #define _SHELLINTERFACE_H_
31 1.1 jmcneill
32 1.1 jmcneill
33 1.1 jmcneill #define SHELL_INTERFACE_PROTOCOL_GUID \
34 1.1 jmcneill { \
35 1.1 jmcneill 0x47c7b223, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} \
36 1.1 jmcneill }
37 1.1 jmcneill
38 1.1 jmcneill ///
39 1.1 jmcneill /// Bit definitions for EFI_SHELL_ARG_INFO
40 1.1 jmcneill ///
41 1.1 jmcneill typedef enum {
42 1.1 jmcneill ARG_NO_ATTRIB = 0x0,
43 1.1 jmcneill ARG_IS_QUOTED = 1<<0,
44 1.1 jmcneill ARG_PARTIALLY_QUOTED = 1<<1,
45 1.1 jmcneill ARG_FIRST_HALF_QUOTED = 1<<2,
46 1.1 jmcneill ARG_FIRST_CHAR_IS_ESC = 1<<3
47 1.1 jmcneill } EFI_SHELL_ARG_INFO_TYPES;
48 1.1 jmcneill
49 1.1 jmcneill ///
50 1.1 jmcneill /// Attributes for an argument.
51 1.1 jmcneill ///
52 1.1 jmcneill typedef struct _EFI_SHELL_ARG_INFO {
53 1.1 jmcneill UINT32 Attributes;
54 1.1 jmcneill } EFI_SHELL_ARG_INFO;
55 1.1 jmcneill
56 1.1 jmcneill ///
57 1.1 jmcneill /// This protocol provides access to additional information about a shell application.
58 1.1 jmcneill ///
59 1.1 jmcneill typedef struct {
60 1.1 jmcneill ///
61 1.1 jmcneill /// Handle back to original image handle & image information.
62 1.1 jmcneill ///
63 1.1 jmcneill EFI_HANDLE ImageHandle;
64 1.1 jmcneill EFI_LOADED_IMAGE *Info;
65 1.1 jmcneill
66 1.1 jmcneill ///
67 1.1 jmcneill /// Parsed arg list converted more C-like format.
68 1.1 jmcneill ///
69 1.1 jmcneill CHAR16 **Argv;
70 1.1 jmcneill UINTN Argc;
71 1.1 jmcneill
72 1.1 jmcneill ///
73 1.1 jmcneill /// Storage for file redirection args after parsing.
74 1.1 jmcneill ///
75 1.1 jmcneill CHAR16 **RedirArgv;
76 1.1 jmcneill UINTN RedirArgc;
77 1.1 jmcneill
78 1.1 jmcneill ///
79 1.1 jmcneill /// A file style handle for console io.
80 1.1 jmcneill ///
81 1.1 jmcneill EFI_FILE *StdIn;
82 1.1 jmcneill EFI_FILE *StdOut;
83 1.1 jmcneill EFI_FILE *StdErr;
84 1.1 jmcneill
85 1.1 jmcneill ///
86 1.1 jmcneill /// List of attributes for each argument.
87 1.1 jmcneill ///
88 1.1 jmcneill EFI_SHELL_ARG_INFO *ArgInfo;
89 1.1 jmcneill
90 1.1 jmcneill ///
91 1.1 jmcneill /// Whether we are echoing.
92 1.1 jmcneill ///
93 1.1 jmcneill BOOLEAN EchoOn;
94 1.1 jmcneill } EFI_SHELL_INTERFACE;
95 1.1 jmcneill
96 1.1 jmcneill #endif
97