numam-dpdk/drivers/compress/isal/isal_compress_pmd_private.h
Lee Daly 7bf4f0630a compress/isal: add ISA-L decomp functionality
Adds decompression functionality, similar to compression,
this sets internal ISA-L structures, provides input & output mbuf
addresses, executes decompression, which ISA-L calls inflate and
finally error checks.

Signed-off-by: Lee Daly <lee.daly@intel.com>
Acked-by: Greg Tucker <greg.b.tucker@intel.com>
Reviewed-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2018-05-10 17:46:20 +01:00

58 lines
1.6 KiB
C

/* SPDX-License-Identifier: BSD-3-Clause
* Copyright(c) 2018 Intel Corporation
*/
#ifndef _ISAL_COMP_PMD_PRIVATE_H_
#define _ISAL_COMP_PMD_PRIVATE_H_
#define COMPDEV_NAME_ISAL_PMD compress_isal
/**< ISA-L comp PMD device name */
extern int isal_logtype_driver;
#define ISAL_PMD_LOG(level, fmt, args...) \
rte_log(RTE_LOG_ ## level, isal_logtype_driver, "%s(): "fmt "\n", \
__func__, ##args)
/* private data structure for each ISA-L compression device */
struct isal_comp_private {
struct rte_mempool *priv_xform_mp;
};
/** ISA-L queue pair */
struct isal_comp_qp {
/* Queue Pair Identifier */
uint16_t id;
/* Unique Queue Pair Name */
char name[RTE_COMPRESSDEV_NAME_MAX_LEN];
/* Ring for placing process packets */
struct rte_ring *processed_pkts;
/* Queue pair statistics */
struct rte_compressdev_stats qp_stats;
/* Compression stream information*/
struct isal_zstream *stream;
/* Decompression state information*/
struct inflate_state *state;
/* Number of free elements on ring */
uint16_t num_free_elements;
} __rte_cache_aligned;
/** ISA-L private xform structure */
struct isal_priv_xform {
enum rte_comp_xform_type type;
union {
struct rte_comp_compress_xform compress;
struct rte_comp_decompress_xform decompress;
};
uint32_t level_buffer_size;
} __rte_cache_aligned;
/** Set and validate NULL comp private xform parameters */
extern int
isal_comp_set_priv_xform_parameters(struct isal_priv_xform *priv_xform,
const struct rte_comp_xform *xform);
/** device specific operations function pointer structure */
extern struct rte_compressdev_ops *isal_compress_pmd_ops;
#endif /* _ISAL_COMP_PMD_PRIVATE_H_ */