1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright(c) 2018 Intel Corporation 3 */ 4 5 #ifndef _ISAL_COMP_PMD_PRIVATE_H_ 6 #define _ISAL_COMP_PMD_PRIVATE_H_ 7 8 #define COMPDEV_NAME_ISAL_PMD compress_isal 9 /**< ISA-L comp PMD device name */ 10 11 extern int isal_logtype_driver; 12 #define RTE_LOGTYPE_ISAL_DRIVER isal_logtype_driver 13 #define ISAL_PMD_LOG(level, ...) \ 14 RTE_LOG_LINE_PREFIX(level, ISAL_DRIVER, "%s(): ", __func__, __VA_ARGS__) 15 16 /* private data structure for each ISA-L compression device */ 17 struct isal_comp_private { 18 struct rte_mempool *priv_xform_mp; 19 }; 20 21 /** ISA-L queue pair */ 22 struct __rte_cache_aligned isal_comp_qp { 23 /* Queue Pair Identifier */ 24 uint16_t id; 25 /* Unique Queue Pair Name */ 26 char name[RTE_COMPRESSDEV_NAME_MAX_LEN]; 27 /* Ring for placing process packets */ 28 struct rte_ring *processed_pkts; 29 /* Queue pair statistics */ 30 struct rte_compressdev_stats qp_stats; 31 /* Compression stream information*/ 32 struct isal_zstream *stream; 33 /* Decompression state information*/ 34 struct inflate_state *state; 35 /* Number of free elements on ring */ 36 uint16_t num_free_elements; 37 }; 38 39 /** ISA-L private xform structure */ 40 struct __rte_cache_aligned isal_priv_xform { 41 enum rte_comp_xform_type type; 42 union { 43 struct rte_comp_compress_xform compress; 44 struct rte_comp_decompress_xform decompress; 45 }; 46 uint32_t level_buffer_size; 47 }; 48 49 /** Set and validate NULL comp private xform parameters */ 50 extern int 51 isal_comp_set_priv_xform_parameters(struct isal_priv_xform *priv_xform, 52 const struct rte_comp_xform *xform); 53 54 /** device specific operations function pointer structure */ 55 extern struct rte_compressdev_ops *isal_compress_pmd_ops; 56 57 #endif /* _ISAL_COMP_PMD_PRIVATE_H_ */ 58