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