]> Git Repo - qemu.git/blobdiff - hw/pci.c
vga: remove unused vga_common_save/load
[qemu.git] / hw / pci.c
index dfdae1cad7ddeaf247ee8e6c177419c7fa1c62f2..ef134f7e5c506074256ac82df2b685f34af3ed55 100644 (file)
--- a/hw/pci.c
+++ b/hw/pci.c
@@ -26,7 +26,6 @@
 #include "monitor.h"
 #include "net.h"
 #include "sysemu.h"
-#include "msix.h"
 
 //#define DEBUG_PCI
 #ifdef DEBUG_PCI
@@ -80,7 +79,7 @@ static const VMStateDescription vmstate_pcibus = {
     .minimum_version_id_old = 1,
     .fields      = (VMStateField []) {
         VMSTATE_INT32_EQUAL(nirq, PCIBus),
-        VMSTATE_INT32_VARRAY(irq_count, PCIBus, nirq),
+        VMSTATE_VARRAY_INT32(irq_count, PCIBus, nirq, 0, vmstate_info_int32, int32_t),
         VMSTATE_END_OF_LIST()
     }
 };
@@ -193,14 +192,15 @@ int pci_bus_num(PCIBus *s)
 static int get_pci_config_device(QEMUFile *f, void *pv, size_t size)
 {
     PCIDevice *s = container_of(pv, PCIDevice, config);
-    uint8_t config[size];
+    uint8_t config[PCI_CONFIG_SPACE_SIZE];
     int i;
 
-    qemu_get_buffer(f, config, size);
-    for (i = 0; i < size; ++i)
+    assert(size == sizeof config);
+    qemu_get_buffer(f, config, sizeof config);
+    for (i = 0; i < sizeof config; ++i)
         if ((config[i] ^ s->config[i]) & s->cmask[i] & ~s->wmask[i])
             return -EINVAL;
-    memcpy(s->config, config, size);
+    memcpy(s->config, config, sizeof config);
 
     pci_update_mappings(s);
 
@@ -441,7 +441,6 @@ static int pci_unregister_device(DeviceState *dev)
     if (ret)
         return ret;
 
-    msix_uninit(pci_dev);
     pci_unregister_io_regions(pci_dev);
 
     qemu_free_irqs(pci_dev->irq);
@@ -809,24 +808,6 @@ void pci_info(Monitor *mon)
     pci_for_each_device(0, pci_info_device);
 }
 
-PCIDevice *pci_create(const char *name, const char *devaddr)
-{
-    PCIBus *bus;
-    int devfn;
-    DeviceState *dev;
-
-    bus = pci_get_bus_devfn(&devfn, devaddr);
-    if (!bus) {
-        fprintf(stderr, "Invalid PCI device address %s for device %s\n",
-                devaddr, name);
-        exit(1);
-    }
-
-    dev = qdev_create(&bus->qbus, name);
-    qdev_prop_set_uint32(dev, "addr", devfn);
-    return (PCIDevice *)dev;
-}
-
 static const char * const pci_nic_models[] = {
     "ne2k_pci",
     "i82551",
@@ -851,18 +832,8 @@ static const char * const pci_nic_names[] = {
     NULL
 };
 
-int pci_nic_supported(const char *model)
-{
-    int i;
-
-    for (i = 0; pci_nic_names[i]; i++)
-        if (strcmp(model, pci_nic_names[i]) == 0)
-            return 1;
-
-    return 0;
-}
-
 /* Initialize a PCI NIC.  */
+/* FIXME callers should check for failure, but don't */
 PCIDevice *pci_nic_init(NICInfo *nd, const char *default_model,
                         const char *default_devaddr)
 {
@@ -884,14 +855,13 @@ PCIDevice *pci_nic_init(NICInfo *nd, const char *default_model,
         return NULL;
     }
 
-    pci_dev = pci_create_noinit(bus, devfn, pci_nic_names[i]);
+    pci_dev = pci_create(bus, devfn, pci_nic_names[i]);
     dev = &pci_dev->qdev;
-    if (nd->id)
-        dev->id = qemu_strdup(nd->id);
-    dev->nd = nd;
+    if (nd->name)
+        dev->id = qemu_strdup(nd->name);
+    qdev_set_nic_properties(dev, nd);
     if (qdev_init(dev) < 0)
         return NULL;
-    nd->private = dev;
     return pci_dev;
 }
 
@@ -972,10 +942,10 @@ PCIBus *pci_bridge_init(PCIBus *bus, int devfn, uint16_t vid, uint16_t did,
     PCIDevice *dev;
     PCIBridge *s;
 
-    dev = pci_create_noinit(bus, devfn, "pci-bridge");
+    dev = pci_create(bus, devfn, "pci-bridge");
     qdev_prop_set_uint32(&dev->qdev, "vendorid", vid);
     qdev_prop_set_uint32(&dev->qdev, "deviceid", did);
-    qdev_init(&dev->qdev);
+    qdev_init_nofail(&dev->qdev);
 
     s = DO_UPCAST(PCIBridge, dev, dev);
     pci_register_secondary_bus(&s->bus, &s->dev, map_irq, name);
@@ -1027,7 +997,7 @@ void pci_qdev_register_many(PCIDeviceInfo *info)
     }
 }
 
-PCIDevice *pci_create_noinit(PCIBus *bus, int devfn, const char *name)
+PCIDevice *pci_create(PCIBus *bus, int devfn, const char *name)
 {
     DeviceState *dev;
 
@@ -1038,8 +1008,8 @@ PCIDevice *pci_create_noinit(PCIBus *bus, int devfn, const char *name)
 
 PCIDevice *pci_create_simple(PCIBus *bus, int devfn, const char *name)
 {
-    PCIDevice *dev = pci_create_noinit(bus, devfn, name);
-    qdev_init(&dev->qdev);
+    PCIDevice *dev = pci_create(bus, devfn, name);
+    qdev_init_nofail(&dev->qdev);
     return dev;
 }
 
This page took 0.028488 seconds and 4 git commands to generate.