在 2013-01-03四的 16:13 +0100,Ján Tomko写道: > On 12/26/12 02:00, liguang wrote: > > @@ -1801,10 +1803,13 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, > > * When QEMU grows support for > 1 PCI domain, then pci.0 change > > * to pciNN.0 where NN is the domain number > > */ > > - if (qemuCapsGet(caps, QEMU_CAPS_PCI_MULTIBUS)) > > + if (info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_PCIBRIDGE) { > > + virBufferAsprintf(buf, ",bus=pci-bridge%d", info->addr.pci.bus); > > + } else if (qemuCapsGet(caps, QEMU_CAPS_PCI_MULTIBUS)) { > > virBufferAsprintf(buf, ",bus=pci.0"); > > Is there any way (or plan) to use more pci buses with QEMU other than > with the pci bridges? If not, we could just name the bridges pci.%d. (If > we index the bridges from 1). as far as I know, qemu can't use multi-pci-bus, so only pci.0 accepted now. > > > - else > > + } else { > > virBufferAsprintf(buf, ",bus=pci"); > > + } > > if (info->addr.pci.multi == VIR_DEVICE_ADDRESS_PCI_MULTI_ON) > > virBufferAddLit(buf, ",multifunction=on"); > > else if (info->addr.pci.multi == VIR_DEVICE_ADDRESS_PCI_MULTI_OFF) > > @@ -3455,6 +3460,32 @@ error: > > return NULL; > > } > > > > > > +char * > > +qemuBuildPCIbridgeDevStr(virDomainPCIbridgeDefPtr dev, > > + qemuCapsPtr caps, int idx) > > +{ > > + virBuffer buf = VIR_BUFFER_INITIALIZER; > > + > > + virBufferAsprintf(&buf, "pci-bridge,chassis_nr=1"); > > The chassis number has to be unique for each bridge. chassis number is not so important, here, I just set all bridges in same chassis. > > > + > > + if ((dev->type != VIR_DOMAIN_PCIBRIDGE_TYPE_ROOT) && > > + (qemuBuildDeviceAddressStr(&buf, &dev->info, caps) < 0)) > > + goto error; > > + else > > + virBufferAsprintf(&buf, ",id=pci-bridge%d" , idx); > > + > > + if (virBufferError(&buf)) { > > + virReportOOMError(); > > + goto error; > > + } > > + > > + return virBufferContentAndReset(&buf); > > + > > +error: > > + virBufferFreeAndReset(&buf); > > + return NULL; > > + > > +} > -- regards! li guang -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list