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 | |