@@ -1634,6 +1634,27 @@ int odp_packet_move_data(odp_packet_t pkt, uint32_t dst_offset,
pkt, src_offset, len);
}
+int odp_packet_zero_data(odp_packet_t pkt, uint32_t offset, uint32_t len)
+{
+ void *mapaddr;
+ uint32_t seglen = 0; /* GCC */
+ uint32_t zerolen;
+ odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt);
+
+ if (offset + len > pkt_hdr->frame_len)
+ return -1;
+
+ while (len > 0) {
+ mapaddr = packet_map(pkt_hdr, offset, &seglen, NULL);
+ zerolen = len > seglen ? seglen : len;
+ memset(mapaddr, 0, zerolen);
+ offset += zerolen;
+ len -= zerolen;
+ }
+
+ return 0;
+}
+
/*
*
* Debugging