|
@@ -52,13 +52,14 @@ struct NetQueue {
|
|
|
void *opaque;
|
|
|
uint32_t nq_maxlen;
|
|
|
uint32_t nq_count;
|
|
|
+ NetQueueDeliverFunc *deliver;
|
|
|
|
|
|
QTAILQ_HEAD(packets, NetPacket) packets;
|
|
|
|
|
|
unsigned delivering : 1;
|
|
|
};
|
|
|
|
|
|
-NetQueue *qemu_new_net_queue(void *opaque)
|
|
|
+NetQueue *qemu_new_net_queue(NetQueueDeliverFunc *deliver, void *opaque)
|
|
|
{
|
|
|
NetQueue *queue;
|
|
|
|
|
@@ -67,6 +68,7 @@ NetQueue *qemu_new_net_queue(void *opaque)
|
|
|
queue->opaque = opaque;
|
|
|
queue->nq_maxlen = 10000;
|
|
|
queue->nq_count = 0;
|
|
|
+ queue->deliver = deliver;
|
|
|
|
|
|
QTAILQ_INIT(&queue->packets);
|
|
|
|
|
@@ -158,7 +160,7 @@ static ssize_t qemu_net_queue_deliver(NetQueue *queue,
|
|
|
};
|
|
|
|
|
|
queue->delivering = 1;
|
|
|
- ret = qemu_deliver_packet_iov(sender, flags, &iov, 1, queue->opaque);
|
|
|
+ ret = queue->deliver(sender, flags, &iov, 1, queue->opaque);
|
|
|
queue->delivering = 0;
|
|
|
|
|
|
return ret;
|
|
@@ -173,7 +175,7 @@ static ssize_t qemu_net_queue_deliver_iov(NetQueue *queue,
|
|
|
ssize_t ret = -1;
|
|
|
|
|
|
queue->delivering = 1;
|
|
|
- ret = qemu_deliver_packet_iov(sender, flags, iov, iovcnt, queue->opaque);
|
|
|
+ ret = queue->deliver(sender, flags, iov, iovcnt, queue->opaque);
|
|
|
queue->delivering = 0;
|
|
|
|
|
|
return ret;
|