net: re-name vc->fd_read() to vc->receive()
VLANClientState's fd_read() handler doesn't read from file descriptors, it adds a buffer to the client's receive queue. Re-name the handlers to make things a little less confusing. Signed-off-by: Mark McLoughlin <markmc@redhat.com>
This commit is contained in:
parent
463af5349a
commit
cda9046ba7
@ -409,7 +409,7 @@ static void do_transmit_packets(dp8393xState *s)
|
|||||||
s->regs[SONIC_TCR] |= SONIC_TCR_CRSL;
|
s->regs[SONIC_TCR] |= SONIC_TCR_CRSL;
|
||||||
if (s->vc->fd_can_read(s)) {
|
if (s->vc->fd_can_read(s)) {
|
||||||
s->loopback_packet = 1;
|
s->loopback_packet = 1;
|
||||||
s->vc->fd_read(s, s->tx_buffer, tx_len);
|
s->vc->receive(s, s->tx_buffer, tx_len);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* Transmit packet */
|
/* Transmit packet */
|
||||||
@ -725,7 +725,7 @@ static int receive_filter(dp8393xState *s, const uint8_t * buf, int size)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void nic_receive(void *opaque, const uint8_t * buf, int size)
|
static void nic_receive(void *opaque, const uint8_t * buf, size_t size)
|
||||||
{
|
{
|
||||||
uint16_t data[10];
|
uint16_t data[10];
|
||||||
dp8393xState *s = opaque;
|
dp8393xState *s = opaque;
|
||||||
|
@ -600,7 +600,7 @@ e1000_can_receive(void *opaque)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
e1000_receive(void *opaque, const uint8_t *buf, int size)
|
e1000_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
E1000State *s = opaque;
|
E1000State *s = opaque;
|
||||||
struct e1000_rx_desc desc;
|
struct e1000_rx_desc desc;
|
||||||
@ -614,8 +614,8 @@ e1000_receive(void *opaque, const uint8_t *buf, int size)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if (size > s->rxbuf_size) {
|
if (size > s->rxbuf_size) {
|
||||||
DBGOUT(RX, "packet too large for buffers (%d > %d)\n", size,
|
DBGOUT(RX, "packet too large for buffers (%lu > %d)\n",
|
||||||
s->rxbuf_size);
|
(unsigned long)size, s->rxbuf_size);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1441,7 +1441,7 @@ static int nic_can_receive(void *opaque)
|
|||||||
//~ return !eepro100_buffer_full(s);
|
//~ return !eepro100_buffer_full(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void nic_receive(void *opaque, const uint8_t * buf, int size)
|
static void nic_receive(void *opaque, const uint8_t * buf, size_t size)
|
||||||
{
|
{
|
||||||
/* TODO:
|
/* TODO:
|
||||||
* - Magic packets should set bit 30 in power management driver register.
|
* - Magic packets should set bit 30 in power management driver register.
|
||||||
|
@ -501,7 +501,7 @@ static int eth_can_receive(void *opaque)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eth_receive(void *opaque, const uint8_t *buf, int size)
|
static void eth_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
unsigned char sa_bcast[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
unsigned char sa_bcast[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
|
||||||
struct fs_eth *eth = opaque;
|
struct fs_eth *eth = opaque;
|
||||||
|
@ -353,7 +353,7 @@ static int mcf_fec_can_receive(void *opaque)
|
|||||||
return s->rx_enabled;
|
return s->rx_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mcf_fec_receive(void *opaque, const uint8_t *buf, int size)
|
static void mcf_fec_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
mcf_fec_state *s = (mcf_fec_state *)opaque;
|
mcf_fec_state *s = (mcf_fec_state *)opaque;
|
||||||
mcf_fec_bd bd;
|
mcf_fec_bd bd;
|
||||||
|
@ -75,7 +75,7 @@ static int mipsnet_can_receive(void *opaque)
|
|||||||
return !mipsnet_buffer_full(s);
|
return !mipsnet_buffer_full(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mipsnet_receive(void *opaque, const uint8_t *buf, int size)
|
static void mipsnet_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
MIPSnetState *s = opaque;
|
MIPSnetState *s = opaque;
|
||||||
|
|
||||||
|
@ -562,7 +562,7 @@ static int eth_can_receive(void *opaque)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eth_receive(void *opaque, const uint8_t *buf, int size)
|
static void eth_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
mv88w8618_eth_state *s = opaque;
|
mv88w8618_eth_state *s = opaque;
|
||||||
uint32_t desc_addr;
|
uint32_t desc_addr;
|
||||||
|
@ -224,7 +224,7 @@ static int ne2000_can_receive(void *opaque)
|
|||||||
|
|
||||||
#define MIN_BUF_SIZE 60
|
#define MIN_BUF_SIZE 60
|
||||||
|
|
||||||
static void ne2000_receive(void *opaque, const uint8_t *buf, int size)
|
static void ne2000_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
NE2000State *s = opaque;
|
NE2000State *s = opaque;
|
||||||
uint8_t *p;
|
uint8_t *p;
|
||||||
|
@ -1076,7 +1076,7 @@ static int pcnet_can_receive(void *opaque)
|
|||||||
|
|
||||||
#define MIN_BUF_SIZE 60
|
#define MIN_BUF_SIZE 60
|
||||||
|
|
||||||
static void pcnet_receive(void *opaque, const uint8_t *buf, int size)
|
static void pcnet_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
PCNetState *s = opaque;
|
PCNetState *s = opaque;
|
||||||
int is_padr = 0, is_bcast = 0, is_ladr = 0;
|
int is_padr = 0, is_bcast = 0, is_ladr = 0;
|
||||||
|
10
hw/qdev.c
10
hw/qdev.c
@ -258,16 +258,16 @@ void qdev_connect_gpio_out(DeviceState * dev, int n, qemu_irq pin)
|
|||||||
}
|
}
|
||||||
|
|
||||||
VLANClientState *qdev_get_vlan_client(DeviceState *dev,
|
VLANClientState *qdev_get_vlan_client(DeviceState *dev,
|
||||||
IOCanRWHandler *fd_can_read,
|
NetCanReceive *can_receive,
|
||||||
IOReadHandler *fd_read,
|
NetReceive *receive,
|
||||||
IOReadvHandler *fd_readv,
|
NetReceiveIOV *receive_iov,
|
||||||
NetCleanup *cleanup,
|
NetCleanup *cleanup,
|
||||||
void *opaque)
|
void *opaque)
|
||||||
{
|
{
|
||||||
NICInfo *nd = dev->nd;
|
NICInfo *nd = dev->nd;
|
||||||
assert(nd);
|
assert(nd);
|
||||||
return qemu_new_vlan_client(nd->vlan, nd->model, nd->name, fd_can_read,
|
return qemu_new_vlan_client(nd->vlan, nd->model, nd->name, can_receive,
|
||||||
fd_read, fd_readv, cleanup, opaque);
|
receive, receive_iov, cleanup, opaque);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1158,7 +1158,7 @@ static void rtl8139_do_receive(void *opaque, const uint8_t *buf, int size, int d
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rtl8139_receive(void *opaque, const uint8_t *buf, int size)
|
static void rtl8139_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
rtl8139_do_receive(opaque, buf, size, 1);
|
rtl8139_do_receive(opaque, buf, size, 1);
|
||||||
}
|
}
|
||||||
|
@ -602,7 +602,7 @@ static int smc91c111_can_receive(void *opaque)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void smc91c111_receive(void *opaque, const uint8_t *buf, int size)
|
static void smc91c111_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
smc91c111_state *s = (smc91c111_state *)opaque;
|
smc91c111_state *s = (smc91c111_state *)opaque;
|
||||||
int status;
|
int status;
|
||||||
|
@ -78,7 +78,7 @@ static void stellaris_enet_update(stellaris_enet_state *s)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* TODO: Implement MAC address filtering. */
|
/* TODO: Implement MAC address filtering. */
|
||||||
static void stellaris_enet_receive(void *opaque, const uint8_t *buf, int size)
|
static void stellaris_enet_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
stellaris_enet_state *s = (stellaris_enet_state *)opaque;
|
stellaris_enet_state *s = (stellaris_enet_state *)opaque;
|
||||||
int n;
|
int n;
|
||||||
|
@ -1369,7 +1369,7 @@ static int usb_net_handle_data(USBDevice *dev, USBPacket *p)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void usbnet_receive(void *opaque, const uint8_t *buf, int size)
|
static void usbnet_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
USBNetState *s = opaque;
|
USBNetState *s = opaque;
|
||||||
struct rndis_packet_msg_type *msg;
|
struct rndis_packet_msg_type *msg;
|
||||||
|
@ -361,7 +361,7 @@ static int receive_filter(VirtIONet *n, const uint8_t *buf, int size)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void virtio_net_receive(void *opaque, const uint8_t *buf, int size)
|
static void virtio_net_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
VirtIONet *n = opaque;
|
VirtIONet *n = opaque;
|
||||||
struct virtio_net_hdr_mrg_rxbuf *mhdr = NULL;
|
struct virtio_net_hdr_mrg_rxbuf *mhdr = NULL;
|
||||||
|
@ -243,7 +243,7 @@ static int net_rx_ok(void *opaque)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void net_rx_packet(void *opaque, const uint8_t *buf, int size)
|
static void net_rx_packet(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
struct XenNetDev *netdev = opaque;
|
struct XenNetDev *netdev = opaque;
|
||||||
netif_rx_request_t rxreq;
|
netif_rx_request_t rxreq;
|
||||||
@ -262,8 +262,8 @@ static void net_rx_packet(void *opaque, const uint8_t *buf, int size)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (size > XC_PAGE_SIZE - NET_IP_ALIGN) {
|
if (size > XC_PAGE_SIZE - NET_IP_ALIGN) {
|
||||||
xen_be_printf(&netdev->xendev, 0, "packet too big (%d > %ld)",
|
xen_be_printf(&netdev->xendev, 0, "packet too big (%lu > %ld)",
|
||||||
size, XC_PAGE_SIZE - NET_IP_ALIGN);
|
(unsigned long)size, XC_PAGE_SIZE - NET_IP_ALIGN);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
36
net.c
36
net.c
@ -332,9 +332,9 @@ static char *assign_name(VLANClientState *vc1, const char *model)
|
|||||||
VLANClientState *qemu_new_vlan_client(VLANState *vlan,
|
VLANClientState *qemu_new_vlan_client(VLANState *vlan,
|
||||||
const char *model,
|
const char *model,
|
||||||
const char *name,
|
const char *name,
|
||||||
IOCanRWHandler *fd_can_read,
|
NetCanReceive *can_receive,
|
||||||
IOReadHandler *fd_read,
|
NetReceive *receive,
|
||||||
IOReadvHandler *fd_readv,
|
NetReceiveIOV *receive_iov,
|
||||||
NetCleanup *cleanup,
|
NetCleanup *cleanup,
|
||||||
void *opaque)
|
void *opaque)
|
||||||
{
|
{
|
||||||
@ -345,9 +345,9 @@ VLANClientState *qemu_new_vlan_client(VLANState *vlan,
|
|||||||
vc->name = strdup(name);
|
vc->name = strdup(name);
|
||||||
else
|
else
|
||||||
vc->name = assign_name(vc, model);
|
vc->name = assign_name(vc, model);
|
||||||
vc->fd_can_read = fd_can_read;
|
vc->can_receive = can_receive;
|
||||||
vc->fd_read = fd_read;
|
vc->receive = receive;
|
||||||
vc->fd_readv = fd_readv;
|
vc->receive_iov = receive_iov;
|
||||||
vc->cleanup = cleanup;
|
vc->cleanup = cleanup;
|
||||||
vc->opaque = opaque;
|
vc->opaque = opaque;
|
||||||
vc->vlan = vlan;
|
vc->vlan = vlan;
|
||||||
@ -401,8 +401,8 @@ int qemu_can_send_packet(VLANClientState *sender)
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* no fd_can_read() handler, they can always receive */
|
/* no can_receive() handler, they can always receive */
|
||||||
if (!vc->fd_can_read || vc->fd_can_read(vc->opaque)) {
|
if (!vc->can_receive || vc->can_receive(vc->opaque)) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -416,7 +416,7 @@ qemu_deliver_packet(VLANClientState *sender, const uint8_t *buf, int size)
|
|||||||
|
|
||||||
for (vc = sender->vlan->first_client; vc != NULL; vc = vc->next) {
|
for (vc = sender->vlan->first_client; vc != NULL; vc = vc->next) {
|
||||||
if (vc != sender && !vc->link_down) {
|
if (vc != sender && !vc->link_down) {
|
||||||
vc->fd_read(vc->opaque, buf, size);
|
vc->receive(vc->opaque, buf, size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -467,7 +467,7 @@ static ssize_t vc_sendv_compat(VLANClientState *vc, const struct iovec *iov,
|
|||||||
offset += len;
|
offset += len;
|
||||||
}
|
}
|
||||||
|
|
||||||
vc->fd_read(vc->opaque, buffer, offset);
|
vc->receive(vc->opaque, buffer, offset);
|
||||||
|
|
||||||
return offset;
|
return offset;
|
||||||
}
|
}
|
||||||
@ -519,9 +519,9 @@ ssize_t qemu_sendv_packet(VLANClientState *sender, const struct iovec *iov,
|
|||||||
}
|
}
|
||||||
if (vc->link_down) {
|
if (vc->link_down) {
|
||||||
len = calc_iov_length(iov, iovcnt);
|
len = calc_iov_length(iov, iovcnt);
|
||||||
} else if (vc->fd_readv) {
|
} else if (vc->receive_iov) {
|
||||||
len = vc->fd_readv(vc->opaque, iov, iovcnt);
|
len = vc->receive_iov(vc->opaque, iov, iovcnt);
|
||||||
} else if (vc->fd_read) {
|
} else if (vc->receive) {
|
||||||
len = vc_sendv_compat(vc, iov, iovcnt);
|
len = vc_sendv_compat(vc, iov, iovcnt);
|
||||||
}
|
}
|
||||||
max_len = MAX(max_len, len);
|
max_len = MAX(max_len, len);
|
||||||
@ -593,7 +593,7 @@ int slirp_is_inited(void)
|
|||||||
return slirp_inited;
|
return slirp_inited;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void slirp_receive(void *opaque, const uint8_t *buf, int size)
|
static void slirp_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG_SLIRP
|
#ifdef DEBUG_SLIRP
|
||||||
printf("slirp input:\n");
|
printf("slirp input:\n");
|
||||||
@ -945,7 +945,7 @@ static ssize_t tap_receive_iov(void *opaque, const struct iovec *iov,
|
|||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tap_receive(void *opaque, const uint8_t *buf, int size)
|
static void tap_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
TAPState *s = opaque;
|
TAPState *s = opaque;
|
||||||
int ret;
|
int ret;
|
||||||
@ -1380,7 +1380,7 @@ typedef struct NetSocketListenState {
|
|||||||
} NetSocketListenState;
|
} NetSocketListenState;
|
||||||
|
|
||||||
/* XXX: we consider we can send the whole packet without blocking */
|
/* XXX: we consider we can send the whole packet without blocking */
|
||||||
static void net_socket_receive(void *opaque, const uint8_t *buf, int size)
|
static void net_socket_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
NetSocketState *s = opaque;
|
NetSocketState *s = opaque;
|
||||||
uint32_t len;
|
uint32_t len;
|
||||||
@ -1390,7 +1390,7 @@ static void net_socket_receive(void *opaque, const uint8_t *buf, int size)
|
|||||||
send_all(s->fd, buf, size);
|
send_all(s->fd, buf, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void net_socket_receive_dgram(void *opaque, const uint8_t *buf, int size)
|
static void net_socket_receive_dgram(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
NetSocketState *s = opaque;
|
NetSocketState *s = opaque;
|
||||||
sendto(s->fd, buf, size, 0,
|
sendto(s->fd, buf, size, 0,
|
||||||
@ -1831,7 +1831,7 @@ struct pcap_sf_pkthdr {
|
|||||||
uint32_t len;
|
uint32_t len;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void dump_receive(void *opaque, const uint8_t *buf, int size)
|
static void dump_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
DumpState *s = opaque;
|
DumpState *s = opaque;
|
||||||
struct pcap_sf_pkthdr hdr;
|
struct pcap_sf_pkthdr hdr;
|
||||||
|
23
net.h
23
net.h
@ -5,19 +5,20 @@
|
|||||||
|
|
||||||
/* VLANs support */
|
/* VLANs support */
|
||||||
|
|
||||||
typedef ssize_t (IOReadvHandler)(void *, const struct iovec *, int);
|
|
||||||
|
|
||||||
typedef struct VLANClientState VLANClientState;
|
typedef struct VLANClientState VLANClientState;
|
||||||
|
|
||||||
|
typedef int (NetCanReceive)(void *);
|
||||||
|
typedef void (NetReceive)(void *, const uint8_t *, size_t);
|
||||||
|
typedef ssize_t (NetReceiveIOV)(void *, const struct iovec *, int);
|
||||||
typedef void (NetCleanup) (VLANClientState *);
|
typedef void (NetCleanup) (VLANClientState *);
|
||||||
typedef void (LinkStatusChanged)(VLANClientState *);
|
typedef void (LinkStatusChanged)(VLANClientState *);
|
||||||
|
|
||||||
struct VLANClientState {
|
struct VLANClientState {
|
||||||
IOReadHandler *fd_read;
|
NetReceive *receive;
|
||||||
IOReadvHandler *fd_readv;
|
NetReceiveIOV *receive_iov;
|
||||||
/* Packets may still be sent if this returns zero. It's used to
|
/* Packets may still be sent if this returns zero. It's used to
|
||||||
rate-limit the slirp code. */
|
rate-limit the slirp code. */
|
||||||
IOCanRWHandler *fd_can_read;
|
NetCanReceive *can_receive;
|
||||||
NetCleanup *cleanup;
|
NetCleanup *cleanup;
|
||||||
LinkStatusChanged *link_status_changed;
|
LinkStatusChanged *link_status_changed;
|
||||||
int link_down;
|
int link_down;
|
||||||
@ -51,9 +52,9 @@ VLANState *qemu_find_vlan(int id);
|
|||||||
VLANClientState *qemu_new_vlan_client(VLANState *vlan,
|
VLANClientState *qemu_new_vlan_client(VLANState *vlan,
|
||||||
const char *model,
|
const char *model,
|
||||||
const char *name,
|
const char *name,
|
||||||
IOCanRWHandler *fd_can_read,
|
NetCanReceive *can_receive,
|
||||||
IOReadHandler *fd_read,
|
NetReceive *receive,
|
||||||
IOReadvHandler *fd_readv,
|
NetReceiveIOV *receive_iov,
|
||||||
NetCleanup *cleanup,
|
NetCleanup *cleanup,
|
||||||
void *opaque);
|
void *opaque);
|
||||||
void qemu_del_vlan_client(VLANClientState *vc);
|
void qemu_del_vlan_client(VLANClientState *vc);
|
||||||
@ -130,9 +131,9 @@ void net_host_device_remove(Monitor *mon, int vlan_id, const char *device);
|
|||||||
|
|
||||||
void qdev_get_macaddr(DeviceState *dev, uint8_t *macaddr);
|
void qdev_get_macaddr(DeviceState *dev, uint8_t *macaddr);
|
||||||
VLANClientState *qdev_get_vlan_client(DeviceState *dev,
|
VLANClientState *qdev_get_vlan_client(DeviceState *dev,
|
||||||
IOCanRWHandler *fd_can_read,
|
NetCanReceive *can_receive,
|
||||||
IOReadHandler *fd_read,
|
NetReceive *receive,
|
||||||
IOReadvHandler *fd_readv,
|
NetReceiveIOV *receive_iov,
|
||||||
NetCleanup *cleanup,
|
NetCleanup *cleanup,
|
||||||
void *opaque);
|
void *opaque);
|
||||||
|
|
||||||
|
2
savevm.c
2
savevm.c
@ -131,7 +131,7 @@ static void qemu_announce_self_once(void *opaque)
|
|||||||
len = announce_self_create(buf, nd_table[i].macaddr);
|
len = announce_self_create(buf, nd_table[i].macaddr);
|
||||||
vlan = nd_table[i].vlan;
|
vlan = nd_table[i].vlan;
|
||||||
for(vc = vlan->first_client; vc != NULL; vc = vc->next) {
|
for(vc = vlan->first_client; vc != NULL; vc = vc->next) {
|
||||||
vc->fd_read(vc->opaque, buf, len);
|
vc->receive(vc->opaque, buf, len);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (count--) {
|
if (count--) {
|
||||||
|
@ -650,7 +650,7 @@ static void tap_cleanup(VLANClientState *vc)
|
|||||||
qemu_free(s);
|
qemu_free(s);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tap_receive(void *opaque, const uint8_t *buf, int size)
|
static void tap_receive(void *opaque, const uint8_t *buf, size_t size)
|
||||||
{
|
{
|
||||||
TAPState *s = opaque;
|
TAPState *s = opaque;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user