libosmocore 1.9.0.196-9975
Osmocom core library
hash.h File Reference
#include <osmocom/core/log2.h>
#include <limits.h>

Go to the source code of this file.

Macros

#define BITS_PER_LONG   64
 
#define hash_long(val, bits)   hash_64(val, bits)
 
#define GOLDEN_RATIO_PRIME   GOLDEN_RATIO_64
 
#define GOLDEN_RATIO_32   0x61C88647
 
#define GOLDEN_RATIO_64   0x61C8864680B583EBull
 
#define __hash_32   __hash_32_generic
 
#define hash_32   hash_32_generic
 
#define hash_64   hash_64_generic
 

Functions

static uint32_t __hash_32_generic (uint32_t val)
 
static uint32_t hash_32_generic (uint32_t val, unsigned int bits)
 
static __always_inline uint32_t hash_64_generic (uint64_t val, unsigned int bits)
 
static uint32_t hash_ptr (const void *ptr, unsigned int bits)
 
static uint32_t hash32_ptr (const void *ptr)
 

Macro Definition Documentation

◆ __hash_32

#define __hash_32   __hash_32_generic

◆ BITS_PER_LONG

#define BITS_PER_LONG   64

◆ GOLDEN_RATIO_32

#define GOLDEN_RATIO_32   0x61C88647

◆ GOLDEN_RATIO_64

#define GOLDEN_RATIO_64   0x61C8864680B583EBull

◆ GOLDEN_RATIO_PRIME

#define GOLDEN_RATIO_PRIME   GOLDEN_RATIO_64

◆ hash_32

#define hash_32   hash_32_generic

◆ hash_64

#define hash_64   hash_64_generic

◆ hash_long

#define hash_long (   val,
  bits 
)    hash_64(val, bits)

Function Documentation

◆ __hash_32_generic()

static uint32_t __hash_32_generic ( uint32_t  val)
inlinestatic

References GOLDEN_RATIO_32.

◆ hash32_ptr()

static uint32_t hash32_ptr ( const void *  ptr)
inlinestatic

◆ hash_32_generic()

static uint32_t hash_32_generic ( uint32_t  val,
unsigned int  bits 
)
inlinestatic

References __hash_32.

◆ hash_64_generic()

static __always_inline uint32_t hash_64_generic ( uint64_t  val,
unsigned int  bits 
)
static

References __hash_32, GOLDEN_RATIO_64, and hash_32.

◆ hash_ptr()

static uint32_t hash_ptr ( const void *  ptr,
unsigned int  bits 
)
inlinestatic

References hash_long.