1 #ifndef _LINUX_NTFS_FS_I_H
2 #define _LINUX_NTFS_FS_I_H
4 #include <linux/types.h>
6 /* Forward declarations, to keep number of mutual includes low */
10 /* Duplicate definitions from ntfs/ntfstypes.h */
11 #ifndef NTFS_INTEGRAL_TYPES
12 #define NTFS_INTEGRAL_TYPES
25 typedef __kernel_mode_t ntmode_t;
29 typedef uid_t ntfs_uid_t;
33 typedef gid_t ntfs_gid_t;
37 typedef __kernel_size_t ntfs_size_t;
41 typedef __kernel_time_t ntfs_time_t;
44 /* unicode character type */
47 typedef u16 ntfs_wchar_t;
52 typedef s64 ntfs_offset_t;
57 typedef u64 ntfs_time64_t;
60 * This is really signed long long. So we support only volumes up to 2Tb. This
61 * is ok as Win2k also only uses 32-bits to store clusters.
62 * Whatever you do keep this a SIGNED value or a lot of NTFS users with
63 * corrupted filesystems will lynch you! It causes massive fs corruption when
64 * unsigned due to the nature of many checks relying on being performed on
65 * signed quantities. (AIA)
67 #ifndef NTFS_CLUSTER_T
68 #define NTFS_CLUSTER_T
69 typedef s32 ntfs_cluster_t;
72 /* Definition of the NTFS in-memory inode structure. */
73 struct ntfs_inode_info {
74 struct ntfs_sb_info *vol;
75 unsigned long i_number; /* Should be really 48 bits. */
76 __u16 sequence_number; /* The current sequence number. */
77 unsigned char *attr; /* Array of the attributes. */
78 int attr_count; /* Size of attrs[]. */
79 struct ntfs_attribute *attrs;
80 int record_count; /* Size of records[]. */
81 int *records; /* Array of the record numbers of the $Mft whose
82 * attributes have been inserted in the inode. */
86 int clusters_per_record;