qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH] Fixed devfn number for PCI devices


From: Aurelien Jarno
Subject: [Qemu-devel] [PATCH] Fixed devfn number for PCI devices
Date: Sun, 19 Nov 2006 21:49:26 +0100
User-agent: Mutt/1.5.13 (2006-08-11)

Some platforms (at least the malta boards) rely on the slot number to
assign the PCI IRQ. The patch below allows to specify a devfn (and thus
a slot number) to emulated PCI devices that can be used on more than 
one architecture (ie video cards, IDE controllers, NIC, etc.).

-- 
  .''`.  Aurelien Jarno             | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   address@hidden         | address@hidden
   `-    people.debian.org/~aurel32 | www.aurel32.net

Index: vl.h
===================================================================
RCS file: /sources/qemu/qemu/vl.h,v
retrieving revision 1.154
diff -u -d -p -r1.154 vl.h
--- vl.h        24 Sep 2006 18:49:43 -0000      1.154
+++ vl.h        19 Nov 2006 20:35:41 -0000
@@ -761,7 +761,7 @@ typedef int (*pci_map_irq_fn)(PCIDevice 
 PCIBus *pci_register_bus(pci_set_irq_fn set_irq, pci_map_irq_fn map_irq,
                          void *pic, int devfn_min, int nirq);
 
-void pci_nic_init(PCIBus *bus, NICInfo *nd);
+void pci_nic_init(PCIBus *bus, NICInfo *nd, int devfn);
 void pci_data_write(void *opaque, uint32_t addr, uint32_t val, int len);
 uint32_t pci_data_read(void *opaque, uint32_t addr, int len);
 int pci_bus_num(PCIBus *s);
@@ -789,7 +789,7 @@ PCIBus *pci_vpb_init(void *pic, int irq,
 /* piix_pci.c */
 PCIBus *i440fx_init(PCIDevice **pi440fx_state);
 void i440fx_set_smm(PCIDevice *d, int val);
-int piix3_init(PCIBus *bus);
+int piix3_init(PCIBus *bus, int devfn);
 void i440fx_init_memory_mappings(PCIDevice *d);
 
 /* openpic.c */
@@ -811,7 +811,7 @@ struct soundhw {
     int isa;
     union {
         int (*init_isa) (AudioState *s);
-        int (*init_pci) (PCIBus *bus, AudioState *s);
+        int (*init_pci) (PCIBus *bus, AudioState *s, int devfn);
     } init;
 };
 
@@ -851,11 +851,11 @@ int isa_vga_init(DisplayState *ds, uint8
                  unsigned long vga_ram_offset, int vga_ram_size);
 int pci_vga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base, 
                  unsigned long vga_ram_offset, int vga_ram_size,
-                 unsigned long vga_bios_offset, int vga_bios_size);
+                 unsigned long vga_bios_offset, int vga_bios_size, int devfn);
 
 /* cirrus_vga.c */
 void pci_cirrus_vga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base, 
-                         unsigned long vga_ram_offset, int vga_ram_size);
+                         unsigned long vga_ram_offset, int vga_ram_size, int 
devfn);
 void isa_cirrus_vga_init(DisplayState *ds, uint8_t *vga_ram_base, 
                          unsigned long vga_ram_offset, int vga_ram_size);
 
@@ -876,7 +876,7 @@ extern BlockDriverState *bs_table[MAX_DI
 void isa_ide_init(int iobase, int iobase2, int irq,
                   BlockDriverState *hd0, BlockDriverState *hd1);
 void pci_cmd646_ide_init(PCIBus *bus, BlockDriverState **hd_table,
-                         int secondary_ide_enabled);
+                         int secondary_ide_enabled, int devfn);
 void pci_piix3_ide_init(PCIBus *bus, BlockDriverState **hd_table, int devfn);
 int pmac_ide_init (BlockDriverState **hd_table,
                    SetIRQFunc *set_irq, void *irq_opaque, int irq);
