mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
089f7f5913
Swing most of the inline functions and unicode tables into nls from the copy in smb/server. This is UCS-2 rather than most of the rest of the code in NLS, but it currently seems like the best place for it. The actual unicode.c implementations vary much more between server and client so they're unmoved. Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org> Reviewed-by: Dave Kleikamp <dave.kleikamp@oracle.com> Signed-off-by: Steve French <stfrench@microsoft.com>
42 lines
1.3 KiB
C
42 lines
1.3 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* Some of the source code in this file came from fs/cifs/cifs_unicode.c
|
|
* cifs_unicode: Unicode kernel case support
|
|
*
|
|
* Function:
|
|
* Convert a unicode character to upper or lower case using
|
|
* compressed tables.
|
|
*
|
|
* Copyright (c) International Business Machines Corp., 2000,2009
|
|
*
|
|
*
|
|
* Notes:
|
|
* These APIs are based on the C library functions. The semantics
|
|
* should match the C functions but with expanded size operands.
|
|
*
|
|
* The upper/lower functions are based on a table created by mkupr.
|
|
* This is a compressed table of upper and lower case conversion.
|
|
*
|
|
*/
|
|
#ifndef _SMB_UNICODE_H
|
|
#define _SMB_UNICODE_H
|
|
|
|
#include <asm/byteorder.h>
|
|
#include <linux/types.h>
|
|
#include <linux/nls.h>
|
|
#include <linux/unicode.h>
|
|
#include "../../nls/nls_ucs2_utils.h"
|
|
|
|
#ifdef __KERNEL__
|
|
int smb_strtoUTF16(__le16 *to, const char *from, int len,
|
|
const struct nls_table *codepage);
|
|
char *smb_strndup_from_utf16(const char *src, const int maxlen,
|
|
const bool is_unicode,
|
|
const struct nls_table *codepage);
|
|
int smbConvertToUTF16(__le16 *target, const char *source, int srclen,
|
|
const struct nls_table *cp, int mapchars);
|
|
char *ksmbd_extract_sharename(struct unicode_map *um, const char *treename);
|
|
#endif
|
|
|
|
#endif /* _SMB_UNICODE_H */
|