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,9 +407,9 @@ static void do_transmit_packets(dp8393xState *s) | ||
407 | if (s->regs[SONIC_RCR] & (SONIC_RCR_LB1 | SONIC_RCR_LB0)) { | 407 | if (s->regs[SONIC_RCR] & (SONIC_RCR_LB1 | SONIC_RCR_LB0)) { |
408 | /* Loopback */ | 408 | /* Loopback */ |
409 | s->regs[SONIC_TCR] |= SONIC_TCR_CRSL; | 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 | s->loopback_packet = 1; | 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 | } else { | 414 | } else { |
415 | /* Transmit packet */ | 415 | /* Transmit packet */ |
@@ -676,9 +676,9 @@ static CPUWriteMemoryFunc *dp8393x_write[3] = { | @@ -676,9 +676,9 @@ static CPUWriteMemoryFunc *dp8393x_write[3] = { | ||
676 | dp8393x_writel, | 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 | if (!(s->regs[SONIC_CR] & SONIC_CR_RXEN)) | 683 | if (!(s->regs[SONIC_CR] & SONIC_CR_RXEN)) |
684 | return 0; | 684 | return 0; |
@@ -725,10 +725,10 @@ static int receive_filter(dp8393xState *s, const uint8_t * buf, int size) | @@ -725,10 +725,10 @@ static int receive_filter(dp8393xState *s, const uint8_t * buf, int size) | ||
725 | return -1; | 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 | uint16_t data[10]; | 730 | uint16_t data[10]; |
731 | - dp8393xState *s = opaque; | 731 | + dp8393xState *s = vc->opaque; |
732 | int packet_type; | 732 | int packet_type; |
733 | uint32_t available, address; | 733 | uint32_t available, address; |
734 | int width, rx_len = size; | 734 | int width, rx_len = size; |
hw/e1000.c
@@ -592,17 +592,17 @@ e1000_set_link_status(VLANClientState *vc) | @@ -592,17 +592,17 @@ e1000_set_link_status(VLANClientState *vc) | ||
592 | } | 592 | } |
593 | 593 | ||
594 | static int | 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 | return (s->mac_reg[RCTL] & E1000_RCTL_EN); | 599 | return (s->mac_reg[RCTL] & E1000_RCTL_EN); |
600 | } | 600 | } |
601 | 601 | ||
602 | static void | 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 | struct e1000_rx_desc desc; | 606 | struct e1000_rx_desc desc; |
607 | target_phys_addr_t base; | 607 | target_phys_addr_t base; |
608 | unsigned int n, rdt; | 608 | unsigned int n, rdt; |
hw/eepro100.c
@@ -1433,21 +1433,21 @@ static void pci_mmio_map(PCIDevice * pci_dev, int region_num, | @@ -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 | logout("%p\n", s); | 1439 | logout("%p\n", s); |
1440 | return get_ru_state(s) == ru_ready; | 1440 | return get_ru_state(s) == ru_ready; |
1441 | //~ return !eepro100_buffer_full(s); | 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 | /* TODO: | 1446 | /* TODO: |
1447 | * - Magic packets should set bit 30 in power management driver register. | 1447 | * - Magic packets should set bit 30 in power management driver register. |
1448 | * - Interesting packets should set bit 29 in power management driver register. | 1448 | * - Interesting packets should set bit 29 in power management driver register. |
1449 | */ | 1449 | */ |
1450 | - EEPRO100State *s = opaque; | 1450 | + EEPRO100State *s = vc->opaque; |
1451 | uint16_t rfd_status = 0xa000; | 1451 | uint16_t rfd_status = 0xa000; |
1452 | static const uint8_t broadcast_macaddr[6] = | 1452 | static const uint8_t broadcast_macaddr[6] = |
1453 | { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; | 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,15 +496,15 @@ static int eth_match_groupaddr(struct fs_eth *eth, const unsigned char *sa) | ||
496 | return match; | 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 | return 1; | 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 | unsigned char sa_bcast[6] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; | 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 | int use_ma0 = eth->regs[RW_REC_CTRL] & 1; | 508 | int use_ma0 = eth->regs[RW_REC_CTRL] & 1; |
509 | int use_ma1 = eth->regs[RW_REC_CTRL] & 2; | 509 | int use_ma1 = eth->regs[RW_REC_CTRL] & 2; |
510 | int r_bcast = eth->regs[RW_REC_CTRL] & 8; | 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,15 +347,15 @@ static void mcf_fec_write(void *opaque, target_phys_addr_t addr, uint32_t value) | ||
347 | mcf_fec_update(s); | 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 | return s->rx_enabled; | 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 | mcf_fec_bd bd; | 359 | mcf_fec_bd bd; |
360 | uint32_t flags = 0; | 360 | uint32_t flags = 0; |
361 | uint32_t addr; | 361 | uint32_t addr; |
hw/mipsnet.c
@@ -66,23 +66,23 @@ static int mipsnet_buffer_full(MIPSnetState *s) | @@ -66,23 +66,23 @@ static int mipsnet_buffer_full(MIPSnetState *s) | ||
66 | return 0; | 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 | if (s->busy) | 73 | if (s->busy) |
74 | return 0; | 74 | return 0; |
75 | return !mipsnet_buffer_full(s); | 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 | #ifdef DEBUG_MIPSNET_RECEIVE | 82 | #ifdef DEBUG_MIPSNET_RECEIVE |
83 | printf("mipsnet: receiving len=%d\n", size); | 83 | printf("mipsnet: receiving len=%d\n", size); |
84 | #endif | 84 | #endif |
85 | - if (!mipsnet_can_receive(opaque)) | 85 | + if (!mipsnet_can_receive(vc)) |
86 | return; | 86 | return; |
87 | 87 | ||
88 | s->busy = 1; | 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,14 +557,14 @@ static void eth_rx_desc_get(uint32_t addr, mv88w8618_rx_desc *desc) | ||
557 | le32_to_cpus(&desc->next); | 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 | return 1; | 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 | uint32_t desc_addr; | 568 | uint32_t desc_addr; |
569 | mv88w8618_rx_desc desc; | 569 | mv88w8618_rx_desc desc; |
570 | int i; | 570 | int i; |
hw/ne2000.c
@@ -213,9 +213,9 @@ static int ne2000_buffer_full(NE2000State *s) | @@ -213,9 +213,9 @@ static int ne2000_buffer_full(NE2000State *s) | ||
213 | return 0; | 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 | if (s->cmd & E8390_STOP) | 220 | if (s->cmd & E8390_STOP) |
221 | return 1; | 221 | return 1; |
@@ -224,9 +224,9 @@ static int ne2000_can_receive(void *opaque) | @@ -224,9 +224,9 @@ static int ne2000_can_receive(void *opaque) | ||
224 | 224 | ||
225 | #define MIN_BUF_SIZE 60 | 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 | uint8_t *p; | 230 | uint8_t *p; |
231 | unsigned int total_len, next, avail, len, index, mcast_idx; | 231 | unsigned int total_len, next, avail, len, index, mcast_idx; |
232 | uint8_t buf1[60]; | 232 | uint8_t buf1[60]; |
hw/pcnet.c
@@ -1062,9 +1062,9 @@ static int pcnet_tdte_poll(PCNetState *s) | @@ -1062,9 +1062,9 @@ static int pcnet_tdte_poll(PCNetState *s) | ||
1062 | return !!(CSR_CXST(s) & 0x8000); | 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 | if (CSR_STOP(s) || CSR_SPND(s)) | 1068 | if (CSR_STOP(s) || CSR_SPND(s)) |
1069 | return 0; | 1069 | return 0; |
1070 | 1070 | ||
@@ -1076,9 +1076,9 @@ static int pcnet_can_receive(void *opaque) | @@ -1076,9 +1076,9 @@ static int pcnet_can_receive(void *opaque) | ||
1076 | 1076 | ||
1077 | #define MIN_BUF_SIZE 60 | 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 | int is_padr = 0, is_bcast = 0, is_ladr = 0; | 1082 | int is_padr = 0, is_bcast = 0, is_ladr = 0; |
1083 | uint8_t buf1[60]; | 1083 | uint8_t buf1[60]; |
1084 | int remaining; | 1084 | int remaining; |
@@ -1302,7 +1302,7 @@ static void pcnet_transmit(PCNetState *s) | @@ -1302,7 +1302,7 @@ static void pcnet_transmit(PCNetState *s) | ||
1302 | if (BCR_SWSTYLE(s) == 1) | 1302 | if (BCR_SWSTYLE(s) == 1) |
1303 | add_crc = !GET_FIELD(tmd.status, TMDS, NOFCS); | 1303 | add_crc = !GET_FIELD(tmd.status, TMDS, NOFCS); |
1304 | s->looptest = add_crc ? PCNET_LOOPTEST_CRC : PCNET_LOOPTEST_NOCRC; | 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 | s->looptest = 0; | 1306 | s->looptest = 0; |
1307 | } else | 1307 | } else |
1308 | if (s->vc) | 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,9 +790,9 @@ static inline target_phys_addr_t rtl8139_addr64(uint32_t low, uint32_t high) | ||
790 | #endif | 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 | int avail; | 796 | int avail; |
797 | 797 | ||
798 | /* Receive (drop) packets if card is disabled. */ | 798 | /* Receive (drop) packets if card is disabled. */ |
@@ -812,9 +812,9 @@ static int rtl8139_can_receive(void *opaque) | @@ -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 | uint32_t packet_header = 0; | 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,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 | static void rtl8139_reset_rxring(RTL8139State *s, uint32_t bufferSize) | 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,7 +1757,7 @@ static void rtl8139_transfer_frame(RTL8139State *s, const uint8_t *buf, int size | ||
1757 | if (TxLoopBack == (s->TxConfig & TxLoopBack)) | 1757 | if (TxLoopBack == (s->TxConfig & TxLoopBack)) |
1758 | { | 1758 | { |
1759 | DEBUG_PRINT(("RTL8139: +++ transmit loopback mode\n")); | 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 | else | 1762 | else |
1763 | { | 1763 | { |
hw/smc91c111.c
@@ -591,9 +591,9 @@ static uint32_t smc91c111_readl(void *opaque, target_phys_addr_t offset) | @@ -591,9 +591,9 @@ static uint32_t smc91c111_readl(void *opaque, target_phys_addr_t offset) | ||
591 | return val; | 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 | if ((s->rcr & RCR_RXEN) == 0 || (s->rcr & RCR_SOFT_RST)) | 598 | if ((s->rcr & RCR_RXEN) == 0 || (s->rcr & RCR_SOFT_RST)) |
599 | return 1; | 599 | return 1; |
@@ -602,9 +602,9 @@ static int smc91c111_can_receive(void *opaque) | @@ -602,9 +602,9 @@ static int smc91c111_can_receive(void *opaque) | ||
602 | return 1; | 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 | int status; | 608 | int status; |
609 | int packetsize; | 609 | int packetsize; |
610 | uint32_t crc; | 610 | uint32_t crc; |
hw/stellaris_enet.c
@@ -78,9 +78,9 @@ static void stellaris_enet_update(stellaris_enet_state *s) | @@ -78,9 +78,9 @@ static void stellaris_enet_update(stellaris_enet_state *s) | ||
78 | } | 78 | } |
79 | 79 | ||
80 | /* TODO: Implement MAC address filtering. */ | 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 | int n; | 84 | int n; |
85 | uint8_t *p; | 85 | uint8_t *p; |
86 | uint32_t crc; | 86 | uint32_t crc; |
@@ -118,9 +118,9 @@ static void stellaris_enet_receive(void *opaque, const uint8_t *buf, size_t size | @@ -118,9 +118,9 @@ static void stellaris_enet_receive(void *opaque, const uint8_t *buf, size_t size | ||
118 | stellaris_enet_update(s); | 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 | if ((s->rctl & SE_RCTL_RXEN) == 0) | 125 | if ((s->rctl & SE_RCTL_RXEN) == 0) |
126 | return 1; | 126 | return 1; |
@@ -128,9 +128,9 @@ static int stellaris_enet_can_receive(void *opaque) | @@ -128,9 +128,9 @@ static int stellaris_enet_can_receive(void *opaque) | ||
128 | return (s->np < 31); | 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 | uint32_t val; | 134 | uint32_t val; |
135 | 135 | ||
136 | switch (offset) { | 136 | switch (offset) { |
hw/usb-net.c
@@ -1369,9 +1369,9 @@ static int usb_net_handle_data(USBDevice *dev, USBPacket *p) | @@ -1369,9 +1369,9 @@ static int usb_net_handle_data(USBDevice *dev, USBPacket *p) | ||
1369 | return ret; | 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 | struct rndis_packet_msg_type *msg; | 1375 | struct rndis_packet_msg_type *msg; |
1376 | 1376 | ||
1377 | if (s->rndis) { | 1377 | if (s->rndis) { |
@@ -1405,9 +1405,9 @@ static void usbnet_receive(void *opaque, const uint8_t *buf, size_t size) | @@ -1405,9 +1405,9 @@ static void usbnet_receive(void *opaque, const uint8_t *buf, size_t size) | ||
1405 | s->in_ptr = 0; | 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 | if (s->rndis && !s->rndis_state == RNDIS_DATA_INITIALIZED) | 1412 | if (s->rndis && !s->rndis_state == RNDIS_DATA_INITIALIZED) |
1413 | return 1; | 1413 | return 1; |
hw/virtio-net.c
@@ -288,9 +288,9 @@ static int do_virtio_net_can_receive(VirtIONet *n, int bufsize) | @@ -288,9 +288,9 @@ static int do_virtio_net_can_receive(VirtIONet *n, int bufsize) | ||
288 | return 1; | 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 | return do_virtio_net_can_receive(n, VIRTIO_NET_MAX_BUFSIZE); | 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,9 +361,9 @@ static int receive_filter(VirtIONet *n, const uint8_t *buf, int size) | ||
361 | return 0; | 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 | struct virtio_net_hdr_mrg_rxbuf *mhdr = NULL; | 367 | struct virtio_net_hdr_mrg_rxbuf *mhdr = NULL; |
368 | size_t hdr_len, offset, i; | 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,9 +223,9 @@ static void net_rx_response(struct XenNetDev *netdev, | ||
223 | 223 | ||
224 | #define NET_IP_ALIGN 2 | 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 | RING_IDX rc, rp; | 229 | RING_IDX rc, rp; |
230 | 230 | ||
231 | if (netdev->xendev.be_state != XenbusStateConnected) | 231 | if (netdev->xendev.be_state != XenbusStateConnected) |
@@ -243,9 +243,9 @@ static int net_rx_ok(void *opaque) | @@ -243,9 +243,9 @@ static int net_rx_ok(void *opaque) | ||
243 | return 1; | 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 | netif_rx_request_t rxreq; | 249 | netif_rx_request_t rxreq; |
250 | RING_IDX rc, rp; | 250 | RING_IDX rc, rp; |
251 | void *page; | 251 | void *page; |
net.c
@@ -402,7 +402,7 @@ int qemu_can_send_packet(VLANClientState *sender) | @@ -402,7 +402,7 @@ int qemu_can_send_packet(VLANClientState *sender) | ||
402 | } | 402 | } |
403 | 403 | ||
404 | /* no can_receive() handler, they can always receive */ | 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 | return 1; | 406 | return 1; |
407 | } | 407 | } |
408 | } | 408 | } |
@@ -416,7 +416,7 @@ qemu_deliver_packet(VLANClientState *sender, const uint8_t *buf, int size) | @@ -416,7 +416,7 @@ qemu_deliver_packet(VLANClientState *sender, const uint8_t *buf, int size) | ||
416 | 416 | ||
417 | for (vc = sender->vlan->first_client; vc != NULL; vc = vc->next) { | 417 | for (vc = sender->vlan->first_client; vc != NULL; vc = vc->next) { |
418 | if (vc != sender && !vc->link_down) { | 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,7 +467,7 @@ static ssize_t vc_sendv_compat(VLANClientState *vc, const struct iovec *iov, | ||
467 | offset += len; | 467 | offset += len; |
468 | } | 468 | } |
469 | 469 | ||
470 | - vc->receive(vc->opaque, buffer, offset); | 470 | + vc->receive(vc, buffer, offset); |
471 | 471 | ||
472 | return offset; | 472 | return offset; |
473 | } | 473 | } |
@@ -520,7 +520,7 @@ ssize_t qemu_sendv_packet(VLANClientState *sender, const struct iovec *iov, | @@ -520,7 +520,7 @@ ssize_t qemu_sendv_packet(VLANClientState *sender, const struct iovec *iov, | ||
520 | if (vc->link_down) { | 520 | if (vc->link_down) { |
521 | len = calc_iov_length(iov, iovcnt); | 521 | len = calc_iov_length(iov, iovcnt); |
522 | } else if (vc->receive_iov) { | 522 | } else if (vc->receive_iov) { |
523 | - len = vc->receive_iov(vc->opaque, iov, iovcnt); | 523 | + len = vc->receive_iov(vc, iov, iovcnt); |
524 | } else if (vc->receive) { | 524 | } else if (vc->receive) { |
525 | len = vc_sendv_compat(vc, iov, iovcnt); | 525 | len = vc_sendv_compat(vc, iov, iovcnt); |
526 | } | 526 | } |
@@ -593,7 +593,7 @@ int slirp_is_inited(void) | @@ -593,7 +593,7 @@ int slirp_is_inited(void) | ||
593 | return slirp_inited; | 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 | #ifdef DEBUG_SLIRP | 598 | #ifdef DEBUG_SLIRP |
599 | printf("slirp input:\n"); | 599 | printf("slirp input:\n"); |
@@ -932,10 +932,10 @@ typedef struct TAPState { | @@ -932,10 +932,10 @@ typedef struct TAPState { | ||
932 | 932 | ||
933 | static int launch_script(const char *setup_script, const char *ifname, int fd); | 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 | int iovcnt) | 936 | int iovcnt) |
937 | { | 937 | { |
938 | - TAPState *s = opaque; | 938 | + TAPState *s = vc->opaque; |
939 | ssize_t len; | 939 | ssize_t len; |
940 | 940 | ||
941 | do { | 941 | do { |
@@ -945,9 +945,9 @@ static ssize_t tap_receive_iov(void *opaque, const struct iovec *iov, | @@ -945,9 +945,9 @@ static ssize_t tap_receive_iov(void *opaque, const struct iovec *iov, | ||
945 | return len; | 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 | int ret; | 951 | int ret; |
952 | for(;;) { | 952 | for(;;) { |
953 | ret = write(s->fd, buf, size); | 953 | ret = write(s->fd, buf, size); |
@@ -1311,9 +1311,9 @@ static void vde_to_qemu(void *opaque) | @@ -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 | int ret; | 1317 | int ret; |
1318 | for(;;) { | 1318 | for(;;) { |
1319 | ret = vde_send(s->vde, (const char *)buf, size, 0); | 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,7 +1352,7 @@ static int net_vde_init(VLANState *vlan, const char *model, | ||
1352 | free(s); | 1352 | free(s); |
1353 | return -1; | 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 | NULL, vde_cleanup, s); | 1356 | NULL, vde_cleanup, s); |
1357 | 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); |
1358 | 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", |
@@ -1380,9 +1380,9 @@ typedef struct NetSocketListenState { | @@ -1380,9 +1380,9 @@ typedef struct NetSocketListenState { | ||
1380 | } NetSocketListenState; | 1380 | } NetSocketListenState; |
1381 | 1381 | ||
1382 | /* XXX: we consider we can send the whole packet without blocking */ | 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 | uint32_t len; | 1386 | uint32_t len; |
1387 | len = htonl(size); | 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,9 +1390,9 @@ static void net_socket_receive(void *opaque, const uint8_t *buf, size_t size) | ||
1390 | send_all(s->fd, buf, size); | 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 | sendto(s->fd, buf, size, 0, | 1396 | sendto(s->fd, buf, size, 0, |
1397 | (struct sockaddr *)&s->dgram_dst, sizeof(s->dgram_dst)); | 1397 | (struct sockaddr *)&s->dgram_dst, sizeof(s->dgram_dst)); |
1398 | } | 1398 | } |
@@ -1831,9 +1831,9 @@ struct pcap_sf_pkthdr { | @@ -1831,9 +1831,9 @@ struct pcap_sf_pkthdr { | ||
1831 | uint32_t len; | 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 | struct pcap_sf_pkthdr hdr; | 1837 | struct pcap_sf_pkthdr hdr; |
1838 | int64_t ts; | 1838 | int64_t ts; |
1839 | int caplen; | 1839 | int caplen; |
net.h
@@ -7,9 +7,9 @@ | @@ -7,9 +7,9 @@ | ||
7 | 7 | ||
8 | typedef struct VLANClientState VLANClientState; | 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 | typedef void (NetCleanup) (VLANClientState *); | 13 | typedef void (NetCleanup) (VLANClientState *); |
14 | typedef void (LinkStatusChanged)(VLANClientState *); | 14 | typedef void (LinkStatusChanged)(VLANClientState *); |
15 | 15 |
savevm.c
@@ -131,7 +131,7 @@ static void qemu_announce_self_once(void *opaque) | @@ -131,7 +131,7 @@ static void qemu_announce_self_once(void *opaque) | ||
131 | len = announce_self_create(buf, nd_table[i].macaddr); | 131 | len = announce_self_create(buf, nd_table[i].macaddr); |
132 | vlan = nd_table[i].vlan; | 132 | vlan = nd_table[i].vlan; |
133 | for(vc = vlan->first_client; vc != NULL; vc = vc->next) { | 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 | if (count--) { | 137 | if (count--) { |
tap-win32.c
@@ -650,7 +650,7 @@ static void tap_cleanup(VLANClientState *vc) | @@ -650,7 +650,7 @@ static void tap_cleanup(VLANClientState *vc) | ||
650 | qemu_free(s); | 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 | TAPState *s = opaque; | 655 | TAPState *s = opaque; |
656 | 656 |