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