);\r
ASSERT_EFI_ERROR (Status);\r
\r
- Status = HiiLibListPackageLists (EFI_HII_PACKAGE_STRINGS, NULL, &BufferLength, &Buffer);\r
+ Status = ListPackageLists (EFI_HII_PACKAGE_STRINGS, NULL, &BufferLength, &Buffer);\r
if (Status == EFI_SUCCESS) {\r
for (Index = 0; Index < BufferLength / sizeof (EFI_HII_HANDLE); Index++) {\r
ThunkContext = CreateThunkContextForUefiHiiHandle (Buffer[Index]);\r
return EFI_INVALID_PARAMETER;\r
}\r
\r
- LangCodes3066 = HiiLibGetSupportedLanguages (UefiHiiHandle);\r
+ LangCodes3066 = HiiGetSupportedLanguages (UefiHiiHandle);\r
\r
if (LangCodes3066 == NULL) {\r
return EFI_INVALID_PARAMETER;\r
return Status;\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 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
+HiiGetSupportedSecondaryLanguages (\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
+\r
+ //\r
+ // Collect current supported 2nd Languages for given HII handle\r
+ // First try allocate 4K buffer to store the current supported 2nd languages.\r
+ //\r
+ BufferSize = 0x1000;\r
+ LanguageString = AllocateZeroPool (BufferSize);\r
+ if (LanguageString == NULL) {\r
+ return NULL;\r
+ }\r
+\r
+ Status = mHiiStringProtocol->GetSecondaryLanguages (mHiiStringProtocol, HiiHandle, FirstLanguage, LanguageString, &BufferSize);\r
+ ASSERT (Status != EFI_NOT_FOUND);\r
+ \r
+ if (Status == EFI_BUFFER_TOO_SMALL) {\r
+ FreePool (LanguageString);\r
+ LanguageString = AllocateZeroPool (BufferSize);\r
+ if (LanguageString == NULL) {\r
+ return NULL;\r
+ }\r
+\r
+ Status = mHiiStringProtocol->GetSecondaryLanguages (mHiiStringProtocol, HiiHandle, FirstLanguage, LanguageString, &BufferSize);\r
+ }\r
+\r
+ if (EFI_ERROR (Status)) {\r
+ LanguageString = NULL;\r
+ }\r
+\r
+ return LanguageString;\r
+}\r
\r
/**\r
Allows a program to determine which secondary languages are supported on a given handle for a given primary language\r
PrimaryLang3066 = ConvertIso639LanguageToRfc3066Language (PrimaryLang639);\r
ASSERT_EFI_ERROR (PrimaryLang3066 != NULL);\r
\r
- SecLangCodes3066 = HiiLibGetSupportedSecondaryLanguages (UefiHiiHandle, PrimaryLang3066);\r
+ SecLangCodes3066 = HiiGetSupportedSecondaryLanguages (UefiHiiHandle, PrimaryLang3066);\r
\r
if (SecLangCodes3066 == NULL) {\r
Status = EFI_INVALID_PARAMETER;\r