]> git.proxmox.com Git - mirror_edk2.git/blob - StdLibPrivateInternalFiles/Include/Device/Console.h
StdLib: Add multi-byte character support. The normal "narrow" character set is now...
[mirror_edk2.git] / StdLibPrivateInternalFiles / Include / Device / Console.h
1 /** @file
2 Declarations and macros for the console abstraction.
3
4 Copyright (c) 2010 - 2012, 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 EFI_INPUT_KEY UnGetKey; ///< One-key pushback, for poll().
36 __mbstate_t CharState; ///< Character state for the byte stream passing through this device
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 */