xref: /linux/fs/ntfs/dir.h (revision 1e9ea7e04472d4e5e12e58c881eaacfb3e49b669)
1*1e9ea7e0SNamjae Jeon /* SPDX-License-Identifier: GPL-2.0-or-later */
2*1e9ea7e0SNamjae Jeon /*
3*1e9ea7e0SNamjae Jeon  * dir.h - Defines for directory handling in NTFS Linux kernel driver. Part of
4*1e9ea7e0SNamjae Jeon  *	   the Linux-NTFS project.
5*1e9ea7e0SNamjae Jeon  *
6*1e9ea7e0SNamjae Jeon  * Copyright (c) 2002-2004 Anton Altaparmakov
7*1e9ea7e0SNamjae Jeon  */
8*1e9ea7e0SNamjae Jeon 
9*1e9ea7e0SNamjae Jeon #ifndef _LINUX_NTFS_DIR_H
10*1e9ea7e0SNamjae Jeon #define _LINUX_NTFS_DIR_H
11*1e9ea7e0SNamjae Jeon 
12*1e9ea7e0SNamjae Jeon #include "layout.h"
13*1e9ea7e0SNamjae Jeon #include "inode.h"
14*1e9ea7e0SNamjae Jeon #include "types.h"
15*1e9ea7e0SNamjae Jeon 
16*1e9ea7e0SNamjae Jeon /*
17*1e9ea7e0SNamjae Jeon  * ntfs_name is used to return the file name to the caller of
18*1e9ea7e0SNamjae Jeon  * ntfs_lookup_inode_by_name() in order for the caller (namei.c::ntfs_lookup())
19*1e9ea7e0SNamjae Jeon  * to be able to deal with dcache aliasing issues.
20*1e9ea7e0SNamjae Jeon  */
21*1e9ea7e0SNamjae Jeon typedef struct {
22*1e9ea7e0SNamjae Jeon 	MFT_REF mref;
23*1e9ea7e0SNamjae Jeon 	FILE_NAME_TYPE_FLAGS type;
24*1e9ea7e0SNamjae Jeon 	u8 len;
25*1e9ea7e0SNamjae Jeon 	ntfschar name[0];
26*1e9ea7e0SNamjae Jeon } __attribute__ ((__packed__)) ntfs_name;
27*1e9ea7e0SNamjae Jeon 
28*1e9ea7e0SNamjae Jeon /* The little endian Unicode string $I30 as a global constant. */
29*1e9ea7e0SNamjae Jeon extern ntfschar I30[5];
30*1e9ea7e0SNamjae Jeon 
31*1e9ea7e0SNamjae Jeon extern MFT_REF ntfs_lookup_inode_by_name(ntfs_inode *dir_ni,
32*1e9ea7e0SNamjae Jeon 		const ntfschar *uname, const int uname_len, ntfs_name **res);
33*1e9ea7e0SNamjae Jeon 
34*1e9ea7e0SNamjae Jeon #endif /* _LINUX_NTFS_FS_DIR_H */
35