/** @file\r
FrontPage routines to handle the callbacks and browser calls\r
\r
-Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2004 - 2015, 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
//\r
HiiHandle = gFrontPagePrivate.HiiHandle;\r
\r
- CurrentLang = GetEfiGlobalVariable (L"PlatformLang");\r
+ GetEfiGlobalVariable2 (L"PlatformLang", (VOID**)&CurrentLang, NULL);\r
\r
//\r
// Get Support language list from variable.\r
//\r
if (mLanguageString == NULL){\r
- mLanguageString = GetEfiGlobalVariable (L"PlatformLangCodes");\r
+ GetEfiGlobalVariable2 (L"PlatformLangCodes", (VOID**)&mLanguageString, NULL);\r
if (mLanguageString == NULL) {\r
mLanguageString = AllocateCopyPool (\r
AsciiStrSize ((CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultPlatformLangCodes)),\r
StringBuffer = AllocateZeroPool (0x20);\r
ASSERT (StringBuffer != NULL);\r
Index = UnicodeValueToString (StringBuffer, LEFT_JUSTIFY, FreqMhz / 1000, 3);\r
- StrCat (StringBuffer, L".");\r
+ StrCatS (StringBuffer, 0x20 / sizeof (CHAR16), L".");\r
UnicodeValueToString (StringBuffer + Index + 1, PREFIX_ZERO, (FreqMhz % 1000) / 10, 2);\r
- StrCat (StringBuffer, L" GHz");\r
+ StrCatS (StringBuffer, 0x20 / sizeof (CHAR16), L" GHz");\r
*String = (CHAR16 *) StringBuffer;\r
return ;\r
}\r
StringBuffer = AllocateZeroPool (0x20);\r
ASSERT (StringBuffer != NULL);\r
UnicodeValueToString (StringBuffer, LEFT_JUSTIFY, MemorySize, 6);\r
- StrCat (StringBuffer, L" MB RAM");\r
+ StrCatS (StringBuffer, 0x20 / sizeof (CHAR16), L" MB RAM");\r
\r
*String = (CHAR16 *) StringBuffer;\r
\r
NULL,\r
(VOID **) &Smbios\r
);\r
- ASSERT_EFI_ERROR (Status);\r
+ if (!EFI_ERROR (Status)) {\r
+ SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;\r
+ do {\r
+ Status = Smbios->GetNext (Smbios, &SmbiosHandle, NULL, &Record, NULL);\r
+ if (EFI_ERROR(Status)) {\r
+ break;\r
+ }\r
\r
- SmbiosHandle = SMBIOS_HANDLE_PI_RESERVED;\r
- do {\r
- Status = Smbios->GetNext (Smbios, &SmbiosHandle, NULL, &Record, NULL);\r
- if (EFI_ERROR(Status)) {\r
- break;\r
- }\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
+ TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_BIOS_VERSION);\r
+ HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
+ FreePool (NewString);\r
+ Find[0] = TRUE;\r
+ }\r
\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
- TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_BIOS_VERSION);\r
- HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
- FreePool (NewString);\r
- Find[0] = TRUE;\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
+ TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_COMPUTER_MODEL);\r
+ HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
+ FreePool (NewString);\r
+ Find[1] = TRUE;\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
- TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_COMPUTER_MODEL);\r
- HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
- FreePool (NewString);\r
- Find[1] = TRUE;\r
- }\r
- \r
- if (Record->Type == EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION) {\r
- Type4Record = (SMBIOS_TABLE_TYPE4 *) Record;\r
- StrIndex = Type4Record->ProcessorVersion;\r
- GetOptionalStringByIndex ((CHAR8*)((UINT8*)Type4Record + Type4Record->Hdr.Length), StrIndex, &NewString);\r
- TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_CPU_MODEL);\r
- HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
- FreePool (NewString);\r
- Find[2] = TRUE;\r
- } \r
-\r
- if (Record->Type == EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION) {\r
- Type4Record = (SMBIOS_TABLE_TYPE4 *) Record;\r
- ConvertProcessorToString(Type4Record->CurrentSpeed, 6, &NewString);\r
- TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_CPU_SPEED);\r
- HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
- FreePool (NewString);\r
- Find[3] = TRUE;\r
- } \r
-\r
- if ( Record->Type == EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS ) {\r
- Type19Record = (SMBIOS_TABLE_TYPE19 *) Record;\r
- ConvertMemorySizeToString (\r
- (UINT32)(RShiftU64((Type19Record->EndingAddress - Type19Record->StartingAddress + 1), 10)),\r
- &NewString\r
- );\r
- TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_MEMORY_SIZE);\r
- HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
- FreePool (NewString);\r
- Find[4] = TRUE; \r
- }\r
- } while ( !(Find[0] && Find[1] && Find[2] && Find[3] && Find[4]));\r
+ if (Record->Type == EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION) {\r
+ Type4Record = (SMBIOS_TABLE_TYPE4 *) Record;\r
+ StrIndex = Type4Record->ProcessorVersion;\r
+ GetOptionalStringByIndex ((CHAR8*)((UINT8*)Type4Record + Type4Record->Hdr.Length), StrIndex, &NewString);\r
+ TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_CPU_MODEL);\r
+ HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
+ FreePool (NewString);\r
+ Find[2] = TRUE;\r
+ }\r
+\r
+ if (Record->Type == EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION) {\r
+ Type4Record = (SMBIOS_TABLE_TYPE4 *) Record;\r
+ ConvertProcessorToString(Type4Record->CurrentSpeed, 6, &NewString);\r
+ TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_CPU_SPEED);\r
+ HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
+ FreePool (NewString);\r
+ Find[3] = TRUE;\r
+ }\r
+\r
+ if ( Record->Type == EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS ) {\r
+ Type19Record = (SMBIOS_TABLE_TYPE19 *) Record;\r
+ ConvertMemorySizeToString (\r
+ (UINT32)(RShiftU64((Type19Record->EndingAddress - Type19Record->StartingAddress + 1), 10)),\r
+ &NewString\r
+ );\r
+ TokenToUpdate = STRING_TOKEN (STR_FRONT_PAGE_MEMORY_SIZE);\r
+ HiiSetString (gFrontPagePrivate.HiiHandle, TokenToUpdate, NewString, NULL);\r
+ FreePool (NewString);\r
+ Find[4] = TRUE;\r
+ }\r
+ } while ( !(Find[0] && Find[1] && Find[2] && Find[3] && Find[4]));\r
+ }\r
return ;\r
}\r
\r
EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;\r
EFI_GRAPHICS_OUTPUT_BLT_PIXEL Color;\r
\r
- if (TimeoutDefault == 0) {\r
- return EFI_TIMEOUT;\r
- }\r
-\r
- DEBUG ((EFI_D_INFO, "\n\nStart showing progress bar... Press any key to stop it! ...Zzz....\n"));\r
-\r
- SetMem (&Foreground, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0xff);\r
- SetMem (&Background, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0x0);\r
- SetMem (&Color, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0xff);\r
- \r
- TmpStr = GetStringById (STRING_TOKEN (STR_START_BOOT_OPTION));\r
-\r
- if (!FeaturePcdGet(PcdBootlogoOnlyEnable)) {\r
- //\r
- // Clear the progress status bar first\r
- //\r
- if (TmpStr != NULL) {\r
- PlatformBdsShowProgress (Foreground, Background, TmpStr, Color, 0, 0);\r
- }\r
- }\r
- \r
-\r
- TimeoutRemain = TimeoutDefault;\r
- while (TimeoutRemain != 0) {\r
- DEBUG ((EFI_D_INFO, "Showing progress bar...Remaining %d second!\n", TimeoutRemain));\r
+ if (TimeoutDefault != 0) {\r
+ DEBUG ((EFI_D_INFO, "\n\nStart showing progress bar... Press any key to stop it! ...Zzz....\n"));\r
\r
- Status = WaitForSingleEvent (gST->ConIn->WaitForKey, ONE_SECOND);\r
- if (Status != EFI_TIMEOUT) {\r
- break;\r
- }\r
- TimeoutRemain--;\r
+ SetMem (&Foreground, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0xff);\r
+ SetMem (&Background, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0x0);\r
+ SetMem (&Color, sizeof (EFI_GRAPHICS_OUTPUT_BLT_PIXEL), 0xff);\r
\r
+ TmpStr = GetStringById (STRING_TOKEN (STR_START_BOOT_OPTION));\r
+\r
if (!FeaturePcdGet(PcdBootlogoOnlyEnable)) {\r
//\r
- // Show progress\r
+ // Clear the progress status bar first\r
//\r
if (TmpStr != NULL) {\r
- PlatformBdsShowProgress (\r
- Foreground,\r
- Background,\r
- TmpStr,\r
- Color,\r
- ((TimeoutDefault - TimeoutRemain) * 100 / TimeoutDefault),\r
- 0\r
- );\r
+ PlatformBdsShowProgress (Foreground, Background, TmpStr, Color, 0, 0);\r
}\r
}\r
- }\r
- \r
- if (TmpStr != NULL) {\r
- gBS->FreePool (TmpStr);\r
- }\r
+ \r
\r
- //\r
- // Timeout expired\r
- //\r
- if (TimeoutRemain == 0) {\r
- return EFI_TIMEOUT;\r
+ TimeoutRemain = TimeoutDefault;\r
+ while (TimeoutRemain != 0) {\r
+ DEBUG ((EFI_D_INFO, "Showing progress bar...Remaining %d second!\n", TimeoutRemain));\r
+\r
+ Status = WaitForSingleEvent (gST->ConIn->WaitForKey, ONE_SECOND);\r
+ if (Status != EFI_TIMEOUT) {\r
+ break;\r
+ }\r
+ TimeoutRemain--;\r
+ \r
+ if (!FeaturePcdGet(PcdBootlogoOnlyEnable)) {\r
+ //\r
+ // Show progress\r
+ //\r
+ if (TmpStr != NULL) {\r
+ PlatformBdsShowProgress (\r
+ Foreground,\r
+ Background,\r
+ TmpStr,\r
+ Color,\r
+ ((TimeoutDefault - TimeoutRemain) * 100 / TimeoutDefault),\r
+ 0\r
+ );\r
+ }\r
+ }\r
+ }\r
+ \r
+ if (TmpStr != NULL) {\r
+ gBS->FreePool (TmpStr);\r
+ }\r
+\r
+ //\r
+ // Timeout expired\r
+ //\r
+ if (TimeoutRemain == 0) {\r
+ return EFI_TIMEOUT;\r
+ }\r
}\r
\r
//\r
//\r
// Clear EFI_OS_INDICATIONS_BOOT_TO_FW_UI to acknowledge OS\r
// \r
- OsIndication &= ~EFI_OS_INDICATIONS_BOOT_TO_FW_UI;\r
+ OsIndication &= ~((UINT64)EFI_OS_INDICATIONS_BOOT_TO_FW_UI);\r
Status = gRT->SetVariable (\r
L"OsIndications",\r
&gEfiGlobalVariableGuid,\r
//\r
// Update text mode PCD.\r
//\r
- PcdSet32 (PcdConOutColumn, mSetupTextModeColumn);\r
- PcdSet32 (PcdConOutRow, mSetupTextModeRow);\r
+ Status = PcdSet32S (PcdConOutColumn, mSetupTextModeColumn);\r
+ ASSERT_EFI_ERROR (Status);\r
+ Status = PcdSet32S (PcdConOutRow, mSetupTextModeRow);\r
+ ASSERT_EFI_ERROR (Status);\r
FreePool (Info);\r
return EFI_SUCCESS;\r
}\r
// Set PCD to Inform GraphicsConsole to change video resolution.\r
// Set PCD to Inform Consplitter to change text mode.\r
//\r
- PcdSet32 (PcdVideoHorizontalResolution, NewHorizontalResolution);\r
- PcdSet32 (PcdVideoVerticalResolution, NewVerticalResolution);\r
- PcdSet32 (PcdConOutColumn, NewColumns);\r
- PcdSet32 (PcdConOutRow, NewRows);\r
+ Status = PcdSet32S (PcdVideoHorizontalResolution, NewHorizontalResolution);\r
+ ASSERT_EFI_ERROR (Status);\r
+ Status = PcdSet32S (PcdVideoVerticalResolution, NewVerticalResolution);\r
+ ASSERT_EFI_ERROR (Status);\r
+ Status = PcdSet32S (PcdConOutColumn, NewColumns);\r
+ ASSERT_EFI_ERROR (Status);\r
+ Status = PcdSet32S (PcdConOutRow, NewRows);\r
+ ASSERT_EFI_ERROR (Status);\r
\r
\r
//\r