It then serves as the single point to receive configuration\r
information from configuration applications, routing the\r
results to the appropriate drivers.\r
- \r
- Copyright (c) 2006 - 2009, 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 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
+\r
+ @par Revision Reference:\r
+ This Protocol was introduced in UEFI Specification 2.1.\r
+\r
\r
**/\r
\r
typedef struct _EFI_HII_CONFIG_ROUTING_PROTOCOL EFI_HII_CONFIG_ROUTING_PROTOCOL;\r
\r
/**\r
- \r
+\r
This function allows the caller to request the current\r
configuration for one or more named elements from one or more\r
drivers. The resulting string is in the standard HII\r
- configuration string format. If Successful Results contains an\r
+ configuration string format. If Successful, Results contains an\r
equivalent string with "=" and the values associated with all\r
names added in. The expected implementation is for each\r
- <ConfigRequest> substring in the Request, call the HII\r
+ <ConfigRequest> substring in the Request to call the HII\r
Configuration Routing Protocol ExtractProtocol function for the\r
driver corresponding to the <ConfigHdr> at the start of the\r
<ConfigRequest> substring. The request fails if no driver\r
@param This Points to the EFI_HII_CONFIG_ROUTING_PROTOCOL\r
instance.\r
\r
- @param Request A null-terminated string in <MultiConfigRequest>\r
- format. If a NULL is passed in for the Request field,\r
- all of the settings being abstracted by this function\r
- will be returned in the Results field.\r
+ @param Request A null-terminated string in <MultiConfigRequest> format.\r
\r
@param Progress On return, points to a character in the\r
Request string. Points to the string's null\r
- terminator if request was successful. Points\r
+ terminator if the request was successful. Points\r
to the most recent '&' before the first\r
failing name / value pair (or the beginning\r
of the string if the failure is in the first\r
name / value pair) if the request was not\r
successful\r
\r
- @param Results A null-terminated string in <ConfigAltResp> format\r
+ @param Results A null-terminated string in <MultiConfigAltResp> format\r
which has all values filled in for the names in the\r
- Request string. If the Request string was NULL, the data\r
- returned is in <MultiConfigAltResp> format. String to be\r
- allocated by the called function.\r
+ Request string.\r
\r
@retval EFI_SUCCESS The Results string is filled with the\r
values corresponding to all requested\r
for the Request parameter\r
would result in this type of\r
error. The Progress parameter\r
- is set to NULL. \r
- \r
+ is set to NULL.\r
+\r
@retval EFI_NOT_FOUND Routing data doesn't match any\r
known driver. Progress set to\r
the "G" in "GUID" of the\r
configuration extraction.\r
\r
@retval EFI_INVALID_PARAMETER Illegal syntax. Progress set\r
- to most recent & before the\r
+ to the most recent & before the\r
+ error, or the beginning of the\r
+ string.\r
+ @retval EFI_INVALID_PARAMETER The ExtractConfig function of the\r
+ underlying HII Configuration\r
+ Access Protocol returned\r
+ EFI_INVALID_PARAMETER. Progress\r
+ set to most recent & before the\r
error or the beginning of the\r
string.\r
- @retval EFI_INVALID_PARAMETER Unknown name.\r
-\r
\r
**/\r
typedef\r
);\r
\r
/**\r
- This function allows the caller to request the current configuration \r
+ This function allows the caller to request the current configuration\r
for the entirety of the current HII database and returns the data in\r
a null-terminated string.\r
\r
This function allows the caller to request the current\r
configuration for all of the current HII database. The results\r
include both the current and alternate configurations as\r
- described in ExtractConfig() above. \r
- \r
+ described in ExtractConfig() above.\r
+\r
@param This Points to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.\r
- \r
- @param Results A null-terminated string in <MultiConfigAltResp>\r
- format which has all values filled in for the\r
- names in the Request string.\r
- String to be allocated by this function.\r
- De-allocation is up to the caller.\r
- \r
+\r
+ @param Results Null-terminated Unicode string in\r
+ <MultiConfigAltResp> format which has all values\r
+ filled in for the entirety of the current HII\r
+ database. String to be allocated by the called\r
+ function. De-allocation is up to the caller.\r
+\r
@retval EFI_SUCCESS The Results string is filled with the\r
values corresponding to all requested\r
names.\r
- \r
+\r
@retval EFI_OUT_OF_RESOURCES Not enough memory to store the\r
parts of the results that must be\r
stored awaiting possible future\r
protocols.\r
- \r
+\r
@retval EFI_INVALID_PARAMETERS For example, passing in a NULL\r
for the Results parameter\r
would result in this type of\r
);\r
\r
/**\r
- \r
+\r
This function routes the results of processing forms to the\r
appropriate targets. It scans for <ConfigHdr> within the string\r
and passes the header and subsequent body to the driver whose\r
offset of the most recent '&' before the\r
first failing name / value pair (or the\r
beginning of the string if the failure is in\r
- the first name / value pair) or the\r
+ the first name / value pair), or the\r
terminating NULL if all was successful.\r
\r
@retval EFI_SUCCESS The results have been distributed or are\r
awaiting distribution.\r
- \r
+\r
@retval EFI_OUT_OF_RESOURCES Not enough memory to store the\r
parts of the results that must be\r
stored awaiting possible future\r
protocols.\r
- \r
+\r
@retval EFI_INVALID_PARAMETERS Passing in a NULL for the\r
Results parameter would result\r
in this type of error.\r
- \r
- @retval EFI_NOT_FOUND Target for the specified routing data\r
- was not found\r
+\r
+ @retval EFI_NOT_FOUND The target for the specified routing data\r
+ was not found.\r
\r
**/\r
typedef\r
\r
\r
/**\r
- \r
+\r
This function extracts the current configuration from a block of\r
bytes. To do so, it requires that the ConfigRequest string\r
consists of a list of <BlockName> formatted names. It uses the\r
\r
@param ConfigRequest A null-terminated string in <ConfigRequest> format.\r
\r
- @param Block Array of bytes defining the block's\r
+ @param Block An array of bytes defining the block's\r
configuration.\r
\r
- @param BlockSize Length in bytes of Block.\r
+ @param BlockSize The length in bytes of Block.\r
\r
- @param Config Filled-in configuration string. String\r
+ @param Config The filled-in configuration string. String\r
allocated by the function. Returned only if\r
- call is successful.\r
+ call is successful. The null-terminated string\r
+ will be <ConfigResp> format.\r
\r
@param Progress A pointer to a string filled in with the\r
offset of the most recent '&' before the\r
first failing name / value pair (or the\r
beginning of the string if the failure is in\r
- the first name / value pair) or the\r
+ the first name / value pair), or the\r
terminating NULL if all was successful.\r
\r
@retval EFI_SUCCESS The request succeeded. Progress points\r
to the first character of\r
ConfigRequest.\r
\r
- @retval EFI_NOT_FOUND Target for the specified routing data\r
+ @retval EFI_NOT_FOUND The target for the specified routing data\r
was not found. Progress points to the\r
'G' in "GUID" of the errant routing\r
- data. \r
- @retval EFI_DEVICE_ERROR Block not large enough. Progress undefined.\r
+ data.\r
+ @retval EFI_DEVICE_ERROR The block is not large enough. Progress undefined.\r
\r
@retval EFI_INVALID_PARAMETER Encountered non <BlockName>\r
formatted string. Block is\r
BlockLength parameter is (on input)\r
shorter than required by the\r
Configuration string, only the BlockSize\r
- parameter is updated and an appropriate\r
+ parameter is updated, and an appropriate\r
status (see below) is returned.\r
\r
@param BlockSize The length of the Block in units of UINT8.\r
On input, this is the size of the Block. On\r
- output, if successful, contains the index of\r
- the last modified byte in the Block.\r
+ output, if successful, contains the largest\r
+ index of the modified byte in the Block, or\r
+ the required buffer size if the Block is not\r
+ large enough.\r
\r
@param Progress On return, points to an element of the\r
ConfigResp string filled in with the offset\r
of the most recent "&" before the first\r
failing name / value pair (or the beginning\r
of the string if the failure is in the first\r
- name / value pair) or the terminating NULL\r
+ name / value pair), or the terminating NULL\r
if all was successful.\r
\r
@retval EFI_SUCCESS The request succeeded. Progress points to the null\r
value pair. Block is left updated and\r
Progress points at the '&' preceding the first\r
non-<BlockName>.\r
+ @retval EFI_DEVICE_ERROR Block not large enough. Progress undefined.\r
+ @retval EFI_NOT_FOUND Target for the specified routing data was not found.\r
+ Progress points to the "G" in "GUID" of the errant\r
+ routing data.\r
+ @retval EFI_BUFFER_TOO_SMALL Block not large enough. Progress undefined.\r
+ BlockSize is updated with the required buffer size.\r
\r
**/\r
typedef\r
);\r
\r
/**\r
- This helper function is to be called by drivers to extract portions of \r
+ This helper function is to be called by drivers to extract portions of\r
a larger configuration string.\r
- \r
+\r
@param This A pointer to the EFI_HII_CONFIG_ROUTING_PROTOCOL instance.\r
- @param Configuration A null-terminated string in <MultiConfigAltResp> format.\r
- @param Guid A pointer to the GUID value to search for in the \r
- routing portion of the ConfigResp string when retrieving \r
- the requested data. If Guid is NULL, then all GUID \r
+ @param ConfigResp A null-terminated string in <ConfigAltResp> format.\r
+ @param Guid A pointer to the GUID value to search for in the\r
+ routing portion of the ConfigResp string when retrieving\r
+ the requested data. If Guid is NULL, then all GUID\r
+ values will be searched for.\r
+ @param Name A pointer to the NAME value to search for in the\r
+ routing portion of the ConfigResp string when retrieving\r
+ the requested data. If Name is NULL, then all Name\r
values will be searched for.\r
- @param Name A pointer to the NAME value to search for in the \r
- routing portion of the ConfigResp string when retrieving \r
- the requested data. If Name is NULL, then all Name \r
- values will be searched for. \r
- @param DevicePath A pointer to the PATH value to search for in the \r
- routing portion of the ConfigResp string when retrieving \r
- the requested data. If DevicePath is NULL, then all \r
- DevicePath values will be searched for. \r
- @param AltCfgId A pointer to the ALTCFG value to search for in the \r
- routing portion of the ConfigResp string when retrieving \r
- the requested data. If this parameter is NULL, \r
+ @param DevicePath A pointer to the PATH value to search for in the\r
+ routing portion of the ConfigResp string when retrieving\r
+ the requested data. If DevicePath is NULL, then all\r
+ DevicePath values will be searched for.\r
+ @param AltCfgId A pointer to the ALTCFG value to search for in the\r
+ routing portion of the ConfigResp string when retrieving\r
+ the requested data. If this parameter is NULL,\r
then the current setting will be retrieved.\r
- @param AltCfgResp A pointer to a buffer which will be allocated by the \r
- function which contains the retrieved string as requested. \r
- This buffer is only allocated if the call was successful. \r
- \r
- @retval EFI_SUCCESS The request succeeded. The requested data was extracted \r
+ @param AltCfgResp A pointer to a buffer which will be allocated by the\r
+ function which contains the retrieved string as requested.\r
+ This buffer is only allocated if the call was successful.\r
+ The null-terminated string will be <ConfigResp> format.\r
+\r
+ @retval EFI_SUCCESS The request succeeded. The requested data was extracted\r
and placed in the newly allocated AltCfgResp buffer.\r
- @retval EFI_OUT_OF_RESOURCES Not enough memory to allocate AltCfgResp. \r
+ @retval EFI_OUT_OF_RESOURCES Not enough memory to allocate AltCfgResp.\r
@retval EFI_INVALID_PARAMETER Any parameter is invalid.\r
- @retval EFI_NOT_FOUND Target for the specified routing data was not found.\r
+ @retval EFI_NOT_FOUND The target for the specified routing data was not found.\r
**/\r
typedef\r
-EFI_STATUS \r
+EFI_STATUS\r
(EFIAPI * EFI_HII_GET_ALT_CFG)(\r
- IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This, \r
- IN CONST EFI_STRING Configuration, \r
- IN CONST EFI_GUID *Guid, \r
- IN CONST EFI_STRING Name, \r
- IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath, \r
+ IN CONST EFI_HII_CONFIG_ROUTING_PROTOCOL *This,\r
+ IN CONST EFI_STRING ConfigResp,\r
+ IN CONST EFI_GUID *Guid,\r
+ IN CONST EFI_STRING Name,\r
+ IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath,\r
IN CONST UINT16 *AltCfgId,\r
- OUT EFI_STRING *AltCfgResp \r
+ OUT EFI_STRING *AltCfgResp\r
);\r
\r
///\r