@@ -886,7 +886,7 @@ int cdrom_read_toc(int nb_sectors, uint8
 int cdrom_read_toc_raw(int nb_sectors, uint8_t *buf, int msf, int session_num);
 
 /* es1370.c */
-int es1370_init (PCIBus *bus, AudioState *s);
+int es1370_init (PCIBus *bus, AudioState *s, int devfn);
 
 /* sb16.c */
 int SB16_init (AudioState *s);
@@ -924,15 +924,15 @@ int fdctrl_get_drive_type(fdctrl_t *fdct
 /* ne2000.c */
 
 void isa_ne2000_init(int base, int irq, NICInfo *nd);
-void pci_ne2000_init(PCIBus *bus, NICInfo *nd);
+void pci_ne2000_init(PCIBus *bus, NICInfo *nd, int devfn);
 
 /* rtl8139.c */
 
-void pci_rtl8139_init(PCIBus *bus, NICInfo *nd);
+void pci_rtl8139_init(PCIBus *bus, NICInfo *nd, int devfn);
 
 /* pcnet.c */
 
-void pci_pcnet_init(PCIBus *bus, NICInfo *nd);
+void pci_pcnet_init(PCIBus *bus, NICInfo *nd, int devfn);
 void pcnet_h_reset(void *opaque);
 void *lance_init(NICInfo *nd, uint32_t leaddr, void *dma_opaque);
 
Index: hw/cirrus_vga.c
===================================================================
RCS file: /sources/qemu/qemu/hw/cirrus_vga.c,v
retrieving revision 1.23
diff -u -d -p -r1.23 cirrus_vga.c
--- hw/cirrus_vga.c     18 Aug 2006 09:32:04 -0000      1.23
+++ hw/cirrus_vga.c     19 Nov 2006 20:35:41 -0000
@@ -3165,7 +3165,7 @@ static void cirrus_pci_mmio_map(PCIDevic
 }
 
 void pci_cirrus_vga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base, 
-                         unsigned long vga_ram_offset, int vga_ram_size)
+                         unsigned long vga_ram_offset, int vga_ram_size, int 
devfn)
 {
     PCICirrusVGAState *d;
     uint8_t *pci_conf;
@@ -3177,7 +3177,7 @@ void pci_cirrus_vga_init(PCIBus *bus, Di
     /* setup PCI configuration registers */
     d = (PCICirrusVGAState *)pci_register_device(bus, "Cirrus VGA", 
                                                  sizeof(PCICirrusVGAState), 
-                                                 -1, NULL, NULL);
+                                                 devfn, NULL, NULL);
     pci_conf = d->dev.config;
     pci_conf[0x00] = (uint8_t) (PCI_VENDOR_CIRRUS & 0xff);
     pci_conf[0x01] = (uint8_t) (PCI_VENDOR_CIRRUS >> 8);
Index: hw/es1370.c
===================================================================
RCS file: /sources/qemu/qemu/hw/es1370.c,v
retrieving revision 1.6
diff -u -d -p -r1.6 es1370.c
--- hw/es1370.c 4 Jul 2006 21:47:22 -0000       1.6
+++ hw/es1370.c 19 Nov 2006 20:35:41 -0000
@@ -996,7 +996,7 @@ static void es1370_on_reset (void *opaqu
     es1370_reset (s);
 }
 
-int es1370_init (PCIBus *bus, AudioState *audio)
+int es1370_init (PCIBus *bus, AudioState *audio, int devfn)
 {
     PCIES1370State *d;
     ES1370State *s;
@@ -1014,7 +1014,7 @@ int es1370_init (PCIBus *bus, AudioState
 
     d = (PCIES1370State *) pci_register_device (bus, "ES1370",
                                                 sizeof (PCIES1370State),
-                                                -1, NULL, NULL);
+                                                devfn, NULL, NULL);
 
     if (!d) {
         AUD_log (NULL, "Failed to register PCI device for ES1370\n");
Index: hw/ide.c
===================================================================
RCS file: /sources/qemu/qemu/hw/ide.c,v
retrieving revision 1.48
diff -u -d -p -r1.48 ide.c
--- hw/ide.c    19 Aug 2006 11:44:21 -0000      1.48
+++ hw/ide.c    19 Nov 2006 20:35:42 -0000
@@ -2377,7 +2377,7 @@ static void cmd646_set_irq(void *opaque,
 
 /* CMD646 PCI IDE controller */
 void pci_cmd646_ide_init(PCIBus *bus, BlockDriverState **hd_table,
-                         int secondary_ide_enabled)
+                         int secondary_ide_enabled, int devfn)
 {
     PCIIDEState *d;
     uint8_t *pci_conf;
@@ -2385,7 +2385,7 @@ void pci_cmd646_ide_init(PCIBus *bus, Bl
 
     d = (PCIIDEState *)pci_register_device(bus, "CMD646 IDE", 
                                            sizeof(PCIIDEState),
-                                           -1, 
+                                           devfn, 
                                            NULL, NULL);
     d->type = IDE_TYPE_CMD646;
     pci_conf = d->dev.config;
Index: hw/ne2000.c
===================================================================
RCS file: /sources/qemu/qemu/hw/ne2000.c,v
retrieving revision 1.21
diff -u -d -p -r1.21 ne2000.c
--- hw/ne2000.c 17 Aug 2006 10:46:34 -0000      1.21
+++ hw/ne2000.c 19 Nov 2006 20:35:42 -0000
@@ -781,7 +781,7 @@ static void ne2000_map(PCIDevice *pci_de
     register_ioport_read(addr + 0x1f, 1, 1, ne2000_reset_ioport_read, s);
 }
 
-void pci_ne2000_init(PCIBus *bus, NICInfo *nd)
+void pci_ne2000_init(PCIBus *bus, NICInfo *nd, int devfn)
 {
     PCINE2000State *d;
     NE2000State *s;
@@ -789,7 +789,7 @@ void pci_ne2000_init(PCIBus *bus, NICInf
     
     d = (PCINE2000State *)pci_register_device(bus,
                                               "NE2000", sizeof(PCINE2000State),
-                                              -1, 
+                                              devfn, 
                                               NULL, NULL);
     pci_conf = d->dev.config;
     pci_conf[0x00] = 0xec; // Realtek 8029
Index: hw/openpic.c
===================================================================
RCS file: /sources/qemu/qemu/hw/openpic.c,v
retrieving revision 1.9
diff -u -d -p -r1.9 openpic.c
--- hw/openpic.c        23 Nov 2005 21:13:45 -0000      1.9
+++ hw/openpic.c        19 Nov 2006 20:35:42 -0000
@@ -975,7 +975,7 @@ openpic_t *openpic_init (PCIBus *bus, in
         return NULL;
     if (bus) {
         opp = (openpic_t *)pci_register_device(bus, "OpenPIC", 
sizeof(openpic_t),
-                                               -1, NULL, NULL);
+                                               devfn, NULL, NULL);
         if (opp == NULL)
             return NULL;
         pci_conf = opp->pci_dev.config;
Index: hw/pc.c
===================================================================
RCS file: /sources/qemu/qemu/hw/pc.c,v
retrieving revision 1.62
diff -u -d -p -r1.62 pc.c
--- hw/pc.c     24 Sep 2006 18:48:00 -0000      1.62
+++ hw/pc.c     19 Nov 2006 20:35:42 -0000
@@ -444,7 +444,7 @@ static void audio_init (PCIBus *pci_bus)
                     }
                     else {
                         if (pci_bus) {
-                            c->init.init_pci (pci_bus, s);
+                            c->init.init_pci (pci_bus, s, -1);
                         }
                     }
                 }
@@ -604,7 +604,7 @@ static void pc_init1(int ram_size, int v
 
     if (pci_enabled) {
         pci_bus = i440fx_init(&i440fx_state);
-        piix3_devfn = piix3_init(pci_bus);
+        piix3_devfn = piix3_init(pci_bus, -1);
     } else {
         pci_bus = NULL;
     }
@@ -618,7 +618,7 @@ static void pc_init1(int ram_size, int v
         if (pci_enabled) {
             pci_cirrus_vga_init(pci_bus, 
                                 ds, phys_ram_base + ram_size, ram_size, 
-                                vga_ram_size);
+                                vga_ram_size, -1);
         } else {
             isa_cirrus_vga_init(ds, phys_ram_base + ram_size, ram_size, 
                                 vga_ram_size);
@@ -626,7 +626,7 @@ static void pc_init1(int ram_size, int v
     } else {
         if (pci_enabled) {
             pci_vga_init(pci_bus, ds, phys_ram_base + ram_size, ram_size, 
-                         vga_ram_size, 0, 0);
+                         vga_ram_size, 0, 0, -1);
         } else {
             isa_vga_init(ds, phys_ram_base + ram_size, ram_size, 
                          vga_ram_size);
@@ -673,7 +673,7 @@ static void pc_init1(int ram_size, int v
         if (strcmp(nd->model, "ne2k_isa") == 0) {
             pc_init_ne2k_isa(nd);
         } else if (pci_enabled) {
-            pci_nic_init(pci_bus, nd);
+            pci_nic_init(pci_bus, nd, -1);
         } else {
             fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd->model);
             exit(1);
Index: hw/pci.c
===================================================================
RCS file: /sources/qemu/qemu/hw/pci.c,v
retrieving revision 1.32
diff -u -d -p -r1.32 pci.c
--- hw/pci.c    28 Sep 2006 19:52:59 -0000      1.32
+++ hw/pci.c    19 Nov 2006 20:35:42 -0000
@@ -536,14 +536,14 @@ void pci_info(void)
 }
 
 /* Initialize a PCI NIC.  */
-void pci_nic_init(PCIBus *bus, NICInfo *nd)
+void pci_nic_init(PCIBus *bus, NICInfo *nd, int devfn)
 {
     if (strcmp(nd->model, "ne2k_pci") == 0) {
-        pci_ne2000_init(bus, nd);
+        pci_ne2000_init(bus, nd, devfn);
     } else if (strcmp(nd->model, "rtl8139") == 0) {
-        pci_rtl8139_init(bus, nd);
+        pci_rtl8139_init(bus, nd, devfn);
     } else if (strcmp(nd->model, "pcnet") == 0) {
-        pci_pcnet_init(bus, nd);
+        pci_pcnet_init(bus, nd, devfn);
     } else {
         fprintf(stderr, "qemu: Unsupported NIC: %s\n", nd->model);
         exit (1);
Index: hw/pcnet.c
===================================================================
RCS file: /sources/qemu/qemu/hw/pcnet.c,v
retrieving revision 1.7
diff -u -d -p -r1.7 pcnet.c
--- hw/pcnet.c  3 Sep 2006 19:48:17 -0000       1.7
+++ hw/pcnet.c  19 Nov 2006 20:35:42 -0000
@@ -1889,7 +1889,7 @@ static void pci_physical_memory_read(voi
     cpu_physical_memory_read(addr, buf, len);
 }
 
-void pci_pcnet_init(PCIBus *bus, NICInfo *nd)
+void pci_pcnet_init(PCIBus *bus, NICInfo *nd, int devfn)
 {
     PCNetState *d;
     uint8_t *pci_conf;
@@ -1900,7 +1900,7 @@ void pci_pcnet_init(PCIBus *bus, NICInfo
 #endif
 
     d = (PCNetState *)pci_register_device(bus, "PCNet", sizeof(PCNetState),
-                                          -1, NULL, NULL);
+                                          devfn, NULL, NULL);
                                           
     pci_conf = d->dev.config;
     
Index: hw/piix_pci.c
===================================================================
RCS file: /sources/qemu/qemu/hw/piix_pci.c,v
retrieving revision 1.6
diff -u -d -p -r1.6 piix_pci.c
--- hw/piix_pci.c       24 Sep 2006 19:31:43 -0000      1.6
+++ hw/piix_pci.c       19 Nov 2006 20:35:42 -0000
@@ -273,13 +273,13 @@ static int piix_load(QEMUFile* f, void *
     return pci_device_load(d, f);
 }
 
-int piix3_init(PCIBus *bus)
+int piix3_init(PCIBus *bus, int devfn)
 {
     PCIDevice *d;
     uint8_t *pci_conf;
 
     d = pci_register_device(bus, "PIIX3", sizeof(PCIDevice),
-                                    -1, NULL, NULL);
+                                    devfn, NULL, NULL);
     register_savevm("PIIX3", 0, 2, piix_save, piix_load, d);
 
     piix3_dev = d;
Index: hw/ppc_chrp.c
===================================================================
RCS file: /sources/qemu/qemu/hw/ppc_chrp.c,v
retrieving revision 1.25
diff -u -d -p -r1.25 ppc_chrp.c
--- hw/ppc_chrp.c       18 Sep 2006 01:15:29 -0000      1.25
+++ hw/ppc_chrp.c       19 Nov 2006 20:35:42 -0000
@@ -425,7 +425,7 @@ static void ppc_chrp_init(int ram_size, 
         pci_bus = pci_grackle_init(0xfec00000, pic);
         pci_vga_init(pci_bus, ds, phys_ram_base + ram_size, 
                      ram_size, vga_ram_size,
-                     vga_bios_offset, vga_bios_size);
+                     vga_bios_offset, vga_bios_size, -1);
 
         /* XXX: suppress that */
         isa_pic = pic_init(pic_irq_request, NULL);
@@ -436,10 +436,10 @@ static void ppc_chrp_init(int ram_size, 
         for(i = 0; i < nb_nics; i++) {
             if (!nd_table[i].model)
                 nd_table[i].model = "ne2k_pci";
-            pci_nic_init(pci_bus, &nd_table[i]);
+            pci_nic_init(pci_bus, &nd_table[i], -1);
         }
         
-        pci_cmd646_ide_init(pci_bus, &bs_table[0], 0);
+        pci_cmd646_ide_init(pci_bus, &bs_table[0], 0, -1);
 
         /* cuda also initialize ADB */
         cuda_mem_index = cuda_init(set_irq, pic, 0x12);
@@ -474,7 +474,7 @@ static void ppc_chrp_init(int ram_size, 
         /* init basic PC hardware */
         pci_vga_init(pci_bus, ds, phys_ram_base + ram_size,
                      ram_size, vga_ram_size,
-                     vga_bios_offset, vga_bios_size);
+                     vga_bios_offset, vga_bios_size, -1);
 
         /* XXX: suppress that */
         isa_pic = pic_init(pic_irq_request, NULL);
@@ -483,14 +483,14 @@ static void ppc_chrp_init(int ram_size, 
         serial_init(&pic_set_irq_new, isa_pic, 0x3f8, 4, serial_hds[0]);
         
         for(i = 0; i < nb_nics; i++) {
-            pci_ne2000_init(pci_bus, &nd_table[i]);
+            pci_ne2000_init(pci_bus, &nd_table[i], -1);
         }
         
 #if 1
         ide0_mem_index = pmac_ide_init(&bs_table[0], set_irq, pic, 0x13);
         ide1_mem_index = pmac_ide_init(&bs_table[2], set_irq, pic, 0x14);
 #else
-        pci_cmd646_ide_init(pci_bus, &bs_table[0], 0);
+        pci_cmd646_ide_init(pci_bus, &bs_table[0], 0, -1);
 #endif
         /* cuda also initialize ADB */
         cuda_mem_index = cuda_init(set_irq, pic, 0x19);
Index: hw/ppc_prep.c
===================================================================
RCS file: /sources/qemu/qemu/hw/ppc_prep.c,v
retrieving revision 1.28
diff -u -d -p -r1.28 ppc_prep.c
--- hw/ppc_prep.c       17 Aug 2006 10:45:20 -0000      1.28
+++ hw/ppc_prep.c       19 Nov 2006 20:35:42 -0000
@@ -613,7 +613,7 @@ static void ppc_prep_init(int ram_size, 
 
     /* init basic PC hardware */
     pci_vga_init(pci_bus, ds, phys_ram_base + ram_size, ram_size, 
-                 vga_ram_size, 0, 0);
+                 vga_ram_size, 0, 0, -1);
     rtc_init(0x70, 8);
     //    openpic = openpic_init(0x00000000, 0xF0000000, 1);
     isa_pic = pic_init(pic_irq_request, first_cpu);
Index: hw/realview.c
===================================================================
RCS file: /sources/qemu/qemu/hw/realview.c,v
retrieving revision 1.1
diff -u -d -p -r1.1 realview.c
--- hw/realview.c       23 Sep 2006 17:40:58 -0000      1.1
+++ hw/realview.c       19 Nov 2006 20:35:42 -0000
@@ -71,7 +71,7 @@ static void realview_init(int ram_size, 
         if (strcmp(nd->model, "smc91c111") == 0) {
             smc91c111_init(nd, 0x4e000000, pic, 28);
         } else {
-            pci_nic_init(pci_bus, nd);
+            pci_nic_init(pci_bus, nd, -1);
         }
     }
 
Index: hw/rtl8139.c
===================================================================
RCS file: /sources/qemu/qemu/hw/rtl8139.c,v
retrieving revision 1.5
diff -u -d -p -r1.5 rtl8139.c
--- hw/rtl8139.c        17 Aug 2006 10:46:34 -0000      1.5
+++ hw/rtl8139.c        19 Nov 2006 20:35:42 -0000
@@ -3409,7 +3409,7 @@ static void rtl8139_timer(void *opaque)
 }
 #endif /* RTL8139_ONBOARD_TIMER */
 
-void pci_rtl8139_init(PCIBus *bus, NICInfo *nd)
+void pci_rtl8139_init(PCIBus *bus, NICInfo *nd, int devfn)
 {
     PCIRTL8139State *d;
     RTL8139State *s;
@@ -3417,7 +3417,7 @@ void pci_rtl8139_init(PCIBus *bus, NICIn
     
     d = (PCIRTL8139State *)pci_register_device(bus,
                                               "RTL8139", 
sizeof(PCIRTL8139State),
-                                              -1, 
+                                              devfn, 
                                               NULL, NULL);
     pci_conf = d->dev.config;
     pci_conf[0x00] = 0xec; /* Realtek 8139 */
Index: hw/sun4u.c
===================================================================
RCS file: /sources/qemu/qemu/hw/sun4u.c,v
retrieving revision 1.11
diff -u -d -p -r1.11 sun4u.c
--- hw/sun4u.c  18 Jun 2006 19:41:28 -0000      1.11
+++ hw/sun4u.c  19 Nov 2006 20:35:42 -0000
@@ -326,7 +326,7 @@ static void sun4u_init(int ram_size, int
     }
     pci_bus = pci_apb_init(APB_SPECIAL_BASE, APB_MEM_BASE, NULL);
     isa_mem_base = VGA_BASE;
-    pci_cirrus_vga_init(pci_bus, ds, phys_ram_base + ram_size, ram_size, 
vga_ram_size);
+    pci_cirrus_vga_init(pci_bus, ds, phys_ram_base + ram_size, ram_size, 
vga_ram_size, -1);
 
     for(i = 0; i < MAX_SERIAL_PORTS; i++) {
         if (serial_hds[i]) {
@@ -344,10 +344,10 @@ static void sun4u_init(int ram_size, int
     for(i = 0; i < nb_nics; i++) {
         if (!nd_table[i].model)
             nd_table[i].model = "ne2k_pci";
-       pci_nic_init(pci_bus, &nd_table[i]);
+       pci_nic_init(pci_bus, &nd_table[i], -1);
     }
 
-    pci_cmd646_ide_init(pci_bus, bs_table, 1);
+    pci_cmd646_ide_init(pci_bus, bs_table, 1, -1);
     kbd_init();
     floppy_controller = fdctrl_init(6, 2, 0, 0x3f0, fd_table);
     nvram = m48t59_init(8, 0, 0x0074, NVRAM_SIZE, 59);
Index: hw/versatilepb.c
===================================================================
RCS file: /sources/qemu/qemu/hw/versatilepb.c,v
retrieving revision 1.6
diff -u -d -p -r1.6 versatilepb.c
--- hw/versatilepb.c    23 Sep 2006 17:40:58 -0000      1.6
+++ hw/versatilepb.c    19 Nov 2006 20:35:42 -0000
@@ -188,7 +188,7 @@ static void versatile_init(int ram_size,
         if (strcmp(nd->model, "smc91c111") == 0) {
             smc91c111_init(nd, 0x10010000, sic, 25);
         } else {
-            pci_nic_init(pci_bus, nd);
+            pci_nic_init(pci_bus, nd, -1);
         }
     }
     if (usb_enabled) {
Index: hw/vga.c
===================================================================
RCS file: /sources/qemu/qemu/hw/vga.c,v
retrieving revision 1.48
diff -u -d -p -r1.48 vga.c
--- hw/vga.c    25 Sep 2006 21:41:20 -0000      1.48
+++ hw/vga.c    19 Nov 2006 20:35:42 -0000
@@ -1866,7 +1866,7 @@ int isa_vga_init(DisplayState *ds, uint8
 
 int pci_vga_init(PCIBus *bus, DisplayState *ds, uint8_t *vga_ram_base, 
                  unsigned long vga_ram_offset, int vga_ram_size,
-                 unsigned long vga_bios_offset, int vga_bios_size)
+                 unsigned long vga_bios_offset, int vga_bios_size, int devfn)
 {
     PCIVGAState *d;
     VGAState *s;
@@ -1874,7 +1874,7 @@ int pci_vga_init(PCIBus *bus, DisplaySta
     
     d = (PCIVGAState *)pci_register_device(bus, "VGA", 
                                            sizeof(PCIVGAState),
-                                           -1, NULL, NULL);
+                                           devfn, NULL, NULL);
     if (!d)
         return -1;
     s = &d->vga_state;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]