+++ /dev/null
-/*++\r
-\r
-Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>\r
-This program and the accompanying materials\r
-are licensed and made available under the terms and conditions of the BSD License\r
-which accompanies this distribution. The full text of the license may be found at\r
-http://opensource.org/licenses/bsd-license.php\r
-\r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
-\r
-Module Name:\r
-\r
- UnicodeCollation2.h\r
-\r
-Abstract:\r
-\r
- Unicode Collation2 protocol that follows the UEFI 2.0 specification.\r
-\r
---*/\r
-\r
-#ifndef _UNICODE_COLLATION2_H_\r
-#define _UNICODE_COLLATION2_H_\r
-\r
-#define EFI_UNICODE_COLLATION2_PROTOCOL_GUID \\r
- { \\r
- 0xa4c751fc, 0x23ae, 0x4c3e, {0x92, 0xe9, 0x49, 0x64, 0xcf, 0x63, 0xf3, 0x49} \\r
- }\r
-\r
-EFI_FORWARD_DECLARATION (EFI_UNICODE_COLLATION2_PROTOCOL);\r
-\r
-//\r
-// Protocol data structures and defines\r
-//\r
-#define EFI_UNICODE_BYTE_ORDER_MARK ((CHAR16)(0xfeff))\r
-#define EFI_UNICODE_BYTE_ORDER_MARK_REVERSE ((CHAR16)(0xfffe))\r
-\r
-//\r
-// Protocol member functions\r
-//\r
-typedef\r
-INTN\r
-(EFIAPI *EFI_UNICODE_COLLATION2_STRICOLL) (\r
- IN EFI_UNICODE_COLLATION2_PROTOCOL * This,\r
- IN CHAR16 *Str1,\r
- IN CHAR16 *Str2\r
- )\r
-/*++\r
-\r
- Routine Description:\r
- Performs a case-insensitive comparison of two Null-terminated Unicode\r
- strings.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- Str1 - A pointer to a Null-terminated Unicode string.\r
- Str2 - A pointer to a Null-terminated Unicode string.\r
-\r
- Returns:\r
- 0 - Str1 is equivalent to Str2\r
- > 0 - Str1 is lexically greater than Str2\r
- < 0 - Str1 is lexically less than Str2\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-BOOLEAN\r
-(EFIAPI *EFI_UNICODE_COLLATION2_METAIMATCH) (\r
- IN EFI_UNICODE_COLLATION2_PROTOCOL * This,\r
- IN CHAR16 *String,\r
- IN CHAR16 *Pattern\r
- )\r
-/*++\r
-\r
- Routine Description:\r
- Performs a case-insensitive comparison of a Null-terminated Unicode\r
- pattern string and a Null-terminated Unicode string.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- String - A pointer to a Null-terminated Unicode string.\r
- Pattern - A pointer to a Null-terminated Unicode pattern string.\r
-\r
- Returns:\r
- TRUE - Pattern was found in String.\r
- FALSE - Pattern was not found in String.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_UNICODE_COLLATION2_STRLWR) (\r
- IN EFI_UNICODE_COLLATION2_PROTOCOL * This,\r
- IN OUT CHAR16 *Str\r
- )\r
-/*++\r
-\r
- Routine Description:\r
- Converts all the Unicode characters in a Null-terminated Unicode string to\r
- lower case Unicode characters.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- String - A pointer to a Null-terminated Unicode string.\r
-\r
- Returns:\r
- NONE\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_UNICODE_COLLATION2_STRUPR) (\r
- IN EFI_UNICODE_COLLATION2_PROTOCOL * This,\r
- IN OUT CHAR16 *Str\r
- )\r
-/*++\r
-\r
- Routine Description:\r
- Converts all the Unicode characters in a Null-terminated Unicode string to upper\r
- case Unicode characters.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- String - A pointer to a Null-terminated Unicode string.\r
-\r
- Returns:\r
- NONE\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-VOID\r
-(EFIAPI *EFI_UNICODE_COLLATION2_FATTOSTR) (\r
- IN EFI_UNICODE_COLLATION2_PROTOCOL * This,\r
- IN UINTN FatSize,\r
- IN CHAR8 *Fat,\r
- OUT CHAR16 *String\r
- )\r
-/*++\r
-\r
- Routine Description:\r
- Converts an 8.3 FAT file name in an OEM character set to a Null-terminated\r
- Unicode string.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- FatSize - The size of the string Fat in bytes.\r
- Fat - A pointer to a Null-terminated string that contains an 8.3 file\r
- name using an OEM character set.\r
- String - A pointer to a Null-terminated Unicode string. The string must\r
- be preallocated to hold FatSize Unicode characters.\r
- Returns:\r
- NONE\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-BOOLEAN\r
-(EFIAPI *EFI_UNICODE_COLLATION2_STRTOFAT) (\r
- IN EFI_UNICODE_COLLATION2_PROTOCOL * This,\r
- IN CHAR16 *String,\r
- IN UINTN FatSize,\r
- OUT CHAR8 *Fat\r
- )\r
-/*++\r
-\r
- Routine Description:\r
- Converts a Null-terminated Unicode string to legal characters in a FAT\r
- filename using an OEM character set.\r
-\r
- Arguments:\r
- This - Protocol instance pointer.\r
- String - A pointer to a Null-terminated Unicode string. The string must\r
- be preallocated to hold FatSize Unicode characters.\r
- FatSize - The size of the string Fat in bytes.\r
- Fat - A pointer to a Null-terminated string that contains an 8.3 file\r
- name using an OEM character set.\r
- Returns:\r
- TRUE - Fat is a Long File Name\r
- FALSE - Fat is an 8.3 file name\r
-\r
---*/\r
-;\r
-\r
-struct _EFI_UNICODE_COLLATION2_PROTOCOL {\r
- //\r
- // general\r
- //\r
- EFI_UNICODE_COLLATION2_STRICOLL StriColl;\r
- EFI_UNICODE_COLLATION2_METAIMATCH MetaiMatch;\r
- EFI_UNICODE_COLLATION2_STRLWR StrLwr;\r
- EFI_UNICODE_COLLATION2_STRUPR StrUpr;\r
-\r
- //\r
- // for supporting fat volumes\r
- //\r
- EFI_UNICODE_COLLATION2_FATTOSTR FatToStr;\r
- EFI_UNICODE_COLLATION2_STRTOFAT StrToFat;\r
-\r
- CHAR8 *SupportedLanguages;\r
-};\r
-\r
-extern EFI_GUID gEfiUnicodeCollation2ProtocolGuid;\r
-\r
-#endif\r