diff options
author | Anthony Liguori <aliguori@us.ibm.com> | 2010-04-29 17:44:44 +0530 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2010-05-03 12:17:37 -0500 |
commit | 9f10751365b26b13b8a9b67e0e90536ae3d282df (patch) | |
tree | 276d00f1b535d02d22e3a20a45582239240c5977 /hw/virtio-pci.c | |
parent | 74db920c32cea5b52a91b81f2bfd467fc070e942 (diff) |
virtio-9p: Add a virtio 9p device to qemu
This patch doesn't implement the 9p protocol handling
code. It adds a simple device which dump the protocol data.
[jvrao@linux.vnet.ibm.com: Little-Endian to host format conversion]
[aneesh.kumar@linux.vnet.ibm.com: Multiple-mounts support]
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/virtio-pci.c')
-rw-r--r-- | hw/virtio-pci.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c index 7ce526f42c..7ddf612282 100644 --- a/hw/virtio-pci.c +++ b/hw/virtio-pci.c @@ -102,6 +102,9 @@ typedef struct { BlockConf block; NICConf nic; uint32_t host_features; +#ifdef CONFIG_LINUX + V9fsConf fsconf; +#endif /* Max. number of ports we can have for a the virtio-serial device */ uint32_t max_virtserial_ports; } VirtIOPCIProxy; @@ -639,6 +642,23 @@ static int virtio_balloon_init_pci(PCIDevice *pci_dev) return 0; } +#ifdef CONFIG_LINUX +static int virtio_9p_init_pci(PCIDevice *pci_dev) +{ + VirtIOPCIProxy *proxy = DO_UPCAST(VirtIOPCIProxy, pci_dev, pci_dev); + VirtIODevice *vdev; + + vdev = virtio_9p_init(&pci_dev->qdev, &proxy->fsconf); + virtio_init_pci(proxy, vdev, + PCI_VENDOR_ID_REDHAT_QUMRANET, + 0x1009, + 0x2, + 0x00); + + return 0; +} +#endif + static PCIDeviceInfo virtio_info[] = { { .qdev.name = "virtio-blk-pci", @@ -693,6 +713,18 @@ static PCIDeviceInfo virtio_info[] = { }, .qdev.reset = virtio_pci_reset, },{ +#ifdef CONFIG_LINUX + .qdev.name = "virtio-9p-pci", + .qdev.size = sizeof(VirtIOPCIProxy), + .init = virtio_9p_init_pci, + .qdev.props = (Property[]) { + DEFINE_VIRTIO_COMMON_FEATURES(VirtIOPCIProxy, host_features), + DEFINE_PROP_STRING("mount_tag", VirtIOPCIProxy, fsconf.tag), + DEFINE_PROP_STRING("fsdev", VirtIOPCIProxy, fsconf.fsdev_id), + DEFINE_PROP_END_OF_LIST(), + }, + }, { +#endif /* end of list */ } }; |