#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
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