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 18typedef u8 ntfs_u8; 19typedef u16 ntfs_u16; 20typedef u32 ntfs_u32; 21typedef u64 ntfs_u64; 22typedef s8 ntfs_s8; 23typedef s16 ntfs_s16; 24typedef s32 ntfs_s32; 25typedef s64 ntfs_s64; 26#endif 27 28/* Unicode character type */ 29#ifndef NTFS_WCHAR_T 30#define NTFS_WCHAR_T 31typedef u16 ntfs_wchar_t; 32#endif 33/* File offset */ 34#ifndef NTFS_OFFSET_T 35#define NTFS_OFFSET_T 36typedef s64 ntfs_offset_t; 37#endif 38/* UTC */ 39#ifndef NTFS_TIME64_T 40#define NTFS_TIME64_T 41typedef 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 53typedef 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 66typedef __kernel_mode_t ntmode_t; 67#endif 68#ifndef NTFS_UID_T 69#define NTFS_UID_T 70typedef uid_t ntfs_uid_t; 71#endif 72#ifndef NTFS_GID_T 73#define NTFS_GID_T 74typedef gid_t ntfs_gid_t; 75#endif 76#ifndef NTFS_SIZE_T 77#define NTFS_SIZE_T 78typedef __kernel_size_t ntfs_size_t; 79#endif 80#ifndef NTFS_TIME_T 81#define NTFS_TIME_T 82typedef __kernel_time_t ntfs_time_t; 83#endif 84 85