Fio 3.15
[fio.git] / hash.h
diff --git a/hash.h b/hash.h
index 1d7608beb40500dba75541f374b815f88672eadb..66dd3d6916ea5b1386948c2d2a661d8bce59abf9 100644 (file)
--- a/hash.h
+++ b/hash.h
 #define GOLDEN_RATIO_32 0x61C88647
 #define GOLDEN_RATIO_64 0x61C8864680B583EBull
 
-static inline unsigned long __hash_long(unsigned long val)
+static inline unsigned long __hash_long(uint64_t val)
 {
-       unsigned long hash = val;
+       uint64_t hash = val;
 
 #if BITS_PER_LONG == 64
        hash *= GOLDEN_RATIO_64;
 #else
        /*  Sigh, gcc can't optimise this alone like it does for 32 bits. */
-       unsigned long n = hash;
+       uint64_t n = hash;
        n <<= 18;
        hash -= n;
        n <<= 33;
@@ -141,17 +141,17 @@ static inline uint32_t jhash(const void *key, uint32_t length, uint32_t initval)
        /* Last block: affect all 32 bits of (c) */
        /* All the case statements fall through */
        switch (length) {
-       case 12: c += (uint32_t) k[11] << 24;
-       case 11: c += (uint32_t) k[10] << 16;
-       case 10: c += (uint32_t) k[9] << 8;
-       case 9:  c += k[8];
-       case 8:  b += (uint32_t) k[7] << 24;
-       case 7:  b += (uint32_t) k[6] << 16;
-       case 6:  b += (uint32_t) k[5] << 8;
-       case 5:  b += k[4];
-       case 4:  a += (uint32_t) k[3] << 24;
-       case 3:  a += (uint32_t) k[2] << 16;
-       case 2:  a += (uint32_t) k[1] << 8;
+       case 12: c += (uint32_t) k[11] << 24;   /* fall through */
+       case 11: c += (uint32_t) k[10] << 16;   /* fall through */
+       case 10: c += (uint32_t) k[9] << 8;     /* fall through */
+       case 9:  c += k[8];                     /* fall through */
+       case 8:  b += (uint32_t) k[7] << 24;    /* fall through */
+       case 7:  b += (uint32_t) k[6] << 16;    /* fall through */
+       case 6:  b += (uint32_t) k[5] << 8;     /* fall through */
+       case 5:  b += k[4];                     /* fall through */
+       case 4:  a += (uint32_t) k[3] << 24;    /* fall through */
+       case 3:  a += (uint32_t) k[2] << 16;    /* fall through */
+       case 2:  a += (uint32_t) k[1] << 8;     /* fall through */
        case 1:  a += k[0];
                 __jhash_final(a, b, c);
        case 0: /* Nothing left to add */