1 /*
2 * ntfstypes.h - This file defines four things:
3 * - Generic platform independent fixed-size types (e.g. ntfs_u32).
4 * - Specific fixed-size types (e.g. ntfs_offset_t).
5 * - Macros that read and write those types from and to byte arrays.
6 * - Types derived from OS specific ones.
7 *
8 * Copyright (C) 1996, 1998, 1999 Martin von Löwis
9 * Copyright (C) 2001 Anton Altaparmakov (AIA)
10 */
11 #include <linux/fs.h>
12 #include "ntfsendian.h"
13 #include <asm/types.h>
14
15 /* Integral types */
16 #ifndef NTFS_INTEGRAL_TYPES
17 #define NTFS_INTEGRAL_TYPES
18 typedef u8 ntfs_u8;
19 typedef u16 ntfs_u16;
20 typedef u32 ntfs_u32;
21 typedef u64 ntfs_u64;
22 typedef s8 ntfs_s8;
23 typedef s16 ntfs_s16;
24 typedef s32 ntfs_s32;
25 typedef s64 ntfs_s64;
26 #endif
27
28 /* Unicode character type */
29 #ifndef NTFS_WCHAR_T
30 #define NTFS_WCHAR_T
31 typedef u16 ntfs_wchar_t;
32 #endif
33 /* File offset */
34 #ifndef NTFS_OFFSET_T
35 #define NTFS_OFFSET_T
36 typedef s64 ntfs_offset_t;
37 #endif
38 /* UTC */
39 #ifndef NTFS_TIME64_T
40 #define NTFS_TIME64_T
41 typedef u64 ntfs_time64_t;
42 #endif
43 /*
44 * This is really signed long long. So we support only volumes up to 2Tb. This
45 * is ok as Win2k also only uses 32-bits to store clusters.
46 * Whatever you do keep this a SIGNED value or a lot of NTFS users with
47 * corrupted filesystems will lynch you! It causes massive fs corruption when
48 * unsigned due to the nature of many checks relying on being performed on
49 * signed quantities. (AIA)
50 */
51 #ifndef NTFS_CLUSTER_T
52 #define NTFS_CLUSTER_T
53 typedef s32 ntfs_cluster_t;
54 #endif
55
56 /* Architecture independent macros. */
57
58 /* PUTU32 would not clear all bytes. */
59 #define NTFS_PUTINUM(p,i) NTFS_PUTU64(p, i->i_number); \
60 NTFS_PUTU16(((char*)p) + 6, i->sequence_number)
61
62 /* System dependent types. */
63 #include <asm/posix_types.h>
64 #ifndef NTMODE_T
65 #define NTMODE_T
66 typedef __kernel_mode_t ntmode_t;
67 #endif
68 #ifndef NTFS_UID_T
69 #define NTFS_UID_T
70 typedef uid_t ntfs_uid_t;
71 #endif
72 #ifndef NTFS_GID_T
73 #define NTFS_GID_T
74 typedef gid_t ntfs_gid_t;
75 #endif
76 #ifndef NTFS_SIZE_T
77 #define NTFS_SIZE_T
78 typedef __kernel_size_t ntfs_size_t;
79 #endif
80 #ifndef NTFS_TIME_T
81 #define NTFS_TIME_T
82 typedef __kernel_time_t ntfs_time_t;
83 #endif
84
Cache object: 23acb2b43a24059b85bb7bd9983543b4
|