1/* 2 * linux/fs/nls_sjis.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 11static struct nls_table *p_nls; 12 13static struct nls_table table = { 14 "sjis", 15 NULL, 16 NULL, 17 NULL, 18 NULL, 19 THIS_MODULE, 20}; 21 22static int __init init_nls_sjis(void) 23{ 24 p_nls = load_nls("cp932"); 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 37static void __exit exit_nls_sjis(void) 38{ 39 unregister_nls(&table); 40 unload_nls(p_nls); 41} 42 43module_init(init_nls_sjis) 44module_exit(exit_nls_sjis) 45MODULE_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