types.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /* SPDX-License-Identifier: GPL-2.0-or-later */
  2. /*
  3. * types.h - Defines for NTFS Linux kernel driver specific types.
  4. * Part of the Linux-NTFS project.
  5. *
  6. * Copyright (c) 2001-2005 Anton Altaparmakov
  7. */
  8. #ifndef _LINUX_NTFS_TYPES_H
  9. #define _LINUX_NTFS_TYPES_H
  10. #include <linux/types.h>
  11. typedef __le16 le16;
  12. typedef __le32 le32;
  13. typedef __le64 le64;
  14. typedef __u16 __bitwise sle16;
  15. typedef __u32 __bitwise sle32;
  16. typedef __u64 __bitwise sle64;
  17. /* 2-byte Unicode character type. */
  18. typedef le16 ntfschar;
  19. #define UCHAR_T_SIZE_BITS 1
  20. /*
  21. * Clusters are signed 64-bit values on NTFS volumes. We define two types, LCN
  22. * and VCN, to allow for type checking and better code readability.
  23. */
  24. typedef s64 VCN;
  25. typedef sle64 leVCN;
  26. typedef s64 LCN;
  27. typedef sle64 leLCN;
  28. /*
  29. * The NTFS journal $LogFile uses log sequence numbers which are signed 64-bit
  30. * values. We define our own type LSN, to allow for type checking and better
  31. * code readability.
  32. */
  33. typedef s64 LSN;
  34. typedef sle64 leLSN;
  35. /*
  36. * The NTFS transaction log $UsnJrnl uses usn which are signed 64-bit values.
  37. * We define our own type USN, to allow for type checking and better code
  38. * readability.
  39. */
  40. typedef s64 USN;
  41. typedef sle64 leUSN;
  42. typedef enum {
  43. CASE_SENSITIVE = 0,
  44. IGNORE_CASE = 1,
  45. } IGNORE_CASE_BOOL;
  46. #endif /* _LINUX_NTFS_TYPES_H */