[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [RFC PATCH v2 02/10] Jhash: add linux kernel jhashtable
From: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [RFC PATCH v2 02/10] Jhash: add linux kernel jhashtable in qemu |
Date: |
Mon, 11 Jan 2016 12:50:10 +0000 |
User-agent: |
Mutt/1.5.24 (2015-08-30) |
* Zhang Chen (address@hidden) wrote:
>
>
> On 01/08/2016 08:08 PM, Dr. David Alan Gilbert wrote:
> >* Zhang Chen (address@hidden) wrote:
> >>From: zhangchen <address@hidden>
> >>
> >>Jhash used by colo-proxy to save and lookup
> >>net connection info
> >>
> >>Signed-off-by: zhangchen <address@hidden>
> >>Signed-off-by: zhanghailiang <address@hidden>
> >>---
> >> include/qemu/jhash.h | 61
> >> ++++++++++++++++++++++++++++++++++++++++++++++++++++
> >> 1 file changed, 61 insertions(+)
> >> create mode 100644 include/qemu/jhash.h
> >>
> >>diff --git a/include/qemu/jhash.h b/include/qemu/jhash.h
> >>new file mode 100644
> >>index 0000000..5b82d02
> >>--- /dev/null
> >>+++ b/include/qemu/jhash.h
> >>@@ -0,0 +1,61 @@
> >>+/* jhash.h: Jenkins hash support.
> >>+ *
> >>+ * Copyright (C) 2006. Bob Jenkins (address@hidden)
> >>+ *
> >>+ * http://burtleburtle.net/bob/hash/
> >>+ *
> >>+ * These are the credits from Bob's sources:
> >>+ *
> >>+ * lookup3.c, by Bob Jenkins, May 2006, Public Domain.
> >>+ *
> >>+ * These are functions for producing 32-bit hashes for hash table lookup.
> >>+ * hashword(), hashlittle(), hashlittle2(), hashbig(), mix(), and final()
> >>+ * 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's in
> >>+ * the public domain. It has no warranty.
> >>+ *
> >>+ * Copyright (C) 2009-2010 Jozsef Kadlecsik (address@hidden)
> >>+ *
> >>+ * I've modified Bob's hash to be useful in the Linux kernel, and
> >>+ * any bugs present are my fault.
> >>+ * Jozsef
> >>+ */
> >>+
> >>+#ifndef QEMU_JHASH_H__
> >>+#define QEMU_JHASH_H__
> >>+
> >>+#include "qemu/bitopt.h"
> >That does not build, the header in qemu is bitop*s*.h.
> >
> >Dave
>
> I'm very sorry for it, fix it to
>
> #include "qemu/bitopts.h"
No! It's:
#include "qemu/bitops.h"
Please at least build test this code!
Dave
>
> Thanks
> zhangchen
>
>
> >>+
> >>+/*
> >>+ * hashtable relation copy from linux kernel jhash
> >>+ */
> >>+
> >>+/* __jhash_mix -- mix 3 32-bit values reversibly. */
> >>+#define __jhash_mix(a, b, c) \
> >>+{ \
> >>+ a -= c; a ^= rol32(c, 4); c += b; \
> >>+ b -= a; b ^= rol32(a, 6); a += c; \
> >>+ c -= b; c ^= rol32(b, 8); b += a; \
> >>+ a -= c; a ^= rol32(c, 16); c += b; \
> >>+ b -= a; b ^= rol32(a, 19); a += c; \
> >>+ c -= b; c ^= rol32(b, 4); b += a; \
> >>+}
> >>+
> >>+/* __jhash_final - final mixing of 3 32-bit values (a,b,c) into c */
> >>+#define __jhash_final(a, b, c) \
> >>+{ \
> >>+ c ^= b; c -= rol32(b, 14); \
> >>+ a ^= c; a -= rol32(c, 11); \
> >>+ b ^= a; b -= rol32(a, 25); \
> >>+ c ^= b; c -= rol32(b, 16); \
> >>+ a ^= c; a -= rol32(c, 4); \
> >>+ b ^= a; b -= rol32(a, 14); \
> >>+ c ^= b; c -= rol32(b, 24); \
> >>+}
> >>+
> >>+/* An arbitrary initial parameter */
> >>+#define JHASH_INITVAL 0xdeadbeef
> >>+
> >>+#endif /* QEMU_JHASH_H__ */
> >>--
> >>1.9.1
> >>
> >>
> >>
> >--
> >Dr. David Alan Gilbert / address@hidden / Manchester, UK
> >
> >
> >.
> >
>
> --
> Thanks
> zhangchen
>
>
>
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK