#ifndef XXHASH_H
#define XXHASH_H
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#pragma once
#if defined (__cplusplus)
extern "C" {
#endif
#include <stddef.h>
typedef enum { XXH_OK=0, XXH_ERROR } XXH_errorcode;
unsigned int XXH32 (const void* input, size_t length, unsigned seed);
unsigned long long XXH64 (const void* input, size_t length, unsigned long long seed);
void XXH128 (const void* input, size_t length, unsigned long long seed, void* out);
void XXH256 (const void* input, size_t length, unsigned long long seed, void* out);
typedef struct { long long ll[ 6]; } XXH32_state_t;
typedef struct { long long ll[11]; } XXH64_state_t;
typedef struct { long long ll[28]; } XXH128_state_t;
typedef struct { long long ll[28]; } XXH256_state_t;
XXH32_state_t* XXH32_createState(void);
XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr);
XXH64_state_t* XXH64_createState(void);
XXH_errorcode XXH64_freeState(XXH64_state_t* statePtr);
XXH128_state_t* XXH128_createState(void);
XXH_errorcode XXH128_freeState(XXH128_state_t* statePtr);
XXH256_state_t* XXH256_createState(void);
XXH_errorcode XXH256_freeState(XXH256_state_t* statePtr);
XXH_errorcode XXH32_reset (XXH32_state_t* statePtr, unsigned seed);
XXH_errorcode XXH32_update (XXH32_state_t* statePtr, const void* input, size_t length);
unsigned int XXH32_digest (const XXH32_state_t* statePtr);
XXH_errorcode XXH64_reset (XXH64_state_t* statePtr, unsigned long long seed);
XXH_errorcode XXH64_update (XXH64_state_t* statePtr, const void* input, size_t length);
unsigned long long XXH64_digest (const XXH64_state_t* statePtr);
XXH_errorcode XXH128_reset (XXH128_state_t* statePtr, unsigned long long seed);
XXH_errorcode XXH128_update (XXH128_state_t* statePtr, const void* input, size_t length);
void XXH128_digest (const XXH128_state_t* statePtr, void* out);
XXH_errorcode XXH256_reset (XXH256_state_t* statePtr, unsigned long long seed);
XXH_errorcode XXH256_update (XXH256_state_t* statePtr, const void* input, size_t length);
void XXH256_digest (const XXH256_state_t* statePtr, void* out);
#if defined (__cplusplus)
}
#endif
#endif