1 /** @file 2 Head file for front page. 3 4 Copyright (c) 2004 - 2016, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 #ifndef _FRONT_PAGE_H_ 16 #define _FRONT_PAGE_H_ 17 18 #include "String.h" 19 #include "Ui.h" 20 21 #include <Protocol/BootLogo.h> 22 // 23 // These is the VFR compiler generated data representing our VFR data. 24 // 25 extern UINT8 FrontPageVfrBin[]; 26 27 extern EFI_FORM_BROWSER2_PROTOCOL *gFormBrowser2; 28 29 30 #define SMBIOS_TYPE4_CPU_SOCKET_POPULATED BIT6 31 32 // 33 // This is the VFR compiler generated header file which defines the 34 // string identifiers. 35 // 36 #define PRINTABLE_LANGUAGE_NAME_STRING_ID 0x0001 37 38 // 39 // These are defined as the same with vfr file 40 // 41 #define FRONT_PAGE_FORM_ID 0x1000 42 43 #define LABEL_FRANTPAGE_INFORMATION 0x1000 44 #define LABEL_END 0xffff 45 46 #define FRONT_PAGE_FORMSET_GUID \ 47 { \ 48 0x9e0c30bc, 0x3f06, 0x4ba6, {0x82, 0x88, 0x9, 0x17, 0x9b, 0x85, 0x5d, 0xbe} \ 49 } 50 51 #define FRONT_PAGE_CALLBACK_DATA_SIGNATURE SIGNATURE_32 ('F', 'P', 'C', 'B') 52 53 typedef struct { 54 UINTN Signature; 55 56 // 57 // HII relative handles 58 // 59 EFI_HII_HANDLE HiiHandle; 60 EFI_HANDLE DriverHandle; 61 EFI_STRING_ID *LanguageToken; 62 63 // 64 // Produced protocols 65 // 66 EFI_HII_CONFIG_ACCESS_PROTOCOL ConfigAccess; 67 } FRONT_PAGE_CALLBACK_DATA; 68 69 70 #define EFI_FP_CALLBACK_DATA_FROM_THIS(a) \ 71 CR (a, \ 72 FRONT_PAGE_CALLBACK_DATA, \ 73 ConfigAccess, \ 74 FRONT_PAGE_CALLBACK_DATA_SIGNATURE \ 75 ) 76 77 /** 78 This function allows a caller to extract the current configuration for one 79 or more named elements from the target driver. 80 81 82 @param This - Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. 83 @param Request - A null-terminated Unicode string in <ConfigRequest> format. 84 @param Progress - On return, points to a character in the Request string. 85 Points to the string's null terminator if request was successful. 86 Points to the most recent '&' before the first failing name/value 87 pair (or the beginning of the string if the failure is in the 88 first name/value pair) if the request was not successful. 89 @param Results - A null-terminated Unicode string in <ConfigAltResp> format which 90 has all values filled in for the names in the Request string. 91 String to be allocated by the called function. 92 93 @retval EFI_SUCCESS The Results is filled with the requested values. 94 @retval EFI_OUT_OF_RESOURCES Not enough memory to store the results. 95 @retval EFI_INVALID_PARAMETER Request is NULL, illegal syntax, or unknown name. 96 @retval EFI_NOT_FOUND Routing data doesn't match any storage in this driver. 97 98 **/ 99 EFI_STATUS 100 EFIAPI 101 FakeExtractConfig ( 102 IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, 103 IN CONST EFI_STRING Request, 104 OUT EFI_STRING *Progress, 105 OUT EFI_STRING *Results 106 ); 107 108 /** 109 This function processes the results of changes in configuration. 110 111 112 @param This - Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. 113 @param Configuration - A null-terminated Unicode string in <ConfigResp> format. 114 @param Progress - A pointer to a string filled in with the offset of the most 115 recent '&' before the first failing name/value pair (or the 116 beginning of the string if the failure is in the first 117 name/value pair) or the terminating NULL if all was successful. 118 119 @retval EFI_SUCCESS The Results is processed successfully. 120 @retval EFI_INVALID_PARAMETER Configuration is NULL. 121 @retval EFI_NOT_FOUND Routing data doesn't match any storage in this driver. 122 123 **/ 124 EFI_STATUS 125 EFIAPI 126 FakeRouteConfig ( 127 IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, 128 IN CONST EFI_STRING Configuration, 129 OUT EFI_STRING *Progress 130 ); 131 132 /** 133 This function processes the results of changes in configuration. 134 135 136 @param This - Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. 137 @param Action - Specifies the type of action taken by the browser. 138 @param QuestionId - A unique value which is sent to the original exporting driver 139 so that it can identify the type of data to expect. 140 @param Type - The type of value for the question. 141 @param Value - A pointer to the data being sent to the original exporting driver. 142 @param ActionRequest - On return, points to the action requested by the callback function. 143 144 @retval EFI_SUCCESS The callback successfully handled the action. 145 @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold the variable and its data. 146 @retval EFI_DEVICE_ERROR The variable could not be saved. 147 @retval EFI_UNSUPPORTED The specified Action is not supported by the callback. 148 149 **/ 150 EFI_STATUS 151 EFIAPI 152 FrontPageCallback ( 153 IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, 154 IN EFI_BROWSER_ACTION Action, 155 IN EFI_QUESTION_ID QuestionId, 156 IN UINT8 Type, 157 IN EFI_IFR_TYPE_VALUE *Value, 158 OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest 159 ); 160 161 /** 162 Initialize HII information for the FrontPage 163 164 @retval EFI_SUCCESS The operation is successful. 165 @retval EFI_DEVICE_ERROR If the dynamic opcode creation failed. 166 167 **/ 168 EFI_STATUS 169 InitializeFrontPage ( 170 VOID 171 ); 172 173 /** 174 Acquire the string associated with the ProducerGuid and return it. 175 176 177 @param ProducerGuid - The Guid to search the HII database for 178 @param Token - The token value of the string to extract 179 @param String - The string that is extracted 180 181 @retval EFI_SUCCESS The function returns EFI_SUCCESS always. 182 183 **/ 184 EFI_STATUS 185 GetProducerString ( 186 IN EFI_GUID *ProducerGuid, 187 IN EFI_STRING_ID Token, 188 OUT CHAR16 **String 189 ); 190 191 /** 192 This function is the main entry of the UI entry. 193 The function will present the main menu of the system UI. 194 195 @param ConnectAllHappened Caller passes the value to UI to avoid unnecessary connect-all. 196 197 **/ 198 VOID 199 EFIAPI 200 UiEntry ( 201 IN BOOLEAN ConnectAllHappened 202 ); 203 204 /** 205 Extract device path for given HII handle and class guid. 206 207 @param Handle The HII handle. 208 209 @retval NULL Fail to get the device path string. 210 @return PathString Get the device path string. 211 212 **/ 213 CHAR16 * 214 ExtractDevicePathFromHiiHandle ( 215 IN EFI_HII_HANDLE Handle 216 ); 217 218 #endif // _FRONT_PAGE_H_ 219 220