ACK On 02/13/2012 07:18 PM, Steven Dake wrote: > We would use libqb for hashing now if we needed hashing. > cpg no longer uses jhash.h. > > Signed-off-by: Steven Dake <sdake@xxxxxxxxxx> > --- > exec/cpg.c | 1 - > include/Makefile.am | 2 +- > include/corosync/jhash.h | 146 ---------------------------------------------- > 3 files changed, 1 insertions(+), 148 deletions(-) > delete mode 100644 include/corosync/jhash.h > > diff --git a/exec/cpg.c b/exec/cpg.c > index 71ac908..b884e9b 100644 > --- a/exec/cpg.c > +++ b/exec/cpg.c > @@ -61,7 +61,6 @@ > #include <qb/qbipc_common.h> > #include <corosync/corodefs.h> > #include <corosync/list.h> > -#include <corosync/jhash.h> > #include <corosync/logsys.h> > #include <corosync/coroapi.h> > > diff --git a/include/Makefile.am b/include/Makefile.am > index b5ef35b..ccd594f 100644 > --- a/include/Makefile.am > +++ b/include/Makefile.am > @@ -35,7 +35,7 @@ CS_H = hdb.h cpg.h cfg.h evs.h corodefs.h \ > corotypes.h quorum.h votequorum.h sam.h cmap.h > > CS_INTERNAL_H = ipc_cfg.h ipc_cpg.h ipc_evs.h ipc_pload.h ipc_quorum.h \ > - jhash.h pload.h quorum.h sq.h ipc_votequorum.h ipc_cmap.h \ > + pload.h quorum.h sq.h ipc_votequorum.h ipc_cmap.h \ > logsys.h coroapi.h icmap.h mar_gen.h list.h swab.h cs_config.h > > TOTEM_H = totem.h totemip.h totempg.h > diff --git a/include/corosync/jhash.h b/include/corosync/jhash.h > deleted file mode 100644 > index c5b4ed5..0000000 > --- a/include/corosync/jhash.h > +++ /dev/null > @@ -1,146 +0,0 @@ > -#ifndef _LINUX_JHASH_H > -#define _LINUX_JHASH_H > - > -/* jhash.h: Jenkins hash support. > - * > - * Copyright (C) 1996 Bob Jenkins (bob_jenkins@xxxxxxxxxxxxxxxx) > - * > - * http://burtleburtle.net/bob/hash/ > - * > - * These are the credits from Bob's sources: > - * > - * lookup2.c, by Bob Jenkins, December 1996, Public Domain. > - * hash(), hash2(), hash3, and mix() are externally useful functions. > - * Routines to test the hash are included if SELF_TEST is defined. > - * You can use this free for any purpose. It has no warranty. > - * > - * Copyright (C) 2003 David S. Miller (davem@xxxxxxxxxx) > - * > - * I've modified Bob's hash to be useful in the Linux kernel, and > - * any bugs present are surely my fault. -DaveM > - */ > - > -typedef uint32_t u32; > -typedef uint8_t u8; > - > -/* NOTE: Arguments are modified. */ > -#define __jhash_mix(a, b, c) \ > -{ \ > - a -= b; a -= c; a ^= (c>>13); \ > - b -= c; b -= a; b ^= (a<<8); \ > - c -= a; c -= b; c ^= (b>>13); \ > - a -= b; a -= c; a ^= (c>>12); \ > - b -= c; b -= a; b ^= (a<<16); \ > - c -= a; c -= b; c ^= (b>>5); \ > - a -= b; a -= c; a ^= (c>>3); \ > - b -= c; b -= a; b ^= (a<<10); \ > - c -= a; c -= b; c ^= (b>>15); \ > -} > - > -/* The golden ration: an arbitrary value */ > -#define JHASH_GOLDEN_RATIO 0x9e3779b9 > - > -/* The most generic version, hashes an arbitrary sequence > - * of bytes. No alignment or length assumptions are made about > - * the input key. > - */ > -static inline u32 jhash(const void *key, u32 length, u32 initval) > -{ > - u32 a, b, c, len; > - const u8 *k = key; > - > - len = length; > - a = b = JHASH_GOLDEN_RATIO; > - c = initval; > - > - while (len >= 12) { > - a += (k[0] +((u32)k[1]<<8) +((u32)k[2]<<16) +((u32)k[3]<<24)); > - b += (k[4] +((u32)k[5]<<8) +((u32)k[6]<<16) +((u32)k[7]<<24)); > - c += (k[8] +((u32)k[9]<<8) +((u32)k[10]<<16)+((u32)k[11]<<24)); > - > - __jhash_mix(a,b,c); > - > - k += 12; > - len -= 12; > - } > - > - c += length; > - switch (len) { > - case 11: c += ((u32)k[10]<<24); > - case 10: c += ((u32)k[9]<<16); > - case 9 : c += ((u32)k[8]<<8); > - case 8 : b += ((u32)k[7]<<24); > - case 7 : b += ((u32)k[6]<<16); > - case 6 : b += ((u32)k[5]<<8); > - case 5 : b += k[4]; > - case 4 : a += ((u32)k[3]<<24); > - case 3 : a += ((u32)k[2]<<16); > - case 2 : a += ((u32)k[1]<<8); > - case 1 : a += k[0]; > - }; > - > - __jhash_mix(a,b,c); > - > - return c; > -} > - > -/* A special optimized version that handles 1 or more of u32s. > - * The length parameter here is the number of u32s in the key. > - */ > -static inline u32 jhash2(const u32 *k, u32 length, u32 initval) > -{ > - u32 a, b, c, len; > - > - a = b = JHASH_GOLDEN_RATIO; > - c = initval; > - len = length; > - > - while (len >= 3) { > - a += k[0]; > - b += k[1]; > - c += k[2]; > - __jhash_mix(a, b, c); > - k += 3; len -= 3; > - } > - > - c += length * 4; > - > - switch (len) { > - case 2 : b += k[1]; > - case 1 : a += k[0]; > - }; > - > - __jhash_mix(a,b,c); > - > - return c; > -} > - > - > -/* A special ultra-optimized versions that knows they are hashing exactly > - * 3, 2 or 1 word(s). > - * > - * NOTE: In partilar the "c += length; __jhash_mix(a,b,c);" normally > - * done at the end is not done here. > - */ > -static inline u32 jhash_3words(u32 a, u32 b, u32 c, u32 initval) > -{ > - a += JHASH_GOLDEN_RATIO; > - b += JHASH_GOLDEN_RATIO; > - c += initval; > - > - __jhash_mix(a, b, c); > - > - return c; > -} > - > -static inline u32 jhash_2words(u32 a, u32 b, u32 initval) > -{ > - return jhash_3words(a, b, 0, initval); > -} > - > -static inline u32 jhash_1word(u32 a, u32 initval) > -{ > - return jhash_3words(a, 0, 0, initval); > -} > - > -#endif /* _LINUX_JHASH_H */ _______________________________________________ discuss mailing list discuss@xxxxxxxxxxxx http://lists.corosync.org/mailman/listinfo/discuss