David Kiarie wrote: > From: Kiarie Kahurani <davidkiarie4@xxxxxxxxx> > > Introduce function > xenParseXMTimeOffset(virConfPtr conf,......); > which parses virtual config instead > > signed-off-by: David Kiarie<davidkiarie4@xxxxxxxxx> > --- > src/xenxs/xen_xm.c | 73 ++++++++++++++++++++++++++++++++---------------------- > 1 file changed, 44 insertions(+), 29 deletions(-) > > diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c > index d0a166d..c816198 100644 > --- a/src/xenxs/xen_xm.c > +++ b/src/xenxs/xen_xm.c > @@ -266,6 +266,48 @@ int xenParseXMMem(virConfPtr conf, virDomainDefPtr def) > * Turn a config record into a lump of XML describing the > * domain, suitable for later feeding for virDomainCreateXML > */ > As mentioned in 2/25, this comment should stay with xenParseXM(). Regards, Jim > + > + > +static > +int xenParseXMTimeOffset(virConfPtr conf, virDomainDefPtr def, > + int xendConfigVersion) > +{ > + int vmlocaltime; > + > + if (xenXMConfigGetBool(conf, "localtime", &vmlocaltime, 0) < 0) > + return -1; > + > + if (STREQ(def->os.type, "hvm")) { > + /* only managed HVM domains since 3.1.0 have persistent rtc_timeoffset */ > + if (xendConfigVersion < XEND_CONFIG_VERSION_3_1_0) { > + if (vmlocaltime) > + def->clock.offset = VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME; > + else > + def->clock.offset = VIR_DOMAIN_CLOCK_OFFSET_UTC; > + def->clock.data.utc_reset = true; > + } else { > + unsigned long rtc_timeoffset; > + def->clock.offset = VIR_DOMAIN_CLOCK_OFFSET_VARIABLE; > + if (xenXMConfigGetULong(conf, "rtc_timeoffset", &rtc_timeoffset, 0) < 0) > + return -1; > + > + def->clock.data.variable.adjustment = (int)rtc_timeoffset; > + def->clock.data.variable.basis = vmlocaltime ? > + VIR_DOMAIN_CLOCK_BASIS_LOCALTIME : > + VIR_DOMAIN_CLOCK_BASIS_UTC; > + } > + } else { > + /* PV domains do not have an emulated RTC and the offset is fixed. */ > + def->clock.offset = vmlocaltime ? > + VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME : > + VIR_DOMAIN_CLOCK_OFFSET_UTC; > + def->clock.data.utc_reset = true; > + } /* !hvm */ > + > + return 0; > +} > + > + > static > int xenParseXMEventsActions(virConfPtr conf, virDomainDefPtr def) > { > @@ -317,7 +359,6 @@ xenParseXM(virConfPtr conf, int xendConfigVersion, > virDomainHostdevDefPtr hostdev = NULL; > size_t i; > const char *defaultMachine; > - int vmlocaltime = 0; > unsigned long count; > char *script = NULL; > char *listenAddr = NULL; > @@ -468,35 +509,9 @@ xenParseXM(virConfPtr conf, int xendConfigVersion, > def->clock.timers[0] = timer; > } > } > - if (xenXMConfigGetBool(conf, "localtime", &vmlocaltime, 0) < 0) > - goto cleanup; > - > - if (hvm) { > - /* only managed HVM domains since 3.1.0 have persistent rtc_timeoffset */ > - if (xendConfigVersion < XEND_CONFIG_VERSION_3_1_0) { > - if (vmlocaltime) > - def->clock.offset = VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME; > - else > - def->clock.offset = VIR_DOMAIN_CLOCK_OFFSET_UTC; > - def->clock.data.utc_reset = true; > - } else { > - unsigned long rtc_timeoffset; > - def->clock.offset = VIR_DOMAIN_CLOCK_OFFSET_VARIABLE; > - if (xenXMConfigGetULong(conf, "rtc_timeoffset", &rtc_timeoffset, 0) < 0) > - goto cleanup; > - def->clock.data.variable.adjustment = (int)rtc_timeoffset; > - def->clock.data.variable.basis = vmlocaltime ? > - VIR_DOMAIN_CLOCK_BASIS_LOCALTIME : > - VIR_DOMAIN_CLOCK_BASIS_UTC; > - } > - } else { > - /* PV domains do not have an emulated RTC and the offset is fixed. */ > - def->clock.offset = vmlocaltime ? > - VIR_DOMAIN_CLOCK_OFFSET_LOCALTIME : > - VIR_DOMAIN_CLOCK_OFFSET_UTC; > - def->clock.data.utc_reset = true; > - } /* !hvm */ > > + if (xenParseXMTimeOffset(conf, def, xendConfigVersion) < 0) > + goto cleanup; > if (xenXMConfigCopyStringOpt(conf, "device_model", &def->emulator) < 0) > goto cleanup; > > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list