1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * types.h - Defines for NTFS Linux kernel driver specific types. 4 * Part of the Linux-NTFS project. 5 * 6 * Copyright (c) 2001-2005 Anton Altaparmakov 7 */ 8 9 #ifndef _LINUX_NTFS_TYPES_H 10 #define _LINUX_NTFS_TYPES_H 11 12 #include <linux/types.h> 13 14 typedef __le16 le16; 15 typedef __le32 le32; 16 typedef __le64 le64; 17 typedef __u16 __bitwise sle16; 18 typedef __u32 __bitwise sle32; 19 typedef __u64 __bitwise sle64; 20 21 /* 2-byte Unicode character type. */ 22 typedef le16 ntfschar; 23 #define UCHAR_T_SIZE_BITS 1 24 25 /* 26 * Clusters are signed 64-bit values on NTFS volumes. We define two types, LCN 27 * and VCN, to allow for type checking and better code readability. 28 */ 29 typedef s64 VCN; 30 typedef sle64 leVCN; 31 typedef s64 LCN; 32 typedef sle64 leLCN; 33 34 /* 35 * The NTFS journal $LogFile uses log sequence numbers which are signed 64-bit 36 * values. We define our own type LSN, to allow for type checking and better 37 * code readability. 38 */ 39 typedef s64 LSN; 40 typedef sle64 leLSN; 41 42 /* 43 * The NTFS transaction log $UsnJrnl uses usn which are signed 64-bit values. 44 * We define our own type USN, to allow for type checking and better code 45 * readability. 46 */ 47 typedef s64 USN; 48 typedef sle64 leUSN; 49 50 typedef enum { 51 CASE_SENSITIVE = 0, 52 IGNORE_CASE = 1, 53 } IGNORE_CASE_BOOL; 54 55 #endif /* _LINUX_NTFS_TYPES_H */ 56