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

TOMOYO Linux Cross Reference
Linux/fs/nls/nls_iso8859-5.c

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ 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.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /fs/nls/nls_iso8859-5.c (Version linux-6.12-rc7) and /fs/nls/nls_iso8859-5.c (Version linux-5.1.21)


  1 /*                                                  1 /*
  2  * linux/fs/nls/nls_iso8859-5.c                     2  * linux/fs/nls/nls_iso8859-5.c
  3  *                                                  3  *
  4  * Charset iso8859-5 translation tables.            4  * Charset iso8859-5 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         0x0080, 0x0081, 0x0082, 0x0083,            58         0x0080, 0x0081, 0x0082, 0x0083,
 59         0x0084, 0x0085, 0x0086, 0x0087,            59         0x0084, 0x0085, 0x0086, 0x0087,
 60         0x0088, 0x0089, 0x008a, 0x008b,            60         0x0088, 0x0089, 0x008a, 0x008b,
 61         0x008c, 0x008d, 0x008e, 0x008f,            61         0x008c, 0x008d, 0x008e, 0x008f,
 62         /* 0x90*/                                  62         /* 0x90*/
 63         0x0090, 0x0091, 0x0092, 0x0093,            63         0x0090, 0x0091, 0x0092, 0x0093,
 64         0x0094, 0x0095, 0x0096, 0x0097,            64         0x0094, 0x0095, 0x0096, 0x0097,
 65         0x0098, 0x0099, 0x009a, 0x009b,            65         0x0098, 0x0099, 0x009a, 0x009b,
 66         0x009c, 0x009d, 0x009e, 0x009f,            66         0x009c, 0x009d, 0x009e, 0x009f,
 67         /* 0xa0*/                                  67         /* 0xa0*/
 68         0x00a0, 0x0401, 0x0402, 0x0403,            68         0x00a0, 0x0401, 0x0402, 0x0403,
 69         0x0404, 0x0405, 0x0406, 0x0407,            69         0x0404, 0x0405, 0x0406, 0x0407,
 70         0x0408, 0x0409, 0x040a, 0x040b,            70         0x0408, 0x0409, 0x040a, 0x040b,
 71         0x040c, 0x00ad, 0x040e, 0x040f,            71         0x040c, 0x00ad, 0x040e, 0x040f,
 72         /* 0xb0*/                                  72         /* 0xb0*/
 73         0x0410, 0x0411, 0x0412, 0x0413,            73         0x0410, 0x0411, 0x0412, 0x0413,
 74         0x0414, 0x0415, 0x0416, 0x0417,            74         0x0414, 0x0415, 0x0416, 0x0417,
 75         0x0418, 0x0419, 0x041a, 0x041b,            75         0x0418, 0x0419, 0x041a, 0x041b,
 76         0x041c, 0x041d, 0x041e, 0x041f,            76         0x041c, 0x041d, 0x041e, 0x041f,
 77         /* 0xc0*/                                  77         /* 0xc0*/
 78         0x0420, 0x0421, 0x0422, 0x0423,            78         0x0420, 0x0421, 0x0422, 0x0423,
 79         0x0424, 0x0425, 0x0426, 0x0427,            79         0x0424, 0x0425, 0x0426, 0x0427,
 80         0x0428, 0x0429, 0x042a, 0x042b,            80         0x0428, 0x0429, 0x042a, 0x042b,
 81         0x042c, 0x042d, 0x042e, 0x042f,            81         0x042c, 0x042d, 0x042e, 0x042f,
 82         /* 0xd0*/                                  82         /* 0xd0*/
 83         0x0430, 0x0431, 0x0432, 0x0433,            83         0x0430, 0x0431, 0x0432, 0x0433,
 84         0x0434, 0x0435, 0x0436, 0x0437,            84         0x0434, 0x0435, 0x0436, 0x0437,
 85         0x0438, 0x0439, 0x043a, 0x043b,            85         0x0438, 0x0439, 0x043a, 0x043b,
 86         0x043c, 0x043d, 0x043e, 0x043f,            86         0x043c, 0x043d, 0x043e, 0x043f,
 87         /* 0xe0*/                                  87         /* 0xe0*/
 88         0x0440, 0x0441, 0x0442, 0x0443,            88         0x0440, 0x0441, 0x0442, 0x0443,
 89         0x0444, 0x0445, 0x0446, 0x0447,            89         0x0444, 0x0445, 0x0446, 0x0447,
 90         0x0448, 0x0449, 0x044a, 0x044b,            90         0x0448, 0x0449, 0x044a, 0x044b,
 91         0x044c, 0x044d, 0x044e, 0x044f,            91         0x044c, 0x044d, 0x044e, 0x044f,
 92         /* 0xf0*/                                  92         /* 0xf0*/
 93         0x2116, 0x0451, 0x0452, 0x0453,            93         0x2116, 0x0451, 0x0452, 0x0453,
 94         0x0454, 0x0455, 0x0456, 0x0457,            94         0x0454, 0x0455, 0x0456, 0x0457,
 95         0x0458, 0x0459, 0x045a, 0x045b,            95         0x0458, 0x0459, 0x045a, 0x045b,
 96         0x045c, 0x00a7, 0x045e, 0x045f,            96         0x045c, 0x00a7, 0x045e, 0x045f,
 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         0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x    117         0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x80-0x87 */
