summaryrefslogtreecommitdiff
path: root/fs/ceph/crush/hash.h
diff options
context:
space:
mode:
authorSage Weil <sage@newdream.net>2009-11-07 20:18:22 -0800
committerSage Weil <sage@newdream.net>2009-11-07 20:18:22 -0800
commitfb690390e305ea51e1883b105c7d3c52d7100ba5 (patch)
treec099a71133225b1d22bba976e93dc6ab92a08986 /fs/ceph/crush/hash.h
parent1654dd0cf5ee1827322aca156af7d96d757201c7 (diff)
ceph: make CRUSH hash function a bucket property
Make the integer hash function a property of the bucket it is used on. This allows us to gracefully add support for new hash functions without starting from scatch. Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'fs/ceph/crush/hash.h')
-rw-r--r--fs/ceph/crush/hash.h19
1 files changed, 12 insertions, 7 deletions
diff --git a/fs/ceph/crush/hash.h b/fs/ceph/crush/hash.h
index 9ce89f85dc7d..ff48e110e4bb 100644
--- a/fs/ceph/crush/hash.h
+++ b/fs/ceph/crush/hash.h
@@ -1,12 +1,17 @@
#ifndef _CRUSH_HASH_H
#define _CRUSH_HASH_H
-extern __u32 crush_hash32(__u32 a);
-extern __u32 crush_hash32_2(__u32 a, __u32 b);
-extern __u32 crush_hash32_3(__u32 a, __u32 b, __u32 c);
-extern __u32 crush_hash32_4(__u32 a, __u32 b, __u32 c,
- __u32 d);
-extern __u32 crush_hash32_5(__u32 a, __u32 b, __u32 c,
- __u32 d, __u32 e);
+#define CRUSH_HASH_RJENKINS1 0
+
+#define CRUSH_HASH_DEFAULT CRUSH_HASH_RJENKINS1
+
+extern const char *crush_hash_name(int type);
+
+extern __u32 crush_hash32(int type, __u32 a);
+extern __u32 crush_hash32_2(int type, __u32 a, __u32 b);
+extern __u32 crush_hash32_3(int type, __u32 a, __u32 b, __u32 c);
+extern __u32 crush_hash32_4(int type, __u32 a, __u32 b, __u32 c, __u32 d);
+extern __u32 crush_hash32_5(int type, __u32 a, __u32 b, __u32 c, __u32 d,
+ __u32 e);
#endif