REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737 Apply uncrustify changes to .c/.h files in the MdeModulePkg package Cc: Andrew Fish <afish@apple.com> Cc: Leif Lindholm <leif@nuviainc.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
		
			
				
	
	
		
			89 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /** @file
 | |
|   Language related HII Library implementation.
 | |
| 
 | |
|   Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>
 | |
|   SPDX-License-Identifier: BSD-2-Clause-Patent
 | |
| 
 | |
| **/
 | |
| 
 | |
| #include "InternalHiiLib.h"
 | |
| 
 | |
| /**
 | |
|   Retrieves a pointer to the a Null-terminated ASCII string containing the list
 | |
|   of languages that an HII handle in the HII Database supports.  The returned
 | |
|   string is allocated using AllocatePool().  The caller is responsible for freeing
 | |
|   the returned string using FreePool().  The format of the returned string follows
 | |
|   the language format assumed the HII Database.
 | |
| 
 | |
|   If HiiHandle is NULL, then ASSERT().
 | |
| 
 | |
|   @param[in]  HiiHandle  A handle that was previously registered in the HII Database.
 | |
| 
 | |
|   @retval NULL   HiiHandle is not registered in the HII database
 | |
|   @retval NULL   There are not enough resources available to retrieve the supported
 | |
|                  languages.
 | |
|   @retval NULL   The list of supported languages could not be retrieved.
 | |
|   @retval Other  A pointer to the Null-terminated ASCII string of supported languages.
 | |
| 
 | |
| **/
 | |
| CHAR8 *
 | |
| EFIAPI
 | |
| HiiGetSupportedLanguages (
 | |
|   IN EFI_HII_HANDLE  HiiHandle
 | |
|   )
 | |
| {
 | |
|   EFI_STATUS  Status;
 | |
|   UINTN       LanguageSize;
 | |
|   CHAR8       TempSupportedLanguages;
 | |
|   CHAR8       *SupportedLanguages;
 | |
| 
 | |
|   ASSERT (HiiHandle != NULL);
 | |
| 
 | |
|   //
 | |
|   // Retrieve the size required for the supported languages buffer.
 | |
|   //
 | |
|   LanguageSize = 0;
 | |
|   Status       = gHiiString->GetLanguages (gHiiString, HiiHandle, &TempSupportedLanguages, &LanguageSize);
 | |
| 
 | |
|   //
 | |
|   // If GetLanguages() returns EFI_SUCCESS for a zero size,
 | |
|   // then there are no supported languages registered for HiiHandle.  If GetLanguages()
 | |
|   // returns an error other than EFI_BUFFER_TOO_SMALL, then HiiHandle is not present
 | |
|   // in the HII Database
 | |
|   //
 | |
|   if (Status != EFI_BUFFER_TOO_SMALL) {
 | |
|     //
 | |
|     // Return NULL if the size can not be retrieved, or if HiiHandle is not in the HII Database
 | |
|     //
 | |
|     return NULL;
 | |
|   }
 | |
| 
 | |
|   //
 | |
|   // Allocate the supported languages buffer.
 | |
|   //
 | |
|   SupportedLanguages = AllocateZeroPool (LanguageSize);
 | |
|   if (SupportedLanguages == NULL) {
 | |
|     //
 | |
|     // Return NULL if allocation fails.
 | |
|     //
 | |
|     return NULL;
 | |
|   }
 | |
| 
 | |
|   //
 | |
|   // Retrieve the supported languages string
 | |
|   //
 | |
|   Status = gHiiString->GetLanguages (gHiiString, HiiHandle, SupportedLanguages, &LanguageSize);
 | |
|   if (EFI_ERROR (Status)) {
 | |
|     //
 | |
|     // Free the buffer and return NULL if the supported languages can not be retrieved.
 | |
|     //
 | |
|     FreePool (SupportedLanguages);
 | |
|     return NULL;
 | |
|   }
 | |
| 
 | |
|   //
 | |
|   // Return the Null-terminated ASCII string of supported languages
 | |
|   //
 | |
|   return SupportedLanguages;
 | |
| }
 |