Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / drivers / filesystems / reiserfs / src / nls.c
1 /*
2 * COPYRIGHT: GNU GENERAL PUBLIC LICENSE VERSION 2
3 * PROJECT: ReiserFs file system driver for Windows NT/2000/XP/Vista.
4 * FILE: nls.c
5 * PURPOSE:
6 * PROGRAMMER: Mark Piper, Matt Wu, Bo Brantén.
7 * HOMEPAGE:
8 * UPDATE HISTORY:
9 */
10
11 /* INCLUDES *****************************************************************/
12
13 #include "rfsd.h"
14
15 /* GOBALS** ****************************************************************/
16
17 extern struct nls_table *tables;
18 extern spinlock_t nls_lock;
19
20 /* DECLARES ****************************************************************/
21
22 #undef FULL_CODEPAGES_SUPPORT
23
24 #ifdef FULL_CODEPAGES_SUPPORT
25
26 DECLARE_INIT(init_nls_cp1251);
27 DECLARE_EXIT(exit_nls_cp1251);
28 DECLARE_INIT(init_nls_cp1255);
29 DECLARE_EXIT(exit_nls_cp1255);
30 DECLARE_INIT(init_nls_cp437);
31 DECLARE_EXIT(exit_nls_cp437);
32 DECLARE_INIT(init_nls_cp737);
33 DECLARE_EXIT(exit_nls_cp737);
34 DECLARE_INIT(init_nls_cp775);
35 DECLARE_EXIT(exit_nls_cp775);
36 DECLARE_INIT(init_nls_cp850);
37 DECLARE_EXIT(exit_nls_cp850);
38 DECLARE_INIT(init_nls_cp852);
39 DECLARE_EXIT(exit_nls_cp852);
40 DECLARE_INIT(init_nls_cp855);
41 DECLARE_EXIT(exit_nls_cp855);
42 DECLARE_INIT(init_nls_cp857);
43 DECLARE_EXIT(exit_nls_cp857);
44 DECLARE_INIT(init_nls_cp860);
45 DECLARE_EXIT(exit_nls_cp860);
46 DECLARE_INIT(init_nls_cp861);
47 DECLARE_EXIT(exit_nls_cp861);
48 DECLARE_INIT(init_nls_cp862);
49 DECLARE_EXIT(exit_nls_cp862);
50 DECLARE_INIT(init_nls_cp863);
51 DECLARE_EXIT(exit_nls_cp863);
52 DECLARE_INIT(init_nls_cp864);
53 DECLARE_EXIT(exit_nls_cp864);
54 DECLARE_INIT(init_nls_cp865);
55 DECLARE_EXIT(exit_nls_cp865);
56 DECLARE_INIT(init_nls_cp866);
57 DECLARE_EXIT(exit_nls_cp866);
58 DECLARE_INIT(init_nls_cp869);
59 DECLARE_EXIT(exit_nls_cp869);
60 DECLARE_INIT(init_nls_cp874);
61 DECLARE_EXIT(exit_nls_cp874);
62 DECLARE_INIT(init_nls_cp932);
63 DECLARE_EXIT(exit_nls_cp932);
64 DECLARE_INIT(init_nls_cp949);
65 DECLARE_EXIT(exit_nls_cp949);
66 DECLARE_INIT(init_nls_cp950);
67 DECLARE_EXIT(exit_nls_cp950);
68 DECLARE_INIT(init_nls_euc_jp);
69 DECLARE_EXIT(exit_nls_euc_jp);
70 DECLARE_INIT(init_nls_euc_kr);
71 DECLARE_EXIT(exit_nls_euc_kr);
72 DECLARE_INIT(init_nls_iso8859_1);
73 DECLARE_EXIT(exit_nls_iso8859_1);
74 DECLARE_INIT(init_nls_iso8859_13);
75 DECLARE_EXIT(exit_nls_iso8859_13);
76 DECLARE_INIT(init_nls_iso8859_14);
77 DECLARE_EXIT(exit_nls_iso8859_14);
78 DECLARE_INIT(init_nls_iso8859_15);
79 DECLARE_EXIT(exit_nls_iso8859_15);
80 DECLARE_INIT(init_nls_iso8859_2);
81 DECLARE_EXIT(exit_nls_iso8859_2);
82 DECLARE_INIT(init_nls_iso8859_3);
83 DECLARE_EXIT(exit_nls_iso8859_3);
84 DECLARE_INIT(init_nls_iso8859_4);
85 DECLARE_EXIT(exit_nls_iso8859_4);
86 DECLARE_INIT(init_nls_iso8859_5);
87 DECLARE_EXIT(exit_nls_iso8859_5);
88 DECLARE_INIT(init_nls_iso8859_6);
89 DECLARE_EXIT(exit_nls_iso8859_6);
90 DECLARE_INIT(init_nls_iso8859_7);
91 DECLARE_EXIT(exit_nls_iso8859_7);
92 DECLARE_INIT(init_nls_iso8859_8);
93 DECLARE_EXIT(exit_nls_iso8859_8);
94 DECLARE_INIT(init_nls_iso8859_9);
95 DECLARE_EXIT(exit_nls_iso8859_9);
96 DECLARE_INIT(init_nls_koi8_r);
97 DECLARE_EXIT(exit_nls_koi8_r);
98 DECLARE_INIT(init_nls_koi8_ru);
99 DECLARE_EXIT(exit_nls_koi8_ru);
100 DECLARE_INIT(init_nls_koi8_u);
101 DECLARE_EXIT(exit_nls_koi8_u);
102 DECLARE_INIT(init_nls_sjis);
103 DECLARE_EXIT(exit_nls_sjis);
104 DECLARE_INIT(init_nls_tis_620);
105 DECLARE_EXIT(exit_nls_tis_620);
106 DECLARE_INIT(init_nls_big5);
107 DECLARE_EXIT(exit_nls_big5);
108 DECLARE_INIT(init_nls_cp936);
109 DECLARE_EXIT(exit_nls_cp936);
110 DECLARE_INIT(init_nls_gb2312);
111 DECLARE_EXIT(exit_nls_gb2312);
112
113 #endif //FULL_CODEPAGES_SUPPORT
114
115 DECLARE_INIT(init_nls_utf8);
116 DECLARE_EXIT(exit_nls_utf8);
117
118
119 /* FUNCTIONS ****************************************************************/
120
121
122 int
123 RfsdLoadAllNls()
124 {
125 int rc;
126
127 tables = NULL;
128 spin_lock_init(&nls_lock);
129
130 //
131 // Loading nls for utf8 ...
132 //
133
134 LOAD_NLS(init_nls_utf8);
135
136 #ifdef FULL_CODEPAGES_SUPPORT
137
138 //
139 // Loading nls for chinese gb2312 ...
140 //
141
142 LOAD_NLS(init_nls_cp936);
143 LOAD_NLS(init_nls_gb2312);
144
145
146 LOAD_NLS(init_nls_cp1251);
147 LOAD_NLS(init_nls_cp1255);
148 LOAD_NLS(init_nls_cp437);
149 LOAD_NLS(init_nls_cp737);
150 LOAD_NLS(init_nls_cp775);
151 LOAD_NLS(init_nls_cp850);
152 LOAD_NLS(init_nls_cp852);
153 LOAD_NLS(init_nls_cp855);
154 LOAD_NLS(init_nls_cp857);
155 LOAD_NLS(init_nls_cp860);
156 LOAD_NLS(init_nls_cp861);
157 LOAD_NLS(init_nls_cp862);
158 LOAD_NLS(init_nls_cp863);
159 LOAD_NLS(init_nls_cp864);
160 LOAD_NLS(init_nls_cp865);
161 LOAD_NLS(init_nls_cp866);
162 LOAD_NLS(init_nls_cp869);
163 LOAD_NLS(init_nls_cp874);
164
165 //
166 // Loading nls for chinese big5
167 //
168
169 LOAD_NLS(init_nls_cp950);
170 LOAD_NLS(init_nls_big5);
171
172 //
173 // Loading jp codepage
174 //
175
176 LOAD_NLS(init_nls_cp932);
177 LOAD_NLS(init_nls_euc_jp);
178 LOAD_NLS(init_nls_sjis);
179
180 //
181 // Loading korean nls codepage
182 //
183
184 LOAD_NLS(init_nls_cp949);
185 LOAD_NLS(init_nls_euc_kr);
186
187 LOAD_NLS(init_nls_iso8859_1);
188 LOAD_NLS(init_nls_iso8859_13);
189 LOAD_NLS(init_nls_iso8859_14);
190 LOAD_NLS(init_nls_iso8859_15);
191 LOAD_NLS(init_nls_iso8859_2);
192 LOAD_NLS(init_nls_iso8859_3);
193 LOAD_NLS(init_nls_iso8859_4);
194 LOAD_NLS(init_nls_iso8859_5);
195 LOAD_NLS(init_nls_iso8859_6);
196 LOAD_NLS(init_nls_iso8859_7);
197 LOAD_NLS(init_nls_iso8859_8);
198 LOAD_NLS(init_nls_iso8859_9);
199 LOAD_NLS(init_nls_koi8_r);
200 LOAD_NLS(init_nls_koi8_u);
201
202 LOAD_NLS(init_nls_koi8_ru);
203 LOAD_NLS(init_nls_tis_620);
204
205 #endif //FULL_CODEPAGES_SUPPORT
206
207
208 KdPrint(("RfsdLoadAllNls: succeed to load all codepages ...\n"));
209
210 errorout:
211
212 return rc;
213 }
214
215
216 VOID
217 RfsdUnloadAllNls()
218 {
219 #ifdef FULL_CODEPAGES_SUPPORT
220
221 UNLOAD_NLS(exit_nls_cp1251);
222 UNLOAD_NLS(exit_nls_cp1255);
223 UNLOAD_NLS(exit_nls_cp437);
224 UNLOAD_NLS(exit_nls_cp737);
225 UNLOAD_NLS(exit_nls_cp775);
226 UNLOAD_NLS(exit_nls_cp850);
227 UNLOAD_NLS(exit_nls_cp852);
228 UNLOAD_NLS(exit_nls_cp855);
229 UNLOAD_NLS(exit_nls_cp857);
230 UNLOAD_NLS(exit_nls_cp860);
231 UNLOAD_NLS(exit_nls_cp861);
232 UNLOAD_NLS(exit_nls_cp862);
233 UNLOAD_NLS(exit_nls_cp863);
234 UNLOAD_NLS(exit_nls_cp864);
235 UNLOAD_NLS(exit_nls_cp865);
236 UNLOAD_NLS(exit_nls_cp866);
237 UNLOAD_NLS(exit_nls_cp869);
238 UNLOAD_NLS(exit_nls_cp874);
239 UNLOAD_NLS(exit_nls_cp949);
240 UNLOAD_NLS(exit_nls_cp950);
241 UNLOAD_NLS(exit_nls_cp932);
242 UNLOAD_NLS(exit_nls_euc_jp);
243 UNLOAD_NLS(exit_nls_big5);
244 UNLOAD_NLS(exit_nls_euc_kr);
245 UNLOAD_NLS(exit_nls_iso8859_1);
246 UNLOAD_NLS(exit_nls_iso8859_13);
247 UNLOAD_NLS(exit_nls_iso8859_14);
248 UNLOAD_NLS(exit_nls_iso8859_15);
249 UNLOAD_NLS(exit_nls_iso8859_2);
250 UNLOAD_NLS(exit_nls_iso8859_3);
251 UNLOAD_NLS(exit_nls_iso8859_4);
252 UNLOAD_NLS(exit_nls_iso8859_5);
253 UNLOAD_NLS(exit_nls_iso8859_6);
254 UNLOAD_NLS(exit_nls_iso8859_7);
255 UNLOAD_NLS(exit_nls_iso8859_8);
256 UNLOAD_NLS(exit_nls_iso8859_9);
257 UNLOAD_NLS(exit_nls_koi8_r);
258 UNLOAD_NLS(exit_nls_koi8_ru);
259 UNLOAD_NLS(exit_nls_koi8_u);
260 UNLOAD_NLS(exit_nls_sjis);
261 UNLOAD_NLS(exit_nls_tis_620);
262
263 //
264 // Unloading nls of chinese ...
265 //
266
267 UNLOAD_NLS(exit_nls_gb2312);
268 UNLOAD_NLS(exit_nls_cp936);
269
270 #endif //FULL_CODEPAGES_SUPPORT
271
272 //
273 // Unloading nls of utf8 ...
274 //
275
276 UNLOAD_NLS(exit_nls_utf8);
277 }