1 /*
2  * linux/fs/nls_tis-620.c
3  */
4 
5 #include <linux/module.h>
6 #include <linux/kernel.h>
7 #include <linux/string.h>
8 #include <linux/nls.h>
9 #include <linux/errno.h>
10 
11 static struct nls_table *p_nls;
12 
13 static struct nls_table table = {
14 	"tis-620",
15 	NULL,
16 	NULL,
17 	NULL,
18 	NULL,
19 	THIS_MODULE,
20 };
21 
init_nls_tis_620(void)22 static int __init init_nls_tis_620(void)
23 {
24 	p_nls = load_nls("cp874");
25 
26 	if (p_nls) {
27 		table.uni2char = p_nls->uni2char;
28 		table.char2uni = p_nls->char2uni;
29 		table.charset2upper = p_nls->charset2upper;
30 		table.charset2lower = p_nls->charset2lower;
31 		return register_nls(&table);
32 	}
33 
34 	return -EINVAL;
35 }
36 
exit_nls_tis_620(void)37 static void __exit exit_nls_tis_620(void)
38 {
39 	unregister_nls(&table);
40 	unload_nls(p_nls);
41 }
42 
43 module_init(init_nls_tis_620)
44 module_exit(exit_nls_tis_620)
45 MODULE_LICENSE("Dual BSD/GPL");
46 
47 /*
48  * Overrides for Emacs so that we follow Linus's tabbing style.
49  * Emacs will notice this stuff at the end of the file and automatically
50  * adjust the settings for this buffer only.  This must remain at the end
51  * of the file.
52  *
53 ---------------------------------------------------------------------------
54  * Local variables:
55  * c-indent-level: 8
56  * c-brace-imaginary-offset: 0
57  * c-brace-offset: -8
58  * c-argdecl-indent: 8
59  * c-label-offset: -8
60  * c-continued-statement-offset: 8
61  * c-continued-brace-offset: 0
62  * End:
63  */
64