xref: /dpdk/drivers/compress/zlib/zlib_pmd_private.h (revision b28f28ae80e5c9aac28fbc3bf0842f22dc020f31)
10c4e4c16SAshish Gupta /* SPDX-License-Identifier: BSD-3-Clause
20c4e4c16SAshish Gupta  * Copyright(c) 2018 Cavium Networks
30c4e4c16SAshish Gupta  */
40c4e4c16SAshish Gupta 
5*b28f28aeSDharmik Thakkar #ifndef _ZLIB_PMD_PRIVATE_H_
6*b28f28aeSDharmik Thakkar #define _ZLIB_PMD_PRIVATE_H_
70c4e4c16SAshish Gupta 
80c4e4c16SAshish Gupta #include <zlib.h>
90c4e4c16SAshish Gupta #include <rte_compressdev.h>
100c4e4c16SAshish Gupta #include <rte_compressdev_pmd.h>
110c4e4c16SAshish Gupta 
120c4e4c16SAshish Gupta #define COMPRESSDEV_NAME_ZLIB_PMD	compress_zlib
130c4e4c16SAshish Gupta /**< ZLIB PMD device name */
140c4e4c16SAshish Gupta 
150c4e4c16SAshish Gupta #define DEF_MEM_LEVEL			8
160c4e4c16SAshish Gupta 
170c4e4c16SAshish Gupta int zlib_logtype_driver;
180c4e4c16SAshish Gupta #define ZLIB_PMD_LOG(level, fmt, args...) \
190c4e4c16SAshish Gupta 	rte_log(RTE_LOG_ ## level, zlib_logtype_driver, "%s(): "fmt "\n", \
200c4e4c16SAshish Gupta 			__func__, ##args)
210c4e4c16SAshish Gupta 
220c4e4c16SAshish Gupta #define ZLIB_PMD_INFO(fmt, args...) \
230c4e4c16SAshish Gupta 	ZLIB_PMD_LOG(INFO, fmt, ## args)
240c4e4c16SAshish Gupta #define ZLIB_PMD_ERR(fmt, args...) \
250c4e4c16SAshish Gupta 	ZLIB_PMD_LOG(ERR, fmt, ## args)
260c4e4c16SAshish Gupta #define ZLIB_PMD_WARN(fmt, args...) \
270c4e4c16SAshish Gupta 	ZLIB_PMD_LOG(WARNING, fmt, ## args)
280c4e4c16SAshish Gupta 
290c4e4c16SAshish Gupta struct zlib_private {
3027422fc3SAshish Gupta 	struct rte_mempool *mp;
310c4e4c16SAshish Gupta };
320c4e4c16SAshish Gupta 
3327422fc3SAshish Gupta struct zlib_qp {
3427422fc3SAshish Gupta 	struct rte_ring *processed_pkts;
3527422fc3SAshish Gupta 	/**< Ring for placing process packets */
3627422fc3SAshish Gupta 	struct rte_compressdev_stats qp_stats;
3727422fc3SAshish Gupta 	/**< Queue pair statistics */
3827422fc3SAshish Gupta 	uint16_t id;
3927422fc3SAshish Gupta 	/**< Queue Pair Identifier */
4027422fc3SAshish Gupta 	char name[RTE_COMPRESSDEV_NAME_MAX_LEN];
4127422fc3SAshish Gupta 	/**< Unique Queue Pair Name */
4227422fc3SAshish Gupta } __rte_cache_aligned;
4327422fc3SAshish Gupta 
4427422fc3SAshish Gupta /* Algorithm handler function prototype */
4527422fc3SAshish Gupta typedef void (*comp_func_t)(struct rte_comp_op *op, z_stream *strm);
4627422fc3SAshish Gupta 
4727422fc3SAshish Gupta typedef int (*comp_free_t)(z_stream *strm);
4827422fc3SAshish Gupta 
4927422fc3SAshish Gupta /** ZLIB Stream structure */
5027422fc3SAshish Gupta struct zlib_stream {
5127422fc3SAshish Gupta 	z_stream strm;
5227422fc3SAshish Gupta 	/**< zlib stream structure */
5327422fc3SAshish Gupta 	comp_func_t comp;
5427422fc3SAshish Gupta 	/**< Operation (compression/decompression) */
5527422fc3SAshish Gupta 	comp_free_t free;
5627422fc3SAshish Gupta 	/**< Free Operation (compression/decompression) */
5727422fc3SAshish Gupta } __rte_cache_aligned;
5827422fc3SAshish Gupta 
5927422fc3SAshish Gupta /** ZLIB private xform structure */
6027422fc3SAshish Gupta struct zlib_priv_xform {
6127422fc3SAshish Gupta 	struct zlib_stream stream;
6227422fc3SAshish Gupta } __rte_cache_aligned;
6327422fc3SAshish Gupta 
640cc20d33SSunila Sahu int
650cc20d33SSunila Sahu zlib_set_stream_parameters(const struct rte_comp_xform *xform,
660cc20d33SSunila Sahu 		struct zlib_stream *stream);
670cc20d33SSunila Sahu 
6827422fc3SAshish Gupta /** Device specific operations function pointer structure */
6927422fc3SAshish Gupta extern struct rte_compressdev_ops *rte_zlib_pmd_ops;
7027422fc3SAshish Gupta 
71*b28f28aeSDharmik Thakkar #endif /* _ZLIB_PMD_PRIVATE_H_ */
72