CNDP  22.08.0
cne_hash_crc.h File Reference
#include <stdint.h>
#include <cne_branch_prediction.h>
#include <cne_common.h>

Go to the source code of this file.

Functions

static void cne_hash_crc_set_alg (uint8_t alg)
 
static uint32_t cne_hash_crc_1byte (uint8_t data, uint32_t init_val)
 
static uint32_t cne_hash_crc_2byte (uint16_t data, uint32_t init_val)
 
static uint32_t cne_hash_crc_4byte (uint32_t data, uint32_t init_val)
 
static uint32_t cne_hash_crc_8byte (uint64_t data, uint32_t init_val)
 
static uint32_t cne_hash_crc (const void *data, uint32_t data_len, uint32_t init_val)
 

Detailed Description

CNE CRC Hash

Definition in file cne_hash_crc.h.

Function Documentation

◆ cne_hash_crc_set_alg()

static void cne_hash_crc_set_alg ( uint8_t  alg)
inlinestatic

Allow or disallow use of SSE4.2 intrinsics for CRC32 hash calculation.

Parameters
algAn OR of following flags:
  • (CRC32_SW) Don't use SSE4.2 intrinsics
  • (CRC32_SSE42) Use SSE4.2 intrinsics if available
  • (CRC32_SSE42_x64) Use 64-bit SSE4.2 intrinsic if available (default)

Definition at line 429 of file cne_hash_crc.h.

◆ cne_hash_crc_1byte()

static uint32_t cne_hash_crc_1byte ( uint8_t  data,
uint32_t  init_val 
)
inlinestatic

Use single crc32 instruction to perform a hash on a byte value. Fall back to software crc32 implementation in case SSE4.2 is not supported

Parameters
dataData to perform hash on.
init_valValue to initialise hash generator.
Returns
32bit calculated hash value.

Definition at line 457 of file cne_hash_crc.h.

◆ cne_hash_crc_2byte()

static uint32_t cne_hash_crc_2byte ( uint16_t  data,
uint32_t  init_val 
)
inlinestatic

Use single crc32 instruction to perform a hash on a 2 bytes value. Fall back to software crc32 implementation in case SSE4.2 is not supported

Parameters
dataData to perform hash on.
init_valValue to initialise hash generator.
Returns
32bit calculated hash value.

Definition at line 478 of file cne_hash_crc.h.

◆ cne_hash_crc_4byte()

static uint32_t cne_hash_crc_4byte ( uint32_t  data,
uint32_t  init_val 
)
inlinestatic

Use single crc32 instruction to perform a hash on a 4 byte value. Fall back to software crc32 implementation in case SSE4.2 is not supported

Parameters
dataData to perform hash on.
init_valValue to initialise hash generator.
Returns
32bit calculated hash value.

Definition at line 499 of file cne_hash_crc.h.

◆ cne_hash_crc_8byte()

static uint32_t cne_hash_crc_8byte ( uint64_t  data,
uint32_t  init_val 
)
inlinestatic

Use single crc32 instruction to perform a hash on a 8 byte value. Fall back to software crc32 implementation in case SSE4.2 is not supported

Parameters
dataData to perform hash on.
init_valValue to initialise hash generator.
Returns
32bit calculated hash value.

Definition at line 520 of file cne_hash_crc.h.

◆ cne_hash_crc()

static uint32_t cne_hash_crc ( const void *  data,
uint32_t  data_len,
uint32_t  init_val 
)
inlinestatic

Calculate CRC32 hash on user-supplied byte array.

Parameters
dataData to perform hash on.
data_lenHow many bytes to use to calculate hash value.
init_valValue to initialise hash generator.
Returns
32bit calculated hash value.

Definition at line 544 of file cne_hash_crc.h.