11e9ea7e0SNamjae Jeon /* SPDX-License-Identifier: GPL-2.0-or-later */ 21e9ea7e0SNamjae Jeon /* 3*40796051SNamjae Jeon * Defines for NTFS kernel collation handling. 41e9ea7e0SNamjae Jeon * 51e9ea7e0SNamjae Jeon * Copyright (c) 2004 Anton Altaparmakov 6*40796051SNamjae Jeon * 7*40796051SNamjae Jeon * Part of this file is based on code from the NTFS-3G. 8*40796051SNamjae Jeon * and is copyrighted by the respective authors below: 9*40796051SNamjae Jeon * Copyright (c) 2004 Anton Altaparmakov 10*40796051SNamjae Jeon * Copyright (c) 2005 Yura Pakhuchiy 111e9ea7e0SNamjae Jeon */ 121e9ea7e0SNamjae Jeon 131e9ea7e0SNamjae Jeon #ifndef _LINUX_NTFS_COLLATE_H 141e9ea7e0SNamjae Jeon #define _LINUX_NTFS_COLLATE_H 151e9ea7e0SNamjae Jeon 161e9ea7e0SNamjae Jeon #include "volume.h" 171e9ea7e0SNamjae Jeon 18*40796051SNamjae Jeon static inline bool ntfs_is_collation_rule_supported(__le32 cr) 19*40796051SNamjae Jeon { 201e9ea7e0SNamjae Jeon int i; 211e9ea7e0SNamjae Jeon 22*40796051SNamjae Jeon if (unlikely(cr != COLLATION_BINARY && cr != COLLATION_NTOFS_ULONG && 23*40796051SNamjae Jeon cr != COLLATION_FILE_NAME) && cr != COLLATION_NTOFS_ULONGS) 241e9ea7e0SNamjae Jeon return false; 251e9ea7e0SNamjae Jeon i = le32_to_cpu(cr); 261e9ea7e0SNamjae Jeon if (likely(((i >= 0) && (i <= 0x02)) || 271e9ea7e0SNamjae Jeon ((i >= 0x10) && (i <= 0x13)))) 281e9ea7e0SNamjae Jeon return true; 291e9ea7e0SNamjae Jeon return false; 301e9ea7e0SNamjae Jeon } 311e9ea7e0SNamjae Jeon 32*40796051SNamjae Jeon int ntfs_collate(struct ntfs_volume *vol, __le32 cr, 33*40796051SNamjae Jeon const void *data1, const u32 data1_len, 34*40796051SNamjae Jeon const void *data2, const u32 data2_len); 351e9ea7e0SNamjae Jeon 361e9ea7e0SNamjae Jeon #endif /* _LINUX_NTFS_COLLATE_H */ 37