> -----Original Message-----
> From: Shally Verma [mailto:shally.ve...@caviumnetworks.com]
> Sent: Tuesday, June 5, 2018 11:35 AM
> To: De Lara Guarch, Pablo <pablo.de.lara.gua...@intel.com>
> Cc: Trahe, Fiona <fiona.tr...@intel.com>; dev@dpdk.org;
> pathr...@caviumnetworks.com; mcha...@caviumnetworks.com; Ashish Gupta
> <ashish.gu...@caviumnetworks.com>; Sunila Sahu
> <sunila.s...@caviumnetworks.com>
> Subject: [PATCH v1 4/7] compress/octeontx: add ops enq deq apis
>
> implement enqueue and dequeue apis
>
> Signed-off-by: Ashish Gupta <ashish.gu...@caviumnetworks.com>
> Signed-off-by: Shally Verma <shally.ve...@caviumnetworks.com>
> Signed-off-by: Sunila Sahu <sunila.s...@caviumnetworks.com>
...
> --- a/drivers/compress/octeontx/zipvf.h
> +++ b/drivers/compress/octeontx/zipvf.h
...
> +static inline int
> +zipvf_prepare_out_buf(struct zip_stream *zstrm, struct rte_comp_op *op)
> +{
> + uint32_t offset;
> + union zip_zptr_s *sg_list = NULL;
> + struct rte_mbuf *m_dst;
> + union zip_inst_s *inst = zstrm->inst;
> + rte_iova_t iova;
> +
> + offset = op->src.offset;
> + m_dst = op->m_dst;
> +
> + if (m_dst->nb_segs == 1) {
> + /* Prepare direct input data pointer */
> + inst->s.ds = 0;
> + inst->s.out_ptr_addr.s.addr =
> + rte_pktmbuf_iova_offset(m_dst, offset);
> + inst->s.totaloutputlength = rte_pktmbuf_data_len(m_dst) -
> + op->dst.offset;
> + inst->s.out_ptr_ctl.s.length = inst->s.totaloutputlength;
> + return 0;
> + }
> +
> + ZIP_PMD_ERR("output packet is segmented\n");
> +
> + /* Packet is segmented, create gather buffer */
> + inst->s.ds = 1;
> + iova = rte_mempool_virt2iova(zstrm->bufs[OUT_DATA_BUF]);
> + if (iova & 0xF) {
> + /* Align it to 16 Byte address */
> + iova = ZIP_ALIGN_ROUNDUP(iova, ZIP_SGPTR_ALIGN);
> + }
> +
> + inst->s.out_ptr_addr.s.addr = iova;
> + inst->s.inp_ptr_ctl.s.length = (m_dst->nb_segs < MAX_SG_LEN) ?
> + (m_dst->nb_segs) : MAX_SG_LEN;
> +
> + sg_list = (union zip_zptr_s *)iova;
There is a compilation issue on gcc 32 bits:
drivers/compress/octeontx/zipvf.h:260:12: error:
cast to pointer from integer of different size [-Werror=int-to-pointer-cast]
sg_list = (union zip_zptr_s *)iova;