1 /** @file
2   EFI Shell protocol as defined in the UEFI Shell 2.0 specification.
3 
4   Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>
5   SPDX-License-Identifier: BSD-2-Clause-Patent
6 
7 **/
8 
9 #ifndef __EFI_SHELL_PARAMETERS_PROTOCOL_H__
10 #define __EFI_SHELL_PARAMETERS_PROTOCOL_H__
11 
12 #include <Protocol/Shell.h>
13 
14 #define EFI_SHELL_PARAMETERS_PROTOCOL_GUID \
15   { \
16   0x752f3136, 0x4e16, 0x4fdc, { 0xa2, 0x2a, 0xe5, 0xf4, 0x68, 0x12, 0xf4, 0xca } \
17   }
18 
19 typedef struct _EFI_SHELL_PARAMETERS_PROTOCOL {
20   ///
21   /// Points to an Argc-element array of points to NULL-terminated strings containing
22   /// the command-line parameters. The first entry in the array is always the full file
23   /// path of the executable. Any quotation marks that were used to preserve
24   /// whitespace have been removed.
25   ///
26   CHAR16 **Argv;
27 
28   ///
29   /// The number of elements in the Argv array.
30   ///
31   UINTN Argc;
32 
33   ///
34   /// The file handle for the standard input for this executable. This may be different
35   /// from the ConInHandle in EFI_SYSTEM_TABLE.
36   ///
37   SHELL_FILE_HANDLE StdIn;
38 
39   ///
40   /// The file handle for the standard output for this executable. This may be different
41   /// from the ConOutHandle in EFI_SYSTEM_TABLE.
42   ///
43   SHELL_FILE_HANDLE StdOut;
44 
45   ///
46   /// The file handle for the standard error output for this executable. This may be
47   /// different from the StdErrHandle in EFI_SYSTEM_TABLE.
48   ///
49   SHELL_FILE_HANDLE StdErr;
50 } EFI_SHELL_PARAMETERS_PROTOCOL;
51 
52 extern EFI_GUID gEfiShellParametersProtocolGuid;
53 
54 #endif
55