2 * COPYRIGHT: See COPYRIGHT.TXT
3 * PROJECT: Ext2 File System Driver for WinNT/2K/XP
5 * PROGRAMMER: Matt Wu <mattwu@163.com>
6 * HOMEPAGE: http://www.ext2fsd.com
10 /* INCLUDES *****************************************************************/
14 /* GOBALS** ****************************************************************/
16 extern struct nls_table
*tables
;
17 extern spinlock_t nls_lock
;
19 /* DECLARES ****************************************************************/
21 #define FULL_CODEPAGES_SUPPORT
23 #ifdef FULL_CODEPAGES_SUPPORT
25 DECLARE_INIT(init_nls_ascii
);
26 DECLARE_EXIT(exit_nls_ascii
);
27 DECLARE_INIT(init_nls_cp1250
);
28 DECLARE_EXIT(exit_nls_cp1250
);
29 DECLARE_INIT(init_nls_cp1251
);
30 DECLARE_EXIT(exit_nls_cp1251
);
31 DECLARE_INIT(init_nls_cp1255
);
32 DECLARE_EXIT(exit_nls_cp1255
);
33 DECLARE_INIT(init_nls_cp437
);
34 DECLARE_EXIT(exit_nls_cp437
);
35 DECLARE_INIT(init_nls_cp737
);
36 DECLARE_EXIT(exit_nls_cp737
);
37 DECLARE_INIT(init_nls_cp775
);
38 DECLARE_EXIT(exit_nls_cp775
);
39 DECLARE_INIT(init_nls_cp850
);
40 DECLARE_EXIT(exit_nls_cp850
);
41 DECLARE_INIT(init_nls_cp852
);
42 DECLARE_EXIT(exit_nls_cp852
);
43 DECLARE_INIT(init_nls_cp855
);
44 DECLARE_EXIT(exit_nls_cp855
);
45 DECLARE_INIT(init_nls_cp857
);
46 DECLARE_EXIT(exit_nls_cp857
);
47 DECLARE_INIT(init_nls_cp860
);
48 DECLARE_EXIT(exit_nls_cp860
);
49 DECLARE_INIT(init_nls_cp861
);
50 DECLARE_EXIT(exit_nls_cp861
);
51 DECLARE_INIT(init_nls_cp862
);
52 DECLARE_EXIT(exit_nls_cp862
);
53 DECLARE_INIT(init_nls_cp863
);
54 DECLARE_EXIT(exit_nls_cp863
);
55 DECLARE_INIT(init_nls_cp864
);
56 DECLARE_EXIT(exit_nls_cp864
);
57 DECLARE_INIT(init_nls_cp865
);
58 DECLARE_EXIT(exit_nls_cp865
);
59 DECLARE_INIT(init_nls_cp866
);
60 DECLARE_EXIT(exit_nls_cp866
);
61 DECLARE_INIT(init_nls_cp869
);
62 DECLARE_EXIT(exit_nls_cp869
);
63 DECLARE_INIT(init_nls_cp874
);
64 DECLARE_EXIT(exit_nls_cp874
);
65 DECLARE_INIT(init_nls_cp932
);
66 DECLARE_EXIT(exit_nls_cp932
);
67 DECLARE_INIT(init_nls_cp949
);
68 DECLARE_EXIT(exit_nls_cp949
);
69 DECLARE_INIT(init_nls_euc_jp
);
70 DECLARE_EXIT(exit_nls_euc_jp
);
71 DECLARE_INIT(init_nls_iso8859_1
);
72 DECLARE_EXIT(exit_nls_iso8859_1
);
73 DECLARE_INIT(init_nls_iso8859_13
);
74 DECLARE_EXIT(exit_nls_iso8859_13
);
75 DECLARE_INIT(init_nls_iso8859_14
);
76 DECLARE_EXIT(exit_nls_iso8859_14
);
77 DECLARE_INIT(init_nls_iso8859_15
);
78 DECLARE_EXIT(exit_nls_iso8859_15
);
79 DECLARE_INIT(init_nls_iso8859_2
);
80 DECLARE_EXIT(exit_nls_iso8859_2
);
81 DECLARE_INIT(init_nls_iso8859_3
);
82 DECLARE_EXIT(exit_nls_iso8859_3
);
83 DECLARE_INIT(init_nls_iso8859_4
);
84 DECLARE_EXIT(exit_nls_iso8859_4
);
85 DECLARE_INIT(init_nls_iso8859_5
);
86 DECLARE_EXIT(exit_nls_iso8859_5
);
87 DECLARE_INIT(init_nls_iso8859_6
);
88 DECLARE_EXIT(exit_nls_iso8859_6
);
89 DECLARE_INIT(init_nls_iso8859_7
);
90 DECLARE_EXIT(exit_nls_iso8859_7
);
91 DECLARE_INIT(init_nls_iso8859_9
);
92 DECLARE_EXIT(exit_nls_iso8859_9
);
93 DECLARE_INIT(init_nls_koi8_r
);
94 DECLARE_EXIT(exit_nls_koi8_r
);
95 DECLARE_INIT(init_nls_koi8_ru
);
96 DECLARE_EXIT(exit_nls_koi8_ru
);
97 DECLARE_INIT(init_nls_koi8_u
);
98 DECLARE_EXIT(exit_nls_koi8_u
);
99 #endif //FULL_CODEPAGES_SUPPORT
102 DECLARE_INIT(init_nls_cp936
);
103 DECLARE_EXIT(exit_nls_cp936
);
106 DECLARE_INIT(init_nls_cp950
);
107 DECLARE_EXIT(exit_nls_cp950
);
110 DECLARE_INIT(init_nls_utf8
);
111 DECLARE_EXIT(exit_nls_utf8
);
114 /* FUNCTIONS ****************************************************************/
123 spin_lock_init(&nls_lock
);
125 /* loading utf8 ... */
126 LOAD_NLS(init_nls_utf8
);
128 #ifdef FULL_CODEPAGES_SUPPORT
130 /* loading chinese gb2312 and big5... */
131 LOAD_NLS(init_nls_cp936
);
132 LOAD_NLS(init_nls_cp950
);
134 /* loading all others */
136 LOAD_NLS(init_nls_ascii
);
137 LOAD_NLS(init_nls_cp1250
);
138 LOAD_NLS(init_nls_cp1251
);
139 LOAD_NLS(init_nls_cp1255
);
140 LOAD_NLS(init_nls_cp437
);
141 LOAD_NLS(init_nls_cp737
);
142 LOAD_NLS(init_nls_cp775
);
143 LOAD_NLS(init_nls_cp850
);
144 LOAD_NLS(init_nls_cp852
);
145 LOAD_NLS(init_nls_cp855
);
146 LOAD_NLS(init_nls_cp857
);
147 LOAD_NLS(init_nls_cp860
);
148 LOAD_NLS(init_nls_cp861
);
149 LOAD_NLS(init_nls_cp862
);
150 LOAD_NLS(init_nls_cp863
);
151 LOAD_NLS(init_nls_cp864
);
152 LOAD_NLS(init_nls_cp865
);
153 LOAD_NLS(init_nls_cp866
);
154 LOAD_NLS(init_nls_cp869
);
155 LOAD_NLS(init_nls_cp874
);
156 LOAD_NLS(init_nls_cp932
);
157 LOAD_NLS(init_nls_euc_jp
);
158 LOAD_NLS(init_nls_cp949
);
159 LOAD_NLS(init_nls_iso8859_1
);
160 LOAD_NLS(init_nls_iso8859_13
);
161 LOAD_NLS(init_nls_iso8859_14
);
162 LOAD_NLS(init_nls_iso8859_15
);
163 LOAD_NLS(init_nls_iso8859_2
);
164 LOAD_NLS(init_nls_iso8859_3
);
165 LOAD_NLS(init_nls_iso8859_4
);
166 LOAD_NLS(init_nls_iso8859_5
);
167 LOAD_NLS(init_nls_iso8859_6
);
168 LOAD_NLS(init_nls_iso8859_7
);
169 LOAD_NLS(init_nls_iso8859_9
);
170 LOAD_NLS(init_nls_koi8_r
);
171 LOAD_NLS(init_nls_koi8_u
);
172 LOAD_NLS(init_nls_koi8_ru
);
174 #endif //FULL_CODEPAGES_SUPPORT
184 #ifdef FULL_CODEPAGES_SUPPORT
186 UNLOAD_NLS(init_nls_ascii
);
187 UNLOAD_NLS(init_nls_cp1250
);
188 UNLOAD_NLS(exit_nls_cp1251
);
189 UNLOAD_NLS(exit_nls_cp1255
);
190 UNLOAD_NLS(exit_nls_cp437
);
191 UNLOAD_NLS(exit_nls_cp737
);
192 UNLOAD_NLS(exit_nls_cp775
);
193 UNLOAD_NLS(exit_nls_cp850
);
194 UNLOAD_NLS(exit_nls_cp852
);
195 UNLOAD_NLS(exit_nls_cp855
);
196 UNLOAD_NLS(exit_nls_cp857
);
197 UNLOAD_NLS(exit_nls_cp860
);
198 UNLOAD_NLS(exit_nls_cp861
);
199 UNLOAD_NLS(exit_nls_cp862
);
200 UNLOAD_NLS(exit_nls_cp863
);
201 UNLOAD_NLS(exit_nls_cp864
);
202 UNLOAD_NLS(exit_nls_cp865
);
203 UNLOAD_NLS(exit_nls_cp866
);
204 UNLOAD_NLS(exit_nls_cp869
);
205 UNLOAD_NLS(exit_nls_cp874
);
206 UNLOAD_NLS(exit_nls_euc_jp
);
207 UNLOAD_NLS(exit_nls_cp932
);
208 UNLOAD_NLS(exit_nls_cp949
);
209 UNLOAD_NLS(exit_nls_iso8859_1
);
210 UNLOAD_NLS(exit_nls_iso8859_13
);
211 UNLOAD_NLS(exit_nls_iso8859_14
);
212 UNLOAD_NLS(exit_nls_iso8859_15
);
213 UNLOAD_NLS(exit_nls_iso8859_2
);
214 UNLOAD_NLS(exit_nls_iso8859_3
);
215 UNLOAD_NLS(exit_nls_iso8859_4
);
216 UNLOAD_NLS(exit_nls_iso8859_5
);
217 UNLOAD_NLS(exit_nls_iso8859_6
);
218 UNLOAD_NLS(exit_nls_iso8859_7
);
219 UNLOAD_NLS(exit_nls_iso8859_9
);
220 UNLOAD_NLS(exit_nls_koi8_ru
);
221 UNLOAD_NLS(exit_nls_koi8_r
);
222 UNLOAD_NLS(exit_nls_koi8_u
);
224 /* unloading chinese codepages */
225 UNLOAD_NLS(exit_nls_cp950
);
226 UNLOAD_NLS(exit_nls_cp936
);
228 #endif //FULL_CODEPAGES_SUPPORT
230 /* unloading nls of utf8 */
231 UNLOAD_NLS(exit_nls_utf8
);