Commit e3f5ec2b5e92706e3b807059f79b1fb5d936e567
1 parent
cda9046b
net: pass VLANClientState* as first arg to receive handlers
Give static type checking a chance to catch errors. Signed-off-by: Mark McLoughlin <markmc@redhat.com>
Showing
19 changed files
with
90 additions
and
90 deletions
hw/dp8393x.c
... | ... | @@ -407,9 +407,9 @@ static void do_transmit_packets(dp8393xState *s) |
407 | 407 | if (s->regs[SONIC_RCR] & (SONIC_RCR_LB1 | SONIC_RCR_LB0)) { |
408 | 408 | /* Loopback */ |
409 | 409 | s->regs[SONIC_TCR] |= SONIC_TCR_CRSL; |
410 | - if (s->vc->fd_can_read(s)) { | |
410 | + if (s->vc->can_receive(s->vc)) { | |
411 | 411 | s->loopback_packet = 1; |
412 | - s->vc->receive(s, s->tx_buffer, tx_len); | |
412 | + s->vc->receive(s->vc, s->tx_buffer, tx_len); | |
413 | 413 | } |
414 | 414 | } else { |
415 | 415 | /* Transmit packet */ |
... | ... | @@ -676,9 +676,9 @@ static CPUWriteMemoryFunc *dp8393x_write[3] = { |
676 | 676 | dp8393x_writel, |
677 | 677 | }; |
678 | 678 | |
679 | -static int nic_can_receive(void *opaque) | |
679 | +static int nic_can_receive(VLANClientState *vc) | |
680 | 680 | { |
681 | - dp8393xState *s = opaque; | |
681 | + dp8393xState *s = vc->opaque; | |
682 | 682 | |
683 | 683 | if (!(s->regs[SONIC_CR] & SONIC_CR_RXEN)) |
684 | 684 | return 0; |
... | ... | @@ -725,10 +725,10 @@ static int receive_filter(dp8393xState *s, const uint8_t * buf, int size) |
725 | 725 | return -1; |
726 | 726 | } |
727 | 727 | |
728 | -static void nic_receive(void *opaque, const uint8_t * buf, size_t size) | |
728 | +static void nic_receive(VLANClientState *vc, const uint8_t * buf, size_t size) | |
729 | 729 | { |
730 | 730 | uint16_t data[10]; |
731 | - dp8393xState *s = opaque; | |
731 | + dp8393xState *s = vc->opaque; | |
732 | 732 | int packet_type; |
733 | 733 | uint32_t available, address; |
734 | 734 | int width, rx_len = size; | ... | ... |
hw/e1000.c
... | ... | @@ -592,17 +592,17 @@ e1000_set_link_status(VLANClientState *vc) |
592 | 592 | } |
593 | 593 | |
594 | 594 | static int |
595 | -e1000_can_receive(void *opaque) | |
595 | +e1000_can_receive(VLANClientState *vc) | |
596 | 596 | { |
597 | - E1000State *s = opaque; | |
597 | + E1000State *s = vc->opaque; | |
598 | 598 | |
599 | 599 | return (s->mac_reg[RCTL] & E1000_RCTL_EN); |
600 | 600 | } |
601 | 601 | |
602 | 602 | static void |
603 | -e1000_receive(void *opaque, const uint8_t *buf, size_t size) | |
603 | +e1000_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
604 | 604 | { |
605 | - E1000State *s = opaque; | |
605 | + E1000State *s = vc->opaque; | |
606 | 606 | struct e1000_rx_desc desc; |
607 | 607 | target_phys_addr_t base; |
608 | 608 | unsigned int n, rdt; | ... | ... |
hw/eepro100.c
... | ... | @@ -1433,21 +1433,21 @@ static void pci_mmio_map(PCIDevice * pci_dev, int region_num, |
1433 | 1433 | } |
1434 | 1434 | } |
1435 | 1435 | |
1436 | -static int nic_can_receive(void *opaque) | |
1436 | +static int nic_can_receive(VLANClientState *vc) | |
1437 | 1437 | { |
1438 | - EEPRO100State *s = opaque; | |
1438 | + EEPRO100State *s = vc->opaque; | |
1439 | 1439 | logout("%p\n", s); |
1440 | 1440 | return get_ru_state(s) == ru_ready; |
1441 | 1441 | //~ return !eepro100_buffer_full(s); |
1442 | 1442 | } |
1443 | 1443 | |
1444 | -static void nic_receive(void *opaque, const uint8_t * buf, size_t size) | |
1444 | +static void nic_receive(VLANClientState *vc, const uint8_t * buf, size_t size) | |
1445 | 1445 | { |
1446 | 1446 | /* TODO: |
1447 | 1447 | * - Magic packets should set bit 30 in power management driver register. |
1448 | 1448 | * - Interesting packets should set bit 29 in power management driver register. |
1449 | 1449 | */ |
1450 | - EEPRO100State *s = opaque; | |
1450 | + EEPRO100State *s = vc->opaque; | |
1451 | 1451 | uint16_t rfd_status = 0xa000; |
1452 | 1452 | static const uint8_t broadcast_macaddr[6] = |
1453 | 1453 | { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; | ... | ... |
hw/etraxfs_eth.c
... | ... | @@ -496,15 +496,15 @@ static int eth_match_groupaddr(struct fs_eth *eth, const unsigned char *sa) |
496 | 496 | return match; |
497 | 497 | } |
498 | 498 | |
499 | -static int eth_can_receive(void *opaque) | |
499 | +static int eth_can_receive(VLANClientState *vc) | |
500 | 500 | { |
501 | 501 | return 1; |
502 | 502 | } |
503 | 503 | |
504 | -static void eth_receive(void *opaque, const uint8_t *buf, size_t size) | |
504 | +static void eth_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
505 | 505 | { |
506 | 506 | unsigned char sa_bcast[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; |
507 | - struct fs_eth *eth = opaque; | |
507 | + struct fs_eth *eth = vc->opaque; | |
508 | 508 | int use_ma0 = eth->regs[RW_REC_CTRL] & 1; |
509 | 509 | int use_ma1 = eth->regs[RW_REC_CTRL] & 2; |
510 | 510 | int r_bcast = eth->regs[RW_REC_CTRL] & 8; | ... | ... |
hw/mcf_fec.c
... | ... | @@ -347,15 +347,15 @@ static void mcf_fec_write(void *opaque, target_phys_addr_t addr, uint32_t value) |
347 | 347 | mcf_fec_update(s); |
348 | 348 | } |
349 | 349 | |
350 | -static int mcf_fec_can_receive(void *opaque) | |
350 | +static int mcf_fec_can_receive(VLANClientState *vc) | |
351 | 351 | { |
352 | - mcf_fec_state *s = (mcf_fec_state *)opaque; | |
352 | + mcf_fec_state *s = vc->opaque; | |
353 | 353 | return s->rx_enabled; |
354 | 354 | } |
355 | 355 | |
356 | -static void mcf_fec_receive(void *opaque, const uint8_t *buf, size_t size) | |
356 | +static void mcf_fec_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
357 | 357 | { |
358 | - mcf_fec_state *s = (mcf_fec_state *)opaque; | |
358 | + mcf_fec_state *s = vc->opaque; | |
359 | 359 | mcf_fec_bd bd; |
360 | 360 | uint32_t flags = 0; |
361 | 361 | uint32_t addr; | ... | ... |
hw/mipsnet.c
... | ... | @@ -66,23 +66,23 @@ static int mipsnet_buffer_full(MIPSnetState *s) |
66 | 66 | return 0; |
67 | 67 | } |
68 | 68 | |
69 | -static int mipsnet_can_receive(void *opaque) | |
69 | +static int mipsnet_can_receive(VLANClientState *vc) | |
70 | 70 | { |
71 | - MIPSnetState *s = opaque; | |
71 | + MIPSnetState *s = vc->opaque; | |
72 | 72 | |
73 | 73 | if (s->busy) |
74 | 74 | return 0; |
75 | 75 | return !mipsnet_buffer_full(s); |
76 | 76 | } |
77 | 77 | |
78 | -static void mipsnet_receive(void *opaque, const uint8_t *buf, size_t size) | |
78 | +static void mipsnet_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
79 | 79 | { |
80 | - MIPSnetState *s = opaque; | |
80 | + MIPSnetState *s = vc->opaque; | |
81 | 81 | |
82 | 82 | #ifdef DEBUG_MIPSNET_RECEIVE |
83 | 83 | printf("mipsnet: receiving len=%d\n", size); |
84 | 84 | #endif |
85 | - if (!mipsnet_can_receive(opaque)) | |
85 | + if (!mipsnet_can_receive(vc)) | |
86 | 86 | return; |
87 | 87 | |
88 | 88 | s->busy = 1; | ... | ... |
hw/musicpal.c
... | ... | @@ -557,14 +557,14 @@ static void eth_rx_desc_get(uint32_t addr, mv88w8618_rx_desc *desc) |
557 | 557 | le32_to_cpus(&desc->next); |
558 | 558 | } |
559 | 559 | |
560 | -static int eth_can_receive(void *opaque) | |
560 | +static int eth_can_receive(VLANClientState *vc) | |
561 | 561 | { |
562 | 562 | return 1; |
563 | 563 | } |
564 | 564 | |
565 | -static void eth_receive(void *opaque, const uint8_t *buf, size_t size) | |
565 | +static void eth_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
566 | 566 | { |
567 | - mv88w8618_eth_state *s = opaque; | |
567 | + mv88w8618_eth_state *s = vc->opaque; | |
568 | 568 | uint32_t desc_addr; |
569 | 569 | mv88w8618_rx_desc desc; |
570 | 570 | int i; | ... | ... |
hw/ne2000.c
... | ... | @@ -213,9 +213,9 @@ static int ne2000_buffer_full(NE2000State *s) |
213 | 213 | return 0; |
214 | 214 | } |
215 | 215 | |
216 | -static int ne2000_can_receive(void *opaque) | |
216 | +static int ne2000_can_receive(VLANClientState *vc) | |
217 | 217 | { |
218 | - NE2000State *s = opaque; | |
218 | + NE2000State *s = vc->opaque; | |
219 | 219 | |
220 | 220 | if (s->cmd & E8390_STOP) |
221 | 221 | return 1; |
... | ... | @@ -224,9 +224,9 @@ static int ne2000_can_receive(void *opaque) |
224 | 224 | |
225 | 225 | #define MIN_BUF_SIZE 60 |
226 | 226 | |
227 | -static void ne2000_receive(void *opaque, const uint8_t *buf, size_t size) | |
227 | +static void ne2000_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
228 | 228 | { |
229 | - NE2000State *s = opaque; | |
229 | + NE2000State *s = vc->opaque; | |
230 | 230 | uint8_t *p; |
231 | 231 | unsigned int total_len, next, avail, len, index, mcast_idx; |
232 | 232 | uint8_t buf1[60]; | ... | ... |
hw/pcnet.c
... | ... | @@ -1062,9 +1062,9 @@ static int pcnet_tdte_poll(PCNetState *s) |
1062 | 1062 | return !!(CSR_CXST(s) & 0x8000); |
1063 | 1063 | } |
1064 | 1064 | |
1065 | -static int pcnet_can_receive(void *opaque) | |
1065 | +static int pcnet_can_receive(VLANClientState *vc) | |
1066 | 1066 | { |
1067 | - PCNetState *s = opaque; | |
1067 | + PCNetState *s = vc->opaque; | |
1068 | 1068 | if (CSR_STOP(s) || CSR_SPND(s)) |
1069 | 1069 | return 0; |
1070 | 1070 | |
... | ... | @@ -1076,9 +1076,9 @@ static int pcnet_can_receive(void *opaque) |
1076 | 1076 | |
1077 | 1077 | #define MIN_BUF_SIZE 60 |
1078 | 1078 | |
1079 | -static void pcnet_receive(void *opaque, const uint8_t *buf, size_t size) | |
1079 | +static void pcnet_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
1080 | 1080 | { |
1081 | - PCNetState *s = opaque; | |
1081 | + PCNetState *s = vc->opaque; | |
1082 | 1082 | int is_padr = 0, is_bcast = 0, is_ladr = 0; |
1083 | 1083 | uint8_t buf1[60]; |
1084 | 1084 | int remaining; |
... | ... | @@ -1302,7 +1302,7 @@ static void pcnet_transmit(PCNetState *s) |
1302 | 1302 | if (BCR_SWSTYLE(s) == 1) |
1303 | 1303 | add_crc = !GET_FIELD(tmd.status, TMDS, NOFCS); |
1304 | 1304 | s->looptest = add_crc ? PCNET_LOOPTEST_CRC : PCNET_LOOPTEST_NOCRC; |
1305 | - pcnet_receive(s, s->buffer, s->xmit_pos); | |
1305 | + pcnet_receive(s->vc, s->buffer, s->xmit_pos); | |
1306 | 1306 | s->looptest = 0; |
1307 | 1307 | } else |
1308 | 1308 | if (s->vc) | ... | ... |
hw/rtl8139.c
... | ... | @@ -790,9 +790,9 @@ static inline target_phys_addr_t rtl8139_addr64(uint32_t low, uint32_t high) |
790 | 790 | #endif |
791 | 791 | } |
792 | 792 | |
793 | -static int rtl8139_can_receive(void *opaque) | |
793 | +static int rtl8139_can_receive(VLANClientState *vc) | |
794 | 794 | { |
795 | - RTL8139State *s = opaque; | |
795 | + RTL8139State *s = vc->opaque; | |
796 | 796 | int avail; |
797 | 797 | |
798 | 798 | /* Receive (drop) packets if card is disabled. */ |
... | ... | @@ -812,9 +812,9 @@ static int rtl8139_can_receive(void *opaque) |
812 | 812 | } |
813 | 813 | } |
814 | 814 | |
815 | -static void rtl8139_do_receive(void *opaque, const uint8_t *buf, int size, int do_interrupt) | |
815 | +static void rtl8139_do_receive(VLANClientState *vc, const uint8_t *buf, int size, int do_interrupt) | |
816 | 816 | { |
817 | - RTL8139State *s = opaque; | |
817 | + RTL8139State *s = vc->opaque; | |
818 | 818 | |
819 | 819 | uint32_t packet_header = 0; |
820 | 820 | |
... | ... | @@ -1158,9 +1158,9 @@ static void rtl8139_do_receive(void *opaque, const uint8_t *buf, int size, int d |
1158 | 1158 | } |
1159 | 1159 | } |
1160 | 1160 | |
1161 | -static void rtl8139_receive(void *opaque, const uint8_t *buf, size_t size) | |
1161 | +static void rtl8139_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
1162 | 1162 | { |
1163 | - rtl8139_do_receive(opaque, buf, size, 1); | |
1163 | + rtl8139_do_receive(vc, buf, size, 1); | |
1164 | 1164 | } |
1165 | 1165 | |
1166 | 1166 | static void rtl8139_reset_rxring(RTL8139State *s, uint32_t bufferSize) |
... | ... | @@ -1757,7 +1757,7 @@ static void rtl8139_transfer_frame(RTL8139State *s, const uint8_t *buf, int size |
1757 | 1757 | if (TxLoopBack == (s->TxConfig & TxLoopBack)) |
1758 | 1758 | { |
1759 | 1759 | DEBUG_PRINT(("RTL8139: +++ transmit loopback mode\n")); |
1760 | - rtl8139_do_receive(s, buf, size, do_interrupt); | |
1760 | + rtl8139_do_receive(s->vc, buf, size, do_interrupt); | |
1761 | 1761 | } |
1762 | 1762 | else |
1763 | 1763 | { | ... | ... |
hw/smc91c111.c
... | ... | @@ -591,9 +591,9 @@ static uint32_t smc91c111_readl(void *opaque, target_phys_addr_t offset) |
591 | 591 | return val; |
592 | 592 | } |
593 | 593 | |
594 | -static int smc91c111_can_receive(void *opaque) | |
594 | +static int smc91c111_can_receive(VLANClientState *vc) | |
595 | 595 | { |
596 | - smc91c111_state *s = (smc91c111_state *)opaque; | |
596 | + smc91c111_state *s = vc->opaque; | |
597 | 597 | |
598 | 598 | if ((s->rcr & RCR_RXEN) == 0 || (s->rcr & RCR_SOFT_RST)) |
599 | 599 | return 1; |
... | ... | @@ -602,9 +602,9 @@ static int smc91c111_can_receive(void *opaque) |
602 | 602 | return 1; |
603 | 603 | } |
604 | 604 | |
605 | -static void smc91c111_receive(void *opaque, const uint8_t *buf, size_t size) | |
605 | +static void smc91c111_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
606 | 606 | { |
607 | - smc91c111_state *s = (smc91c111_state *)opaque; | |
607 | + smc91c111_state *s = vc->opaque; | |
608 | 608 | int status; |
609 | 609 | int packetsize; |
610 | 610 | uint32_t crc; | ... | ... |
hw/stellaris_enet.c
... | ... | @@ -78,9 +78,9 @@ static void stellaris_enet_update(stellaris_enet_state *s) |
78 | 78 | } |
79 | 79 | |
80 | 80 | /* TODO: Implement MAC address filtering. */ |
81 | -static void stellaris_enet_receive(void *opaque, const uint8_t *buf, size_t size) | |
81 | +static void stellaris_enet_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
82 | 82 | { |
83 | - stellaris_enet_state *s = (stellaris_enet_state *)opaque; | |
83 | + stellaris_enet_state *s = vc->opaque; | |
84 | 84 | int n; |
85 | 85 | uint8_t *p; |
86 | 86 | uint32_t crc; |
... | ... | @@ -118,9 +118,9 @@ static void stellaris_enet_receive(void *opaque, const uint8_t *buf, size_t size |
118 | 118 | stellaris_enet_update(s); |
119 | 119 | } |
120 | 120 | |
121 | -static int stellaris_enet_can_receive(void *opaque) | |
121 | +static int stellaris_enet_can_receive(VLANClientState *vc) | |
122 | 122 | { |
123 | - stellaris_enet_state *s = (stellaris_enet_state *)opaque; | |
123 | + stellaris_enet_state *s = vc->opaque; | |
124 | 124 | |
125 | 125 | if ((s->rctl & SE_RCTL_RXEN) == 0) |
126 | 126 | return 1; |
... | ... | @@ -128,9 +128,9 @@ static int stellaris_enet_can_receive(void *opaque) |
128 | 128 | return (s->np < 31); |
129 | 129 | } |
130 | 130 | |
131 | -static uint32_t stellaris_enet_read(void *opaque, target_phys_addr_t offset) | |
131 | +static uint32_t stellaris_enet_read(VLANClientState *vc, target_phys_addr_t offset) | |
132 | 132 | { |
133 | - stellaris_enet_state *s = (stellaris_enet_state *)opaque; | |
133 | + stellaris_enet_state *s = vc->opaque; | |
134 | 134 | uint32_t val; |
135 | 135 | |
136 | 136 | switch (offset) { | ... | ... |
hw/usb-net.c
... | ... | @@ -1369,9 +1369,9 @@ static int usb_net_handle_data(USBDevice *dev, USBPacket *p) |
1369 | 1369 | return ret; |
1370 | 1370 | } |
1371 | 1371 | |
1372 | -static void usbnet_receive(void *opaque, const uint8_t *buf, size_t size) | |
1372 | +static void usbnet_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
1373 | 1373 | { |
1374 | - USBNetState *s = opaque; | |
1374 | + USBNetState *s = vc->opaque; | |
1375 | 1375 | struct rndis_packet_msg_type *msg; |
1376 | 1376 | |
1377 | 1377 | if (s->rndis) { |
... | ... | @@ -1405,9 +1405,9 @@ static void usbnet_receive(void *opaque, const uint8_t *buf, size_t size) |
1405 | 1405 | s->in_ptr = 0; |
1406 | 1406 | } |
1407 | 1407 | |
1408 | -static int usbnet_can_receive(void *opaque) | |
1408 | +static int usbnet_can_receive(VLANClientState *vc) | |
1409 | 1409 | { |
1410 | - USBNetState *s = opaque; | |
1410 | + USBNetState *s = vc->opaque; | |
1411 | 1411 | |
1412 | 1412 | if (s->rndis && !s->rndis_state == RNDIS_DATA_INITIALIZED) |
1413 | 1413 | return 1; | ... | ... |
hw/virtio-net.c
... | ... | @@ -288,9 +288,9 @@ static int do_virtio_net_can_receive(VirtIONet *n, int bufsize) |
288 | 288 | return 1; |
289 | 289 | } |
290 | 290 | |
291 | -static int virtio_net_can_receive(void *opaque) | |
291 | +static int virtio_net_can_receive(VLANClientState *vc) | |
292 | 292 | { |
293 | - VirtIONet *n = opaque; | |
293 | + VirtIONet *n = vc->opaque; | |
294 | 294 | |
295 | 295 | return do_virtio_net_can_receive(n, VIRTIO_NET_MAX_BUFSIZE); |
296 | 296 | } |
... | ... | @@ -361,9 +361,9 @@ static int receive_filter(VirtIONet *n, const uint8_t *buf, int size) |
361 | 361 | return 0; |
362 | 362 | } |
363 | 363 | |
364 | -static void virtio_net_receive(void *opaque, const uint8_t *buf, size_t size) | |
364 | +static void virtio_net_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
365 | 365 | { |
366 | - VirtIONet *n = opaque; | |
366 | + VirtIONet *n = vc->opaque; | |
367 | 367 | struct virtio_net_hdr_mrg_rxbuf *mhdr = NULL; |
368 | 368 | size_t hdr_len, offset, i; |
369 | 369 | ... | ... |
hw/xen_nic.c
... | ... | @@ -223,9 +223,9 @@ static void net_rx_response(struct XenNetDev *netdev, |
223 | 223 | |
224 | 224 | #define NET_IP_ALIGN 2 |
225 | 225 | |
226 | -static int net_rx_ok(void *opaque) | |
226 | +static int net_rx_ok(VLANClientState *vc) | |
227 | 227 | { |
228 | - struct XenNetDev *netdev = opaque; | |
228 | + struct XenNetDev *netdev = vc->opaque; | |
229 | 229 | RING_IDX rc, rp; |
230 | 230 | |
231 | 231 | if (netdev->xendev.be_state != XenbusStateConnected) |
... | ... | @@ -243,9 +243,9 @@ static int net_rx_ok(void *opaque) |
243 | 243 | return 1; |
244 | 244 | } |
245 | 245 | |
246 | -static void net_rx_packet(void *opaque, const uint8_t *buf, size_t size) | |
246 | +static void net_rx_packet(VLANClientState *vc, const uint8_t *buf, size_t size) | |
247 | 247 | { |
248 | - struct XenNetDev *netdev = opaque; | |
248 | + struct XenNetDev *netdev = vc->opaque; | |
249 | 249 | netif_rx_request_t rxreq; |
250 | 250 | RING_IDX rc, rp; |
251 | 251 | void *page; | ... | ... |
net.c
... | ... | @@ -402,7 +402,7 @@ int qemu_can_send_packet(VLANClientState *sender) |
402 | 402 | } |
403 | 403 | |
404 | 404 | /* no can_receive() handler, they can always receive */ |
405 | - if (!vc->can_receive || vc->can_receive(vc->opaque)) { | |
405 | + if (!vc->can_receive || vc->can_receive(vc)) { | |
406 | 406 | return 1; |
407 | 407 | } |
408 | 408 | } |
... | ... | @@ -416,7 +416,7 @@ qemu_deliver_packet(VLANClientState *sender, const uint8_t *buf, int size) |
416 | 416 | |
417 | 417 | for (vc = sender->vlan->first_client; vc != NULL; vc = vc->next) { |
418 | 418 | if (vc != sender && !vc->link_down) { |
419 | - vc->receive(vc->opaque, buf, size); | |
419 | + vc->receive(vc, buf, size); | |
420 | 420 | } |
421 | 421 | } |
422 | 422 | } |
... | ... | @@ -467,7 +467,7 @@ static ssize_t vc_sendv_compat(VLANClientState *vc, const struct iovec *iov, |
467 | 467 | offset += len; |
468 | 468 | } |
469 | 469 | |
470 | - vc->receive(vc->opaque, buffer, offset); | |
470 | + vc->receive(vc, buffer, offset); | |
471 | 471 | |
472 | 472 | return offset; |
473 | 473 | } |
... | ... | @@ -520,7 +520,7 @@ ssize_t qemu_sendv_packet(VLANClientState *sender, const struct iovec *iov, |
520 | 520 | if (vc->link_down) { |
521 | 521 | len = calc_iov_length(iov, iovcnt); |
522 | 522 | } else if (vc->receive_iov) { |
523 | - len = vc->receive_iov(vc->opaque, iov, iovcnt); | |
523 | + len = vc->receive_iov(vc, iov, iovcnt); | |
524 | 524 | } else if (vc->receive) { |
525 | 525 | len = vc_sendv_compat(vc, iov, iovcnt); |
526 | 526 | } |
... | ... | @@ -593,7 +593,7 @@ int slirp_is_inited(void) |
593 | 593 | return slirp_inited; |
594 | 594 | } |
595 | 595 | |
596 | -static void slirp_receive(void *opaque, const uint8_t *buf, size_t size) | |
596 | +static void slirp_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
597 | 597 | { |
598 | 598 | #ifdef DEBUG_SLIRP |
599 | 599 | printf("slirp input:\n"); |
... | ... | @@ -932,10 +932,10 @@ typedef struct TAPState { |
932 | 932 | |
933 | 933 | static int launch_script(const char *setup_script, const char *ifname, int fd); |
934 | 934 | |
935 | -static ssize_t tap_receive_iov(void *opaque, const struct iovec *iov, | |
935 | +static ssize_t tap_receive_iov(VLANClientState *vc, const struct iovec *iov, | |
936 | 936 | int iovcnt) |
937 | 937 | { |
938 | - TAPState *s = opaque; | |
938 | + TAPState *s = vc->opaque; | |
939 | 939 | ssize_t len; |
940 | 940 | |
941 | 941 | do { |
... | ... | @@ -945,9 +945,9 @@ static ssize_t tap_receive_iov(void *opaque, const struct iovec *iov, |
945 | 945 | return len; |
946 | 946 | } |
947 | 947 | |
948 | -static void tap_receive(void *opaque, const uint8_t *buf, size_t size) | |
948 | +static void tap_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
949 | 949 | { |
950 | - TAPState *s = opaque; | |
950 | + TAPState *s = vc->opaque; | |
951 | 951 | int ret; |
952 | 952 | for(;;) { |
953 | 953 | ret = write(s->fd, buf, size); |
... | ... | @@ -1311,9 +1311,9 @@ static void vde_to_qemu(void *opaque) |
1311 | 1311 | } |
1312 | 1312 | } |
1313 | 1313 | |
1314 | -static void vde_from_qemu(void *opaque, const uint8_t *buf, int size) | |
1314 | +static void vde_receive(VLANClientState *vc, const uint8_t *buf, int size) | |
1315 | 1315 | { |
1316 | - VDEState *s = opaque; | |
1316 | + VDEState *s = vc->opaque; | |
1317 | 1317 | int ret; |
1318 | 1318 | for(;;) { |
1319 | 1319 | ret = vde_send(s->vde, (const char *)buf, size, 0); |
... | ... | @@ -1352,7 +1352,7 @@ static int net_vde_init(VLANState *vlan, const char *model, |
1352 | 1352 | free(s); |
1353 | 1353 | return -1; |
1354 | 1354 | } |
1355 | - s->vc = qemu_new_vlan_client(vlan, model, name, NULL, vde_from_qemu, | |
1355 | + s->vc = qemu_new_vlan_client(vlan, model, name, NULL, vde_receive, | |
1356 | 1356 | NULL, vde_cleanup, s); |
1357 | 1357 | qemu_set_fd_handler(vde_datafd(s->vde), vde_to_qemu, NULL, s); |
1358 | 1358 | snprintf(s->vc->info_str, sizeof(s->vc->info_str), "sock=%s,fd=%d", |
... | ... | @@ -1380,9 +1380,9 @@ typedef struct NetSocketListenState { |
1380 | 1380 | } NetSocketListenState; |
1381 | 1381 | |
1382 | 1382 | /* XXX: we consider we can send the whole packet without blocking */ |
1383 | -static void net_socket_receive(void *opaque, const uint8_t *buf, size_t size) | |
1383 | +static void net_socket_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
1384 | 1384 | { |
1385 | - NetSocketState *s = opaque; | |
1385 | + NetSocketState *s = vc->opaque; | |
1386 | 1386 | uint32_t len; |
1387 | 1387 | len = htonl(size); |
1388 | 1388 | |
... | ... | @@ -1390,9 +1390,9 @@ static void net_socket_receive(void *opaque, const uint8_t *buf, size_t size) |
1390 | 1390 | send_all(s->fd, buf, size); |
1391 | 1391 | } |
1392 | 1392 | |
1393 | -static void net_socket_receive_dgram(void *opaque, const uint8_t *buf, size_t size) | |
1393 | +static void net_socket_receive_dgram(VLANClientState *vc, const uint8_t *buf, size_t size) | |
1394 | 1394 | { |
1395 | - NetSocketState *s = opaque; | |
1395 | + NetSocketState *s = vc->opaque; | |
1396 | 1396 | sendto(s->fd, buf, size, 0, |
1397 | 1397 | (struct sockaddr *)&s->dgram_dst, sizeof(s->dgram_dst)); |
1398 | 1398 | } |
... | ... | @@ -1831,9 +1831,9 @@ struct pcap_sf_pkthdr { |
1831 | 1831 | uint32_t len; |
1832 | 1832 | }; |
1833 | 1833 | |
1834 | -static void dump_receive(void *opaque, const uint8_t *buf, size_t size) | |
1834 | +static void dump_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
1835 | 1835 | { |
1836 | - DumpState *s = opaque; | |
1836 | + DumpState *s = vc->opaque; | |
1837 | 1837 | struct pcap_sf_pkthdr hdr; |
1838 | 1838 | int64_t ts; |
1839 | 1839 | int caplen; | ... | ... |
net.h
... | ... | @@ -7,9 +7,9 @@ |
7 | 7 | |
8 | 8 | typedef struct VLANClientState VLANClientState; |
9 | 9 | |
10 | -typedef int (NetCanReceive)(void *); | |
11 | -typedef void (NetReceive)(void *, const uint8_t *, size_t); | |
12 | -typedef ssize_t (NetReceiveIOV)(void *, const struct iovec *, int); | |
10 | +typedef int (NetCanReceive)(VLANClientState *); | |
11 | +typedef void (NetReceive)(VLANClientState *, const uint8_t *, size_t); | |
12 | +typedef ssize_t (NetReceiveIOV)(VLANClientState *, const struct iovec *, int); | |
13 | 13 | typedef void (NetCleanup) (VLANClientState *); |
14 | 14 | typedef void (LinkStatusChanged)(VLANClientState *); |
15 | 15 | ... | ... |
savevm.c
... | ... | @@ -131,7 +131,7 @@ static void qemu_announce_self_once(void *opaque) |
131 | 131 | len = announce_self_create(buf, nd_table[i].macaddr); |
132 | 132 | vlan = nd_table[i].vlan; |
133 | 133 | for(vc = vlan->first_client; vc != NULL; vc = vc->next) { |
134 | - vc->receive(vc->opaque, buf, len); | |
134 | + vc->receive(vc, buf, len); | |
135 | 135 | } |
136 | 136 | } |
137 | 137 | if (count--) { | ... | ... |
tap-win32.c
... | ... | @@ -650,7 +650,7 @@ static void tap_cleanup(VLANClientState *vc) |
650 | 650 | qemu_free(s); |
651 | 651 | } |
652 | 652 | |
653 | -static void tap_receive(void *opaque, const uint8_t *buf, size_t size) | |
653 | +static void tap_receive(VLANClientState *vc, const uint8_t *buf, size_t size) | |
654 | 654 | { |
655 | 655 | TAPState *s = opaque; |
656 | 656 | ... | ... |