Macros | Typedefs | Enumerations | Functions | Variables
lz4/xxhash.c File Reference
#include <stdlib.h>
#include <string.h>
#include "xxhash.h"
Include dependency graph for lz4/xxhash.c:

Go to the source code of this file.

Macros

#define FORCE_INLINE   static
 
#define MEM_MODULE
 
#define XXH_CPU_LITTLE_ENDIAN   (*(const char*)(&g_one))
 
#define XXH_FORCE_ALIGN_CHECK   1
 
#define XXH_FORCE_NATIVE_FORMAT   0
 
#define XXH_GCC_VERSION   (__GNUC__ * 100 + __GNUC_MINOR__)
 
#define XXH_get32bits(p)   XXH_readLE32_align(p, endian, align)
 
#define XXH_get64bits(p)   XXH_readLE64_align(p, endian, align)
 
#define XXH_rotl32(x, r)   ((x << r) | (x >> (32 - r)))
 
#define XXH_rotl64(x, r)   ((x << r) | (x >> (64 - r)))
 
#define XXH_STATIC_ASSERT(c)   { enum { XXH_static_assert = 1/(int)(!!(c)) }; } /* use only *after* variable declarations */
 
#define XXH_STATIC_LINKING_ONLY
 

Typedefs

typedef unsigned char BYTE
 
typedef signed int S32
 
typedef unsigned short U16
 
typedef unsigned int U32
 
typedef unsigned long long U64
 

Enumerations

enum  XXH_alignment { XXH_aligned, XXH_unaligned, XXH_aligned, XXH_unaligned }
 
enum  XXH_endianess { XXH_bigEndian =0, XXH_littleEndian =1, XXH_bigEndian =0, XXH_littleEndian =1 }
 

Functions

XXH_PUBLIC_API unsigned int XXH32 (const void *input, size_t len, unsigned int seed)
 
XXH_PUBLIC_API void XXH32_canonicalFromHash (XXH32_canonical_t *dst, XXH32_hash_t hash)
 
XXH_PUBLIC_API void XXH32_copyState (XXH32_state_t *dstState, const XXH32_state_t *srcState)
 
XXH_PUBLIC_API XXH32_state_tXXH32_createState (void)
 
XXH_PUBLIC_API unsigned int XXH32_digest (const XXH32_state_t *state_in)
 
FORCE_INLINE U32 XXH32_digest_endian (const XXH32_state_t *state, XXH_endianess endian)
 
FORCE_INLINE U32 XXH32_endian_align (const void *input, size_t len, U32 seed, XXH_endianess endian, XXH_alignment align)
 
XXH_PUBLIC_API XXH_errorcode XXH32_freeState (XXH32_state_t *statePtr)
 
XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical (const XXH32_canonical_t *src)
 
XXH_PUBLIC_API XXH_errorcode XXH32_reset (XXH32_state_t *statePtr, unsigned int seed)
 
static U32 XXH32_round (U32 seed, U32 input)
 
XXH_PUBLIC_API XXH_errorcode XXH32_update (XXH32_state_t *state_in, const void *input, size_t len)
 
FORCE_INLINE XXH_errorcode XXH32_update_endian (XXH32_state_t *state, const void *input, size_t len, XXH_endianess endian)
 
XXH_PUBLIC_API unsigned long long XXH64 (const void *input, size_t len, unsigned long long seed)
 
XXH_PUBLIC_API void XXH64_canonicalFromHash (XXH64_canonical_t *dst, XXH64_hash_t hash)
 
XXH_PUBLIC_API void XXH64_copyState (XXH64_state_t *dstState, const XXH64_state_t *srcState)
 
XXH_PUBLIC_API XXH64_state_tXXH64_createState (void)
 
XXH_PUBLIC_API unsigned long long XXH64_digest (const XXH64_state_t *state_in)
 
FORCE_INLINE U64 XXH64_digest_endian (const XXH64_state_t *state, XXH_endianess endian)
 
