]> git.proxmox.com Git - mirror_edk2.git/blame_incremental - MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/UnicodeCollationEng.h
UefiCpuPkg: Move AsmRelocateApLoopStart from Mpfuncs.nasm to AmdSev.nasm
[mirror_edk2.git] / MdeModulePkg / Universal / Disk / UnicodeCollation / EnglishDxe / UnicodeCollationEng.h
... / ...
CommitLineData
1/** @file\r
2 Head file for Unicode Collation Protocol (English)\r
3\r
4Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
5SPDX-License-Identifier: BSD-2-Clause-Patent\r
6\r
7**/\r
8\r
9#ifndef _UNICODE_COLLATION_ENG_H_\r
10#define _UNICODE_COLLATION_ENG_H_\r
11\r
12#include <Uefi.h>\r
13\r
14#include <Protocol/UnicodeCollation.h>\r
15\r
16#include <Library/DebugLib.h>\r
17#include <Library/UefiDriverEntryPoint.h>\r
18#include <Library/UefiBootServicesTableLib.h>\r
19#include <Library/PcdLib.h>\r
20\r
21//\r
22// Bit mask to indicate the validity of character in FAT file name.\r
23//\r
24#define CHAR_FAT_VALID 0x01\r
25\r
26//\r
27// Maximum FAT table size.\r
28//\r
29#define MAP_TABLE_SIZE 0x100\r
30\r
31//\r
32// Macro to map character a to upper case.\r
33//\r
34#define TO_UPPER(a) (CHAR16) ((a) <= 0xFF ? mEngUpperMap[a] : (a))\r
35\r
36//\r
37// Macro to map character a to lower case.\r
38//\r
39#define TO_LOWER(a) (CHAR16) ((a) <= 0xFF ? mEngLowerMap[a] : (a))\r
40\r
41//\r
42// Prototypes\r
43//\r
44\r
45/**\r
46 Performs a case-insensitive comparison of two Null-terminated strings.\r
47\r
48 @param This Protocol instance pointer.\r
49 @param Str1 A pointer to a Null-terminated string.\r
50 @param Str2 A pointer to a Null-terminated string.\r
51\r
52 @retval 0 Str1 is equivalent to Str2\r
53 @retval > 0 Str1 is lexically greater than Str2\r
54 @retval < 0 Str1 is lexically less than Str2\r
55\r
56**/\r
57INTN\r
58EFIAPI\r
59EngStriColl (\r
60 IN EFI_UNICODE_COLLATION_PROTOCOL *This,\r
61 IN CHAR16 *Str1,\r
62 IN CHAR16 *Str2\r
63 );\r
64\r
65/**\r
66 Performs a case-insensitive comparison of a Null-terminated\r
67 pattern string and a Null-terminated string.\r
68\r
69 @param This Protocol instance pointer.\r
70 @param String A pointer to a Null-terminated string.\r
71 @param Pattern A pointer to a Null-terminated pattern string.\r
72\r
73 @retval TRUE Pattern was found in String.\r
74 @retval FALSE Pattern was not found in String.\r
75\r
76**/\r
77BOOLEAN\r
78EFIAPI\r
79EngMetaiMatch (\r
80 IN EFI_UNICODE_COLLATION_PROTOCOL *This,\r
81 IN CHAR16 *String,\r
82 IN CHAR16 *Pattern\r
83 );\r
84\r
85/**\r
86 Converts all the characters in a Null-terminated string to\r
87 lower case characters.\r
88\r
89 @param This Protocol instance pointer.\r
90 @param Str A pointer to a Null-terminated string.\r
91\r
92**/\r
93VOID\r
94EFIAPI\r
95EngStrLwr (\r
96 IN EFI_UNICODE_COLLATION_PROTOCOL *This,\r
97 IN OUT CHAR16 *Str\r
98 );\r
99\r
100/**\r
101 Converts all the characters in a Null-terminated string to upper\r
102 case characters.\r
103\r
104 @param This Protocol instance pointer.\r
105 @param Str A pointer to a Null-terminated string.\r
106\r
107**/\r
108VOID\r
109EFIAPI\r
110EngStrUpr (\r
111 IN EFI_UNICODE_COLLATION_PROTOCOL *This,\r
112 IN OUT CHAR16 *Str\r
113 );\r
114\r
115/**\r
116 Converts an 8.3 FAT file name in an OEM character set to a Null-terminated string.\r
117\r
118 @param This Protocol instance pointer.\r
119 @param FatSize The size of the string Fat in bytes.\r
120 @param Fat A pointer to a Null-terminated string that contains an 8.3 file\r
121 name using an 8-bit OEM character set.\r
122 @param String A pointer to a Null-terminated string. The string must\r
123 be preallocated to hold FatSize characters.\r
124\r
125**/\r
126VOID\r
127EFIAPI\r
128EngFatToStr (\r
129 IN EFI_UNICODE_COLLATION_PROTOCOL *This,\r
130 IN UINTN FatSize,\r
131 IN CHAR8 *Fat,\r
132 OUT CHAR16 *String\r
133 );\r
134\r
135/**\r
136 Converts a Null-terminated string to legal characters in a FAT\r
137 filename using an OEM character set.\r
138\r
139 @param This Protocol instance pointer.\r
140 @param String A pointer to a Null-terminated string. The string must\r
141 be preallocated to hold FatSize characters.\r
142 @param FatSize The size of the string Fat in bytes.\r
143 @param Fat A pointer to a Null-terminated string that contains an 8.3 file\r
144 name using an OEM character set.\r
145\r
146 @retval TRUE Fat is a Long File Name\r
147 @retval FALSE Fat is an 8.3 file name\r
148\r
149**/\r
150BOOLEAN\r
151EFIAPI\r
152EngStrToFat (\r
153 IN EFI_UNICODE_COLLATION_PROTOCOL *This,\r
154 IN CHAR16 *String,\r
155 IN UINTN FatSize,\r
156 OUT CHAR8 *Fat\r
157 );\r
158\r
159/**\r
160 The user Entry Point for English module.\r
161\r
162 This function initializes unicode character mapping and then installs Unicode\r
163 Collation & Unicode Collation 2 Protocols based on the feature flags.\r
164\r
165 @param ImageHandle The firmware allocated handle for the EFI image.\r
166 @param SystemTable A pointer to the EFI System Table.\r
167\r
168 @retval EFI_SUCCESS The entry point is executed successfully.\r
169 @retval other Some error occurs when executing this entry point.\r
170\r
171**/\r
172EFI_STATUS\r
173EFIAPI\r
174InitializeUnicodeCollationEng (\r
175 IN EFI_HANDLE ImageHandle,\r
176 IN EFI_SYSTEM_TABLE *SystemTable\r
177 );\r
178\r
179#endif\r