#ifndef __HII_LIB_H__\r
#define __HII_LIB_H__\r
\r
-//\r
-// Limited buffer size recommended by RFC4646 (4.3. Length Considerations)\r
-// (42 characters plus a NULL terminator)\r
-//\r
+///\r
+/// Limited buffer size recommended by RFC4646 (4.3. Length Considerations)\r
+/// (42 characters plus a NULL terminator)\r
+///\r
#define RFC_3066_ENTRY_SIZE (42 + 1)\r
\r
#define ISO_639_2_ENTRY_SIZE 3\r
IN UINTN NumberOfPackages,\r
IN CONST EFI_GUID *GuidId,\r
...\r
- )\r
-;\r
+ );\r
\r
/**\r
This function allocates pool for an EFI_HII_PACKAGE_LIST structure\r
IN EFI_HANDLE DriverHandle, OPTIONAL\r
OUT EFI_HII_HANDLE *HiiHandle,\r
...\r
- )\r
-;\r
+ );\r
\r
/**\r
Removes a package list from the default HII database.\r
EFIAPI\r
HiiLibRemovePackages (\r
IN EFI_HII_HANDLE HiiHandle\r
- )\r
-;\r
+ );\r
\r
/**\r
This function adds the string into String Package of each language\r
IN EFI_HII_HANDLE PackageList,\r
OUT EFI_STRING_ID *StringId,\r
IN CONST EFI_STRING String\r
- )\r
-;\r
+ );\r
\r
/**\r
This function update the specified string in String Package of each language\r
IN EFI_HII_HANDLE PackageList,\r
IN EFI_STRING_ID StringId,\r
IN CONST EFI_STRING String\r
- )\r
-;\r
+ );\r
\r
/**\r
This function try to retrieve string from String package of current language.\r
If fails, it try to retrieve string from String package of first language it support.\r
\r
- If String is NULL, then ASSERT.\r
If StringSize is NULL, then ASSERT.\r
+ If String is NULL and *StringSize is not 0, then ASSERT.\r
If PackageList could not be found in the default HII database, then ASSERT.\r
If StringId is not found in PackageList, then ASSERT.\r
\r
@retval EFI_NOT_FOUND The string specified by StringId is not available.\r
@retval EFI_BUFFER_TOO_SMALL The buffer specified by StringLength is too small\r
to hold the string.\r
- @retval EFI_INVALID_PARAMETER The String or StringSize was NULL.\r
\r
**/\r
EFI_STATUS\r
IN EFI_STRING_ID StringId,\r
OUT EFI_STRING String,\r
IN OUT UINTN *StringSize\r
- )\r
-;\r
+ );\r
\r
/**\r
Get string specified by StringId form the HiiHandle. The caller\r
IN EFI_HII_HANDLE HiiHandle,\r
IN EFI_STRING_ID StringId,\r
OUT EFI_STRING *String\r
- )\r
-;\r
+ );\r
\r
/**\r
Get the string given the StringId and String package Producer's Guid. The caller\r
IN EFI_GUID *ProducerGuid,\r
IN EFI_STRING_ID StringId,\r
OUT EFI_STRING *String\r
- )\r
-;\r
+ );\r
\r
/**\r
Determines the handles that are currently active in the database.\r
HiiLibGetHiiHandles (\r
IN OUT UINTN *HandleBufferLength,\r
OUT EFI_HII_HANDLE **HiiHandleBuffer\r
- )\r
-;\r
+ );\r
\r
/**\r
Extract Hii package list GUID for given HII handle.\r
HiiLibExtractGuidFromHiiHandle (\r
IN EFI_HII_HANDLE Handle,\r
OUT EFI_GUID *Guid\r
- )\r
-;\r
+ );\r
\r
/**\r
Find HII Handle in the default HII database associated with given Device Path.\r
EFIAPI\r
HiiLibDevicePathToHiiHandle (\r
IN EFI_DEVICE_PATH_PROTOCOL *DevicePath\r
- )\r
-;\r
+ );\r
\r
\r
/**\r
EFIAPI\r
HiiLibGetCurrentLanguage (\r
OUT CHAR8 *Lang\r
- )\r
-;\r
+ );\r
\r
/**\r
Get next language from language code list (with separator ';').\r
HiiLibGetNextLanguage (\r
IN OUT CHAR8 **LangCode,\r
OUT CHAR8 *Lang\r
- )\r
-;\r
+ );\r
\r
/**\r
This function returns the list of supported languages, in the format specified\r
EFIAPI\r
HiiLibGetSupportedLanguages (\r
IN EFI_HII_HANDLE HiiHandle\r
- )\r
-;\r
+ );\r
\r
/**\r
This function returns the list of supported 2nd languages, in the format specified\r
HiiLibGetSupportedSecondaryLanguages (\r
IN EFI_HII_HANDLE HiiHandle,\r
IN CONST CHAR8 *FirstLanguage\r
- )\r
-;\r
+ );\r
\r
\r
/**\r
EFIAPI\r
HiiLibGetSupportedLanguageNumber (\r
IN EFI_HII_HANDLE HiiHandle\r
- )\r
-;\r
+ );\r
+\r
+/**\r
+ Exports the contents of one or all package lists in the HII database into a buffer.\r
+\r
+ If Handle is not NULL and not a valid EFI_HII_HANDLE registered in the database, \r
+ then ASSERT.\r
+ If PackageListHeader is NULL, then ASSERT.\r
+ If PackageListSize is NULL, then ASSERT.\r
+\r
+ @param Handle The HII Handle.\r
+ @param PackageListHeader A pointer to a buffer that will contain the results of \r
+ the export function.\r
+ @param PackageListSize On output, the length of the buffer that is required for the exported data.\r
+\r
+ @retval EFI_SUCCESS Package exported.\r
+\r
+ @retval EFI_OUT_OF_RESOURCES Not enought memory to complete the operations.\r
+\r
+**/\r
+EFI_STATUS \r
+EFIAPI\r
+HiiLibExportPackageLists (\r
+ IN EFI_HII_HANDLE Handle,\r
+ OUT EFI_HII_PACKAGE_LIST_HEADER **PackageListHeader,\r
+ OUT UINTN *PackageListSize\r
+ );\r
+\r
+EFI_STATUS\r
+EFIAPI\r
+HiiLibListPackageLists (\r
+ IN UINT8 PackageType,\r
+ IN CONST EFI_GUID *PackageGuid,\r
+ IN OUT UINTN *HandleBufferLength,\r
+ OUT EFI_HII_HANDLE **Handle\r
+ );\r
\r
/**\r
Convert language code from RFC3066 to ISO639-2.\r
ConvertRfc3066LanguageToIso639Language (\r
IN CHAR8 *LanguageRfc3066,\r
OUT CHAR8 *LanguageIso639\r
- )\r
-;\r
+ );\r
\r
/**\r
Convert language code from ISO639-2 to RFC3066.\r
ConvertIso639LanguageToRfc3066Language (\r
IN CONST CHAR8 *LanguageIso639,\r
OUT CHAR8 *LanguageRfc3066\r
- )\r
-;\r
+ );\r
\r
/**\r
Convert language code list from RFC3066 to ISO639-2, e.g. "en-US;fr-FR" will\r
EFIAPI\r
Rfc3066ToIso639 (\r
CHAR8 *SupportedLanguages\r
- )\r
-;\r
+ );\r
\r
#endif\r