Cross Reference: lookup3.h
xref
: /
systemd
/
src
/
journal
/
lookup3.h
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
lookup3.h revision c2f1db8f83618e60dcded8303d14656d7d26b436
/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
#
pragma
once
#
include
<
inttypes.h
>
#
include
<
sys
/
types.h
>
uint32_t
jenkins_hashword
(
const
uint32_t
*k,
size_t
length
,
uint32_t
initval
);
void
jenkins_hashword2
(
const
uint32_t
*k,
size_t
length
,
uint32_t
*
pc
,
uint32_t
*
pb
);
uint32_t
jenkins_hashlittle
(
const
void
*
key
,
size_t
length
,
uint32_t
initval
);
void
jenkins_hashlittle2
(
const
void
*
key
,
size_t
length
,
uint32_t
*
pc
,
uint32_t
*
pb
);
uint32_t
jenkins_hashbig
(
const
void
*
key
,
size_t
length
,
uint32_t
initval
);
static
inline
uint64_t
hash64
(
const
void
*
data
,
size_t
length
) {
uint32_t
a = 0, b = 0;
jenkins_hashlittle2
(
data
,
length
, &a, &b);
return
((
uint64_t
) a <<
32ULL
) | (
uint64_t
) b;
}