2021-03-16 10:49:09 +09:00
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
* Copyright ( C ) 2018 Samsung Electronics Co . , Ltd .
*/
# ifndef __KSMBD_MISC_H__
# define __KSMBD_MISC_H__
struct ksmbd_share_config ;
struct nls_table ;
struct kstat ;
struct ksmbd_file ;
2021-03-21 17:32:19 +09:00
int match_pattern ( const char * str , size_t len , const char * pattern ) ;
2021-03-16 10:49:09 +09:00
int ksmbd_validate_filename ( char * filename ) ;
int parse_stream_name ( char * filename , char * * stream_name , int * s_type ) ;
2022-02-24 11:03:41 +09:00
char * convert_to_nt_pathname ( struct ksmbd_share_config * share ,
2022-08-04 12:51:14 -04:00
const struct path * path ) ;
2021-03-16 10:49:09 +09:00
int get_nlink ( struct kstat * st ) ;
2021-09-25 00:06:16 +09:00
void ksmbd_conv_path_to_unix ( char * path ) ;
void ksmbd_strip_last_slash ( char * path ) ;
2021-03-16 10:49:09 +09:00
void ksmbd_conv_path_to_windows ( char * path ) ;
2022-10-03 02:09:34 +03:00
char * ksmbd_casefold_sharename ( struct unicode_map * um , const char * name ) ;
2022-09-15 22:49:11 +09:00
char * ksmbd_extract_sharename ( struct unicode_map * um , const char * treename ) ;
2021-09-25 00:06:16 +09:00
char * convert_to_unix_name ( struct ksmbd_share_config * share , const char * name ) ;
2021-03-16 10:49:09 +09:00
# define KSMBD_DIR_INFO_ALIGNMENT 8
struct ksmbd_dir_info ;
char * ksmbd_convert_dir_info_name ( struct ksmbd_dir_info * d_info ,
const struct nls_table * local_nls ,
int * conv_len ) ;
2021-04-14 09:24:11 +09:00
# define NTFS_TIME_OFFSET ((u64)(369 * 365 + 89) * 24 * 3600 * 10000000)
struct timespec64 ksmbd_NTtimeToUnix ( __le64 ntutc ) ;
u64 ksmbd_UnixTimeToNT ( struct timespec64 t ) ;
long long ksmbd_systime ( void ) ;
2021-03-16 10:49:09 +09:00
# endif /* __KSMBD_MISC_H__ */