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@xxxxxxxxxx> >> --- >> 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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list