From 129d42fb8496de5c1896160fddab949784d4dea4 Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Sat, 8 Sep 2012 11:49:24 +0200 Subject: [PATCH] pci: add a pci_vga_init() function This function create a PCI VGA device according to the value of vga_interface_type. It returns a PCIDevice (and not a DeviceState). Cc: Anthony Liguori Signed-off-by: Aurelien Jarno --- hw/pci.c | 18 ++++++++++++++++++ hw/pci.h | 3 +++ 2 files changed, 21 insertions(+) diff --git a/hw/pci.c b/hw/pci.c index de4b4485e7..2ca6ff6fec 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -1474,6 +1474,24 @@ PCIDevice *pci_nic_init_nofail(NICInfo *nd, const char *default_model, return res; } +PCIDevice *pci_vga_init(PCIBus *bus) +{ + switch (vga_interface_type) { + case VGA_CIRRUS: + return pci_create_simple(bus, -1, "cirrus-vga"); + case VGA_QXL: + return pci_create_simple(bus, -1, "qxl-vga"); + case VGA_STD: + return pci_create_simple(bus, -1, "VGA"); + case VGA_VMWARE: + return pci_create_simple(bus, -1, "vmware-svga"); + case VGA_NONE: + default: /* Other non-PCI types. Checking for unsupported types is already + done in vl.c. */ + return NULL; + } +} + /* Whether a given bus number is in range of the secondary * bus of the given bridge device. */ static bool pci_secondary_bus_in_range(PCIDevice *dev, int bus_num) diff --git a/hw/pci.h b/hw/pci.h index 4b6ab3d190..d50d26c8ac 100644 --- a/hw/pci.h +++ b/hw/pci.h @@ -334,6 +334,9 @@ PCIDevice *pci_nic_init(NICInfo *nd, const char *default_model, const char *default_devaddr); PCIDevice *pci_nic_init_nofail(NICInfo *nd, const char *default_model, const char *default_devaddr); + +PCIDevice *pci_vga_init(PCIBus *bus); + int pci_bus_num(PCIBus *s); void pci_for_each_device(PCIBus *bus, int bus_num, void (*fn)(PCIBus *bus, PCIDevice *d, void *opaque),