On Mon, Dec 09, 2013 at 05:11:15PM +0800, Hu Tao wrote:
> Signed-off-by: Hu Tao <hu...@cn.fujitsu.com>
> ---
>  src/qemu/qemu_capabilities.c                  |  3 +++
>  src/qemu/qemu_capabilities.h                  |  2 ++
>  src/qemu/qemu_command.c                       | 16 ++++++++++++++++
>  tests/qemucapabilitiesdata/caps_1.5.3-1.caps  |  1 +
>  tests/qemucapabilitiesdata/caps_1.6.0-1.caps  |  1 +
>  tests/qemucapabilitiesdata/caps_1.6.50-1.caps |  1 +
>  6 files changed, 24 insertions(+)
> 
> diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
> index 548b988..b532dbb 100644
> --- a/src/qemu/qemu_capabilities.c
> +++ b/src/qemu/qemu_capabilities.c
> @@ -243,6 +243,8 @@ VIR_ENUM_IMPL(virQEMUCaps, QEMU_CAPS_LAST,
>                "virtio-mmio",
>                "ich9-intel-hda",
>                "kvm-pit-lost-tick-policy",
> +
> +              "pvpanic", /* 160 */
>      );
>  
>  struct _virQEMUCaps {
> @@ -1394,6 +1396,7 @@ struct virQEMUCapsStringFlags virQEMUCapsObjectTypes[] 
> = {
>      { "usb-storage", QEMU_CAPS_DEVICE_USB_STORAGE },
>      { "virtio-mmio", QEMU_CAPS_DEVICE_VIRTIO_MMIO },
>      { "ich9-intel-hda", QEMU_CAPS_DEVICE_ICH9_INTEL_HDA },
> +    { "pvpanic", QEMU_CAPS_DEVICE_PANIC },
>  };
>  
>  static struct virQEMUCapsStringFlags virQEMUCapsObjectPropsVirtioBlk[] = {
> diff --git a/src/qemu/qemu_capabilities.h b/src/qemu/qemu_capabilities.h
> index 02d47c6..1aedbf9 100644
> --- a/src/qemu/qemu_capabilities.h
> +++ b/src/qemu/qemu_capabilities.h
> @@ -199,6 +199,8 @@ enum virQEMUCapsFlags {
>      QEMU_CAPS_DEVICE_ICH9_INTEL_HDA = 158, /* -device ich9-intel-hda */
>      QEMU_CAPS_KVM_PIT_TICK_POLICY = 159, /* kvm-pit.lost_tick_policy */
>  
> +    QEMU_CAPS_DEVICE_PANIC       = 160, /* -device pvpanic */
> +
>      QEMU_CAPS_LAST,                   /* this must always be the last item */
>  };
>  
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 763417f..8487356 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -9588,6 +9588,22 @@ qemuBuildCommandLine(virConnectPtr conn,
>          goto error;
>      }
>  
> +    if (def->panic) {
> +        if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_DEVICE_PANIC)) {
> +            if (def->panic->info.addr.isa.iobase > 0) {
> +                virCommandAddArg(cmd, "-device");
> +                virCommandAddArgFormat(cmd, "pvpanic,ioport=%d",
> +                                       def->panic->info.addr.isa.iobase);
> +            } else {
> +                virCommandAddArgList(cmd, "-device", "pvpanic", NULL);
> +            }
> +        } else {
> +            virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> +                           _("your QEMU is too old to support pvpanic"));
> +            goto error;
> +        }
> +    }
> +
>      if (mlock) {
>          unsigned long long memKB;
>  
> diff --git a/tests/qemucapabilitiesdata/caps_1.5.3-1.caps 
> b/tests/qemucapabilitiesdata/caps_1.5.3-1.caps
> index 09cf657..1c84ce2 100644
> --- a/tests/qemucapabilitiesdata/caps_1.5.3-1.caps
> +++ b/tests/qemucapabilitiesdata/caps_1.5.3-1.caps
> @@ -131,4 +131,5 @@
>      <flag name='usb-storage.removable'/>
>      <flag name='ich9-intel-hda'/>
>      <flag name='kvm-pit-lost-tick-policy'/>
> +    <flag name='pvpanic'/>
>    </qemuCaps>
> diff --git a/tests/qemucapabilitiesdata/caps_1.6.0-1.caps 
> b/tests/qemucapabilitiesdata/caps_1.6.0-1.caps
> index 33ee73b..3b1b456 100644
> --- a/tests/qemucapabilitiesdata/caps_1.6.0-1.caps
> +++ b/tests/qemucapabilitiesdata/caps_1.6.0-1.caps
> @@ -135,4 +135,5 @@
>      <flag name='virtio-mmio'/>
>      <flag name='ich9-intel-hda'/>
>      <flag name='kvm-pit-lost-tick-policy'/>
> +    <flag name='pvpanic'/>
>    </qemuCaps>
> diff --git a/tests/qemucapabilitiesdata/caps_1.6.50-1.caps 
> b/tests/qemucapabilitiesdata/caps_1.6.50-1.caps
> index a66034a..fc9e034 100644
> --- a/tests/qemucapabilitiesdata/caps_1.6.50-1.caps
> +++ b/tests/qemucapabilitiesdata/caps_1.6.50-1.caps
> @@ -134,4 +134,5 @@
>      <flag name='virtio-mmio'/>
>      <flag name='ich9-intel-hda'/>
>      <flag name='kvm-pit-lost-tick-policy'/>
> +    <flag name='pvpanic'/>
>    </qemuCaps>

ACK

Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to