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

TOMOYO Linux Cross Reference
Linux/fs/nls/nls_ascii.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_ascii.c (Version linux-6.12-rc7) and /fs/nls/nls_ascii.c (Version linux-2.6.0)


  1 /*                                                  1 
  2  * linux/fs/nls/nls_ascii.c                       
  3  *                                                
  4  * Charset ascii translation tables.              
  5  * Generated automatically from the Unicode an    
  6  * tables from the Unicode Organization (www.u    
  7  * The Unicode to charset table has only exact    
  8  */                                               
  9                                                   
 10 #include <linux/module.h>                         
 11 #include <linux/kernel.h>                         
 12 #include <linux/string.h>                         
 13 #include <linux/nls.h>                            
 14 #include <linux/errno.h>                          
 15                                                   
 16 static const wchar_t charset2uni[256] = {         
 17         /* 0x00*/                                 
 18         0x0000, 0x0001, 0x0002, 0x0003,           
 19         0x0004, 0x0005, 0x0006, 0x0007,           
 20         0x0008, 0x0009, 0x000a, 0x000b,           
 21         0x000c, 0x000d, 0x000e, 0x000f,           
 22         /* 0x10*/                                 
 23         0x0010, 0x0011, 0x0012, 0x0013,           
 24         0x0014, 0x0015, 0x0016, 0x0017,           
 25         0x0018, 0x0019, 0x001a, 0x001b,           
 26         0x001c, 0x001d, 0x001e, 0x001f,           
 27         /* 0x20*/                                 
 28         0x0020, 0x0021, 0x0022, 0x0023,           
 29         0x0024, 0x0025, 0x0026, 0x0027,           
 30         0x0028, 0x0029, 0x002a, 0x002b,           
 31         0x002c, 0x002d, 0x002e, 0x002f,           
 32         /* 0x30*/                                 
 33         0x0030, 0x0031, 0x0032, 0x0033,           
 34         0x0034, 0x0035, 0x0036, 0x0037,           
 35         0x0038, 0x0039, 0x003a, 0x003b,           
 36         0x003c, 0x003d, 0x003e, 0x003f,           
 37         /* 0x40*/                                 
 38         0x0040, 0x0041, 0x0042, 0x0043,           
 39         0x0044, 0x0045, 0x0046, 0x0047,           
 40         0x0048, 0x0049, 0x004a, 0x004b,           
 41         0x004c, 0x004d, 0x004e, 0x004f,           
 42         /* 0x50*/                                 
 43         0x0050, 0x0051, 0x0052, 0x0053,           
 44         0x0054, 0x0055, 0x0056, 0x0057,           
 45         0x0058, 0x0059, 0x005a, 0x005b,           
 46         0x005c, 0x005d, 0x005e, 0x005f,           
 47         /* 0x60*/                                 
 48         0x0060, 0x0061, 0x0062, 0x0063,           
 49         0x0064, 0x0065, 0x0066, 0x0067,           
 50         0x0068, 0x0069, 0x006a, 0x006b,           
 51         0x006c, 0x006d, 0x006e, 0x006f,           
 52         /* 0x70*/                                 
 53         0x0070, 0x0071, 0x0072, 0x0073,           
 54         0x0074, 0x0075, 0x0076, 0x0077,           
 55         0x0078, 0x0079, 0x007a, 0x007b,           
 56         0x007c, 0x007d, 0x007e, 0x007f,           
 57 };                                                
 58                                                   
 59 static const unsigned char page00[256] = {        
 60         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x    
 61         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x    
 62         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x    
 63         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x    
 64         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x    
 65         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x    
 66         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x    
 67         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x    
 68         0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x    
 69         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x    
 70         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x    
 71         0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x    
 72         0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x    
 73         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x    
 74         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x    
 75         0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x    
 76 };                                                
 77                                                   
 78 static const unsigned char *const page_uni2cha    
 79         page00,                                   
 80 };                                                
 81                                                   
 82 static const unsigned char charset2lower[256]     
 83         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x    
 84         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x    
 85         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x    
 86         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x    
 87         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x    
 88         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x    
 89         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x    
 90         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x    
 91         0x40, 0x61, 0x62, 0x63, 0x64, 0x65, 0x    
 92         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x    
 93         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x    
 94         0x78, 0x79, 0x7a, 0x5b, 0x5c, 0x5d, 0x    
 95         0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x    
 96         0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x    
 97         0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x    
 98         0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x    
 99 };                                                
100                                                   
101 static const unsigned char charset2upper[256]     
102         0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x    
103         0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x    
104         0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x    
105         0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x    
106         0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x    
107         0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x    
108         0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x    
109         0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x    
110         0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x    
111         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x    
112         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x    
113         0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x    
114         0x60, 0x41, 0x42, 0x43, 0x44, 0x45, 0x    
115         0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x    
116         0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x    
117         0x58, 0x59, 0x5a, 0x7b, 0x7c, 0x7d, 0x    
118 };                                                
119                                                   
120 static int uni2char(wchar_t uni, unsigned char    
121 {                                                 
122         const unsigned char *uni2charset;         
123         unsigned char cl = uni & 0x00ff;          
124         unsigned char ch = (uni & 0xff00) >> 8    
125                                                   
126         if (boundlen <= 0)                        
127                 return -ENAMETOOLONG;             
128                                                   
129         uni2charset = page_uni2charset[ch];       
130         if (uni2charset && uni2charset[cl])       
131                 out[0] = uni2charset[cl];         
132         else                                      
133                 return -EINVAL;                   
134         return 1;                                 
135 }                                                 
136                                                   
137 static int char2uni(const unsigned char *rawst    
138 {                                                 
139         *uni = charset2uni[*rawstring];           
140         if (*uni == 0x0000)                       
141                 return -EINVAL;                   
142         return 1;                                 
143 }                                                 
144                                                   
145 static struct nls_table table = {                 
146         .charset        = "ascii",                
147         .uni2char       = uni2char,               
148         .char2uni       = char2uni,               
149         .charset2lower  = charset2lower,          
150         .charset2upper  = charset2upper,          
151 };                                                
152                                                   
153 static int __init init_nls_ascii(void)            
154 {                                                 
155         return register_nls(&table);              
156 }                                                 
157                                                   
158 static void __exit exit_nls_ascii(void)           
159 {                                                 
160         unregister_nls(&table);                   
161 }                                                 
162                                                   
163 module_init(init_nls_ascii)                       
164 module_exit(exit_nls_ascii)                       
165                                                   
166 MODULE_DESCRIPTION("NLS ASCII (United States)"    
167 MODULE_LICENSE("Dual BSD/GPL");                   
168                                                   

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