]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Library/HiiLib.h
clean up the un-suitable ';' location when declaring the functions.
[mirror_edk2.git] / MdePkg / Include / Library / HiiLib.h
index de6267bcf1aba106783aad8dcec41d10505e62c2..e094fad28fd8aaa5360542e073a068445c74b163 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
@@ -43,8 +43,7 @@ HiiLibPreparePackageList (
   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
@@ -57,14 +56,14 @@ HiiLibPreparePackageList (
 \r
   If HiiHandle is NULL, then ASSERT.\r
 \r
-  @param  NumberOfPackages  The number of HII packages to register.\r
-  @param  GuidId                    Package List GUID ID.\r
-  @param  EFI_HANDLE            Optional. If not NULL, the DriverHandle on which an instance of DEVICE_PATH_PROTOCOL is installed.\r
-                                             This DriverHandle uniquely defines the device that the added packages are associated with.\r
-  @param  HiiHandle                On output, the HiiHandle is update with the handle which can be used to retrieve the Package \r
-                                             List later. If the functions failed to add the package to the default HII database, this value will\r
-                                             be set to NULL.\r
-  @param  ...                          The variable argument list describing all HII Package.\r
+  @param  NumberOfPackages    The number of HII packages to register.\r
+  @param  GuidId              Package List GUID ID.\r
+  @param  DriverHandle        Optional. If not NULL, the DriverHandle on which an instance of DEVICE_PATH_PROTOCOL is installed.\r
+                              This DriverHandle uniquely defines the device that the added packages are associated with.\r
+  @param  HiiHandle           On output, the HiiHandle is update with the handle which can be used to retrieve the Package \r
+                              List later. If the functions failed to add the package to the default HII database, this value will\r
+                              be set to NULL.\r
+  @param  ...                 The variable argument list describing all HII Package.\r
 \r
   @return  EFI_SUCCESS         If the packages are successfully added to the default HII database.\r
   @return  EFI_OUT_OF_RESOURCE Not enough resource to complete the operation.\r
@@ -78,18 +77,7 @@ HiiLibAddPackages (
   IN       EFI_HANDLE          DriverHandle, OPTIONAL\r
   OUT      EFI_HII_HANDLE      *HiiHandle,\r
   ...\r
-  )\r
-;\r
-\r
-EFI_STATUS\r
-EFIAPI\r
-HiiLibAddFontPackageToHiiDatabase (\r
-  IN       UINTN               FontSize,\r
-  IN CONST UINT8               *FontBinary,\r
-  IN CONST EFI_GUID            *GuidId,\r
-  OUT      EFI_HII_HANDLE      *HiiHandle OPTIONAL\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Removes a package list from the default HII database.\r
@@ -100,15 +88,12 @@ HiiLibAddFontPackageToHiiDatabase (
   @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
 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
@@ -134,8 +119,7 @@ HiiLibNewString (
   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
@@ -160,15 +144,14 @@ HiiLibSetString (
   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
@@ -185,10 +168,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
@@ -196,8 +177,7 @@ HiiLibGetString (
   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
@@ -223,8 +203,7 @@ HiiLibGetStringFromHandle (
   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
@@ -248,8 +227,7 @@ HiiLibGetStringFromToken (
   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
@@ -258,8 +236,6 @@ HiiLibGetStringFromToken (
   If HandleBufferLength is NULL, then ASSERT.\r
   If HiiHandleBuffer is NULL, then ASSERT.\r
 \r
-  @param  HiiDatabase            A pointer to the EFI_HII_DATABASE_PROTOCOL\r
-                                 instance.\r
   @param  HandleBufferLength     On input, a pointer to the length of the handle\r
                                  buffer. On output, the length of the handle buffer\r
                                  that is required for the handles found.\r
@@ -273,8 +249,7 @@ EFIAPI
 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
@@ -282,8 +257,8 @@ HiiLibGetHiiHandles (
   If HiiHandle could not be found in the default HII database, then ASSERT.\r
   If Guid is NULL, then ASSERT.\r
 \r
-  @param  HiiHandle              Hii handle\r
-  @param  Guid                   Package list GUID\r
+  @param  Handle              Hii handle\r
+  @param  Guid                Package list GUID\r
 \r
   @retval EFI_SUCCESS            Successfully extract GUID from Hii database.\r
 \r
@@ -293,8 +268,7 @@ EFIAPI
 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
@@ -313,8 +287,7 @@ EFI_HII_HANDLE
 EFIAPI\r
 HiiLibDevicePathToHiiHandle (\r
   IN EFI_DEVICE_PATH_PROTOCOL   *DevicePath\r
-  )\r
-;\r
+  );\r
 \r
 \r
 /**\r
@@ -336,8 +309,7 @@ EFI_STATUS
 EFIAPI\r
 HiiLibGetCurrentLanguage (\r
   OUT     CHAR8               *Lang\r
-  )\r
-;\r
+  );\r
 \r
 /**\r
   Get next language from language code list (with separator ';').\r
@@ -356,27 +328,46 @@ EFIAPI
 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
   in UEFI specification Appendix M.\r
 \r
   If HiiHandle is not a valid Handle in the default HII database, then ASSERT.\r
-  If not enough resource to complete the operation, then ASSERT.\r
 \r
   @param  HiiHandle              The HII package list handle.\r
 \r
-  @return The supported languages.\r
+  @retval   !NULL  The supported languages.\r
+  @retval   NULL    If Supported Languages can not be retrived.\r
 \r
 **/\r
 CHAR8 *\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
+  in UEFI specification Appendix M.\r
+\r
+  If HiiHandle is not a valid Handle in the default HII database, then ASSERT.\r
+  If not enough resource to complete the operation, then ASSERT.\r
+\r
+  @param  HiiHandle              The HII package list handle.\r
+  @param  FirstLanguage          Pointer to language name buffer.\r
+  \r
+  @return The supported languages.\r
+\r
+**/\r
+CHAR8 *\r
+EFIAPI\r
+HiiLibGetSupportedSecondaryLanguages (\r
+  IN EFI_HII_HANDLE           HiiHandle,\r
+  IN CONST CHAR8              *FirstLanguage\r
+  );\r
+\r
 \r
 /**\r
   This function returns the number of supported languages on HiiHandle.\r
@@ -393,12 +384,52 @@ UINT16
 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
 \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
@@ -412,10 +443,35 @@ HiiLibGetSupportedLanguageNumber (
 EFI_STATUS\r
 EFIAPI\r
 ConvertRfc3066LanguageToIso639Language (\r
-  CHAR8   *LanguageRfc3066,\r
-  CHAR8   *LanguageIso639\r
-  )\r
-;\r
+  IN  CHAR8   *LanguageRfc3066,\r
+  OUT CHAR8   *LanguageIso639\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
   Convert language code list from RFC3066 to ISO639-2, e.g. "en-US;fr-FR" will\r
@@ -432,7 +488,6 @@ CHAR8 *
 EFIAPI\r
 Rfc3066ToIso639 (\r
   CHAR8  *SupportedLanguages\r
-  )\r
-;\r
+  );\r
 \r
 #endif\r