+struct array_of_ptrs {
+ phys_addr_t pointer[0];
+};
+
+struct qat_inter_sgl {
+ qat_sgl_hdr;
+ struct qat_flat_buf buffers[QAT_NUM_BUFS_IN_IM_SGL];
+} __rte_packed __rte_cache_aligned;
+
+
+struct qat_comp_op_cookie {
+ phys_addr_t qat_sgl_src_phys_addr;
+ phys_addr_t qat_sgl_dst_phys_addr;
+ /* dynamically created SGLs */
+ uint8_t error;
+ uint8_t socket_id;
+ uint16_t src_nb_elems;
+ uint16_t dst_nb_elems;
+ struct qat_sgl *qat_sgl_src_d;
+ struct qat_sgl *qat_sgl_dst_d;
+ struct qat_qp *qp;
+ uint32_t cookie_index;
+
+ /* QAT IM buffer too small handling: */
+ uint8_t split_op;
+ uint8_t nb_children;
+
+ /* used by the parent only */
+ uint8_t nb_child_responses;
+ uint32_t total_consumed;
+ uint32_t total_produced;
+ const struct rte_memzone **dst_memzones;
+ struct rte_mbuf *dst_data;
+ uint32_t dst_data_offset;
+
+ /* used by the child only */
+ struct qat_comp_op_cookie *parent_cookie;
+ void *dest_buffer;
+};