New upstream version 18.08
[deb_dpdk.git] / drivers / compress / isal / isal_compress_pmd_private.h
diff --git a/drivers/compress/isal/isal_compress_pmd_private.h b/drivers/compress/isal/isal_compress_pmd_private.h
new file mode 100644 (file)
index 0000000..46e9fcf
--- /dev/null
@@ -0,0 +1,57 @@
+/* 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_ */