#include <linux/string.h>
#include <linux/slab.h>
#include <linux/buffer_head.h>
#include <asm/unaligned.h>
#include "exfat_raw.h"
#include "exfat_fs.h"
#define EXFAT_NUM_UPCASE …
#define UTBL_COUNT …
static const unsigned short uni_def_upcase[EXFAT_NUM_UPCASE] = …;
static unsigned short bad_uni_chars[] = …;
static int exfat_convert_char_to_ucs2(struct nls_table *nls,
const unsigned char *ch, int ch_len, unsigned short *ucs2,
int *lossy)
{ … }
static int exfat_convert_ucs2_to_char(struct nls_table *nls,
unsigned short ucs2, unsigned char *ch, int *lossy)
{ … }
unsigned short exfat_toupper(struct super_block *sb, unsigned short a)
{ … }
static unsigned short *exfat_wstrchr(unsigned short *str, unsigned short wchar)
{ … }
int exfat_uniname_ncmp(struct super_block *sb, unsigned short *a,
unsigned short *b, unsigned int len)
{ … }
static int exfat_utf16_to_utf8(struct super_block *sb,
struct exfat_uni_name *p_uniname, unsigned char *p_cstring,
int buflen)
{ … }
static int exfat_utf8_to_utf16(struct super_block *sb,
const unsigned char *p_cstring, const int len,
struct exfat_uni_name *p_uniname, int *p_lossy)
{ … }
#define SURROGATE_MASK …
#define SURROGATE_PAIR …
#define SURROGATE_LOW …
static int __exfat_utf16_to_nls(struct super_block *sb,
struct exfat_uni_name *p_uniname, unsigned char *p_cstring,
int buflen)
{ … }
static int exfat_nls_to_ucs2(struct super_block *sb,
const unsigned char *p_cstring, const int len,
struct exfat_uni_name *p_uniname, int *p_lossy)
{ … }
int exfat_utf16_to_nls(struct super_block *sb, struct exfat_uni_name *uniname,
unsigned char *p_cstring, int buflen)
{ … }
int exfat_nls_to_utf16(struct super_block *sb, const unsigned char *p_cstring,
const int len, struct exfat_uni_name *uniname, int *p_lossy)
{ … }
static int exfat_load_upcase_table(struct super_block *sb,
sector_t sector, unsigned long long num_sectors,
unsigned int utbl_checksum)
{ … }
static int exfat_load_default_upcase_table(struct super_block *sb)
{ … }
int exfat_create_upcase_table(struct super_block *sb)
{ … }
void exfat_free_upcase_table(struct exfat_sb_info *sbi)
{ … }