| 558 | } |
| 559 | |
| 560 | void |
| 561 | dpaa_rx_cb(struct qman_fq **fq, struct qm_dqrr_entry **dqrr, |
| 562 | void **bufs, int num_bufs) |
| 563 | { |
| 564 | struct rte_mbuf *mbuf; |
| 565 | const struct qm_fd *fd; |
| 566 | struct dpaa_if *dpaa_intf; |
| 567 | uint16_t offset, i; |
| 568 | uint32_t length; |
| 569 | uint8_t format; |
| 570 | |
| 571 | for (i = 0; i < num_bufs; i++) { |
| 572 | fd = &dqrr[i]->fd; |
| 573 | dpaa_intf = fq[0]->dpaa_intf; |
| 574 | format = (fd->opaque & DPAA_FD_FORMAT_MASK) >> |
| 575 | DPAA_FD_FORMAT_SHIFT; |
| 576 | if (unlikely(format == qm_fd_sg)) { |
| 577 | bufs[i] = dpaa_eth_sg_to_mbuf(fd, dpaa_intf->ifid); |
| 578 | continue; |
| 579 | } |
| 580 | |
| 581 | offset = (fd->opaque & DPAA_FD_OFFSET_MASK) >> |
| 582 | DPAA_FD_OFFSET_SHIFT; |
| 583 | length = fd->opaque & DPAA_FD_LENGTH_MASK; |
| 584 | |
| 585 | mbuf = bufs[i]; |
| 586 | mbuf->data_off = offset; |
| 587 | mbuf->data_len = length; |
| 588 | mbuf->pkt_len = length; |
| 589 | mbuf->port = dpaa_intf->ifid; |
| 590 | |
| 591 | mbuf->nb_segs = 1; |
| 592 | mbuf->ol_flags = 0; |
| 593 | mbuf->next = NULL; |
| 594 | rte_mbuf_refcnt_set(mbuf, 1); |
| 595 | dpaa_eth_packet_info(mbuf, mbuf->buf_addr); |
| 596 | dpaa_display_frame_info(fd, fq[0]->fqid, true); |
| 597 | } |
| 598 | } |
| 599 | |
| 600 | void dpaa_rx_cb_prepare(struct qm_dqrr_entry *dq, void **bufs) |
| 601 | { |
nothing calls this directly
no test coverage detected