Home | History | Annotate | Line # | Download | only in inc
      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