Harlinn.Windows 0.1
Loading...
Searching...
No Matches
xxhash.h File Reference
#include <stddef.h>
#include <limits.h>
Include dependency graph for xxhash.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  XXH32_canonical_t
 Canonical (big endian) representation of XXH32_hash_t. More...
 
struct  XXH64_canonical_t
 
struct  XXH128_hash_t
 The return value from 128-bit hashes. More...
 
struct  XXH128_canonical_t
 

Macros

#define XXHASH_H_5627135585666179   1
 
#define XXH_PUBLIC_API   /* do nothing */
 
#define XXH_VERSION_MAJOR   0
 
#define XXH_VERSION_MINOR   8
 
#define XXH_VERSION_RELEASE   1
 
#define XXH_VERSION_NUMBER   (XXH_VERSION_MAJOR *100*100 + XXH_VERSION_MINOR *100 + XXH_VERSION_RELEASE)
 
#define XXH_HAS_ATTRIBUTE(x)
 
#define XXH_HAS_C_ATTRIBUTE(x)
 
#define XXH_HAS_CPP_ATTRIBUTE(x)
 
#define XXH_FALLTHROUGH
 
#define XXH3_SECRET_SIZE_MIN   136
 

Typedefs

typedef struct XXH32_state_s XXH32_state_t
 The opaque state struct for the XXH32 streaming API.
 
typedef struct XXH64_state_s XXH64_state_t
 The opaque state struct for the XXH64 streaming API.
 
typedef struct XXH3_state_s XXH3_state_t
 The state struct for the XXH3 streaming API.
 
typedef unsigned long long XXH64_hash_t
 

Enumerations

enum  XXH_errorcode {
  XXH_OK =0 ,
  XXH_ERROR
}
 

Functions

XXH_PUBLIC_API unsigned XXH_versionNumber (void)
 Obtains the xxHash version.
 
XXH_PUBLIC_API XXH32_hash_t XXH32 (const void *input, size_t length, XXH32_hash_t seed)
 Calculates the 32-bit hash of input using xxHash32.
 
XXH_PUBLIC_API XXH32_state_tXXH32_createState (void)
 Allocates an XXH32_state_t.
 
XXH_PUBLIC_API XXH_errorcode XXH32_freeState (XXH32_state_t *statePtr)
 Frees an XXH32_state_t.
 
XXH_PUBLIC_API void XXH32_copyState (XXH32_state_t *dst_state, const XXH32_state_t *src_state)
 Copies one XXH32_state_t to another.
 
XXH_PUBLIC_API XXH_errorcode XXH32_reset (XXH32_state_t *statePtr, XXH32_hash_t seed)
 Resets an XXH32_state_t to begin a new hash.
 
XXH_PUBLIC_API XXH_errorcode XXH32_update (XXH32_state_t *statePtr, const void *input, size_t length)
 Consumes a block of input to an XXH32_state_t.
 
XXH_PUBLIC_API XXH32_hash_t XXH32_digest (const XXH32_state_t *statePtr)
 Returns the calculated hash value from an XXH32_state_t.
 
XXH_PUBLIC_API void XXH32_canonicalFromHash (XXH32_canonical_t *dst, XXH32_hash_t hash)
 Converts an XXH32_hash_t to a big endian XXH32_canonical_t.
 
XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical (const XXH32_canonical_t *src)
 Converts an XXH32_canonical_t to a native XXH32_hash_t.
 
XXH_PUBLIC_API XXH64_hash_t XXH64 (const void *input, size_t length, XXH64_hash_t seed)
 Calculates the 64-bit hash of input using xxHash64.
 
XXH_PUBLIC_API XXH64_state_tXXH64_createState (void)
 
XXH_PUBLIC_API XXH_errorcode XXH64_freeState (XXH64_state_t *statePtr)
 
XXH_PUBLIC_API void XXH64_copyState (XXH64_state_t *dst_state, const XXH64_state_t *src_state)
 
XXH_PUBLIC_API XXH_errorcode XXH64_reset (XXH64_state_t *statePtr, XXH64_hash_t seed)
 
