aboutsummaryrefslogtreecommitdiff
path: root/fs/nls
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 15:20:36 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-16 15:20:36 -0700
commit1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 (patch)
tree0bba044c4ce775e45a88a51686b5d9f90697ea9d /fs/nls
Linux-2.6.12-rc2v2.6.12-rc2
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
Diffstat (limited to 'fs/nls')
-rw-r--r--fs/nls/Kconfig504
-rw-r--r--fs/nls/Makefile46
-rw-r--r--fs/nls/nls_ascii.c167
-rw-r--r--fs/nls/nls_base.c497
-rw-r--r--fs/nls/nls_cp1250.c347
-rw-r--r--fs/nls/nls_cp1251.c302
-rw-r--r--fs/nls/nls_cp1255.c385
-rw-r--r--fs/nls/nls_cp437.c388
-rw-r--r--fs/nls/nls_cp737.c351
-rw-r--r--fs/nls/nls_cp775.c320
-rw-r--r--fs/nls/nls_cp850.c316
-rw-r--r--fs/nls/nls_cp852.c338
-rw-r--r--fs/nls/nls_cp855.c300
-rw-r--r--fs/nls/nls_cp857.c302
-rw-r--r--fs/nls/nls_cp860.c365
-rw-r--r--fs/nls/nls_cp861.c388
-rw-r--r--fs/nls/nls_cp862.c422
-rw-r--r--fs/nls/nls_cp863.c382
-rw-r--r--fs/nls/nls_cp864.c408
-rw-r--r--fs/nls/nls_cp865.c388
-rw-r--r--fs/nls/nls_cp866.c306
-rw-r--r--fs/nls/nls_cp869.c316
-rw-r--r--fs/nls/nls_cp874.c276
-rw-r--r--fs/nls/nls_cp932.c7934
-rw-r--r--fs/nls/nls_cp936.c11019
-rw-r--r--fs/nls/nls_cp949.c13947
-rw-r--r--fs/nls/nls_cp950.c9483
-rw-r--r--fs/nls/nls_euc-jp.c583
-rw-r--r--fs/nls/nls_iso8859-1.c258
-rw-r--r--fs/nls/nls_iso8859-13.c286
-rw-r--r--fs/nls/nls_iso8859-14.c342
-rw-r--r--fs/nls/nls_iso8859-15.c308
-rw-r--r--fs/nls/nls_iso8859-2.c309
-rw-r--r--fs/nls/nls_iso8859-3.c309
-rw-r--r--fs/nls/nls_iso8859-4.c309
-rw-r--r--fs/nls/nls_iso8859-5.c273
-rw-r--r--fs/nls/nls_iso8859-6.c264
-rw-r--r--fs/nls/nls_iso8859-7.c318
-rw-r--r--fs/nls/nls_iso8859-9.c273
-rw-r--r--fs/nls/nls_koi8-r.c324
-rw-r--r--fs/nls/nls_koi8-ru.c83
-rw-r--r--fs/nls/nls_koi8-u.c331
-rw-r--r--fs/nls/nls_utf8.c61
43 files changed, 54828 insertions, 0 deletions
diff --git a/fs/nls/Kconfig b/fs/nls/Kconfig
new file mode 100644
index 00000000000..0ab8f00bdbb
--- /dev/null
+++ b/fs/nls/Kconfig
@@ -0,0 +1,504 @@
+#
+# Native language support configuration
+#
+
+menu "Native Language Support"
+
+config NLS
+ tristate "Base native language support"
+ ---help---
+ The base Native Language Support. A number of filesystems
+ depend on it (e.g. FAT, JOLIET, NT, BEOS filesystems), as well
+ as the ability of some filesystems to use native languages
+ (NCP, SMB).
+
+ If unsure, say Y.
+
+ To compile this code as a module, choose M here: the module
+ will be called nls_base.
+
+config NLS_DEFAULT
+ string "Default NLS Option"
+ depends on NLS
+ default "iso8859-1"
+ ---help---
+ The default NLS used when mounting file system. Note, that this is
+ the NLS used by your console, not the NLS used by a specific file
+ system (if different) to store data (filenames) on a disk.
+ Currently, the valid values are:
+ big5, cp437, cp737, cp775, cp850, cp852, cp855, cp857, cp860, cp861,
+ cp862, cp863, cp864, cp865, cp866, cp869, cp874, cp932, cp936,
+ cp949, cp950, cp1251, cp1255, euc-jp, euc-kr, gb2312, iso8859-1,
+ iso8859-2, iso8859-3, iso8859-4, iso8859-5, iso8859-6, iso8859-7,
+ iso8859-8, iso8859-9, iso8859-13, iso8859-14, iso8859-15,
+ koi8-r, koi8-ru, koi8-u, sjis, tis-620, utf8.
+ If you specify a wrong value, it will use the built-in NLS;
+ compatible with iso8859-1.
+
+ If unsure, specify it as "iso8859-1".
+
+config NLS_CODEPAGE_437
+ tristate "Codepage 437 (United States, Canada)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored
+ in so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage that is used in
+ the United States and parts of Canada. This is recommended.
+
+config NLS_CODEPAGE_737
+ tristate "Codepage 737 (Greek)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored
+ in so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage that is used for
+ Greek. If unsure, say N.
+
+config NLS_CODEPAGE_775
+ tristate "Codepage 775 (Baltic Rim)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored
+ in so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage that is used
+ for the Baltic Rim Languages (Latvian and Lithuanian). If unsure,
+ say N.
+
+config NLS_CODEPAGE_850
+ tristate "Codepage 850 (Europe)"
+ depends on NLS
+ ---help---
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage that is used for
+ much of Europe -- United Kingdom, Germany, Spain, Italy, and [add
+ more countries here]. It has some characters useful to many European
+ languages that are not part of the US codepage 437.
+
+ If unsure, say Y.
+
+config NLS_CODEPAGE_852
+ tristate "Codepage 852 (Central/Eastern Europe)"
+ depends on NLS
+ ---help---
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the Latin 2 codepage used by DOS
+ for much of Central and Eastern Europe. It has all the required
+ characters for these languages: Albanian, Croatian, Czech, English,
+ Finnish, Hungarian, Irish, German, Polish, Romanian, Serbian (Latin
+ transcription), Slovak, Slovenian, and Sorbian.
+
+config NLS_CODEPAGE_855
+ tristate "Codepage 855 (Cyrillic)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Cyrillic.
+
+config NLS_CODEPAGE_857
+ tristate "Codepage 857 (Turkish)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Turkish.
+
+config NLS_CODEPAGE_860
+ tristate "Codepage 860 (Portuguese)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Portuguese.
+
+config NLS_CODEPAGE_861
+ tristate "Codepage 861 (Icelandic)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Icelandic.
+
+config NLS_CODEPAGE_862
+ tristate "Codepage 862 (Hebrew)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Hebrew.
+
+config NLS_CODEPAGE_863
+ tristate "Codepage 863 (Canadian French)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Canadian
+ French.
+
+config NLS_CODEPAGE_864
+ tristate "Codepage 864 (Arabic)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Arabic.
+
+config NLS_CODEPAGE_865
+ tristate "Codepage 865 (Norwegian, Danish)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for the Nordic
+ European countries.
+
+config NLS_CODEPAGE_866
+ tristate "Codepage 866 (Cyrillic/Russian)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for
+ Cyrillic/Russian.
+
+config NLS_CODEPAGE_869
+ tristate "Codepage 869 (Greek)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Greek.
+
+config NLS_CODEPAGE_936
+ tristate "Simplified Chinese charset (CP936, GB2312)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Simplified
+ Chinese(GBK).
+
+config NLS_CODEPAGE_950
+ tristate "Traditional Chinese charset (Big5)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Traditional
+ Chinese(Big5).
+
+config NLS_CODEPAGE_932
+ tristate "Japanese charsets (Shift-JIS, EUC-JP)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Shift-JIS
+ or EUC-JP. To use EUC-JP, you can use 'euc-jp' as mount option or
+ NLS Default value during kernel configuration, instead of 'cp932'.
+
+config NLS_CODEPAGE_949
+ tristate "Korean charset (CP949, EUC-KR)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for UHC.
+
+config NLS_CODEPAGE_874
+ tristate "Thai charset (CP874, TIS-620)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Thai.
+
+config NLS_ISO8859_8
+ tristate "Hebrew charsets (ISO-8859-8, CP1255)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for ISO8859-8, the Hebrew
+ character set.
+
+config NLS_CODEPAGE_1250
+ tristate "Windows CP1250 (Slavic/Central European Languages)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CDROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for the Windows CP-1250
+ character set, which works for most Latin-written Slavic and Central
+ European languages: Czech, German, Hungarian, Polish, Rumanian, Croatian,
+ Slovak, Slovene.
+
+config NLS_CODEPAGE_1251
+ tristate "Windows CP1251 (Bulgarian, Belarusian)"
+ depends on NLS
+ help
+ The Microsoft FAT file system family can deal with filenames in
+ native language character sets. These character sets are stored in
+ so-called DOS codepages. You need to include the appropriate
+ codepage if you want to be able to read/write these filenames on
+ DOS/Windows partitions correctly. This does apply to the filenames
+ only, not to the file contents. You can include several codepages;
+ say Y here if you want to include the DOS codepage for Russian and
+ Bulgarian and Belarusian.
+
+config NLS_ASCII
+ tristate "ASCII (United States)"
+ depends on NLS
+ help
+ An ASCII NLS module is needed if you want to override the
+ DEFAULT NLS with this very basic charset and don't want any
+ non-ASCII characters to be translated.
+
+config NLS_ISO8859_1
+ tristate "NLS ISO 8859-1 (Latin 1; Western European Languages)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for the Latin 1 character
+ set, which covers most West European languages such as Albanian,
+ Catalan, Danish, Dutch, English, Faeroese, Finnish, French, German,
+ Galician, Irish, Icelandic, Italian, Norwegian, Portuguese, Spanish,
+ and Swedish. It is also the default for the US. If unsure, say Y.
+
+config NLS_ISO8859_2
+ tristate "NLS ISO 8859-2 (Latin 2; Slavic/Central European Languages)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for the Latin 2 character
+ set, which works for most Latin-written Slavic and Central European
+ languages: Czech, German, Hungarian, Polish, Rumanian, Croatian,
+ Slovak, Slovene.
+
+config NLS_ISO8859_3
+ tristate "NLS ISO 8859-3 (Latin 3; Esperanto, Galician, Maltese, Turkish)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for the Latin 3 character
+ set, which is popular with authors of Esperanto, Galician, Maltese,
+ and Turkish.
+
+config NLS_ISO8859_4
+ tristate "NLS ISO 8859-4 (Latin 4; old Baltic charset)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for the Latin 4 character
+ set which introduces letters for Estonian, Latvian, and
+ Lithuanian. It is an incomplete predecessor of Latin 7.
+
+config NLS_ISO8859_5
+ tristate "NLS ISO 8859-5 (Cyrillic)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for ISO8859-5, a Cyrillic
+ character set with which you can type Bulgarian, Belarusian,
+ Macedonian, Russian, Serbian, and Ukrainian. Note that the charset
+ KOI8-R is preferred in Russia.
+
+config NLS_ISO8859_6
+ tristate "NLS ISO 8859-6 (Arabic)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for ISO8859-6, the Arabic
+ character set.
+
+config NLS_ISO8859_7
+ tristate "NLS ISO 8859-7 (Modern Greek)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for ISO8859-7, the Modern
+ Greek character set.
+
+config NLS_ISO8859_9
+ tristate "NLS ISO 8859-9 (Latin 5; Turkish)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for the Latin 5 character
+ set, and it replaces the rarely needed Icelandic letters in Latin 1
+ with the Turkish ones. Useful in Turkey.
+
+config NLS_ISO8859_13
+ tristate "NLS ISO 8859-13 (Latin 7; Baltic)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for the Latin 7 character
+ set, which supports modern Baltic languages including Latvian
+ and Lithuanian.
+
+config NLS_ISO8859_14
+ tristate "NLS ISO 8859-14 (Latin 8; Celtic)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for the Latin 8 character
+ set, which adds the last accented vowels for Welsh (aka Cymraeg)
+ (and Manx Gaelic) that were missing in Latin 1.
+ <http://linux.speech.cymru.org/> has further information.
+
+config NLS_ISO8859_15
+ tristate "NLS ISO 8859-15 (Latin 9; Western European Languages with Euro)"
+ depends on NLS
+ ---help---
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for the Latin 9 character
+ set, which covers most West European languages such as Albanian,
+ Catalan, Danish, Dutch, English, Estonian, Faeroese, Finnish,
+ French, German, Galician, Irish, Icelandic, Italian, Norwegian,
+ Portuguese, Spanish, and Swedish. Latin 9 is an update to
+ Latin 1 (ISO 8859-1) that removes a handful of rarely used
+ characters and instead adds support for Estonian, corrects the
+ support for French and Finnish, and adds the new Euro character.
+ If unsure, say Y.
+
+config NLS_KOI8_R
+ tristate "NLS KOI8-R (Russian)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for the preferred Russian
+ character set.
+
+config NLS_KOI8_U
+ tristate "NLS KOI8-U/RU (Ukrainian, Belarusian)"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for the preferred Ukrainian
+ (koi8-u) and Belarusian (koi8-ru) character sets.
+
+config NLS_UTF8
+ tristate "NLS UTF8"
+ depends on NLS
+ help
+ If you want to display filenames with native language characters
+ from the Microsoft FAT file system family or from JOLIET CD-ROMs
+ correctly on the screen, you need to include the appropriate
+ input/output character sets. Say Y here for the UTF-8 encoding of
+ the Unicode/ISO9646 universal character set.
+
+endmenu
+
diff --git a/fs/nls/Makefile b/fs/nls/Makefile
new file mode 100644
index 00000000000..a7ade138d68
--- /dev/null
+++ b/fs/nls/Makefile
@@ -0,0 +1,46 @@
+#
+# Makefile for native language support
+#
+
+obj-$(CONFIG_NLS) += nls_base.o
+
+obj-$(CONFIG_NLS_CODEPAGE_437) += nls_cp437.o
+obj-$(CONFIG_NLS_CODEPAGE_737) += nls_cp737.o
+obj-$(CONFIG_NLS_CODEPAGE_775) += nls_cp775.o
+obj-$(CONFIG_NLS_CODEPAGE_850) += nls_cp850.o
+obj-$(CONFIG_NLS_CODEPAGE_852) += nls_cp852.o
+obj-$(CONFIG_NLS_CODEPAGE_855) += nls_cp855.o
+obj-$(CONFIG_NLS_CODEPAGE_857) += nls_cp857.o
+obj-$(CONFIG_NLS_CODEPAGE_860) += nls_cp860.o
+obj-$(CONFIG_NLS_CODEPAGE_861) += nls_cp861.o
+obj-$(CONFIG_NLS_CODEPAGE_862) += nls_cp862.o
+obj-$(CONFIG_NLS_CODEPAGE_863) += nls_cp863.o
+obj-$(CONFIG_NLS_CODEPAGE_864) += nls_cp864.o
+obj-$(CONFIG_NLS_CODEPAGE_865) += nls_cp865.o
+obj-$(CONFIG_NLS_CODEPAGE_866) += nls_cp866.o
+obj-$(CONFIG_NLS_CODEPAGE_869) += nls_cp869.o
+obj-$(CONFIG_NLS_CODEPAGE_874) += nls_cp874.o
+obj-$(CONFIG_NLS_CODEPAGE_932) += nls_cp932.o nls_euc-jp.o
+obj-$(CONFIG_NLS_CODEPAGE_936) += nls_cp936.o
+obj-$(CONFIG_NLS_CODEPAGE_949) += nls_cp949.o
+obj-$(CONFIG_NLS_CODEPAGE_950) += nls_cp950.o
+obj-$(CONFIG_NLS_CODEPAGE_1250) += nls_cp1250.o
+obj-$(CONFIG_NLS_CODEPAGE_1251) += nls_cp1251.o
+obj-$(CONFIG_NLS_ASCII) += nls_ascii.o
+obj-$(CONFIG_NLS_ISO8859_1) += nls_iso8859-1.o
+obj-$(CONFIG_NLS_ISO8859_2) += nls_iso8859-2.o
+obj-$(CONFIG_NLS_ISO8859_3) += nls_iso8859-3.o
+obj-$(CONFIG_NLS_ISO8859_4) += nls_iso8859-4.o
+obj-$(CONFIG_NLS_ISO8859_5) += nls_iso8859-5.o
+obj-$(CONFIG_NLS_ISO8859_6) += nls_iso8859-6.o
+obj-$(CONFIG_NLS_ISO8859_7) += nls_iso8859-7.o
+obj-$(CONFIG_NLS_ISO8859_8) += nls_cp1255.o
+obj-$(CONFIG_NLS_ISO8859_9) += nls_iso8859-9.o
+obj-$(CONFIG_NLS_ISO8859_10) += nls_iso8859-10.o
+obj-$(CONFIG_NLS_ISO8859_13) += nls_iso8859-13.o
+obj-$(CONFIG_NLS_ISO8859_14) += nls_iso8859-14.o
+obj-$(CONFIG_NLS_ISO8859_15) += nls_iso8859-15.o
+obj-$(CONFIG_NLS_KOI8_R) += nls_koi8-r.o
+obj-$(CONFIG_NLS_KOI8_U) += nls_koi8-u.o nls_koi8-ru.o
+obj-$(CONFIG_NLS_ABC) += nls_abc.o
+obj-$(CONFIG_NLS_UTF8) += nls_utf8.o
diff --git a/fs/nls/nls_ascii.c b/fs/nls/nls_ascii.c
new file mode 100644
index 00000000000..b83381c07ad
--- /dev/null
+++ b/fs/nls/nls_ascii.c
@@ -0,0 +1,167 @@
+/*
+ * linux/fs/nls_ascii.c
+ *
+ * Charset ascii translation tables.
+ * Generated automatically from the Unicode and charset
+ * tables from the Unicode Organization (www.unicode.org).
+ * The Unicode to charset table has only exact mappings.
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/string.h>
+#include <linux/nls.h>
+#include <linux/errno.h>
+
+static wchar_t charset2uni[256] = {
+ /* 0x00*/
+ 0x0000, 0x0001, 0x0002, 0x0003,
+ 0x0004, 0x0005, 0x0006, 0x0007,
+ 0x0008, 0x0009, 0x000a, 0x000b,
+ 0x000c, 0x000d, 0x000e, 0x000f,
+ /* 0x10*/
+ 0x0010, 0x0011, 0x0012, 0x0013,
+ 0x0014, 0x0015, 0x0016, 0x0017,
+ 0x0018, 0x0019, 0x001a, 0x001b,
+ 0x001c, 0x001d, 0x001e, 0x001f,
+ /* 0x20*/
+ 0x0020, 0x0021, 0x0022, 0x0023,
+ 0x0024, 0x0025, 0x0026, 0x0027,
+ 0x0028, 0x0029, 0x002a, 0x002b,
+ 0x002c, 0x002d, 0x002e, 0x002f,
+ /* 0x30*/
+ 0x0030, 0x0031, 0x0032, 0x0033,
+ 0x0034, 0x0035, 0x0036, 0x0037,
+ 0x0038, 0x0039, 0x003a, 0x003b,
+ 0x003c, 0x003d, 0x003e, 0x003f,
+ /* 0x40*/
+ 0x0040, 0x0041, 0x0042, 0x0043,
+ 0x0044, 0x0045, 0x0046, 0x0047,
+ 0x0048, 0x0049, 0x004a, 0x004b,
+ 0x004c, 0x004d, 0x004e, 0x004f,
+ /* 0x50*/
+ 0x0050, 0x0051, 0x0052, 0x0053,
+ 0x0054, 0x0055, 0x0056, 0x0057,
+ 0x0058, 0x0059, 0x005a, 0x005b,
+ 0x005c, 0x005d, 0x005e, 0x005f,
+ /* 0x60*/
+ 0x0060, 0x0061, 0x0062, 0x0063,
+ 0x0064, 0x0065, 0x0066, 0x0067,
+ 0x0068, 0x0069, 0x006a, 0x006b,
+ 0x006c, 0x006d, 0x006e, 0x006f,
+ /* 0x70*/
+ 0x0070, 0x0071, 0x0072, 0x0073,
+ 0x0074, 0x0075, 0x0076, 0x0077,
+ 0x0078, 0x0079, 0x007a, 0x007b,
+ 0x007c, 0x007d, 0x007e, 0x007f,
+};
+
+static unsigned char page00[256] = {
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00-0x07 */
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08-0x0f */
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10-0x17 */
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, /* 0x18-0x1f */
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, /* 0x20-0x27 */
+ 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, /* 0x28-0x2f */
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, /* 0x30-0x37 */
+ 0x38, 0x39, 0x3a, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, /* 0x38-0x3f */
+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, /* 0x40-0x47 */
+ 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, /* 0x48-0x4f */
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, /* 0x50-0x57 */
+ 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, /* 0x58-0x5f */
+ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, /* 0x60-0x67 */
<