]> git.proxmox.com Git - mirror_edk2.git/commitdiff
add in a new API HiiLibGetSupportedSecondaryLanguages
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 14 Apr 2008 06:29:03 +0000 (06:29 +0000)
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 14 Apr 2008 06:29:03 +0000 (06:29 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5063 6f19259b-4bc3-4df7-8a09-765794883524

MdePkg/Library/HiiLib/HiiLanguage.c
MdePkg/Library/HiiLib/HiiLib.c
MdePkg/Library/HiiLib/InternalHiiLib.h

index 9ef3a3e9ed67180b94cdb912810ce6dde755da9d..14a9313507e5e5bb76623a372d089f7864cda99a 100644 (file)
@@ -91,12 +91,20 @@ HiiLibGetSupportedLanguages (
   // Collect current supported Languages for given HII handle\r
   //\r
   BufferSize = 0x1000;\r
-  LanguageString = AllocatePool (BufferSize);\r
+  LanguageString = AllocateZeroPool (BufferSize);\r
+  if (LanguageString == NULL) {\r
+    return NULL;\r
+  }\r
+  \r
   Status = mHiiStringProt->GetLanguages (mHiiStringProt, HiiHandle, LanguageString, &BufferSize);\r
   \r
   if (Status == EFI_BUFFER_TOO_SMALL) {\r
     gBS->FreePool (LanguageString);\r
-    LanguageString = AllocatePool (BufferSize);\r
+    LanguageString = AllocateZeroPool (BufferSize);\r
+    if (LanguageString == NULL) {\r
+      return NULL;\r
+    }\r
+\r
     Status = mHiiStringProt->GetLanguages (mHiiStringProt, HiiHandle, LanguageString, &BufferSize);\r
   }\r
 \r
@@ -134,3 +142,45 @@ HiiLibGetSupportedLanguageNumber (
 \r
   return LangNumber;\r
 }\r
+\r
+CHAR8 *\r
+EFIAPI\r
+HiiLibGetSupportedSecondaryLanguages (\r
+  IN EFI_HII_HANDLE           HiiHandle,\r
+  IN CONST CHAR8              *FirstLanguage\r
+  )\r
+{\r
+  EFI_STATUS  Status;\r
+  UINTN       BufferSize;\r
+  CHAR8       *LanguageString;\r
+\r
+  ASSERT (HiiHandle != NULL);\r
+  ASSERT (IsHiiHandleRegistered (HiiHandle));\r
+  //\r
+  // Collect current supported 2nd Languages for given HII handle\r
+  //\r
+  BufferSize = 0x1000;\r
+  LanguageString = AllocateZeroPool (BufferSize);\r
+  if (LanguageString == NULL) {\r
+    return NULL;\r
+  }\r
+  Status = mHiiStringProt->GetSecondaryLanguages (mHiiStringProt, HiiHandle, FirstLanguage, LanguageString, &BufferSize);\r
+  \r
+  if (Status == EFI_BUFFER_TOO_SMALL) {\r
+    gBS->FreePool (LanguageString);\r
+    LanguageString = AllocateZeroPool (BufferSize);\r
+    if (LanguageString == NULL) {\r
+      return NULL;\r
+    }\r
+\r
+    Status = mHiiStringProt->GetSecondaryLanguages (mHiiStringProt, HiiHandle, FirstLanguage, LanguageString, &BufferSize);\r
+  }\r
+\r
+  if (EFI_ERROR (Status)) {\r
+    LanguageString = NULL;\r
+  }\r
+\r
+  return LanguageString;\r
+}\r
+\r
+\r
index a1797c930f7d9f863fed9ee08e53fbde81494dcc..1f59fa4fa5a447566cb6c47eaafbee00aaf9ed10 100644 (file)
@@ -14,8 +14,8 @@
 \r
 #include "InternalHiiLib.h"\r
 \r
-EFI_HII_DATABASE_PROTOCOL   *mHiiDatabaseProt;\r
-EFI_HII_STRING_PROTOCOL     *mHiiStringProt;\r
+CONST EFI_HII_DATABASE_PROTOCOL   *mHiiDatabaseProt;\r
+CONST EFI_HII_STRING_PROTOCOL     *mHiiStringProt;\r
 \r
 /**\r
   The constructor function of Hii Library.\r
index 0303fa996862b0fbffb48799eebece143bb5ee0d..b2c8b877075057a4d4f940526d305c3cfbabe1e1 100644 (file)
@@ -36,8 +36,8 @@
 #define HII_LIB_DEFAULT_STRING_SIZE     0x200\r
 \r
 \r
-extern EFI_HII_DATABASE_PROTOCOL   *mHiiDatabaseProt;\r
-extern EFI_HII_STRING_PROTOCOL     *mHiiStringProt;\r
+extern CONST EFI_HII_DATABASE_PROTOCOL   *mHiiDatabaseProt;\r
+extern CONST EFI_HII_STRING_PROTOCOL     *mHiiStringProt;\r
 \r
 BOOLEAN\r
 IsHiiHandleRegistered (\r