xref: /dpdk/lib/hash/rte_crc_generic.h (revision f80ae1aa9a61ed3f3de85a964e7494a8256f98b9)
1*f80ae1aaSPavan Nikhilesh /* SPDX-License-Identifier: BSD-3-Clause
2*f80ae1aaSPavan Nikhilesh  * Copyright(c) 2022 Marvell.
3*f80ae1aaSPavan Nikhilesh  */
4*f80ae1aaSPavan Nikhilesh 
5*f80ae1aaSPavan Nikhilesh #ifndef _RTE_CRC_GENERIC_H_
6*f80ae1aaSPavan Nikhilesh #define _RTE_CRC_GENERIC_H_
7*f80ae1aaSPavan Nikhilesh 
8*f80ae1aaSPavan Nikhilesh /* Software crc32 implementation for 1 byte value. */
9*f80ae1aaSPavan Nikhilesh static inline uint32_t
rte_hash_crc_1byte(uint8_t data,uint32_t init_val)10*f80ae1aaSPavan Nikhilesh rte_hash_crc_1byte(uint8_t data, uint32_t init_val)
11*f80ae1aaSPavan Nikhilesh {
12*f80ae1aaSPavan Nikhilesh 	return crc32c_1byte(data, init_val);
13*f80ae1aaSPavan Nikhilesh }
14*f80ae1aaSPavan Nikhilesh 
15*f80ae1aaSPavan Nikhilesh /* Software crc32 implementation for 2 byte value. */
16*f80ae1aaSPavan Nikhilesh static inline uint32_t
rte_hash_crc_2byte(uint16_t data,uint32_t init_val)17*f80ae1aaSPavan Nikhilesh rte_hash_crc_2byte(uint16_t data, uint32_t init_val)
18*f80ae1aaSPavan Nikhilesh {
19*f80ae1aaSPavan Nikhilesh 	return crc32c_2bytes(data, init_val);
20*f80ae1aaSPavan Nikhilesh }
21*f80ae1aaSPavan Nikhilesh 
22*f80ae1aaSPavan Nikhilesh /* Software crc32 implementation for 4 byte value. */
23*f80ae1aaSPavan Nikhilesh static inline uint32_t
rte_hash_crc_4byte(uint32_t data,uint32_t init_val)24*f80ae1aaSPavan Nikhilesh rte_hash_crc_4byte(uint32_t data, uint32_t init_val)
25*f80ae1aaSPavan Nikhilesh {
26*f80ae1aaSPavan Nikhilesh 	return crc32c_1word(data, init_val);
27*f80ae1aaSPavan Nikhilesh }
28*f80ae1aaSPavan Nikhilesh 
29*f80ae1aaSPavan Nikhilesh /* Software crc32 implementation for 8 byte value. */
30*f80ae1aaSPavan Nikhilesh static inline uint32_t
rte_hash_crc_8byte(uint64_t data,uint32_t init_val)31*f80ae1aaSPavan Nikhilesh rte_hash_crc_8byte(uint64_t data, uint32_t init_val)
32*f80ae1aaSPavan Nikhilesh {
33*f80ae1aaSPavan Nikhilesh 	return crc32c_2words(data, init_val);
34*f80ae1aaSPavan Nikhilesh }
35*f80ae1aaSPavan Nikhilesh 
36*f80ae1aaSPavan Nikhilesh #endif /* _RTE_CRC_GENERIC_H_ */
37