net/bnxt: add computed header field in result opcode
[dpdk.git] / lib / librte_mbuf / rte_mbuf_dyn.c
index de7d2eb..538a43f 100644 (file)
@@ -67,13 +67,16 @@ process_score(void)
                        shm->free_space[i] = 1;
        }
 
-       for (off = 0; off < sizeof(struct rte_mbuf); off++) {
+       off = 0;
+       while (off < sizeof(struct rte_mbuf)) {
                /* get the size of the free zone */
                for (size = 0; (off + size) < sizeof(struct rte_mbuf) &&
                             shm->free_space[off + size]; size++)
                        ;
-               if (size == 0)
+               if (size == 0) {
+                       off++;
                        continue;
+               }
 
                /* get the alignment of biggest object that can fit in
                 * the zone at this offset.
@@ -84,8 +87,10 @@ process_score(void)
                        ;
 
                /* save it in free_space[] */
-               for (i = off; i < off + size; i++)
+               for (i = off; i < off + align; i++)
                        shm->free_space[i] = RTE_MAX(align, shm->free_space[i]);
+
+               off += align;
        }
 }
 
@@ -547,12 +552,20 @@ void rte_mbuf_dyn_dump(FILE *out)
                        dynflag->params.name, dynflag->bitnum,
                        dynflag->params.flags);
        }
-       fprintf(out, "Free space in mbuf (0 = free, value = zone alignment):\n");
+       fprintf(out, "Free space in mbuf (0 = occupied, value = free zone alignment):\n");
        for (i = 0; i < sizeof(struct rte_mbuf); i++) {
                if ((i % 8) == 0)
                        fprintf(out, "  %4.4zx: ", i);
                fprintf(out, "%2.2x%s", shm->free_space[i],
                        (i % 8 != 7) ? " " : "\n");
        }
+       fprintf(out, "Free bit in mbuf->ol_flags (0 = occupied, 1 = free):\n");
+       for (i = 0; i < sizeof(uint64_t) * CHAR_BIT; i++) {
+               if ((i % 8) == 0)
+                       fprintf(out, "  %4.4zx: ", i);
+               fprintf(out, "%1.1x%s", (shm->free_flags & (1ULL << i)) ? 1 : 0,
+                       (i % 8 != 7) ? " " : "\n");
+       }
+
        rte_mcfg_tailq_write_unlock();
 }