/** Initialize Unicode Collation support. It tries to locate Unicode Collation 2 protocol and matches it with current platform language code. If for any reason the first attempt fails, it then tries to use Unicode Collation Protocol. @param AgentHandle The handle used to open Unicode Collation (2) protocol. @retval EFI_SUCCESS The Unicode Collation (2) protocol has been successfully located. @retval Others The Unicode Collation (2) protocol has not been located. **/ EFI_STATUS InitializeUnicodeCollationSupport ( IN EFI_HANDLE AgentHandle ) { EFI_STATUS Status; Status = EFI_UNSUPPORTED; // // First try to use RFC 4646 Unicode Collation 2 Protocol. // Status = InitializeUnicodeCollationSupportWorker ( AgentHandle, &gEfiUnicodeCollation2ProtocolGuid, L"PlatformLang", (CONST CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultPlatformLang) ); // // If the attempt to use Unicode Collation 2 Protocol fails, then we fall back // on the ISO 639-2 Unicode Collation Protocol. // if (EFI_ERROR (Status)) { Status = InitializeUnicodeCollationSupportWorker ( AgentHandle, &gEfiUnicodeCollationProtocolGuid, L"Lang", (CONST CHAR8 *) PcdGetPtr (PcdUefiVariableDefaultLang) ); } return Status; }
EFI_STATUS InitializeUnicodeCollationSupport ( IN EFI_HANDLE AgentHandle ) /*++ Routine Description: This function initializes Unicode Collation Support for shell. It tries to locate Unicode Collation (2) protocol and matches it with current platform language code and the default language code. Arguments: AgentHandle - The handle used to open Unicode Collation (2) protocol. Returns: EFI_SUCCESS - The Unicode Collation (2) protocol has been successfully located. Others - The Unicode Collation (2) protocol has not been located. --*/ { EFI_STATUS Status; // // First try to use RFC 4646 Unicode Collation 2 Protocol. // Status = InitializeUnicodeCollationSupportWorker (AgentHandle, &gEfiUnicodeCollation2ProtocolGuid); // // If the attempt to use Unicode Collation 2 Protocol fails, then we fall back // on the ISO 639-2 Unicode Collation Protocol. // if (EFI_ERROR (Status)) { Status = InitializeUnicodeCollationSupportWorker (AgentHandle, &gEfiUnicodeCollationProtocolGuid); } return Status; }