At 12/13/2011 02:12 PM, KAMEZAWA Hiroyuki Write: > From: KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> > > PCI <address...> can be specified by attach-disk but multifunction cannot > be specified. add --multifunction support. IIRC, libvirt does not support hot plugging multifunction PCI device. Why do you need this feature? Thanks Wen Congyang > --- > tools/virsh.c | 7 ++++++- > tools/virsh.pod | 3 ++- > 2 files changed, 8 insertions(+), 2 deletions(-) > > diff --git a/tools/virsh.c b/tools/virsh.c > index d58b827..346b440 100644 > --- a/tools/virsh.c > +++ b/tools/virsh.c > @@ -12661,6 +12661,7 @@ static const vshCmdOptDef opts_attach_disk[] = { > {"serial", VSH_OT_STRING, 0, N_("serial of disk device")}, > {"shareable", VSH_OT_BOOL, 0, N_("shareable between domains")}, > {"address", VSH_OT_STRING, 0, N_("address of disk device")}, > + {"multifunction", VSH_OT_BOOL, 0, N_("use multifunction pci under specified address")}, > {NULL, 0, 0, NULL} > }; > > @@ -12916,9 +12917,13 @@ cmdAttachDisk(vshControl *ctl, const vshCmd *cmd) > if (diskAddr.type == DISK_ADDR_TYPE_PCI) { > virBufferAsprintf(&buf, > " <address type='pci' domain='0x%04x'" > - " bus ='0x%02x' slot='0x%02x' function='0x%0x' />\n", > + " bus ='0x%02x' slot='0x%02x' function='0x%0x'", > diskAddr.addr.pci.domain, diskAddr.addr.pci.bus, > diskAddr.addr.pci.slot, diskAddr.addr.pci.function); > + if (vshCommandOptBool(cmd, "multifunction")) > + virBufferAsprintf(&buf, " multifunction='on' />\n"); > + else > + virBufferAsprintf(&buf, " />\n"); > } else { > vshError(ctl, "%s", _("expecting a pci:0000.00.00.00 address.")); > goto cleanup; > diff --git a/tools/virsh.pod b/tools/virsh.pod > index fe92714..1a778f9 100644 > --- a/tools/virsh.pod > +++ b/tools/virsh.pod > @@ -1273,7 +1273,7 @@ the device does not use managed mode. > =item B<attach-disk> I<domain-id> I<source> I<target> > [I<--driver driver>] [I<--subdriver subdriver>] [I<--cache cache>] > [I<--type type>] [I<--mode mode>] [I<--persistent>] [I<--sourcetype soucetype>] > -[I<--serial serial>] [I<--shareable>] [I<--address address>] > +[I<--serial serial>] [I<--shareable>] [I<--address address>] [I<--multifunction>] > > Attach a new disk device to the domain. > I<source> and I<target> are paths for the files and devices. > @@ -1291,6 +1291,7 @@ I<serial> is the serial of disk device. I<shareable> indicates the disk device > is shareable between domains. > I<address> is the address of disk device in the form of pci:domain.bus.slot.function, > scsi:controller.bus.unit or ide:controller.bus.unit. > +I<multifunction> indicates specified pci address is a multifunction pci device address. > > =item B<attach-interface> I<domain-id> I<type> I<source> > [I<--target target>] [I<--mac mac>] [I<--script script>] [I<--model model>] -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list