Lines Matching refs:p

96 static status_t virtio_net_queue_rx(struct virtio_net_dev *ndev, pktbuf_t *p);
177 pktbuf_t *p = pktbuf_alloc(); in virtio_net_start() local
178 if (p) { in virtio_net_start()
179 virtio_net_queue_rx(the_ndev, p); in virtio_net_start()
190 pktbuf_t *p; in virtio_net_queue_tx_pktbuf() local
194 p = pktbuf_alloc(); in virtio_net_queue_tx_pktbuf()
195 if (!p) in virtio_net_queue_tx_pktbuf()
199 struct virtio_net_hdr *hdr = pktbuf_append(p, sizeof(struct virtio_net_hdr) - 2); in virtio_net_queue_tx_pktbuf()
200 memset(hdr, 0, p->dlen); in virtio_net_queue_tx_pktbuf()
216 pktbuf_free(p, true); in virtio_net_queue_tx_pktbuf()
227 ndev->pending_tx_packet[i] = p; in virtio_net_queue_tx_pktbuf()
231 desc->addr = pktbuf_data_phys(p); in virtio_net_queue_tx_pktbuf()
232 desc->len = p->dlen; in virtio_net_queue_tx_pktbuf()
257 pktbuf_t *p = pktbuf_alloc(); in virtio_net_queue_tx() local
258 if (!p) in virtio_net_queue_tx()
262 p->data = p->buffer; in virtio_net_queue_tx()
263 p->dlen = len; in virtio_net_queue_tx()
264 memcpy(p->data, buf, len); in virtio_net_queue_tx()
267 status_t err = virtio_net_queue_tx_pktbuf(ndev, p); in virtio_net_queue_tx()
269 pktbuf_free(p, true); in virtio_net_queue_tx()
275 static status_t virtio_net_queue_rx(struct virtio_net_dev *ndev, pktbuf_t *p) { in virtio_net_queue_rx() argument
279 DEBUG_ASSERT(p); in virtio_net_queue_rx()
282 p->data = p->buffer; in virtio_net_queue_rx()
283 struct virtio_net_hdr *hdr = (struct virtio_net_hdr *)p->data; in virtio_net_queue_rx()
286 p->dlen = sizeof(struct virtio_net_hdr) - 2 + VIRTIO_NET_MSS; in virtio_net_queue_rx()
298 ndev->pending_rx_packet[i] = p; in virtio_net_queue_rx()
301 desc->addr = pktbuf_data_phys(p); in virtio_net_queue_rx()
302 desc->len = p->dlen; in virtio_net_queue_rx()
340 pktbuf_t *p = ndev->pending_rx_packet[i]; in virtio_net_irq_driver_callback() local
343 DEBUG_ASSERT(p); in virtio_net_irq_driver_callback()
344 LTRACEF("rx pktbuf %p filled\n", p); in virtio_net_irq_driver_callback()
349 p->dlen = 0; in virtio_net_irq_driver_callback()
351 p->dlen = e->len; in virtio_net_irq_driver_callback()
354 list_add_tail(&ndev->completed_rx_queue, &p->list); in virtio_net_irq_driver_callback()
357 pktbuf_t *p = ndev->pending_tx_packet[i]; in virtio_net_irq_driver_callback() local
361 DEBUG_ASSERT(p); in virtio_net_irq_driver_callback()
362 LTRACEF("freeing pktbuf %p\n", p); in virtio_net_irq_driver_callback()
364 pktbuf_free(p, false); in virtio_net_irq_driver_callback()
393 pktbuf_t *p = list_remove_head_type(&ndev->completed_rx_queue, pktbuf_t, list); in virtio_net_rx_worker() local
397 if (!p) in virtio_net_rx_worker()
400 LTRACEF("got packet len %u\n", p->dlen); in virtio_net_rx_worker()
403 struct virtio_net_hdr *hdr = pktbuf_consume(p, sizeof(struct virtio_net_hdr) - 2); in virtio_net_rx_worker()
406 minip_rx_driver_callback(p); in virtio_net_rx_worker()
410 virtio_net_queue_rx(ndev, p); in virtio_net_rx_worker()
429 status_t virtio_net_send_minip_pkt(pktbuf_t *p) { in virtio_net_send_minip_pkt() argument
430 LTRACEF("p %p, dlen %u, flags 0x%x\n", p, p->dlen, p->flags); in virtio_net_send_minip_pkt()
432 DEBUG_ASSERT(p && p->dlen); in virtio_net_send_minip_pkt()
434 if ((p->flags & PKTBUF_FLAG_EOF) == 0) { in virtio_net_send_minip_pkt()
442 status_t err = virtio_net_queue_tx_pktbuf(the_ndev, p); in virtio_net_send_minip_pkt()
444 pktbuf_free(p, true); in virtio_net_send_minip_pkt()