Revision 72da4208

b/hw/e1000.c
1034 1034
                                     excluded_regs[i] - 4);
1035 1035
}
1036 1036

  
1037
void
1037
PCIDevice *
1038 1038
pci_e1000_init(PCIBus *bus, NICInfo *nd, int devfn)
1039 1039
{
1040 1040
    E1000State *d;
......
1092 1092
    qemu_format_nic_info_str(d->vc, d->nd->macaddr);
1093 1093

  
1094 1094
    register_savevm(info_str, -1, 2, nic_save, nic_load, d);
1095

  
1096
    return (PCIDevice *)d;
1095 1097
}
b/hw/eepro100.c
1735 1735
    qemu_put_buffer(f, s->configuration, sizeof(s->configuration));
1736 1736
}
1737 1737

  
1738
static void nic_init(PCIBus * bus, NICInfo * nd,
1738
static PCIDevice *nic_init(PCIBus * bus, NICInfo * nd,
1739 1739
                     const char *name, uint32_t device)
1740 1740
{
1741 1741
    PCIEEPRO100State *d;
......
1783 1783
    qemu_register_reset(nic_reset, s);
1784 1784

  
1785 1785
    register_savevm(name, -1, 3, nic_save, nic_load, s);
1786
    return (PCIDevice *)d;
1786 1787
}
1787 1788

  
1788
void pci_i82551_init(PCIBus * bus, NICInfo * nd, int devfn)
1789
PCIDevice *pci_i82551_init(PCIBus * bus, NICInfo * nd, int devfn)
1789 1790
{
1790
    nic_init(bus, nd, "i82551", i82551);
1791
    return nic_init(bus, nd, "i82551", i82551);
1791 1792
    //~ uint8_t *pci_conf = d->dev.config;
1792 1793
}
1793 1794

  
1794
void pci_i82557b_init(PCIBus * bus, NICInfo * nd, int devfn)
1795
PCIDevice *pci_i82557b_init(PCIBus * bus, NICInfo * nd, int devfn)
1795 1796
{
1796
    nic_init(bus, nd, "i82557b", i82557B);
1797
    return nic_init(bus, nd, "i82557b", i82557B);
1797 1798
}
1798 1799

  
1799
void pci_i82559er_init(PCIBus * bus, NICInfo * nd, int devfn)
1800
PCIDevice *pci_i82559er_init(PCIBus * bus, NICInfo * nd, int devfn)
1800 1801
{
1801
    nic_init(bus, nd, "i82559er", i82559ER);
1802
    return nic_init(bus, nd, "i82559er", i82559ER);
1802 1803
}
1803 1804

  
1804 1805
/* eof */
b/hw/ne2000.c
777 777
    register_ioport_read(addr + 0x1f, 1, 1, ne2000_reset_ioport_read, s);
778 778
}
779 779

  
780
void pci_ne2000_init(PCIBus *bus, NICInfo *nd, int devfn)
780
PCIDevice *pci_ne2000_init(PCIBus *bus, NICInfo *nd, int devfn)
781 781
{
782 782
    PCINE2000State *d;
783 783
    NE2000State *s;
......
807 807
    qemu_format_nic_info_str(s->vc, s->macaddr);
808 808

  
809 809
    register_savevm("ne2000", -1, 3, ne2000_save, ne2000_load, s);
810

  
811
    return (PCIDevice *)d;
810 812
}
b/hw/pci.c
662 662
    NULL
