24 #ifndef _LINUX_NTFS_LAYOUT_H
25 #define _LINUX_NTFS_LAYOUT_H
27 #include <linux/types.h>
28 #include <linux/bitops.h>
29 #include <linux/list.h>
30 #include <asm/byteorder.h>
35 #define magicNTFS cpu_to_le64(0x202020205346544eULL)
72 BIOS_PARAMETER_BLOCK
bpb;
134 static inline bool __ntfs_is_magic(
le32 x, NTFS_RECORD_TYPE
r)
138 #define ntfs_is_magic(x, m) __ntfs_is_magic(x, magic_##m)
140 static inline bool __ntfs_is_magicp(
le32 *
p, NTFS_RECORD_TYPE
r)
144 #define ntfs_is_magicp(p, m) __ntfs_is_magicp(p, magic_##m)
149 #define ntfs_is_file_record(x) ( ntfs_is_magic (x, FILE) )
150 #define ntfs_is_file_recordp(p) ( ntfs_is_magicp(p, FILE) )
151 #define ntfs_is_mft_record(x) ( ntfs_is_file_record (x) )
152 #define ntfs_is_mft_recordp(p) ( ntfs_is_file_recordp(p) )
153 #define ntfs_is_indx_record(x) ( ntfs_is_magic (x, INDX) )
154 #define ntfs_is_indx_recordp(p) ( ntfs_is_magicp(p, INDX) )
155 #define ntfs_is_hole_record(x) ( ntfs_is_magic (x, HOLE) )
156 #define ntfs_is_hole_recordp(p) ( ntfs_is_magicp(p, HOLE) )
158 #define ntfs_is_rstr_record(x) ( ntfs_is_magic (x, RSTR) )
159 #define ntfs_is_rstr_recordp(p) ( ntfs_is_magicp(p, RSTR) )
160 #define ntfs_is_rcrd_record(x) ( ntfs_is_magic (x, RCRD) )
161 #define ntfs_is_rcrd_recordp(p) ( ntfs_is_magicp(p, RCRD) )
163 #define ntfs_is_chkd_record(x) ( ntfs_is_magic (x, CHKD) )
164 #define ntfs_is_chkd_recordp(p) ( ntfs_is_magicp(p, CHKD) )
166 #define ntfs_is_baad_record(x) ( ntfs_is_magic (x, BAAD) )
167 #define ntfs_is_baad_recordp(p) ( ntfs_is_magicp(p, BAAD) )
169 #define ntfs_is_empty_record(x) ( ntfs_is_magic (x, empty) )
170 #define ntfs_is_empty_recordp(p) ( ntfs_is_magicp(p, empty) )
300 #define MFT_REF_MASK_CPU 0x0000ffffffffffffULL
301 #define MFT_REF_MASK_LE cpu_to_le64(MFT_REF_MASK_CPU)
306 #define MK_MREF(m, s) ((MFT_REF)(((MFT_REF)(s) << 48) | \
307 ((MFT_REF)(m) & MFT_REF_MASK_CPU)))
308 #define MK_LE_MREF(m, s) cpu_to_le64(MK_MREF(m, s))
310 #define MREF(x) ((unsigned long)((x) & MFT_REF_MASK_CPU))
311 #define MSEQNO(x) ((u16)(((x) >> 48) & 0xffff))
312 #define MREF_LE(x) ((unsigned long)(le64_to_cpu(x) & MFT_REF_MASK_CPU))
313 #define MSEQNO_LE(x) ((u16)((le64_to_cpu(x) >> 48) & 0xffff))
315 #define IS_ERR_MREF(x) (((x) & 0x0000800000000000ULL) ? true : false)
316 #define ERR_MREF(x) ((u64)((s64)(x)))
317 #define MREF_ERR(x) ((int)((s64)(x)))
329 NTFS_RECORD_TYPE
magic;
398 NTFS_RECORD_TYPE
magic;
422 MFT_RECORD_FLAGS
flags;
427 le32 bytes_allocated;
430 leMFT_REF base_mft_record;
442 le16 next_attr_instance;
1007 #define MAXIMUM_FILE_NAME_LENGTH 255
1057 leMFT_REF parent_directory;
1059 sle64 creation_time;
1060 sle64 last_data_change_time;
1062 sle64 last_mft_change_time;
1064 sle64 last_access_time;
1082 FILE_ATTR_FLAGS file_attributes;
1099 FILE_NAME_TYPE_FLAGS file_name_type;
1133 leMFT_REF mft_reference;
1165 u8 extended_info[48];
1743 }
__attribute__ ((__packed__)) SECURITY_DESCRIPTOR_RELATIVE;
1755 SECURITY_DESCRIPTOR_CONTROL
control;
1866 SECURITY_DESCRIPTOR_RELATIVE
sid;
2025 COLLATION_RULE collation_rule;
2054 NTFS_RECORD_TYPE
magic;
2218 INDEX_ENTRY_FLAGS flags;
2253 INDEX_ENTRY_FLAGS
flags;