1 /** @file
2   EFI Shell protocol as defined in the UEFI Shell 2.0 specification.
3 
4   Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
5   This program and the accompanying materials
6   are licensed and made available under the terms and conditions of the BSD License
7   which accompanies this distribution.  The full text of the license may be found at
8   http://opensource.org/licenses/bsd-license.php
9 
10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 
13 **/
14 
15 #ifndef __EFI_SHELL_PARAMETERS_PROTOCOL__
16 #define __EFI_SHELL_PARAMETERS_PROTOCOL__
17 
18 #include <ShellBase.h>
19 
20 #define EFI_SHELL_PARAMETERS_PROTOCOL_GUID \
21   { \
22   0x752f3136, 0x4e16, 0x4fdc, { 0xa2, 0x2a, 0xe5, 0xf4, 0x68, 0x12, 0xf4, 0xca } \
23   }
24 
25 typedef struct _EFI_SHELL_PARAMETERS_PROTOCOL {
26   ///
27   /// Points to an Argc-element array of points to NULL-terminated strings containing
28   /// the command-line parameters. The first entry in the array is always the full file
29   /// path of the executable. Any quotation marks that were used to preserve
30   /// whitespace have been removed.
31   ///
32   CHAR16 **Argv;
33 
34   ///
35   /// The number of elements in the Argv array.
36   ///
37   UINTN Argc;
38 
39   ///
40   /// The file handle for the standard input for this executable. This may be different
41   /// from the ConInHandle in EFI_SYSTEM_TABLE.
42   ///
43   SHELL_FILE_HANDLE StdIn;
44 
45   ///
46   /// The file handle for the standard output for this executable. This may be different
47   /// from the ConOutHandle in EFI_SYSTEM_TABLE.
48   ///
49   SHELL_FILE_HANDLE StdOut;
50 
51   ///
52   /// The file handle for the standard error output for this executable. This may be
53   /// different from the StdErrHandle in EFI_SYSTEM_TABLE.
54   ///
55   SHELL_FILE_HANDLE StdErr;
56 } EFI_SHELL_PARAMETERS_PROTOCOL;
57 
58 extern EFI_GUID gEfiShellParametersProtocolGuid;
59 
60 #endif
61