xref: /dpdk/drivers/compress/zlib/zlib_pmd_private.h (revision fd51012de5369679e807be1d6a81d63ef15015ce)
10c4e4c16SAshish Gupta /* SPDX-License-Identifier: BSD-3-Clause
20c4e4c16SAshish Gupta  * Copyright(c) 2018 Cavium Networks
30c4e4c16SAshish Gupta  */
40c4e4c16SAshish Gupta 
5b28f28aeSDharmik Thakkar #ifndef _ZLIB_PMD_PRIVATE_H_
6b28f28aeSDharmik 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 
173071d471SBruce Richardson extern int zlib_logtype_driver;
182b843cacSDavid Marchand #define RTE_LOGTYPE_ZLIB_DRIVER zlib_logtype_driver
192b843cacSDavid Marchand #define ZLIB_PMD_LOG(level, ...) \
202b843cacSDavid Marchand 	RTE_LOG_LINE_PREFIX(level, ZLIB_DRIVER, "%s(): ", __func__, __VA_ARGS__)
210c4e4c16SAshish Gupta 
22*fd51012dSAndre Muezerie #define ZLIB_PMD_INFO(fmt, ...) \
23*fd51012dSAndre Muezerie 	ZLIB_PMD_LOG(INFO, fmt, ## __VA_ARGS__)
24*fd51012dSAndre Muezerie #define ZLIB_PMD_ERR(fmt, ...) \
25*fd51012dSAndre Muezerie 	ZLIB_PMD_LOG(ERR, fmt, ## __VA_ARGS__)
26*fd51012dSAndre Muezerie #define ZLIB_PMD_WARN(fmt, ...) \
27*fd51012dSAndre Muezerie 	ZLIB_PMD_LOG(WARNING, fmt, ## __VA_ARGS__)
280c4e4c16SAshish Gupta 
290c4e4c16SAshish Gupta struct zlib_private {
3027422fc3SAshish Gupta 	struct rte_mempool *mp;
310c4e4c16SAshish Gupta };
320c4e4c16SAshish Gupta 
3327595cd8STyler Retzlaff struct __rte_cache_aligned 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 */
4227595cd8STyler Retzlaff };
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 */
5027595cd8STyler Retzlaff struct __rte_cache_aligned 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) */
5727595cd8STyler Retzlaff };
5827422fc3SAshish Gupta 
5927422fc3SAshish Gupta /** ZLIB private xform structure */
6027595cd8STyler Retzlaff struct __rte_cache_aligned zlib_priv_xform {
6127422fc3SAshish Gupta 	struct zlib_stream stream;
6227595cd8STyler Retzlaff };
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 
71b28f28aeSDharmik Thakkar #endif /* _ZLIB_PMD_PRIVATE_H_ */
72