1 1.1 jmcneill /* $NetBSD: efishellintf.h,v 1.1.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