X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=doc%2Fexamples%2Frculfhash%2Fjhash.h;h=f50a0dac64216601a1c75a8bebc5ef411e085b01;hp=673989df4ca42f14802944d39792cad98aa54368;hb=f99c6e92aaa1582e6cd19d93d44d91d968f39aa7;hpb=f7e7a1b86b06da9d2cef60e43039fa8c8ae6479a diff --git a/doc/examples/rculfhash/jhash.h b/doc/examples/rculfhash/jhash.h index 673989d..f50a0da 100644 --- a/doc/examples/rculfhash/jhash.h +++ b/doc/examples/rculfhash/jhash.h @@ -1,6 +1,10 @@ #ifndef _JHASH_H #define _JHASH_H +#if defined(__FreeBSD__) +#include +#endif + /* * jhash.h * @@ -112,7 +116,7 @@ uint32_t hashlittle(const void *key, size_t length, uint32_t initval) * rest of the string. Every machine with memory protection I've seen * does it on word boundaries, so is OK with this. But VALGRIND will * still catch it and complain. The masking trick does make the hash - * noticably faster for short strings (like English words). + * noticeably faster for short strings (like English words). */ #ifndef VALGRIND @@ -226,17 +230,17 @@ uint32_t hashlittle(const void *key, size_t length, uint32_t initval) /*-------------------------------- last block: affect all 32 bits of (c) */ switch (length) { /* all the case statements fall through */ - 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]; break; case 0 : return c;