Commit 463af5349a787160642f023dad10eaf0cb419fb7

Authored by Mark McLoughlin
1 parent 3471b757

net: add fd_readv() handler to qemu_new_vlan_client() args

This, apparently, is the style we prefer - all VLANClientState
should be an argument to qemu_new_vlan_client().

Signed-off-by: Mark McLoughlin <markmc@redhat.com>
hw/dp8393x.c
@@ -888,8 +888,8 @@ void dp83932_init(NICInfo *nd, target_phys_addr_t base, int it_shift, @@ -888,8 +888,8 @@ void dp83932_init(NICInfo *nd, target_phys_addr_t base, int it_shift,
888 s->watchdog = qemu_new_timer(vm_clock, dp8393x_watchdog, s); 888 s->watchdog = qemu_new_timer(vm_clock, dp8393x_watchdog, s);
889 s->regs[SONIC_SR] = 0x0004; /* only revision recognized by Linux */ 889 s->regs[SONIC_SR] = 0x0004; /* only revision recognized by Linux */
890 890
891 - s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,  
892 - nic_receive, nic_can_receive, nic_cleanup, s); 891 + s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name, nic_can_receive,
  892 + nic_receive, NULL, nic_cleanup, s);
893 893
894 qemu_format_nic_info_str(s->vc, nd->macaddr); 894 qemu_format_nic_info_str(s->vc, nd->macaddr);
895 qemu_register_reset(nic_reset, 0, s); 895 qemu_register_reset(nic_reset, 0, s);
hw/e1000.c
@@ -1106,8 +1106,8 @@ static void pci_e1000_init(PCIDevice *pci_dev) @@ -1106,8 +1106,8 @@ static void pci_e1000_init(PCIDevice *pci_dev)
1106 memset(&d->tx, 0, sizeof d->tx); 1106 memset(&d->tx, 0, sizeof d->tx);
1107 1107
1108 d->vc = qdev_get_vlan_client(&d->dev.qdev, 1108 d->vc = qdev_get_vlan_client(&d->dev.qdev,
1109 - e1000_receive, e1000_can_receive,  
1110 - e1000_cleanup, d); 1109 + e1000_can_receive, e1000_receive,
  1110 + NULL, e1000_cleanup, d);
