wrap code tagged for resuse into one function and export it Signed-off-by: Kiarie Kahurani <davidkiarie4@xxxxxxxxx> --- src/xenxs/xen_xm.c | 73 +++++++++++++++++++++++++++++++----------------------- src/xenxs/xen_xm.h | 2 ++ 2 files changed, 44 insertions(+), 31 deletions(-) diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c index f70b395..8238026 100644 --- a/src/xenxs/xen_xm.c +++ b/src/xenxs/xen_xm.c @@ -1263,59 +1263,70 @@ xenParseXMOS(virConfPtr conf, virDomainDefPtr def) } -/* - * Turn a config record into a lump of XML describing the - * domain, suitable for later feeding for virDomainCreateXML - */ -virDomainDefPtr -xenParseXM(virConfPtr conf, int xendConfigVersion, - virCapsPtr caps) +int +xenParseConfigCommon(virConfPtr conf, virDomainDefPtr def, + virCapsPtr caps, int xendConfigVersion) { - virDomainDefPtr def = NULL; - - if (VIR_ALLOC(def) < 0) - return NULL; - - def->virtType = VIR_DOMAIN_VIRT_XEN; - def->id = -1; if (xenParseXMGeneralMeta(conf, def, caps) < 0) - goto cleanup; + return -1; if (xenParseXMOS(conf, def) < 0) - goto cleanup; + return -1; if (xenParseXMMem(conf, def) < 0) - goto cleanup; + return -1; + + if (xenParseXMTimeOffset(conf, def, xendConfigVersion) < 0) + return -1; if (xenParseXMEventsActions(conf, def) < 0) - goto cleanup; + return -1; + + if (xenParseXMPCI(conf, def) < 0) + return -1; if (xenParseXMCPUFeatures(conf, def) < 0) - goto cleanup; + return -1; - if (xenParseXMTimeOffset(conf, def, xendConfigVersion) < 0) - goto cleanup; + if (xenParseXMEmulatedDevices(conf, def) < 0) + return -1; - if (xenParseXMDisk(conf, def, xendConfigVersion) < 0) - goto cleanup; + if (xenParseXMCharDev(conf, def) < 0) + return -1; + + if (xenParseXMVfb(conf, def, xendConfigVersion) < 0) + return -1; if (xenXMConfigCopyStringOpt(conf, "device_model", &def->emulator) < 0) - goto cleanup; + return -1; if (xenParseXMVif(conf, def) < 0) - goto cleanup; + return -1; - if (xenParseXMPCI(conf, def) < 0) - goto cleanup; + return 0; +} - if (xenParseXMEmulatedDevices(conf, def) < 0) - goto cleanup; +/* + * Turn a config record into a lump of XML describing the + * domain, suitable for later feeding for virDomainCreateXML + */ +virDomainDefPtr +xenParseXM(virConfPtr conf, int xendConfigVersion, + virCapsPtr caps) +{ + virDomainDefPtr def = NULL; - if (xenParseXMVfb(conf, def, xendConfigVersion) < 0) + if (VIR_ALLOC(def) < 0) + return NULL; + + def->virtType = VIR_DOMAIN_VIRT_XEN; + def->id = -1; + + if (xenParseConfigCommon(conf, def, caps, xendConfigVersion) < 0) goto cleanup; - if (xenParseXMCharDev(conf, def) < 0) + if (xenParseXMDisk(conf, def, xendConfigVersion) < 0) goto cleanup; return def; diff --git a/src/xenxs/xen_xm.h b/src/xenxs/xen_xm.h index 629a4b3..261ba1f 100644 --- a/src/xenxs/xen_xm.h +++ b/src/xenxs/xen_xm.h @@ -35,5 +35,7 @@ virConfPtr xenFormatXM(virConnectPtr conn, virDomainDefPtr def, virDomainDefPtr xenParseXM(virConfPtr conf, int xendConfigVersion, virCapsPtr caps); +int xenParseConfigCommon(virConfPtr conf, virDomainDefPtr def, + virCapsPtr caps, int xendConfigVersion); #endif /* __VIR_XEN_XM_H__ */ -- 1.8.4.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list