]> xenbits.xen.org Git - xenclient/ioemu.git/commitdiff
ioemu: Read pass-through vslot from xend
authorIan Jackson <ian.jackson@eu.citrix.com>
Tue, 31 Mar 2009 10:41:09 +0000 (11:41 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Tue, 31 Mar 2009 10:41:09 +0000 (11:41 +0100)
This reads the vslot information supplied by xend, and should be
the final piece for this feature on the ioemu side.

There is also a xend portion of this patch which I will post separately.

Signed-off-by: Simon Horman <horms@verge.net.au>
xenstore.c

index ef7b5f341f498833791d53abc1a6becc37cf3df9..67bae635dc70cabeffc0cd32a6de2659f267e5ab 100644 (file)
@@ -584,6 +584,24 @@ void xenstore_parse_domain_config(int hvm_domid)
 
             strcat(direct_pci_str, dev);
 
+            if (pasprintf(&buf, "/local/domain/0/backend/pci/%u/%u/vslot-%d",
+                          hvm_domid, pci_devid, i) != -1) {
+                free(dev);
+                dev = xs_read(xsh, XBT_NULL, buf, &len);
+            }
+            if ( dev ) {
+                if (strlen(dev) + strlen(direct_pci_str) >
+                    DIRECT_PCI_STR_LEN - 2) {
+                    fprintf(stderr, "qemu: too many pci pass-through "
+                            "devices\n");
+                    memset(direct_pci_str, 0, DIRECT_PCI_STR_LEN);
+                    goto out;
+                }
+                strcat(direct_pci_str, "@");
+                strcat(direct_pci_str, dev);
+            }
+
+
             if (pasprintf(&buf, "/local/domain/0/backend/pci/%u/%u/opts-%d",
                           hvm_domid, pci_devid, i) != -1) {
                 free(dev);