DPDK  25.03.0
rte_net_crc.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2017-2020 Intel Corporation
3  */
4 
5 #ifndef _RTE_NET_CRC_H_
6 #define _RTE_NET_CRC_H_
7 
8 #include <stdint.h>
9 #include <rte_common.h>
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
16 enum rte_net_crc_type {
17  RTE_NET_CRC16_CCITT = 0,
18  RTE_NET_CRC32_ETH,
19  RTE_NET_CRC_REQS
20 };
21 
23 enum rte_net_crc_alg {
24  RTE_NET_CRC_SCALAR = 0,
25  RTE_NET_CRC_SSE42,
26  RTE_NET_CRC_NEON,
27  RTE_NET_CRC_AVX512,
28 };
29 
31 struct rte_net_crc;
32 
40 void
41 rte_net_crc_free(struct rte_net_crc *crc);
42 
60 struct rte_net_crc *
61 rte_net_crc_set_alg(enum rte_net_crc_alg alg, enum rte_net_crc_type type)
62  __rte_malloc __rte_dealloc(rte_net_crc_free, 1);
63 
81 uint32_t
82 rte_net_crc_calc(const struct rte_net_crc *ctx,
83  const void *data, const uint32_t data_len);
84 
85 #ifdef __cplusplus
86 }
87 #endif
88 
89 
90 #endif /* _RTE_NET_CRC_H_ */
#define __rte_dealloc(dealloc, argno)
Definition: rte_common.h:305
#define __rte_malloc
Definition: rte_common.h:294