/*++\r
\r
-Copyright (c) 2006, Intel Corporation \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
+Copyright (c) 2006 - 2007, Intel Corporation\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
Module Name:\r
\r
Abstract:\r
\r
FrontPage routines to handle the callbacks and browser calls\r
- \r
+\r
--*/\r
\r
#include "Bds.h"\r
\r
This is the function that is called to provide results data to the driver. This data\r
consists of a unique key which is used to identify what data is either being passed back\r
- or being asked for. \r
+ or being asked for.\r
\r
Arguments:\r
\r
\r
Data - A pointer to the data being sent to the original exporting driver.\r
\r
-Returns: \r
+Returns:\r
\r
--*/\r
{\r
EFI_STATUS Status;\r
UINTN Index;\r
CHAR16 *TmpStr;\r
- EFI_UGA_PIXEL Foreground;\r
- EFI_UGA_PIXEL Background;\r
- EFI_UGA_PIXEL Color;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Foreground;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Background;\r
+ EFI_GRAPHICS_OUTPUT_BLT_PIXEL Color;\r
\r
- SetMem (&Foreground, sizeof (EFI_UGA_PIXEL), 0xff);\r
- SetMem (&Background, sizeof (EFI_UGA_PIXEL), 0x0);\r
- SetMem (&Color, sizeof (EFI_UGA_PIXEL), 0xff);\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
Count = 0;\r
\r
Lang\r
);\r
\r
- gBS->FreePool (LanguageString);\r
+ FreePool (LanguageString);\r
gCallbackKey = 2;\r
break;\r
\r
(UINTN) (((EFI_IFR_DATA_ENTRY *) (DataArray+1))->Data),\r
0\r
);\r
- gBS->FreePool (TmpStr);\r
+ FreePool (TmpStr);\r
}\r
break;\r
\r
/*++\r
\r
Routine Description:\r
- \r
+\r
Initialize HII information for the FrontPage\r
\r
Arguments:\r
None\r
- \r
+\r
Returns:\r
EFI_SUCCESS - The operation is successful.\r
EFI_DEVICE_ERROR - If the dynamic opcode creation failed.\r
\r
Status = Hii->NewPack (Hii, PackageList, &gFrontPageHandle);\r
\r
- gBS->FreePool (PackageList);\r
+ FreePool (PackageList);\r
\r
//\r
// There will be only one FormConfig in the system\r
OptionCount++;\r
}\r
\r
- gBS->FreePool (LanguageString);\r
+ FreePool (LanguageString);\r
\r
if (ReInitializeStrings) {\r
- gBS->FreePool (StringBuffer);\r
- gBS->FreePool (OptionList);\r
+ FreePool (StringBuffer);\r
+ FreePool (OptionList);\r
return EFI_SUCCESS;\r
}\r
\r
\r
Hii->UpdateForm (Hii, gFrontPageHandle, (EFI_FORM_LABEL) 0x0002, TRUE, UpdateData);\r
\r
- gBS->FreePool (UpdateData);\r
+ FreePool (UpdateData);\r
//\r
- // gBS->FreePool (OptionList);\r
+ // FreePool (OptionList);\r
//\r
- gBS->FreePool (StringBuffer);\r
+ FreePool (StringBuffer);\r
return Status;\r
}\r
\r
/*++\r
\r
Routine Description:\r
- \r
+\r
Call the browser and display the front page\r
\r
Arguments:\r
- \r
+\r
None\r
- \r
+\r
Returns:\r
\r
--*/\r
{\r
EFI_STATUS Status;\r
UINT8 FakeNvRamMap[1];\r
+ BOOLEAN FrontPageMenuResetRequired;\r
\r
//\r
// Begin waiting for USER INPUT\r
);\r
\r
FakeNvRamMap[0] = (UINT8) mLastSelection;\r
+ FrontPageMenuResetRequired = FALSE;\r
Status = gBrowser->SendForm (\r
gBrowser,\r
TRUE, // Use the database\r
FrontPageCallbackHandle, // This is the handle that the interface to the callback was installed on\r
FakeNvRamMap,\r
NULL,\r
- NULL\r
+ &FrontPageMenuResetRequired\r
);\r
+ //\r
+ // Check whether user change any option setting which needs a reset to be effective\r
+ //\r
+ if (FrontPageMenuResetRequired) {\r
+ EnableResetRequired ();\r
+ }\r
\r
Hii->ResetStrings (Hii, gFrontPageHandle);\r
\r
/*++\r
\r
Routine Description:\r
- \r
+\r
Acquire the string associated with the ProducerGuid and return it.\r
\r
Arguments:\r
- \r
+\r
ProducerGuid - The Guid to search the HII database for\r
Token - The token value of the string to extract\r
String - The string that is extracted\r
- \r
+\r
Returns:\r
\r
EFI_SUCCESS - The function returns EFI_SUCCESS always.\r
UINT16 Length;\r
EFI_GUID HiiGuid;\r
\r
- HandleBufferLength = 0x1000;\r
+ //\r
+ // Initialize params.\r
+ //\r
+ HandleBufferLength = 0;\r
HiiHandleBuffer = NULL;\r
\r
//\r
// Get all the Hii handles\r
//\r
- HiiHandleBuffer = AllocateZeroPool (HandleBufferLength);\r
-\r
- Status = Hii->FindHandles (Hii, &HandleBufferLength, HiiHandleBuffer);\r
+ Status = BdsLibGetHiiHandles (Hii, &HandleBufferLength, &HiiHandleBuffer);\r
ASSERT_EFI_ERROR (Status);\r
\r
//\r
);\r
\r
if (EFI_ERROR (Status)) {\r
- gBS->FreePool (*String);\r
+ FreePool (*String);\r
*String = GetStringById (STRING_TOKEN (STR_MISSING_STRING));\r
}\r
\r
- gBS->FreePool (HiiHandleBuffer);\r
+ FreePool (HiiHandleBuffer);\r
return EFI_SUCCESS;\r
}\r
\r
/*++\r
\r
Routine Description:\r
- \r
+\r
Convert Processor Frequency Data to a string\r
\r
Arguments:\r
- \r
+\r
ProcessorFrequency - The frequency data to process\r
String - The string that is created\r
- \r
+\r
Returns:\r
\r
--*/\r
/*++\r
\r
Routine Description:\r
- \r
+\r
Convert Memory Size to a string\r
\r
Arguments:\r
- \r
+\r
MemorySize - The size of the memory to process\r
String - The string that is created\r
- \r
+\r
Returns:\r
\r
--*/\r
/*++\r
\r
Routine Description:\r
- \r
+\r
Update the banner information for the Front Page based on DataHub information\r
\r
Arguments:\r
- \r
+\r
None\r
- \r
+\r
Returns:\r
\r
--*/\r
GetStringFromToken (&Record->ProducerName, BiosVendor->BiosVersion, &NewString);\r
TokenToUpdate = (STRING_REF) STR_FRONT_PAGE_BIOS_VERSION;\r
Hii->NewString (Hii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
- gBS->FreePool (NewString);\r
+ FreePool (NewString);\r
Find[0] = TRUE;\r
}\r
\r
GetStringFromToken (&Record->ProducerName, SystemManufacturer->SystemProductName, &NewString);\r
TokenToUpdate = (STRING_REF) STR_FRONT_PAGE_COMPUTER_MODEL;\r
Hii->NewString (Hii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
- gBS->FreePool (NewString);\r
+ FreePool (NewString);\r
Find[1] = TRUE;\r
}\r
\r
GetStringFromToken (&Record->ProducerName, *ProcessorVersion, &NewString);\r
TokenToUpdate = (STRING_REF) STR_FRONT_PAGE_CPU_MODEL;\r
Hii->NewString (Hii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
- gBS->FreePool (NewString);\r
+ FreePool (NewString);\r
Find[2] = TRUE;\r
}\r
\r
ConvertProcessorToString (ProcessorFrequency, &NewString);\r
TokenToUpdate = (STRING_REF) STR_FRONT_PAGE_CPU_SPEED;\r
Hii->NewString (Hii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
- gBS->FreePool (NewString);\r
+ FreePool (NewString);\r
Find[3] = TRUE;\r
}\r
\r
(DataHeader->RecordType == EFI_MEMORY_ARRAY_START_ADDRESS_RECORD_NUMBER)\r
) {\r
MemoryArray = (EFI_MEMORY_ARRAY_START_ADDRESS_DATA *) (DataHeader + 1);\r
- ConvertMemorySizeToString((UINT32)(RShiftU64((MemoryArray->MemoryArrayEndAddress - \r
+ ConvertMemorySizeToString((UINT32)(RShiftU64((MemoryArray->MemoryArrayEndAddress -\r
MemoryArray->MemoryArrayStartAddress + 1), 20)),\r
&NewString);\r
TokenToUpdate = (STRING_REF) STR_FRONT_PAGE_MEMORY_SIZE;\r
Hii->NewString (Hii, Lang, gFrontPageHandle, &TokenToUpdate, NewString);\r
- gBS->FreePool (NewString);\r
+ FreePool (NewString);\r
Find[4] = TRUE;\r
}\r
}\r
\r
Routine Description:\r
This function is the main entry of the platform setup entry.\r
- The function will present the main menu of the system setup, \r
+ The function will present the main menu of the system setup,\r
this is the platform reference part and can be customize.\r
- \r
+\r
Arguments:\r
TimeoutDefault - The fault time out value before the system\r
continue to boot.\r
ConnectAllHappened - The indicater to check if the connect all have\r
already happended.\r
- \r
+\r
Returns:\r
None\r
\r
\r
} while ((Status == EFI_SUCCESS) && (gCallbackKey != 1));\r
\r
+ //\r
+ //Will leave browser, check any reset required change is applied? if yes, reset system\r
+ //\r
+ SetupResetReminder ();\r
+\r
//\r
// Automatically load current entry\r
// Note: The following lines of code only execute when Auto boot\r