FORCE_INLINE U64 XXH64_endian_align (const void *input, size_t len, U64 seed, XXH_endianess endian, XXH_alignment align)
 
XXH_PUBLIC_API XXH_errorcode XXH64_freeState (XXH64_state_t *statePtr)
 
XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical (const XXH64_canonical_t *src)
 
static U64 XXH64_mergeRound (U64 acc, U64 val)
 
XXH_PUBLIC_API XXH_errorcode XXH64_reset (XXH64_state_t *statePtr, unsigned long long seed)
 
static U64 XXH64_round (U64 acc, U64 input)
 
XXH_PUBLIC_API XXH_errorcode XXH64_update (XXH64_state_t *state_in, const void *input, size_t len)
 
FORCE_INLINE XXH_errorcode XXH64_update_endian (XXH64_state_t *state, const void *input, size_t len, XXH_endianess endian)
 
static void XXH_free (void *p)
 
static voidXXH_malloc (size_t s)
 
static voidXXH_memcpy (void *dest, const void *src, size_t size)
 
static U32 XXH_read32 (const void *memPtr)
 
static U64 XXH_read64 (const void *memPtr)
 
static U32 XXH_readBE32 (const void *ptr)
 
static U64 XXH_readBE64 (const void *ptr)
 
FORCE_INLINE U32 XXH_readLE32 (const void *ptr, XXH_endianess endian)
 
FORCE_INLINE U32 XXH_readLE32_align (const void *ptr, XXH_endianess endian, XXH_alignment align)
 
FORCE_INLINE U64 XXH_readLE64 (const void *ptr, XXH_endianess endian)
 
FORCE_INLINE U64 XXH_readLE64_align (const void *ptr, XXH_endianess endian, XXH_alignment align)
 
static U32 XXH_swap32 (U32 x)
 
static U64 XXH_swap64 (U64 x)
 
XXH_PUBLIC_API unsigned XXH_versionNumber (void)
 

Variables

static const int g_one = 1
 
static const U32 PRIME32_1 = 2654435761U
 
static const U32 PRIME32_2 = 2246822519U
 
static const U32 PRIME32_3 = 3266489917U
 
static const U32 PRIME32_4 = 668265263U
 
static const U32 PRIME32_5 = 374761393U
 
static const U64 PRIME64_1 = 11400714785074694791ULL
 
static const U64 PRIME64_2 = 14029467366897019727ULL
 
static const U64 PRIME64_3 = 1609587929392839161ULL
 
static const U64 PRIME64_4 = 9650029242287828579ULL
 
static const U64 PRIME64_5 = 2870177450012600261ULL
 

Macro Definition Documentation

#define FORCE_INLINE   static

Definition at line 125 of file lz4/xxhash.c.

#define MEM_MODULE

Definition at line 526 of file lz4/xxhash.c.

#define XXH_CPU_LITTLE_ENDIAN   (*(const char*)(&g_one))

Definition at line 212 of file lz4/xxhash.c.

#define XXH_FORCE_ALIGN_CHECK   1

XXH_FORCE_ALIGN_CHECK : This is a minor performance trick, only useful with lots of very small keys. It means : check for aligned/unaligned input. The check costs one initial branch per hash; set to 0 when the input data is guaranteed to be aligned.

Definition at line 90 of file lz4/xxhash.c.

#define XXH_FORCE_NATIVE_FORMAT   0

XXH_FORCE_MEMORY_ACCESS : By default, access to unaligned memory is controlled by memcpy(), which is safe and portable. Unfortunately, on some target/compiler combinations, the generated assembly is sub-optimal. The below switch allow to select different access method for improved performance. Method 0 (default) : use memcpy(). Safe and portable. Method 1 : __packed statement. It depends on compiler extension (ie, not portable). This method is safe if your compiler supports it, and generally as fast or faster than memcpy. Method 2 : direct access. This method doesn't depend on compiler but violate C standard. It can generate buggy code on targets which do not support unaligned memory accesses. But in some circumstances, it's the only known way to get the most performance (ie GCC + ARMv6) See http://stackoverflow.com/a/32095106/646947 for details. Prefer these methods in priority order (0 > 1 > 2)

