]> git.proxmox.com Git - mirror_edk2.git/blame - ShellPkg/Include/Protocol/EfiShellInterface.h
updating comments mostly. also added some new lib functions.
[mirror_edk2.git] / ShellPkg / Include / Protocol / EfiShellInterface.h
CommitLineData
94b17fa1 1/** @file\r
2 EFI Shell Interface protocol from EDK shell (no spec).\r
3\r
4 Shell Interface - additional information (over image_info) provided\r
5 to an application started by the shell.\r
6\r
7 ConIo - provides a file style interface to the console. Note that the\r
8 ConOut & ConIn interfaces in the system table will work as well, and both\r
9 all will be redirected to a file if needed on a command line\r
10\r
11 The shell interface's and data (including ConIo) are only valid during\r
12 the applications Entry Point. Once the application returns from it's\r
13 entry point the data is freed by the invoking shell.\r
14 \r
15 Copyright (c) 2006 - 2009, Intel Corporation \r
16 All rights reserved. This program and the accompanying materials \r
17 are licensed and made available under the terms and conditions of the BSD License \r
18 which accompanies this distribution. The full text of the license may be found at \r
19 http://opensource.org/licenses/bsd-license.php \r
20\r
21 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
22 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
23\r
24**/\r
25\r
b3011f40 26#if !defined(_SHELLINTERFACE_H_)\r
94b17fa1 27#define _SHELLINTERFACE_H_\r
28\r
94b17fa1 29#define SHELL_INTERFACE_PROTOCOL_GUID \\r
30 { \\r
55034088 31 0x47c7b223, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} \\r
94b17fa1 32 }\r
33\r
34///\r
35/// bit definitions for EFI_SHELL_ARG_INFO\r
36///\r
37typedef enum {\r
38 ARG_NO_ATTRIB = 0x0,\r
08d7f8e8 39 ARG_IS_QUOTED = BIT0,\r
40 ARG_PARTIALLY_QUOTED = BIT1,\r
41 ARG_FIRST_HALF_QUOTED = BIT2,\r
42 ARG_FIRST_CHAR_IS_ESC = BIT3\r
43} EFI_SHELL_ARG_INFO_TYPES;\r
94b17fa1 44\r
45///\r
46/// attributes for an argument.\r
47///\r
48typedef struct _EFI_SHELL_ARG_INFO {\r
49 UINT32 Attributes;\r
50} EFI_SHELL_ARG_INFO;\r
51\r
52///\r
53/// This protocol provides access to additional information about a shell app.\r
54///\r
55typedef struct {\r
56 ///\r
57 /// Handle back to original image handle & image info\r
58 ///\r
59 EFI_HANDLE ImageHandle;\r
60 EFI_LOADED_IMAGE_PROTOCOL *Info;\r
61\r
62 ///\r
63 /// Parsed arg list converted more C like format\r
64 ///\r
65 CHAR16 **Argv;\r
66 UINTN Argc;\r
67\r
68 ///\r
69 /// Storage for file redirection args after parsing\r
70 ///\r
71 CHAR16 **RedirArgv;\r
72 UINTN RedirArgc;\r
73\r
74 ///\r
75 /// A file style handle for console io\r
76 ///\r
77 EFI_FILE_HANDLE StdIn;\r
78 EFI_FILE_HANDLE StdOut;\r
79 EFI_FILE_HANDLE StdErr;\r
80\r
81 ///\r
82 /// list of attributes for each argument\r
83 ///\r
84 EFI_SHELL_ARG_INFO *ArgInfo;\r
85\r
86 ///\r
87 /// whether we are echoing\r
88 ///\r
89 BOOLEAN EchoOn;\r
90} EFI_SHELL_INTERFACE;\r
91\r
92extern EFI_GUID gEfiShellInterfaceGuid;\r
93\r
94#endif\r