Home | History | Annotate | Line # | Download | only in inc
efishellintf.h revision 1.1.1.1.2.2
      1  1.1.1.1.2.2  pgoyette /*	$NetBSD: efishellintf.h,v 1.1.1.1.2.2 2018/09/06 06:56:38 pgoyette Exp $	*/
      2  1.1.1.1.2.2  pgoyette 
      3  1.1.1.1.2.2  pgoyette /** @file
      4  1.1.1.1.2.2  pgoyette   SHELL_INTERFACE_PROTOCOL from EDK shell (no spec).
      5  1.1.1.1.2.2  pgoyette 
      6  1.1.1.1.2.2  pgoyette   Shell Interface - additional information (over image_info) provided
      7  1.1.1.1.2.2  pgoyette   to an application started by the shell.
      8  1.1.1.1.2.2  pgoyette 
      9  1.1.1.1.2.2  pgoyette   ConIo provides a file-style interface to the console.
     10  1.1.1.1.2.2  pgoyette 
     11  1.1.1.1.2.2  pgoyette   The shell interface's and data (including ConIo) are only valid during
     12  1.1.1.1.2.2  pgoyette   the applications Entry Point.  Once the application returns from it's
     13  1.1.1.1.2.2  pgoyette   entry point the data is freed by the invoking shell.
     14  1.1.1.1.2.2  pgoyette 
     15  1.1.1.1.2.2  pgoyette   Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
     16  1.1.1.1.2.2  pgoyette   This program and the accompanying materials
     17  1.1.1.1.2.2  pgoyette   are licensed and made available under the terms and conditions of the BSD License
     18  1.1.1.1.2.2  pgoyette   which accompanies this distribution.  The full text of the license may be found at
     19  1.1.1.1.2.2  pgoyette   http://opensource.org/licenses/bsd-license.php
     20  1.1.1.1.2.2  pgoyette 
     21  1.1.1.1.2.2  pgoyette   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     22  1.1.1.1.2.2  pgoyette   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     23  1.1.1.1.2.2  pgoyette 
     24  1.1.1.1.2.2  pgoyette **/
     25  1.1.1.1.2.2  pgoyette /*
     26  1.1.1.1.2.2  pgoyette  * This is based on ShellPkg/Include/Protocol/EfiShellInterface.h from EDK II.
     27  1.1.1.1.2.2  pgoyette  */
     28  1.1.1.1.2.2  pgoyette 
     29  1.1.1.1.2.2  pgoyette #ifndef _SHELLINTERFACE_H_
     30  1.1.1.1.2.2  pgoyette #define _SHELLINTERFACE_H_
     31  1.1.1.1.2.2  pgoyette 
     32  1.1.1.1.2.2  pgoyette 
     33  1.1.1.1.2.2  pgoyette #define SHELL_INTERFACE_PROTOCOL_GUID \
     34  1.1.1.1.2.2  pgoyette   { \
     35  1.1.1.1.2.2  pgoyette     0x47c7b223, 0xc42a, 0x11d2, {0x8e, 0x57, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} \
     36  1.1.1.1.2.2  pgoyette   }
     37  1.1.1.1.2.2  pgoyette 
     38  1.1.1.1.2.2  pgoyette ///
     39  1.1.1.1.2.2  pgoyette /// Bit definitions for EFI_SHELL_ARG_INFO
     40  1.1.1.1.2.2  pgoyette ///
     41  1.1.1.1.2.2  pgoyette typedef enum {
     42  1.1.1.1.2.2  pgoyette   ARG_NO_ATTRIB         = 0x0,
     43  1.1.1.1.2.2  pgoyette   ARG_IS_QUOTED         = 1<<0,
     44  1.1.1.1.2.2  pgoyette   ARG_PARTIALLY_QUOTED  = 1<<1,
     45  1.1.1.1.2.2  pgoyette   ARG_FIRST_HALF_QUOTED = 1<<2,
     46  1.1.1.1.2.2  pgoyette   ARG_FIRST_CHAR_IS_ESC = 1<<3
     47  1.1.1.1.2.2  pgoyette } EFI_SHELL_ARG_INFO_TYPES;
     48  1.1.1.1.2.2  pgoyette 
     49  1.1.1.1.2.2  pgoyette ///
     50  1.1.1.1.2.2  pgoyette /// Attributes for an argument.
     51  1.1.1.1.2.2  pgoyette ///
     52  1.1.1.1.2.2  pgoyette typedef struct _EFI_SHELL_ARG_INFO {
     53  1.1.1.1.2.2  pgoyette   UINT32  Attributes;
     54  1.1.1.1.2.2  pgoyette } EFI_SHELL_ARG_INFO;
     55  1.1.1.1.2.2  pgoyette 
     56  1.1.1.1.2.2  pgoyette ///
     57  1.1.1.1.2.2  pgoyette /// This protocol provides access to additional information about a shell application.
     58  1.1.1.1.2.2  pgoyette ///
     59  1.1.1.1.2.2  pgoyette typedef struct {
     60  1.1.1.1.2.2  pgoyette   ///
     61  1.1.1.1.2.2  pgoyette   /// Handle back to original image handle & image information.
     62  1.1.1.1.2.2  pgoyette   ///
     63  1.1.1.1.2.2  pgoyette   EFI_HANDLE                ImageHandle;
     64  1.1.1.1.2.2  pgoyette   EFI_LOADED_IMAGE *Info;
     65  1.1.1.1.2.2  pgoyette 
     66  1.1.1.1.2.2  pgoyette   ///
     67  1.1.1.1.2.2  pgoyette   /// Parsed arg list converted more C-like format.
     68  1.1.1.1.2.2  pgoyette   ///
     69  1.1.1.1.2.2  pgoyette   CHAR16                    **Argv;
     70  1.1.1.1.2.2  pgoyette   UINTN                     Argc;
     71  1.1.1.1.2.2  pgoyette 
     72  1.1.1.1.2.2  pgoyette   ///
     73  1.1.1.1.2.2  pgoyette   /// Storage for file redirection args after parsing.
     74  1.1.1.1.2.2  pgoyette   ///
     75  1.1.1.1.2.2  pgoyette   CHAR16                    **RedirArgv;
     76  1.1.1.1.2.2  pgoyette   UINTN                     RedirArgc;
     77  1.1.1.1.2.2  pgoyette 
     78  1.1.1.1.2.2  pgoyette   ///
     79  1.1.1.1.2.2  pgoyette   /// A file style handle for console io.
     80  1.1.1.1.2.2  pgoyette   ///
     81  1.1.1.1.2.2  pgoyette   EFI_FILE         *StdIn;
     82  1.1.1.1.2.2  pgoyette   EFI_FILE         *StdOut;
     83  1.1.1.1.2.2  pgoyette   EFI_FILE         *StdErr;
     84  1.1.1.1.2.2  pgoyette 
     85  1.1.1.1.2.2  pgoyette   ///
     86  1.1.1.1.2.2  pgoyette   /// List of attributes for each argument.
     87  1.1.1.1.2.2  pgoyette   ///
     88  1.1.1.1.2.2  pgoyette   EFI_SHELL_ARG_INFO        *ArgInfo;
     89  1.1.1.1.2.2  pgoyette 
     90  1.1.1.1.2.2  pgoyette   ///
     91  1.1.1.1.2.2  pgoyette   /// Whether we are echoing.
     92  1.1.1.1.2.2  pgoyette   ///
     93  1.1.1.1.2.2  pgoyette   BOOLEAN                   EchoOn;
     94  1.1.1.1.2.2  pgoyette } EFI_SHELL_INTERFACE;
     95  1.1.1.1.2.2  pgoyette 
     96  1.1.1.1.2.2  pgoyette #endif
     97