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