1111 d->vc->link_status_changed = e1000_set_link_status; 1111 d->vc->link_status_changed = e1000_set_link_status;
1112 1112
1113 qemu_format_nic_info_str(d->vc, macaddr); 1113 qemu_format_nic_info_str(d->vc, macaddr);
hw/eepro100.c
@@ -1766,7 +1766,7 @@ static void nic_init(PCIDevice *pci_dev, uint32_t device) @@ -1766,7 +1766,7 @@ static void nic_init(PCIDevice *pci_dev, uint32_t device)
1766 nic_reset(s); 1766 nic_reset(s);
1767 1767
1768 s->vc = qdev_get_vlan_client(&d->dev.qdev, 1768 s->vc = qdev_get_vlan_client(&d->dev.qdev,
1769 - nic_receive, nic_can_receive, 1769 + nic_can_receive, nic_receive, NULL,
1770 nic_cleanup, s); 1770 nic_cleanup, s);
1771 1771
1772 qemu_format_nic_info_str(s->vc, s->macaddr); 1772 qemu_format_nic_info_str(s->vc, s->macaddr);
hw/etraxfs_eth.c
@@ -593,7 +593,7 @@ void *etraxfs_eth_init(NICInfo *nd, CPUState *env, @@ -593,7 +593,7 @@ void *etraxfs_eth_init(NICInfo *nd, CPUState *env,
593 cpu_register_physical_memory (base, 0x5c, eth->ethregs); 593 cpu_register_physical_memory (base, 0x5c, eth->ethregs);
594 594
595 eth->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name, 595 eth->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
596 - eth_receive, eth_can_receive, 596 + eth_can_receive, eth_receive, NULL,
597 eth_cleanup, eth); 597 eth_cleanup, eth);
598 eth->vc->opaque = eth; 598 eth->vc->opaque = eth;
599 eth->vc->link_status_changed = eth_set_link; 599 eth->vc->link_status_changed = eth_set_link;
hw/mcf_fec.c
@@ -462,7 +462,7 @@ void mcf_fec_init(NICInfo *nd, target_phys_addr_t base, qemu_irq *irq) @@ -462,7 +462,7 @@ void mcf_fec_init(NICInfo *nd, target_phys_addr_t base, qemu_irq *irq)
462 cpu_register_physical_memory(base, 0x400, s->mmio_index); 462 cpu_register_physical_memory(base, 0x400, s->mmio_index);
463 463
464 s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name, 464 s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
465 - mcf_fec_receive, mcf_fec_can_receive, 465 + mcf_fec_can_receive, mcf_fec_receive, NULL,
466 mcf_fec_cleanup, s); 466 mcf_fec_cleanup, s);
467 memcpy(s->macaddr, nd->macaddr, 6); 467 memcpy(s->macaddr, nd->macaddr, 6);
468 qemu_format_nic_info_str(s->vc, s->macaddr); 468 qemu_format_nic_info_str(s->vc, s->macaddr);
hw/mipsnet.c
@@ -262,7 +262,7 @@ void mipsnet_init (int base, qemu_irq irq, NICInfo *nd) @@ -262,7 +262,7 @@ void mipsnet_init (int base, qemu_irq irq, NICInfo *nd)
262 s->irq = irq; 262 s->irq = irq;
263 if (nd && nd->vlan) { 263 if (nd && nd->vlan) {
264 s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name, 264 s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
265 - mipsnet_receive, mipsnet_can_receive, 265 + mipsnet_can_receive, mipsnet_receive, NULL,
266 mipsnet_cleanup, s); 266 mipsnet_cleanup, s);
267 } else { 267 } else {
268 s->vc = NULL; 268 s->vc = NULL;
hw/musicpal.c
@@ -753,7 +753,7 @@ static void mv88w8618_eth_init(SysBusDevice *dev) @@ -753,7 +753,7 @@ static void mv88w8618_eth_init(SysBusDevice *dev)
753 753
754 sysbus_init_irq(dev, &s->irq); 754 sysbus_init_irq(dev, &s->irq);
755 s->vc = qdev_get_vlan_client(&dev->qdev, 755 s->vc = qdev_get_vlan_client(&dev->qdev,
756 - eth_receive, eth_can_receive, 756 + eth_can_receive, eth_receive, NULL,
757 eth_cleanup, s); 757 eth_cleanup, s);
758 s->mmio_index = cpu_register_io_memory(0, mv88w8618_eth_readfn, 758 s->mmio_index = cpu_register_io_memory(0, mv88w8618_eth_readfn,
759 mv88w8618_eth_writefn, s); 759 mv88w8618_eth_writefn, s);
hw/ne2000.c
@@ -757,7 +757,7 @@ void isa_ne2000_init(int base, qemu_irq irq, NICInfo *nd) @@ -757,7 +757,7 @@ void isa_ne2000_init(int base, qemu_irq irq, NICInfo *nd)
757 ne2000_reset(s); 757 ne2000_reset(s);
758 758
759 s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name, 759 s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
760 - ne2000_receive, ne2000_can_receive, 760 + ne2000_can_receive, ne2000_receive, NULL,
761 isa_ne2000_cleanup, s); 761 isa_ne2000_cleanup, s);
762 762
763 qemu_format_nic_info_str(s->vc, s->macaddr); 763 qemu_format_nic_info_str(s->vc, s->macaddr);
@@ -821,7 +821,7 @@ static void pci_ne2000_init(PCIDevice *pci_dev) @@ -821,7 +821,7 @@ static void pci_ne2000_init(PCIDevice *pci_dev)
821 qdev_get_macaddr(&d->dev.qdev, s->macaddr); 821 qdev_get_macaddr(&d->dev.qdev, s->macaddr);
822 ne2000_reset(s); 822 ne2000_reset(s);
823 s->vc = qdev_get_vlan_client(&d->dev.qdev, 823 s->vc = qdev_get_vlan_client(&d->dev.qdev,
824 - ne2000_receive, ne2000_can_receive, 824 + ne2000_can_receive, ne2000_receive, NULL,
825 ne2000_cleanup, s); 825 ne2000_cleanup, s);
826 826
827 qemu_format_nic_info_str(s->vc, s->macaddr); 827 qemu_format_nic_info_str(s->vc, s->macaddr);
hw/pcnet.c
@@ -1952,7 +1952,7 @@ static void pcnet_common_init(DeviceState *dev, PCNetState *s, @@ -1952,7 +1952,7 @@ static void pcnet_common_init(DeviceState *dev, PCNetState *s,
1952 1952
1953 qdev_get_macaddr(dev, s->macaddr); 1953 qdev_get_macaddr(dev, s->macaddr);
1954 s->vc = qdev_get_vlan_client(dev, 1954 s->vc = qdev_get_vlan_client(dev,
1955 - pcnet_receive, pcnet_can_receive, 1955 + pcnet_can_receive, pcnet_receive, NULL,
1956 cleanup, s); 1956 cleanup, s);
1957 pcnet_h_reset(s); 1957 pcnet_h_reset(s);
1958 register_savevm("pcnet", -1, 2, pcnet_save, pcnet_load, s); 1958 register_savevm("pcnet", -1, 2, pcnet_save, pcnet_load, s);
hw/qdev.c
@@ -258,15 +258,16 @@ void qdev_connect_gpio_out(DeviceState * dev, int n, qemu_irq pin) @@ -258,15 +258,16 @@ void qdev_connect_gpio_out(DeviceState * dev, int n, qemu_irq pin)
258 } 258 }
259 259
260 VLANClientState *qdev_get_vlan_client(DeviceState *dev, 260 VLANClientState *qdev_get_vlan_client(DeviceState *dev,
261 - IOReadHandler *fd_read,  
262 IOCanRWHandler *fd_can_read, 261 IOCanRWHandler *fd_can_read,
  262 + IOReadHandler *fd_read,
  263 + IOReadvHandler *fd_readv,
263 NetCleanup *cleanup, 264 NetCleanup *cleanup,
264 void *opaque) 265 void *opaque)
265 { 266 {
266 NICInfo *nd = dev->nd; 267 NICInfo *nd = dev->nd;
267 assert(nd); 268 assert(nd);
268 - return qemu_new_vlan_client(nd->vlan, nd->model, nd->name,  
269 - fd_read, fd_can_read, cleanup, opaque); 269 + return qemu_new_vlan_client(nd->vlan, nd->model, nd->name, fd_can_read,
  270 + fd_read, fd_readv, cleanup, opaque);
270 } 271 }
271 272
272 273
hw/rtl8139.c
@@ -3475,7 +3475,7 @@ static void pci_rtl8139_init(PCIDevice *dev) @@ -3475,7 +3475,7 @@ static void pci_rtl8139_init(PCIDevice *dev)
3475 qdev_get_macaddr(&dev->qdev, s->macaddr); 3475 qdev_get_macaddr(&dev->qdev, s->macaddr);
3476 rtl8139_reset(s); 3476 rtl8139_reset(s);
3477 s->vc = qdev_get_vlan_client(&dev->qdev, 3477 s->vc = qdev_get_vlan_client(&dev->qdev,
3478 - rtl8139_receive, rtl8139_can_receive, 3478 + rtl8139_can_receive, rtl8139_receive, NULL,
3479 rtl8139_cleanup, s); 3479 rtl8139_cleanup, s);
3480 3480
3481 qemu_format_nic_info_str(s->vc, s->macaddr); 3481 qemu_format_nic_info_str(s->vc, s->macaddr);
hw/smc91c111.c
@@ -711,7 +711,7 @@ static void smc91c111_init1(SysBusDevice *dev) @@ -711,7 +711,7 @@ static void smc91c111_init1(SysBusDevice *dev)
711 smc91c111_reset(s); 711 smc91c111_reset(s);
712 712
713 s->vc = qdev_get_vlan_client(&dev->qdev, 713 s->vc = qdev_get_vlan_client(&dev->qdev,
714 - smc91c111_receive, smc91c111_can_receive, 714 + smc91c111_can_receive, smc91c111_receive, NULL,
715 smc91c111_cleanup, s); 715 smc91c111_cleanup, s);
716 qemu_format_nic_info_str(s->vc, s->macaddr); 716 qemu_format_nic_info_str(s->vc, s->macaddr);
717 /* ??? Save/restore. */ 717 /* ??? Save/restore. */
hw/stellaris_enet.c
@@ -405,8 +405,8 @@ static void stellaris_enet_init(SysBusDevice *dev) @@ -405,8 +405,8 @@ static void stellaris_enet_init(SysBusDevice *dev)
405 qdev_get_macaddr(&dev->qdev, s->macaddr); 405 qdev_get_macaddr(&dev->qdev, s->macaddr);
406 406
407 s->vc = qdev_get_vlan_client(&dev->qdev, 407 s->vc = qdev_get_vlan_client(&dev->qdev,
408 - stellaris_enet_receive,  
409 stellaris_enet_can_receive, 408 stellaris_enet_can_receive,
  409 + stellaris_enet_receive, NULL,
410 stellaris_enet_cleanup, s); 410 stellaris_enet_cleanup, s);
411 qemu_format_nic_info_str(s->vc, s->macaddr); 411 qemu_format_nic_info_str(s->vc, s->macaddr);
412 412
hw/usb-net.c
@@ -1458,8 +1458,9 @@ USBDevice *usb_net_init(NICInfo *nd) @@ -1458,8 +1458,9 @@ USBDevice *usb_net_init(NICInfo *nd)
1458 pstrcpy(s->dev.devname, sizeof(s->dev.devname), 1458 pstrcpy(s->dev.devname, sizeof(s->dev.devname),
1459 "QEMU USB Network Interface"); 1459 "QEMU USB Network Interface");
1460 s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name, 1460 s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
1461 - usbnet_receive,  
1462 usbnet_can_receive, 1461 usbnet_can_receive,
  1462 + usbnet_receive,
  1463 + NULL,
