Home | History | Annotate | Line # | Download | only in inc
      1  1.1  jmcneill /*	$NetBSD: efishell.h,v 1.1.1.1 2021/09/30 18:50:09 jmcneill Exp $	*/
      2  1.1  jmcneill 
      3  1.1  jmcneill /**
      4  1.1  jmcneill   EFI Shell protocol as defined in the UEFI Shell Specification 2.2.
      5  1.1  jmcneill 
      6  1.1  jmcneill   (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
      7  1.1  jmcneill   Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
      8  1.1  jmcneill   SPDX-License-Identifier: BSD-2-Clause-Patent
      9  1.1  jmcneill 
     10  1.1  jmcneill   This file is based on MdePkg/Include/Protocol/Shell.h from EDK2
     11  1.1  jmcneill   Ported to gnu-efi by Jiaqing Zhao <jiaqing.zhao (at) intel.com>
     12  1.1  jmcneill **/
     13  1.1  jmcneill 
     14  1.1  jmcneill #ifndef _EFI_SHELL_H
     15  1.1  jmcneill #define _EFI_SHELL_H
     16  1.1  jmcneill 
     17  1.1  jmcneill #include "efilink.h"
     18  1.1  jmcneill 
     19  1.1  jmcneill #define EFI_SHELL_PROTOCOL_GUID \
     20  1.1  jmcneill     { 0x6302d008, 0x7f9b, 0x4f30, { 0x87, 0xac, 0x60, 0xc9, 0xfe, 0xf5, 0xda, 0x4e } }
     21  1.1  jmcneill 
     22  1.1  jmcneill INTERFACE_DECL(_EFI_SHELL_PROTOCOL);
     23  1.1  jmcneill 
     24  1.1  jmcneill typedef enum {
     25  1.1  jmcneill     SHELL_SUCCESS              = 0,
     26  1.1  jmcneill     SHELL_LOAD_ERROR           = 1,
     27  1.1  jmcneill     SHELL_INVALID_PARAMETER    = 2,
     28  1.1  jmcneill     SHELL_UNSUPPORTED          = 3,
     29  1.1  jmcneill     SHELL_BAD_BUFFER_SIZE      = 4,
     30  1.1  jmcneill     SHELL_BUFFER_TOO_SMALL     = 5,
     31  1.1  jmcneill     SHELL_NOT_READY            = 6,
     32  1.1  jmcneill     SHELL_DEVICE_ERROR         = 7,
     33  1.1  jmcneill     SHELL_WRITE_PROTECTED      = 8,
     34  1.1  jmcneill     SHELL_OUT_OF_RESOURCES     = 9,
     35  1.1  jmcneill     SHELL_VOLUME_CORRUPTED     = 10,
     36  1.1  jmcneill     SHELL_VOLUME_FULL          = 11,
     37  1.1  jmcneill     SHELL_NO_MEDIA             = 12,
     38  1.1  jmcneill     SHELL_MEDIA_CHANGED        = 13,
     39  1.1  jmcneill     SHELL_NOT_FOUND            = 14,
     40  1.1  jmcneill     SHELL_ACCESS_DENIED        = 15,
     41  1.1  jmcneill     SHELL_TIMEOUT              = 18,
     42  1.1  jmcneill     SHELL_NOT_STARTED          = 19,
     43  1.1  jmcneill     SHELL_ALREADY_STARTED      = 20,
     44  1.1  jmcneill     SHELL_ABORTED              = 21,
     45  1.1  jmcneill     SHELL_INCOMPATIBLE_VERSION = 25,
     46  1.1  jmcneill     SHELL_SECURITY_VIOLATION   = 26,
     47  1.1  jmcneill     SHELL_NOT_EQUAL            = 27
     48  1.1  jmcneill } SHELL_STATUS;
     49  1.1  jmcneill 
     50  1.1  jmcneill typedef VOID *SHELL_FILE_HANDLE;
     51  1.1  jmcneill 
     52  1.1  jmcneill typedef struct {
     53  1.1  jmcneill     EFI_LIST_ENTRY    Link;
     54  1.1  jmcneill     EFI_STATUS        Status;
     55  1.1  jmcneill     CONST CHAR16      *FullName;
     56  1.1  jmcneill     CONST CHAR16      *FileName;
     57  1.1  jmcneill     SHELL_FILE_HANDLE Handle;
     58  1.1  jmcneill     EFI_FILE_INFO     *Info;
     59  1.1  jmcneill } EFI_SHELL_FILE_INFO;
     60  1.1  jmcneill 
     61  1.1  jmcneill typedef
     62  1.1  jmcneill BOOLEAN
     63  1.1  jmcneill (EFIAPI *EFI_SHELL_BATCH_IS_ACTIVE) (
     64  1.1  jmcneill     VOID
     65  1.1  jmcneill     );
     66  1.1  jmcneill 
     67  1.1  jmcneill typedef
     68  1.1  jmcneill EFI_STATUS
     69  1.1  jmcneill (EFIAPI *EFI_SHELL_CLOSE_FILE) (
     70  1.1  jmcneill     IN SHELL_FILE_HANDLE FileHandle
     71  1.1  jmcneill     );
     72  1.1  jmcneill 
     73  1.1  jmcneill typedef
     74  1.1  jmcneill EFI_STATUS
     75  1.1  jmcneill (EFIAPI *EFI_SHELL_CREATE_FILE) (
     76  1.1  jmcneill     IN CONST CHAR16       *FileName,
     77  1.1  jmcneill     IN UINT64             FileAttribs,
     78  1.1  jmcneill     OUT SHELL_FILE_HANDLE *FileHandle
     79  1.1  jmcneill     );
     80  1.1  jmcneill 
     81  1.1  jmcneill typedef
     82  1.1  jmcneill EFI_STATUS
     83  1.1  jmcneill (EFIAPI *EFI_SHELL_DELETE_FILE) (
     84  1.1  jmcneill     IN SHELL_FILE_HANDLE FileHandle
     85  1.1  jmcneill     );
     86  1.1  jmcneill 
     87  1.1  jmcneill typedef
     88  1.1  jmcneill EFI_STATUS
     89  1.1  jmcneill (EFIAPI *EFI_SHELL_DELETE_FILE_BY_NAME) (
     90  1.1  jmcneill     IN CONST CHAR16 *FileName
     91  1.1  jmcneill     );
     92  1.1  jmcneill 
     93  1.1  jmcneill typedef
     94  1.1  jmcneill VOID
     95  1.1  jmcneill (EFIAPI *EFI_SHELL_DISABLE_PAGE_BREAK) (
     96  1.1  jmcneill     VOID
     97  1.1  jmcneill     );
     98  1.1  jmcneill 
     99  1.1  jmcneill typedef
    100  1.1  jmcneill VOID
    101  1.1  jmcneill (EFIAPI *EFI_SHELL_ENABLE_PAGE_BREAK) (
    102  1.1  jmcneill     VOID
    103  1.1  jmcneill     );
    104  1.1  jmcneill 
    105  1.1  jmcneill typedef
    106  1.1  jmcneill EFI_STATUS
    107  1.1  jmcneill (EFIAPI *EFI_SHELL_EXECUTE) (
    108  1.1  jmcneill     IN EFI_HANDLE  *ParentImageHandle,
    109  1.1  jmcneill     IN CHAR16      *CommandLine OPTIONAL,
    110  1.1  jmcneill     IN CHAR16      **Environment OPTIONAL,
    111  1.1  jmcneill     OUT EFI_STATUS *StatusCode OPTIONAL
    112  1.1  jmcneill     );
    113  1.1  jmcneill 
    114  1.1  jmcneill typedef
    115  1.1  jmcneill EFI_STATUS
    116  1.1  jmcneill (EFIAPI *EFI_SHELL_FIND_FILES) (
    117  1.1  jmcneill     IN CONST CHAR16         *FilePattern,
    118  1.1  jmcneill     OUT EFI_SHELL_FILE_INFO **FileList
    119  1.1  jmcneill     );
    120  1.1  jmcneill 
    121  1.1  jmcneill typedef
    122  1.1  jmcneill EFI_STATUS
    123  1.1  jmcneill (EFIAPI *EFI_SHELL_FIND_FILES_IN_DIR) (
    124  1.1  jmcneill     IN SHELL_FILE_HANDLE    FileDirHandle,
    125  1.1  jmcneill     OUT EFI_SHELL_FILE_INFO **FileList
    126  1.1  jmcneill     );
    127  1.1  jmcneill 
    128  1.1  jmcneill typedef
    129  1.1  jmcneill EFI_STATUS
    130  1.1  jmcneill (EFIAPI *EFI_SHELL_FLUSH_FILE) (
    131  1.1  jmcneill     IN SHELL_FILE_HANDLE FileHandle
    132  1.1  jmcneill     );
    133  1.1  jmcneill 
    134  1.1  jmcneill typedef
    135  1.1  jmcneill EFI_STATUS
    136  1.1  jmcneill (EFIAPI *EFI_SHELL_FREE_FILE_LIST) (
    137  1.1  jmcneill     IN EFI_SHELL_FILE_INFO **FileList
    138  1.1  jmcneill     );
    139  1.1  jmcneill 
    140  1.1  jmcneill typedef
    141  1.1  jmcneill CONST CHAR16 *
    142  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_ALIAS) (
    143  1.1  jmcneill   IN  CONST CHAR16 *Alias,
    144  1.1  jmcneill   OUT BOOLEAN      *Volatile OPTIONAL
    145  1.1  jmcneill   );
    146  1.1  jmcneill 
    147  1.1  jmcneill typedef
    148  1.1  jmcneill CONST CHAR16 *
    149  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_CUR_DIR) (
    150  1.1  jmcneill   IN CONST CHAR16 *FileSystemMapping OPTIONAL
    151  1.1  jmcneill   );
    152  1.1  jmcneill 
    153  1.1  jmcneill typedef UINT32 EFI_SHELL_DEVICE_NAME_FLAGS;
    154  1.1  jmcneill #define EFI_DEVICE_NAME_USE_COMPONENT_NAME 0x00000001
    155  1.1  jmcneill #define EFI_DEVICE_NAME_USE_DEVICE_PATH    0x00000002
    156  1.1  jmcneill 
    157  1.1  jmcneill typedef
    158  1.1  jmcneill EFI_STATUS
    159  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_DEVICE_NAME) (
    160  1.1  jmcneill     IN EFI_HANDLE                   DeviceHandle,
    161  1.1  jmcneill     IN EFI_SHELL_DEVICE_NAME_FLAGS  Flags,
    162  1.1  jmcneill     IN CHAR8                        *Language,
    163  1.1  jmcneill     OUT CHAR16                      **BestDeviceName
    164  1.1  jmcneill     );
    165  1.1  jmcneill 
    166  1.1  jmcneill typedef
    167  1.1  jmcneill CONST EFI_DEVICE_PATH_PROTOCOL *
    168  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_DEVICE_PATH_FROM_MAP) (
    169  1.1  jmcneill     IN CONST CHAR16 *Mapping
    170  1.1  jmcneill     );
    171  1.1  jmcneill 
    172  1.1  jmcneill typedef
    173  1.1  jmcneill EFI_DEVICE_PATH_PROTOCOL *
    174  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_DEVICE_PATH_FROM_FILE_PATH) (
    175  1.1  jmcneill     IN CONST CHAR16 *Path
    176  1.1  jmcneill     );
    177  1.1  jmcneill 
    178  1.1  jmcneill typedef
    179  1.1  jmcneill CONST CHAR16 *
    180  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_ENV) (
    181  1.1  jmcneill     IN CONST CHAR16 *Name
    182  1.1  jmcneill     );
    183  1.1  jmcneill 
    184  1.1  jmcneill typedef
    185  1.1  jmcneill CONST CHAR16 *
    186  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_ENV_EX) (
    187  1.1  jmcneill     IN CONST CHAR16 *Name,
    188  1.1  jmcneill     OUT UINT32      *Attributes OPTIONAL
    189  1.1  jmcneill     );
    190  1.1  jmcneill 
    191  1.1  jmcneill typedef
    192  1.1  jmcneill EFI_FILE_INFO *
    193  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_FILE_INFO) (
    194  1.1  jmcneill     IN SHELL_FILE_HANDLE FileHandle
    195  1.1  jmcneill     );
    196  1.1  jmcneill 
    197  1.1  jmcneill typedef
    198  1.1  jmcneill CHAR16 *
    199  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_FILE_PATH_FROM_DEVICE_PATH) (
    200  1.1  jmcneill     IN CONST EFI_DEVICE_PATH_PROTOCOL *Path
    201  1.1  jmcneill     );
    202  1.1  jmcneill 
    203  1.1  jmcneill typedef
    204  1.1  jmcneill EFI_STATUS
    205  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_FILE_POSITION) (
    206  1.1  jmcneill     IN SHELL_FILE_HANDLE FileHandle,
    207  1.1  jmcneill     OUT UINT64           *Position
    208  1.1  jmcneill     );
    209  1.1  jmcneill 
    210  1.1  jmcneill typedef
    211  1.1  jmcneill EFI_STATUS
    212  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_FILE_SIZE) (
    213  1.1  jmcneill     IN SHELL_FILE_HANDLE FileHandle,
    214  1.1  jmcneill     OUT UINT64           *Size
    215  1.1  jmcneill     );
    216  1.1  jmcneill 
    217  1.1  jmcneill typedef
    218  1.1  jmcneill EFI_STATUS
    219  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_GUID_FROM_NAME) (
    220  1.1  jmcneill     IN CONST CHAR16 *GuidName,
    221  1.1  jmcneill     OUT EFI_GUID    *Guid
    222  1.1  jmcneill     );
    223  1.1  jmcneill 
    224  1.1  jmcneill typedef
    225  1.1  jmcneill EFI_STATUS
    226  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_GUID_NAME)(
    227  1.1  jmcneill     IN CONST EFI_GUID *Guid,
    228  1.1  jmcneill     OUT CONST CHAR16  **GuidName
    229  1.1  jmcneill     );
    230  1.1  jmcneill 
    231  1.1  jmcneill typedef
    232  1.1  jmcneill EFI_STATUS
    233  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_HELP_TEXT) (
    234  1.1  jmcneill     IN CONST CHAR16 *Command,
    235  1.1  jmcneill     IN CONST CHAR16 *Sections,
    236  1.1  jmcneill     OUT CHAR16      **HelpText
    237  1.1  jmcneill     );
    238  1.1  jmcneill 
    239  1.1  jmcneill typedef
    240  1.1  jmcneill CONST CHAR16 *
    241  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_MAP_FROM_DEVICE_PATH) (
    242  1.1  jmcneill     IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath
    243  1.1  jmcneill     );
    244  1.1  jmcneill 
    245  1.1  jmcneill typedef
    246  1.1  jmcneill BOOLEAN
    247  1.1  jmcneill (EFIAPI *EFI_SHELL_GET_PAGE_BREAK) (
    248  1.1  jmcneill     VOID
    249  1.1  jmcneill     );
    250  1.1  jmcneill 
    251  1.1  jmcneill typedef
    252  1.1  jmcneill BOOLEAN
    253  1.1  jmcneill (EFIAPI *EFI_SHELL_IS_ROOT_SHELL) (
    254  1.1  jmcneill     VOID
    255  1.1  jmcneill     );
    256  1.1  jmcneill 
    257  1.1  jmcneill typedef
    258  1.1  jmcneill EFI_STATUS
    259  1.1  jmcneill (EFIAPI *EFI_SHELL_OPEN_FILE_BY_NAME) (
    260  1.1  jmcneill     IN CONST CHAR16       *FileName,
    261  1.1  jmcneill     OUT SHELL_FILE_HANDLE *FileHandle,
    262  1.1  jmcneill     IN UINT64             OpenMode
    263  1.1  jmcneill     );
    264  1.1  jmcneill 
    265  1.1  jmcneill typedef
    266  1.1  jmcneill EFI_STATUS
    267  1.1  jmcneill (EFIAPI *EFI_SHELL_OPEN_FILE_LIST) (
    268  1.1  jmcneill     IN CHAR16                  *Path,
    269  1.1  jmcneill     IN UINT64                  OpenMode,
    270  1.1  jmcneill     IN OUT EFI_SHELL_FILE_INFO **FileList
    271  1.1  jmcneill     );
    272  1.1  jmcneill 
    273  1.1  jmcneill typedef
    274  1.1  jmcneill EFI_STATUS
    275  1.1  jmcneill (EFIAPI *EFI_SHELL_OPEN_ROOT) (
    276  1.1  jmcneill     IN EFI_DEVICE_PATH_PROTOCOL *DevicePath,
    277  1.1  jmcneill     OUT SHELL_FILE_HANDLE       *FileHandle
    278  1.1  jmcneill     );
    279  1.1  jmcneill 
    280  1.1  jmcneill typedef
    281  1.1  jmcneill EFI_STATUS
    282  1.1  jmcneill (EFIAPI *EFI_SHELL_OPEN_ROOT_BY_HANDLE) (
    283  1.1  jmcneill     IN EFI_HANDLE         DeviceHandle,
    284  1.1  jmcneill     OUT SHELL_FILE_HANDLE *FileHandle
    285  1.1  jmcneill     );
    286  1.1  jmcneill 
    287  1.1  jmcneill typedef
    288  1.1  jmcneill EFI_STATUS
    289  1.1  jmcneill (EFIAPI *EFI_SHELL_READ_FILE) (
    290  1.1  jmcneill     IN SHELL_FILE_HANDLE FileHandle,
    291  1.1  jmcneill     IN OUT UINTN         *ReadSize,
    292  1.1  jmcneill     IN OUT VOID          *Buffer
    293  1.1  jmcneill     );
    294  1.1  jmcneill 
    295  1.1  jmcneill typedef
    296  1.1  jmcneill EFI_STATUS
    297  1.1  jmcneill (EFIAPI *EFI_SHELL_REGISTER_GUID_NAME) (
    298  1.1  jmcneill     IN CONST EFI_GUID *Guid,
    299  1.1  jmcneill     IN CONST CHAR16   *GuidName
    300  1.1  jmcneill     );
    301  1.1  jmcneill 
    302  1.1  jmcneill typedef
    303  1.1  jmcneill EFI_STATUS
    304  1.1  jmcneill (EFIAPI *EFI_SHELL_REMOVE_DUP_IN_FILE_LIST) (
    305  1.1  jmcneill     IN EFI_SHELL_FILE_INFO **FileList
    306  1.1  jmcneill     );
    307  1.1  jmcneill 
    308  1.1  jmcneill typedef
    309  1.1  jmcneill EFI_STATUS
    310  1.1  jmcneill (EFIAPI *EFI_SHELL_SET_ALIAS) (
    311  1.1  jmcneill     IN CONST CHAR16 *Command,
    312  1.1  jmcneill     IN CONST CHAR16 *Alias,
    313  1.1  jmcneill     IN BOOLEAN      Replace,
    314  1.1  jmcneill     IN BOOLEAN      Volatile
    315  1.1  jmcneill     );
    316  1.1  jmcneill 
    317  1.1  jmcneill typedef
    318  1.1  jmcneill EFI_STATUS
    319  1.1  jmcneill (EFIAPI *EFI_SHELL_SET_CUR_DIR) (
    320  1.1  jmcneill     IN CONST CHAR16 *FileSystem OPTIONAL,
    321  1.1  jmcneill     IN CONST CHAR16 *Dir
    322  1.1  jmcneill     );
    323  1.1  jmcneill 
    324  1.1  jmcneill typedef
    325  1.1  jmcneill EFI_STATUS
    326  1.1  jmcneill (EFIAPI *EFI_SHELL_SET_ENV) (
    327  1.1  jmcneill     IN CONST CHAR16 *Name,
    328  1.1  jmcneill     IN CONST CHAR16 *Value,
    329  1.1  jmcneill     IN BOOLEAN      Volatile
    330  1.1  jmcneill     );
    331  1.1  jmcneill 
    332  1.1  jmcneill typedef
    333  1.1  jmcneill EFI_STATUS
    334  1.1  jmcneill (EFIAPI *EFI_SHELL_SET_FILE_INFO) (
    335  1.1  jmcneill     IN SHELL_FILE_HANDLE   FileHandle,
    336  1.1  jmcneill     IN CONST EFI_FILE_INFO *FileInfo
    337  1.1  jmcneill     );
    338  1.1  jmcneill 
    339  1.1  jmcneill typedef
    340  1.1  jmcneill EFI_STATUS
    341  1.1  jmcneill (EFIAPI *EFI_SHELL_SET_FILE_POSITION) (
    342  1.1  jmcneill     IN SHELL_FILE_HANDLE FileHandle,
    343  1.1  jmcneill     IN UINT64            Position
    344  1.1  jmcneill     );
    345  1.1  jmcneill 
    346  1.1  jmcneill typedef
    347  1.1  jmcneill EFI_STATUS
    348  1.1  jmcneill (EFIAPI *EFI_SHELL_SET_MAP) (
    349  1.1  jmcneill     IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,
    350  1.1  jmcneill     IN CONST CHAR16                   *Mapping
    351  1.1  jmcneill     );
    352  1.1  jmcneill 
    353  1.1  jmcneill typedef
    354  1.1  jmcneill EFI_STATUS
    355  1.1  jmcneill (EFIAPI *EFI_SHELL_WRITE_FILE) (
    356  1.1  jmcneill     IN SHELL_FILE_HANDLE FileHandle,
    357  1.1  jmcneill     IN OUT UINTN         *BufferSize,
    358  1.1  jmcneill     IN VOID              *Buffer
    359  1.1  jmcneill     );
    360  1.1  jmcneill 
    361  1.1  jmcneill typedef struct _EFI_SHELL_PROTOCOL {
    362  1.1  jmcneill     EFI_SHELL_EXECUTE                         Execute;
    363  1.1  jmcneill     EFI_SHELL_GET_ENV                         GetEnv;
    364  1.1  jmcneill     EFI_SHELL_SET_ENV                         SetEnv;
    365  1.1  jmcneill     EFI_SHELL_GET_ALIAS                       GetAlias;
    366  1.1  jmcneill     EFI_SHELL_SET_ALIAS                       SetAlias;
    367  1.1  jmcneill     EFI_SHELL_GET_HELP_TEXT                   GetHelpText;
    368  1.1  jmcneill     EFI_SHELL_GET_DEVICE_PATH_FROM_MAP        GetDevicePathFromMap;
    369  1.1  jmcneill     EFI_SHELL_GET_MAP_FROM_DEVICE_PATH        GetMapFromDevicePath;
    370  1.1  jmcneill     EFI_SHELL_GET_DEVICE_PATH_FROM_FILE_PATH  GetDevicePathFromFilePath;
    371  1.1  jmcneill     EFI_SHELL_GET_FILE_PATH_FROM_DEVICE_PATH  GetFilePathFromDevicePath;
    372  1.1  jmcneill     EFI_SHELL_SET_MAP                         SetMap;
    373  1.1  jmcneill     EFI_SHELL_GET_CUR_DIR                     GetCurDir;
    374  1.1  jmcneill     EFI_SHELL_SET_CUR_DIR                     SetCurDir;
    375  1.1  jmcneill     EFI_SHELL_OPEN_FILE_LIST                  OpenFileList;
    376  1.1  jmcneill     EFI_SHELL_FREE_FILE_LIST                  FreeFileList;
    377  1.1  jmcneill     EFI_SHELL_REMOVE_DUP_IN_FILE_LIST         RemoveDupInFileList;
    378  1.1  jmcneill     EFI_SHELL_BATCH_IS_ACTIVE                 BatchIsActive;
    379  1.1  jmcneill     EFI_SHELL_IS_ROOT_SHELL                   IsRootShell;
    380  1.1  jmcneill     EFI_SHELL_ENABLE_PAGE_BREAK               EnablePageBreak;
    381  1.1  jmcneill     EFI_SHELL_DISABLE_PAGE_BREAK              DisablePageBreak;
    382  1.1  jmcneill     EFI_SHELL_GET_PAGE_BREAK                  GetPageBreak;
    383  1.1  jmcneill     EFI_SHELL_GET_DEVICE_NAME                 GetDeviceName;
    384  1.1  jmcneill     EFI_SHELL_GET_FILE_INFO                   GetFileInfo;
    385  1.1  jmcneill     EFI_SHELL_SET_FILE_INFO                   SetFileInfo;
    386  1.1  jmcneill     EFI_SHELL_OPEN_FILE_BY_NAME               OpenFileByName;
    387  1.1  jmcneill     EFI_SHELL_CLOSE_FILE                      CloseFile;
    388  1.1  jmcneill     EFI_SHELL_CREATE_FILE                     CreateFile;
    389  1.1  jmcneill     EFI_SHELL_READ_FILE                       ReadFile;
    390  1.1  jmcneill     EFI_SHELL_WRITE_FILE                      WriteFile;
    391  1.1  jmcneill     EFI_SHELL_DELETE_FILE                     DeleteFile;
    392  1.1  jmcneill     EFI_SHELL_DELETE_FILE_BY_NAME             DeleteFileByName;
    393  1.1  jmcneill     EFI_SHELL_GET_FILE_POSITION               GetFilePosition;
    394  1.1  jmcneill     EFI_SHELL_SET_FILE_POSITION               SetFilePosition;
    395  1.1  jmcneill     EFI_SHELL_FLUSH_FILE                      FlushFile;
    396  1.1  jmcneill     EFI_SHELL_FIND_FILES                      FindFiles;
    397  1.1  jmcneill     EFI_SHELL_FIND_FILES_IN_DIR               FindFilesInDir;
    398  1.1  jmcneill     EFI_SHELL_GET_FILE_SIZE                   GetFileSize;
    399  1.1  jmcneill     EFI_SHELL_OPEN_ROOT                       OpenRoot;
    400  1.1  jmcneill     EFI_SHELL_OPEN_ROOT_BY_HANDLE             OpenRootByHandle;
    401  1.1  jmcneill     EFI_EVENT                                 ExecutionBreak;
    402  1.1  jmcneill     UINT32                                    MajorVersion;
    403  1.1  jmcneill     UINT32                                    MinorVersion;
    404  1.1  jmcneill     // Added for Shell 2.1
    405  1.1  jmcneill     EFI_SHELL_REGISTER_GUID_NAME              RegisterGuidName;
    406  1.1  jmcneill     EFI_SHELL_GET_GUID_NAME                   GetGuidName;
    407  1.1  jmcneill     EFI_SHELL_GET_GUID_FROM_NAME              GetGuidFromName;
    408  1.1  jmcneill     EFI_SHELL_GET_ENV_EX                      GetEnvEx;
    409  1.1  jmcneill } EFI_SHELL_PROTOCOL;
    410  1.1  jmcneill 
    411  1.1  jmcneill #define EFI_SHELL_PARAMETERS_PROTOCOL_GUID \
    412  1.1  jmcneill     { 0x752f3136, 0x4e16, 0x4fdc, { 0xa2, 0x2a, 0xe5, 0xf4, 0x68, 0x12, 0xf4, 0xca } }
    413  1.1  jmcneill 
    414  1.1  jmcneill INTERFACE_DECL(_EFI_SHELL_PARAMETERS_PROTOCOL);
    415  1.1  jmcneill 
    416  1.1  jmcneill typedef struct _EFI_SHELL_PARAMETERS_PROTOCOL {
    417  1.1  jmcneill     CHAR16            **Argv;
    418  1.1  jmcneill     UINTN             Argc;
    419  1.1  jmcneill     SHELL_FILE_HANDLE StdIn;
    420  1.1  jmcneill     SHELL_FILE_HANDLE StdOut;
    421  1.1  jmcneill     SHELL_FILE_HANDLE StdErr;
    422  1.1  jmcneill } EFI_SHELL_PARAMETERS_PROTOCOL;
    423  1.1  jmcneill 
    424  1.1  jmcneill #define EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL_GUID \
    425  1.1  jmcneill     { 0x3c7200e9, 0x005f, 0x4ea4, { 0x87, 0xde, 0xa3, 0xdf, 0xac, 0x8a, 0x27, 0xc3 } }
    426  1.1  jmcneill 
    427  1.1  jmcneill INTERFACE_DECL(_EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL);
    428  1.1  jmcneill 
    429  1.1  jmcneill typedef
    430  1.1  jmcneill SHELL_STATUS
    431  1.1  jmcneill (EFIAPI *SHELL_COMMAND_HANDLER)(
    432  1.1  jmcneill     IN struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This,
    433  1.1  jmcneill     IN EFI_SYSTEM_TABLE                           *SystemTable,
    434  1.1  jmcneill     IN EFI_SHELL_PARAMETERS_PROTOCOL              *ShellParameters,
    435  1.1  jmcneill     IN EFI_SHELL_PROTOCOL                         *Shell
    436  1.1  jmcneill     );
    437  1.1  jmcneill 
    438  1.1  jmcneill typedef
    439  1.1  jmcneill CHAR16*
    440  1.1  jmcneill (EFIAPI *SHELL_COMMAND_GETHELP)(
    441  1.1  jmcneill     IN struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL *This,
    442  1.1  jmcneill     IN CONST CHAR8                                *Language
    443  1.1  jmcneill     );
    444  1.1  jmcneill 
    445  1.1  jmcneill typedef struct _EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL {
    446  1.1  jmcneill     CONST CHAR16          *CommandName;
    447  1.1  jmcneill     SHELL_COMMAND_HANDLER Handler;
    448  1.1  jmcneill     SHELL_COMMAND_GETHELP GetHelp;
    449  1.1  jmcneill } EFI_SHELL_DYNAMIC_COMMAND_PROTOCOL;
    450  1.1  jmcneill 
    451  1.1  jmcneill #endif
    452