This commit is contained in:
parent
5ae5661048
commit
24eecf9c40
@ -1,3 +1,8 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Aug 9 19:12:28 CEST 2007 - olh@suse.de
|
||||||
|
|
||||||
|
- remove inclusion of linux/hash.h, include it directly
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Wed Apr 4 11:21:52 CEST 2007 - hare@suse.de
|
Wed Apr 4 11:21:52 CEST 2007 - hare@suse.de
|
||||||
|
|
||||||
|
73
tgt.hash.patch
Normal file
73
tgt.hash.patch
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
---
|
||||||
|
usr/target.h | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||||
|
1 file changed, 58 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
--- a/usr/target.h
|
||||||
|
+++ b/usr/target.h
|
||||||
|
@@ -3,8 +3,65 @@
|
||||||
|
|
||||||
|
#include <limits.h>
|
||||||
|
#define BITS_PER_LONG (ULONG_MAX == 0xFFFFFFFFUL ? 32 : 64)
|
||||||
|
-#include <linux/hash.h>
|
||||||
|
|
||||||
|
+#ifndef _LINUX_HASH_H
|
||||||
|
+#define _LINUX_HASH_H
|
||||||
|
+/* Fast hashing routine for a long.
|
||||||
|
+ (C) 2002 William Lee Irwin III, IBM */
|
||||||
|
+
|
||||||
|
+/*
|
||||||
|
+ * Knuth recommends primes in approximately golden ratio to the maximum
|
||||||
|
+ * integer representable by a machine word for multiplicative hashing.
|
||||||
|
+ * Chuck Lever verified the effectiveness of this technique:
|
||||||
|
+ * http://www.citi.umich.edu/techreports/reports/citi-tr-00-1.pdf
|
||||||
|
+ *
|
||||||
|
+ * These primes are chosen to be bit-sparse, that is operations on
|
||||||
|
+ * them can use shifts and additions instead of multiplications for
|
||||||
|
+ * machines where multiplications are slow.
|
||||||
|
+ */
|
||||||
|
+#if BITS_PER_LONG == 32
|
||||||
|
+/* 2^31 + 2^29 - 2^25 + 2^22 - 2^19 - 2^16 + 1 */
|
||||||
|
+#define GOLDEN_RATIO_PRIME 0x9e370001UL
|
||||||
|
+#elif BITS_PER_LONG == 64
|
||||||
|
+/* 2^63 + 2^61 - 2^57 + 2^54 - 2^51 - 2^18 + 1 */
|
||||||
|
+#define GOLDEN_RATIO_PRIME 0x9e37fffffffc0001UL
|
||||||
|
+#else
|
||||||
|
+#error Define GOLDEN_RATIO_PRIME for your wordsize.
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+static inline unsigned long hash_long(unsigned long val, unsigned int bits)
|
||||||
|
+{
|
||||||
|
+ unsigned long hash = val;
|
||||||
|
+
|
||||||
|
+#if BITS_PER_LONG == 64
|
||||||
|
+ /* Sigh, gcc can't optimise this alone like it does for 32 bits. */
|
||||||
|
+ unsigned long n = hash;
|
||||||
|
+ n <<= 18;
|
||||||
|
+ hash -= n;
|
||||||
|
+ n <<= 33;
|
||||||
|
+ hash -= n;
|
||||||
|
+ n <<= 3;
|
||||||
|
+ hash += n;
|
||||||
|
+ n <<= 3;
|
||||||
|
+ hash -= n;
|
||||||
|
+ n <<= 4;
|
||||||
|
+ hash += n;
|
||||||
|
+ n <<= 2;
|
||||||
|
+ hash += n;
|
||||||
|
+#else
|
||||||
|
+ /* On some cpus multiply is faster, on others gcc will do shifts */
|
||||||
|
+ hash *= GOLDEN_RATIO_PRIME;
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
+ /* High bits are more random, so use them. */
|
||||||
|
+ return hash >> (BITS_PER_LONG - bits);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static inline unsigned long hash_ptr(void *ptr, unsigned int bits)
|
||||||
|
+{
|
||||||
|
+ return hash_long((unsigned long)ptr, bits);
|
||||||
|
+}
|
||||||
|
+#endif /* _LINUX_HASH_H */
|
||||||
|
#define HASH_ORDER 4
|
||||||
|
#define hashfn(val) hash_long((unsigned long) (val), HASH_ORDER)
|
||||||
|
|
12
tgt.spec
12
tgt.spec
@ -14,12 +14,12 @@ Name: tgt
|
|||||||
BuildRequires: libaio-devel openssl-devel
|
BuildRequires: libaio-devel openssl-devel
|
||||||
Obsoletes: iscsitarget
|
Obsoletes: iscsitarget
|
||||||
URL: http://stgt.berlios.de
|
URL: http://stgt.berlios.de
|
||||||
License: GNU General Public License (GPL)
|
License: GPL v2 or later
|
||||||
Group: System/Daemons
|
Group: System/Daemons
|
||||||
Prereq: %fillup_prereq %insserv_prereq
|
Prereq: %fillup_prereq %insserv_prereq
|
||||||
Autoreqprov: on
|
Autoreqprov: on
|
||||||
Version: 0.1
|
Version: 0.1
|
||||||
Release: 1
|
Release: 23
|
||||||
Requires: kernel
|
Requires: kernel
|
||||||
Summary: Generic Linux target framework (tgt)
|
Summary: Generic Linux target framework (tgt)
|
||||||
Source: %{name}-r849.tar.bz2
|
Source: %{name}-r849.tar.bz2
|
||||||
@ -31,6 +31,7 @@ Patch2: %{name}-mmc-read-toc-swapped-args
|
|||||||
Patch10: %{name}-update-scsi-header-file
|
Patch10: %{name}-update-scsi-header-file
|
||||||
Patch11: %{name}-fix-build
|
Patch11: %{name}-fix-build
|
||||||
Patch12: %{name}-ibmvio-build-local
|
Patch12: %{name}-ibmvio-build-local
|
||||||
|
Patch13: tgt.hash.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
|
||||||
%description
|
%description
|
||||||
@ -55,9 +56,10 @@ Authors:
|
|||||||
%patch10 -p1
|
%patch10 -p1
|
||||||
%patch11 -p1
|
%patch11 -p1
|
||||||
%patch12 -p1
|
%patch12 -p1
|
||||||
cp %{S:2} usr/scsi_tgt_if.h
|
%patch13 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
|
cp %{S:2} usr/scsi_tgt_if.h
|
||||||
cd usr
|
cd usr
|
||||||
%ifarch ppc ppc64
|
%ifarch ppc ppc64
|
||||||
IBMVIO=1
|
IBMVIO=1
|
||||||
@ -73,7 +75,7 @@ install -vD -m 755 %{S:1} ${RPM_BUILD_ROOT}/etc/init.d/tgtd
|
|||||||
install -vD %{S:3} ${RPM_BUILD_ROOT}/etc/sysconfig/SuSEfirewall2.d/services/iscsitarget
|
install -vD %{S:3} ${RPM_BUILD_ROOT}/etc/sysconfig/SuSEfirewall2.d/services/iscsitarget
|
||||||
|
|
||||||
%clean
|
%clean
|
||||||
[ "${RPM_BUILD_ROOT}" != "/" -a -d ${RPM_BUILD_ROOT} ] && rm -rf ${RPM_BUILD_ROOT}
|
rm -rf ${RPM_BUILD_ROOT}
|
||||||
rm -f filelist
|
rm -f filelist
|
||||||
|
|
||||||
%post
|
%post
|
||||||
@ -90,6 +92,8 @@ rm -f filelist
|
|||||||
%doc README doc/README.iscsi doc/TODO
|
%doc README doc/README.iscsi doc/TODO
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Aug 09 2007 - olh@suse.de
|
||||||
|
- remove inclusion of linux/hash.h, include it directly
|
||||||
* Wed Apr 04 2007 - hare@suse.de
|
* Wed Apr 04 2007 - hare@suse.de
|
||||||
- Added service definition for SUSEFirewall2 (#251679)
|
- Added service definition for SUSEFirewall2 (#251679)
|
||||||
* Wed Apr 04 2007 - hare@suse.de
|
* Wed Apr 04 2007 - hare@suse.de
|
||||||
|
Loading…
x
Reference in New Issue
Block a user