]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virsh: support multifunction in attach-disk
authorKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Tue, 13 Dec 2011 06:12:32 +0000 (15:12 +0900)
committerEric Blake <eblake@redhat.com>
Tue, 13 Dec 2011 23:15:20 +0000 (16:15 -0700)
PCI <address...> can be specified by attach-disk but multifunction cannot
be specified. Add --multifunction support.

tools/virsh.c
tools/virsh.pod

index a95784d0849b2983f6d065f77218e728d620a07d..f6571f72eb63014a93b99f3e9a786d4a676e4bb8 100644 (file)
@@ -12667,6 +12667,8 @@ 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}
 };
 
@@ -12922,9 +12924,12 @@ 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"))
+                    virBufferAddLit(&buf, " multifunction='on'");
+                virBufferAddLit(&buf, "/>\n");
             } else {
                 vshError(ctl, "%s", _("expecting a pci:0000.00.00.00 address."));
                 goto cleanup;
index d56c5d7d6de39ce34ab82e6e02bb17343d026ed6..c468f1362b3b58bf127c74c274b6b52de5c0b203 100644 (file)
@@ -1276,6 +1276,7 @@ the device does not use managed mode.
 [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<--multifunction>]
 
 Attach a new disk device to the domain.
 I<source> and I<target> are paths for the files and devices.
@@ -1293,6 +1294,8 @@ 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>]