#ifndef __HII_LIB_H__\r
#define __HII_LIB_H__\r
\r
+////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////\r
+// HiiLib Functions\r
+////////////////////////////////////////////////////////\r
+////////////////////////////////////////////////////////\r
\r
/**\r
Registers a list of packages in the HII Database and returns the HII Handle\r
)\r
;\r
\r
-\r
-////////////////////////////////////////////////////////\r
-////////////////////////////////////////////////////////\r
-// HiiLib Functions\r
-////////////////////////////////////////////////////////\r
-////////////////////////////////////////////////////////\r
-\r
-/**\r
- Registers a list of packages in the HII Database and returns the HII Handle\r
- associated with that registration. If an HII Handle has already been registered\r
- with the same PackageListGuid, then NULL is returned. If there are not enough \r
- resources to perform the registration, then NULL is returned. If an empty list \r
- of packages is passed in, then NULL is returned. If the size of the list of \r
- package is 0, then NULL is returned.\r
-\r
- @param[in] PackageListGuid An optional parameter that is used to identify \r
- the GUID of the package list. If this parameter \r
- is NULL, then gEfiCallerIdGuid is used.\r
- @param[in] DeviceHandle Optional. If not NULL, the Device Handle on which \r
- an instance of DEVICE_PATH_PROTOCOL is installed.\r
- This Device Handle uniquely defines the device that \r
- the added packages are associated with.\r
- @param[in] ... The variable argument list that contains pointers \r
- to packages terminated by a NULL.\r
-\r
- @retval NULL A HII Handle has already been registered in the HII Database with\r
- the same PackageListGuid.\r
- @retval NULL The HII Handle could not be created.\r
- @retval Other The HII Handle associated with the newly registered package list.\r
-\r
-**/\r
-EFI_HII_HANDLE\r
-EFIAPI\r
-HiiAddPackages (\r
- IN CONST EFI_GUID *PackageListGuid, OPTIONAL\r
- IN EFI_HANDLE DeviceHandle, OPTIONAL\r
- ...\r
- );\r
-\r
-/**\r
- Removes a package list from the HII Database.\r
-\r
- If HiiHandle is NULL, then ASSERT().\r
- If HiiHandle is not a valid EFI_HII_HANDLE in the HII Database, then ASSERT().\r
-\r
- @param[in] HiiHandle A handle that was previously registered in the HII Database.\r
-\r
-**/\r
-VOID\r
-EFIAPI\r
-HiiRemovePackages (\r
- IN EFI_HII_HANDLE HiiHandle\r
- );\r
-\r
-/**\r
- Retrieves the array of all the HII Handles in the HII Database.\r
- This array is terminated with a NULL HII Handle.\r
- This function allocates the returned array using AllocatePool().\r
- The caller is responsible for freeing the array with FreePool().\r
-\r
- @param[in] PackageListGuid An optional parameter that is used to request \r
- an HII Handle that is associatd with a specific\r
- Package List GUID. If this parameter is NULL\r
- then all the HII Handles in the HII Database\r
- are returned. If this parameter is not NULL\r
- then at most 1 HII Handle is returned.\r
-\r
- @retval NULL There are no HII handles in the HII database\r
- @retval NULL The array of HII Handles could not be retrieved\r
- @retval Other A pointer to the NULL terminated array of HII Handles\r
-\r
-**/\r
-EFI_HII_HANDLE *\r
-EFIAPI\r
-HiiGetHiiHandles (\r
- IN CONST EFI_GUID *PackageListGuid OPTIONAL\r
- );\r
-\r
-/**\r
- Retrieves a pointer to the a Null-terminated ASCII string containing the list \r
- of languages that an HII handle in the HII Database supports. The returned \r
- string is allocated using AllocatePool(). The caller is responsible for freeing\r
- the returned string using FreePool(). The format of the returned string follows\r
- the language format assumed the HII Database.\r
- \r
- If HiiHandle is NULL, then ASSERT().\r
-\r
- @param[in] HiiHandle A handle that was previously registered in the HII Database.\r
-\r
- @retval NULL HiiHandle is not registered in the HII database\r
- @retval NULL There are not enough resources available to retrieve the suported \r
- languages.\r
- @retval NULL The list of suported languages could not be retrieved.\r
- @retval Other A pointer to the Null-terminated ASCII string of supported languages.\r
-\r
-**/\r
-CHAR8 *\r
-EFIAPI\r
-HiiGetSupportedLanguages (\r
- IN EFI_HII_HANDLE HiiHandle\r
- );\r
-\r
-/**\r
- Retrieves a string from a string package in a specific language. If the language\r
- is not specified, then a string from a string package in the current platform \r
- language is retrieved. If the string can not be retrieved using the specified \r
- language or the current platform language, then the string is retrieved from \r
- the string package in the first language the string package supports. The \r
- returned string is allocated using AllocatePool(). The caller is responsible \r
- for freeing the allocated buffer using FreePool().\r
- \r
- If HiiHandle is NULL, then ASSERT().\r
- If StringId is 0, then ASSET.\r
-\r
- @param[in] HiiHandle A handle that was previously registered in the HII Database.\r
- @param[in] StringId The identifier of the string to retrieved from the string \r
- package associated with HiiHandle.\r
- @param[in] Language The language of the string to retrieve. If this parameter \r
- is NULL, then the current platform language is used. The \r
- format of Language must follow the language format assumed \r
- the HII Database.\r
-\r
- @retval NULL The string specified by StringId is not present in the string package.\r
- @retval Other The string was returned.\r
-\r
-**/\r
-EFI_STRING\r
-EFIAPI\r
-HiiGetString (\r
- IN EFI_HII_HANDLE HiiHandle,\r
- IN EFI_STRING_ID StringId,\r
- IN CONST CHAR8 *Language OPTIONAL\r
- );\r
-\r
-/**\r
- Retrieves a string from a string package names by GUID in a specific language. \r
- If the language is not specified, then a string from a string package in the \r
- current platform language is retrieved. If the string can not be retrieved \r
- using the specified language or the current platform language, then the string \r
- is retrieved from the string package in the first language the string package \r
- supports. The returned string is allocated using AllocatePool(). The caller \r
- is responsible for freeing the allocated buffer using FreePool().\r
- \r
- If PackageListGuid is NULL, then ASSERT().\r
- If StringId is 0, then ASSET.\r
-\r
- @param[in] PackageListGuid The GUID of a package list that was previously \r
- registered in the HII Database.\r
- @param[in] StringId The identifier of the string to retrieved from the \r
- string package associated with PackageListGuid.\r
- @param[in] Language The language of the string to retrieve. If this \r
- parameter is NULL, then the current platform \r
- language is used. The format of Language must \r
- follow the language format assumed the HII Database.\r
-\r
- @retval NULL The package list specified by PackageListGuid is not present in the\r
- HII Database.\r
- @retval NULL The string specified by StringId is not present in the string package.\r
- @retval Other The string was returned.\r
-\r
-**/\r
-EFI_STRING\r
-EFIAPI\r
-HiiGetPackageString (\r
- IN CONST EFI_GUID *PackageListGuid,\r
- IN EFI_STRING_ID StringId,\r
- IN CONST CHAR8 *Language OPTIONAL\r
- );\r
-\r
-/**\r
- This function create a new string in String Package or updates an existing \r
- string in a String Package. If StringId is 0, then a new string is added to\r
- a String Package. If StringId is not zero, then a string in String Package is\r
- updated. If SupportedLanguages is NULL, then the string is added or updated\r
- for all the languages that the String Package supports. If SupportedLanguages\r
- is not NULL, then the string is added or updated for the set of languages \r
- specified by SupportedLanguages.\r
- \r
- If HiiHandle is NULL, then ASSERT().\r
- If String is NULL, then ASSERT().\r
-\r
- @param[in] HiiHandle A handle that was previously registered in the \r
- HII Database.\r
- @param[in] StringId If zero, then a new string is created in the \r
- String Package associated with HiiHandle. If \r
- non-zero, then the string specified by StringId \r
- is updated in the String Package associated \r
- with HiiHandle. \r
- @param[in] String A pointer to the Null-terminated Unicode string \r
- to add or update in the String Package associated \r
- with HiiHandle.\r
- @param[in] SupportedLanguages A pointer to a Null-terminated ASCII string of \r
- language codes. If this parameter is NULL, then \r
- String is added or updated in the String Package \r
- associated with HiiHandle for all the languages \r
- that the String Package supports. If this \r
- parameter is not NULL, then then String is added \r
- or updated in the String Package associated with \r
- HiiHandle for the set oflanguages specified by \r
- SupportedLanguages. The format of \r
- SupportedLanguages must follow the language \r
- format assumed the HII Database.\r
-\r
- @retval 0 The string could not be added or updated in the String Package.\r
- @retval Other The EFI_STRING_ID of the newly added or updated string.\r
-\r
-**/\r
-EFI_STRING_ID\r
-EFIAPI\r
-HiiSetString (\r
- IN EFI_HII_HANDLE HiiHandle,\r
- IN EFI_STRING_ID StringId, OPTIONAL\r
- IN CONST EFI_STRING String,\r
- IN CONST CHAR8 *SupportedLanguages OPTIONAL\r
- );\r
-\r
-/**\r
- Validates the config data associated with an HII handle in the HII Database.\r
- \r
- If HiiHandle is NULL, then ASSERT().\r
-\r
- @param[in] HiiHandle A handle that was previously registered in the HII Database.\r
-\r
- @retval TRUE The config data associated with HiiHandle passes all validation\r
- checks.\r
- @retval FALSE The config data associated with HiiHandle failed one or more \r
- validation checks.\r
-\r
-**/\r
-BOOLEAN\r
-EFIAPI\r
-HiiValidateDataFromHiiHandle (\r
- IN EFI_HII_HANDLE HiiHandle\r
- );\r
-\r
/**\r
Allocates and returns a Null-terminated Unicode <ConfigHdr> string using routing \r
information that includes a GUID, an optional Unicode string name, and a device\r