Import 2.3.25pre1
[davej-history.git] / include / linux / ntfs_fs_i.h
blobcab27748c86a08be08f92691c8c79925894d6750
1 #ifndef _LINUX_NTFS_FS_I_H
2 #define _LINUX_NTFS_FS_I_H
4 /* Forward declarations, to keep number of mutual includes low */
5 struct ntfs_attribute;
6 struct ntfs_sb_info;
8 /* Duplicate definitions from ntfs/ntfstypes.h */
9 #ifndef NTFS_INTEGRAL_TYPES
10 #define NTFS_INTEGRAL_TYPES
11 typedef u8 ntfs_u8;
12 typedef u16 ntfs_u16;
13 typedef u32 ntfs_u32;
14 typedef u64 ntfs_u64;
15 typedef s8 ntfs_s8;
16 typedef s16 ntfs_s16;
17 typedef s32 ntfs_s32;
18 typedef s64 ntfs_s64;
19 #endif
21 #ifndef NTMODE_T
22 #define NTMODE_T
23 typedef __kernel_mode_t ntmode_t;
24 #endif
25 #ifndef NTFS_UID_T
26 #define NTFS_UID_T
27 typedef __kernel_uid_t ntfs_uid_t;
28 #endif
29 #ifndef NTFS_GID_T
30 #define NTFS_GID_T
31 typedef __kernel_gid_t ntfs_gid_t;
32 #endif
33 #ifndef NTFS_SIZE_T
34 #define NTFS_SIZE_T
35 typedef __kernel_size_t ntfs_size_t;
36 #endif
37 #ifndef NTFS_TIME_T
38 #define NTFS_TIME_T
39 typedef __kernel_time_t ntfs_time_t;
40 #endif
42 /* unicode character type */
43 #ifndef NTFS_WCHAR_T
44 #define NTFS_WCHAR_T
45 typedef unsigned short ntfs_wchar_t;
46 #endif
47 /* file offset */
48 #ifndef NTFS_OFFSET_T
49 #define NTFS_OFFSET_T
50 typedef unsigned long long ntfs_offset_t;
51 #endif
52 /* UTC */
53 #ifndef NTFS_TIME64_T
54 #define NTFS_TIME64_T
55 typedef unsigned long long ntfs_time64_t;
56 #endif
57 /* This is really unsigned long long. So we support only volumes up to 2 TB */
58 #ifndef NTFS_CLUSTER_T
59 #define NTFS_CLUSTER_T
60 typedef unsigned int ntfs_cluster_t;
61 #endif
63 /* Definition of NTFS in-memory inode structure */
64 struct ntfs_inode_info{
65 struct ntfs_sb_info *vol;
66 int i_number; /* should be really 48 bits */
67 unsigned sequence_number;
68 unsigned char* attr; /* array of the attributes */
69 int attr_count; /* size of attrs[] */
70 struct ntfs_attribute *attrs;
71 int record_count; /* size of records[] */
72 /* array of the record numbers of the MFT
73 whose attributes have been inserted in the inode */
74 int *records;
75 union{
76 struct{
77 int recordsize;
78 int clusters_per_record;
79 }index;
80 } u;
83 #endif