XXH_ACCEPT_NULL_INPUT_POINTER : If the input pointer is a null pointer, xxHash default behavior is to trigger a memory access error, since it is a bad pointer. When this option is enabled, xxHash output for null input pointers will be the same as a null-length input. By default, this option is disabled. To enable it, uncomment below define :

XXH_FORCE_NATIVE_FORMAT : By default, xxHash library provides endian-independent Hash values, based on little-endian convention. Results are therefore identical for little-endian and big-endian CPU. This comes at a performance cost for big-endian CPU, since some swapping is required to emulate little-endian format. Should endian-independence be of no importance for your application, you may set the #define below to 1, to improve speed for Big-endian CPU. This option has no impact on Little_Endian CPU.

Definition at line 77 of file lz4/xxhash.c.

#define XXH_GCC_VERSION   (__GNUC__ * 100 + __GNUC_MINOR__)

Definition at line 178 of file lz4/xxhash.c.

#define XXH_get32bits (   p)    XXH_readLE32_align(p, endian, align)
#define XXH_get64bits (   p)    XXH_readLE64_align(p, endian, align)
#define XXH_rotl32 (   x,
  r 
)    ((x << r) | (x >> (32 - r)))

Definition at line 185 of file lz4/xxhash.c.

#define XXH_rotl64 (   x,
  r 
)    ((x << r) | (x >> (64 - r)))

Definition at line 186 of file lz4/xxhash.c.

#define XXH_STATIC_ASSERT (   c)    { enum { XXH_static_assert = 1/(int)(!!(c)) }; } /* use only *after* variable declarations */

Definition at line 243 of file lz4/xxhash.c.

#define XXH_STATIC_LINKING_ONLY

Definition at line 107 of file lz4/xxhash.c.

Typedef Documentation

typedef unsigned char BYTE

Definition at line 141 of file lz4/xxhash.c.

typedef signed int S32

Definition at line 144 of file lz4/xxhash.c.

typedef unsigned short U16

Definition at line 142 of file lz4/xxhash.c.

typedef unsigned int U32

Definition at line 143 of file lz4/xxhash.c.

typedef unsigned long long U64

Definition at line 531 of file lz4/xxhash.c.

Enumeration Type Documentation

Enumerator
XXH_aligned 
XXH_unaligned 
XXH_aligned 
XXH_unaligned 

Definition at line 219 of file lz4/xxhash.c.

Enumerator
XXH_bigEndian 
XXH_littleEndian 
XXH_bigEndian 
XXH_littleEndian 

Definition at line 207 of file lz4/xxhash.c.

Function Documentation

XXH_PUBLIC_API unsigned int XXH32 ( const void input,
size_t  length,
unsigned int  seed 
)

XXH32() : Calculate the 32-bits hash of sequence "length" bytes stored at memory address "input". The memory between input & input+length must be valid (allocated and read-accessible). "seed" can be used to alter the result predictably. Speed on Core 2 Duo @ 3 GHz (single thread, SMHasher benchmark) : 5.4 GB/s

Definition at line 321 of file lz4/xxhash.c.

XXH_PUBLIC_API void XXH32_canonicalFromHash ( XXH32_canonical_t dst,
XXH32_hash_t  hash 
)

Default XXH result types are basic unsigned 32 and 64 bits. The canonical representation follows human-readable write convention, aka big-endian (large digits first). These functions allow transformation of hash result into and from its canonical format. This way, hash values can be written into a file or buffer, and remain comparable across different systems and programs.

Definition at line 504 of file lz4/xxhash.c.

XXH_PUBLIC_API void XXH32_copyState ( XXH32_state_t dstState,
const XXH32_state_t srcState 
)

Definition at line 361 of file lz4/xxhash.c.

