]> git.proxmox.com Git - mirror_edk2.git/blame - MdeModulePkg/Universal/Console/TerminalDxe/Ansi.c
MdeModulePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdeModulePkg / Universal / Console / TerminalDxe / Ansi.c
CommitLineData
4bc6ad39
RN
1/** @file\r
2 Implementation of translation upon PC ANSI.\r
3\r
d1102dba 4Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
9d510e61 5SPDX-License-Identifier: BSD-2-Clause-Patent\r
4bc6ad39
RN
6\r
7**/\r
8\r
9\r
10#include "Terminal.h"\r
11\r
12/**\r
13 Translate all raw data in the Raw FIFO into unicode, and insert\r
14 them into Unicode FIFO.\r
15\r
16 @param TerminalDevice The terminal device.\r
17\r
18**/\r
19VOID\r
20AnsiRawDataToUnicode (\r
21 IN TERMINAL_DEV *TerminalDevice\r
22 )\r
23{\r
24 UINT8 RawData;\r
25\r
26 //\r
27 // pop the raw data out from the raw fifo,\r
28 // and translate it into unicode, then push\r
29 // the unicode into unicode fifo, until the raw fifo is empty.\r
30 //\r
31 while (!IsRawFiFoEmpty (TerminalDevice) && !IsUnicodeFiFoFull (TerminalDevice)) {\r
32\r
33 RawFiFoRemoveOneKey (TerminalDevice, &RawData);\r
34\r
35 UnicodeFiFoInsertOneKey (TerminalDevice, (UINT16) RawData);\r
36 }\r
37}\r
38\r
39/**\r
40 Check if input string is valid Ascii string, valid EFI control characters\r
41 or valid text graphics.\r
42\r
43 @param TerminalDevice The terminal device.\r
d1102dba
LG
44 @param WString The input string.\r
45\r
4bc6ad39
RN
46 @retval EFI_UNSUPPORTED If not all input characters are valid.\r
47 @retval EFI_SUCCESS If all input characters are valid.\r
48\r
49**/\r
50EFI_STATUS\r
51AnsiTestString (\r
52 IN TERMINAL_DEV *TerminalDevice,\r
53 IN CHAR16 *WString\r
54 )\r
55{\r
56 CHAR8 GraphicChar;\r
57\r
58 //\r
59 // support three kind of character:\r
60 // valid ascii, valid efi control char, valid text graphics.\r
61 //\r
62 for (; *WString != CHAR_NULL; WString++) {\r
63\r
64 if ( !(TerminalIsValidAscii (*WString) ||\r
65 TerminalIsValidEfiCntlChar (*WString) ||\r
66 TerminalIsValidTextGraphics (*WString, &GraphicChar, NULL) )) {\r
67\r
68 return EFI_UNSUPPORTED;\r
69 }\r
70 }\r
71\r
72 return EFI_SUCCESS;\r
73}\r