net: cleanup deliver/deliver_iov func pointers
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com> Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
parent
1a8595931a
commit
86a77c3858
19
net.c
19
net.c
|
@ -184,17 +184,6 @@ static char *assign_name(NetClientState *nc1, const char *model)
|
||||||
return g_strdup(buf);
|
return g_strdup(buf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t qemu_deliver_packet(NetClientState *sender,
|
|
||||||
unsigned flags,
|
|
||||||
const uint8_t *data,
|
|
||||||
size_t size,
|
|
||||||
void *opaque);
|
|
||||||
static ssize_t qemu_deliver_packet_iov(NetClientState *sender,
|
|
||||||
unsigned flags,
|
|
||||||
const struct iovec *iov,
|
|
||||||
int iovcnt,
|
|
||||||
void *opaque);
|
|
||||||
|
|
||||||
NetClientState *qemu_new_net_client(NetClientInfo *info,
|
NetClientState *qemu_new_net_client(NetClientInfo *info,
|
||||||
NetClientState *peer,
|
NetClientState *peer,
|
||||||
const char *model,
|
const char *model,
|
||||||
|
@ -221,9 +210,7 @@ NetClientState *qemu_new_net_client(NetClientInfo *info,
|
||||||
}
|
}
|
||||||
QTAILQ_INSERT_TAIL(&net_clients, nc, next);
|
QTAILQ_INSERT_TAIL(&net_clients, nc, next);
|
||||||
|
|
||||||
nc->send_queue = qemu_new_net_queue(qemu_deliver_packet,
|
nc->send_queue = qemu_new_net_queue(nc);
|
||||||
qemu_deliver_packet_iov,
|
|
||||||
nc);
|
|
||||||
|
|
||||||
return nc;
|
return nc;
|
||||||
}
|
}
|
||||||
|
@ -327,7 +314,7 @@ int qemu_can_send_packet(NetClientState *sender)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t qemu_deliver_packet(NetClientState *sender,
|
ssize_t qemu_deliver_packet(NetClientState *sender,
|
||||||
unsigned flags,
|
unsigned flags,
|
||||||
const uint8_t *data,
|
const uint8_t *data,
|
||||||
size_t size,
|
size_t size,
|
||||||
|
@ -424,7 +411,7 @@ static ssize_t nc_sendv_compat(NetClientState *nc, const struct iovec *iov,
|
||||||
return nc->info->receive(nc, buffer, offset);
|
return nc->info->receive(nc, buffer, offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
static ssize_t qemu_deliver_packet_iov(NetClientState *sender,
|
ssize_t qemu_deliver_packet_iov(NetClientState *sender,
|
||||||
unsigned flags,
|
unsigned flags,
|
||||||
const struct iovec *iov,
|
const struct iovec *iov,
|
||||||
int iovcnt,
|
int iovcnt,
|
||||||
|
|
11
net.h
11
net.h
|
@ -100,6 +100,17 @@ void qemu_check_nic_model(NICInfo *nd, const char *model);
|
||||||
int qemu_find_nic_model(NICInfo *nd, const char * const *models,
|
int qemu_find_nic_model(NICInfo *nd, const char * const *models,
|
||||||
const char *default_model);
|
const char *default_model);
|
||||||
|
|
||||||
|
ssize_t qemu_deliver_packet(NetClientState *sender,
|
||||||
|
unsigned flags,
|
||||||
|
const uint8_t *data,
|
||||||
|
size_t size,
|
||||||
|
void *opaque);
|
||||||
|
ssize_t qemu_deliver_packet_iov(NetClientState *sender,
|
||||||
|
unsigned flags,
|
||||||
|
const struct iovec *iov,
|
||||||
|
int iovcnt,
|
||||||
|
void *opaque);
|
||||||
|
|
||||||
void print_net_client(Monitor *mon, NetClientState *nc);
|
void print_net_client(Monitor *mon, NetClientState *nc);
|
||||||
void do_info_network(Monitor *mon);
|
void do_info_network(Monitor *mon);
|
||||||
|
|
||||||
|
|
13
net/queue.c
13
net/queue.c
|
@ -23,6 +23,7 @@
|
||||||
|
|
||||||
#include "net/queue.h"
|
#include "net/queue.h"
|
||||||
#include "qemu-queue.h"
|
#include "qemu-queue.h"
|
||||||
|
#include "net.h"
|
||||||
|
|
||||||
/* The delivery handler may only return zero if it will call
|
/* The delivery handler may only return zero if it will call
|
||||||
* qemu_net_queue_flush() when it determines that it is once again able
|
* qemu_net_queue_flush() when it determines that it is once again able
|
||||||
|
@ -48,8 +49,6 @@ struct NetPacket {
|
||||||
};
|
};
|
||||||
|
|
||||||
struct NetQueue {
|
struct NetQueue {
|
||||||
NetPacketDeliver *deliver;
|
|
||||||
NetPacketDeliverIOV *deliver_iov;
|
|
||||||
void *opaque;
|
void *opaque;
|
||||||
|
|
||||||
QTAILQ_HEAD(packets, NetPacket) packets;
|
QTAILQ_HEAD(packets, NetPacket) packets;
|
||||||
|
@ -57,16 +56,12 @@ struct NetQueue {
|
||||||
unsigned delivering : 1;
|
unsigned delivering : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
NetQueue *qemu_new_net_queue(NetPacketDeliver *deliver,
|
NetQueue *qemu_new_net_queue(void *opaque)
|
||||||
NetPacketDeliverIOV *deliver_iov,
|
|
||||||
void *opaque)
|
|
||||||
{
|
{
|
||||||
NetQueue *queue;
|
NetQueue *queue;
|
||||||
|
|
||||||
queue = g_malloc0(sizeof(NetQueue));
|
queue = g_malloc0(sizeof(NetQueue));
|
||||||
|
|
||||||
queue->deliver = deliver;
|
|
||||||
queue->deliver_iov = deliver_iov;
|
|
||||||
queue->opaque = opaque;
|
queue->opaque = opaque;
|
||||||
|
|
||||||
QTAILQ_INIT(&queue->packets);
|
QTAILQ_INIT(&queue->packets);
|
||||||
|
@ -151,7 +146,7 @@ static ssize_t qemu_net_queue_deliver(NetQueue *queue,
|
||||||
ssize_t ret = -1;
|
ssize_t ret = -1;
|
||||||
|
|
||||||
queue->delivering = 1;
|
queue->delivering = 1;
|
||||||
ret = queue->deliver(sender, flags, data, size, queue->opaque);
|
ret = qemu_deliver_packet(sender, flags, data, size, queue->opaque);
|
||||||
queue->delivering = 0;
|
queue->delivering = 0;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
@ -166,7 +161,7 @@ static ssize_t qemu_net_queue_deliver_iov(NetQueue *queue,
|
||||||
ssize_t ret = -1;
|
ssize_t ret = -1;
|
||||||
|
|
||||||
queue->delivering = 1;
|
queue->delivering = 1;
|
||||||
ret = queue->deliver_iov(sender, flags, iov, iovcnt, queue->opaque);
|
ret = qemu_deliver_packet_iov(sender, flags, iov, iovcnt, queue->opaque);
|
||||||
queue->delivering = 0;
|
queue->delivering = 0;
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
17
net/queue.h
17
net/queue.h
|
@ -31,24 +31,11 @@ typedef struct NetQueue NetQueue;
|
||||||
|
|
||||||
typedef void (NetPacketSent) (NetClientState *sender, ssize_t ret);
|
typedef void (NetPacketSent) (NetClientState *sender, ssize_t ret);
|
||||||
|
|
||||||
typedef ssize_t (NetPacketDeliver) (NetClientState *sender,
|
|
||||||
unsigned flags,
|
|
||||||
const uint8_t *buf,
|
|
||||||
size_t size,
|
|
||||||
void *opaque);
|
|
||||||
|
|
||||||
typedef ssize_t (NetPacketDeliverIOV) (NetClientState *sender,
|
|
||||||
unsigned flags,
|
|
||||||
const struct iovec *iov,
|
|
||||||
int iovcnt,
|
|
||||||
void *opaque);
|
|
||||||
|
|
||||||
#define QEMU_NET_PACKET_FLAG_NONE 0
|
#define QEMU_NET_PACKET_FLAG_NONE 0
|
||||||
#define QEMU_NET_PACKET_FLAG_RAW (1<<0)
|
#define QEMU_NET_PACKET_FLAG_RAW (1<<0)
|
||||||
|
|
||||||
NetQueue *qemu_new_net_queue(NetPacketDeliver *deliver,
|
NetQueue *qemu_new_net_queue(void *opaque);
|
||||||
NetPacketDeliverIOV *deliver_iov,
|
|
||||||
void *opaque);
|
|
||||||
void qemu_del_net_queue(NetQueue *queue);
|
void qemu_del_net_queue(NetQueue *queue);
|
||||||
|
|
||||||
ssize_t qemu_net_queue_send(NetQueue *queue,
|
ssize_t qemu_net_queue_send(NetQueue *queue,
|
||||||
|
|
Loading…
Reference in New Issue