]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Library/HiiLib.h
edk2/MdePkg/Include/Ia32/ProcessorBind.h:
[mirror_edk2.git] / MdePkg / Include / Library / HiiLib.h
index 199a5ec1828777d9712ffb132af231d08b469235..9bad5b47761a24b932d7c1e29aa0f9e0536830fa 100644 (file)
 #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
@@ -90,8 +90,6 @@ HiiLibAddPackages (
   @param  HiiHandle                The handle that was previously registered to the data base that is requested for removal.\r
                                              List later.\r
 \r
-  @return  VOID\r
-\r
 **/\r
 VOID\r
 EFIAPI\r
@@ -157,8 +155,8 @@ HiiLibSetString (
   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
@@ -175,10 +173,8 @@ HiiLibSetString (
   @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
-\r
 EFI_STATUS\r
 EFIAPI\r
 HiiLibGetString (\r
@@ -406,9 +402,52 @@ HiiLibGetSupportedLanguageNumber (
   )\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
+\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
 /**\r
   Convert language code from RFC3066 to ISO639-2.\r
 \r
+  LanguageRfc3066 contain a single RFC 3066 code such as\r
+  "en-US" or "fr-FR".\r
+\r
+  The LanguageRfc3066 must be a buffer large enough\r
+  for ISO_639_2_ENTRY_SIZE characters.\r
+\r
   If LanguageRfc3066 is NULL, then ASSERT.\r
   If LanguageIso639 is NULL, then ASSERT.\r
 \r
@@ -422,8 +461,35 @@ HiiLibGetSupportedLanguageNumber (
 EFI_STATUS\r
 EFIAPI\r
 ConvertRfc3066LanguageToIso639Language (\r
-  CHAR8   *LanguageRfc3066,\r
-  CHAR8   *LanguageIso639\r
+  IN  CHAR8   *LanguageRfc3066,\r
+  OUT CHAR8   *LanguageIso639\r
+  )\r
+;\r
+\r
+/**\r
+  Convert language code from ISO639-2 to RFC3066.\r
+\r
+  LanguageIso639 contain a single ISO639-2 code such as\r
+  "eng" or "fra".\r
+\r
+  The LanguageRfc3066 must be a buffer large enough\r
+  for RFC_3066_ENTRY_SIZE characters.\r
+\r
+  If LanguageIso639 is NULL, then ASSERT.\r
+  If LanguageRfc3066 is NULL, then ASSERT.\r
+\r
+  @param  LanguageIso639         ISO639-2 language code.\r
+  @param  LanguageRfc3066        RFC3066 language code.\r
+\r
+  @retval EFI_SUCCESS            Language code converted.\r
+  @retval EFI_NOT_FOUND          Language code not found.\r
+\r
+**/\r
+EFI_STATUS\r
+EFIAPI\r
+ConvertIso639LanguageToRfc3066Language (\r
+  IN  CONST CHAR8   *LanguageIso639,\r
+  OUT CHAR8         *LanguageRfc3066\r
   )\r
 ;\r
 \r