XXH_PUBLIC_API XXH32_state_t* XXH32_createState ( void  )

Definition at line 351 of file lz4/xxhash.c.

XXH_PUBLIC_API unsigned int XXH32_digest ( const XXH32_state_t state_in)

Definition at line 485 of file lz4/xxhash.c.

FORCE_INLINE U32 XXH32_digest_endian ( const XXH32_state_t state,
XXH_endianess  endian 
)

Definition at line 449 of file lz4/xxhash.c.

FORCE_INLINE U32 XXH32_endian_align ( const void input,
size_t  len,
U32  seed,
XXH_endianess  endian,
XXH_alignment  align 
)

Definition at line 264 of file lz4/xxhash.c.

XXH_PUBLIC_API XXH_errorcode XXH32_freeState ( XXH32_state_t statePtr)

Definition at line 355 of file lz4/xxhash.c.

XXH_PUBLIC_API XXH32_hash_t XXH32_hashFromCanonical ( const XXH32_canonical_t src)

Definition at line 511 of file lz4/xxhash.c.

XXH_PUBLIC_API XXH_errorcode XXH32_reset ( XXH32_state_t statePtr,
unsigned int  seed 
)

Definition at line 366 of file lz4/xxhash.c.

static U32 XXH32_round ( U32  seed,
U32  input 
)
static

Definition at line 256 of file lz4/xxhash.c.

XXH_PUBLIC_API XXH_errorcode XXH32_update ( XXH32_state_t state_in,
const void input,
size_t  len 
)

Definition at line 437 of file lz4/xxhash.c.

FORCE_INLINE XXH_errorcode XXH32_update_endian ( XXH32_state_t state,
const void input,
size_t  len,
XXH_endianess  endian 
)

Definition at line 379 of file lz4/xxhash.c.

XXH_PUBLIC_API unsigned long long XXH64 ( const void input,
size_t  length,
unsigned long long  seed 
)

XXH64() : Calculate the 64-bits hash of sequence of length "len" stored at memory address "input". "seed" can be used to alter the result predictably. This function runs faster on 64-bits systems, but slower on 32-bits systems (see benchmark).

Definition at line 693 of file lz4/xxhash.c.

XXH_PUBLIC_API void XXH64_canonicalFromHash ( XXH64_canonical_t dst,
XXH64_hash_t  hash 
)

Definition at line 877 of file lz4/xxhash.c.

XXH_PUBLIC_API void XXH64_copyState ( XXH64_state_t dstState,
const XXH64_state_t srcState 
)

Definition at line 731 of file lz4/xxhash.c.

XXH_PUBLIC_API XXH64_state_t* XXH64_createState ( void  )

Definition at line 721 of file lz4/xxhash.c.

XXH_PUBLIC_API unsigned long long XXH64_digest ( const XXH64_state_t state_in)

Definition at line 864 of file lz4/xxhash.c.

FORCE_INLINE U64 XXH64_digest_endian ( const XXH64_state_t state,
XXH_endianess  endian 
)

Definition at line 813 of file lz4/xxhash.c.

FORCE_INLINE U64 XXH64_endian_align ( const void input,
size_t  len,
U64  seed,
XXH_endianess  endian,
XXH_alignment  align 
)

Definition at line 624 of file lz4/xxhash.c.

XXH_PUBLIC_API XXH_errorcode XXH64_freeState ( XXH64_state_t statePtr)

Definition at line 725 of file lz4/xxhash.c.

XXH_PUBLIC_API XXH64_hash_t XXH64_hashFromCanonical ( const XXH64_canonical_t src)

Definition at line 884 of file lz4/xxhash.c.

static U64 XXH64_mergeRound ( U64  acc,
U64  val 
)
static

Definition at line 616 of file lz4/xxhash.c.

XXH_PUBLIC_API XXH_errorcode XXH64_reset ( XXH64_state_t statePtr,
unsigned long long  seed 
)

Definition at line 736 of file lz4/xxhash.c.

