};\r
\r
\r
+CHAR16 *mSerialConsoleNames[] = {\r
+ L"PC-ANSI Serial Console",\r
+ L"VT-100 Serial Console",\r
+ L"VT-100+ Serial Console",\r
+ L"VT-UTF8 Serial Console",\r
+ L"Tty Terminal Serial Console"\r
+};\r
+\r
TERMINAL_DEV mTerminalDevTemplate = {\r
TERMINAL_DEV_SIGNATURE,\r
NULL,\r
return EFI_SUCCESS;\r
}\r
\r
+/**\r
+ Initialize the controller name table.\r
+\r
+ @param TerminalType The terminal type.\r
+ @param ControllerNameTable The controller name table.\r
+\r
+ @retval EFI_SUCCESS The controller name table is initialized successfully.\r
+ @retval others Return status of AddUnicodeString2 ().\r
+**/\r
+EFI_STATUS\r
+InitializeControllerNameTable (\r
+ TERMINAL_TYPE TerminalType,\r
+ EFI_UNICODE_STRING_TABLE **ControllerNameTable\r
+)\r
+{\r
+ EFI_STATUS Status;\r
+ EFI_UNICODE_STRING_TABLE *Table;\r
+\r
+ ASSERT (TerminalType < ARRAY_SIZE (mTerminalType));\r
+ Table = NULL;\r
+ Status = AddUnicodeString2 (\r
+ "eng",\r
+ gTerminalComponentName.SupportedLanguages,\r
+ &Table,\r
+ mSerialConsoleNames[TerminalType],\r
+ TRUE\r
+ );\r
+ if (!EFI_ERROR (Status)) {\r
+ Status = AddUnicodeString2 (\r
+ "en",\r
+ gTerminalComponentName2.SupportedLanguages,\r
+ &Table,\r
+ mSerialConsoleNames[TerminalType],\r
+ FALSE\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ FreeUnicodeStringTable (Table);\r
+ }\r
+ }\r
+ if (!EFI_ERROR (Status)) {\r
+ *ControllerNameTable = Table;\r
+ }\r
+ return Status;\r
+}\r
+\r
/**\r
Start this driver on Controller by opening a Serial IO protocol,\r
reading Device Path, and creating a child handle with a Simple Text In,\r
//\r
// Build the component name for the child device\r
//\r
- TerminalDevice->ControllerNameTable = NULL;\r
- switch (TerminalDevice->TerminalType) {\r
- case TerminalTypePcAnsi:\r
- AddUnicodeString2 (\r
- "eng",\r
- gTerminalComponentName.SupportedLanguages,\r
- &TerminalDevice->ControllerNameTable,\r
- (CHAR16 *)L"PC-ANSI Serial Console",\r
- TRUE\r
- );\r
- AddUnicodeString2 (\r
- "en",\r
- gTerminalComponentName2.SupportedLanguages,\r
- &TerminalDevice->ControllerNameTable,\r
- (CHAR16 *)L"PC-ANSI Serial Console",\r
- FALSE\r
- );\r
-\r
- break;\r
-\r
- case TerminalTypeVt100:\r
- AddUnicodeString2 (\r
- "eng",\r
- gTerminalComponentName.SupportedLanguages,\r
- &TerminalDevice->ControllerNameTable,\r
- (CHAR16 *)L"VT-100 Serial Console",\r
- TRUE\r
- );\r
- AddUnicodeString2 (\r
- "en",\r
- gTerminalComponentName2.SupportedLanguages,\r
- &TerminalDevice->ControllerNameTable,\r
- (CHAR16 *)L"VT-100 Serial Console",\r
- FALSE\r
- );\r
-\r
- break;\r
-\r
- case TerminalTypeVt100Plus:\r
- AddUnicodeString2 (\r
- "eng",\r
- gTerminalComponentName.SupportedLanguages,\r
- &TerminalDevice->ControllerNameTable,\r
- (CHAR16 *)L"VT-100+ Serial Console",\r
- TRUE\r
- );\r
- AddUnicodeString2 (\r
- "en",\r
- gTerminalComponentName2.SupportedLanguages,\r
- &TerminalDevice->ControllerNameTable,\r
- (CHAR16 *)L"VT-100+ Serial Console",\r
- FALSE\r
- );\r
-\r
- break;\r
-\r
- case TerminalTypeVtUtf8:\r
- AddUnicodeString2 (\r
- "eng",\r
- gTerminalComponentName.SupportedLanguages,\r
- &TerminalDevice->ControllerNameTable,\r
- (CHAR16 *)L"VT-UTF8 Serial Console",\r
- TRUE\r
- );\r
- AddUnicodeString2 (\r
- "en",\r
- gTerminalComponentName2.SupportedLanguages,\r
- &TerminalDevice->ControllerNameTable,\r
- (CHAR16 *)L"VT-UTF8 Serial Console",\r
- FALSE\r
- );\r
-\r
- break;\r
-\r
- case TerminalTypeTtyTerm:\r
- AddUnicodeString2 (\r
- "eng",\r
- gTerminalComponentName.SupportedLanguages,\r
- &TerminalDevice->ControllerNameTable,\r
- (CHAR16 *)L"Tty Terminal Serial Console",\r
- TRUE\r
- );\r
- AddUnicodeString2 (\r
- "en",\r
- gTerminalComponentName2.SupportedLanguages,\r
- &TerminalDevice->ControllerNameTable,\r
- (CHAR16 *)L"Tty Terminal Serial Console",\r
- FALSE\r
- );\r
-\r
- break;\r
+ Status = InitializeControllerNameTable (TerminalDevice->TerminalType, &TerminalDevice->ControllerNameTable);\r
+ if (EFI_ERROR (Status)) {\r
+ goto Error;\r
}\r
\r
//\r