]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Efi/Protocol/UnicodeCollation2/UnicodeCollation2.h
866ee9f577935dd92cf0f8bad7bd0827dd5ca67e
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Efi / Protocol / UnicodeCollation2 / UnicodeCollation2.h
1 /*++
2
3 Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 UnicodeCollation2.h
15
16 Abstract:
17
18 Unicode Collation2 protocol that follows the UEFI 2.0 specification.
19
20 --*/
21
22 #ifndef _UNICODE_COLLATION2_H_
23 #define _UNICODE_COLLATION2_H_
24
25 #define EFI_UNICODE_COLLATION2_PROTOCOL_GUID \
26 { \
27 0xa4c751fc, 0x23ae, 0x4c3e, {0x92, 0xe9, 0x49, 0x64, 0xcf, 0x63, 0xf3, 0x49} \
28 }
29
30 EFI_FORWARD_DECLARATION (EFI_UNICODE_COLLATION2_PROTOCOL);
31
32 //
33 // Protocol data structures and defines
34 //
35 #define EFI_UNICODE_BYTE_ORDER_MARK ((CHAR16)(0xfeff))
36 #define EFI_UNICODE_BYTE_ORDER_MARK_REVERSE ((CHAR16)(0xfffe))
37
38 //
39 // Protocol member functions
40 //
41 typedef
42 INTN
43 (EFIAPI *EFI_UNICODE_COLLATION2_STRICOLL) (
44 IN EFI_UNICODE_COLLATION2_PROTOCOL * This,
45 IN CHAR16 *Str1,
46 IN CHAR16 *Str2
47 )
48 /*++
49
50 Routine Description:
51 Performs a case-insensitive comparison of two Null-terminated Unicode
52 strings.
53
54 Arguments:
55 This - Protocol instance pointer.
56 Str1 - A pointer to a Null-terminated Unicode string.
57 Str2 - A pointer to a Null-terminated Unicode string.
58
59 Returns:
60 0 - Str1 is equivalent to Str2
61 > 0 - Str1 is lexically greater than Str2
62 < 0 - Str1 is lexically less than Str2
63
64 --*/
65 ;
66
67 typedef
68 BOOLEAN
69 (EFIAPI *EFI_UNICODE_COLLATION2_METAIMATCH) (
70 IN EFI_UNICODE_COLLATION2_PROTOCOL * This,
71 IN CHAR16 *String,
72 IN CHAR16 *Pattern
73 )
74 /*++
75
76 Routine Description:
77 Performs a case-insensitive comparison of a Null-terminated Unicode
78 pattern string and a Null-terminated Unicode string.
79
80 Arguments:
81 This - Protocol instance pointer.
82 String - A pointer to a Null-terminated Unicode string.
83 Pattern - A pointer to a Null-terminated Unicode pattern string.
84
85 Returns:
86 TRUE - Pattern was found in String.
87 FALSE - Pattern was not found in String.
88
89 --*/
90 ;
91
92 typedef
93 VOID
94 (EFIAPI *EFI_UNICODE_COLLATION2_STRLWR) (
95 IN EFI_UNICODE_COLLATION2_PROTOCOL * This,
96 IN OUT CHAR16 *Str
97 )
98 /*++
99
100 Routine Description:
101 Converts all the Unicode characters in a Null-terminated Unicode string to
102 lower case Unicode characters.
103
104 Arguments:
105 This - Protocol instance pointer.
106 String - A pointer to a Null-terminated Unicode string.
107
108 Returns:
109 NONE
110
111 --*/
112 ;
113
114 typedef
115 VOID
116 (EFIAPI *EFI_UNICODE_COLLATION2_STRUPR) (
117 IN EFI_UNICODE_COLLATION2_PROTOCOL * This,
118 IN OUT CHAR16 *Str
119 )
120 /*++
121
122 Routine Description:
123 Converts all the Unicode characters in a Null-terminated Unicode string to upper
124 case Unicode characters.
125
126 Arguments:
127 This - Protocol instance pointer.
128 String - A pointer to a Null-terminated Unicode string.
129
130 Returns:
131 NONE
132
133 --*/
134 ;
135
136 typedef
137 VOID
138 (EFIAPI *EFI_UNICODE_COLLATION2_FATTOSTR) (
139 IN EFI_UNICODE_COLLATION2_PROTOCOL * This,
140 IN UINTN FatSize,
141 IN CHAR8 *Fat,
142 OUT CHAR16 *String
143 )
144 /*++
145
146 Routine Description:
147 Converts an 8.3 FAT file name in an OEM character set to a Null-terminated
148 Unicode string.
149
150 Arguments:
151 This - Protocol instance pointer.
152 FatSize - The size of the string Fat in bytes.
153 Fat - A pointer to a Null-terminated string that contains an 8.3 file
154 name using an OEM character set.
155 String - A pointer to a Null-terminated Unicode string. The string must
156 be preallocated to hold FatSize Unicode characters.
157 Returns:
158 NONE
159
160 --*/
161 ;
162
163 typedef
164 BOOLEAN
165 (EFIAPI *EFI_UNICODE_COLLATION2_STRTOFAT) (
166 IN EFI_UNICODE_COLLATION2_PROTOCOL * This,
167 IN CHAR16 *String,
168 IN UINTN FatSize,
169 OUT CHAR8 *Fat
170 )
171 /*++
172
173 Routine Description:
174 Converts a Null-terminated Unicode string to legal characters in a FAT
175 filename using an OEM character set.
176
177 Arguments:
178 This - Protocol instance pointer.
179 String - A pointer to a Null-terminated Unicode string. The string must
180 be preallocated to hold FatSize Unicode characters.
181 FatSize - The size of the string Fat in bytes.
182 Fat - A pointer to a Null-terminated string that contains an 8.3 file
183 name using an OEM character set.
184 Returns:
185 TRUE - Fat is a Long File Name
186 FALSE - Fat is an 8.3 file name
187
188 --*/
189 ;
190
191 struct _EFI_UNICODE_COLLATION2_PROTOCOL {
192 //
193 // general
194 //
195 EFI_UNICODE_COLLATION2_STRICOLL StriColl;
196 EFI_UNICODE_COLLATION2_METAIMATCH MetaiMatch;
197 EFI_UNICODE_COLLATION2_STRLWR StrLwr;
198 EFI_UNICODE_COLLATION2_STRUPR StrUpr;
199
200 //
201 // for supporting fat volumes
202 //
203 EFI_UNICODE_COLLATION2_FATTOSTR FatToStr;
204 EFI_UNICODE_COLLATION2_STRTOFAT StrToFat;
205
206 CHAR8 *SupportedLanguages;
207 };
208
209 extern EFI_GUID gEfiUnicodeCollation2ProtocolGuid;
210
211 #endif