|
1 |
| -/* SPDX-License-Identifier: GPL-2.0-or-later */ |
| 1 | +// SPDX-License-Identifier: GPL-2.0-or-later |
2 | 2 | /*
|
3 | 3 | * Some of the source code in this file came from fs/cifs/uniupr.h
|
4 | 4 | * Copyright (c) International Business Machines Corp., 2000,2002
|
5 | 5 | *
|
6 |
| - * uniupr.h - Unicode compressed case ranges |
| 6 | + * Some of the source code in this file came from fs/cifs/cifs_unicode.c |
| 7 | + * |
| 8 | + * Copyright (c) International Business Machines Corp., 2000,2009 |
| 9 | + * Modified by Steve French ([email protected]) |
| 10 | + * Modified by Namjae Jeon ([email protected]) |
7 | 11 | *
|
8 | 12 | */
|
9 |
| -#ifndef __KSMBD_UNIUPR_H |
10 |
| -#define __KSMBD_UNIUPR_H |
| 13 | +#include <linux/fs.h> |
| 14 | +#include <linux/module.h> |
| 15 | +#include <linux/slab.h> |
| 16 | +#include <asm/unaligned.h> |
| 17 | +#include "nls_ucs2_utils.h" |
| 18 | + |
| 19 | +MODULE_LICENSE("GPL"); |
11 | 20 |
|
12 |
| -#ifndef UNIUPR_NOUPPER |
13 | 21 | /*
|
14 | 22 | * Latin upper case
|
15 | 23 | */
|
16 |
| -signed char SmbUniUpperTable[512] = { |
| 24 | +signed char NlsUniUpperTable[512] = { |
17 | 25 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 000-00f */
|
18 | 26 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 010-01f */
|
19 | 27 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 020-02f */
|
@@ -51,6 +59,7 @@ signed char SmbUniUpperTable[512] = {
|
51 | 59 | 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, 0, -1, /* 1e0-1ef */
|
52 | 60 | 0, 0, -1, -2, 0, -1, 0, 0, 0, -1, 0, -1, 0, -1, 0, -1, /* 1f0-1ff */
|
53 | 61 | };
|
| 62 | +EXPORT_SYMBOL_GPL(NlsUniUpperTable); |
54 | 63 |
|
55 | 64 | /* Upper case range - Greek */
|
56 | 65 | static signed char UniCaseRangeU03a0[47] = {
|
@@ -126,143 +135,12 @@ static signed char UniCaseRangeUff40[27] = {
|
126 | 135 | /*
|
127 | 136 | * Upper Case Range
|
128 | 137 | */
|
129 |
| -const struct UniCaseRange SmbUniUpperRange[] = { |
| 138 | +const struct UniCaseRange NlsUniUpperRange[] = { |
130 | 139 | {0x03a0, 0x03ce, UniCaseRangeU03a0},
|
131 | 140 | {0x0430, 0x045f, UniCaseRangeU0430},
|
132 | 141 | {0x0490, 0x04cc, UniCaseRangeU0490},
|
133 | 142 | {0x1e00, 0x1ffc, UniCaseRangeU1e00},
|
134 | 143 | {0xff40, 0xff5a, UniCaseRangeUff40},
|
135 | 144 | {0}
|
136 | 145 | };
|
137 |
| -#endif |
138 |
| - |
139 |
| -#ifndef UNIUPR_NOLOWER |
140 |
| -/* |
141 |
| - * Latin lower case |
142 |
| - */ |
143 |
| -signed char CifsUniLowerTable[512] = { |
144 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 000-00f */ |
145 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 010-01f */ |
146 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 020-02f */ |
147 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 030-03f */ |
148 |
| - 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, |
149 |
| - 32, 32, 32, /* 040-04f */ |
150 |
| - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 0, 0, |
151 |
| - 0, 0, 0, /* 050-05f */ |
152 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 060-06f */ |
153 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 070-07f */ |
154 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 080-08f */ |
155 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 090-09f */ |
156 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0a0-0af */ |
157 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0b0-0bf */ |
158 |
| - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, |
159 |
| - 32, 32, 32, 32, /* 0c0-0cf */ |
160 |
| - 32, 32, 32, 32, 32, 32, 32, 0, 32, 32, 32, 32, |
161 |
| - 32, 32, 32, 0, /* 0d0-0df */ |
162 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0e0-0ef */ |
163 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0f0-0ff */ |
164 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 100-10f */ |
165 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 110-11f */ |
166 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 120-12f */ |
167 |
| - 0, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, 1, /* 130-13f */ |
168 |
| - 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1, 0, /* 140-14f */ |
169 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 150-15f */ |
170 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 160-16f */ |
171 |
| - 1, 0, 1, 0, 1, 0, 1, 0, -121, 1, 0, 1, 0, 1, 0, |
172 |
| - 0, /* 170-17f */ |
173 |
| - 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 79, |
174 |
| - 0, /* 180-18f */ |
175 |
| - 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 190-19f */ |
176 |
| - 1, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 1, /* 1a0-1af */ |
177 |
| - 0, 0, 0, 1, 0, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, /* 1b0-1bf */ |
178 |
| - 0, 0, 0, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 1, 0, 1, /* 1c0-1cf */ |
179 |
| - 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 1, 0, /* 1d0-1df */ |
180 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1e0-1ef */ |
181 |
| - 0, 2, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1f0-1ff */ |
182 |
| -}; |
183 |
| - |
184 |
| -/* Lower case range - Greek */ |
185 |
| -static signed char UniCaseRangeL0380[44] = { |
186 |
| - 0, 0, 0, 0, 0, 0, 38, 0, 37, 37, 37, 0, 64, 0, 63, 63, /* 380-38f */ |
187 |
| - 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, |
188 |
| - 32, 32, 32, /* 390-39f */ |
189 |
| - 32, 32, 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, |
190 |
| -}; |
191 |
| - |
192 |
| -/* Lower case range - Cyrillic */ |
193 |
| -static signed char UniCaseRangeL0400[48] = { |
194 |
| - 0, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, |
195 |
| - 0, 80, 80, /* 400-40f */ |
196 |
| - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, |
197 |
| - 32, 32, 32, /* 410-41f */ |
198 |
| - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, |
199 |
| - 32, 32, 32, /* 420-42f */ |
200 |
| -}; |
201 |
| - |
202 |
| -/* Lower case range - Extended cyrillic */ |
203 |
| -static signed char UniCaseRangeL0490[60] = { |
204 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 490-49f */ |
205 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 4a0-4af */ |
206 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 4b0-4bf */ |
207 |
| - 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, |
208 |
| -}; |
209 |
| - |
210 |
| -/* Lower case range - Extended latin and greek */ |
211 |
| -static signed char UniCaseRangeL1e00[504] = { |
212 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1e00-1e0f */ |
213 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1e10-1e1f */ |
214 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1e20-1e2f */ |
215 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1e30-1e3f */ |
216 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1e40-1e4f */ |
217 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1e50-1e5f */ |
218 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1e60-1e6f */ |
219 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1e70-1e7f */ |
220 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1e80-1e8f */ |
221 |
| - 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, /* 1e90-1e9f */ |
222 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1ea0-1eaf */ |
223 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1eb0-1ebf */ |
224 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1ec0-1ecf */ |
225 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1ed0-1edf */ |
226 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, /* 1ee0-1eef */ |
227 |
| - 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, /* 1ef0-1eff */ |
228 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, -8, -8, -8, -8, -8, -8, /* 1f00-1f0f */ |
229 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, -8, -8, -8, -8, 0, 0, /* 1f10-1f1f */ |
230 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, -8, -8, -8, -8, -8, -8, /* 1f20-1f2f */ |
231 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, -8, -8, -8, -8, -8, -8, /* 1f30-1f3f */ |
232 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, -8, -8, -8, -8, 0, 0, /* 1f40-1f4f */ |
233 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, -8, 0, -8, 0, -8, /* 1f50-1f5f */ |
234 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, -8, -8, -8, -8, -8, -8, /* 1f60-1f6f */ |
235 |
| - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 1f70-1f7f */ |
236 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, -8, -8, -8, -8, -8, -8, /* 1f80-1f8f */ |
237 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, -8, -8, -8, -8, -8, -8, /* 1f90-1f9f */ |
238 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, -8, -8, -8, -8, -8, -8, /* 1fa0-1faf */ |
239 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, -74, -74, -9, 0, 0, 0, /* 1fb0-1fbf */ |
240 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -86, -86, -86, -86, -9, 0, |
241 |
| - 0, 0, /* 1fc0-1fcf */ |
242 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, -100, -100, 0, 0, 0, 0, /* 1fd0-1fdf */ |
243 |
| - 0, 0, 0, 0, 0, 0, 0, 0, -8, -8, -112, -112, -7, 0, |
244 |
| - 0, 0, /* 1fe0-1fef */ |
245 |
| - 0, 0, 0, 0, 0, 0, 0, 0, |
246 |
| -}; |
247 |
| - |
248 |
| -/* Lower case range - Wide latin */ |
249 |
| -static signed char UniCaseRangeLff20[27] = { |
250 |
| - 0, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, |
251 |
| - 32, /* ff20-ff2f */ |
252 |
| - 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, |
253 |
| -}; |
254 |
| - |
255 |
| -/* |
256 |
| - * Lower Case Range |
257 |
| - */ |
258 |
| -const struct UniCaseRange CifsUniLowerRange[] = { |
259 |
| - {0x0380, 0x03ab, UniCaseRangeL0380}, |
260 |
| - {0x0400, 0x042f, UniCaseRangeL0400}, |
261 |
| - {0x0490, 0x04cb, UniCaseRangeL0490}, |
262 |
| - {0x1e00, 0x1ff7, UniCaseRangeL1e00}, |
263 |
| - {0xff20, 0xff3a, UniCaseRangeLff20}, |
264 |
| - {0} |
265 |
| -}; |
266 |
| -#endif |
267 |
| - |
268 |
| -#endif /* __KSMBD_UNIUPR_H */ |
| 146 | +EXPORT_SYMBOL_GPL(NlsUniUpperRange); |
0 commit comments