1 /* 2 * types.h - Defines for NTFS Linux kernel driver specific types. 3 * Part of the Linux-NTFS project. 4 * 5 * Copyright (c) 2001-2005 Anton Altaparmakov 6 * 7 * This program/include file is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as published 9 * by the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program/include file is distributed in the hope that it will be 13 * useful, but WITHOUT ANY WARRANTY; without even the implied warranty 14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program (in the main directory of the Linux-NTFS 19 * distribution in the file COPYING); if not, write to the Free Software 20 * Foundation,Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 */ 22 23 #ifndef _LINUX_NTFS_TYPES_H 24 #define _LINUX_NTFS_TYPES_H 25 26 #include <linux/types.h> 27 28 typedef __le16 le16; 29 typedef __le32 le32; 30 typedef __le64 le64; 31 typedef __u16 __bitwise sle16; 32 typedef __u32 __bitwise sle32; 33 typedef __u64 __bitwise sle64; 34 35 /* 2-byte Unicode character type. */ 36 typedef le16 ntfschar; 37 #define UCHAR_T_SIZE_BITS 1 38 39 /* 40 * Clusters are signed 64-bit values on NTFS volumes. We define two types, LCN 41 * and VCN, to allow for type checking and better code readability. 42 */ 43 typedef s64 VCN; 44 typedef sle64 leVCN; 45 typedef s64 LCN; 46 typedef sle64 leLCN; 47 48 /* 49 * The NTFS journal $LogFile uses log sequence numbers which are signed 64-bit 50 * values. We define our own type LSN, to allow for type checking and better 51 * code readability. 52 */ 53 typedef s64 LSN; 54 typedef sle64 leLSN; 55 56 /* 57 * The NTFS transaction log $UsnJrnl uses usn which are signed 64-bit values. 58 * We define our own type USN, to allow for type checking and better code 59 * readability. 60 */ 61 typedef s64 USN; 62 typedef sle64 leUSN; 63 64 typedef enum { 65 CASE_SENSITIVE = 0, 66 IGNORE_CASE = 1, 67 } IGNORE_CASE_BOOL; 68 69 #endif /* _LINUX_NTFS_TYPES_H */ 70