misc.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * Copyright (C) 2018 Samsung Electronics Co., Ltd.
  4. */
  5. #ifndef __KSMBD_MISC_H__
  6. #define __KSMBD_MISC_H__
  7. struct ksmbd_share_config;
  8. struct nls_table;
  9. struct kstat;
  10. struct ksmbd_file;
  11. int match_pattern(const char *str, size_t len, const char *pattern);
  12. int ksmbd_validate_filename(char *filename);
  13. int parse_stream_name(char *filename, char **stream_name, int *s_type);
  14. char *convert_to_nt_pathname(struct ksmbd_share_config *share,
  15. const struct path *path);
  16. int get_nlink(struct kstat *st);
  17. void ksmbd_conv_path_to_unix(char *path);
  18. void ksmbd_strip_last_slash(char *path);
  19. void ksmbd_conv_path_to_windows(char *path);
  20. char *ksmbd_casefold_sharename(struct unicode_map *um, const char *name);
  21. char *ksmbd_extract_sharename(struct unicode_map *um, const char *treename);
  22. char *convert_to_unix_name(struct ksmbd_share_config *share, const char *name);
  23. #define KSMBD_DIR_INFO_ALIGNMENT 8
  24. struct ksmbd_dir_info;
  25. char *ksmbd_convert_dir_info_name(struct ksmbd_dir_info *d_info,
  26. const struct nls_table *local_nls,
  27. int *conv_len);
  28. #define NTFS_TIME_OFFSET ((u64)(369 * 365 + 89) * 24 * 3600 * 10000000)
  29. struct timespec64 ksmbd_NTtimeToUnix(__le64 ntutc);
  30. u64 ksmbd_UnixTimeToNT(struct timespec64 t);
  31. long long ksmbd_systime(void);
  32. #endif /* __KSMBD_MISC_H__ */