Home | History | Annotate | Download | only in Shell
      1 /** @file
      2   EFI_FILE_PROTOCOL wrappers for other items (Like Environment Variables, StdIn, StdOut, StdErr, etc...)
      3 
      4   Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
      5   This program and the accompanying materials
      6   are licensed and made available under the terms and conditions of the BSD License
      7   which accompanies this distribution.  The full text of the license may be found at
      8   http://opensource.org/licenses/bsd-license.php
      9 
     10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 **/
     14 
     15 #ifndef _SHELL_FILE_HANDLE_WRAPPERS_HEADER_
     16 #define _SHELL_FILE_HANDLE_WRAPPERS_HEADER_
     17 
     18 typedef struct {
     19   LIST_ENTRY        Link;
     20   CHAR16*           Buffer;
     21 } SHELL_LINE_LIST;
     22 
     23 typedef struct {
     24   UINTN             LogCount;
     25   SHELL_LINE_LIST   *Log;
     26 } SHELL_LINE_LOG;
     27 
     28 ///
     29 /// FILE sytle interfaces for StdIn.
     30 ///
     31 extern EFI_FILE_PROTOCOL FileInterfaceStdIn;
     32 
     33 ///
     34 /// FILE sytle interfaces for StdOut.
     35 ///
     36 extern EFI_FILE_PROTOCOL FileInterfaceStdOut;
     37 
     38 ///
     39 /// FILE sytle interfaces for StdErr.
     40 ///
     41 extern EFI_FILE_PROTOCOL FileInterfaceStdErr;
     42 
     43 ///
     44 /// FILE style interface for NUL file.
     45 ///
     46 extern EFI_FILE_PROTOCOL FileInterfaceNulFile;
     47 
     48 /**
     49   Creates a EFI_FILE_PROTOCOL (almost) object for using to access
     50   environment variables through file operations.
     51 
     52   @param EnvName    The name of the Environment Variable to be operated on.
     53 
     54   @retval NULL      Memory could not be allocated.
     55   @return other     a pointer to an EFI_FILE_PROTOCOL structure
     56 **/
     57 EFI_FILE_PROTOCOL*
     58 CreateFileInterfaceEnv(
     59   CONST CHAR16 *EnvName
     60   );
     61 
     62 /**
     63   Creates a EFI_FILE_PROTOCOL (almost) object for using to access
     64   a file entirely in memory through file operations.
     65 
     66   @param[in] Unicode  TRUE if the data is UNICODE, FALSE otherwise.
     67 
     68   @retval NULL      Memory could not be allocated.
     69   @return other     a pointer to an EFI_FILE_PROTOCOL structure
     70 **/
     71 EFI_FILE_PROTOCOL*
     72 CreateFileInterfaceMem(
     73   IN CONST BOOLEAN Unicode
     74   );
     75 
     76 /**
     77   Creates a EFI_FILE_PROTOCOL (almost) object for using to access
     78   a file entirely with unicode awareness through file operations.
     79 
     80   @param[in] Template The pointer to the handle to start with.
     81   @param[in] Unicode  TRUE if the data is UNICODE, FALSE otherwise.
     82 
     83   @retval NULL      Memory could not be allocated.
     84   @return other     a pointer to an EFI_FILE_PROTOCOL structure
     85 **/
     86 EFI_FILE_PROTOCOL*
     87 CreateFileInterfaceFile(
     88   IN CONST EFI_FILE_PROTOCOL  *Template,
     89   IN CONST BOOLEAN            Unicode
     90   );
     91 
     92 #endif //_SHELL_FILE_HANDLE_WRAPPERS_HEADER_
     93 
     94