~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/fs/nls/nls_cp857.c

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /fs/nls/nls_cp857.c (Version linux-6.11-rc3) and /fs/nls/nls_cp857.c (Version linux-5.0.21)


  1 /*                                                  1 /*
  2  * linux/fs/nls/nls_cp857.c                         2  * linux/fs/nls/nls_cp857.c
  3  *                                                  3  *
  4  * Charset cp857 translation tables.                4  * Charset cp857 translation tables.
  5  * Generated automatically from the Unicode an      5  * Generated automatically from the Unicode and charset
  6  * tables from the Unicode Organization (www.u      6  * tables from the Unicode Organization (www.unicode.org).
  7  * The Unicode to charset table has only exact      7  * The Unicode to charset table has only exact mappings.
  8  */                                                 8  */
  9                                                     9 
 10 #include <linux/module.h>                          10 #include <linux/module.h>
 11 #include <linux/kernel.h>                          11 #include <linux/kernel.h>
 12 #include <linux/string.h>                          12 #include <linux/string.h>
 13 #include <linux/nls.h>                             13 #include <linux/nls.h>
 14 #include <linux/errno.h>                           14 #include <linux/errno.h>
 15                                                    15 
 16 static const wchar_t charset2uni[256] = {          16 static const wchar_t charset2uni[256] = {
 17         /* 0x00*/                                  17         /* 0x00*/
 18         0x0000, 0x0001, 0x0002, 0x0003,            18         0x0000, 0x0001, 0x0002, 0x0003,
 19         0x0004, 0x0005, 0x0006, 0x0007,            19         0x0004, 0x0005, 0x0006, 0x0007,
 20         0x0008, 0x0009, 0x000a, 0x000b,            20         0x0008, 0x0009, 0x000a, 0x000b,
 21         0x000c, 0x000d, 0x000e, 0x000f,            21         0x000c, 0x000d, 0x000e, 0x000f,
 22         /* 0x10*/                                  22         /* 0x10*/
 23         0x0010, 0x0011, 0x0012, 0x0013,            23         0x0010, 0x0011, 0x0012, 0x0013,
 24         0x0014, 0x0015, 0x0016, 0x0017,            24         0x0014, 0x0015, 0x0016, 0x0017,
 25         0x0018, 0x0019, 0x001a, 0x001b,            25         0x0018, 0x0019, 0x001a, 0x001b,
 26         0x001c, 0x001d, 0x001e, 0x001f,            26         0x001c, 0x001d, 0x001e, 0x001f,
 27         /* 0x20*/                                  27         /* 0x20*/
 28         0x0020, 0x0021, 0x0022, 0x0023,            28         0x0020, 0x0021, 0x0022, 0x0023,
 29         0x0024, 0x0025, 0x0026, 0x0027,            29         0x0024, 0x0025, 0x0026, 0x0027,
 30         0x0028, 0x0029, 0x002a, 0x002b,            30         0x0028, 0x0029, 0x002a, 0x002b,
 31         0x002c, 0x002d, 0x002e, 0x002f,            31         0x002c, 0x002d, 0x002e, 0x002f,
 32         /* 0x30*/                                  32         /* 0x30*/
 33         0x0030, 0x0031, 0x0032, 0x0033,            33         0x0030, 0x0031, 0x0032, 0x0033,
 34         0x0034, 0x0035, 0x0036, 0x0037,            34         0x0034, 0x0035, 0x0036, 0x0037,
 35         0x0038, 0x0039, 0x003a, 0x003b,            35         0x0038, 0x0039, 0x003a, 0x003b,
 36         0x003c, 0x003d, 0x003e, 0x003f,            36         0x003c, 0x003d, 0x003e, 0x003f,
 37         /* 0x40*/                                  37         /* 0x40*/
 38         0x0040, 0x0041, 0x0042, 0x0043,            38         0x0040, 0x0041, 0x0042, 0x0043,
 39         0x0044, 0x0045, 0x0046, 0x0047,            39         0x0044, 0x0045, 0x0046, 0x0047,
 40         0x0048, 0x0049, 0x004a, 0x004b,            40         0x0048, 0x0049, 0x004a, 0x004b,
 41         0x004c, 0x004d, 0x004e, 0x004f,            41         0x004c, 0x004d, 0x004e, 0x004f,
 42         /* 0x50*/                                  42         /* 0x50*/
 43         0x0050, 0x0051, 0x0052, 0x0053,            43         0x0050, 0x0051, 0x0052, 0x0053,
 44         0x0054, 0x0055, 0x0056, 0x0057,            44         0x0054, 0x0055, 0x0056, 0x0057,
 45         0x0058, 0x0059, 0x005a, 0x005b,            45         0x0058, 0x0059, 0x005a, 0x005b,
 46         0x005c, 0x005d, 0x005e, 0x005f,            46         0x005c, 0x005d, 0x005e, 0x005f,
 47         /* 0x60*/                                  47         /* 0x60*/
 48         0x0060, 0x0061, 0x0062, 0x0063,            48         0x0060, 0x0061, 0x0062, 0x0063,
 49         0x0064, 0x0065, 0x0066, 0x0067,            49         0x0064, 0x0065, 0x0066, 0x0067,
 50         0x0068, 0x0069, 0x006a, 0x006b,            50         0x0068, 0x0069, 0x006a, 0x006b,
 51         0x006c, 0x006d, 0x006e, 0x006f,            51         0x006c, 0x006d, 0x006e, 0x006f,
 52         /* 0x70*/                                  52         /* 0x70*/
 53         0x0070, 0x0071, 0x0072, 0x0073,            53         0x0070, 0x0071, 0x0072, 0x0073,
 54         0x0074, 0x0075, 0x0076, 0x0077,            54         0x0074, 0x0075, 0x0076, 0x0077,
 55         0x0078, 0x0079, 0x007a, 0x007b,            55         0x0078, 0x0079, 0x007a, 0x007b,
 56         0x007c, 0x007d, 0x007e, 0x007f,            56         0x007c, 0x007d, 0x007e, 0x007f,
 57         /* 0x80*/                                  57         /* 0x80*/
 58         0x00c7, 0x00fc, 0x00e9, 0x00e2,            58         0x00c7, 0x00fc, 0x00e9, 0x00e2,
 59         0x00e4, 0x00e0, 0x00e5, 0x00e7,            59         0x00e4, 0x00e0, 0x00e5, 0x00e7,
 60         0x00ea, 0x00eb, 0x00e8, 0x00ef,            60         0x00ea, 0x00eb, 0x00e8, 0x00ef,
 61         0x00ee, 0x0131, 0x00c4, 0x00c5,            61         0x00ee, 0x0131, 0x00c4, 0x00c5,
 62         /* 0x90*/                                  62         /* 0x90*/
 63         0x00c9, 0x00e6, 0x00c6, 0x00f4,            63         0x00c9, 0x00e6, 0x00c6, 0x00f4,
 64         0x00f6, 0x00f2, 0x00fb, 0x00f9,            64         0x00f6, 0x00f2, 0x00fb, 0x00f9,
 65         0x0130, 0x00d6, 0x00dc, 0x00f8,            65         0x0130, 0x00d6, 0x00dc, 0x00f8,
 66         0x00a3, 0x00d8, 0x015e, 0x015f,            66         0x00a3, 0x00d8, 0x015e, 0x015f,
 67         /* 0xa0*/                                  67         /* 0xa0*/
 68         0x00e1, 0x00ed, 0x00f3, 0x00fa,            68         0x00e1, 0x00ed, 0x00f3, 0x00fa,
 69         0x00f1, 0x00d1, 0x011e, 0x011f,            69         0x00f1, 0x00d1, 0x011e, 0x011f,
 70         0x00bf, 0x00ae, 0x00ac, 0x00bd,            70         0x00bf, 0x00ae, 0x00ac, 0x00bd,
 71         0x00bc, 0x00a1, 0x00ab, 0x00bb,            71         0x00bc, 0x00a1, 0x00ab, 0x00bb,
 72         /* 0xb0*/                                  72         /* 0xb0*/
 73         0x2591, 0x2592, 0x2593, 0x2502,            73         0x2591, 0x2592, 0x2593, 0x2502,
 74         0x2524, 0x00c1, 0x00c2, 0x00c0,            74         0x2524, 0x00c1, 0x00c2, 0x00c0,
 75         0x00a9, 0x2563, 0x2551, 0x2557,            75         0x00a9, 0x2563, 0x2551, 0x2557,
 76         0x255d, 0x00a2, 0x00a5, 0x2510,            76         0x255d, 0x00a2, 0x00a5, 0x2510,
 77         /* 0xc0*/                                  77         /* 0xc0*/
 78         0x2514, 0x2534, 0x252c, 0x251c,            78         0x2514, 0x2534, 0x252c, 0x251c,
 79         0x2500, 0x253c, 0x00e3, 0x00c3,            79         0x2500, 0x253c, 0x00e3, 0x00c3,
 80         0x255a, 0x2554, 0x2569, 0x2566,            80         0x255a, 0x2554, 0x2569, 0x2566,
 81         0x2560, 0x2550, 0x256c, 0x00a4,            81         0x2560, 0x2550, 0x256c, 0x00a4,
 82         /* 0xd0*/                                  82         /* 0xd0*/
 83         0x00ba, 0x00aa, 0x00ca, 0x00cb,            83         0x00ba, 0x00aa, 0x00ca, 0x00cb,
 84         0x00c8, 0x0000, 0x00cd, 0x00ce,            84         0x00c8, 0x0000, 0x00cd, 0x00ce,
 85         0x00cf, 0x2518, 0x250c, 0x2588,            85         0x00cf, 0x2518, 0x250c, 0x2588,
 86         0x2584, 0x00a6, 0x00cc, 0x2580,            86         0x2584, 0x00a6, 0x00cc, 0x2580,
 87         /* 0xe0*/                                  87         /* 0xe0*/
 88         0x00d3, 0x00df, 0x00d4, 0x00d2,            88         0x00d3, 0x00df, 0x00d4, 0x00d2,
 89         0x00f5, 0x00d5, 0x00b5, 0x0000,            89         0x00f5, 0x00d5, 0x00b5, 0x0000,
 90         0x00d7, 0x00da, 0x00db, 0x00d9,            90         0x00d7, 0x00da, 0x00db, 0x00d9,
 91         0x00ec, 0x00ff, 0x00af, 0x00b4,            91         0x00ec, 0x00ff, 0x00af, 0x00b4,
 92         /* 0xf0*/                                  92         /* 0xf0*/
 93         0x00ad, 0x00b1, 0x0000, 0x00be,            93         0x00ad, 0x00b1, 0x0000, 0x00be,
 94         0x00b6, 0x00a7, 0x00f7, 0x00b8,            94         0x00b6, 0x00a7, 0x00f7, 0x00b8,
 95         0x00b0, 0x00a8, 0x00b7, 0x00b9,            95         0x00b0, 0x00a8, 0x00b7, 0x00b9,
 96         0x00b3, 0x00b2, 0x25a0, 0x00a0,            96         0x00b3, 0x00b2, 0x25a0, 0x00a0,
 97 };                                                 97 };
 98                                                    98 
 99 static const unsigned char page00[256] = {         99 static const unsigned char page00[256] = {
100         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x    100         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */
101         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x    101         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */
102         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x    102         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */
103         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x    103         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */
104         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x    104         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20-0x27 */
105         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x    105         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, /* 0x28-0x2f */
106         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x    106         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30-0x37 */
107         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x    107         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, /* 0x38-0x3f */
108         0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x    108         0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x40-0x47 */
109         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x    109         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, /* 0x48-0x4f */
110         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x    110         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x50-0x57 */
111         0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x    111         0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, /* 0x58-0x5f */
112         0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x    112         0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
113         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x    113         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
114         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x    114         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
115         0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x    115         0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, /* 0x78-0x7f */
116                                                   116 
117         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    117         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x80-0x87 */
118         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    118         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
119         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    119         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
120         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    120         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
121         0xff, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0x    121         0xff, 0xad, 0xbd, 0x9c, 0xcf, 0xbe, 0xdd, 0xf5, /* 0xa0-0xa7 */
122         0xf9, 0xb8, 0xd1, 0xae, 0xaa, 0xf0, 0x    122         0xf9, 0xb8, 0xd1, 0xae, 0xaa, 0xf0, 0xa9, 0xee, /* 0xa8-0xaf */
123         0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0x    123         0xf8, 0xf1, 0xfd, 0xfc, 0xef, 0xe6, 0xf4, 0xfa, /* 0xb0-0xb7 */
124         0xf7, 0xfb, 0xd0, 0xaf, 0xac, 0xab, 0x    124         0xf7, 0xfb, 0xd0, 0xaf, 0xac, 0xab, 0xf3, 0xa8, /* 0xb8-0xbf */
125         0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x    125         0xb7, 0xb5, 0xb6, 0xc7, 0x8e, 0x8f, 0x92, 0x80, /* 0xc0-0xc7 */
126         0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0x    126         0xd4, 0x90, 0xd2, 0xd3, 0xde, 0xd6, 0xd7, 0xd8, /* 0xc8-0xcf */
127         0x00, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x    127         0x00, 0xa5, 0xe3, 0xe0, 0xe2, 0xe5, 0x99, 0xe8, /* 0xd0-0xd7 */
128         0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0x00, 0x    128         0x9d, 0xeb, 0xe9, 0xea, 0x9a, 0x00, 0x00, 0xe1, /* 0xd8-0xdf */
129         0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x    129         0x85, 0xa0, 0x83, 0xc6, 0x84, 0x86, 0x91, 0x87, /* 0xe0-0xe7 */
130         0x8a, 0x82, 0x88, 0x89, 0xec, 0xa1, 0x    130         0x8a, 0x82, 0x88, 0x89, 0xec, 0xa1, 0x8c, 0x8b, /* 0xe8-0xef */
131         0x00, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x    131         0x00, 0xa4, 0x95, 0xa2, 0x93, 0xe4, 0x94, 0xf6, /* 0xf0-0xf7 */
132         0x9b, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x    132         0x9b, 0x97, 0xa3, 0x96, 0x81, 0x00, 0x00, 0xed, /* 0xf8-0xff */
133 };                                                133 };
134                                                   134 
135 static const unsigned char page01[256] = {        135 static const unsigned char page01[256] = {
136         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    136         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
137         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    137         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
138         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    138         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x10-0x17 */
139         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    139         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0xa7, /* 0x18-0x1f */
140         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    140         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x20-0x27 */
141         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    141         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x28-0x2f */
142         0x98, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x    142         0x98, 0x8d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x30-0x37 */
143         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    143         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x38-0x3f */
144         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    144         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
145         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    145         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
146         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    146         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x50-0x57 */
147         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    147         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x9f, /* 0x58-0x5f */
148 };                                                148 };
149                                                   149 
150 static const unsigned char page25[256] = {        150 static const unsigned char page25[256] = {
151         0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x    151         0xc4, 0x00, 0xb3, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
152         0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x    152         0x00, 0x00, 0x00, 0x00, 0xda, 0x00, 0x00, 0x00, /* 0x08-0x0f */
153         0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x    153         0xbf, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, /* 0x10-0x17 */
154         0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x    154         0xd9, 0x00, 0x00, 0x00, 0xc3, 0x00, 0x00, 0x00, /* 0x18-0x1f */
155         0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x    155         0x00, 0x00, 0x00, 0x00, 0xb4, 0x00, 0x00, 0x00, /* 0x20-0x27 */
156         0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x    156         0x00, 0x00, 0x00, 0x00, 0xc2, 0x00, 0x00, 0x00, /* 0x28-0x2f */
157         0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x    157         0x00, 0x00, 0x00, 0x00, 0xc1, 0x00, 0x00, 0x00, /* 0x30-0x37 */
158         0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x    158         0x00, 0x00, 0x00, 0x00, 0xc5, 0x00, 0x00, 0x00, /* 0x38-0x3f */
159         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    159         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x40-0x47 */
160         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    160         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x48-0x4f */
161         0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x    161         0xcd, 0xba, 0x00, 0x00, 0xc9, 0x00, 0x00, 0xbb, /* 0x50-0x57 */
162         0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x    162         0x00, 0x00, 0xc8, 0x00, 0x00, 0xbc, 0x00, 0x00, /* 0x58-0x5f */
163         0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0x    163         0xcc, 0x00, 0x00, 0xb9, 0x00, 0x00, 0xcb, 0x00, /* 0x60-0x67 */
164         0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x    164         0x00, 0xca, 0x00, 0x00, 0xce, 0x00, 0x00, 0x00, /* 0x68-0x6f */
165         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    165         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x70-0x77 */
166         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    166         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x78-0x7f */
167                                                   167 
168         0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x    168         0xdf, 0x00, 0x00, 0x00, 0xdc, 0x00, 0x00, 0x00, /* 0x80-0x87 */
169         0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    169         0xdb, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x88-0x8f */
170         0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x    170         0x00, 0xb0, 0xb1, 0xb2, 0x00, 0x00, 0x00, 0x00, /* 0x90-0x97 */
171         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    171         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x98-0x9f */
172         0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    172         0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa0-0xa7 */
173 };                                                173 };
174                                                   174 
175 static const unsigned char *const page_uni2cha    175 static const unsigned char *const page_uni2charset[256] = {
176         page00, page01, NULL,   NULL,   NULL,     176         page00, page01, NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
177         NULL,   NULL,   NULL,   NULL,   NULL,     177         NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
178         NULL,   NULL,   NULL,   NULL,   NULL,     178         NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
179         NULL,   NULL,   NULL,   NULL,   NULL,     179         NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
180         NULL,   NULL,   NULL,   NULL,   NULL,     180         NULL,   NULL,   NULL,   NULL,   NULL,   page25, NULL,   NULL,   
181 };                                                181 };
182                                                   182 
183 static const unsigned char charset2lower[256]     183 static const unsigned char charset2lower[256] = {
184         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x    184         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */
185         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x    185         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */
186         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x    186         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */
187         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x    187         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */
188         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x    188         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20-0x27 */
189         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x    189         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, /* 0x28-0x2f */
190         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x    190         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30-0x37 */
191         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x    191         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, /* 0x38-0x3f */
192         0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x    192         0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x40-0x47 */
193         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x    193         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x48-0x4f */
194         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x    194         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x50-0x57 */
195         0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x    195         0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, /* 0x58-0x5f */
196         0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x    196         0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
197         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x    197         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
198         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x    198         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
199         0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x    199         0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, /* 0x78-0x7f */
200                                                   200 
201         0x87, 0x81, 0x82, 0x83, 0x84, 0x85, 0x    201         0x87, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x80-0x87 */
202         0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x    202         0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x84, 0x86, /* 0x88-0x8f */
203         0x82, 0x91, 0x91, 0x93, 0x94, 0x95, 0x    203         0x82, 0x91, 0x91, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x90-0x97 */
204         0x69, 0x94, 0x81, 0x9b, 0x9c, 0x9b, 0x    204         0x69, 0x94, 0x81, 0x9b, 0x9c, 0x9b, 0x9f, 0x9f, /* 0x98-0x9f */
205         0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa4, 0x    205         0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa4, 0xa7, 0xa7, /* 0xa0-0xa7 */
206         0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0x    206         0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */
207         0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xa0, 0x    207         0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xa0, 0x83, 0x85, /* 0xb0-0xb7 */
208         0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0x    208         0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0xb8-0xbf */
209         0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0x    209         0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc6, /* 0xc0-0xc7 */
210         0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0x    210         0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */
211         0xd0, 0xd1, 0x88, 0x89, 0x8a, 0x00, 0x    211         0xd0, 0xd1, 0x88, 0x89, 0x8a, 0x00, 0xa1, 0x8c, /* 0xd0-0xd7 */
212         0x8b, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x    212         0x8b, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xec, 0xdf, /* 0xd8-0xdf */
213         0xa2, 0xe1, 0x93, 0x95, 0xe4, 0xe4, 0x    213         0xa2, 0xe1, 0x93, 0x95, 0xe4, 0xe4, 0xe6, 0x00, /* 0xe0-0xe7 */
214         0xe8, 0xa3, 0x96, 0x97, 0xec, 0xed, 0x    214         0xe8, 0xa3, 0x96, 0x97, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */
215         0xf0, 0xf1, 0x00, 0xf3, 0xf4, 0xf5, 0x    215         0xf0, 0xf1, 0x00, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */
216         0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x    216         0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */
217 };                                                217 };
218                                                   218 
219 static const unsigned char charset2upper[256]     219 static const unsigned char charset2upper[256] = {
220         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x    220         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */
221         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x    221         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */
222         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x    222         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */
223         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x    223         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */
224         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x    224         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20-0x27 */
225         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x    225         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, /* 0x28-0x2f */
226         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x    226         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30-0x37 */
227         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x    227         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, /* 0x38-0x3f */
228         0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x    228         0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x40-0x47 */
229         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x    229         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, /* 0x48-0x4f */
230         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x    230         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x50-0x57 */
231         0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x    231         0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, /* 0x58-0x5f */
232         0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x    232         0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x60-0x67 */
233         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x    233         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, /* 0x68-0x6f */
234         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x    234         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x70-0x77 */
235         0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x    235         0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, /* 0x78-0x7f */
236                                                   236 
237         0x80, 0x9a, 0x90, 0xb6, 0x8e, 0xb7, 0x    237         0x80, 0x9a, 0x90, 0xb6, 0x8e, 0xb7, 0x8f, 0x80, /* 0x80-0x87 */
238         0xd2, 0xd3, 0xd4, 0xd8, 0xd7, 0x49, 0x    238         0xd2, 0xd3, 0xd4, 0xd8, 0xd7, 0x49, 0x8e, 0x8f, /* 0x88-0x8f */
239         0x90, 0x92, 0x92, 0xe2, 0x99, 0xe3, 0x    239         0x90, 0x92, 0x92, 0xe2, 0x99, 0xe3, 0xea, 0xeb, /* 0x90-0x97 */
240         0x98, 0x99, 0x9a, 0x9d, 0x9c, 0x9d, 0x    240         0x98, 0x99, 0x9a, 0x9d, 0x9c, 0x9d, 0x9e, 0x9e, /* 0x98-0x9f */
241         0xb5, 0xd6, 0xe0, 0xe9, 0xa5, 0xa5, 0x    241         0xb5, 0xd6, 0xe0, 0xe9, 0xa5, 0xa5, 0xa6, 0xa6, /* 0xa0-0xa7 */
242         0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0x    242         0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */
243         0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0x    243         0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
244         0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0x    244         0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0xb8-0xbf */
245         0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0x    245         0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc7, 0xc7, /* 0xc0-0xc7 */
246         0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0x    246         0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */
247         0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0x00, 0x    247         0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0x00, 0xd6, 0xd7, /* 0xd0-0xd7 */
248         0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x    248         0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xd8-0xdf */
249         0xe0, 0xe1, 0xe2, 0xe3, 0xe5, 0xe5, 0x    249         0xe0, 0xe1, 0xe2, 0xe3, 0xe5, 0xe5, 0x00, 0x00, /* 0xe0-0xe7 */
250         0xe8, 0xe9, 0xea, 0xeb, 0xde, 0x00, 0x    250         0xe8, 0xe9, 0xea, 0xeb, 0xde, 0x00, 0xee, 0xef, /* 0xe8-0xef */
251         0xf0, 0xf1, 0x00, 0xf3, 0xf4, 0xf5, 0x    251         0xf0, 0xf1, 0x00, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */
252         0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x    252         0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */
253 };                                                253 };
254                                                   254 
255 static int uni2char(wchar_t uni, unsigned char    255 static int uni2char(wchar_t uni, unsigned char *out, int boundlen)
256 {                                                 256 {
257         const unsigned char *uni2charset;         257         const unsigned char *uni2charset;
258         unsigned char cl = uni & 0x00ff;          258         unsigned char cl = uni & 0x00ff;
259         unsigned char ch = (uni & 0xff00) >> 8    259         unsigned char ch = (uni & 0xff00) >> 8;
260                                                   260 
261         if (boundlen <= 0)                        261         if (boundlen <= 0)
262                 return -ENAMETOOLONG;             262                 return -ENAMETOOLONG;
263                                                   263 
264         uni2charset = page_uni2charset[ch];       264         uni2charset = page_uni2charset[ch];
265         if (uni2charset && uni2charset[cl])       265         if (uni2charset && uni2charset[cl])
266                 out[0] = uni2charset[cl];         266                 out[0] = uni2charset[cl];
267         else                                      267         else
268                 return -EINVAL;                   268                 return -EINVAL;
269         return 1;                                 269         return 1;
270 }                                                 270 }
271                                                   271 
272 static int char2uni(const unsigned char *rawst    272 static int char2uni(const unsigned char *rawstring, int boundlen, wchar_t *uni)
273 {                                                 273 {
274         *uni = charset2uni[*rawstring];           274         *uni = charset2uni[*rawstring];
275         if (*uni == 0x0000)                       275         if (*uni == 0x0000)
276                 return -EINVAL;                   276                 return -EINVAL;
277         return 1;                                 277         return 1;
278 }                                                 278 }
279                                                   279 
280 static struct nls_table table = {                 280 static struct nls_table table = {
281         .charset        = "cp857",                281         .charset        = "cp857",
282         .uni2char       = uni2char,               282         .uni2char       = uni2char,
283         .char2uni       = char2uni,               283         .char2uni       = char2uni,
284         .charset2lower  = charset2lower,          284         .charset2lower  = charset2lower,
285         .charset2upper  = charset2upper,          285         .charset2upper  = charset2upper,
286 };                                                286 };
287                                                   287 
288 static int __init init_nls_cp857(void)            288 static int __init init_nls_cp857(void)
289 {                                                 289 {
290         return register_nls(&table);              290         return register_nls(&table);
291 }                                                 291 }
292                                                   292 
293 static void __exit exit_nls_cp857(void)           293 static void __exit exit_nls_cp857(void)
294 {                                                 294 {
295         unregister_nls(&table);                   295         unregister_nls(&table);
296 }                                                 296 }
297                                                   297 
298 module_init(init_nls_cp857)                       298 module_init(init_nls_cp857)
299 module_exit(exit_nls_cp857)                       299 module_exit(exit_nls_cp857)
300                                                   300 
301 MODULE_DESCRIPTION("NLS Codepage 857 (Turkish) << 
302 MODULE_LICENSE("Dual BSD/GPL");                   301 MODULE_LICENSE("Dual BSD/GPL");
303                                                   302 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php