1 // SPDX-License-Identifier: GPL-2.0-or-later 1 2 /* 3 * 4 * Copyright (c) Jeffrey Layton <jlayton@redha 5 * 6 * The const tables in this file were converte 7 * provided by Microsoft: 8 * 9 * 3.1.5.3 Mapping UTF-16 Strings to Upper Cas 10 * 11 * https://msdn.microsoft.com/en-us/library/hh 12 * http://www.microsoft.com/en-us/download/det 13 * 14 * In particular, the table in "Windows 8 Uppe 15 * post-processed using the winucase_convert.p 16 */ 17 18 #include <linux/nls.h> 19 20 wchar_t cifs_toupper(wchar_t in); /* quiet sp 21 22 static const wchar_t t2_00[256] = { 23 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 24 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 25 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 26 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 27 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 28 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 29 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 30 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 31 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 32 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 33 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 34 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 35 0x0000, 0x0041, 0x0042, 0x0043, 0x0044 36 0x0048, 0x0049, 0x004a, 0x004b, 0x004c 37 0x0050, 0x0051, 0x0052, 0x0053, 0x0054 38 0x0058, 0x0059, 0x005a, 0x0000, 0x0000 39 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 40 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 41 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 42 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 43 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 44 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 45 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 46 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 47 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 48 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 49 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 50 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 51 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4 52 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc 53 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4 54 0x00d8, 0x00d9, 0x00da, 0x00db, 0x00dc 55 }; 56 57 static const wchar_t t2_01[256] = { 58 0x0000, 0x0100, 0x0000, 0x0102, 0x0000 59 0x0000, 0x0108, 0x0000, 0x010a, 0x0000 60 0x0000, 0x0110, 0x0000, 0x0112, 0x0000 61 0x0000, 0x0118, 0x0000, 0x011a, 0x0000 62 0x0000, 0x0120, 0x0000, 0x0122, 0x0000 63 0x0000, 0x0128, 0x0000, 0x012a, 0x0000 64 0x0000, 0x0000, 0x0000, 0x0132, 0x0000 65 0x0000, 0x0000, 0x0139, 0x0000, 0x013b 66 0x013f, 0x0000, 0x0141, 0x0000, 0x0143 67 0x0147, 0x0000, 0x0000, 0x014a, 0x0000 68 0x0000, 0x0150, 0x0000, 0x0152, 0x0000 69 0x0000, 0x0158, 0x0000, 0x015a, 0x0000 70 0x0000, 0x0160, 0x0000, 0x0162, 0x0000 71 0x0000, 0x0168, 0x0000, 0x016a, 0x0000 72 0x0000, 0x0170, 0x0000, 0x0172, 0x0000 73 0x0000, 0x0000, 0x0179, 0x0000, 0x017b 74 0x0243, 0x0000, 0x0000, 0x0182, 0x0000 75 0x0187, 0x0000, 0x0000, 0x0000, 0x018b 76 0x0000, 0x0000, 0x0191, 0x0000, 0x0000 77 0x0000, 0x0198, 0x023d, 0x0000, 0x0000 78 0x0000, 0x01a0, 0x0000, 0x01a2, 0x0000 79 0x01a7, 0x0000, 0x0000, 0x0000, 0x0000 80 0x01af, 0x0000, 0x0000, 0x0000, 0x01b3 81 0x0000, 0x01b8, 0x0000, 0x0000, 0x0000 82 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 83 0x0000, 0x01c7, 0x0000, 0x0000, 0x01ca 84 0x01cf, 0x0000, 0x01d1, 0x0000, 0x01d3 85 0x01d7, 0x0000, 0x01d9, 0x0000, 0x01db 86 0x0000, 0x01e0, 0x0000, 0x01e2, 0x0000 87 0x0000, 0x01e8, 0x0000, 0x01ea, 0x0000 88 0x0000, 0x0000, 0x0000, 0x01f1, 0x0000 89 0x0000, 0x01f8, 0x0000, 0x01fa, 0x0000 90 }; 91 92 static const wchar_t t2_02[256] = { 93 0x0000, 0x0200, 0x0000, 0x0202, 0x0000 94 0x0000, 0x0208, 0x0000, 0x020a, 0x0000 95 0x0000, 0x0210, 0x0000, 0x0212, 0x0000 96 0x0000, 0x0218, 0x0000, 0x021a, 0x0000 97 0x0000, 0x0000, 0x0000, 0x0222, 0x0000 98 0x0000, 0x0228, 0x0000, 0x022a, 0x0000 99 0x0000, 0x0230, 0x0000, 0x0232, 0x0000 100 0x0000, 0x0000, 0x0000, 0x0000, 0x023b 101 0x0000, 0x0000, 0x0241, 0x0000, 0x0000 102 0x0000, 0x0248, 0x0000, 0x024a, 0x0000 103 0x2c6f, 0x2c6d, 0x0000, 0x0181, 0x0186 104 0x0000, 0x018f, 0x0000, 0x0190, 0x0000 105 0x0193, 0x0000, 0x0000, 0x0194, 0x0000 106 0x0197, 0x0196, 0x0000, 0x2c62, 0x0000 107 0x0000, 0x2c6e, 0x019d, 0x0000, 0x0000 108 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 109 0x01a6, 0x0000, 0x0000, 0x01a9, 0x0000 110 0x01ae, 0x0244, 0x01b1, 0x01b2, 0x0245 111 0x0000, 0x0000, 0x01b7, 0x0000, 0x0000 112 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 113 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 114 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 115 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 116 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 117 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 118 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 119 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 120 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 121 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 122 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 123 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 124 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 125 }; 126 127 static const wchar_t t2_03[256] = { 128 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 129 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 130 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 131 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 132 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 133 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 134 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 135 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 136 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 137 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 138 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 139 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 140 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 141 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 142 0x0000, 0x0370, 0x0000, 0x0372, 0x0000 143 0x0000, 0x0000, 0x0000, 0x03fd, 0x03fe 144 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 145 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 146 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 147 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 148 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 149 0x0000, 0x0000, 0x0000, 0x0000, 0x0386 150 0x0000, 0x0391, 0x0392, 0x0393, 0x0394 151 0x0398, 0x0399, 0x039a, 0x039b, 0x039c 152 0x03a0, 0x03a1, 0x0000, 0x03a3, 0x03a4 153 0x03a8, 0x03a9, 0x03aa, 0x03ab, 0x038c 154 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 155 0x0000, 0x03d8, 0x0000, 0x03da, 0x0000 156 0x0000, 0x03e0, 0x0000, 0x03e2, 0x0000 157 0x0000, 0x03e8, 0x0000, 0x03ea, 0x0000 158 0x0000, 0x0000, 0x03f9, 0x0000, 0x0000 159 0x03f7, 0x0000, 0x0000, 0x03fa, 0x0000 160 }; 161 162 static const wchar_t t2_04[256] = { 163 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 164 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 165 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 166 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 167 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 168 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 169 0x0410, 0x0411, 0x0412, 0x0413, 0x0414 170 0x0418, 0x0419, 0x041a, 0x041b, 0x041c 171 0x0420, 0x0421, 0x0422, 0x0423, 0x0424 172 0x0428, 0x0429, 0x042a, 0x042b, 0x042c 173 0x0400, 0x0401, 0x0402, 0x0403, 0x0404 174 0x0408, 0x0409, 0x040a, 0x040b, 0x040c 175 0x0000, 0x0460, 0x0000, 0x0462, 0x0000 176 0x0000, 0x0468, 0x0000, 0x046a, 0x0000 177 0x0000, 0x0470, 0x0000, 0x0472, 0x0000 178 0x0000, 0x0478, 0x0000, 0x047a, 0x0000 179 0x0000, 0x0480, 0x0000, 0x0000, 0x0000 180 0x0000, 0x0000, 0x0000, 0x048a, 0x0000 181 0x0000, 0x0490, 0x0000, 0x0492, 0x0000 182 0x0000, 0x0498, 0x0000, 0x049a, 0x0000 183 0x0000, 0x04a0, 0x0000, 0x04a2, 0x0000 184 0x0000, 0x04a8, 0x0000, 0x04aa, 0x0000 185 0x0000, 0x04b0, 0x0000, 0x04b2, 0x0000 186 0x0000, 0x04b8, 0x0000, 0x04ba, 0x0000 187 0x0000, 0x0000, 0x04c1, 0x0000, 0x04c3 188 0x04c7, 0x0000, 0x04c9, 0x0000, 0x04cb 189 0x0000, 0x04d0, 0x0000, 0x04d2, 0x0000 190 0x0000, 0x04d8, 0x0000, 0x04da, 0x0000 191 0x0000, 0x04e0, 0x0000, 0x04e2, 0x0000 192 0x0000, 0x04e8, 0x0000, 0x04ea, 0x0000 193 0x0000, 0x04f0, 0x0000, 0x04f2, 0x0000 194 0x0000, 0x04f8, 0x0000, 0x04fa, 0x0000 195 }; 196 197 static const wchar_t t2_05[256] = { 198 0x0000, 0x0500, 0x0000, 0x0502, 0x0000 199 0x0000, 0x0508, 0x0000, 0x050a, 0x0000 200 0x0000, 0x0510, 0x0000, 0x0512, 0x0000 201 0x0000, 0x0518, 0x0000, 0x051a, 0x0000 202 0x0000, 0x0520, 0x0000, 0x0522, 0x0000 203 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 204 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 205 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 206 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 207 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 208 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 209 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 210 0x0000, 0x0531, 0x0532, 0x0533, 0x0534 211 0x0538, 0x0539, 0x053a, 0x053b, 0x053c 212 0x0540, 0x0541, 0x0542, 0x0543, 0x0544 213 0x0548, 0x0549, 0x054a, 0x054b, 0x054c 214 0x0550, 0x0551, 0x0552, 0x0553, 0x0554 215 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 216 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 217 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 218 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 219 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 220 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 221 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 222 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 223 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 224 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 225 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 226 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 227 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 228 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 229 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 230 }; 231 232 static const wchar_t t2_1d[256] = { 233 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 234 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 235 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 236 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 237 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 238 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 239 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 240 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 241 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 242 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 243 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 244 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 245 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 246 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 247 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 248 0x0000, 0xa77d, 0x0000, 0x0000, 0x0000 249 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 250 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 251 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 252 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 253 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 254 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 255 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 256 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 257 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 258 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 259 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 260 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 261 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 262 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 263 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 264 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 265 }; 266 267 static const wchar_t t2_1e[256] = { 268 0x0000, 0x1e00, 0x0000, 0x1e02, 0x0000 269 0x0000, 0x1e08, 0x0000, 0x1e0a, 0x0000 270 0x0000, 0x1e10, 0x0000, 0x1e12, 0x0000 271 0x0000, 0x1e18, 0x0000, 0x1e1a, 0x0000 272 0x0000, 0x1e20, 0x0000, 0x1e22, 0x0000 273 0x0000, 0x1e28, 0x0000, 0x1e2a, 0x0000 274 0x0000, 0x1e30, 0x0000, 0x1e32, 0x0000 275 0x0000, 0x1e38, 0x0000, 0x1e3a, 0x0000 276 0x0000, 0x1e40, 0x0000, 0x1e42, 0x0000 277 0x0000, 0x1e48, 0x0000, 0x1e4a, 0x0000 278 0x0000, 0x1e50, 0x0000, 0x1e52, 0x0000 279 0x0000, 0x1e58, 0x0000, 0x1e5a, 0x0000 280 0x0000, 0x1e60, 0x0000, 0x1e62, 0x0000 281 0x0000, 0x1e68, 0x0000, 0x1e6a, 0x0000 282 0x0000, 0x1e70, 0x0000, 0x1e72, 0x0000 283 0x0000, 0x1e78, 0x0000, 0x1e7a, 0x0000 284 0x0000, 0x1e80, 0x0000, 0x1e82, 0x0000 285 0x0000, 0x1e88, 0x0000, 0x1e8a, 0x0000 286 0x0000, 0x1e90, 0x0000, 0x1e92, 0x0000 287 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 288 0x0000, 0x1ea0, 0x0000, 0x1ea2, 0x0000 289 0x0000, 0x1ea8, 0x0000, 0x1eaa, 0x0000 290 0x0000, 0x1eb0, 0x0000, 0x1eb2, 0x0000 291 0x0000, 0x1eb8, 0x0000, 0x1eba, 0x0000 292 0x0000, 0x1ec0, 0x0000, 0x1ec2, 0x0000 293 0x0000, 0x1ec8, 0x0000, 0x1eca, 0x0000 294 0x0000, 0x1ed0, 0x0000, 0x1ed2, 0x0000 295 0x0000, 0x1ed8, 0x0000, 0x1eda, 0x0000 296 0x0000, 0x1ee0, 0x0000, 0x1ee2, 0x0000 297 0x0000, 0x1ee8, 0x0000, 0x1eea, 0x0000 298 0x0000, 0x1ef0, 0x0000, 0x1ef2, 0x0000 299 0x0000, 0x1ef8, 0x0000, 0x1efa, 0x0000 300 }; 301 302 static const wchar_t t2_1f[256] = { 303 0x1f08, 0x1f09, 0x1f0a, 0x1f0b, 0x1f0c 304 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 305 0x1f18, 0x1f19, 0x1f1a, 0x1f1b, 0x1f1c 306 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 307 0x1f28, 0x1f29, 0x1f2a, 0x1f2b, 0x1f2c 308 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 309 0x1f38, 0x1f39, 0x1f3a, 0x1f3b, 0x1f3c 310 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 311 0x1f48, 0x1f49, 0x1f4a, 0x1f4b, 0x1f4c 312 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 313 0x0000, 0x1f59, 0x0000, 0x1f5b, 0x0000 314 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 315 0x1f68, 0x1f69, 0x1f6a, 0x1f6b, 0x1f6c 316 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 317 0x1fba, 0x1fbb, 0x1fc8, 0x1fc9, 0x1fca 318 0x1ff8, 0x1ff9, 0x1fea, 0x1feb, 0x1ffa 319 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c 320 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 321 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c 322 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 323 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac 324 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 325 0x1fb8, 0x1fb9, 0x0000, 0x1fbc, 0x0000 326 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 327 0x0000, 0x0000, 0x0000, 0x1fcc, 0x0000 328 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 329 0x1fd8, 0x1fd9, 0x0000, 0x0000, 0x0000 330 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 331 0x1fe8, 0x1fe9, 0x0000, 0x0000, 0x0000 332 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 333 0x0000, 0x0000, 0x0000, 0x1ffc, 0x0000 334 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 335 }; 336 337 static const wchar_t t2_21[256] = { 338 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 339 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 340 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 341 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 342 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 343 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 344 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 345 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 346 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 347 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 348 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 349 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 350 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 351 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 352 0x2160, 0x2161, 0x2162, 0x2163, 0x2164 353 0x2168, 0x2169, 0x216a, 0x216b, 0x216c 354 0x0000, 0x0000, 0x0000, 0x0000, 0x2183 355 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 356 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 357 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 358 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 359 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 360 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 361 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 362 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 363 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 364 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 365 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 366 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 367 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 368 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 369 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 370 }; 371 372 static const wchar_t t2_24[256] = { 373 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 374 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 375 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 376 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 377 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 378 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 379 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 380 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 381 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 382 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 383 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 384 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 385 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 386 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 387 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 388 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 389 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 390 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 391 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 392 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 393 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 394 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 395 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 396 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 397 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 398 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 399 0x24b6, 0x24b7, 0x24b8, 0x24b9, 0x24ba 400 0x24be, 0x24bf, 0x24c0, 0x24c1, 0x24c2 401 0x24c6, 0x24c7, 0x24c8, 0x24c9, 0x24ca 402 0x24ce, 0x24cf, 0x0000, 0x0000, 0x0000 403 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 404 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 405 }; 406 407 static const wchar_t t2_2c[256] = { 408 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 409 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 410 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 411 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 412 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 413 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 414 0x2c00, 0x2c01, 0x2c02, 0x2c03, 0x2c04 415 0x2c08, 0x2c09, 0x2c0a, 0x2c0b, 0x2c0c 416 0x2c10, 0x2c11, 0x2c12, 0x2c13, 0x2c14 417 0x2c18, 0x2c19, 0x2c1a, 0x2c1b, 0x2c1c 418 0x2c20, 0x2c21, 0x2c22, 0x2c23, 0x2c24 419 0x2c28, 0x2c29, 0x2c2a, 0x2c2b, 0x2c2c 420 0x0000, 0x2c60, 0x0000, 0x0000, 0x0000 421 0x2c67, 0x0000, 0x2c69, 0x0000, 0x2c6b 422 0x0000, 0x0000, 0x0000, 0x2c72, 0x0000 423 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 424 0x0000, 0x2c80, 0x0000, 0x2c82, 0x0000 425 0x0000, 0x2c88, 0x0000, 0x2c8a, 0x0000 426 0x0000, 0x2c90, 0x0000, 0x2c92, 0x0000 427 0x0000, 0x2c98, 0x0000, 0x2c9a, 0x0000 428 0x0000, 0x2ca0, 0x0000, 0x2ca2, 0x0000 429 0x0000, 0x2ca8, 0x0000, 0x2caa, 0x0000 430 0x0000, 0x2cb0, 0x0000, 0x2cb2, 0x0000 431 0x0000, 0x2cb8, 0x0000, 0x2cba, 0x0000 432 0x0000, 0x2cc0, 0x0000, 0x2cc2, 0x0000 433 0x0000, 0x2cc8, 0x0000, 0x2cca, 0x0000 434 0x0000, 0x2cd0, 0x0000, 0x2cd2, 0x0000 435 0x0000, 0x2cd8, 0x0000, 0x2cda, 0x0000 436 0x0000, 0x2ce0, 0x0000, 0x2ce2, 0x0000 437 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 438 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 439 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 440 }; 441 442 static const wchar_t t2_2d[256] = { 443 0x10a0, 0x10a1, 0x10a2, 0x10a3, 0x10a4 444 0x10a8, 0x10a9, 0x10aa, 0x10ab, 0x10ac 445 0x10b0, 0x10b1, 0x10b2, 0x10b3, 0x10b4 446 0x10b8, 0x10b9, 0x10ba, 0x10bb, 0x10bc 447 0x10c0, 0x10c1, 0x10c2, 0x10c3, 0x10c4 448 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 449 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 450 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 451 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 452 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 453 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 454 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 455 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 456 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 457 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 458 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 459 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 460 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 461 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 462 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 463 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 464 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 465 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 466 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 467 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 468 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 469 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 470 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 471 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 472 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 473 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 474 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 475 }; 476 477 static const wchar_t t2_a6[256] = { 478 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 479 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 480 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 481 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 482 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 483 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 484 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 485 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 486 0x0000, 0xa640, 0x0000, 0xa642, 0x0000 487 0x0000, 0xa648, 0x0000, 0xa64a, 0x0000 488 0x0000, 0xa650, 0x0000, 0xa652, 0x0000 489 0x0000, 0xa658, 0x0000, 0xa65a, 0x0000 490 0x0000, 0x0000, 0x0000, 0xa662, 0x0000 491 0x0000, 0xa668, 0x0000, 0xa66a, 0x0000 492 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 493 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 494 0x0000, 0xa680, 0x0000, 0xa682, 0x0000 495 0x0000, 0xa688, 0x0000, 0xa68a, 0x0000 496 0x0000, 0xa690, 0x0000, 0xa692, 0x0000 497 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 498 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 499 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 500 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 501 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 502 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 503 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 504 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 505 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 506 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 507 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 508 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 509 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 510 }; 511 512 static const wchar_t t2_a7[256] = { 513 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 514 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 515 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 516 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 517 0x0000, 0x0000, 0x0000, 0xa722, 0x0000 518 0x0000, 0xa728, 0x0000, 0xa72a, 0x0000 519 0x0000, 0x0000, 0x0000, 0xa732, 0x0000 520 0x0000, 0xa738, 0x0000, 0xa73a, 0x0000 521 0x0000, 0xa740, 0x0000, 0xa742, 0x0000 522 0x0000, 0xa748, 0x0000, 0xa74a, 0x0000 523 0x0000, 0xa750, 0x0000, 0xa752, 0x0000 524 0x0000, 0xa758, 0x0000, 0xa75a, 0x0000 525 0x0000, 0xa760, 0x0000, 0xa762, 0x0000 526 0x0000, 0xa768, 0x0000, 0xa76a, 0x0000 527 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 528 0x0000, 0x0000, 0xa779, 0x0000, 0xa77b 529 0x0000, 0xa780, 0x0000, 0xa782, 0x0000 530 0x0000, 0x0000, 0x0000, 0x0000, 0xa78b 531 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 532 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 533 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 534 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 535 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 536 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 537 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 538 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 539 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 540 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 541 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 542 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 543 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 544 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 545 }; 546 547 static const wchar_t t2_ff[256] = { 548 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 549 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 550 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 551 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 552 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 553 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 554 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 555 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 556 0x0000, 0xff21, 0xff22, 0xff23, 0xff24 557 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c 558 0xff30, 0xff31, 0xff32, 0xff33, 0xff34 559 0xff38, 0xff39, 0xff3a, 0x0000, 0x0000 560 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 561 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 562 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 563 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 564 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 565 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 566 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 567 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 568 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 569 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 570 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 571 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 572 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 573 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 574 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 575 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 576 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 577 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 578 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 579 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 580 }; 581 582 static const wchar_t *const toplevel[256] = { 583 t2_00, t2_01, t2_02, t2_03, t2_04, t2_ 584 NULL, NULL, NULL, NULL, NULL, NUL 585 NULL, NULL, NULL, NULL, NULL, NUL 586 NULL, NULL, NULL, NULL, NULL, t2_1 587 NULL, t2_21, NULL, NULL, t2_24, NUL 588 NULL, NULL, NULL, NULL, t2_2c, t2_2 589 NULL, NULL, NULL, NULL, NULL, NUL 590 NULL, NULL, NULL, NULL, NULL, NUL 591 NULL, NULL, NULL, NULL, NULL, NUL 592 NULL, NULL, NULL, NULL, NULL, NUL 593 NULL, NULL, NULL, NULL, NULL, NUL 594 NULL, NULL, NULL, NULL, NULL, NUL 595 NULL, NULL, NULL, NULL, NULL, NUL 596 NULL, NULL, NULL, NULL, NULL, NUL 597 NULL, NULL, NULL, NULL, NULL, NUL 598 NULL, NULL, NULL, NULL, NULL, NUL 599 NULL, NULL, NULL, NULL, NULL, NUL 600 NULL, NULL, NULL, NULL, NULL, NUL 601 NULL, NULL, NULL, NULL, NULL, NUL 602 NULL, NULL, NULL, NULL, NULL, NUL 603 NULL, NULL, NULL, NULL, NULL, NUL 604 NULL, NULL, NULL, NULL, NULL, NUL 605 NULL, NULL, NULL, NULL, NULL, NUL 606 NULL, NULL, NULL, NULL, NULL, NUL 607 NULL, NULL, NULL, NULL, NULL, NUL 608 NULL, NULL, NULL, NULL, NULL, NUL 609 NULL, NULL, NULL, NULL, NULL, NUL 610 NULL, NULL, NULL, NULL, NULL, NUL 611 NULL, NULL, NULL, NULL, NULL, NUL 612 NULL, NULL, NULL, NULL, NULL, NUL 613 NULL, NULL, NULL, NULL, NULL, NUL 614 NULL, NULL, NULL, NULL, NULL, NUL 615 }; 616 617 /** 618 * cifs_toupper - convert a wchar_t from lower 619 * @in: character to convert from lower to upp 620 * 621 * This function consults the static tables ab 622 * lower to uppercase. In the event that there 623 * "in" character is returned. 624 */ 625 wchar_t 626 cifs_toupper(wchar_t in) 627 { 628 unsigned char idx; 629 const wchar_t *tbl; 630 wchar_t out; 631 632 /* grab upper byte */ 633 idx = (in & 0xff00) >> 8; 634 635 /* find pointer to 2nd layer table */ 636 tbl = toplevel[idx]; 637 if (!tbl) 638 return in; 639 640 /* grab lower byte */ 641 idx = in & 0xff; 642 643 /* look up character in table */ 644 out = tbl[idx]; 645 if (out) 646 return out; 647 648 return in; 649 } 650
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.