Scroll to navigation

rte_jhash.h(3) DPDK rte_jhash.h(3)

NAME

rte_jhash.h

SYNOPSIS

#include <stdint.h>
#include <string.h>
#include <limits.h>
#include <rte_config.h>
#include <rte_log.h>
#include <rte_byteorder.h>

Macros


#define RTE_JHASH_GOLDEN_RATIO 0xdeadbeef

Functions


static void rte_jhash_2hashes (const void *key, uint32_t length, uint32_t *pc, uint32_t *pb)
static void rte_jhash_32b_2hashes (const uint32_t *k, uint32_t length, uint32_t *pc, uint32_t *pb)
static uint32_t rte_jhash (const void *key, uint32_t length, uint32_t initval)
static uint32_t rte_jhash_32b (const uint32_t *k, uint32_t length, uint32_t initval)
static uint32_t rte_jhash_3words (uint32_t a, uint32_t b, uint32_t c, uint32_t initval)
static uint32_t rte_jhash_2words (uint32_t a, uint32_t b, uint32_t initval)
static uint32_t rte_jhash_1word (uint32_t a, uint32_t initval)

Detailed Description

jhash functions.

Definition in file rte_jhash.h.

Macro Definition Documentation

#define RTE_JHASH_GOLDEN_RATIO 0xdeadbeef

The golden ratio: an arbitrary value.

Definition at line 68 of file rte_jhash.h.

Function Documentation

static void rte_jhash_2hashes (const void * key, uint32_t length, uint32_t * pc, uint32_t * pb) [inline], [static]

Same as rte_jhash, but takes two seeds and return two uint32_ts. pc and pb must be non-null, and *pc and *pb must both be initialized with seeds. If you pass in (*pb)=0, the output (*pc) will be the same as the return value from rte_jhash.

Parameters:

key Key to calculate hash of.
length Length of key in bytes.
pc IN: seed OUT: primary hash value.
pb IN: second seed OUT: secondary hash value.

Definition at line 236 of file rte_jhash.h.

static void rte_jhash_32b_2hashes (const uint32_t * k, uint32_t length, uint32_t * pc, uint32_t * pb) [inline], [static]

Same as rte_jhash_32b, but takes two seeds and return two uint32_ts. pc and pb must be non-null, and *pc and *pb must both be initialized with seeds. If you pass in (*pb)=0, the output (*pc) will be the same as the return value from rte_jhash_32b.

Parameters:

k Key to calculate hash of.
length Length of key in units of 4 bytes.
pc IN: seed OUT: primary hash value.
pb IN: second seed OUT: secondary hash value.

Definition at line 257 of file rte_jhash.h.

static uint32_t rte_jhash (const void * key, uint32_t length, uint32_t initval) [inline], [static]

The most generic version, hashes an arbitrary sequence of bytes. No alignment or length assumptions are made about the input key. For keys not aligned to four byte boundaries or a multiple of four bytes in length, the memory region just after may be read (but not used in the computation). This may cross a page boundary.

Parameters:

key Key to calculate hash of.
length Length of key in bytes.
initval Initialising value of hash.

Returns:

Calculated hash value.

Definition at line 280 of file rte_jhash.h.

static uint32_t rte_jhash_32b (const uint32_t * k, uint32_t length, uint32_t initval) [inline], [static]

A special optimized version that handles 1 or more of uint32_ts. The length parameter here is the number of uint32_ts in the key.

Parameters:

k Key to calculate hash of.
length Length of key in units of 4 bytes.
initval Initialising value of hash.

Returns:

Calculated hash value.

Definition at line 303 of file rte_jhash.h.

static uint32_t rte_jhash_3words (uint32_t a, uint32_t b, uint32_t c, uint32_t initval) [inline], [static]

A special ultra-optimized versions that knows it is hashing exactly 3 words.

Parameters:

a First word to calculate hash of.
b Second word to calculate hash of.
c Third word to calculate hash of.
initval Initialising value of hash.

Returns:

Calculated hash value.

Definition at line 340 of file rte_jhash.h.

static uint32_t rte_jhash_2words (uint32_t a, uint32_t b, uint32_t initval) [inline], [static]

A special ultra-optimized versions that knows it is hashing exactly 2 words.

Parameters:

a First word to calculate hash of.
b Second word to calculate hash of.
initval Initialising value of hash.

Returns:

Calculated hash value.

Definition at line 359 of file rte_jhash.h.

static uint32_t rte_jhash_1word (uint32_t a, uint32_t initval) [inline], [static]

A special ultra-optimized versions that knows it is hashing exactly 1 word.

Parameters:

a Word to calculate hash of.
initval Initialising value of hash.

Returns:

Calculated hash value.

Definition at line 376 of file rte_jhash.h.

Author

Generated automatically by Doxygen for DPDK from the source code.

Thu May 23 2024 Version 23.11.0