1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun #ifndef CEPH_CRUSH_HASH_H 3*4882a593Smuzhiyun #define CEPH_CRUSH_HASH_H 4*4882a593Smuzhiyun 5*4882a593Smuzhiyun #ifdef __KERNEL__ 6*4882a593Smuzhiyun # include <linux/types.h> 7*4882a593Smuzhiyun #else 8*4882a593Smuzhiyun # include "crush_compat.h" 9*4882a593Smuzhiyun #endif 10*4882a593Smuzhiyun 11*4882a593Smuzhiyun #define CRUSH_HASH_RJENKINS1 0 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #define CRUSH_HASH_DEFAULT CRUSH_HASH_RJENKINS1 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun extern const char *crush_hash_name(int type); 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun extern __u32 crush_hash32(int type, __u32 a); 18*4882a593Smuzhiyun extern __u32 crush_hash32_2(int type, __u32 a, __u32 b); 19*4882a593Smuzhiyun extern __u32 crush_hash32_3(int type, __u32 a, __u32 b, __u32 c); 20*4882a593Smuzhiyun extern __u32 crush_hash32_4(int type, __u32 a, __u32 b, __u32 c, __u32 d); 21*4882a593Smuzhiyun extern __u32 crush_hash32_5(int type, __u32 a, __u32 b, __u32 c, __u32 d, 22*4882a593Smuzhiyun __u32 e); 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun #endif 25