Home | History | Annotate | Download | only in Device
      1 /** @file
      2   Declarations and macros for the console abstraction.
      3 
      4   Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
      5   This program and the accompanying materials are licensed and made available
      6   under the terms and conditions of the BSD License which accompanies this
      7   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   Depends on <kfile.h>, <Device/Device.h>, <Protocol/SimpleTextIn.h>, <Uefi/UefiBaseType.h>
     14 **/
     15 #ifndef _DEVICE_UEFI_CONSOLE_H
     16 #define _DEVICE_UEFI_CONSOLE_H
     17 
     18 #include  <kfile.h>
     19 #include  <Device/Device.h>
     20 
     21 /*  The members Cookie through Abstraction, inclusive, are the same type and order
     22     for all instance structures.
     23 
     24     All instance structures must be a multiple of sizeof(UINTN) bytes long
     25 */
     26 typedef struct {
     27   UINT32                      Cookie;       ///< Special value identifying this as a valid ConInstance
     28   UINT32                      InstanceNum;  ///< Which instance is this?  Zero-based.
     29   EFI_HANDLE                  Dev;          ///< Pointer to either Input or Output Protocol.
     30   DeviceNode                 *Parent;       ///< Points to the parent Device Node.
     31   struct fileops              Abstraction;  ///< Pointers to functions implementing this device's abstraction.
     32   UINTN                       Reserved_1;   // Ensure that next member starts on an 8-byte boundary
     33   UINT64                      NumRead;      ///< Number of characters Read.
     34   UINT64                      NumWritten;   ///< Number of characters Written.
     35   __mbstate_t                 CharState;    ///< Character state for the byte stream passing through this device
     36   CHAR16                      UnGetKey;     ///< One-key pushback, for poll().
     37 } ConInstance;
     38 
     39 __BEGIN_DECLS
     40 
     41 int
     42 EFIAPI
     43 da_ConOpen(
     44   IN  DeviceNode         *DevNode,
     45   IN  struct __filedes   *filp,
     46   IN  int                 DevInstance,
     47   IN  CHAR16             *Path,
     48   IN  CHAR16             *MPath
     49 );
     50 
     51 __END_DECLS
     52 
     53 #endif  /* _DEVICE_UEFI_CONSOLE_H */
     54