1*9663SMark.Logan@Sun.COM /* 2*9663SMark.Logan@Sun.COM * unistr.h - Exports for Unicode string handling. Part of the Linux-NTFS 3*9663SMark.Logan@Sun.COM * project. 4*9663SMark.Logan@Sun.COM * 5*9663SMark.Logan@Sun.COM * Copyright (c) 2000-2006 Anton Altaparmakov 6*9663SMark.Logan@Sun.COM * 7*9663SMark.Logan@Sun.COM * This program/include file is free software; you can redistribute it and/or 8*9663SMark.Logan@Sun.COM * modify it under the terms of the GNU General Public License as published 9*9663SMark.Logan@Sun.COM * by the Free Software Foundation; either version 2 of the License, or 10*9663SMark.Logan@Sun.COM * (at your option) any later version. 11*9663SMark.Logan@Sun.COM * 12*9663SMark.Logan@Sun.COM * This program/include file is distributed in the hope that it will be 13*9663SMark.Logan@Sun.COM * useful, but WITHOUT ANY WARRANTY; without even the implied warranty 14*9663SMark.Logan@Sun.COM * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15*9663SMark.Logan@Sun.COM * GNU General Public License for more details. 16*9663SMark.Logan@Sun.COM * 17*9663SMark.Logan@Sun.COM * You should have received a copy of the GNU General Public License 18*9663SMark.Logan@Sun.COM * along with this program (in the main directory of the Linux-NTFS 19*9663SMark.Logan@Sun.COM * distribution in the file COPYING); if not, write to the Free Software 20*9663SMark.Logan@Sun.COM * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21*9663SMark.Logan@Sun.COM */ 22*9663SMark.Logan@Sun.COM 23*9663SMark.Logan@Sun.COM #ifndef _NTFS_UNISTR_H 24*9663SMark.Logan@Sun.COM #define _NTFS_UNISTR_H 25*9663SMark.Logan@Sun.COM 26*9663SMark.Logan@Sun.COM #include "types.h" 27*9663SMark.Logan@Sun.COM #include "layout.h" 28*9663SMark.Logan@Sun.COM 29*9663SMark.Logan@Sun.COM extern BOOL ntfs_names_are_equal(const ntfschar *s1, size_t s1_len, 30*9663SMark.Logan@Sun.COM const ntfschar *s2, size_t s2_len, const IGNORE_CASE_BOOL ic, 31*9663SMark.Logan@Sun.COM const ntfschar *upcase, const u32 upcase_size); 32*9663SMark.Logan@Sun.COM 33*9663SMark.Logan@Sun.COM extern int ntfs_names_collate(const ntfschar *name1, const u32 name1_len, 34*9663SMark.Logan@Sun.COM const ntfschar *name2, const u32 name2_len, 35*9663SMark.Logan@Sun.COM const int err_val, const IGNORE_CASE_BOOL ic, 36*9663SMark.Logan@Sun.COM const ntfschar *upcase, const u32 upcase_len); 37*9663SMark.Logan@Sun.COM 38*9663SMark.Logan@Sun.COM extern int ntfs_ucsncmp(const ntfschar *s1, const ntfschar *s2, size_t n); 39*9663SMark.Logan@Sun.COM 40*9663SMark.Logan@Sun.COM extern int ntfs_ucsncasecmp(const ntfschar *s1, const ntfschar *s2, size_t n, 41*9663SMark.Logan@Sun.COM const ntfschar *upcase, const u32 upcase_size); 42*9663SMark.Logan@Sun.COM 43*9663SMark.Logan@Sun.COM extern u32 ntfs_ucsnlen(const ntfschar *s, u32 maxlen); 44*9663SMark.Logan@Sun.COM 45*9663SMark.Logan@Sun.COM extern ntfschar *ntfs_ucsndup(const ntfschar *s, u32 maxlen); 46*9663SMark.Logan@Sun.COM 47*9663SMark.Logan@Sun.COM extern void ntfs_name_upcase(ntfschar *name, u32 name_len, 48*9663SMark.Logan@Sun.COM const ntfschar *upcase, const u32 upcase_len); 49*9663SMark.Logan@Sun.COM 50*9663SMark.Logan@Sun.COM extern void ntfs_file_value_upcase(FILE_NAME_ATTR *file_name_attr, 51*9663SMark.Logan@Sun.COM const ntfschar *upcase, const u32 upcase_len); 52*9663SMark.Logan@Sun.COM 53*9663SMark.Logan@Sun.COM extern int ntfs_file_values_compare(const FILE_NAME_ATTR *file_name_attr1, 54*9663SMark.Logan@Sun.COM const FILE_NAME_ATTR *file_name_attr2, 55*9663SMark.Logan@Sun.COM const int err_val, const IGNORE_CASE_BOOL ic, 56*9663SMark.Logan@Sun.COM const ntfschar *upcase, const u32 upcase_len); 57*9663SMark.Logan@Sun.COM 58*9663SMark.Logan@Sun.COM extern int ntfs_ucstombs(const ntfschar *ins, const int ins_len, char **outs, 59*9663SMark.Logan@Sun.COM int outs_len); 60*9663SMark.Logan@Sun.COM extern int ntfs_mbstoucs(const char *ins, ntfschar **outs, int outs_len); 61*9663SMark.Logan@Sun.COM 62*9663SMark.Logan@Sun.COM extern void ntfs_upcase_table_build(ntfschar *uc, u32 uc_len); 63*9663SMark.Logan@Sun.COM 64*9663SMark.Logan@Sun.COM extern ntfschar *ntfs_str2ucs(const char *s, int *len); 65*9663SMark.Logan@Sun.COM 66*9663SMark.Logan@Sun.COM extern void ntfs_ucsfree(ntfschar *ucs); 67*9663SMark.Logan@Sun.COM 68*9663SMark.Logan@Sun.COM #endif /* defined _NTFS_UNISTR_H */ 69*9663SMark.Logan@Sun.COM 70