]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Include/Protocol/UnicodeCollation.h
Moved the MdePkg to OldMdePkg so that new code in MdePkg does not break existing...
[mirror_edk2.git] / OldMdePkg / Include / Protocol / UnicodeCollation.h
diff --git a/OldMdePkg/Include/Protocol/UnicodeCollation.h b/OldMdePkg/Include/Protocol/UnicodeCollation.h
new file mode 100644 (file)
index 0000000..e027803
--- /dev/null
@@ -0,0 +1,183 @@
+/** @file\r
+  Unicode Collation protocol that follows the EFI 1.0 specification.\r
+\r
+  Copyright (c) 2006, Intel Corporation                                                         \r
+  All rights reserved. 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:  UnicodeCollation.h\r
+\r
+**/\r
+\r
+#ifndef __UNICODE_COLLATION_H__\r
+#define __UNICODE_COLLATION_H__\r
+\r
+#define EFI_UNICODE_COLLATION_PROTOCOL_GUID \\r
+  { \\r
+    0x1d85cd7f, 0xf43d, 0x11d2, {0x9a, 0xc, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d } \\r
+  }\r
+\r
+typedef struct _EFI_UNICODE_COLLATION_PROTOCOL   EFI_UNICODE_COLLATION_PROTOCOL;\r
+\r
+//\r
+// Protocol data structures and defines\r
+//\r
+#define EFI_UNICODE_BYTE_ORDER_MARK (CHAR16) (0xfeff)\r
+\r
+//\r
+// Protocol member functions\r
+//\r
+/**\r
+  Performs a case-insensitive comparison of two Null-terminated Unicode \r
+  strings.\r
+\r
+  @param  This Protocol instance pointer.\r
+  @param  Str1 A pointer to a Null-terminated Unicode string.\r
+  @param  Str2 A pointer to a Null-terminated Unicode string.\r
+\r
+  @retval 0   Str1 is equivalent to Str2\r
+  @retval >_0 Str1 is lexically greater than Str2\r
+  @retval <_0 Str1 is lexically less than Str2\r
+\r
+**/\r
+typedef\r
+INTN\r
+(EFIAPI *EFI_UNICODE_COLLATION_STRICOLL) (\r
+  IN EFI_UNICODE_COLLATION_PROTOCOL         *This,\r
+  IN CHAR16                                 *Str1,\r
+  IN CHAR16                                 *Str2\r
+  )\r
+;\r
+\r
+/**\r
+  Performs a case-insensitive comparison of a Null-terminated Unicode \r
+  pattern string and a Null-terminated Unicode string.\r
+\r
+  @param  This    Protocol instance pointer.\r
+  @param  String  A pointer to a Null-terminated Unicode string.\r
+  @param  Pattern A pointer to a Null-terminated Unicode pattern string.\r
+\r
+  @retval TRUE    Pattern was found in String.\r
+  @retval FALSE   Pattern was not found in String.\r
+\r
+**/\r
+typedef\r
+BOOLEAN\r
+(EFIAPI *EFI_UNICODE_COLLATION_METAIMATCH) (\r
+  IN EFI_UNICODE_COLLATION_PROTOCOL         *This,\r
+  IN CHAR16                                 *String,\r
+  IN CHAR16                                 *Pattern\r
+  )\r
+;\r
+\r
+/**\r
+  Converts all the Unicode characters in a Null-terminated Unicode string to \r
+  lower case Unicode characters.\r
+\r
+  @param  This   Protocol instance pointer.\r
+  @param  String A pointer to a Null-terminated Unicode string.\r
+\r
+  NONE\r
+\r
+**/\r
+typedef\r
+VOID\r
+(EFIAPI *EFI_UNICODE_COLLATION_STRLWR) (\r
+  IN EFI_UNICODE_COLLATION_PROTOCOL         *This,\r
+  IN OUT CHAR16                             *Str\r
+  )\r
+;\r
+\r
+/**\r
+  Converts all the Unicode characters in a Null-terminated Unicode string to upper\r
+  case Unicode characters.\r
+\r
+  @param  This   Protocol instance pointer.\r
+  @param  String A pointer to a Null-terminated Unicode string.\r
+\r
+  NONE\r
+\r
+**/\r
+typedef\r
+VOID\r
+(EFIAPI *EFI_UNICODE_COLLATION_STRUPR) (\r
+  IN EFI_UNICODE_COLLATION_PROTOCOL         *This,\r
+  IN OUT CHAR16                             *Str\r
+  )\r
+;\r
+\r
+/**\r
+  Converts an 8.3 FAT file name in an OEM character set to a Null-terminated \r
+  Unicode string.\r
+\r
+  @param  This    Protocol instance pointer.\r
+  @param  FatSize The size of the string Fat in bytes.\r
+  @param  Fat     A pointer to a Null-terminated string that contains an 8.3 file\r
+                  name using an OEM character set.\r
+  @param  String  A pointer to a Null-terminated Unicode string. The string must\r
+                  be preallocated to hold FatSize Unicode characters.\r
+\r
+  NONE\r
+\r
+**/\r
+typedef\r
+VOID\r
+(EFIAPI *EFI_UNICODE_COLLATION_FATTOSTR) (\r
+  IN EFI_UNICODE_COLLATION_PROTOCOL         *This,\r
+  IN UINTN                                  FatSize,\r
+  IN CHAR8                                  *Fat,\r
+  OUT CHAR16                                *String\r
+  )\r
+;\r
+\r
+/**\r
+  Converts a Null-terminated Unicode string to legal characters in a FAT \r
+  filename using an OEM character set. \r
+\r
+  @param  This    Protocol instance pointer.\r
+  @param  String  A pointer to a Null-terminated Unicode string. The string must\r
+                  be preallocated to hold FatSize Unicode characters.\r
+  @param  FatSize The size of the string Fat in bytes.\r
+  @param  Fat     A pointer to a Null-terminated string that contains an 8.3 file\r
+                  name using an OEM character set.\r
+\r
+  @retval TRUE    Fat is a Long File Name\r
+  @retval FALSE   Fat is an 8.3 file name\r
+\r
+**/\r
+typedef\r
+BOOLEAN\r
+(EFIAPI *EFI_UNICODE_COLLATION_STRTOFAT) (\r
+  IN EFI_UNICODE_COLLATION_PROTOCOL         *This,\r
+  IN CHAR16                                 *String,\r
+  IN UINTN                                  FatSize,\r
+  OUT CHAR8                                 *Fat\r
+  )\r
+;\r
+\r
+struct _EFI_UNICODE_COLLATION_PROTOCOL {\r
+  //\r
+  // general\r
+  //\r
+  EFI_UNICODE_COLLATION_STRICOLL    StriColl;\r
+  EFI_UNICODE_COLLATION_METAIMATCH  MetaiMatch;\r
+  EFI_UNICODE_COLLATION_STRLWR      StrLwr;\r
+  EFI_UNICODE_COLLATION_STRUPR      StrUpr;\r
+\r
+  //\r
+  // for supporting fat volumes\r
+  //\r
+  EFI_UNICODE_COLLATION_FATTOSTR    FatToStr;\r
+  EFI_UNICODE_COLLATION_STRTOFAT    StrToFat;\r
+\r
+  CHAR8                             *SupportedLanguages;\r
+};\r
+\r
+extern EFI_GUID gEfiUnicodeCollationProtocolGuid;\r
+\r
+#endif\r