1463 usbnet_cleanup, s); 1464 usbnet_cleanup, s);
1464 1465
1465 qemu_format_nic_info_str(s->vc, s->mac); 1466 qemu_format_nic_info_str(s->vc, s->mac);
hw/virtio-net.c
@@ -606,8 +606,8 @@ VirtIODevice *virtio_net_init(DeviceState *dev) @@ -606,8 +606,8 @@ VirtIODevice *virtio_net_init(DeviceState *dev)
606 qdev_get_macaddr(dev, n->mac); 606 qdev_get_macaddr(dev, n->mac);
607 n->status = VIRTIO_NET_S_LINK_UP; 607 n->status = VIRTIO_NET_S_LINK_UP;
608 n->vc = qdev_get_vlan_client(dev, 608 n->vc = qdev_get_vlan_client(dev,
609 - virtio_net_receive,  
610 virtio_net_can_receive, 609 virtio_net_can_receive,
  610 + virtio_net_receive, NULL,
611 virtio_net_cleanup, n); 611 virtio_net_cleanup, n);
612 n->vc->link_status_changed = virtio_net_set_link_status; 612 n->vc->link_status_changed = virtio_net_set_link_status;
613 613
hw/xen_nic.c
@@ -301,8 +301,8 @@ static int net_init(struct XenDevice *xendev) @@ -301,8 +301,8 @@ static int net_init(struct XenDevice *xendev)
301 301
302 vlan = qemu_find_vlan(netdev->xendev.dev); 302 vlan = qemu_find_vlan(netdev->xendev.dev);
303 netdev->vs = qemu_new_vlan_client(vlan, "xen", NULL, 303 netdev->vs = qemu_new_vlan_client(vlan, "xen", NULL,
304 - net_rx_packet, net_rx_ok, NULL,  
305 - netdev); 304 + net_rx_ok, net_rx_packet, NULL,
  305 + NULL, netdev);