XXH_PUBLIC_API XXH_errorcode XXH64_update (XXH64_state_t *statePtr, const void *input, size_t length)
 
XXH_PUBLIC_API XXH64_hash_t XXH64_digest (const XXH64_state_t *statePtr)
 
XXH_PUBLIC_API void XXH64_canonicalFromHash (XXH64_canonical_t *dst, XXH64_hash_t hash)
 
XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical (const XXH64_canonical_t *src)
 
XXH_PUBLIC_API XXH64_hash_t XXH3_64bits (const void *data, size_t len)
 
XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_withSeed (const void *data, size_t len, XXH64_hash_t seed)
 
XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_withSecret (const void *data, size_t len, const void *secret, size_t secretSize)
 
XXH_PUBLIC_API XXH3_state_tXXH3_createState (void)
 
XXH_PUBLIC_API XXH_errorcode XXH3_freeState (XXH3_state_t *statePtr)
 
XXH_PUBLIC_API void XXH3_copyState (XXH3_state_t *dst_state, const XXH3_state_t *src_state)
 
XXH_PUBLIC_API XXH_errorcode XXH3_64bits_reset (XXH3_state_t *statePtr)
 
XXH_PUBLIC_API XXH_errorcode XXH3_64bits_reset_withSeed (XXH3_state_t *statePtr, XXH64_hash_t seed)
 
XXH_PUBLIC_API XXH_errorcode XXH3_64bits_reset_withSecret (XXH3_state_t *statePtr, const void *secret, size_t secretSize)
 
XXH_PUBLIC_API XXH_errorcode XXH3_64bits_update (XXH3_state_t *statePtr, const void *input, size_t length)
 
XXH_PUBLIC_API XXH64_hash_t XXH3_64bits_digest (const XXH3_state_t *statePtr)
 
XXH_PUBLIC_API XXH128_hash_t XXH3_128bits (const void *data, size_t len)
 
XXH_PUBLIC_API XXH128_hash_t XXH3_128bits_withSeed (const void *data, size_t len, XXH64_hash_t seed)
 
XXH_PUBLIC_API XXH128_hash_t XXH3_128bits_withSecret (const void *data, size_t len, const void *secret, size_t secretSize)
 
XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset (XXH3_state_t *statePtr)
 
XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset_withSeed (XXH3_state_t *statePtr, XXH64_hash_t seed)
 
XXH_PUBLIC_API XXH_errorcode XXH3_128bits_reset_withSecret (XXH3_state_t *statePtr, const void *secret, size_t secretSize)
 
XXH_PUBLIC_API XXH_errorcode XXH3_128bits_update (XXH3_state_t *statePtr, const void *input, size_t length)
 
XXH_PUBLIC_API XXH128_hash_t XXH3_128bits_digest (const XXH3_state_t *statePtr)
 
XXH_PUBLIC_API int XXH128_isEqual (XXH128_hash_t h1, XXH128_hash_t h2)
 
XXH_PUBLIC_API int XXH128_cmp (const void *h128_1, const void *h128_2)
 
XXH_PUBLIC_API void XXH128_canonicalFromHash (XXH128_canonical_t *dst, XXH128_hash_t hash)
 
XXH_PUBLIC_API XXH128_hash_t XXH128_hashFromCanonical (const XXH128_canonical_t *src)
 

Detailed Description

xxHash prototypes and implementation

Macro Definition Documentation

◆ XXHASH_H_5627135585666179

#define XXHASH_H_5627135585666179   1

XXH_INLINE_ALL (and XXH_PRIVATE_API) Use these build macros to inline xxhash into the target unit. Inlining improves performance on small inputs, especially when the length is expressed as a compile-time constant:

 https://fastcompression.blogspot.com/2018/03/xxhash-for-small-keys-impressive-power.html

It also keeps xxHash symbols private to the unit, so they are not exported.

Usage: #define XXH_INLINE_ALL #include "xxhash.h"

Do not compile and link xxhash.o as a separate object, as it is not useful.