/** @file\r
FrontPage routines to handle the callbacks and browser calls\r
\r
-Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR>\r
-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
+Copyright (c) 2004 - 2017, Intel Corporation. All rights reserved.<BR>\r
+(C) Copyright 2018 Hewlett Packard Enterprise Development LP<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
**/\r
\r
#include "FrontPage.h"\r
#include "FrontPageCustomizedUi.h"\r
\r
-#define MAX_STRING_LEN 200\r
+#define MAX_STRING_LEN 200\r
\r
-EFI_GUID mFrontPageGuid = FRONT_PAGE_FORMSET_GUID;\r
+EFI_GUID mFrontPageGuid = FRONT_PAGE_FORMSET_GUID;\r
\r
-BOOLEAN gConnectAllHappened = FALSE;\r
-BOOLEAN mFeaturerSwitch = TRUE;\r
-BOOLEAN mResetRequired = FALSE;\r
+BOOLEAN mResetRequired = FALSE;\r
\r
-EFI_FORM_BROWSER2_PROTOCOL *gFormBrowser2;\r
-CHAR8 *mLanguageString;\r
-BOOLEAN mModeInitialized = FALSE;\r
+EFI_FORM_BROWSER2_PROTOCOL *gFormBrowser2;\r
+CHAR8 *mLanguageString;\r
+BOOLEAN mModeInitialized = FALSE;\r
//\r
// Boot video resolution and text mode.\r
//\r
-UINT32 mBootHorizontalResolution = 0;\r
-UINT32 mBootVerticalResolution = 0;\r
-UINT32 mBootTextModeColumn = 0;\r
-UINT32 mBootTextModeRow = 0;\r
+UINT32 mBootHorizontalResolution = 0;\r
+UINT32 mBootVerticalResolution = 0;\r
+UINT32 mBootTextModeColumn = 0;\r
+UINT32 mBootTextModeRow = 0;\r
//\r
// BIOS setup video resolution and text mode.\r
//\r
-UINT32 mSetupTextModeColumn = 0;\r
-UINT32 mSetupTextModeRow = 0;\r
-UINT32 mSetupHorizontalResolution = 0;\r
-UINT32 mSetupVerticalResolution = 0;\r
+UINT32 mSetupTextModeColumn = 0;\r
+UINT32 mSetupTextModeRow = 0;\r
+UINT32 mSetupHorizontalResolution = 0;\r
+UINT32 mSetupVerticalResolution = 0;\r
\r
FRONT_PAGE_CALLBACK_DATA gFrontPagePrivate = {\r
FRONT_PAGE_CALLBACK_DATA_SIGNATURE,\r
HARDWARE_DEVICE_PATH,\r
HW_VENDOR_DP,\r
{\r
- (UINT8) (sizeof (VENDOR_DEVICE_PATH)),\r
- (UINT8) ((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
+ (UINT8)(sizeof (VENDOR_DEVICE_PATH)),\r
+ (UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)\r
}\r
},\r
//\r
// {8E6D99EE-7531-48f8-8745-7F6144468FF2}\r
//\r
- { 0x8e6d99ee, 0x7531, 0x48f8, { 0x87, 0x45, 0x7f, 0x61, 0x44, 0x46, 0x8f, 0xf2 } }\r
+ { 0x8e6d99ee, 0x7531, 0x48f8, { 0x87, 0x45, 0x7f, 0x61, 0x44, 0x46, 0x8f, 0xf2 }\r
+ }\r
},\r
{\r
END_DEVICE_PATH_TYPE,\r
END_ENTIRE_DEVICE_PATH_SUBTYPE,\r
{\r
- (UINT8) (END_DEVICE_PATH_LENGTH),\r
- (UINT8) ((END_DEVICE_PATH_LENGTH) >> 8)\r
+ (UINT8)(END_DEVICE_PATH_LENGTH),\r
+ (UINT8)((END_DEVICE_PATH_LENGTH) >> 8)\r
}\r
}\r
};\r
EFI_STATUS\r
EFIAPI\r
FakeExtractConfig (\r
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
- IN CONST EFI_STRING Request,\r
- OUT EFI_STRING *Progress,\r
- OUT EFI_STRING *Results\r
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
+ IN CONST EFI_STRING Request,\r
+ OUT EFI_STRING *Progress,\r
+ OUT EFI_STRING *Results\r
)\r
{\r
- if (Progress == NULL || Results == NULL) {\r
+ if ((Progress == NULL) || (Results == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
+\r
*Progress = Request;\r
return EFI_NOT_FOUND;\r
}\r
EFI_STATUS\r
EFIAPI\r
FakeRouteConfig (\r
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
- IN CONST EFI_STRING Configuration,\r
- OUT EFI_STRING *Progress\r
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
+ IN CONST EFI_STRING Configuration,\r
+ OUT EFI_STRING *Progress\r
)\r
{\r
- if (Configuration == NULL || Progress == NULL) {\r
+ if ((Configuration == NULL) || (Progress == NULL)) {\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
+ *Progress = Configuration;\r
+\r
return EFI_NOT_FOUND;\r
}\r
\r
EFI_STATUS\r
EFIAPI\r
FrontPageCallback (\r
- IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
- IN EFI_BROWSER_ACTION Action,\r
- IN EFI_QUESTION_ID QuestionId,\r
- IN UINT8 Type,\r
- IN EFI_IFR_TYPE_VALUE *Value,\r
- OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest\r
+ IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This,\r
+ IN EFI_BROWSER_ACTION Action,\r
+ IN EFI_QUESTION_ID QuestionId,\r
+ IN UINT8 Type,\r
+ IN EFI_IFR_TYPE_VALUE *Value,\r
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest\r
)\r
{\r
return UiFrontPageCallbackHandler (gFrontPagePrivate.HiiHandle, Action, QuestionId, Type, Value, ActionRequest);\r
VOID\r
)\r
{\r
- VOID *StartOpCodeHandle;\r
- VOID *EndOpCodeHandle;\r
- EFI_IFR_GUID_LABEL *StartGuidLabel;\r
- EFI_IFR_GUID_LABEL *EndGuidLabel;\r
+ VOID *StartOpCodeHandle;\r
+ VOID *EndOpCodeHandle;\r
+ EFI_IFR_GUID_LABEL *StartGuidLabel;\r
+ EFI_IFR_GUID_LABEL *EndGuidLabel;\r
\r
//\r
// Allocate space for creation of UpdateData Buffer\r
//\r
// Create Hii Extend Label OpCode as the start opcode\r
//\r
- StartGuidLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
+ StartGuidLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (StartOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
StartGuidLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
- StartGuidLabel->Number = LABEL_FRANTPAGE_INFORMATION;\r
+ StartGuidLabel->Number = LABEL_FRONTPAGE_INFORMATION;\r
//\r
// Create Hii Extend Label OpCode as the end opcode\r
//\r
- EndGuidLabel = (EFI_IFR_GUID_LABEL *) HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
+ EndGuidLabel = (EFI_IFR_GUID_LABEL *)HiiCreateGuidOpCode (EndOpCodeHandle, &gEfiIfrTianoGuid, NULL, sizeof (EFI_IFR_GUID_LABEL));\r
EndGuidLabel->ExtendOpCode = EFI_IFR_EXTEND_OP_LABEL;\r
EndGuidLabel->Number = LABEL_END;\r
\r
//\r
- //Updata Front Page form\r
+ // Updata Front Page form\r
//\r
UiCustomizeFrontPage (\r
gFrontPagePrivate.HiiHandle,\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
+\r
//\r
// Locate Hii relative protocols\r
//\r
- Status = gBS->LocateProtocol (&gEfiFormBrowser2ProtocolGuid, NULL, (VOID **) &gFormBrowser2);\r
+ Status = gBS->LocateProtocol (&gEfiFormBrowser2ProtocolGuid, NULL, (VOID **)&gFormBrowser2);\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
// Install Device Path Protocol and Config Access protocol to driver handle\r
//\r
gFrontPagePrivate.DriverHandle = NULL;\r
- Status = gBS->InstallMultipleProtocolInterfaces (\r
- &gFrontPagePrivate.DriverHandle,\r
- &gEfiDevicePathProtocolGuid,\r
- &mFrontPageHiiVendorDevicePath,\r
- &gEfiHiiConfigAccessProtocolGuid,\r
- &gFrontPagePrivate.ConfigAccess,\r
- NULL\r
- );\r
+ Status = gBS->InstallMultipleProtocolInterfaces (\r
+ &gFrontPagePrivate.DriverHandle,\r
+ &gEfiDevicePathProtocolGuid,\r
+ &mFrontPageHiiVendorDevicePath,\r
+ &gEfiHiiConfigAccessProtocolGuid,\r
+ &gFrontPagePrivate.ConfigAccess,\r
+ NULL\r
+ );\r
ASSERT_EFI_ERROR (Status);\r
\r
//\r
ASSERT (gFrontPagePrivate.HiiHandle != NULL);\r
\r
//\r
- //Updata Front Page banner strings\r
+ // Updata Front Page banner strings\r
//\r
UpdateFrontPageBannerStrings ();\r
\r
//\r
// Update front page menus.\r
//\r
- UpdateFrontPageForm();\r
+ UpdateFrontPageForm ();\r
\r
return Status;\r
}\r
);\r
\r
ActionRequest = EFI_BROWSER_ACTION_REQUEST_NONE;\r
- Status = gFormBrowser2->SendForm (\r
- gFormBrowser2,\r
- &gFrontPagePrivate.HiiHandle,\r
- 1,\r
- &mFrontPageGuid,\r
- 0,\r
- NULL,\r
- &ActionRequest\r
- );\r
+ Status = gFormBrowser2->SendForm (\r
+ gFormBrowser2,\r
+ &gFrontPagePrivate.HiiHandle,\r
+ 1,\r
+ &mFrontPageGuid,\r
+ 0,\r
+ NULL,\r
+ &ActionRequest\r
+ );\r
//\r
// Check whether user change any option setting which needs a reset to be effective\r
//\r
\r
**/\r
VOID\r
-FreeFrontPage(\r
+FreeFrontPage (\r
VOID\r
)\r
{\r
- EFI_STATUS Status;\r
+ EFI_STATUS Status;\r
+\r
Status = gBS->UninstallMultipleProtocolInterfaces (\r
gFrontPagePrivate.DriverHandle,\r
&gEfiDevicePathProtocolGuid,\r
**/\r
VOID\r
ConvertProcessorToString (\r
- IN UINT16 ProcessorFrequency,\r
- IN UINT16 Base10Exponent,\r
- OUT CHAR16 **String\r
+ IN UINT16 ProcessorFrequency,\r
+ IN UINT16 Base10Exponent,\r
+ OUT CHAR16 **String\r
)\r
{\r
CHAR16 *StringBuffer;\r
\r
if (Base10Exponent >= 6) {\r
FreqMhz = ProcessorFrequency;\r
- for (Index = 0; Index < (UINTN) (Base10Exponent - 6); Index++) {\r
+ for (Index = 0; Index < (UINT32)Base10Exponent - 6; Index++) {\r
FreqMhz *= 10;\r
}\r
} else {\r
FreqMhz = 0;\r
}\r
- DestMax = 0x20 / sizeof (CHAR16);\r
+\r
+ DestMax = 0x20 / sizeof (CHAR16);\r
StringBuffer = AllocateZeroPool (0x20);\r
ASSERT (StringBuffer != NULL);\r
- Index = UnicodeValueToString (StringBuffer, LEFT_JUSTIFY, FreqMhz / 1000, 3);\r
+ UnicodeValueToStringS (StringBuffer, sizeof (CHAR16) * DestMax, LEFT_JUSTIFY, FreqMhz / 1000, 3);\r
+ Index = StrnLenS (StringBuffer, DestMax);\r
StrCatS (StringBuffer, DestMax, L".");\r
- UnicodeValueToString (StringBuffer + Index + 1, PREFIX_ZERO, (FreqMhz % 1000) / 10, 2);\r
+ UnicodeValueToStringS (\r
+ StringBuffer + Index + 1,\r
+ sizeof (CHAR16) * (DestMax - (Index + 1)),\r
+ PREFIX_ZERO,\r
+ (FreqMhz % 1000) / 10,\r
+ 2\r
+ );\r
StrCatS (StringBuffer, DestMax, L" GHz");\r
- *String = (CHAR16 *) StringBuffer;\r
- return ;\r
+ *String = (CHAR16 *)StringBuffer;\r
+ return;\r
}\r
\r
-\r
/**\r
Convert Memory Size to a string.\r
\r
**/\r
VOID\r
ConvertMemorySizeToString (\r
- IN UINT32 MemorySize,\r
- OUT CHAR16 **String\r
+ IN UINT32 MemorySize,\r
+ OUT CHAR16 **String\r
)\r
{\r
CHAR16 *StringBuffer;\r
\r
StringBuffer = AllocateZeroPool (0x24);\r
ASSERT (StringBuffer != NULL);\r
- UnicodeValueToString (StringBuffer, LEFT_JUSTIFY, MemorySize, 10);\r
+ UnicodeValueToStringS (StringBuffer, 0x24, LEFT_JUSTIFY, MemorySize, 10);\r
StrCatS (StringBuffer, 0x24 / sizeof (CHAR16), L" MB RAM");\r
\r
- *String = (CHAR16 *) StringBuffer;\r
+ *String = (CHAR16 *)StringBuffer;\r
\r
- return ;\r
+ return;\r
}\r
\r
/**\r
**/\r
EFI_STATUS\r
GetOptionalStringByIndex (\r
- IN CHAR8 *OptionalStrStart,\r
- IN UINT8 Index,\r
- OUT CHAR16 **String\r
+ IN CHAR8 *OptionalStrStart,\r
+ IN UINT8 Index,\r
+ OUT CHAR16 **String\r
)\r
{\r
- UINTN StrSize;\r
+ UINTN StrSize;\r
\r
if (Index == 0) {\r
*String = AllocateZeroPool (sizeof (CHAR16));\r
*String = GetStringById (STRING_TOKEN (STR_MISSING_STRING));\r
} else {\r
*String = AllocatePool (StrSize * sizeof (CHAR16));\r
- AsciiStrToUnicodeStr (OptionalStrStart, *String);\r
+ AsciiStrToUnicodeStrS (OptionalStrStart, *String, StrSize);\r
}\r
\r
return EFI_SUCCESS;\r
}\r
\r
-\r
/**\r
\r
Update the banner information for the Front Page based on Smbios information.\r
VOID\r
)\r
{\r
- UINT8 StrIndex;\r
- CHAR16 *NewString;\r
- CHAR16 *FirmwareVersionString;\r
- EFI_STATUS Status;\r
- EFI_SMBIOS_HANDLE SmbiosHandle;\r
- EFI_SMBIOS_PROTOCOL *Smbios;\r
- SMBIOS_TABLE_TYPE0 *Type0Record;\r
- SMBIOS_TABLE_TYPE1 *Type1Record;\r
- SMBIOS_TABLE_TYPE4 *Type4Record;\r
- SMBIOS_TABLE_TYPE19 *Type19Record;\r
- EFI_SMBIOS_TABLE_HEADER *Record;\r
- UINT64 InstalledMemory;\r
- BOOLEAN FoundCpu;\r
+ UINT8 StrIndex;\r
+ CHAR16 *NewString;\r
+ CHAR16 *FirmwareVersionString;\r
+ EFI_STATUS Status;\r
+ EFI_SMBIOS_HANDLE SmbiosHandle;\r
+ EFI_SMBIOS_PROTOCOL *Smbios;\r
+ SMBIOS_TABLE_TYPE0 *Type0Record;\r
+ SMBIOS_TABLE_TYPE1 *Type1Record;\r
+ SMBIOS_TABLE_TYPE4 *Type4Record;\r
+ SMBIOS_TABLE_TYPE19 *Type19Record;\r
+ EFI_SMBIOS_TABLE_HEADER *Record;\r
+ UINT64 InstalledMemory;\r
+ BOOLEAN FoundCpu;\r
\r
InstalledMemory = 0;\r
- FoundCpu = 0;\r
+ FoundCpu = 0;\r
\r
//\r
// Update default banner string.\r
//\r
// Update Front Page banner strings base on SmBios Table.\r
//\r
- Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID **) &Smbios);\r
+ Status = gBS->LocateProtocol (&gEfiSmbiosProtocolGuid, NULL, (VOID **)&Smbios);\r
if (EFI_ERROR (Status)) {\r
//\r
// Smbios protocol not found, get the default value.\r
}\r
\r
SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;\r
- Status = Smbios->GetNext (Smbios, &SmbiosHandle, NULL, &Record, NULL);\r
- while (!EFI_ERROR(Status)) {\r
- if (Record->Type == EFI_SMBIOS_TYPE_BIOS_INFORMATION) {\r
- Type0Record = (SMBIOS_TABLE_TYPE0 *) Record;\r
- StrIndex = Type0Record->BiosVersion;\r
- GetOptionalStringByIndex ((CHAR8*)((UINT8*)Type0Record + Type0Record->Hdr.Length), StrIndex, &NewString);\r
-\r
- FirmwareVersionString = (CHAR16 *) PcdGetPtr (PcdFirmwareVersionString);\r
+ Status = Smbios->GetNext (Smbios, &SmbiosHandle, NULL, &Record, NULL);\r
+ while (!EFI_ERROR (Status)) {\r
+ if (Record->Type == SMBIOS_TYPE_BIOS_INFORMATION) {\r
+ Type0Record = (SMBIOS_TABLE_TYPE0 *)Record;\r
+ StrIndex = Type0Record->BiosVersion;\r
+ GetOptionalStringByIndex ((CHAR8 *)((UINT8 *)Type0Record + Type0Record->Hdr.Length), StrIndex, &NewString);\r
+\r
+ FirmwareVersionString = (CHAR16 *)PcdGetPtr (PcdFirmwareVersionString);\r
if (*FirmwareVersionString != 0x0000 ) {\r
FreePool (NewString);\r
- NewString = (CHAR16 *) PcdGetPtr (PcdFirmwareVersionString);\r
+ NewString = (CHAR16 *)PcdGetPtr (PcdFirmwareVersionString);\r
UiCustomizeFrontPageBanner (3, TRUE, &NewString);\r
HiiSetString (gFrontPagePrivate.HiiHandle, STRING_TOKEN (STR_FRONT_PAGE_BIOS_VERSION), NewString, NULL);\r
} else {\r
}\r
}\r
\r
- if (Record->Type == EFI_SMBIOS_TYPE_SYSTEM_INFORMATION) {\r
- Type1Record = (SMBIOS_TABLE_TYPE1 *) Record;\r
- StrIndex = Type1Record->ProductName;\r
- GetOptionalStringByIndex ((CHAR8*)((UINT8*)Type1Record + Type1Record->Hdr.Length), StrIndex, &NewString);\r
+ if (Record->Type == SMBIOS_TYPE_SYSTEM_INFORMATION) {\r
+ Type1Record = (SMBIOS_TABLE_TYPE1 *)Record;\r
+ StrIndex = Type1Record->ProductName;\r
+ GetOptionalStringByIndex ((CHAR8 *)((UINT8 *)Type1Record + Type1Record->Hdr.Length), StrIndex, &NewString);\r
UiCustomizeFrontPageBanner (1, TRUE, &NewString);\r
HiiSetString (gFrontPagePrivate.HiiHandle, STRING_TOKEN (STR_FRONT_PAGE_COMPUTER_MODEL), NewString, NULL);\r
FreePool (NewString);\r
}\r
\r
- if ((Record->Type == EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION) && !FoundCpu) {\r
- Type4Record = (SMBIOS_TABLE_TYPE4 *) Record;\r
+ if ((Record->Type == SMBIOS_TYPE_PROCESSOR_INFORMATION) && !FoundCpu) {\r
+ Type4Record = (SMBIOS_TABLE_TYPE4 *)Record;\r
//\r
// The information in the record should be only valid when the CPU Socket is populated.\r
//\r
if ((Type4Record->Status & SMBIOS_TYPE4_CPU_SOCKET_POPULATED) == SMBIOS_TYPE4_CPU_SOCKET_POPULATED) {\r
StrIndex = Type4Record->ProcessorVersion;\r
- GetOptionalStringByIndex ((CHAR8*)((UINT8*)Type4Record + Type4Record->Hdr.Length), StrIndex, &NewString);\r
+ GetOptionalStringByIndex ((CHAR8 *)((UINT8 *)Type4Record + Type4Record->Hdr.Length), StrIndex, &NewString);\r
UiCustomizeFrontPageBanner (2, TRUE, &NewString);\r
HiiSetString (gFrontPagePrivate.HiiHandle, STRING_TOKEN (STR_FRONT_PAGE_CPU_MODEL), NewString, NULL);\r
FreePool (NewString);\r
\r
- ConvertProcessorToString(Type4Record->CurrentSpeed, 6, &NewString);\r
+ ConvertProcessorToString (Type4Record->CurrentSpeed, 6, &NewString);\r
UiCustomizeFrontPageBanner (2, FALSE, &NewString);\r
HiiSetString (gFrontPagePrivate.HiiHandle, STRING_TOKEN (STR_FRONT_PAGE_CPU_SPEED), NewString, NULL);\r
FreePool (NewString);\r
}\r
}\r
\r
- if ( Record->Type == EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS ) {\r
- Type19Record = (SMBIOS_TABLE_TYPE19 *) Record;\r
+ if ( Record->Type == SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS ) {\r
+ Type19Record = (SMBIOS_TABLE_TYPE19 *)Record;\r
if (Type19Record->StartingAddress != 0xFFFFFFFF ) {\r
- InstalledMemory += RShiftU64(Type19Record->EndingAddress -\r
- Type19Record->StartingAddress + 1, 10);\r
+ InstalledMemory += RShiftU64 (\r
+ Type19Record->EndingAddress -\r
+ Type19Record->StartingAddress + 1,\r
+ 10\r
+ );\r
} else {\r
- InstalledMemory += RShiftU64(Type19Record->ExtendedEndingAddress -\r
- Type19Record->ExtendedStartingAddress + 1, 20);\r
+ InstalledMemory += RShiftU64 (\r
+ Type19Record->ExtendedEndingAddress -\r
+ Type19Record->ExtendedStartingAddress + 1,\r
+ 20\r
+ );\r
}\r
}\r
\r
//\r
// Now update the total installed RAM size\r
//\r
- ConvertMemorySizeToString ((UINT32)InstalledMemory, &NewString );\r
+ ConvertMemorySizeToString ((UINT32)InstalledMemory, &NewString);\r
UiCustomizeFrontPageBanner (3, FALSE, &NewString);\r
HiiSetString (gFrontPagePrivate.HiiHandle, STRING_TOKEN (STR_FRONT_PAGE_MEMORY_SIZE), NewString, NULL);\r
FreePool (NewString);\r
\r
**/\r
EFI_STATUS\r
-EFIAPI\r
-BdsSetConsoleMode (\r
+UiSetConsoleMode (\r
BOOLEAN IsSetupMode\r
)\r
{\r
Status = gBS->HandleProtocol (\r
gST->ConsoleOutHandle,\r
&gEfiGraphicsOutputProtocolGuid,\r
- (VOID**)&GraphicsOutput\r
+ (VOID **)&GraphicsOutput\r
);\r
if (EFI_ERROR (Status)) {\r
GraphicsOutput = NULL;\r
Status = gBS->HandleProtocol (\r
gST->ConsoleOutHandle,\r
&gEfiSimpleTextOutProtocolGuid,\r
- (VOID**)&SimpleTextOut\r
+ (VOID **)&SimpleTextOut\r
);\r
if (EFI_ERROR (Status)) {\r
SimpleTextOut = NULL;\r
\r
if (IsSetupMode) {\r
//\r
- // The requried resolution and text mode is setup mode.\r
+ // The required resolution and text mode is setup mode.\r
//\r
NewHorizontalResolution = mSetupHorizontalResolution;\r
NewVerticalResolution = mSetupVerticalResolution;\r
}\r
\r
if (GraphicsOutput != NULL) {\r
- MaxGopMode = GraphicsOutput->Mode->MaxMode;\r
+ MaxGopMode = GraphicsOutput->Mode->MaxMode;\r
}\r
\r
if (SimpleTextOut != NULL) {\r
//\r
for (ModeNumber = 0; ModeNumber < MaxGopMode; ModeNumber++) {\r
Status = GraphicsOutput->QueryMode (\r
- GraphicsOutput,\r
- ModeNumber,\r
- &SizeOfInfo,\r
- &Info\r
- );\r
+ GraphicsOutput,\r
+ ModeNumber,\r
+ &SizeOfInfo,\r
+ &Info\r
+ );\r
if (!EFI_ERROR (Status)) {\r
if ((Info->HorizontalResolution == NewHorizontalResolution) &&\r
- (Info->VerticalResolution == NewVerticalResolution)) {\r
+ (Info->VerticalResolution == NewVerticalResolution))\r
+ {\r
if ((GraphicsOutput->Mode->Info->HorizontalResolution == NewHorizontalResolution) &&\r
- (GraphicsOutput->Mode->Info->VerticalResolution == NewVerticalResolution)) {\r
+ (GraphicsOutput->Mode->Info->VerticalResolution == NewVerticalResolution))\r
+ {\r
//\r
// Current resolution is same with required resolution, check if text mode need be set\r
//\r
Status = SimpleTextOut->QueryMode (SimpleTextOut, SimpleTextOut->Mode->Mode, &CurrentColumn, &CurrentRow);\r
ASSERT_EFI_ERROR (Status);\r
- if (CurrentColumn == NewColumns && CurrentRow == NewRows) {\r
+ if ((CurrentColumn == NewColumns) && (CurrentRow == NewRows)) {\r
//\r
// If current text mode is same with required text mode. Do nothing\r
//\r
return EFI_SUCCESS;\r
} else {\r
//\r
- // If current text mode is different from requried text mode. Set new video mode\r
+ // If current text mode is different from required text mode. Set new video mode\r
//\r
for (Index = 0; Index < MaxTextMode; Index++) {\r
Status = SimpleTextOut->QueryMode (SimpleTextOut, Index, &CurrentColumn, &CurrentRow);\r
- if (!EFI_ERROR(Status)) {\r
+ if (!EFI_ERROR (Status)) {\r
if ((CurrentColumn == NewColumns) && (CurrentRow == NewRows)) {\r
//\r
// Required text mode is supported, set it.\r
}\r
}\r
}\r
+\r
if (Index == MaxTextMode) {\r
//\r
- // If requried text mode is not supported, return error.\r
+ // If required text mode is not supported, return error.\r
//\r
FreePool (Info);\r
return EFI_UNSUPPORTED;\r
}\r
}\r
}\r
+\r
FreePool (Info);\r
}\r
}\r
// Locate all the handles with GOP protocol and reconnect it.\r
//\r
Status = gBS->LocateHandleBuffer (\r
- ByProtocol,\r
- &gEfiSimpleTextOutProtocolGuid,\r
- NULL,\r
- &HandleCount,\r
- &HandleBuffer\r
- );\r
+ ByProtocol,\r
+ &gEfiSimpleTextOutProtocolGuid,\r
+ NULL,\r
+ &HandleCount,\r
+ &HandleBuffer\r
+ );\r
if (!EFI_ERROR (Status)) {\r
for (Index = 0; Index < HandleCount; Index++) {\r
gBS->DisconnectController (HandleBuffer[Index], NULL, NULL);\r
}\r
+\r
for (Index = 0; Index < HandleCount; Index++) {\r
gBS->ConnectController (HandleBuffer[Index], NULL, NULL, TRUE);\r
}\r
+\r
if (HandleBuffer != NULL) {\r
FreePool (HandleBuffer);\r
}\r
IN EFI_SYSTEM_TABLE *SystemTable\r
)\r
{\r
- EFI_HII_HANDLE HiiHandle;\r
- EFI_STATUS Status;\r
- EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
- EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *SimpleTextOut;\r
- UINTN BootTextColumn;\r
- UINTN BootTextRow;\r
+ EFI_HII_HANDLE HiiHandle;\r
+ EFI_STATUS Status;\r
+ EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput;\r
+ EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL *SimpleTextOut;\r
+ UINTN BootTextColumn;\r
+ UINTN BootTextRow;\r
\r
if (!mModeInitialized) {\r
//\r
Status = gBS->HandleProtocol (\r
gST->ConsoleOutHandle,\r
&gEfiGraphicsOutputProtocolGuid,\r
- (VOID**)&GraphicsOutput\r
+ (VOID **)&GraphicsOutput\r
);\r
if (EFI_ERROR (Status)) {\r
GraphicsOutput = NULL;\r
Status = gBS->HandleProtocol (\r
gST->ConsoleOutHandle,\r
&gEfiSimpleTextOutProtocolGuid,\r
- (VOID**)&SimpleTextOut\r
+ (VOID **)&SimpleTextOut\r
);\r
if (EFI_ERROR (Status)) {\r
SimpleTextOut = NULL;\r
mSetupTextModeColumn = PcdGet32 (PcdSetupConOutColumn);\r
mSetupTextModeRow = PcdGet32 (PcdSetupConOutRow);\r
\r
- mModeInitialized = TRUE;\r
+ mModeInitialized = TRUE;\r
}\r
\r
gBS->SetWatchdogTimer (0x0000, 0x0000, 0x0000, NULL);\r
\r
InitializeStringSupport ();\r
\r
- BdsSetConsoleMode (TRUE);\r
+ UiSetConsoleMode (TRUE);\r
UiEntry (FALSE);\r
- BdsSetConsoleMode (FALSE);\r
+ UiSetConsoleMode (FALSE);\r
\r
UninitializeStringSupport ();\r
HiiRemovePackages (HiiHandle);\r
VOID\r
EFIAPI\r
UiEntry (\r
- IN BOOLEAN ConnectAllHappened\r
+ IN BOOLEAN ConnectAllHappened\r
)\r
{\r
- EFI_STATUS Status;\r
- EFI_BOOT_LOGO_PROTOCOL *BootLogo;\r
+ EFI_STATUS Status;\r
+ EFI_BOOT_LOGO_PROTOCOL *BootLogo;\r
+\r
+ //\r
+ // Enter Setup page.\r
+ //\r
+ REPORT_STATUS_CODE (\r
+ EFI_PROGRESS_CODE,\r
+ (EFI_SOFTWARE_DXE_BS_DRIVER | EFI_SW_PC_USER_SETUP)\r
+ );\r
\r
//\r
// Indicate if the connect all has been performed before.\r
+ // If has not been performed before, do here.\r
//\r
- if (ConnectAllHappened) {\r
- gConnectAllHappened = TRUE;\r
+ if (!ConnectAllHappened) {\r
+ EfiBootManagerConnectAll ();\r
}\r
\r
//\r
//\r
// Boot Logo is corrupted, report it using Boot Logo protocol.\r
//\r
- Status = gBS->LocateProtocol (&gEfiBootLogoProtocolGuid, NULL, (VOID **) &BootLogo);\r
+ Status = gBS->LocateProtocol (&gEfiBootLogoProtocolGuid, NULL, (VOID **)&BootLogo);\r
if (!EFI_ERROR (Status) && (BootLogo != NULL)) {\r
BootLogo->SetBootLogo (BootLogo, NULL, 0, 0, 0, 0);\r
}\r
}\r
\r
//\r
- //Will leave browser, check any reset required change is applied? if yes, reset system\r
+ // Will leave browser, check any reset required change is applied? if yes, reset system\r
//\r
SetupResetReminder ();\r
}\r
// user change any option setting which needs a reset to be effective, and the reset will be applied according to the user selection.\r
//\r
\r
-\r
-/**\r
- Enable the setup browser reset reminder feature.\r
- This routine is used in platform tip. If the platform policy need the feature, use the routine to enable it.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-EnableResetReminderFeature (\r
- VOID\r
- )\r
-{\r
- mFeaturerSwitch = TRUE;\r
-}\r
-\r
-\r
-/**\r
- Disable the setup browser reset reminder feature.\r
- This routine is used in platform tip. If the platform policy do not want the feature, use the routine to disable it.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-DisableResetReminderFeature (\r
- VOID\r
- )\r
-{\r
- mFeaturerSwitch = FALSE;\r
-}\r
-\r
-\r
/**\r
Record the info that a reset is required.\r
A module boolean variable is used to record whether a reset is required.\r
mResetRequired = TRUE;\r
}\r
\r
-\r
-/**\r
- Record the info that no reset is required.\r
- A module boolean variable is used to record whether a reset is required.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-DisableResetRequired (\r
- VOID\r
- )\r
-{\r
- mResetRequired = FALSE;\r
-}\r
-\r
-\r
-/**\r
- Check whether platform policy enable the reset reminder feature. The default is enabled.\r
-\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-IsResetReminderFeatureEnable (\r
- VOID\r
- )\r
-{\r
- return mFeaturerSwitch;\r
-}\r
-\r
-\r
/**\r
Check if user changed any option setting which needs a system reset to be effective.\r
\r
return mResetRequired;\r
}\r
\r
-\r
/**\r
Check whether a reset is needed, and finish the reset reminder feature.\r
If a reset is needed, Popup a menu to notice user, and finish the feature\r
VOID\r
)\r
{\r
- EFI_INPUT_KEY Key;\r
- CHAR16 *StringBuffer1;\r
- CHAR16 *StringBuffer2;\r
-\r
+ EFI_INPUT_KEY Key;\r
+ CHAR16 *StringBuffer1;\r
+ CHAR16 *StringBuffer2;\r
\r
//\r
- //check any reset required change is applied? if yes, reset system\r
+ // check any reset required change is applied? if yes, reset system\r
//\r
- if (IsResetReminderFeatureEnable ()) {\r
- if (IsResetRequired ()) {\r
-\r
- StringBuffer1 = AllocateZeroPool (MAX_STRING_LEN * sizeof (CHAR16));\r
- ASSERT (StringBuffer1 != NULL);\r
- StringBuffer2 = AllocateZeroPool (MAX_STRING_LEN * sizeof (CHAR16));\r
- ASSERT (StringBuffer2 != NULL);\r
- StrCpyS (StringBuffer1, MAX_STRING_LEN, L"Configuration changed. Reset to apply it Now.");\r
- StrCpyS (StringBuffer2, MAX_STRING_LEN, L"Press ENTER to reset");\r
- //\r
- // Popup a menu to notice user\r
- //\r
- do {\r
- CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, NULL);\r
- } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);\r
+ if (IsResetRequired ()) {\r
+ StringBuffer1 = AllocateZeroPool (MAX_STRING_LEN * sizeof (CHAR16));\r
+ ASSERT (StringBuffer1 != NULL);\r
+ StringBuffer2 = AllocateZeroPool (MAX_STRING_LEN * sizeof (CHAR16));\r
+ ASSERT (StringBuffer2 != NULL);\r
+ StrCpyS (StringBuffer1, MAX_STRING_LEN, L"Configuration changed. Reset to apply it Now.");\r
+ StrCpyS (StringBuffer2, MAX_STRING_LEN, L"Press ENTER to reset");\r
+ //\r
+ // Popup a menu to notice user\r
+ //\r
+ do {\r
+ CreatePopUp (EFI_LIGHTGRAY | EFI_BACKGROUND_BLUE, &Key, StringBuffer1, StringBuffer2, NULL);\r
+ } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);\r
\r
- FreePool (StringBuffer1);\r
- FreePool (StringBuffer2);\r
+ FreePool (StringBuffer1);\r
+ FreePool (StringBuffer2);\r
\r
- gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);\r
- }\r
+ gRT->ResetSystem (EfiResetCold, EFI_SUCCESS, 0, NULL);\r
}\r
}\r
-\r