linux/fs/exfat/nls.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 * Copyright (C) 2012-2013 Samsung Electronics Co., Ltd.
 */

#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"

/* Upcase table macro */
#define EXFAT_NUM_UPCASE
#define UTBL_COUNT

/*
 * Upcase table in compressed format (7.2.5.1 Recommended Up-case Table
 * in exfat specification, See:
 * https://docs.microsoft.com/en-us/windows/win32/fileio/exfat-specification).
 */
static const unsigned short uni_def_upcase[EXFAT_NUM_UPCASE] =;

/*
 * Allow full-width illegal characters :
 * "MS windows 7" supports full-width-invalid-name-characters.
 * So we should check half-width-invalid-name-characters(ASCII) only
 * for compatibility.
 *
 * " * / : < > ? \ |
 */
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)
{}