static U64 XXH64_round ( U64  acc,
U64  input 
)
static

Definition at line 608 of file lz4/xxhash.c.

XXH_PUBLIC_API XXH_errorcode XXH64_update ( XXH64_state_t state_in,
const void input,
size_t  len 
)

Definition at line 803 of file lz4/xxhash.c.

FORCE_INLINE XXH_errorcode XXH64_update_endian ( XXH64_state_t state,
const void input,
size_t  len,
XXH_endianess  endian 
)

Definition at line 748 of file lz4/xxhash.c.

static void XXH_free ( void p)
static

Definition at line 102 of file lz4/xxhash.c.

static void* XXH_malloc ( size_t  s)
static

Modify the local functions below should you wish to use some other memory routines for malloc(), free()

Definition at line 101 of file lz4/xxhash.c.

static void* XXH_memcpy ( void dest,
const void src,
size_t  size 
)
static

and for memcpy()

Definition at line 105 of file lz4/xxhash.c.

static U32 XXH_read32 ( const void memPtr)
static

Definition at line 165 of file lz4/xxhash.c.

static U64 XXH_read64 ( const void memPtr)
static

Definition at line 554 of file lz4/xxhash.c.

static U32 XXH_readBE32 ( const void ptr)
static

Definition at line 234 of file lz4/xxhash.c.

static U64 XXH_readBE64 ( const void ptr)
static

Definition at line 594 of file lz4/xxhash.c.

FORCE_INLINE U32 XXH_readLE32 ( const void ptr,
XXH_endianess  endian 
)

Definition at line 229 of file lz4/xxhash.c.

FORCE_INLINE U32 XXH_readLE32_align ( const void ptr,
XXH_endianess  endian,
XXH_alignment  align 
)

Definition at line 221 of file lz4/xxhash.c.

FORCE_INLINE U64 XXH_readLE64 ( const void ptr,
XXH_endianess  endian 
)

Definition at line 589 of file lz4/xxhash.c.

FORCE_INLINE U64 XXH_readLE64_align ( const void ptr,
XXH_endianess  endian,
XXH_alignment  align 
)

Definition at line 581 of file lz4/xxhash.c.

static U32 XXH_swap32 ( U32  x)
static

Definition at line 194 of file lz4/xxhash.c.

static U64 XXH_swap64 ( U64  x)
static

Definition at line 568 of file lz4/xxhash.c.

XXH_PUBLIC_API unsigned XXH_versionNumber ( void  )

Definition at line 244 of file lz4/xxhash.c.

Variable Documentation

const int g_one = 1
static

Definition at line 211 of file lz4/xxhash.c.

const U32 PRIME32_1 = 2654435761U
static

Definition at line 250 of file lz4/xxhash.c.

const U32 PRIME32_2 = 2246822519U
static

Definition at line 251 of file lz4/xxhash.c.

const U32 PRIME32_3 = 3266489917U
static

Definition at line 252 of file lz4/xxhash.c.

const U32 PRIME32_4 = 668265263U
static

Definition at line 253 of file lz4/xxhash.c.

const U32 PRIME32_5 = 374761393U
static

Definition at line 254 of file lz4/xxhash.c.

const U64 PRIME64_1 = 11400714785074694791ULL
static

Definition at line 602 of file lz4/xxhash.c.

const U64 PRIME64_2 = 14029467366897019727ULL
static

Definition at line 603 of file lz4/xxhash.c.

const U64 PRIME64_3 = 1609587929392839161ULL
static

Definition at line 604 of file lz4/xxhash.c.

const U64 PRIME64_4 = 9650029242287828579ULL
static

Definition at line 605 of file lz4/xxhash.c.

const U64 PRIME64_5 = 2870177450012600261ULL
static

Definition at line 606 of file lz4/xxhash.c.



librealsense2
Author(s): Sergey Dorodnicov , Doron Hirshberg , Mark Horn , Reagan Lopez , Itay Carpis
autogenerated on Mon May 3 2021 02:50:31