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