/** @file Head file for front page. Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _FRONT_PAGE_H_ #define _FRONT_PAGE_H_ #include "String.h" #include "Ui.h" #include // // These is the VFR compiler generated data representing our VFR data. // extern UINT8 FrontPageVfrBin[]; extern EFI_FORM_BROWSER2_PROTOCOL *gFormBrowser2; #define SMBIOS_TYPE4_CPU_SOCKET_POPULATED BIT6 // // This is the VFR compiler generated header file which defines the // string identifiers. // #define PRINTABLE_LANGUAGE_NAME_STRING_ID 0x0001 // // These are defined as the same with vfr file // #define FRONT_PAGE_FORM_ID 0x1000 #define LABEL_FRONTPAGE_INFORMATION 0x1000 #define LABEL_END 0xffff #define FRONT_PAGE_FORMSET_GUID \ { \ 0x9e0c30bc, 0x3f06, 0x4ba6, {0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe} \ } #define FRONT_PAGE_CALLBACK_DATA_SIGNATURE SIGNATURE_32 ('F', 'P', 'C', 'B') typedef struct { UINTN Signature; // // HII relative handles // EFI_HII_HANDLE HiiHandle; EFI_HANDLE DriverHandle; EFI_STRING_ID *LanguageToken; // // Produced protocols // EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess; } FRONT_PAGE_CALLBACK_DATA; #define EFI_FP_CALLBACK_DATA_FROM_THIS(a) \ CR (a, \ FRONT_PAGE_CALLBACK_DATA, \ ConfigAccess, \ FRONT_PAGE_CALLBACK_DATA_SIGNATURE \ ) /** This function allows a caller to extract the current configuration for one or more named elements from the target driver. @param This - Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. @param Request - A null-terminated Unicode string in format. @param Progress - On 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. @param Results - A null-terminated Unicode string in format which has all values filled in for the names in the Request string. String to be allocated by the called function. @retval EFI_SUCCESS The Results is filled with the requested values. @retval EFI_OUT_OF_RESOURCES Not enough memory to store the results. @retval EFI_INVALID_PARAMETER Request is NULL, illegal syntax, or unknown name. @retval EFI_NOT_FOUND Routing data doesn't match any storage in this driver. **/ 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 processes the results of changes in configuration. @param This - Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. @param Configuration - A null-terminated Unicode string in format. @param Progress - A 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. @retval EFI_SUCCESS The Results is processed successfully. @retval EFI_INVALID_PARAMETER Configuration is NULL. @retval EFI_NOT_FOUND Routing data doesn't match any storage in this driver. **/ 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. @param This - Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. @param Action - Specifies the type of action taken by the browser. @param QuestionId - A unique value which is sent to the original exporting driver so that it can identify the type of data to expect. @param Type - The type of value for the question. @param Value - A pointer to the data being sent to the original exporting driver. @param ActionRequest - On return, points to the action requested by the callback function. @retval EFI_SUCCESS The callback successfully handled the action. @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the variable and its data. @retval EFI_DEVICE_ERROR The variable could not be saved. @retval EFI_UNSUPPORTED The specified Action is not supported by the callback. **/ 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 ); /** Initialize HII information for the FrontPage @retval EFI_SUCCESS The operation is successful. @retval EFI_DEVICE_ERROR If the dynamic opcode creation failed. **/ EFI_STATUS InitializeFrontPage ( VOID ); /** Acquire the string associated with the ProducerGuid and return it. @param ProducerGuid - The Guid to search the HII database for @param Token - The token value of the string to extract @param String - The string that is extracted @retval EFI_SUCCESS The function returns EFI_SUCCESS always. **/ EFI_STATUS GetProducerString ( IN EFI_GUID *ProducerGuid, IN EFI_STRING_ID Token, OUT CHAR16 **String ); /** This function is the main entry of the UI entry. The function will present the main menu of the system UI. @param ConnectAllHappened Caller passes the value to UI to avoid unnecessary connect-all. **/ VOID EFIAPI UiEntry ( IN BOOLEAN ConnectAllHappened ); /** Extract device path for given HII handle and class guid. @param Handle The HII handle. @retval NULL Fail to get the device path string. @return PathString Get the device path string. **/ CHAR16 * ExtractDevicePathFromHiiHandle ( IN EFI_HII_HANDLE Handle ); #endif // _FRONT_PAGE_H_