118         0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x    118         0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */
119         0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x    119         0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x90-0x97 */
120         0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x    120         0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x98-0x9f */
121         0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    121         0xa0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, /* 0xa0-0xa7 */
122         0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x    122         0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x00, 0x00, /* 0xa8-0xaf */
123 };                                                123 };
124                                                   124 
125 static const unsigned char page04[256] = {        125 static const unsigned char page04[256] = {
126         0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x    126         0x00, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0x00-0x07 */
127         0xa8, 0xa9, 0xaa, 0xab, 0xac, 0x00, 0x    127         0xa8, 0xa9, 0xaa, 0xab, 0xac, 0x00, 0xae, 0xaf, /* 0x08-0x0f */
128         0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0x    128         0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0x10-0x17 */
129         0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0x    129         0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0x18-0x1f */
130         0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0x    130         0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0x20-0x27 */
131         0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0x    131         0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0x28-0x2f */
132         0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0x    132         0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0x30-0x37 */
133         0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x    133         0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0x38-0x3f */
134         0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0x    134         0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0x40-0x47 */
135         0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0x    135         0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0x48-0x4f */
136         0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0x    136         0x00, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0x50-0x57 */
137         0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0x    137         0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0x00, 0xfe, 0xff, /* 0x58-0x5f */
138 };                                                138 };
139                                                   139 
140 static const unsigned char page21[256] = {        140 static const unsigned char page21[256] = {
141         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    141         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x00-0x07 */
142         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    142         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x08-0x0f */
143         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x    143         0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x00, /* 0x10-0x17 */
144 };                                                144 };
145                                                   145 
146 static const unsigned char *const page_uni2cha    146 static const unsigned char *const page_uni2charset[256] = {
147         page00, NULL,   NULL,   NULL,   page04    147         page00, NULL,   NULL,   NULL,   page04, NULL,   NULL,   NULL,   
148         NULL,   NULL,   NULL,   NULL,   NULL,     148         NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
149         NULL,   NULL,   NULL,   NULL,   NULL,     149         NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
150         NULL,   NULL,   NULL,   NULL,   NULL,     150         NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
151         NULL,   page21, NULL,   NULL,   NULL,     151         NULL,   page21, NULL,   NULL,   NULL,   NULL,   NULL,   NULL,   
152 };                                                152 };
153                                                   153 
154 static const unsigned char charset2lower[256]     154 static const unsigned char charset2lower[256] = {
155         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x    155         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */
156         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x    156         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */
157         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x    157         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */
158         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x    158         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */
159         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x    159         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20-0x27 */
160         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x    160         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, /* 0x28-0x2f */
161         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x    161         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30-0x37 */
162         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x    162         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, /* 0x38-0x3f */
163         0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x    163         0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x40-0x47 */
164         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x    164         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x48-0x4f */
165         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x    165         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x50-0x57 */
166         0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x    166         0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, /* 0x58-0x5f */
167         0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x    167         0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
168         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x    168         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, /* 0x68-0x6f */
169         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x    169         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, /* 0x70-0x77 */
170         0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x    170         0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, /* 0x78-0x7f */
171                                                   171 
172         0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x    172         0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x80-0x87 */
173         0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x    173         0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */
174         0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x    174         0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x90-0x97 */
175         0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x    175         0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x98-0x9f */
176         0xa0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0x    176         0xa0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xa0-0xa7 */
177         0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xad, 0x    177         0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xad, 0xfe, 0xff, /* 0xa8-0xaf */
178         0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0x    178         0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xb0-0xb7 */
179         0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x    179         0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xb8-0xbf */
180         0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0x    180         0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xc0-0xc7 */
181         0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0x    181         0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xc8-0xcf */
182         0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0x    182         0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0xd7, /* 0xd0-0xd7 */
183         0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0x    183         0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf, /* 0xd8-0xdf */
184         0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0x    184         0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7, /* 0xe0-0xe7 */
185         0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0x    185         0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef, /* 0xe8-0xef */
186         0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0x    186         0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7, /* 0xf0-0xf7 */
187         0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0x    187         0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff, /* 0xf8-0xff */
188 };                                                188 };
189                                                   189 
190 static const unsigned char charset2upper[256]     190 static const unsigned char charset2upper[256] = {
191         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x    191         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */
192         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x    192         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */
193         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x    193         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */
194         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x    194         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */
195         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x    195         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20-0x27 */
196         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x    196         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, /* 0x28-0x2f */
197         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x    197         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30-0x37 */
198         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x    198         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, /* 0x38-0x3f */
199         0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x    199         0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x40-0x47 */
200         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x    200         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, /* 0x48-0x4f */
201         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x    201         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x50-0x57 */
202         0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x    202         0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, /* 0x58-0x5f */
203         0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x    203         0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x60-0x67 */
204         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x    204         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, /* 0x68-0x6f */
205         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x    205         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x70-0x77 */
206         0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x    206         0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, /* 0x78-0x7f */
207                                                   207 
208         0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x    208         0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, /* 0x80-0x87 */
209         0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x    209         0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, /* 0x88-0x8f */
210         0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x    210         0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, /* 0x90-0x97 */
211         0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x    211         0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, /* 0x98-0x9f */
212         0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x    212         0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xa0-0xa7 */
213         0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0x    213         0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, /* 0xa8-0xaf */
214         0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0x    214         0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xb0-0xb7 */
215         0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0x    215         0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0xb8-0xbf */
216         0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0x    216         0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xc0-0xc7 */
217         0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0x    217         0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xc8-0xcf */
218         0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0x    218         0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, /* 0xd0-0xd7 */
219         0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0x    219         0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, /* 0xd8-0xdf */
220         0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0x    220         0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7, /* 0xe0-0xe7 */
221         0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0x    221         0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, /* 0xe8-0xef */
222         0xf0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0x    222         0xf0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, /* 0xf0-0xf7 */
223         0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xfd, 0x    223         0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xfd, 0xae, 0xaf, /* 0xf8-0xff */
224 };                                                224 };
225                                                   225 
226 static int uni2char(wchar_t uni, unsigned char    226 static int uni2char(wchar_t uni, unsigned char *out, int boundlen)
227 {                                                 227 {
228         const unsigned char *uni2charset;         228         const unsigned char *uni2charset;
229         unsigned char cl = uni & 0x00ff;          229         unsigned char cl = uni & 0x00ff;
230         unsigned char ch = (uni & 0xff00) >> 8    230         unsigned char ch = (uni & 0xff00) >> 8;
231                                                   231 
232         if (boundlen <= 0)                        232         if (boundlen <= 0)
233                 return -ENAMETOOLONG;             233                 return -ENAMETOOLONG;
234                                                   234 
235         uni2charset = page_uni2charset[ch];       235         uni2charset = page_uni2charset[ch];
236         if (uni2charset && uni2charset[cl])       236         if (uni2charset && uni2charset[cl])
237                 out[0] = uni2charset[cl];         237                 out[0] = uni2charset[cl];
238         else                                      238         else
239                 return -EINVAL;                   239                 return -EINVAL;
240         return 1;                                 240         return 1;
241 }                                                 241 }
242                                                   242 
243 static int char2uni(const unsigned char *rawst    243 static int char2uni(const unsigned char *rawstring, int boundlen, wchar_t *uni)
244 {                                                 244 {
245         *uni = charset2uni[*rawstring];           245         *uni = charset2uni[*rawstring];
246         if (*uni == 0x0000)                       246         if (*uni == 0x0000)
247                 return -EINVAL;                   247                 return -EINVAL;
248         return 1;                                 248         return 1;
249 }                                                 249 }
250                                                   250 
251 static struct nls_table table = {                 251 static struct nls_table table = {
252         .charset        = "iso8859-5",            252         .charset        = "iso8859-5",
253         .uni2char       = uni2char,               253         .uni2char       = uni2char,
254         .char2uni       = char2uni,               254         .char2uni       = char2uni,
255         .charset2lower  = charset2lower,          255         .charset2lower  = charset2lower,
256         .charset2upper  = charset2upper,          256         .charset2upper  = charset2upper,
257 };                                                257 };
258                                                   258 
259 static int __init init_nls_iso8859_5(void)        259 static int __init init_nls_iso8859_5(void)
260 {                                                 260 {
261         return register_nls(&table);              261         return register_nls(&table);
262 }                                                 262 }
263                                                   263 
264 static void __exit exit_nls_iso8859_5(void)       264 static void __exit exit_nls_iso8859_5(void)
265 {                                                 265 {
266         unregister_nls(&table);                   266         unregister_nls(&table);
267 }                                                 267 }
268                                                   268 
269 module_init(init_nls_iso8859_5)                   269 module_init(init_nls_iso8859_5)
270 module_exit(exit_nls_iso8859_5)                   270 module_exit(exit_nls_iso8859_5)
271                                                   271 
272 MODULE_DESCRIPTION("NLS ISO 8859-5 (Cyrillic)" << 
273 MODULE_LICENSE("Dual BSD/GPL");                   272 MODULE_LICENSE("Dual BSD/GPL");
274                                                   273 

~ [ 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