> +static void nitrox_dump_zip_instr(struct nitrox_zip_instr *instr,
> + union nitrox_zip_zptr *hptr_arr,
> + union nitrox_zip_zptr *iptr_arr,
> + union nitrox_zip_zptr *optr_arr)
> +{
> + uint64_t value;
> + int i = 0;
> +
> + if (!rte_log_can_log(nitrox_logtype, RTE_LOG_DEBUG))
> + return;
> +
> + fprintf(stderr, "\nZIP instruction..(%p)\n", instr);
> + fprintf(stderr, "\tWORD0 = 0x%016"PRIx64"\n", instr->w0.u64);
> + fprintf(stderr, "\t\tTOL = %d\n", instr->w0.tol);
> + fprintf(stderr, "\t\tEXNUM = %d\n", instr->w0.exn);
> + fprintf(stderr, "\t\tEXBITS = %x\n", instr->w0.exbits);
> + fprintf(stderr, "\t\tCA = %d\n", instr->w0.ca);
> + fprintf(stderr, "\t\tSF = %d\n", instr->w0.sf);
> + fprintf(stderr, "\t\tSS = %d\n", instr->w0.ss);
> + fprintf(stderr, "\t\tCC = %d\n", instr->w0.cc);
> + fprintf(stderr, "\t\tEF = %d\n", instr->w0.ef);
> + fprintf(stderr, "\t\tBF = %d\n", instr->w0.bf);
> + fprintf(stderr, "\t\tCO = %d\n", instr->w0.co);
> + fprintf(stderr, "\t\tDS = %d\n", instr->w0.ds);
> + fprintf(stderr, "\t\tDG = %d\n", instr->w0.dg);
> + fprintf(stderr, "\t\tHG = %d\n", instr->w0.hg);
> + fprintf(stderr, "\n");
> +
> + fprintf(stderr, "\tWORD1 = 0x%016"PRIx64"\n", instr->w1.u64);
> + fprintf(stderr, "\t\tHL = %d\n", instr->w1.hl);
> + fprintf(stderr, "\t\tADLERCRC32 = 0x%08x\n", instr->w1.adlercrc32);
> + fprintf(stderr, "\n");
> +
> + value = instr->w2.cptr;
> + fprintf(stderr, "\tWORD2 = 0x%016"PRIx64"\n", instr->w2.u64);
> + fprintf(stderr, "\t\tCPTR = 0x%11"PRIx64"\n", value);
> + fprintf(stderr, "\n");
> +
> + value = instr->w3.hptr;
> + fprintf(stderr, "\tWORD3 = 0x%016"PRIx64"\n", instr->w3.u64);
> + fprintf(stderr, "\t\tHLEN = %d\n", instr->w3.hlen);
> + fprintf(stderr, "\t\tHPTR = 0x%11"PRIx64"\n", value);
> +
> + if (instr->w0.hg && hptr_arr) {
> + for (i = 0; i < instr->w3.hlen; i++) {
> + value = hptr_arr[i].s.addr;
> + fprintf(stderr, "\t\t\tZPTR[%d] : Length = %d Addr =
> 0x%11"PRIx64"\n",
> + i, hptr_arr[i].s.length, value);
> + }
> + }
> +
> + fprintf(stderr, "\n");
> +
> + value = instr->w4.iptr;
> + fprintf(stderr, "\tWORD4 = 0x%016"PRIx64"\n", instr->w4.u64);
> + fprintf(stderr, "\t\tILEN = %d\n", instr->w4.ilen);
> + fprintf(stderr, "\t\tIPTR = 0x%11"PRIx64"\n", value);
> + if (instr->w0.dg && iptr_arr) {
> + for (i = 0; i < instr->w4.ilen; i++) {
> + value = iptr_arr[i].s.addr;
> + fprintf(stderr, "\t\t\tZPTR[%d] : Length = %d Addr =
> 0x%11"PRIx64"\n",
> + i, iptr_arr[i].s.length, value);
> + }
> + }
> +
> + fprintf(stderr, "\n");
> +
> + value = instr->w5.optr;
> + fprintf(stderr, "\tWORD5 = 0x%016"PRIx64"\n", instr->w5.u64);
> + fprintf(stderr, "\t\t OLEN = %d\n", instr->w5.olen);
> + fprintf(stderr, "\t\t OPTR = 0x%11"PRIx64"\n", value);
> + if (instr->w0.ds && optr_arr) {
> + for (i = 0; i < instr->w5.olen; i++) {
> + value = optr_arr[i].s.addr;
> + fprintf(stderr, "\t\t\tZPTR[%d] : Length = %d Addr =
> 0x%11"PRIx64"\n",
> + i, optr_arr[i].s.length, value);
> + }
> + }
> +
> + fprintf(stderr, "\n");
> +
> + value = instr->w6.rptr;
> + fprintf(stderr, "\tWORD6 = 0x%016"PRIx64"\n", instr->w6.u64);
> + fprintf(stderr, "\t\tRPTR = 0x%11"PRIx64"\n", value);
> + fprintf(stderr, "\n");
> +
> + fprintf(stderr, "\tWORD7 = 0x%016"PRIx64"\n", instr->w7.u64);
> + fprintf(stderr, "\t\tGRP = %x\n", instr->w7.grp);
> + fprintf(stderr, "\t\tADDR_MSB = 0x%5x\n", instr->w7.addr_msb);
> + fprintf(stderr, "\n");
> +}
> +
> +static void nitrox_dump_zip_result(struct nitrox_zip_instr *instr,
> + struct nitrox_zip_result *result)
> +{
> + if (!rte_log_can_log(nitrox_logtype, RTE_LOG_DEBUG))
> + return;
> +
> + fprintf(stderr, "ZIP result..(instr %p)\n", instr);
> + fprintf(stderr, "\tWORD0 = 0x%016"PRIx64"\n", result->w0.u64);
> + fprintf(stderr, "\t\tCRC32 = 0x%8x\n", result->w0.crc32);
> + fprintf(stderr, "\t\tADLER32 = 0x%8x\n", result->w0.adler32);
> + fprintf(stderr, "\n");
> +
> + fprintf(stderr, "\tWORD1 = 0x%016"PRIx64"\n", result->w1.u64);
> + fprintf(stderr, "\t\tTBYTESWRITTEN = %u\n", result->w1.tbyteswritten);
> + fprintf(stderr, "\t\tTBYTESREAD = %u\n", result->w1.tbytesread);
> + fprintf(stderr, "\n");
> +
> + fprintf(stderr, "\tWORD2 = 0x%016"PRIx64"\n", result->w2.u64);
> + fprintf(stderr, "\t\tTBITS = %u\n", result->w2.tbits);
> + fprintf(stderr, "\t\tEXN = %d\n", result->w2.exn);
> + fprintf(stderr, "\t\tEBITS = %x\n", result->w2.exbits);
> + fprintf(stderr, "\t\tEF = %d\n", result->w2.ef);
> + fprintf(stderr, "\t\tCOMPCODE = 0x%2x\n", result->w2.compcode);
> + fprintf(stderr, "\n");
> +}
Writing to stdout or stderr is prohibited now. Please use DPDK logging.