On 07/15/2010 05:31 AM, Daniel P. Berrange wrote:
On Wed, Jul 14, 2010 at 03:44:54PM -0400, Cole Robinson wrote:
> targetType only tracks the actual <target> format we are parsing.
> TYPE_DEFAULT is the typical serial/parallel format, NONE is for the
> <monitor> device which prints nothing.
>
> Signed-off-by: Cole Robinson <crobinso(a)redhat.com>
> ---
> src/conf/domain_conf.c | 108 ++++++++++++++++++++++++-----------------------
> src/conf/domain_conf.h | 19 ++++++--
> src/qemu/qemu_conf.c | 6 +-
> 3 files changed, 72 insertions(+), 61 deletions(-)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index c9140fe..e4d52ff 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -161,14 +161,18 @@ VIR_ENUM_IMPL(virDomainNet, VIR_DOMAIN_NET_TYPE_LAST,
> "internal",
> "direct")
>
> +VIR_ENUM_IMPL(virDomainChrTarget, VIR_DOMAIN_CHR_TARGET_TYPE_LAST,
> + "none",
> + "default",
> + "guestfwd",
> + "virtio")
> +
> VIR_ENUM_IMPL(virDomainChrDevice, VIR_DOMAIN_CHR_DEVICE_TYPE_LAST,
> - "null",
> "monitor",
> "parallel",
> "serial",
> "console",
> - "guestfwd",
> - "virtio")
> + "channel")
This is breaking backwards compatability AFAICT.
> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index b4e756a..75dc29a 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -312,15 +312,22 @@ struct _virDomainNetDef {
> };
>
> enum virDomainChrDeviceType {
> - VIR_DOMAIN_CHR_DEVICE_TYPE_NULL = 0,
> - VIR_DOMAIN_CHR_DEVICE_TYPE_MONITOR,
> + VIR_DOMAIN_CHR_DEVICE_TYPE_MONITOR = 0,
> VIR_DOMAIN_CHR_DEVICE_TYPE_PARALLEL,
> VIR_DOMAIN_CHR_DEVICE_TYPE_SERIAL,
> VIR_DOMAIN_CHR_DEVICE_TYPE_CONSOLE,
> - VIR_DOMAIN_CHR_DEVICE_TYPE_GUESTFWD,
> - VIR_DOMAIN_CHR_DEVICE_TYPE_VIRTIO,
> + VIR_DOMAIN_CHR_DEVICE_TYPE_CHANNEL,
>
> - VIR_DOMAIN_CHR_DEVICE_TYPE_LAST
> + VIR_DOMAIN_CHR_DEVICE_TYPE_LAST,
> +};
This is breaking backwards compatability with existing XML configs
surely.
Hmm, not sure if it is. Let me try to clarify a bit.
The "null" here being removed above is actually a string value with no
meaning in the XML. There is no <null type='pty'>... character device,
and there is no <serial><target type='null'></serial> device.
"null"
here is just a place holder to enable having a deviceType value of
VIR_DOMAIN_CHR_DEVICE_TYPE_NULL, which was used internally to work
around the issues of combining device type
serial/parallel/console/monitor/channel and target type guestfwd/virtio
Since this patch attempts to separate those differences into two fields,
we can drop the "null" piece: it was never actually being read from XML.
Unfortunately the targetType field in this patch suffers from the same
problem: there are 2 fields "none" and "default" which are never
written
into the XML and only used for internal implementation. That could be
unwound in another patch, but I think it would require always generating
an explicit <target type=''> in the XML.
Thanks,
Cole