summaryrefslogtreecommitdiff
path: root/EDK/Foundation/Efi/Protocol/UnicodeCollation2/UnicodeCollation2.h
diff options
context:
space:
mode:
Diffstat (limited to 'EDK/Foundation/Efi/Protocol/UnicodeCollation2/UnicodeCollation2.h')
-rw-r--r--EDK/Foundation/Efi/Protocol/UnicodeCollation2/UnicodeCollation2.h211
1 files changed, 211 insertions, 0 deletions
diff --git a/EDK/Foundation/Efi/Protocol/UnicodeCollation2/UnicodeCollation2.h b/EDK/Foundation/Efi/Protocol/UnicodeCollation2/UnicodeCollation2.h
new file mode 100644
index 0000000..b9b150f
--- /dev/null
+++ b/EDK/Foundation/Efi/Protocol/UnicodeCollation2/UnicodeCollation2.h
@@ -0,0 +1,211 @@
+/*++
+
+Copyright (c) 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:
+
+ UnicodeCollation2.h
+
+Abstract:
+
+ Unicode Collation2 protocol that follows the UEFI 2.0 specification.
+
+--*/
+
+#ifndef _UNICODE_COLLATION2_H_
+#define _UNICODE_COLLATION2_H_
+
+#define EFI_UNICODE_COLLATION2_PROTOCOL_GUID \
+ { \
+ 0xa4c751fc, 0x23ae, 0x4c3e, 0x92, 0xe9, 0x49, 0x64, 0xcf, 0x63, 0xf3, 0x49 \
+ }
+
+EFI_FORWARD_DECLARATION (EFI_UNICODE_COLLATION2_PROTOCOL);
+
+//
+// Protocol data structures and defines
+//
+#define EFI_UNICODE_BYTE_ORDER_MARK ((CHAR16)(0xfeff))
+#define EFI_UNICODE_BYTE_ORDER_MARK_REVERSE ((CHAR16)(0xfffe))
+
+//
+// Protocol member functions
+//
+typedef
+INTN
+(EFIAPI *EFI_UNICODE_COLLATION2_STRICOLL) (
+ IN EFI_UNICODE_COLLATION2_PROTOCOL * This,
+ IN CHAR16 *Str1,
+ IN CHAR16 *Str2
+ )
+/*++
+
+ Routine Description:
+ Performs a case-insensitive comparison of two Null-terminated Unicode
+ strings.
+
+ Arguments:
+ This - Protocol instance pointer.
+ Str1 - A pointer to a Null-terminated Unicode string.
+ Str2 - A pointer to a Null-terminated Unicode string.
+
+ Returns:
+ 0 - Str1 is equivalent to Str2
+ > 0 - Str1 is lexically greater than Str2
+ < 0 - Str1 is lexically less than Str2
+
+--*/
+;
+
+typedef
+BOOLEAN
+(EFIAPI *EFI_UNICODE_COLLATION2_METAIMATCH) (
+ IN EFI_UNICODE_COLLATION2_PROTOCOL * This,
+ IN CHAR16 *String,
+ IN CHAR16 *Pattern
+ )
+/*++
+
+ Routine Description:
+ Performs a case-insensitive comparison of a Null-terminated Unicode
+ pattern string and a Null-terminated Unicode string.
+
+ Arguments:
+ This - Protocol instance pointer.
+ String - A pointer to a Null-terminated Unicode string.
+ Pattern - A pointer to a Null-terminated Unicode pattern string.
+
+ Returns:
+ TRUE - Pattern was found in String.
+ FALSE - Pattern was not found in String.
+
+--*/
+;
+
+typedef
+VOID
+(EFIAPI *EFI_UNICODE_COLLATION2_STRLWR) (
+ IN EFI_UNICODE_COLLATION2_PROTOCOL * This,
+ IN OUT CHAR16 *Str
+ )
+/*++
+
+ Routine Description:
+ Converts all the Unicode characters in a Null-terminated Unicode string to
+ lower case Unicode characters.
+
+ Arguments:
+ This - Protocol instance pointer.
+ String - A pointer to a Null-terminated Unicode string.
+
+ Returns:
+ NONE
+
+--*/
+;
+
+typedef
+VOID
+(EFIAPI *EFI_UNICODE_COLLATION2_STRUPR) (
+ IN EFI_UNICODE_COLLATION2_PROTOCOL * This,
+ IN OUT CHAR16 *Str
+ )
+/*++
+
+ Routine Description:
+ Converts all the Unicode characters in a Null-terminated Unicode string to upper
+ case Unicode characters.
+
+ Arguments:
+ This - Protocol instance pointer.
+ String - A pointer to a Null-terminated Unicode string.
+
+ Returns:
+ NONE
+
+--*/
+;
+
+typedef
+VOID
+(EFIAPI *EFI_UNICODE_COLLATION2_FATTOSTR) (
+ IN EFI_UNICODE_COLLATION2_PROTOCOL * This,
+ IN UINTN FatSize,
+ IN CHAR8 *Fat,
+ OUT CHAR16 *String
+ )
+/*++
+
+ Routine Description:
+ Converts an 8.3 FAT file name in an OEM character set to a Null-terminated
+ Unicode string.
+
+ Arguments:
+ This - Protocol instance pointer.
+ FatSize - The size of the string Fat in bytes.
+ Fat - A pointer to a Null-terminated string that contains an 8.3 file
+ name using an OEM character set.
+ String - A pointer to a Null-terminated Unicode string. The string must
+ be preallocated to hold FatSize Unicode characters.
+ Returns:
+ NONE
+
+--*/
+;
+
+typedef
+BOOLEAN
+(EFIAPI *EFI_UNICODE_COLLATION2_STRTOFAT) (
+ IN EFI_UNICODE_COLLATION2_PROTOCOL * This,
+ IN CHAR16 *String,
+ IN UINTN FatSize,
+ OUT CHAR8 *Fat
+ )
+/*++
+
+ Routine Description:
+ Converts a Null-terminated Unicode string to legal characters in a FAT
+ filename using an OEM character set.
+
+ Arguments:
+ This - Protocol instance pointer.
+ String - A pointer to a Null-terminated Unicode string. The string must
+ be preallocated to hold FatSize Unicode characters.
+ FatSize - The size of the string Fat in bytes.
+ Fat - A pointer to a Null-terminated string that contains an 8.3 file
+ name using an OEM character set.
+ Returns:
+ TRUE - Fat is a Long File Name
+ FALSE - Fat is an 8.3 file name
+
+--*/
+;
+
+typedef struct _EFI_UNICODE_COLLATION2_PROTOCOL {
+ //
+ // general
+ //
+ EFI_UNICODE_COLLATION2_STRICOLL StriColl;
+ EFI_UNICODE_COLLATION2_METAIMATCH MetaiMatch;
+ EFI_UNICODE_COLLATION2_STRLWR StrLwr;
+ EFI_UNICODE_COLLATION2_STRUPR StrUpr;
+
+ //
+ // for supporting fat volumes
+ //
+ EFI_UNICODE_COLLATION2_FATTOSTR FatToStr;
+ EFI_UNICODE_COLLATION2_STRTOFAT StrToFat;
+
+ CHAR8 *SupportedLanguages;
+} EFI_UNICODE_COLLATION2_PROTOCOL;
+
+extern EFI_GUID gEfiUnicodeCollation2ProtocolGuid;
+
+#endif