diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /EDK/Foundation/Efi/Protocol/UnicodeCollation2/UnicodeCollation2.h | |
download | zprj-master.tar.xz |
Diffstat (limited to 'EDK/Foundation/Efi/Protocol/UnicodeCollation2/UnicodeCollation2.h')
-rw-r--r-- | EDK/Foundation/Efi/Protocol/UnicodeCollation2/UnicodeCollation2.h | 211 |
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 |