#include <linux/module.h>
#include <linux/string.h>
#include <linux/nls.h>
#include <linux/kernel.h>
#include <linux/errno.h>
#include <linux/kmod.h>
#include <linux/spinlock.h>
#include <asm/byteorder.h>
static struct nls_table default_table;
static struct nls_table *tables = …;
static DEFINE_SPINLOCK(nls_lock);
struct utf8_table { … };
static const struct utf8_table utf8_table[] = …;
#define UNICODE_MAX …
#define PLANE_SIZE …
#define SURROGATE_MASK …
#define SURROGATE_PAIR …
#define SURROGATE_LOW …
#define SURROGATE_BITS …
int utf8_to_utf32(const u8 *s, int inlen, unicode_t *pu)
{ … }
EXPORT_SYMBOL(…);
int utf32_to_utf8(unicode_t u, u8 *s, int maxout)
{ … }
EXPORT_SYMBOL(…);
static inline void put_utf16(wchar_t *s, unsigned c, enum utf16_endian endian)
{ … }
int utf8s_to_utf16s(const u8 *s, int inlen, enum utf16_endian endian,
wchar_t *pwcs, int maxout)
{ … }
EXPORT_SYMBOL(…);
static inline unsigned long get_utf16(unsigned c, enum utf16_endian endian)
{ … }
int utf16s_to_utf8s(const wchar_t *pwcs, int inlen, enum utf16_endian endian,
u8 *s, int maxout)
{ … }
EXPORT_SYMBOL(…);
int __register_nls(struct nls_table *nls, struct module *owner)
{ … }
EXPORT_SYMBOL(…);
int unregister_nls(struct nls_table * nls)
{ … }
static struct nls_table *find_nls(const char *charset)
{ … }
struct nls_table *load_nls(const char *charset)
{ … }
void unload_nls(struct nls_table *nls)
{ … }
static const wchar_t charset2uni[256] = …;
static const unsigned char page00[256] = …;
static const unsigned char *const page_uni2charset[256] = …;
static const unsigned char charset2lower[256] = …;
static const unsigned char charset2upper[256] = …;
static int uni2char(wchar_t uni, unsigned char *out, int boundlen)
{ … }
static int char2uni(const unsigned char *rawstring, int boundlen, wchar_t *uni)
{ … }
static struct nls_table default_table = …;
struct nls_table *load_nls_default(void)
{ … }
EXPORT_SYMBOL(…);
EXPORT_SYMBOL(…);
EXPORT_SYMBOL(…);
EXPORT_SYMBOL(…);
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;