uatomic/x86: Remove redundant memory barriers
[urcu.git] / doc / examples / rculfhash / jhash.h
index 673989df4ca42f14802944d39792cad98aa54368..23812ce246d6c0fb4c8c77bc384d46dfcf44bfd9 100644 (file)
@@ -1,21 +1,16 @@
+// SPDX-FileCopyrightText: 2009-2012 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+//
+// SPDX-License-Identifier: MIT
+
 #ifndef _JHASH_H
 #define _JHASH_H
 
+#if defined(__FreeBSD__)
+#include <sys/endian.h>
+#endif
+
 /*
- * jhash.h
- *
  * Example hash function.
- *
- * Copyright 2009-2012 - Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program for any
- * purpose,  provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is
- * granted, provided the above notices are retained, and a notice that
- * the code was modified is included with the above copyright notice.
  */
 
 /*
@@ -112,7 +107,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 +221,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;
This page took 0.023737 seconds and 4 git commands to generate.