diff options
| author | Aurelien Jarno <aurelien@aurel32.net> | 2012-09-08 11:49:24 +0200 |
|---|---|---|
| committer | Aurelien Jarno <aurelien@aurel32.net> | 2012-10-06 18:48:38 +0200 |
| commit | 129d42fb8496de5c1896160fddab949784d4dea4 (patch) | |
| tree | 9b8259c9da979e8eae92be326a2ce6f16c28a24c | |
| parent | 3605ded557eb2a6d06a942b952c8fac4c676b125 (diff) | |
| download | focaccia-qemu-129d42fb8496de5c1896160fddab949784d4dea4.tar.gz focaccia-qemu-129d42fb8496de5c1896160fddab949784d4dea4.zip | |
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 <aliguori@us.ibm.com> Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
| -rw-r--r-- | hw/pci.c | 18 | ||||
| -rw-r--r-- | hw/pci.h | 3 |
2 files changed, 21 insertions, 0 deletions
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), |