5 #ifndef _RTE_HASH_CRC_H_
6 #define _RTE_HASH_CRC_H_
18 #include <rte_config.h>
20 #include "rte_crc_sw.h"
22 #define CRC32_SW (1U << 0)
23 #define CRC32_SSE42 (1U << 1)
24 #define CRC32_x64 (1U << 2)
25 #define CRC32_SSE42_x64 (CRC32_x64|CRC32_SSE42)
26 #define CRC32_ARM64 (1U << 3)
28 extern uint8_t rte_hash_crc32_alg;
30 #if defined(RTE_ARCH_ARM64) && defined(__ARM_FEATURE_CRC32)
31 #include "rte_crc_arm64.h"
32 #elif defined(RTE_ARCH_X86)
33 #include "rte_crc_x86.h"
35 #include "rte_crc_generic.h"
68 static inline uint32_t
81 static inline uint32_t
94 static inline uint32_t
107 static inline uint32_t
124 static inline uint32_t
128 uintptr_t pd = (uintptr_t) data;
130 for (i = 0; i < data_len / 8; i++) {
135 if (data_len & 0x4) {
140 if (data_len & 0x2) {
void rte_hash_crc_set_alg(uint8_t alg)
static uint32_t rte_hash_crc_2byte(uint16_t data, uint32_t init_val)
static uint32_t rte_hash_crc_8byte(uint64_t data, uint32_t init_val)
static uint32_t rte_hash_crc(const void *data, uint32_t data_len, uint32_t init_val)
static uint32_t rte_hash_crc_1byte(uint8_t data, uint32_t init_val)
static uint32_t rte_hash_crc_4byte(uint32_t data, uint32_t init_val)