David Kiarie wrote: > From: Kiarie Kahurani <davidkiarie4@xxxxxxxxx> > > introduce function > > xenParseXMVfb(.....); > > which parses the graphics config > > signed-off-by: David Kiarie<davidkiarie4@xxxxxxxxx> > --- > src/xenxs/xen_xm.c | 247 ++++++++++++++++++++++++++++------------------------- > 1 file changed, 131 insertions(+), 116 deletions(-) > > diff --git a/src/xenxs/xen_xm.c b/src/xenxs/xen_xm.c > index 80a7941..89d5739 100644 > --- a/src/xenxs/xen_xm.c > +++ b/src/xenxs/xen_xm.c > @@ -872,125 +872,14 @@ static int xenParseXMDisk(virConfPtr conf, virDomainDefPtr def, > > return 0; > } > -virDomainDefPtr > -xenParseXM(virConfPtr conf, int xendConfigVersion, > - virCapsPtr caps) > +static int xenParseXMVfb(virConfPtr conf, virDomainDefPtr def, > + int xendConfigVersion) > { > - const char *str; > - int hvm = 0; > + char *listenAddr; > int val; > - virConfValuePtr list; > - virDomainDefPtr def = NULL; > - virDomainDiskDefPtr disk = NULL; > - virDomainNetDefPtr net = NULL; > + virConfValuePtr list = NULL; > virDomainGraphicsDefPtr graphics = NULL; > - size_t i; > - char *script = NULL; > - char *listenAddr = NULL; > - > - if (VIR_ALLOC(def) < 0) > - return NULL; > - > - def->virtType = VIR_DOMAIN_VIRT_XEN; > - def->id = -1; > - if (xenParseXMGeneral(conf, def, caps) < 0) > - goto cleanup; > - hvm = (STREQ(def->os.type, "hvm")); > - if (hvm) { > - const char *boot; > - if (xenXMConfigCopyString(conf, "kernel", &def->os.loader) < 0) > - goto cleanup; > - > - if (xenXMConfigGetString(conf, "boot", &boot, "c") < 0) > - goto cleanup; > - > - for (i = 0; i < VIR_DOMAIN_BOOT_LAST && boot[i]; i++) { > - switch (*boot) { > - case 'a': > - def->os.bootDevs[i] = VIR_DOMAIN_BOOT_FLOPPY; > - break; > - case 'd': > - def->os.bootDevs[i] = VIR_DOMAIN_BOOT_CDROM; > - break; > - case 'n': > - def->os.bootDevs[i] = VIR_DOMAIN_BOOT_NET; > - break; > - case 'c': > - default: > - def->os.bootDevs[i] = VIR_DOMAIN_BOOT_DISK; > - break; > - } > - def->os.nBootDevs++; > - } > - } else { > - const char *extra, *root; > - > - if (xenXMConfigCopyStringOpt(conf, "bootloader", &def->os.bootloader) < 0) > - goto cleanup; > - if (xenXMConfigCopyStringOpt(conf, "bootargs", &def->os.bootloaderArgs) < 0) > - goto cleanup; > - > - if (xenXMConfigCopyStringOpt(conf, "kernel", &def->os.kernel) < 0) > - goto cleanup; > - if (xenXMConfigCopyStringOpt(conf, "ramdisk", &def->os.initrd) < 0) > - goto cleanup; > - if (xenXMConfigGetString(conf, "extra", &extra, NULL) < 0) > - goto cleanup; > - if (xenXMConfigGetString(conf, "root", &root, NULL) < 0) > - goto cleanup; > - > - if (root) { > - if (virAsprintf(&def->os.cmdline, "root=%s %s", root, extra) < 0) > - goto cleanup; > - } else { > - if (VIR_STRDUP(def->os.cmdline, extra) < 0) > - goto cleanup; > - } > - } > - if (xenParseXMMem(conf, def) < 0) > - goto cleanup; > - if (xenXMConfigCopyStringOpt(conf, "device_model", &def->emulator) < 0) > - goto cleanup; > - if (xenParseXMVif(conf, def) < 0) > - goto cleanup; > - > - if (xenParseXMTimeOffset(conf, def, xendConfigVersion) < 0) > - goto cleanup; > - if (xenParseXMEventsActions(conf, def) < 0) > - goto cleanup; > - if (xenParseXMPCI(conf, def) < 0) > - goto cleanup; > - if (xenParseXMCPUFeatures(conf, def) < 0) > - goto cleanup; > - if (xenParseXMDisk(conf, def, xendConfigVersion) < 0) > - goto cleanup; > - > - if (hvm) { > - if (xenXMConfigGetString(conf, "usbdevice", &str, NULL) < 0) > - goto cleanup; > - if (str && > - (STREQ(str, "tablet") || > - STREQ(str, "mouse") || > - STREQ(str, "keyboard"))) { > - virDomainInputDefPtr input; > - if (VIR_ALLOC(input) < 0) > - goto cleanup; > - input->bus = VIR_DOMAIN_INPUT_BUS_USB; > - if (STREQ(str, "mouse")) > - input->type = VIR_DOMAIN_INPUT_TYPE_MOUSE; > - else if (STREQ(str, "tablet")) > - input->type = VIR_DOMAIN_INPUT_TYPE_TABLET; > - else if (STREQ(str, "keyboard")) > - input->type = VIR_DOMAIN_INPUT_TYPE_KBD; > - if (VIR_ALLOC_N(def->inputs, 1) < 0) { > - virDomainInputDefFree(input); > - goto cleanup; > - } > - def->inputs[0] = input; > - def->ninputs = 1; > - } > - } > - > + int hvm = STREQ(def->os.type, "hvm"); > The usual whitespace comments: blank lines between functions, indentation of the function params, and blank line after local variables. > /* HVM guests, or old PV guests use this config format */ > if (hvm || xendConfigVersion < XEND_CONFIG_VERSION_3_0_4) { > if (xenXMConfigGetBool(conf, "vnc", &val, 0) < 0) > @@ -1125,6 +1014,132 @@ xenParseXM(virConfPtr conf, int xendConfigVersion, > } > } > > + return 0; > + > + cleanup: > + virDomainGraphicsDefFree(graphics); > + return -1; > +} > +virDomainDefPtr > +xenParseXM(virConfPtr conf, int xendConfigVersion, > + virCapsPtr caps) > +{ > + const char *str; > + int hvm = 0; > + virConfValuePtr list; > + virDomainDefPtr def = NULL; > + virDomainDiskDefPtr disk = NULL; > + virDomainNetDefPtr net = NULL; > + virDomainGraphicsDefPtr graphics = NULL; > + size_t i; > + char *script = NULL; > + char *listenAddr = NULL; > 'graphics' and 'listenAddr' are no longer used in this function and can be dropped. Regards, Jim > + > + if (VIR_ALLOC(def) < 0) > + return NULL; > + > + def->virtType = VIR_DOMAIN_VIRT_XEN; > + def->id = -1; > + if (xenParseXMGeneral(conf, def, caps) < 0) > + goto cleanup; > + hvm = (STREQ(def->os.type, "hvm")); > + if (hvm) { > + const char *boot; > + if (xenXMConfigCopyString(conf, "kernel", &def->os.loader) < 0) > + goto cleanup; > + > + if (xenXMConfigGetString(conf, "boot", &boot, "c") < 0) > + goto cleanup; > + > + for (i = 0; i < VIR_DOMAIN_BOOT_LAST && boot[i]; i++) { > + switch (*boot) { > + case 'a': > + def->os.bootDevs[i] = VIR_DOMAIN_BOOT_FLOPPY; > + break; > + case 'd': > + def->os.bootDevs[i] = VIR_DOMAIN_BOOT_CDROM; > + break; > + case 'n': > + def->os.bootDevs[i] = VIR_DOMAIN_BOOT_NET; > + break; > + case 'c': > + default: > + def->os.bootDevs[i] = VIR_DOMAIN_BOOT_DISK; > + break; > + } > + def->os.nBootDevs++; > + } > + } else { > + const char *extra, *root; > + > + if (xenXMConfigCopyStringOpt(conf, "bootloader", &def->os.bootloader) < 0) > + goto cleanup; > + if (xenXMConfigCopyStringOpt(conf, "bootargs", &def->os.bootloaderArgs) < 0) > + goto cleanup; > + > + if (xenXMConfigCopyStringOpt(conf, "kernel", &def->os.kernel) < 0) > + goto cleanup; > + if (xenXMConfigCopyStringOpt(conf, "ramdisk", &def->os.initrd) < 0) > + goto cleanup; > + if (xenXMConfigGetString(conf, "extra", &extra, NULL) < 0) > + goto cleanup; > + if (xenXMConfigGetString(conf, "root", &root, NULL) < 0) > + goto cleanup; > + > + if (root) { > + if (virAsprintf(&def->os.cmdline, "root=%s %s", root, extra) < 0) > + goto cleanup; > + } else { > + if (VIR_STRDUP(def->os.cmdline, extra) < 0) > + goto cleanup; > + } > + } > + if (xenParseXMMem(conf, def) < 0) > + goto cleanup; > + if (xenXMConfigCopyStringOpt(conf, "device_model", &def->emulator) < 0) > + goto cleanup; > + if (xenParseXMVif(conf, def) < 0) > + goto cleanup; > + > + if (xenParseXMTimeOffset(conf, def, xendConfigVersion) < 0) > + goto cleanup; > + if (xenParseXMEventsActions(conf, def) < 0) > + goto cleanup; > + if (xenParseXMPCI(conf, def) < 0) > + goto cleanup; > + if (xenParseXMCPUFeatures(conf, def) < 0) > + goto cleanup; > + if (xenParseXMDisk(conf, def, xendConfigVersion) < 0) > + goto cleanup; > + > + if (hvm) { > + if (xenXMConfigGetString(conf, "usbdevice", &str, NULL) < 0) > + goto cleanup; > + if (str && > + (STREQ(str, "tablet") || > + STREQ(str, "mouse") || > + STREQ(str, "keyboard"))) { > + virDomainInputDefPtr input; > + if (VIR_ALLOC(input) < 0) > + goto cleanup; > + input->bus = VIR_DOMAIN_INPUT_BUS_USB; > + if (STREQ(str, "mouse")) > + input->type = VIR_DOMAIN_INPUT_TYPE_MOUSE; > + else if (STREQ(str, "tablet")) > + input->type = VIR_DOMAIN_INPUT_TYPE_TABLET; > + else if (STREQ(str, "keyboard")) > + input->type = VIR_DOMAIN_INPUT_TYPE_KBD; > + if (VIR_ALLOC_N(def->inputs, 1) < 0) { > + virDomainInputDefFree(input); > + goto cleanup; > + } > + def->inputs[0] = input; > + def->ninputs = 1; > + } > + } > + if (xenParseXMVfb(conf, def, xendConfigVersion) < 0) > + goto cleanup; > + > if (hvm) { > virDomainChrDefPtr chr = NULL; > > -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list