--- /dev/null
+/** @file\r
+ Provides misc functions upon ansi.\r
+\r
+Copyright (c) 2006, Intel Corporation. <BR>\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution. The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+**/\r
+\r
+\r
+#include "Terminal.h"\r
+\r
+VOID\r
+AnsiRawDataToUnicode (\r
+ IN TERMINAL_DEV *TerminalDevice\r
+ )\r
+{\r
+ UINT8 RawData;\r
+\r
+ //\r
+ // pop the raw data out from the raw fifo,\r
+ // and translate it into unicode, then push\r
+ // the unicode into unicode fifo, until the raw fifo is empty.\r
+ //\r
+ while (!IsRawFiFoEmpty (TerminalDevice)) {\r
+\r
+ RawFiFoRemoveOneKey (TerminalDevice, &RawData);\r
+\r
+ UnicodeFiFoInsertOneKey (TerminalDevice, (UINT16) RawData);\r
+ }\r
+}\r
+\r
+EFI_STATUS\r
+AnsiTestString (\r
+ IN TERMINAL_DEV *TerminalDevice,\r
+ IN CHAR16 *WString\r
+ )\r
+{\r
+ CHAR8 GraphicChar;\r
+\r
+ //\r
+ // support three kind of character:\r
+ // valid ascii, valid efi control char, valid text graphics.\r
+ //\r
+ for (; *WString != CHAR_NULL; WString++) {\r
+\r
+ if ( !(TerminalIsValidAscii (*WString) ||\r
+ TerminalIsValidEfiCntlChar (*WString) ||\r
+ TerminalIsValidTextGraphics (*WString, &GraphicChar, NULL) )) {\r
+\r
+ return EFI_UNSUPPORTED;\r
+ }\r
+ }\r
+\r
+ return EFI_SUCCESS;\r
+}\r