nls_gb2312.c
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

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