42 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/*3 * Some of the source code in this file came from fs/cifs/cifs_unicode.c4 * cifs_unicode: Unicode kernel case support5 *6 * Function:7 * Convert a unicode character to upper or lower case using8 * compressed tables.9 *10 * Copyright (c) International Business Machines Corp., 2000,200911 *12 *13 * Notes:14 * These APIs are based on the C library functions. The semantics15 * should match the C functions but with expanded size operands.16 *17 * The upper/lower functions are based on a table created by mkupr.18 * This is a compressed table of upper and lower case conversion.19 *20 */21#ifndef _SMB_UNICODE_H22#define _SMB_UNICODE_H23 24#include <asm/byteorder.h>25#include <linux/types.h>26#include <linux/nls.h>27#include <linux/unicode.h>28#include "../../nls/nls_ucs2_utils.h"29 30#ifdef __KERNEL__31int smb_strtoUTF16(__le16 *to, const char *from, int len,32 const struct nls_table *codepage);33char *smb_strndup_from_utf16(const char *src, const int maxlen,34 const bool is_unicode,35 const struct nls_table *codepage);36int smbConvertToUTF16(__le16 *target, const char *source, int srclen,37 const struct nls_table *cp, int mapchars);38char *ksmbd_extract_sharename(struct unicode_map *um, const char *treename);39#endif40 41#endif /* _SMB_UNICODE_H */42