306 snprintf(netdev->vs->info_str, sizeof(netdev->vs->info_str), 306 snprintf(netdev->vs->info_str, sizeof(netdev->vs->info_str),
307 "nic: xenbus vif macaddr=%s", netdev->mac); 307 "nic: xenbus vif macaddr=%s", netdev->mac);
308 308
@@ -332,8 +332,9 @@ static char *assign_name(VLANClientState *vc1, const char *model) @@ -332,8 +332,9 @@ static char *assign_name(VLANClientState *vc1, const char *model)
332 VLANClientState *qemu_new_vlan_client(VLANState *vlan, 332 VLANClientState *qemu_new_vlan_client(VLANState *vlan,
333 const char *model, 333 const char *model,
334 const char *name, 334 const char *name,
335 - IOReadHandler *fd_read,  
336 IOCanRWHandler *fd_can_read, 335 IOCanRWHandler *fd_can_read,
  336 + IOReadHandler *fd_read,
  337 + IOReadvHandler *fd_readv,
337 NetCleanup *cleanup, 338 NetCleanup *cleanup,
338 void *opaque) 339 void *opaque)
339 { 340 {
@@ -344,8 +345,9 @@ VLANClientState *qemu_new_vlan_client(VLANState *vlan, @@ -344,8 +345,9 @@ VLANClientState *qemu_new_vlan_client(VLANState *vlan,
344 vc->name = strdup(name); 345 vc->name = strdup(name);
345 else 346 else
346 vc->name = assign_name(vc, model); 347 vc->name = assign_name(vc, model);
347 - vc->fd_read = fd_read;  
348 vc->fd_can_read = fd_can_read; 348 vc->fd_can_read = fd_can_read;
  349 + vc->fd_read = fd_read;
  350 + vc->fd_readv = fd_readv;
349 vc->cleanup = cleanup; 351 vc->cleanup = cleanup;
350 vc->opaque = opaque; 352 vc->opaque = opaque;
351 vc->vlan = vlan; 353 vc->vlan = vlan;
@@ -632,7 +634,7 @@ static int net_slirp_init(VLANState *vlan, const char *model, const char *name, @@ -632,7 +634,7 @@ static int net_slirp_init(VLANState *vlan, const char *model, const char *name,
632 #endif 634 #endif
633 } 635 }
634 636
635 - slirp_vc = qemu_new_vlan_client(vlan, model, name, slirp_receive, 637 + slirp_vc = qemu_new_vlan_client(vlan, model, name, NULL, slirp_receive,
636 NULL, net_slirp_cleanup, NULL); 638 NULL, net_slirp_cleanup, NULL);
637 slirp_vc->info_str[0] = '\0'; 639 slirp_vc->info_str[0] = '\0';
638 slirp_in_use = 1; 640 slirp_in_use = 1;
@@ -1015,9 +1017,8 @@ static TAPState *net_tap_fd_init(VLANState *vlan, @@ -1015,9 +1017,8 @@ static TAPState *net_tap_fd_init(VLANState *vlan,
1015 1017
1016 s = qemu_mallocz(sizeof(TAPState)); 1018 s = qemu_mallocz(sizeof(TAPState));
1017 s->fd = fd; 1019 s->fd = fd;
1018 - s->vc = qemu_new_vlan_client(vlan, model, name, tap_receive,  
1019 - NULL, tap_cleanup, s);  
1020 - s->vc->fd_readv = tap_receive_iov; 1020 + s->vc = qemu_new_vlan_client(vlan, model, name, NULL, tap_receive,
  1021 + tap_receive_iov, tap_cleanup, s);
1021 qemu_set_fd_handler2(s->fd, tap_can_send, tap_send, NULL, s); 1022 qemu_set_fd_handler2(s->fd, tap_can_send, tap_send, NULL, s);
1022 snprintf(s->vc->info_str, sizeof(s->vc->info_str), "fd=%d", fd); 1023 snprintf(s->vc->info_str, sizeof(s->vc->info_str), "fd=%d", fd);
1023 return s; 1024 return s;
@@ -1351,7 +1352,7 @@ static int net_vde_init(VLANState *vlan, const char *model, @@ -1351,7 +1352,7 @@ static int net_vde_init(VLANState *vlan, const char *model,
1351 free(s); 1352 free(s);
1352 return -1; 1353 return -1;
1353 } 1354 }
1354 - s->vc = qemu_new_vlan_client(vlan, model, name, vde_from_qemu, 1355 + s->vc = qemu_new_vlan_client(vlan, model, name, NULL, vde_from_qemu,
1355 NULL, vde_cleanup, s); 1356 NULL, vde_cleanup, s);
1356 qemu_set_fd_handler(vde_datafd(s->vde), vde_to_qemu, NULL, s); 1357 qemu_set_fd_handler(vde_datafd(s->vde), vde_to_qemu, NULL, s);
1357 snprintf(s->vc->info_str, sizeof(s->vc->info_str), "sock=%s,fd=%d", 1358 snprintf(s->vc->info_str, sizeof(s->vc->info_str), "sock=%s,fd=%d",
@@ -1589,7 +1590,7 @@ static NetSocketState *net_socket_fd_init_dgram(VLANState *vlan, @@ -1589,7 +1590,7 @@ static NetSocketState *net_socket_fd_init_dgram(VLANState *vlan,
1589 s = qemu_mallocz(sizeof(NetSocketState)); 1590 s = qemu_mallocz(sizeof(NetSocketState));
1590 s->fd = fd; 1591 s->fd = fd;
1591 1592
1592 - s->vc = qemu_new_vlan_client(vlan, model, name, net_socket_receive_dgram, 1593 + s->vc = qemu_new_vlan_client(vlan, model, name, NULL, net_socket_receive_dgram,
1593 NULL, net_socket_cleanup, s); 1594 NULL, net_socket_cleanup, s);
1594 qemu_set_fd_handler(s->fd, net_socket_send_dgram, NULL, s); 1595 qemu_set_fd_handler(s->fd, net_socket_send_dgram, NULL, s);
1595 1596
@@ -1617,7 +1618,7 @@ static NetSocketState *net_socket_fd_init_stream(VLANState *vlan, @@ -1617,7 +1618,7 @@ static NetSocketState *net_socket_fd_init_stream(VLANState *vlan,
1617 NetSocketState *s; 1618 NetSocketState *s;
1618 s = qemu_mallocz(sizeof(NetSocketState)); 1619 s = qemu_mallocz(sizeof(NetSocketState));
1619 s->fd = fd; 1620 s->fd = fd;
1620 - s->vc = qemu_new_vlan_client(vlan, model, name, net_socket_receive, 1621 + s->vc = qemu_new_vlan_client(vlan, model, name, NULL, net_socket_receive,
1621 NULL, net_socket_cleanup, s); 1622 NULL, net_socket_cleanup, s);
1622 snprintf(s->vc->info_str, sizeof(s->vc->info_str), 1623 snprintf(s->vc->info_str, sizeof(s->vc->info_str),
1623 "socket: fd=%d", fd); 1624 "socket: fd=%d", fd);
@@ -1896,7 +1897,7 @@ static int net_dump_init(Monitor *mon, VLANState *vlan, const char *device, @@ -1896,7 +1897,7 @@ static int net_dump_init(Monitor *mon, VLANState *vlan, const char *device,
1896 return -1; 1897 return -1;
1897 } 1898 }
1898 1899
1899 - s->pcap_vc = qemu_new_vlan_client(vlan, device, name, dump_receive, NULL, 1900 + s->pcap_vc = qemu_new_vlan_client(vlan, device, name, NULL, dump_receive, NULL,
1900 net_dump_cleanup, s); 1901 net_dump_cleanup, s);
1901 snprintf(s->pcap_vc->info_str, sizeof(s->pcap_vc->info_str), 1902 snprintf(s->pcap_vc->info_str, sizeof(s->pcap_vc->info_str),
1902 "dump to %s (len=%d)", filename, len); 1903 "dump to %s (len=%d)", filename, len);
@@ -51,8 +51,9 @@ VLANState *qemu_find_vlan(int id); @@ -51,8 +51,9 @@ VLANState *qemu_find_vlan(int id);
51 VLANClientState *qemu_new_vlan_client(VLANState *vlan, 51 VLANClientState *qemu_new_vlan_client(VLANState *vlan,
52 const char *model, 52 const char *model,
53 const char *name, 53 const char *name,
54 - IOReadHandler *fd_read,  
55 IOCanRWHandler *fd_can_read, 54 IOCanRWHandler *fd_can_read,
  55 + IOReadHandler *fd_read,
  56 + IOReadvHandler *fd_readv,
56 NetCleanup *cleanup, 57 NetCleanup *cleanup,
57 void *opaque); 58 void *opaque);
58 void qemu_del_vlan_client(VLANClientState *vc); 59 void qemu_del_vlan_client(VLANClientState *vc);
@@ -129,8 +130,9 @@ void net_host_device_remove(Monitor *mon, int vlan_id, const char *device); @@ -129,8 +130,9 @@ void net_host_device_remove(Monitor *mon, int vlan_id, const char *device);
129 130
130 void qdev_get_macaddr(DeviceState *dev, uint8_t *macaddr); 131 void qdev_get_macaddr(DeviceState *dev, uint8_t *macaddr);
131 VLANClientState *qdev_get_vlan_client(DeviceState *dev, 132 VLANClientState *qdev_get_vlan_client(DeviceState *dev,
132 - IOReadHandler *fd_read,  
133 IOCanRWHandler *fd_can_read, 133 IOCanRWHandler *fd_can_read,
  134 + IOReadHandler *fd_read,
  135 + IOReadvHandler *fd_readv,
134 NetCleanup *cleanup, 136 NetCleanup *cleanup,
135 void *opaque); 137 void *opaque);
136 138
tap-win32.c
@@ -684,7 +684,7 @@ int tap_win32_init(VLANState *vlan, const char *model, @@ -684,7 +684,7 @@ int tap_win32_init(VLANState *vlan, const char *model,
684 return -1; 684 return -1;
685 } 685 }
686 686
687 - s->vc = qemu_new_vlan_client(vlan, model, name, tap_receive, 687 + s->vc = qemu_new_vlan_client(vlan, model, name, NULL, tap_receive,
688 NULL, tap_cleanup, s); 688 NULL, tap_cleanup, s);
689 689
690 snprintf(s->vc->info_str, sizeof(s->vc->info_str), 690 snprintf(s->vc->info_str, sizeof(s->vc->info_str),