xref: /linux/fs/ntfs/dir.h (revision cdd4dc3aebeab43a72ce0bc2b5bab6f0a80b97a5)
11e9ea7e0SNamjae Jeon /* SPDX-License-Identifier: GPL-2.0-or-later */
21e9ea7e0SNamjae Jeon /*
3*40796051SNamjae Jeon  * Defines for directory handling in NTFS Linux kernel driver.
41e9ea7e0SNamjae Jeon  *
51e9ea7e0SNamjae Jeon  * Copyright (c) 2002-2004 Anton Altaparmakov
61e9ea7e0SNamjae Jeon  */
71e9ea7e0SNamjae Jeon 
81e9ea7e0SNamjae Jeon #ifndef _LINUX_NTFS_DIR_H
91e9ea7e0SNamjae Jeon #define _LINUX_NTFS_DIR_H
101e9ea7e0SNamjae Jeon 
111e9ea7e0SNamjae Jeon #include "inode.h"
121e9ea7e0SNamjae Jeon 
131e9ea7e0SNamjae Jeon /*
141e9ea7e0SNamjae Jeon  * ntfs_name is used to return the file name to the caller of
151e9ea7e0SNamjae Jeon  * ntfs_lookup_inode_by_name() in order for the caller (namei.c::ntfs_lookup())
161e9ea7e0SNamjae Jeon  * to be able to deal with dcache aliasing issues.
171e9ea7e0SNamjae Jeon  */
18*40796051SNamjae Jeon struct ntfs_name {
19*40796051SNamjae Jeon 	u64 mref;
20*40796051SNamjae Jeon 	u8 type;
211e9ea7e0SNamjae Jeon 	u8 len;
22*40796051SNamjae Jeon 	__le16 name[];
23*40796051SNamjae Jeon } __packed;
241e9ea7e0SNamjae Jeon 
251e9ea7e0SNamjae Jeon /* The little endian Unicode string $I30 as a global constant. */
26*40796051SNamjae Jeon extern __le16 I30[5];
271e9ea7e0SNamjae Jeon 
28*40796051SNamjae Jeon u64 ntfs_lookup_inode_by_name(struct ntfs_inode *dir_ni,
29*40796051SNamjae Jeon 		const __le16 *uname, const int uname_len, struct ntfs_name **res);
30*40796051SNamjae Jeon int ntfs_check_empty_dir(struct ntfs_inode *ni, struct mft_record *ni_mrec);
311e9ea7e0SNamjae Jeon 
321e9ea7e0SNamjae Jeon #endif /* _LINUX_NTFS_FS_DIR_H */
33