663 663
};
664 664

  
665
typedef void (*PCINICInitFn)(PCIBus *, NICInfo *, int);
665
typedef PCIDevice *(*PCINICInitFn)(PCIBus *, NICInfo *, int);
666 666

  
667 667
static PCINICInitFn pci_nic_init_fns[] = {
668 668
    pci_ne2000_init,
......
677 677
};
678 678

  
679 679
/* Initialize a PCI NIC.  */
680
void pci_nic_init(PCIBus *bus, NICInfo *nd, int devfn,
680
PCIDevice *pci_nic_init(PCIBus *bus, NICInfo *nd, int devfn,
681 681
                  const char *default_model)
682 682
{
683
    PCIDevice *pci_dev;
683 684
    int i;
684 685

  
685 686
    qemu_check_nic_model_list(nd, pci_nic_models, default_model);
686 687

  
687 688
    for (i = 0; pci_nic_models[i]; i++)
688
        if (strcmp(nd->model, pci_nic_models[i]) == 0)
689
            pci_nic_init_fns[i](bus, nd, devfn);
689
        if (strcmp(nd->model, pci_nic_models[i]) == 0) {
690
            pci_dev = pci_nic_init_fns[i](bus, nd, devfn);
691
            if (pci_dev)
692
                nd->private = pci_dev;
693
            return pci_dev;
694
        }
695

  
696
    return NULL;
690 697
}
691 698

  
692 699
typedef struct {
b/hw/pci.h
220 220
PCIBus *pci_register_bus(pci_set_irq_fn set_irq, pci_map_irq_fn map_irq,
221 221
                         qemu_irq *pic, int devfn_min, int nirq);
222 222

  
223
void pci_nic_init(PCIBus *bus, NICInfo *nd, int devfn,
223
PCIDevice *pci_nic_init(PCIBus *bus, NICInfo *nd, int devfn,
224 224
                  const char *default_model);
225 225
void pci_data_write(void *opaque, uint32_t addr, uint32_t val, int len);
226 226
uint32_t pci_data_read(void *opaque, uint32_t addr, int len);
......
269 269

  
270 270
/* eepro100.c */
271 271

  
272
void pci_i82551_init(PCIBus *bus, NICInfo *nd, int devfn);
273
void pci_i82557b_init(PCIBus *bus, NICInfo *nd, int devfn);
274
void pci_i82559er_init(PCIBus *bus, NICInfo *nd, int devfn);
272
PCIDevice *pci_i82551_init(PCIBus *bus, NICInfo *nd, int devfn);
273
PCIDevice *pci_i82557b_init(PCIBus *bus, NICInfo *nd, int devfn);
274
PCIDevice *pci_i82559er_init(PCIBus *bus, NICInfo *nd, int devfn);
275 275

  
276 276
/* ne2000.c */
277 277

  
278
void pci_ne2000_init(PCIBus *bus, NICInfo *nd, int devfn);
278
PCIDevice *pci_ne2000_init(PCIBus *bus, NICInfo *nd, int devfn);
279 279

  
280 280
/* rtl8139.c */
281 281

  
282
void pci_rtl8139_init(PCIBus *bus, NICInfo *nd, int devfn);
282
PCIDevice *pci_rtl8139_init(PCIBus *bus, NICInfo *nd, int devfn);
283 283

  
284 284
/* e1000.c */
285
void pci_e1000_init(PCIBus *bus, NICInfo *nd, int devfn);
285
PCIDevice *pci_e1000_init(PCIBus *bus, NICInfo *nd, int devfn);
286 286

  
287 287
/* pcnet.c */
288
void pci_pcnet_init(PCIBus *bus, NICInfo *nd, int devfn);
288
PCIDevice *pci_pcnet_init(PCIBus *bus, NICInfo *nd, int devfn);
289 289

  
290 290
/* prep_pci.c */
291 291
PCIBus *pci_prep_init(qemu_irq *pic);
b/hw/pcnet.c
1985 1985
    cpu_physical_memory_read(addr, buf, len);
1986 1986
}
1987 1987

  
1988
void pci_pcnet_init(PCIBus *bus, NICInfo *nd, int devfn)
1988
PCIDevice *pci_pcnet_init(PCIBus *bus, NICInfo *nd, int devfn)
1989 1989
{
1990 1990
    PCNetState *d;
1991 1991
    uint8_t *pci_conf;
......
2032 2032
    d->pci_dev = &d->dev;
2033 2033

  
2034 2034
    pcnet_common_init(d, nd);
2035
    return (PCIDevice *)d;
2035 2036
}
2036 2037

  
2037 2038
/* SPARC32 interface */
b/hw/rtl8139.c
3414 3414
}
3415 3415
#endif /* RTL8139_ONBOARD_TIMER */
3416 3416

  
3417
void pci_rtl8139_init(PCIBus *bus, NICInfo *nd, int devfn)
3417
PCIDevice *pci_rtl8139_init(PCIBus *bus, NICInfo *nd, int devfn)
3418 3418
{
3419 3419
    PCIRTL8139State *d;
3420 3420
    RTL8139State *s;
......
3466 3466
    qemu_mod_timer(s->timer,
3467 3467
        rtl8139_get_next_tctr_time(s,qemu_get_clock(vm_clock)));
3468 3468
#endif /* RTL8139_ONBOARD_TIMER */
3469
    return (PCIDevice *)d;
3469 3470
}
b/hw/virtio-net.c
560 560
    return 0;
561 561
}
562 562

  
563
void virtio_net_init(PCIBus *bus, NICInfo *nd, int devfn)
563
PCIDevice *virtio_net_init(PCIBus *bus, NICInfo *nd, int devfn)
564 564
{
565 565
    VirtIONet *n;
566 566
    static int virtio_net_id;
......
574 574
                                     sizeof(struct virtio_net_config),
575 575
                                     sizeof(VirtIONet));
576 576
    if (!n)
577
        return;
577
        return NULL;
578 578

  
579 579
    n->vdev.get_config = virtio_net_get_config;
580 580
    n->vdev.set_config = virtio_net_set_config;
......
599 599

  
600 600
    n->mac_table.macs = qemu_mallocz(MAC_TABLE_ENTRIES * ETH_ALEN);
601 601
    if (!n->mac_table.macs)
602
        return;
602
        return NULL;
603 603

  
604 604
    n->vlans = qemu_mallocz(MAX_VLAN >> 3);
605 605
    if (!n->vlans)
606
        return;
606
        return NULL;
607 607

  
608 608
    register_savevm("virtio-net", virtio_net_id++, VIRTIO_NET_VM_VERSION,
609 609
                    virtio_net_save, virtio_net_load, n);
610
    return (PCIDevice *)n;
610 611
}
b/hw/virtio-net.h
85 85
    uint16_t num_buffers;   /* Number of merged rx buffers */
86 86
};
87 87

  
88
void virtio_net_init(PCIBus *bus, NICInfo *nd, int devfn);
88
PCIDevice *virtio_net_init(PCIBus *bus, NICInfo *nd, int devfn);
89 89

  
90 90
/*
91 91
 * Control virtqueue data structures
b/net.h
64 64
    const char *model;
65 65
    const char *name;
66 66
    VLANState *vlan;
67
    void *private;
67 68
};
68 69

  
69 70
extern int nb_nics;

Also available in: Unified diff