TianoCore EDK2 master
Loading...
Searching...
No Matches
FrontPage.c File Reference
#include "FrontPage.h"
#include "FrontPageCustomizedUi.h"

Go to the source code of this file.

Macros

#define MAX_STRING_LEN   200
 

Functions

VOID UpdateFrontPageBannerStrings (VOID)
 
EFI_STATUS EFIAPI FakeExtractConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
 
EFI_STATUS EFIAPI FakeRouteConfig (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
 
EFI_STATUS EFIAPI FrontPageCallback (IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
 
VOID UpdateFrontPageForm (VOID)
 
EFI_STATUS InitializeFrontPage (VOID)
 
EFI_STATUS CallFrontPage (VOID)
 
VOID FreeFrontPage (VOID)
 
VOID ConvertProcessorToString (IN UINT16 ProcessorFrequency, IN UINT16 Base10Exponent, OUT CHAR16 **String)
 
VOID ConvertMemorySizeToString (IN UINT32 MemorySize, OUT CHAR16 **String)
 
EFI_STATUS GetOptionalStringByIndex (IN CHAR8 *OptionalStrStart, IN UINT8 Index, OUT CHAR16 **String)
 
EFI_STATUS UiSetConsoleMode (BOOLEAN IsSetupMode)
 
EFI_STATUS EFIAPI InitializeUserInterface (IN EFI_HANDLE ImageHandle, IN EFI_SYSTEM_TABLE *SystemTable)
 
VOID EFIAPI UiEntry (IN BOOLEAN ConnectAllHappened)
 
VOID EFIAPI EnableResetRequired (VOID)
 
BOOLEAN EFIAPI IsResetRequired (VOID)
 
VOID EFIAPI SetupResetReminder (VOID)
 

Variables

EFI_GUID mFrontPageGuid = FRONT_PAGE_FORMSET_GUID
 
BOOLEAN mResetRequired = FALSE
 
EFI_FORM_BROWSER2_PROTOCOLgFormBrowser2
 
CHAR8 * mLanguageString
 
BOOLEAN mModeInitialized = FALSE
 
UINT32 mBootHorizontalResolution = 0
 
UINT32 mBootVerticalResolution = 0
 
UINT32 mBootTextModeColumn = 0
 
UINT32 mBootTextModeRow = 0
 
UINT32 mSetupTextModeColumn = 0
 
UINT32 mSetupTextModeRow = 0
 
UINT32 mSetupHorizontalResolution = 0
 
UINT32 mSetupVerticalResolution = 0
 
FRONT_PAGE_CALLBACK_DATA gFrontPagePrivate
 
HII_VENDOR_DEVICE_PATH mFrontPageHiiVendorDevicePath
 

Detailed Description

FrontPage routines to handle the callbacks and browser calls

Copyright (c) 2004 - 2017, Intel Corporation. All rights reserved.
(C) Copyright 2018 Hewlett Packard Enterprise Development LP
SPDX-License-Identifier: BSD-2-Clause-Patent

Definition in file FrontPage.c.

Macro Definition Documentation

◆ MAX_STRING_LEN

#define MAX_STRING_LEN   200

Definition at line 13 of file FrontPage.c.

Function Documentation

◆ CallFrontPage()

EFI_STATUS CallFrontPage ( VOID  )

Call the browser and display the front page

Returns
Status code that will be returned by EFI_FORM_BROWSER2_PROTOCOL.SendForm ().

Definition at line 314 of file FrontPage.c.

◆ ConvertMemorySizeToString()

VOID ConvertMemorySizeToString ( IN UINT32  MemorySize,
OUT CHAR16 **  String 
)

Convert Memory Size to a string.

Parameters
MemorySizeThe size of the memory to process
StringThe string that is created

Definition at line 435 of file FrontPage.c.

◆ ConvertProcessorToString()

VOID ConvertProcessorToString ( IN UINT16  ProcessorFrequency,
IN UINT16  Base10Exponent,
OUT CHAR16 **  String 
)

Convert Processor Frequency Data to a string.

Parameters
ProcessorFrequencyThe frequency data to process
Base10ExponentThe exponent based on 10
StringThe string that is created

Definition at line 389 of file FrontPage.c.

◆ EnableResetRequired()

VOID EFIAPI EnableResetRequired ( VOID  )

Record the info that a reset is required. A module boolean variable is used to record whether a reset is required.

Definition at line 1059 of file FrontPage.c.

◆ FakeExtractConfig()

EFI_STATUS EFIAPI FakeExtractConfig ( IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL This,
IN CONST EFI_STRING  Request,
OUT EFI_STRING *  Progress,
OUT EFI_STRING *  Results 
)

This function allows a caller to extract the current configuration for one or more named elements from the target driver.

Parameters
ThisPoints to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
RequestA null-terminated Unicode string in <ConfigRequest> format.
ProgressOn return, points to a character in the Request string. Points to the string's null terminator if request was successful. Points to the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) if the request was not successful.
ResultsA null-terminated Unicode string in <ConfigAltResp> format which has all values filled in for the names in the Request string. String to be allocated by the called function.
Return values
EFI_SUCCESSThe Results is filled with the requested values.
EFI_OUT_OF_RESOURCESNot enough memory to store the results.
EFI_INVALID_PARAMETERRequest is illegal syntax, or unknown name.
EFI_NOT_FOUNDRouting data doesn't match any storage in this driver.

Definition at line 108 of file FrontPage.c.

◆ FakeRouteConfig()

EFI_STATUS EFIAPI FakeRouteConfig ( IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL This,
IN CONST EFI_STRING  Configuration,
OUT EFI_STRING *  Progress 
)

This function processes the results of changes in configuration.

Parameters
ThisPoints to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
ConfigurationA null-terminated Unicode string in <ConfigResp> format.
ProgressA pointer to a string filled in with the offset of the most recent '&' before the first failing name/value pair (or the beginning of the string if the failure is in the first name/value pair) or the terminating NULL if all was successful.
Return values
EFI_SUCCESSThe Results is processed successfully.
EFI_INVALID_PARAMETERConfiguration is NULL.
EFI_NOT_FOUNDRouting data doesn't match any storage in this driver.

Definition at line 141 of file FrontPage.c.

◆ FreeFrontPage()

VOID FreeFrontPage ( VOID  )

Remove the installed packages from the HiiDatabase.

Definition at line 354 of file FrontPage.c.

◆ FrontPageCallback()

EFI_STATUS EFIAPI FrontPageCallback ( IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL This,
IN EFI_BROWSER_ACTION  Action,
IN EFI_QUESTION_ID  QuestionId,
IN UINT8  Type,
IN EFI_IFR_TYPE_VALUE Value,
OUT EFI_BROWSER_ACTION_REQUEST *  ActionRequest 
)

This function processes the results of changes in configuration.

Parameters
ThisPoints to the EFI_HII_CONFIG_ACCESS_PROTOCOL.
ActionSpecifies the type of action taken by the browser.
QuestionIdA unique value which is sent to the original exporting driver so that it can identify the type of data to expect.
TypeThe type of value for the question.
ValueA pointer to the data being sent to the original exporting driver.
ActionRequestOn return, points to the action requested by the callback function.
Return values
EFI_SUCCESSThe callback successfully handled the action.
EFI_OUT_OF_RESOURCESNot enough storage is available to hold the variable and its data.
EFI_DEVICE_ERRORThe variable could not be saved.
EFI_UNSUPPORTEDThe specified Action is not supported by the callback.

Definition at line 176 of file FrontPage.c.

◆ GetOptionalStringByIndex()

EFI_STATUS GetOptionalStringByIndex ( IN CHAR8 *  OptionalStrStart,
IN UINT8  Index,
OUT CHAR16 **  String 
)

Acquire the string associated with the Index from smbios structure and return it. The caller is responsible for free the string buffer.

Parameters
OptionalStrStartThe start position to search the string
IndexThe index of the string to extract
StringThe string that is extracted
Return values
EFI_SUCCESSThe function returns EFI_SUCCESS always.

Definition at line 465 of file FrontPage.c.

◆ InitializeFrontPage()

EFI_STATUS InitializeFrontPage ( VOID  )

Initialize HII information for the FrontPage

Return values
EFI_SUCCESSThe operation is successful.
EFI_DEVICE_ERRORIf the dynamic opcode creation failed.

Definition at line 253 of file FrontPage.c.

◆ InitializeUserInterface()

EFI_STATUS EFIAPI InitializeUserInterface ( IN EFI_HANDLE  ImageHandle,
IN EFI_SYSTEM_TABLE SystemTable 
)

The user Entry Point for Application. The user code starts with this function as the real entry point for the image goes into a library that calls this function.

Parameters
[in]ImageHandleThe firmware allocated handle for the EFI image.
[in]SystemTableA pointer to the EFI System Table.
Return values
EFI_SUCCESSThe entry point is executed successfully.
otherSome error occurs when executing this entry point.

Definition at line 898 of file FrontPage.c.

◆ IsResetRequired()

BOOLEAN EFIAPI IsResetRequired ( VOID  )

Check if user changed any option setting which needs a system reset to be effective.

Definition at line 1072 of file FrontPage.c.

◆ SetupResetReminder()

VOID EFIAPI SetupResetReminder ( VOID  )

Check whether a reset is needed, and finish the reset reminder feature. If a reset is needed, Popup a menu to notice user, and finish the feature according to the user selection.

Definition at line 1087 of file FrontPage.c.

◆ UiEntry()

VOID EFIAPI UiEntry ( IN BOOLEAN  ConnectAllHappened)

This function is the main entry of the UI entry. The function will present the main menu of the system UI.

Parameters
ConnectAllHappenedCaller passes the value to UI to avoid unnecessary connect-all.

Definition at line 993 of file FrontPage.c.

◆ UiSetConsoleMode()

EFI_STATUS UiSetConsoleMode ( BOOLEAN  IsSetupMode)

This function will change video resolution and text mode according to defined setup mode or defined boot mode

Parameters
IsSetupModeIndicate mode is changed to setup mode or boot mode.
Return values
EFI_SUCCESSMode is changed successfully.
OthersMode failed to be changed.

Definition at line 676 of file FrontPage.c.

◆ UpdateFrontPageBannerStrings()

VOID UpdateFrontPageBannerStrings ( VOID  )

Update the banner information for the Front Page based on Smbios information.

Definition at line 505 of file FrontPage.c.

◆ UpdateFrontPageForm()

VOID UpdateFrontPageForm ( VOID  )

Update the menus in the front page.

Definition at line 194 of file FrontPage.c.

Variable Documentation

◆ gFormBrowser2

Definition at line 19 of file FrontPage.c.

◆ gFrontPagePrivate

FRONT_PAGE_CALLBACK_DATA gFrontPagePrivate
Initial value:
= {
FRONT_PAGE_CALLBACK_DATA_SIGNATURE,
{
}
}
EFI_STATUS EFIAPI FrontPageCallback(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN EFI_BROWSER_ACTION Action, IN EFI_QUESTION_ID QuestionId, IN UINT8 Type, IN EFI_IFR_TYPE_VALUE *Value, OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest)
Definition: FrontPage.c:176
EFI_STATUS EFIAPI FakeRouteConfig(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Configuration, OUT EFI_STRING *Progress)
Definition: FrontPage.c:141
EFI_STATUS EFIAPI FakeExtractConfig(IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, IN CONST EFI_STRING Request, OUT EFI_STRING *Progress, OUT EFI_STRING *Results)
Definition: FrontPage.c:108
#define NULL
Definition: Base.h:319

Definition at line 37 of file FrontPage.c.

◆ mBootHorizontalResolution

UINT32 mBootHorizontalResolution = 0

Definition at line 25 of file FrontPage.c.

◆ mBootTextModeColumn

UINT32 mBootTextModeColumn = 0

Definition at line 27 of file FrontPage.c.

◆ mBootTextModeRow

UINT32 mBootTextModeRow = 0

Definition at line 28 of file FrontPage.c.

◆ mBootVerticalResolution

UINT32 mBootVerticalResolution = 0

Definition at line 26 of file FrontPage.c.

◆ mFrontPageGuid

EFI_GUID mFrontPageGuid = FRONT_PAGE_FORMSET_GUID

Definition at line 15 of file FrontPage.c.

◆ mFrontPageHiiVendorDevicePath

HII_VENDOR_DEVICE_PATH mFrontPageHiiVendorDevicePath
Initial value:
= {
{
{
{
(UINT8)(sizeof (VENDOR_DEVICE_PATH)),
(UINT8)((sizeof (VENDOR_DEVICE_PATH)) >> 8)
}
},
{ 0x8e6d99ee, 0x7531, 0x48f8, { 0x87, 0x45, 0x7f, 0x61, 0x44, 0x46, 0x8f, 0xf2 }
}
},
{
END_DEVICE_PATH_TYPE,
END_ENTIRE_DEVICE_PATH_SUBTYPE,
{
(UINT8)(END_DEVICE_PATH_LENGTH),
(UINT8)((END_DEVICE_PATH_LENGTH) >> 8)
}
}
}
#define HARDWARE_DEVICE_PATH
Definition: DevicePath.h:68
#define HW_VENDOR_DP
Definition: DevicePath.h:133

Definition at line 49 of file FrontPage.c.

◆ mLanguageString

CHAR8* mLanguageString

Definition at line 20 of file FrontPage.c.

◆ mModeInitialized

BOOLEAN mModeInitialized = FALSE

Definition at line 21 of file FrontPage.c.

◆ mResetRequired

BOOLEAN mResetRequired = FALSE

Definition at line 17 of file FrontPage.c.

◆ mSetupHorizontalResolution

UINT32 mSetupHorizontalResolution = 0

Definition at line 34 of file FrontPage.c.

◆ mSetupTextModeColumn

UINT32 mSetupTextModeColumn = 0

Definition at line 32 of file FrontPage.c.

◆ mSetupTextModeRow

UINT32 mSetupTextModeRow = 0

Definition at line 33 of file FrontPage.c.

◆ mSetupVerticalResolution

UINT32 mSetupVerticalResolution = 0

Definition at line 35 of file FrontPage.c.