| /** @file | |
| The Hii functions for WiFi Connection Manager. | |
| Copyright (c) 2019, Intel Corporation. All rights reserved.<BR> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef __EFI_WIFI_MGR_HII_CONFIG_ACCESS__ | |
| #define __EFI_WIFI_MGR_HII_CONFIG_ACCESS__ | |
| /** | |
| Update connection message on connect configuration page, and trigger related form refresh. | |
| @param[in] Nic The related Nic for updating message. | |
| @param[in] ConnectStateChanged The tag to tell if the connection state has been changed, only | |
| when the connection changes from "Connected" or "Disconnecting" | |
| to "Disconnected", or from "Disconnected" or "Connecting" to | |
| "Connected", this tag can be set as TRUE. | |
| @param[in] ConnectStatusMessage The message to show on connected status bar, if NULL, will | |
| use default message. | |
| **/ | |
| VOID | |
| WifiMgrUpdateConnectMessage ( | |
| IN WIFI_MGR_DEVICE_DATA *Nic, | |
| IN BOOLEAN ConnectStateChanged, | |
| IN EFI_STRING ConnectStatusMessage | |
| ); | |
| /** | |
| This function allows the caller to request the current | |
| configuration for one or more named elements. The resulting | |
| string is in <ConfigAltResp> format. Any and all alternative | |
| configuration strings shall also be appended to the end of the | |
| current configuration string. If they are, they must appear | |
| after the current configuration. They must contain the same | |
| routing (GUID, NAME, PATH) as the current configuration string. | |
| They must have an additional description indicating the type of | |
| alternative configuration the string represents, | |
| "ALTCFG=<StringToken>". That <StringToken> (when | |
| converted from Hex UNICODE to binary) is a reference to a | |
| string in the associated string pack. | |
| @param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. | |
| @param Request A null-terminated Unicode string in | |
| <ConfigRequest> format. Note that this | |
| includes the routing information as well as | |
| the configurable name / value pairs. It is | |
| invalid for this string to be in | |
| <MultiConfigRequest> format. | |
| If a NULL is passed in for the Request field, | |
| all of the settings being abstracted by this function | |
| will be returned in the Results field. In addition, | |
| if a ConfigHdr is passed in with no request elements, | |
| all of the settings being abstracted for that particular | |
| ConfigHdr reference will be returned in the Results Field. | |
| @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 | |
| <MultiConfigAltResp> 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 string is filled with the | |
| values corresponding to all requested | |
| names. | |
| @retval EFI_OUT_OF_RESOURCES Not enough memory to store the | |
| parts of the results that must be | |
| stored awaiting possible future | |
| protocols. | |
| @retval EFI_NOT_FOUND Routing data doesn't match any | |
| known driver. Progress set to the | |
| first character in the routing header. | |
| Note: There is no requirement that the | |
| driver validate the routing data. It | |
| must skip the <ConfigHdr> in order to | |
| process the names. | |
| @retval EFI_INVALID_PARAMETER Illegal syntax. Progress set | |
| to most recent "&" before the | |
| error or the beginning of the | |
| string. | |
| @retval EFI_INVALID_PARAMETER Unknown name. Progress points | |
| to the & before the name in | |
| question. | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| WifiMgrDxeHiiConfigAccessExtractConfig ( | |
| IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, | |
| IN CONST EFI_STRING Request, | |
| OUT EFI_STRING *Progress, | |
| OUT EFI_STRING *Results | |
| ); | |
| /** | |
| This function applies changes in a driver's configuration. | |
| Input is a Configuration, which has the routing data for this | |
| driver followed by name / value configuration pairs. The driver | |
| must apply those pairs to its configurable storage. If the | |
| driver's configuration is stored in a linear block of data | |
| and the driver's name / value pairs are in <BlockConfig> | |
| format, it may use the ConfigToBlock helper function (above) to | |
| simplify the job. | |
| @param This Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL. | |
| @param Configuration A null-terminated Unicode string in | |
| <ConfigString> 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 | |
| beginn ing 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 have been distributed or are | |
| awaiting distribution. | |
| @retval EFI_OUT_OF_RESOURCES Not enough memory to store the | |
| parts of the results that must be | |
| stored awaiting possible future | |
| protocols. | |
| @retval EFI_INVALID_PARAMETERS Passing in a NULL for the | |
| Results parameter would result | |
| in this type of error. | |
| @retval EFI_NOT_FOUND Target for the specified routing data | |
| was not found | |
| **/ | |
| EFI_STATUS | |
| EFIAPI | |
| WifiMgrDxeHiiConfigAccessRouteConfig ( | |
| IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, | |
| IN CONST EFI_STRING Configuration, | |
| OUT EFI_STRING *Progress | |
| ); | |
| /** | |
| This function is called to provide results data to the driver. | |
| This data consists of a unique key that is used to identify | |
| which data is either being passed back or being asked for. | |
| @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. The format of the data tends to | |
| vary based on the opcode that generated the callback. | |
| @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 | |
| WifiMgrDxeHiiConfigAccessCallback ( | |
| IN CONST EFI_HII_CONFIG_ACCESS_PROTOCOL *This, | |
| IN EFI_BROWSER_ACTION Action, | |
| IN EFI_QUESTION_ID QuestionId, | |
| IN UINT8 Type, | |
| IN OUT EFI_IFR_TYPE_VALUE *Value, | |
| OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest | |
| ); | |
| /** | |
| Initialize the WiFi configuration form. | |
| @param[in] Private The pointer to the global private data structure. | |
| @retval EFI_SUCCESS The configuration form is initialized. | |
| @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. | |
| @retval Other Erros Returned errors when installing protocols. | |
| **/ | |
| EFI_STATUS | |
| WifiMgrDxeConfigFormInit ( | |
| WIFI_MGR_PRIVATE_DATA *Private | |
| ); | |
| /** | |
| Unload the WiFi configuration form. | |
| @param[in] Private The pointer to the global private data structure. | |
| @retval EFI_SUCCESS The configuration form is unloaded successfully. | |
| @retval Other Errors Returned Erros when uninstalling protocols. | |
| **/ | |
| EFI_STATUS | |
| WifiMgrDxeConfigFormUnload ( | |
| WIFI_MGR_PRIVATE_DATA *Private | |
| ); | |
| /** | |
| Refresh the network list display of the current Nic. | |
| @param[in] Private The pointer to the global private data structure. | |
| @param[out] IfrNvData The IFR NV data. | |
| @retval EFI_SUCCESS The operation is completed successfully. | |
| @retval EFI_OUT_OF_RESOURCES Failed to allocate memory. | |
| @retval Other Errors Returned errors when creating Opcodes or updating the | |
| Hii form. | |
| **/ | |
| EFI_STATUS | |
| WifiMgrRefreshNetworkList ( | |
| IN WIFI_MGR_PRIVATE_DATA *Private, | |
| OUT WIFI_MANAGER_IFR_NVDATA *IfrNvData | |
| ); | |
| #endif |