Revision a41b2ff2 hw/pc.c

b/hw/pc.c
606 606
}
607 607
#endif
608 608

  
609
static void pc_init_ne2k_isa(NICInfo *nd)
610
{
611
    static int nb_ne2k = 0;
612

  
613
    if (nb_ne2k == NE2000_NB_MAX)
614
        return;
615
    isa_ne2000_init(ne2000_io[nb_ne2k], ne2000_irq[nb_ne2k], nd);
616
    nb_ne2k++;
617
}
618

  
609 619
/* PC hardware initialisation */
610 620
static void pc_init1(int ram_size, int vga_ram_size, int boot_device,
611 621
                     DisplayState *ds, const char **fd_filename, int snapshot,
......
614 624
                     int pci_enabled)
615 625
{
616 626
    char buf[1024];
617
    int ret, linux_boot, initrd_size, i, nb_nics1;
627
    int ret, linux_boot, initrd_size, i;
618 628
    unsigned long bios_offset, vga_bios_offset;
619 629
    int bios_size, isa_bios_size;
620 630
    PCIBus *pci_bus;
621 631
    CPUState *env;
632
    NICInfo *nd;
622 633

  
623 634
    linux_boot = (kernel_filename != NULL);
624 635

  
......
800 811
        }
801 812
    }
802 813

  
803
    if (pci_enabled) {
804
        for(i = 0; i < nb_nics; i++) {
805
            pci_ne2000_init(pci_bus, &nd_table[i]);
814
    for(i = 0; i < nb_nics; i++) {
815
        nd = &nd_table[i];
816
        if (!nd->model) {
817
            if (pci_enabled) {
818
                nd->model = "ne2k_pci";
819
            } else {
820
                nd->model = "ne2k_isa";
821
            }
806 822
        }
807
        pci_piix3_ide_init(pci_bus, bs_table);
808
    } else {
809
        nb_nics1 = nb_nics;
810
        if (nb_nics1 > NE2000_NB_MAX)
811
            nb_nics1 = NE2000_NB_MAX;
812
        for(i = 0; i < nb_nics1; i++) {
813
            isa_ne2000_init(ne2000_io[i], ne2000_irq[i], &nd_table[i]);
823
        if (strcmp(nd->model, "ne2k_isa") == 0) {
824
            pc_init_ne2k_isa(nd);
825
        } else if (pci_enabled) {
826
            pci_nic_init(pci_bus, nd);
827
        } else {
828
            fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd->model);
829
            exit(1);
814 830
        }
831
    }
815 832

  
833
    if (pci_enabled) {
834
        pci_piix3_ide_init(pci_bus, bs_table);
835
    } else {
816 836
        for(i = 0; i < 2; i++) {
817 837
            isa_ide_init(ide_iobase[i], ide_iobase2[i], ide_irq[i],
818 838
                         bs_table[2 * i], bs_table[2 * i + 1]);

Also available in: Unified diff