numam-dpdk/drivers/compress/zlib/zlib_pmd_private.h
Sunila Sahu 0cc20d33ac compress/zlib: create private xform
Create non-shareable private xform for stateless
operation processing

Signed-off-by: Sunila Sahu <sunila.sahu@caviumnetworks.com>
Signed-off-by: Shally Verma <shally.verma@caviumnetworks.com>
Signed-off-by: Ashish Gupta <ashish.gupta@caviumnetworks.com>
2018-07-25 08:21:25 +02:00

72 lines
1.8 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2018 Cavium Networks
*/
#ifndef _RTE_ZLIB_PMD_PRIVATE_H_
#define _RTE_ZLIB_PMD_PRIVATE_H_
#include <zlib.h>
#include <rte_compressdev.h>
#include <rte_compressdev_pmd.h>
#define COMPRESSDEV_NAME_ZLIB_PMD compress_zlib
/**< ZLIB PMD device name */
#define DEF_MEM_LEVEL 8
int zlib_logtype_driver;
#define ZLIB_PMD_LOG(level, fmt, args...) \
rte_log(RTE_LOG_ ## level, zlib_logtype_driver, "%s(): "fmt "\n", \
__func__, ##args)
#define ZLIB_PMD_INFO(fmt, args...) \
ZLIB_PMD_LOG(INFO, fmt, ## args)
#define ZLIB_PMD_ERR(fmt, args...) \
ZLIB_PMD_LOG(ERR, fmt, ## args)
#define ZLIB_PMD_WARN(fmt, args...) \
ZLIB_PMD_LOG(WARNING, fmt, ## args)
struct zlib_private {
struct rte_mempool *mp;
};
struct zlib_qp {
struct rte_ring *processed_pkts;
/**< Ring for placing process packets */
struct rte_compressdev_stats qp_stats;
/**< Queue pair statistics */
uint16_t id;
/**< Queue Pair Identifier */
char name[RTE_COMPRESSDEV_NAME_MAX_LEN];
/**< Unique Queue Pair Name */
} __rte_cache_aligned;
/* Algorithm handler function prototype */
typedef void (*comp_func_t)(struct rte_comp_op *op, z_stream *strm);
typedef int (*comp_free_t)(z_stream *strm);
/** ZLIB Stream structure */
struct zlib_stream {
z_stream strm;
/**< zlib stream structure */
comp_func_t comp;
/**< Operation (compression/decompression) */
comp_free_t free;
/**< Free Operation (compression/decompression) */
} __rte_cache_aligned;
/** ZLIB private xform structure */
struct zlib_priv_xform {
struct zlib_stream stream;
} __rte_cache_aligned;
int
zlib_set_stream_parameters(const struct rte_comp_xform *xform,
struct zlib_stream *stream);
/** Device specific operations function pointer structure */
extern struct rte_compressdev_ops *rte_zlib_pmd_ops;
#endif /* _RTE_ZLIB_PMD_PRIVATE_H_ */