\r
}\r
\r
+/**\r
+ This function will connect console device except ConIn base on the console\r
+ device variable ConOut and ErrOut.\r
+\r
+ @retval EFI_SUCCESS At least one of the ConOut device have\r
+ been connected success.\r
+ @retval EFI_STATUS Return the status of BdsLibConnectConsoleVariable ().\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+BdsLibConnectAllDefaultConsolesWithOutConIn (\r
+ VOID\r
+ )\r
+{\r
+ EFI_STATUS Status;\r
+ BOOLEAN SystemTableUpdated;\r
+\r
+ //\r
+ // Connect all default console variables except ConIn\r
+ //\r
+\r
+ //\r
+ // It seems impossible not to have any ConOut device on platform,\r
+ // so we check the status here.\r
+ //\r
+ Status = BdsLibConnectConsoleVariable (L"ConOut");\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+\r
+ //\r
+ // Insert the performance probe for Console Out\r
+ //\r
+ PERF_START (NULL, "ConOut", "BDS", 1);\r
+ PERF_END (NULL, "ConOut", "BDS", 0);\r
+\r
+ //\r
+ // The _ModuleEntryPoint err out var is legal.\r
+ //\r
+ BdsLibConnectConsoleVariable (L"ErrOut");\r
+\r
+ SystemTableUpdated = FALSE;\r
+ //\r
+ // Fill console handles in System Table if no console device assignd.\r
+ //\r
+ if (UpdateSystemTableConsole (L"ConOut", &gEfiSimpleTextOutProtocolGuid, &gST->ConsoleOutHandle, (VOID **) &gST->ConOut)) {\r
+ SystemTableUpdated = TRUE;\r
+ }\r
+ if (UpdateSystemTableConsole (L"ErrOut", &gEfiSimpleTextOutProtocolGuid, &gST->StandardErrorHandle, (VOID **) &gST->StdErr)) {\r
+ SystemTableUpdated = TRUE;\r
+ }\r
+\r
+ if (SystemTableUpdated) {\r
+ //\r
+ // Update the CRC32 in the EFI System Table header\r
+ //\r
+ gST->Hdr.CRC32 = 0;\r
+ gBS->CalculateCrc32 (\r
+ (UINT8 *) &gST->Hdr,\r
+ gST->Hdr.HeaderSize,\r
+ &gST->Hdr.CRC32\r
+ );\r
+ }\r
+\r
+ return EFI_SUCCESS;\r
+\r
+}\r
+\r
/**\r
Convert a *.BMP graphics image to a GOP blt buffer. If a NULL Blt buffer\r
is passed in a GopBlt buffer will be allocated by this routine. If a GopBlt\r