67 #ifndef XXHASH_H_5627135585666179 68 #define XXHASH_H_5627135585666179 1 70 #if defined (__cplusplus) 79 typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode;
94 #ifdef XXH_PRIVATE_API 95 # ifndef XXH_STATIC_LINKING_ONLY 96 # define XXH_STATIC_LINKING_ONLY 98 # if defined(__GNUC__) 99 # define XXH_PUBLIC_API static __inline __attribute__((unused)) 100 # elif defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) ) 101 # define XXH_PUBLIC_API static inline 102 # elif defined(_MSC_VER) 103 # define XXH_PUBLIC_API static __inline 105 # define XXH_PUBLIC_API static 108 # define XXH_PUBLIC_API 123 # define XXH_CAT(A,B) A##B 124 # define XXH_NAME2(A,B) XXH_CAT(A,B) 125 # define XXH_versionNumber XXH_NAME2(XXH_NAMESPACE, XXH_versionNumber) 126 # define XXH32 XXH_NAME2(XXH_NAMESPACE, XXH32) 127 # define XXH32_createState XXH_NAME2(XXH_NAMESPACE, XXH32_createState) 128 # define XXH32_freeState XXH_NAME2(XXH_NAMESPACE, XXH32_freeState) 129 # define XXH32_reset XXH_NAME2(XXH_NAMESPACE, XXH32_reset) 130 # define XXH32_update XXH_NAME2(XXH_NAMESPACE, XXH32_update) 131 # define XXH32_digest XXH_NAME2(XXH_NAMESPACE, XXH32_digest) 132 # define XXH32_copyState XXH_NAME2(XXH_NAMESPACE, XXH32_copyState) 133 # define XXH32_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH32_canonicalFromHash) 134 # define XXH32_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH32_hashFromCanonical) 135 # define XXH64 XXH_NAME2(XXH_NAMESPACE, XXH64) 136 # define XXH64_createState XXH_NAME2(XXH_NAMESPACE, XXH64_createState) 137 # define XXH64_freeState XXH_NAME2(XXH_NAMESPACE, XXH64_freeState) 138 # define XXH64_reset XXH_NAME2(XXH_NAMESPACE, XXH64_reset) 139 # define XXH64_update XXH_NAME2(XXH_NAMESPACE, XXH64_update) 140 # define XXH64_digest XXH_NAME2(XXH_NAMESPACE, XXH64_digest) 141 # define XXH64_copyState XXH_NAME2(XXH_NAMESPACE, XXH64_copyState) 142 # define XXH64_canonicalFromHash XXH_NAME2(XXH_NAMESPACE, XXH64_canonicalFromHash) 143 # define XXH64_hashFromCanonical XXH_NAME2(XXH_NAMESPACE, XXH64_hashFromCanonical) 150 #define XXH_VERSION_MAJOR 0 151 #define XXH_VERSION_MINOR 6 152 #define XXH_VERSION_RELEASE 2 153 #define XXH_VERSION_NUMBER (XXH_VERSION_MAJOR *100*100 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE) 154 XXH_PUBLIC_API
unsigned XXH_versionNumber (
void);
160 typedef unsigned int XXH32_hash_t;
167 XXH_PUBLIC_API XXH32_hash_t XXH32 (
const void* input,
size_t length,
unsigned int seed);
170 typedef struct XXH32_state_s XXH32_state_t;
171 XXH_PUBLIC_API XXH32_state_t* XXH32_createState(
void);
172 XXH_PUBLIC_API XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr);
173 XXH_PUBLIC_API
void XXH32_copyState(XXH32_state_t* dst_state,
const XXH32_state_t* src_state);
175 XXH_PUBLIC_API XXH_errorcode XXH32_reset (XXH32_state_t* statePtr,
unsigned int seed);
176 XXH_PUBLIC_API XXH_errorcode XXH32_update (XXH32_state_t* statePtr,
const void* input,
size_t length);
177 XXH_PUBLIC_API XXH32_hash_t XXH32_digest (
const XXH32_state_t* statePtr);
204 XXH_PUBLIC_API
void XXH32_canonicalFromHash(
XXH32_canonical_t* dst, XXH32_hash_t hash);
205 XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical(
const XXH32_canonical_t* src);
214 #ifndef XXH_NO_LONG_LONG 218 typedef unsigned long long XXH64_hash_t;
225 XXH_PUBLIC_API XXH64_hash_t XXH64 (
const void* input,
size_t length,
unsigned long long seed);
228 typedef struct XXH64_state_s XXH64_state_t;
229 XXH_PUBLIC_API XXH64_state_t* XXH64_createState(
void);
230 XXH_PUBLIC_API XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr);
231 XXH_PUBLIC_API
void XXH64_copyState(XXH64_state_t* dst_state,
const XXH64_state_t* src_state);
233 XXH_PUBLIC_API XXH_errorcode XXH64_reset (XXH64_state_t* statePtr,
unsigned long long seed);
234 XXH_PUBLIC_API XXH_errorcode XXH64_update (XXH64_state_t* statePtr,
const void* input,
size_t length);
235 XXH_PUBLIC_API XXH64_hash_t XXH64_digest (
const XXH64_state_t* statePtr);
239 XXH_PUBLIC_API
void XXH64_canonicalFromHash(
XXH64_canonical_t* dst, XXH64_hash_t hash);
240 XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical(
const XXH64_canonical_t* src);
244 #ifdef XXH_STATIC_LINKING_ONLY 257 struct XXH32_state_s {
258 unsigned total_len_32;
269 #ifndef XXH_NO_LONG_LONG 270 struct XXH64_state_s {
271 unsigned long long total_len;
272 unsigned long long v1;
273 unsigned long long v2;
274 unsigned long long v3;
275 unsigned long long v4;
276 unsigned long long mem64[4];
278 unsigned reserved[2];
282 #ifdef XXH_PRIVATE_API 289 #if defined (__cplusplus)