47#if defined (__cplusplus)
51#ifndef XXHASH_H_5627135585666179
52#define XXHASH_H_5627135585666179 1
60typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode;
76# ifndef XXH_STATIC_LINKING_ONLY
77# define XXH_STATIC_LINKING_ONLY
80# define XXH_PUBLIC_API static __inline __attribute__((unused))
81# elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) )
82# define XXH_PUBLIC_API static inline
83# elif defined(_MSC_VER)
84# define XXH_PUBLIC_API static __inline
86# define XXH_PUBLIC_API static
89# define XXH_PUBLIC_API
104# define XXH_CAT(A,B) A##B
105# define XXH_NAME2(A,B) XXH_CAT(A,B)
106# define XXH32 XXH_NAME2(XXH_NAMESPACE, XXH32)
107# define XXH64 XXH_NAME2(XXH_NAMESPACE, XXH64)
108# define XXH_versionNumber XXH_NAME2(XXH_NAMESPACE, XXH_versionNumber)
109# define XXH32_createState XXH_NAME2(XXH_NAMESPACE, XXH32_createState)
110# define XXH64_createState XXH_NAME2(XXH_NAMESPACE, XXH64_createState)
111# define XXH32_freeState XXH_NAME2(XXH_NAMESPACE, XXH32_freeState)
112# define XXH64_freeState XXH_NAME2(XXH_NAMESPACE, XXH64_freeState)
113# define XXH32_reset XXH_NAME2(XXH_NAMESPACE, XXH32_reset)
114# define XXH64_reset XXH_NAME2(XXH_NAMESPACE, XXH64_reset)
115# define XXH32_update XXH_NAME2(XXH_NAMESPACE, XXH32_update)
116# define XXH64_update XXH_NAME2(XXH_NAMESPACE, XXH64_update)
117# define XXH32_digest XXH_NAME2(XXH_NAMESPACE, XXH32_digest)
118# define XXH64_digest XXH_NAME2(XXH_NAMESPACE, XXH64_digest)
119# define XXH32_copyState XXH_NAME2(XXH_NAMESPACE, XXH32_copyState)
120# define XXH64_copyState XXH_NAME2(XXH_NAMESPACE, XXH64_copyState)
121# define XXH32_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH32_canonicalFromHash)
122# define XXH64_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH64_canonicalFromHash)
123# define XXH32_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH32_hashFromCanonical)
124# define XXH64_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH64_hashFromCanonical)
131#define XXH_VERSION_MAJOR 0
132#define XXH_VERSION_MINOR 6
133#define XXH_VERSION_RELEASE 2
134#define XXH_VERSION_NUMBER (XXH_VERSION_MAJOR *100*100 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE)
135XXH_PUBLIC_API
unsigned XXH_versionNumber (
void);
141typedef unsigned int XXH32_hash_t;
142typedef unsigned long long XXH64_hash_t;
144XXH_PUBLIC_API XXH32_hash_t XXH32 (
const void* input,
size_t length,
unsigned int seed);
145XXH_PUBLIC_API XXH64_hash_t XXH64 (
const void* input,
size_t length,
unsigned long long seed);
163typedef struct XXH32_state_s XXH32_state_t;
164typedef struct XXH64_state_s XXH64_state_t;
168XXH_PUBLIC_API XXH32_state_t* XXH32_createState(
void);
169XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr);
171XXH_PUBLIC_API XXH64_state_t* XXH64_createState(
void);
172XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr);
177XXH_PUBLIC_API XXH_errorcode XXH32_reset (XXH32_state_t* statePtr,
unsigned int seed);
178XXH_PUBLIC_API XXH_errorcode XXH32_update (XXH32_state_t* statePtr,
const void* input,
size_t length);
179XXH_PUBLIC_API XXH32_hash_t XXH32_digest (
const XXH32_state_t* statePtr);
181XXH_PUBLIC_API XXH_errorcode XXH64_reset (XXH64_state_t* statePtr,
unsigned long long seed);
182XXH_PUBLIC_API XXH_errorcode XXH64_update (XXH64_state_t* statePtr,
const void* input,
size_t length);
183XXH_PUBLIC_API XXH64_hash_t XXH64_digest (
const XXH64_state_t* statePtr);
211#if !(defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L))
215XXH_PUBLIC_API
void XXH32_copyState(XXH32_state_t* restrict dst_state,
const XXH32_state_t* restrict src_state);
216XXH_PUBLIC_API
void XXH64_copyState(XXH64_state_t* restrict dst_state,
const XXH64_state_t* restrict src_state);
227typedef struct {
unsigned char digest[4]; } XXH32_canonical_t;
228typedef struct {
unsigned char digest[8]; } XXH64_canonical_t;
230XXH_PUBLIC_API
void XXH32_canonicalFromHash(XXH32_canonical_t* dst, XXH32_hash_t hash);
231XXH_PUBLIC_API
void XXH64_canonicalFromHash(XXH64_canonical_t* dst, XXH64_hash_t hash);
233XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(
const XXH32_canonical_t* src);
234XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(
const XXH64_canonical_t* src);
246#if defined(XXH_STATIC_LINKING_ONLY) && !defined(XXH_STATIC_H_3543687687345)
247#define XXH_STATIC_H_3543687687345
253 struct XXH32_state_s {
254 uint32_t total_len_32;
265 struct XXH64_state_s {
273 unsigned reserved[2];
277# ifdef XXH_PRIVATE_API
284#if defined (__cplusplus)