From b650f5041faf35273fa12798fe78d38745f7da5c Mon Sep 17 00:00:00 2001 From: qwang12 Date: Wed, 21 Jan 2009 10:16:47 +0000 Subject: Update the INF file name based on the directory name change. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7340 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Compatibility/UcOnUc2Thunk/UcOnUc2Thunk.c | 458 +++++++++++++++++++++ .../Compatibility/UcOnUc2Thunk/UcOnUc2Thunk.inf | 62 +++ .../Compatibility/UcOnUc2Thunk/UcToUc2Thunk.c | 458 --------------------- .../Compatibility/UcOnUc2Thunk/UcToUc2Thunk.inf | 62 --- 4 files changed, 520 insertions(+), 520 deletions(-) create mode 100644 EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcOnUc2Thunk.c create mode 100644 EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcOnUc2Thunk.inf delete mode 100644 EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcToUc2Thunk.c delete mode 100644 EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcToUc2Thunk.inf (limited to 'EdkCompatibilityPkg') diff --git a/EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcOnUc2Thunk.c b/EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcOnUc2Thunk.c new file mode 100644 index 0000000000..9a5549fff1 --- /dev/null +++ b/EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcOnUc2Thunk.c @@ -0,0 +1,458 @@ +/** @file +Module produce UC on top of UC2. + +UEFI 2.1 specification supersedes Inte's EFI Specification 1.10. +UNICODE_COLLATION_PROTOCOL defined in Inte's EFI Specification 1.10 is replaced by +EFI_UNICODE_COLLATION_PROTOCOL in UEFI 2.1. +This module produces UC on top of UC2. This module is used on platform when both of +these two conditions are true: +1) EFI 1.10 module consuming UC present +2) And the rest of modules on the platform produce UC2 + +Copyright (c) 2006 - 2008 Intel Corporation.
+All rights reserved. This program and the accompanying materials +are licensed and made available under the terms and conditions of the BSD License +which accompanies this distribution. The full text of the license may be found at +http://opensource.org/licenses/bsd-license.php + +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +Module Name: + +**/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + + + +/** + Performs a case-insensitive comparison of two Null-terminated Unicode + strings. + + @param This Protocol instance pointer. + @param Str1 A pointer to a Null-terminated Unicode string. + @param Str2 A pointer to a Null-terminated Unicode string. + + @retval 0 Str1 is equivalent to Str2 + @retval > 0 Str1 is lexically greater than Str2 + @retval < 0 Str1 is lexically less than Str2 + +**/ +INTN +EFIAPI +StriColl ( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN CHAR16 *Str1, + IN CHAR16 *Str2 + ); + +/** + Converts all the Unicode characters in a Null-terminated Unicode string to + lower case Unicode characters. + + @param This Protocol instance pointer. + @param Str A pointer to a Null-terminated Unicode string. + +**/ +VOID +EFIAPI +StrLwr ( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN OUT CHAR16 *Str + ); + +/** + Converts all the Unicode characters in a Null-terminated Unicode string to upper + case Unicode characters. + + @param This Protocol instance pointer. + @param Str A pointer to a Null-terminated Unicode string. + +**/ +VOID +EFIAPI +StrUpr ( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN OUT CHAR16 *Str + ); + +/** + Performs a case-insensitive comparison of a Null-terminated Unicode + pattern string and a Null-terminated Unicode string. + + @param This Protocol instance pointer. + @param String A pointer to a Null-terminated Unicode string. + @param Pattern A pointer to a Null-terminated Unicode pattern string. + + @retval TRUE Pattern was found in String. + @retval FALSE Pattern was not found in String. + +**/ +BOOLEAN +EFIAPI +MetaiMatch ( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN CHAR16 *String, + IN CHAR16 *Pattern + ); + +/** + Converts an 8.3 FAT file name in an OEM character set to a Null-terminated + Unicode string. + + @param This Protocol instance pointer. + @param FatSize The size of the string Fat in bytes. + @param Fat A pointer to a Null-terminated string that contains an 8.3 file + name using an OEM character set. + @param String A pointer to a Null-terminated Unicode string. The string must + be preallocated to hold FatSize Unicode characters. + +**/ +VOID +EFIAPI +FatToStr ( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN UINTN FatSize, + IN CHAR8 *Fat, + OUT CHAR16 *String + ); + +/** + Converts a Null-terminated Unicode string to legal characters in a FAT + filename using an OEM character set. + + @param This Protocol instance pointer. + @param String A pointer to a Null-terminated Unicode string. The string must + be preallocated to hold FatSize Unicode characters. + @param FatSize The size of the string Fat in bytes. + @param Fat A pointer to a Null-terminated string that contains an 8.3 file + name using an OEM character set. + + @retval TRUE Fat is a Long File Name + @retval FALSE Fat is an 8.3 file name + +**/ +BOOLEAN +EFIAPI +StrToFat ( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN CHAR16 *String, + IN UINTN FatSize, + OUT CHAR8 *Fat + ); + +#define UC_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('_', 'U', 'C', '_') + +typedef struct { + UINT32 Signature; + EFI_UNICODE_COLLATION_PROTOCOL UC; + EFI_UNICODE_COLLATION_PROTOCOL *UC2; +} UC_PRIVATE_DATA; + +#define UC_PRIVATE_DATA_FROM_THIS(a) CR (a, UC_PRIVATE_DATA, UC, UC_PRIVATE_DATA_SIGNATURE) + +// +// Firmware Volume Protocol template +// +EFI_EVENT mUcRegistration; + +UC_PRIVATE_DATA gUCPrivateDataTemplate = { + UC_PRIVATE_DATA_SIGNATURE, + { + StriColl, + MetaiMatch, + StrLwr, + StrUpr, + FatToStr, + StrToFat, + NULL + }, + NULL +}; + +// +// Module globals +// + +VOID +EFIAPI +Uc2NotificationEvent ( + IN EFI_EVENT Event, + IN VOID *Context + ) +{ + EFI_STATUS Status; + UINTN BufferSize; + EFI_HANDLE Handle; + UC_PRIVATE_DATA *Private; + EFI_UNICODE_COLLATION_PROTOCOL *Uc2; + + while (TRUE) { + BufferSize = sizeof (Handle); + Status = gBS->LocateHandle ( + ByRegisterNotify, + &gEfiUnicodeCollation2ProtocolGuid, + mUcRegistration, + &BufferSize, + &Handle + ); + if (EFI_ERROR (Status)) { + // + // Exit Path of While Loop.... + // + break; + } + + // + // Skip this handle if the Firmware Volume Protocol is already installed + // + Status = gBS->HandleProtocol ( + Handle, + &gEfiUnicodeCollationProtocolGuid, + (VOID **)&Uc2 + ); + if (!EFI_ERROR (Status)) { + continue; + } + + // + // Allocate private data structure + // + Private = AllocateCopyPool (sizeof (UC_PRIVATE_DATA), &gUCPrivateDataTemplate); + if (Private == NULL) { + continue; + } + + // + // Retrieve the UC Protocol + // + Status = gBS->HandleProtocol ( + Handle, + &gEfiUnicodeCollation2ProtocolGuid, + (VOID **)&Private->UC2 + ); + ASSERT_EFI_ERROR (Status); + + // + // Fill in rest of private data structure + // + Private->UC.SupportedLanguages = AllocateZeroPool (ISO_639_2_ENTRY_SIZE + 1); + Status = ConvertRfc3066LanguageToIso639Language (Private->UC2->SupportedLanguages, Private->UC.SupportedLanguages); + + if (!EFI_ERROR (Status)) { + + // + // Install Firmware Volume Protocol onto same handle + // + Status = gBS->InstallMultipleProtocolInterfaces ( + &Handle, + &gEfiUnicodeCollationProtocolGuid, + &Private->UC, + NULL + ); + ASSERT_EFI_ERROR (Status); + } + } +} + + +/** + The user Entry Point for DXE driver. The user code starts with this function + as the real entry point for the image goes into a library that calls this + function. + + @param[in] ImageHandle The firmware allocated handle for the EFI image. + @param[in] SystemTable A pointer to the EFI System Table. + + @retval EFI_SUCCESS The entry point is executed successfully. + @retval other Some error occurs when executing this entry point. + +**/ +EFI_STATUS +EFIAPI +InitializeUC ( + IN EFI_HANDLE ImageHandle, + IN EFI_SYSTEM_TABLE *SystemTable + ) +{ + EfiCreateProtocolNotifyEvent ( + &gEfiUnicodeCollation2ProtocolGuid, + TPL_CALLBACK, + Uc2NotificationEvent, + NULL, + &mUcRegistration + ); + return EFI_SUCCESS; +} + + +/** + Performs a case-insensitive comparison of two Null-terminated Unicode + strings. + + @param This Protocol instance pointer. + @param Str1 A pointer to a Null-terminated Unicode string. + @param Str2 A pointer to a Null-terminated Unicode string. + + @retval 0 Str1 is equivalent to Str2 + @retval > 0 Str1 is lexically greater than Str2 + @retval < 0 Str1 is lexically less than Str2 + +**/ +INTN +EFIAPI +StriColl ( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN CHAR16 *Str1, + IN CHAR16 *Str2 + ) +{ + UC_PRIVATE_DATA *Private; + + Private = UC_PRIVATE_DATA_FROM_THIS (This); + + return Private->UC2->StriColl (Private->UC2, Str1, Str2); +} + + +/** + Converts all the Unicode characters in a Null-terminated Unicode string to + lower case Unicode characters. + + @param This Protocol instance pointer. + @param Str A pointer to a Null-terminated Unicode string. + +**/ +VOID +EFIAPI +StrLwr ( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN OUT CHAR16 *Str + ) +{ + UC_PRIVATE_DATA *Private; + + Private = UC_PRIVATE_DATA_FROM_THIS (This); + + Private->UC2->StrLwr (Private->UC2, Str); +} + + +/** + Converts all the Unicode characters in a Null-terminated Unicode string to upper + case Unicode characters. + + @param This Protocol instance pointer. + @param Str A pointer to a Null-terminated Unicode string. + +**/ +VOID +EFIAPI +StrUpr ( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN OUT CHAR16 *Str + ) +{ + UC_PRIVATE_DATA *Private; + + Private = UC_PRIVATE_DATA_FROM_THIS (This); + + Private->UC2->StrUpr (Private->UC2, Str); +} + +/** + Performs a case-insensitive comparison of a Null-terminated Unicode + pattern string and a Null-terminated Unicode string. + + @param This Protocol instance pointer. + @param String A pointer to a Null-terminated Unicode string. + @param Pattern A pointer to a Null-terminated Unicode pattern string. + + @retval TRUE Pattern was found in String. + @retval FALSE Pattern was not found in String. + +**/ +BOOLEAN +EFIAPI +MetaiMatch ( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN CHAR16 *String, + IN CHAR16 *Pattern + ) +{ + UC_PRIVATE_DATA *Private; + + Private = UC_PRIVATE_DATA_FROM_THIS (This); + + return Private->UC2->MetaiMatch (Private->UC2, String, Pattern); +} + + +/** + Converts an 8.3 FAT file name in an OEM character set to a Null-terminated + Unicode string. + + @param This Protocol instance pointer. + @param FatSize The size of the string Fat in bytes. + @param Fat A pointer to a Null-terminated string that contains an 8.3 file + name using an OEM character set. + @param String A pointer to a Null-terminated Unicode string. The string must + be preallocated to hold FatSize Unicode characters. + +**/ +VOID +EFIAPI +FatToStr ( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN UINTN FatSize, + IN CHAR8 *Fat, + OUT CHAR16 *String + ) +{ + UC_PRIVATE_DATA *Private; + + Private = UC_PRIVATE_DATA_FROM_THIS (This); + + Private->UC2->FatToStr (Private->UC2, FatSize, Fat, String); +} + + +/** + Converts a Null-terminated Unicode string to legal characters in a FAT + filename using an OEM character set. + + @param This Protocol instance pointer. + @param String A pointer to a Null-terminated Unicode string. The string must + be preallocated to hold FatSize Unicode characters. + @param FatSize The size of the string Fat in bytes. + @param Fat A pointer to a Null-terminated string that contains an 8.3 file + name using an OEM character set. + + @retval TRUE Fat is a Long File Name + @retval FALSE Fat is an 8.3 file name + +**/ +BOOLEAN +EFIAPI +StrToFat ( + IN EFI_UNICODE_COLLATION_PROTOCOL *This, + IN CHAR16 *String, + IN UINTN FatSize, + OUT CHAR8 *Fat + ) +{ + UC_PRIVATE_DATA *Private; + + Private = UC_PRIVATE_DATA_FROM_THIS (This); + + return Private->UC2->StrToFat (Private->UC2, String, FatSize, Fat); +} + diff --git a/EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcOnUc2Thunk.inf b/EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcOnUc2Thunk.inf new file mode 100644 index 0000000000..ffe2d3f29c --- /dev/null +++ b/EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcOnUc2Thunk.inf @@ -0,0 +1,62 @@ +#/** @file +# Module produce UC on top of UC2. +# +# UEFI 2.1 specification supersedes Inte's EFI Specification 1.10. +# UNICODE_COLLATION_PROTOCOL defined in Inte's EFI Specification 1.10 is replaced by +# EFI_UNICODE_COLLATION_PROTOCOL in UEFI 2.1. +# This module produces UC on top of UC2. This module is used on platform when both of +# these two conditions are true: +# 1) EFI 1.10 module consuming UC present +# 2) And the rest of modules on the platform produce UC2 +# +# Copyright (c) 2006 - 2008, Intel Corporation +# +# All rights reserved. This program and the accompanying materials +# are licensed and made available under the terms and conditions of the BSD License +# which accompanies this distribution. The full text of the license may be found at +# http://opensource.org/licenses/bsd-license.php +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. +# +# +#**/ + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = UcOnUc2Thunk + FILE_GUID = FD76FF8E-665F-4afc-AF75-724EF5A569E5 + MODULE_TYPE = DXE_DRIVER + VERSION_STRING = 1.0 + EDK_RELEASE_VERSION = 0x00020000 + EFI_SPECIFICATION_VERSION = 0x00020000 + ENTRY_POINT = InitializeUC + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC +# + +[Sources.common] + UcOnUc2Thunk.c + +[Packages] + MdePkg/MdePkg.dec + MdeModulePkg/MdeModulePkg.dec + IntelFrameworkPkg/IntelFrameworkPkg.dec + +[LibraryClasses] + UefiDriverEntryPoint + UefiBootServicesTableLib + BaseLib + DebugLib + UefiLib + MemoryAllocationLib + HiiLib + +[Protocols] + gEfiUnicodeCollation2ProtocolGuid + gEfiUnicodeCollationProtocolGuid + +[Depex] + TRUE diff --git a/EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcToUc2Thunk.c b/EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcToUc2Thunk.c deleted file mode 100644 index 9a5549fff1..0000000000 --- a/EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcToUc2Thunk.c +++ /dev/null @@ -1,458 +0,0 @@ -/** @file -Module produce UC on top of UC2. - -UEFI 2.1 specification supersedes Inte's EFI Specification 1.10. -UNICODE_COLLATION_PROTOCOL defined in Inte's EFI Specification 1.10 is replaced by -EFI_UNICODE_COLLATION_PROTOCOL in UEFI 2.1. -This module produces UC on top of UC2. This module is used on platform when both of -these two conditions are true: -1) EFI 1.10 module consuming UC present -2) And the rest of modules on the platform produce UC2 - -Copyright (c) 2006 - 2008 Intel Corporation.
-All rights reserved. This program and the accompanying materials -are licensed and made available under the terms and conditions of the BSD License -which accompanies this distribution. The full text of the license may be found at -http://opensource.org/licenses/bsd-license.php - -THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -Module Name: - -**/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include - - - -/** - Performs a case-insensitive comparison of two Null-terminated Unicode - strings. - - @param This Protocol instance pointer. - @param Str1 A pointer to a Null-terminated Unicode string. - @param Str2 A pointer to a Null-terminated Unicode string. - - @retval 0 Str1 is equivalent to Str2 - @retval > 0 Str1 is lexically greater than Str2 - @retval < 0 Str1 is lexically less than Str2 - -**/ -INTN -EFIAPI -StriColl ( - IN EFI_UNICODE_COLLATION_PROTOCOL *This, - IN CHAR16 *Str1, - IN CHAR16 *Str2 - ); - -/** - Converts all the Unicode characters in a Null-terminated Unicode string to - lower case Unicode characters. - - @param This Protocol instance pointer. - @param Str A pointer to a Null-terminated Unicode string. - -**/ -VOID -EFIAPI -StrLwr ( - IN EFI_UNICODE_COLLATION_PROTOCOL *This, - IN OUT CHAR16 *Str - ); - -/** - Converts all the Unicode characters in a Null-terminated Unicode string to upper - case Unicode characters. - - @param This Protocol instance pointer. - @param Str A pointer to a Null-terminated Unicode string. - -**/ -VOID -EFIAPI -StrUpr ( - IN EFI_UNICODE_COLLATION_PROTOCOL *This, - IN OUT CHAR16 *Str - ); - -/** - Performs a case-insensitive comparison of a Null-terminated Unicode - pattern string and a Null-terminated Unicode string. - - @param This Protocol instance pointer. - @param String A pointer to a Null-terminated Unicode string. - @param Pattern A pointer to a Null-terminated Unicode pattern string. - - @retval TRUE Pattern was found in String. - @retval FALSE Pattern was not found in String. - -**/ -BOOLEAN -EFIAPI -MetaiMatch ( - IN EFI_UNICODE_COLLATION_PROTOCOL *This, - IN CHAR16 *String, - IN CHAR16 *Pattern - ); - -/** - Converts an 8.3 FAT file name in an OEM character set to a Null-terminated - Unicode string. - - @param This Protocol instance pointer. - @param FatSize The size of the string Fat in bytes. - @param Fat A pointer to a Null-terminated string that contains an 8.3 file - name using an OEM character set. - @param String A pointer to a Null-terminated Unicode string. The string must - be preallocated to hold FatSize Unicode characters. - -**/ -VOID -EFIAPI -FatToStr ( - IN EFI_UNICODE_COLLATION_PROTOCOL *This, - IN UINTN FatSize, - IN CHAR8 *Fat, - OUT CHAR16 *String - ); - -/** - Converts a Null-terminated Unicode string to legal characters in a FAT - filename using an OEM character set. - - @param This Protocol instance pointer. - @param String A pointer to a Null-terminated Unicode string. The string must - be preallocated to hold FatSize Unicode characters. - @param FatSize The size of the string Fat in bytes. - @param Fat A pointer to a Null-terminated string that contains an 8.3 file - name using an OEM character set. - - @retval TRUE Fat is a Long File Name - @retval FALSE Fat is an 8.3 file name - -**/ -BOOLEAN -EFIAPI -StrToFat ( - IN EFI_UNICODE_COLLATION_PROTOCOL *This, - IN CHAR16 *String, - IN UINTN FatSize, - OUT CHAR8 *Fat - ); - -#define UC_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('_', 'U', 'C', '_') - -typedef struct { - UINT32 Signature; - EFI_UNICODE_COLLATION_PROTOCOL UC; - EFI_UNICODE_COLLATION_PROTOCOL *UC2; -} UC_PRIVATE_DATA; - -#define UC_PRIVATE_DATA_FROM_THIS(a) CR (a, UC_PRIVATE_DATA, UC, UC_PRIVATE_DATA_SIGNATURE) - -// -// Firmware Volume Protocol template -// -EFI_EVENT mUcRegistration; - -UC_PRIVATE_DATA gUCPrivateDataTemplate = { - UC_PRIVATE_DATA_SIGNATURE, - { - StriColl, - MetaiMatch, - StrLwr, - StrUpr, - FatToStr, - StrToFat, - NULL - }, - NULL -}; - -// -// Module globals -// - -VOID -EFIAPI -Uc2NotificationEvent ( - IN EFI_EVENT Event, - IN VOID *Context - ) -{ - EFI_STATUS Status; - UINTN BufferSize; - EFI_HANDLE Handle; - UC_PRIVATE_DATA *Private; - EFI_UNICODE_COLLATION_PROTOCOL *Uc2; - - while (TRUE) { - BufferSize = sizeof (Handle); - Status = gBS->LocateHandle ( - ByRegisterNotify, - &gEfiUnicodeCollation2ProtocolGuid, - mUcRegistration, - &BufferSize, - &Handle - ); - if (EFI_ERROR (Status)) { - // - // Exit Path of While Loop.... - // - break; - } - - // - // Skip this handle if the Firmware Volume Protocol is already installed - // - Status = gBS->HandleProtocol ( - Handle, - &gEfiUnicodeCollationProtocolGuid, - (VOID **)&Uc2 - ); - if (!EFI_ERROR (Status)) { - continue; - } - - // - // Allocate private data structure - // - Private = AllocateCopyPool (sizeof (UC_PRIVATE_DATA), &gUCPrivateDataTemplate); - if (Private == NULL) { - continue; - } - - // - // Retrieve the UC Protocol - // - Status = gBS->HandleProtocol ( - Handle, - &gEfiUnicodeCollation2ProtocolGuid, - (VOID **)&Private->UC2 - ); - ASSERT_EFI_ERROR (Status); - - // - // Fill in rest of private data structure - // - Private->UC.SupportedLanguages = AllocateZeroPool (ISO_639_2_ENTRY_SIZE + 1); - Status = ConvertRfc3066LanguageToIso639Language (Private->UC2->SupportedLanguages, Private->UC.SupportedLanguages); - - if (!EFI_ERROR (Status)) { - - // - // Install Firmware Volume Protocol onto same handle - // - Status = gBS->InstallMultipleProtocolInterfaces ( - &Handle, - &gEfiUnicodeCollationProtocolGuid, - &Private->UC, - NULL - ); - ASSERT_EFI_ERROR (Status); - } - } -} - - -/** - The user Entry Point for DXE driver. The user code starts with this function - as the real entry point for the image goes into a library that calls this - function. - - @param[in] ImageHandle The firmware allocated handle for the EFI image. - @param[in] SystemTable A pointer to the EFI System Table. - - @retval EFI_SUCCESS The entry point is executed successfully. - @retval other Some error occurs when executing this entry point. - -**/ -EFI_STATUS -EFIAPI -InitializeUC ( - IN EFI_HANDLE ImageHandle, - IN EFI_SYSTEM_TABLE *SystemTable - ) -{ - EfiCreateProtocolNotifyEvent ( - &gEfiUnicodeCollation2ProtocolGuid, - TPL_CALLBACK, - Uc2NotificationEvent, - NULL, - &mUcRegistration - ); - return EFI_SUCCESS; -} - - -/** - Performs a case-insensitive comparison of two Null-terminated Unicode - strings. - - @param This Protocol instance pointer. - @param Str1 A pointer to a Null-terminated Unicode string. - @param Str2 A pointer to a Null-terminated Unicode string. - - @retval 0 Str1 is equivalent to Str2 - @retval > 0 Str1 is lexically greater than Str2 - @retval < 0 Str1 is lexically less than Str2 - -**/ -INTN -EFIAPI -StriColl ( - IN EFI_UNICODE_COLLATION_PROTOCOL *This, - IN CHAR16 *Str1, - IN CHAR16 *Str2 - ) -{ - UC_PRIVATE_DATA *Private; - - Private = UC_PRIVATE_DATA_FROM_THIS (This); - - return Private->UC2->StriColl (Private->UC2, Str1, Str2); -} - - -/** - Converts all the Unicode characters in a Null-terminated Unicode string to - lower case Unicode characters. - - @param This Protocol instance pointer. - @param Str A pointer to a Null-terminated Unicode string. - -**/ -VOID -EFIAPI -StrLwr ( - IN EFI_UNICODE_COLLATION_PROTOCOL *This, - IN OUT CHAR16 *Str - ) -{ - UC_PRIVATE_DATA *Private; - - Private = UC_PRIVATE_DATA_FROM_THIS (This); - - Private->UC2->StrLwr (Private->UC2, Str); -} - - -/** - Converts all the Unicode characters in a Null-terminated Unicode string to upper - case Unicode characters. - - @param This Protocol instance pointer. - @param Str A pointer to a Null-terminated Unicode string. - -**/ -VOID -EFIAPI -StrUpr ( - IN EFI_UNICODE_COLLATION_PROTOCOL *This, - IN OUT CHAR16 *Str - ) -{ - UC_PRIVATE_DATA *Private; - - Private = UC_PRIVATE_DATA_FROM_THIS (This); - - Private->UC2->StrUpr (Private->UC2, Str); -} - -/** - Performs a case-insensitive comparison of a Null-terminated Unicode - pattern string and a Null-terminated Unicode string. - - @param This Protocol instance pointer. - @param String A pointer to a Null-terminated Unicode string. - @param Pattern A pointer to a Null-terminated Unicode pattern string. - - @retval TRUE Pattern was found in String. - @retval FALSE Pattern was not found in String. - -**/ -BOOLEAN -EFIAPI -MetaiMatch ( - IN EFI_UNICODE_COLLATION_PROTOCOL *This, - IN CHAR16 *String, - IN CHAR16 *Pattern - ) -{ - UC_PRIVATE_DATA *Private; - - Private = UC_PRIVATE_DATA_FROM_THIS (This); - - return Private->UC2->MetaiMatch (Private->UC2, String, Pattern); -} - - -/** - Converts an 8.3 FAT file name in an OEM character set to a Null-terminated - Unicode string. - - @param This Protocol instance pointer. - @param FatSize The size of the string Fat in bytes. - @param Fat A pointer to a Null-terminated string that contains an 8.3 file - name using an OEM character set. - @param String A pointer to a Null-terminated Unicode string. The string must - be preallocated to hold FatSize Unicode characters. - -**/ -VOID -EFIAPI -FatToStr ( - IN EFI_UNICODE_COLLATION_PROTOCOL *This, - IN UINTN FatSize, - IN CHAR8 *Fat, - OUT CHAR16 *String - ) -{ - UC_PRIVATE_DATA *Private; - - Private = UC_PRIVATE_DATA_FROM_THIS (This); - - Private->UC2->FatToStr (Private->UC2, FatSize, Fat, String); -} - - -/** - Converts a Null-terminated Unicode string to legal characters in a FAT - filename using an OEM character set. - - @param This Protocol instance pointer. - @param String A pointer to a Null-terminated Unicode string. The string must - be preallocated to hold FatSize Unicode characters. - @param FatSize The size of the string Fat in bytes. - @param Fat A pointer to a Null-terminated string that contains an 8.3 file - name using an OEM character set. - - @retval TRUE Fat is a Long File Name - @retval FALSE Fat is an 8.3 file name - -**/ -BOOLEAN -EFIAPI -StrToFat ( - IN EFI_UNICODE_COLLATION_PROTOCOL *This, - IN CHAR16 *String, - IN UINTN FatSize, - OUT CHAR8 *Fat - ) -{ - UC_PRIVATE_DATA *Private; - - Private = UC_PRIVATE_DATA_FROM_THIS (This); - - return Private->UC2->StrToFat (Private->UC2, String, FatSize, Fat); -} - diff --git a/EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcToUc2Thunk.inf b/EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcToUc2Thunk.inf deleted file mode 100644 index ffe2d3f29c..0000000000 --- a/EdkCompatibilityPkg/Compatibility/UcOnUc2Thunk/UcToUc2Thunk.inf +++ /dev/null @@ -1,62 +0,0 @@ -#/** @file -# Module produce UC on top of UC2. -# -# UEFI 2.1 specification supersedes Inte's EFI Specification 1.10. -# UNICODE_COLLATION_PROTOCOL defined in Inte's EFI Specification 1.10 is replaced by -# EFI_UNICODE_COLLATION_PROTOCOL in UEFI 2.1. -# This module produces UC on top of UC2. This module is used on platform when both of -# these two conditions are true: -# 1) EFI 1.10 module consuming UC present -# 2) And the rest of modules on the platform produce UC2 -# -# Copyright (c) 2006 - 2008, Intel Corporation -# -# All rights reserved. This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -# -#**/ - -[Defines] - INF_VERSION = 0x00010005 - BASE_NAME = UcOnUc2Thunk - FILE_GUID = FD76FF8E-665F-4afc-AF75-724EF5A569E5 - MODULE_TYPE = DXE_DRIVER - VERSION_STRING = 1.0 - EDK_RELEASE_VERSION = 0x00020000 - EFI_SPECIFICATION_VERSION = 0x00020000 - ENTRY_POINT = InitializeUC - -# -# The following information is for reference only and not required by the build tools. -# -# VALID_ARCHITECTURES = IA32 X64 IPF EBC -# - -[Sources.common] - UcOnUc2Thunk.c - -[Packages] - MdePkg/MdePkg.dec - MdeModulePkg/MdeModulePkg.dec - IntelFrameworkPkg/IntelFrameworkPkg.dec - -[LibraryClasses] - UefiDriverEntryPoint - UefiBootServicesTableLib - BaseLib - DebugLib - UefiLib - MemoryAllocationLib - HiiLib - -[Protocols] - gEfiUnicodeCollation2ProtocolGuid - gEfiUnicodeCollationProtocolGuid - -[Depex] - TRUE -- cgit v1.2.3