On 01/10/2015 12:03 AM, Jim Fehlig wrote:
> This reverts commit 2c78051a14acfb7aba078d569b1632dfe0ca0853.
> 
> Conflicts:
>       src/Makefile.am
> 
> Signed-off-by: Jim Fehlig <jfeh...@suse.com>
> ---
>  .gitignore                    |   1 -
>  cfg.mk                        |   3 +-
>  configure.ac                  |   1 -
>  po/POTFILES.in                |   1 -
>  src/Makefile.am               |  25 +--
>  src/libvirt_xenconfig.syms    |   4 -
>  src/xenconfig/xen_common.c    |   3 +-
>  src/xenconfig/xen_xl.c        | 499 
> ------------------------------------------
>  src/xenconfig/xen_xl.h        |  33 ---
>  src/xenconfig/xen_xl_disk.l   | 256 ----------------------
>  src/xenconfig/xen_xl_disk_i.h |  39 ----
>  11 files changed, 4 insertions(+), 861 deletions(-)
> 

OK - so reverting is fine; however, xen_xl_disk.{c,h} still exist...
Simple enough solution, but they will show up in someone's git status
output since they are also removed from .gitignore.

There are a couple Coverity issues from the next 3 patches - I'll note
them for those directly.

ACK

John


> diff --git a/.gitignore b/.gitignore
> index eac2203..9d09709 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -140,7 +140,6 @@
>  /src/remote/*_protocol.[ch]
>  /src/rpc/virkeepaliveprotocol.[ch]
>  /src/rpc/virnetprotocol.[ch]
> -/src/xenconfig/xen_xl_disk.[ch]
>  /src/test_libvirt*.aug
>  /src/test_virtlockd.aug
>  /src/util/virkeymaps.h
> diff --git a/cfg.mk b/cfg.mk
> index 3df3dcb..21f83c3 100644
> --- a/cfg.mk
> +++ b/cfg.mk
> @@ -89,9 +89,8 @@ distdir: sc_vulnerable_makefile_CVE-2012-3386.z
>  endif
>  
>  # Files that should never cause syntax check failures.
> -#  (^(HACKING|docs/(news\.html\.in|.*\.patch))|\.(po|fig|gif|ico|png))$$
>  VC_LIST_ALWAYS_EXCLUDE_REGEX = \
> -  
> (^(HACKING|docs/(news\.html\.in|.*\.patch)|src/xenconfig/xen_xl_disk.[chl])|\.(po|fig|gif|ico|png))$$
> +  (^(HACKING|docs/(news\.html\.in|.*\.patch))|\.(po|fig|gif|ico|png))$$
>  
>  # Functions like free() that are no-ops on NULL arguments.
>  useless_free_options =                               \
> diff --git a/configure.ac b/configure.ac
> index 167b875..9d12079 100644
> --- a/configure.ac
> +++ b/configure.ac
> @@ -146,7 +146,6 @@ m4_ifndef([LT_INIT], [
>  ])
>  AM_PROG_CC_C_O
>  AM_PROG_LD
> -AM_PROG_LEX
>  
>  AC_MSG_CHECKING([for how to mark DSO non-deletable at runtime])
>  LIBVIRT_NODELETE=
> diff --git a/po/POTFILES.in b/po/POTFILES.in
> index 094c8e3..e7cb2cc 100644
> --- a/po/POTFILES.in
> +++ b/po/POTFILES.in
> @@ -247,7 +247,6 @@ src/xenapi/xenapi_driver.c
>  src/xenapi/xenapi_utils.c
>  src/xenconfig/xen_common.c
>  src/xenconfig/xen_sxpr.c
> -src/xenconfig/xen_xl.c
>  src/xenconfig/xen_xm.c
>  tests/virpolkittest.c
>  tools/libvirt-guests.sh.in
> diff --git a/src/Makefile.am b/src/Makefile.am
> index c7975e5..e0e47d0 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -1000,22 +1000,11 @@ CPU_SOURCES =                                         
>         \
>  VMX_SOURCES =                                                        \
>               vmx/vmx.c vmx/vmx.h
>  
> -AM_LFLAGS = -Pxl_disk_ --header-file=../$*.h
> -LEX_OUTPUT_ROOT = lex.xl_disk_
> -BUILT_SOURCES += xenconfig/xen_xl_disk.c xenconfig/xen_xl_disk.h
> -# Generated header file is not implicitly added to dist
> -EXTRA_DIST += xenconfig/xen_xl_disk.h
> -CLEANFILES += xenconfig/xen_xl_disk.h xenconfig/xen_xl_disk.c
> -
> -XENXLDISKPARSER_SOURCES = xenconfig/xen_xl_disk.l
> -
>  XENCONFIG_SOURCES =                                          \
>               xenconfig/xenxs_private.h                       \
> -             xenconfig/xen_common.c xenconfig/xen_common.h   \
> +             xenconfig/xen_common.c xenconfig/xen_common.h   \
>               xenconfig/xen_sxpr.c xenconfig/xen_sxpr.h       \
> -             xenconfig/xen_xm.c xenconfig/xen_xm.h           \
> -             xenconfig/xen_xl.c xenconfig/xen_xl.h           \
> -             xenconfig/xen_xl_disk_i.h
> +             xenconfig/xen_xm.c xenconfig/xen_xm.h
>  
>  pkgdata_DATA =       cpu/cpu_map.xml
>  
> @@ -1070,19 +1059,10 @@ libvirt_vmx_la_SOURCES = $(VMX_SOURCES)
>  endif WITH_VMX
>  
>  if WITH_XENCONFIG
> -# Flex generated XL disk parser needs to be compiled without WARN_FLAGS
> -# Add the generated object to its own library to control CFLAGS
> -noinst_LTLIBRARIES += libvirt_xenxldiskparser.la
> -libvirt_xenxldiskparser_la_CFLAGS = \
> -             -I$(srcdir)/conf $(AM_CFLAGS) -Wno-unused-parameter
> -libvirt_xenxldiskparser_la_SOURCES = \
> -     $(XENXLDISKPARSER_SOURCES)
> -
>  noinst_LTLIBRARIES += libvirt_xenconfig.la
>  libvirt_la_BUILT_LIBADD += libvirt_xenconfig.la
>  libvirt_xenconfig_la_CFLAGS = \
>               -I$(srcdir)/conf $(AM_CFLAGS)
> -libvirt_xenconfig_la_LIBADD = libvirt_xenxldiskparser.la
>  libvirt_xenconfig_la_SOURCES = $(XENCONFIG_SOURCES)
>  endif WITH_XENCONFIG
>  
> @@ -1844,7 +1824,6 @@ EXTRA_DIST +=                                           
>         \
>               $(VBOX_DRIVER_EXTRA_DIST)                       \
>               $(VMWARE_DRIVER_SOURCES)                        \
>               $(XENCONFIG_SOURCES)                            \
> -             $(XENXLDISKPARSER_SOURCES)                      \
>               $(ACCESS_DRIVER_POLKIT_POLICY)
>  
>  check-local: check-augeas
> diff --git a/src/libvirt_xenconfig.syms b/src/libvirt_xenconfig.syms
> index 3e2e5d6..6541685 100644
> --- a/src/libvirt_xenconfig.syms
> +++ b/src/libvirt_xenconfig.syms
> @@ -16,10 +16,6 @@ xenParseSxprChar;
>  xenParseSxprSound;
>  xenParseSxprString;
>  
> -#xenconfig/xen_xl.h
> -xenFormatXL;
> -xenParseXL;
> -
>  # xenconfig/xen_xm.h
>  xenFormatXM;
>  xenParseXM;
> diff --git a/src/xenconfig/xen_common.c b/src/xenconfig/xen_common.c
> index a2a1474..b40a722 100644
> --- a/src/xenconfig/xen_common.c
> +++ b/src/xenconfig/xen_common.c
> @@ -1812,8 +1812,7 @@ xenFormatVfb(virConfPtr conf, virDomainDefPtr def, int 
> xendConfigVersion)
>  {
>      int hvm = STREQ(def->os.type, "hvm") ? 1 : 0;
>  
> -    if (def->ngraphics == 1 &&
> -        def->graphics[0]->type != VIR_DOMAIN_GRAPHICS_TYPE_SPICE) {
> +    if (def->ngraphics == 1) {
>          if (hvm || (xendConfigVersion < XEND_CONFIG_MIN_VERS_PVFB_NEWCONF)) {
>              if (def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_SDL) {
>                  if (xenConfigSetInt(conf, "sdl", 1) < 0)
> diff --git a/src/xenconfig/xen_xl.c b/src/xenconfig/xen_xl.c
> deleted file mode 100644
> index 8d1d2a7..0000000
> --- a/src/xenconfig/xen_xl.c
> +++ /dev/null
> @@ -1,499 +0,0 @@
> -/*
> - * xen_xl.c: Xen XL parsing functions
> - *
> - * This library is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU Lesser General Public
> - * License as published by the Free Software Foundation; either
> - * version 2.1 of the License, or (at your option) any later version.
> - *
> - * This library is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> - * Lesser General Public License for more details.
> - *
> - * You should have received a copy of the GNU Lesser General Public
> - * License along with this library.  If not, see
> - * <http://www.gnu.org/licenses/>.
> - *
> - * Author: Kiarie Kahurani <davidkiar...@gmail.com>
> - */
> -
> -#include <config.h>
> -
> -#include "virconf.h"
> -#include "virerror.h"
> -#include "domain_conf.h"
> -#include "viralloc.h"
> -#include "virstring.h"
> -#include "xen_xl.h"
> -#include "xen_xl_disk.h"
> -#include "xen_xl_disk_i.h"
> -
> -#define VIR_FROM_THIS VIR_FROM_NONE
> -
> -
> -static int
> -xenParseXLSpice(virConfPtr conf, virDomainDefPtr def)
> -{
> -    virDomainGraphicsDefPtr graphics = NULL;
> -    unsigned long port;
> -    char *listenAddr = NULL;
> -    int val;
> -
> -    if (STREQ(def->os.type, "hvm")) {
> -        if (xenConfigGetBool(conf, "spice", &val, 0) < 0)
> -            return -1;
> -
> -        if (val) {
> -            if (VIR_ALLOC(graphics) < 0)
> -                return -1;
> -
> -            graphics->type = VIR_DOMAIN_GRAPHICS_TYPE_SPICE;
> -            if (xenConfigCopyStringOpt(conf, "spicehost", &listenAddr) < 0)
> -                goto cleanup;
> -            if (listenAddr &&
> -                virDomainGraphicsListenSetAddress(graphics, 0, listenAddr,
> -                                                  -1, true) < 0) {
> -                goto cleanup;
> -            }
> -            VIR_FREE(listenAddr);
> -
> -            if (xenConfigGetULong(conf, "spicetls_port", &port, 0) < 0)
> -                goto cleanup;
> -            graphics->data.spice.tlsPort = (int)port;
> -
> -            if (xenConfigGetULong(conf, "spiceport", &port, 0) < 0)
> -                goto cleanup;
> -
> -            graphics->data.spice.port = (int)port;
> -
> -            if (!graphics->data.spice.tlsPort &&
> -                !graphics->data.spice.port)
> -            graphics->data.spice.autoport = 1;
> -
> -            if (xenConfigGetBool(conf, "spicedisable_ticketing", &val, 0) < 
> 0)
> -                goto cleanup;
> -            if (val) {
> -                if (xenConfigCopyStringOpt(conf, "spicepasswd",
> -                                           
> &graphics->data.spice.auth.passwd) < 0)
> -                    goto cleanup;
> -            }
> -
> -            if (xenConfigGetBool(conf, "spiceagent_mouse",
> -                                 &graphics->data.spice.mousemode, 0) < 0)
> -                goto cleanup;
> -            if (xenConfigGetBool(conf, "spicedvagent", &val, 0) < 0)
> -                goto cleanup;
> -            if (val) {
> -                if (xenConfigGetBool(conf, "spice_clipboard_sharing",
> -                                     &graphics->data.spice.copypaste,
> -                                     0) < 0)
> -                    goto cleanup;
> -            }
> -
> -            if (VIR_ALLOC_N(def->graphics, 1) < 0)
> -                goto cleanup;
> -            def->graphics[0] = graphics;
> -            def->ngraphics = 1;
> -        }
> -    }
> -
> -    return 0;
> -
> - cleanup:
> -    virDomainGraphicsDefFree(graphics);
> -    return -1;
> -}
> -
> -
> -void
> -xenXLDiskParserError(xenXLDiskParserContext *dpc,
> -                     const char *erroneous,
> -                     const char *message)
> -{
> -    virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
> -                   _("disk config %s not supported: %s"),
> -                   erroneous, message);
> -
> -    if (!dpc->err)
> -        dpc->err = EINVAL;
> -}
> -
> -
> -static int
> -xenXLDiskParserPrep(xenXLDiskParserContext *dpc,
> -                    const char *spec,
> -                    virDomainDiskDefPtr disk)
> -{
> -    int err;
> -
> -    dpc->spec = spec;
> -    dpc->disk = disk;
> -    dpc->access_set = 0;
> -
> -    err = xl_disk_lex_init_extra(dpc, &dpc->scanner);
> -    if (err)
> -        goto fail;
> -
> -    dpc->buf = xl_disk__scan_bytes(spec, strlen(spec), dpc->scanner);
> -    if (!dpc->buf) {
> -        err = ENOMEM;
> -        goto fail;
> -    }
> -
> -    return 0;
> -
> - fail:
> -    virReportSystemError(errno, "%s",
> -                         _("failed to initialize disk configuration 
> parser"));
> -    return err;
> -}
> -
> -
> -static void
> -xenXLDiskParserCleanup(xenXLDiskParserContext *dpc)
> -{
> -    if (dpc->buf) {
> -        xl_disk__delete_buffer(dpc->buf, dpc->scanner);
> -        dpc->buf = NULL;
> -    }
> -
> -    if (dpc->scanner) {
> -        xl_disk_lex_destroy(dpc->scanner);
> -        dpc->scanner = NULL;
> -    }
> -}
> -
> -
> -/*
> - * positional parameters
> - *     (If the <diskspec> strings are not separated by "="
> - *     the  string is split following ',' and assigned to
> - *     the following options in the following order)
> - *     target,format,vdev,access
> - * ================================================================
> - *
> - * The parameters below cannot be specified as positional parameters:
> - *
> - * other parameters
> - *    devtype = <devtype>
> - *    backendtype = <backend-type>
> - * parameters not taken care of
> - *    backend = <domain-name>
> - *    script = <script>
> - *    direct-io-safe
> - *
> - * ================================================================
> - * The parser does not take any deprecated parameters
> - *
> - * For more information refer to /xen/docs/misc/xl-disk-configuration.txt
> - */
> -static int
> -xenParseXLDisk(virConfPtr conf, virDomainDefPtr def)
> -{
> -    virConfValuePtr list = virConfGetValue(conf, "disk");
> -    xenXLDiskParserContext dpc;
> -    virDomainDiskDefPtr disk;
> -
> -    memset(&dpc, 0, sizeof(dpc));
> -
> -    if (list && list->type == VIR_CONF_LIST) {
> -        list = list->list;
> -        while (list) {
> -            char *disk_spec = list->str;
> -            const char *driver;
> -
> -            if ((list->type != VIR_CONF_STRING) || (list->str == NULL))
> -                goto skipdisk;
> -
> -            if (!(disk = virDomainDiskDefNew()))
> -                    return -1;
> -
> -            disk->src->readonly = 0;
> -            disk->src->format = VIR_STORAGE_FILE_LAST;
> -
> -            if (xenXLDiskParserPrep(&dpc, disk_spec, disk))
> -                goto fail;
> -
> -            xl_disk_lex(dpc.scanner);
> -
> -            if (dpc.err)
> -                goto fail;
> -
> -            if (disk->src->format == VIR_STORAGE_FILE_LAST)
> -                disk->src->format = VIR_STORAGE_FILE_RAW;
> -
> -            if (disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM) {
> -                disk->removable = true;
> -                disk->src->readonly = true;
> -                if (virDomainDiskSetDriver(disk, "qemu") < 0)
> -                    goto fail;
> -
> -                virDomainDiskSetType(disk, VIR_STORAGE_TYPE_FILE);
> -                if (!disk->src->path || STREQ(disk->src->path, ""))
> -                    disk->src->format = VIR_STORAGE_FILE_NONE;
> -            }
> -
> -            if (STRPREFIX(disk->dst, "xvd") || !STREQ(def->os.type, "hvm"))
> -                disk->bus = VIR_DOMAIN_DISK_BUS_XEN;
> -            else if (STRPREFIX(disk->dst, "sd"))
> -                disk->bus = VIR_DOMAIN_DISK_BUS_SCSI;
> -            else
> -                disk->bus = VIR_DOMAIN_DISK_BUS_IDE;
> -
> -            driver = virDomainDiskGetDriver(disk);
> -            if (!driver) {
> -                switch (disk->src->format) {
> -                case VIR_STORAGE_FILE_QCOW:
> -                case VIR_STORAGE_FILE_QCOW2:
> -                case VIR_STORAGE_FILE_VHD:
> -                    driver = "qemu";
> -                    if (virDomainDiskSetDriver(disk, "qemu") < 0)
> -                        goto fail;
> -                    break;
> -                default:
> -                    driver = "phy";
> -                    if (virDomainDiskSetDriver(disk, "phy") < 0)
> -                        goto fail;
> -                }
> -            }
> -
> -            if (STREQ(driver, "phy"))
> -                virDomainDiskSetType(disk, VIR_STORAGE_TYPE_BLOCK);
> -            else
> -                virDomainDiskSetType(disk, VIR_STORAGE_TYPE_FILE);
> -
> -            if (VIR_APPEND_ELEMENT(def->disks, def->ndisks, disk) < 0)
> -                goto fail;
> -
> -        skipdisk:
> -            list = list->next;
> -            xenXLDiskParserCleanup(&dpc);
> -        }
> -    }
> -    return 0;
> -
> - fail:
> -    xenXLDiskParserCleanup(&dpc);
> -    virDomainDiskDefFree(disk);
> -    return -1;
> -}
> -
> -
> -virDomainDefPtr
> -xenParseXL(virConfPtr conf, virCapsPtr caps, int xendConfigVersion)
> -{
> -    virDomainDefPtr def = NULL;
> -
> -    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 (xenParseXLDisk(conf, def) < 0)
> -        goto cleanup;
> -
> -    if (xenParseXLSpice(conf, def) < 0)
> -        goto cleanup;
> -
> -    return def;
> -
> - cleanup:
> -    virDomainDefFree(def);
> -    return NULL;
> -}
> -
> -
> -static int
> -xenFormatXLDisk(virConfValuePtr list, virDomainDiskDefPtr disk)
> -{
> -    virBuffer buf = VIR_BUFFER_INITIALIZER;
> -    virConfValuePtr val, tmp;
> -    const char *src = virDomainDiskGetSource(disk);
> -    int format = virDomainDiskGetFormat(disk);
> -
> -    /* target */
> -    virBufferAsprintf(&buf, "%s,", src);
> -    /* format */
> -    switch (format) {
> -        case VIR_STORAGE_FILE_RAW:
> -            virBufferAddLit(&buf, "raw,");
> -            break;
> -        case VIR_STORAGE_FILE_VHD:
> -            virBufferAddLit(&buf, "xvhd,");
> -            break;
> -        case VIR_STORAGE_FILE_QCOW:
> -            virBufferAddLit(&buf, "qcow,");
> -            break;
> -        case VIR_STORAGE_FILE_QCOW2:
> -            virBufferAddLit(&buf, "qcow2,");
> -            break;
> -      /* set default */
> -        default:
> -            virBufferAddLit(&buf, "raw,");
> -    }
> -
> -    /* device */
> -    virBufferAdd(&buf, disk->dst, -1);
> -
> -    virBufferAddLit(&buf, ",");
> -
> -    if (disk->src->readonly)
> -        virBufferAddLit(&buf, "r,");
> -    else if (disk->src->shared)
> -        virBufferAddLit(&buf, "!,");
> -    else
> -        virBufferAddLit(&buf, "w,");
> -    if (disk->transient) {
> -        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
> -                       _("transient disks not supported yet"));
> -        goto cleanup;
> -    }
> -
> -    if (disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM)
> -        virBufferAddLit(&buf, "devtype=cdrom");
> -
> -    if (virBufferCheckError(&buf) < 0)
> -        goto cleanup;
> -
> -    if (VIR_ALLOC(val) < 0)
> -        goto cleanup;
> -
> -    val->type = VIR_CONF_STRING;
> -    val->str = virBufferContentAndReset(&buf);
> -    tmp = list->list;
> -    while (tmp && tmp->next)
> -        tmp = tmp->next;
> -    if (tmp)
> -        tmp->next = val;
> -    else
> -        list->list = val;
> -    return 0;
> -
> - cleanup:
> -    virBufferFreeAndReset(&buf);
> -    return -1;
> -}
> -
> -
> -static int
> -xenFormatXLDomainDisks(virConfPtr conf, virDomainDefPtr def)
> -{
> -    virConfValuePtr diskVal = NULL;
> -    size_t i = 0;
> -
> -    if (VIR_ALLOC(diskVal) < 0)
> -        return -1;
> -
> -    diskVal->type = VIR_CONF_LIST;
> -    diskVal->list = NULL;
> -
> -    for (i = 0; i < def->ndisks; i++) {
> -        if (def->disks[i]->device == VIR_DOMAIN_DISK_DEVICE_FLOPPY)
> -            continue;
> -        if (xenFormatXLDisk(diskVal, def->disks[i]) < 0)
> -
> -                goto cleanup;
> -    }
> -
> -    if (diskVal->list != NULL) {
> -        int ret = virConfSetValue(conf, "disk", diskVal);
> -        diskVal = NULL;
> -        if (ret < 0)
> -            goto cleanup;
> -    }
> -
> -    return 0;
> -
> - cleanup:
> -    virConfFreeValue(diskVal);
> -    return 0;
> -}
> -
> -
> -static int
> -xenFormatXLSpice(virConfPtr conf, virDomainDefPtr def)
> -{
> -    const char *listenAddr = NULL;
> -
> -    if (STREQ(def->os.type, "hvm")) {
> -        if (def->graphics[0]->type == VIR_DOMAIN_GRAPHICS_TYPE_SPICE) {
> -            /* set others to false but may not be necessary */
> -            if (xenConfigSetInt(conf, "sdl", 0) < 0)
> -                return -1;
> -
> -            if (xenConfigSetInt(conf, "vnc", 0) < 0)
> -                return -1;
> -
> -            if (xenConfigSetInt(conf, "spice", 1) < 0)
> -                return -1;
> -
> -            if (xenConfigSetInt(conf, "spiceport",
> -                                def->graphics[0]->data.spice.port) < 0)
> -                return -1;
> -
> -            if (xenConfigSetInt(conf, "spicetls_port",
> -                                def->graphics[0]->data.spice.tlsPort) < 0)
> -                return -1;
> -
> -            if (def->graphics[0]->data.spice.auth.passwd) {
> -                if (xenConfigSetInt(conf, "spicedisable_ticketing", 1) < 0)
> -                    return -1;
> -
> -                if (def->graphics[0]->data.spice.auth.passwd &&
> -                    xenConfigSetString(conf, "spicepasswd",
> -                                def->graphics[0]->data.spice.auth.passwd) < 
> 0)
> -                    return -1;
> -            }
> -
> -            listenAddr = virDomainGraphicsListenGetAddress(def->graphics[0], 
> 0);
> -            if (listenAddr &&
> -                xenConfigSetString(conf, "spicehost", listenAddr) < 0)
> -                return -1;
> -
> -            if (xenConfigSetInt(conf, "spicemouse_mouse",
> -                                def->graphics[0]->data.spice.mousemode) < 0)
> -                return -1;
> -
> -            if (def->graphics[0]->data.spice.copypaste) {
> -                if (xenConfigSetInt(conf, "spicedvagent", 1) < 0)
> -                    return -1;
> -                if (xenConfigSetInt(conf, "spice_clipboard_sharing",
> -                                def->graphics[0]->data.spice.copypaste) < 0)
> -                return -1;
> -            }
> -        }
> -    }
> -
> -    return 0;
> -}
> -
> -
> -virConfPtr
> -xenFormatXL(virDomainDefPtr def, virConnectPtr conn, int xendConfigVersion)
> -{
> -    virConfPtr conf = NULL;
> -
> -    if (!(conf = virConfNew()))
> -        goto cleanup;
> -
> -    if (xenFormatConfigCommon(conf, def, conn, xendConfigVersion) < 0)
> -        goto cleanup;
> -
> -    if (xenFormatXLDomainDisks(conf, def) < 0)
> -        goto cleanup;
> -
> -    if (xenFormatXLSpice(conf, def) < 0)
> -        goto cleanup;
> -
> -    return conf;
> -
> - cleanup:
> -    if (conf)
> -        virConfFree(conf);
> -    return NULL;
> -}
> diff --git a/src/xenconfig/xen_xl.h b/src/xenconfig/xen_xl.h
> deleted file mode 100644
> index 536e9b7..0000000
> --- a/src/xenconfig/xen_xl.h
> +++ /dev/null
> @@ -1,33 +0,0 @@
> -/*
> - * xen_xl.h: Xen XL parsing functions
> - *
> - * This library is free software; you can redistribute it and/or
> - * modify it under the terms of the GNU Lesser General Public
> - * License as published by the Free Software Foundation; either
> - * version 2.1 of the License, or (at your option) any later version.
> - *
> - * This library is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> - * Lesser General Public License for more details.
> - *
> - * You should have received a copy of the GNU Lesser General Public
> - * License along with this library.  If not, see
> - * <http://www.gnu.org/licenses/>.
> - *
> - * Author: Kiarie Kahurani<davidkiar...@gmail.com>
> - */
> -
> -#ifndef __VIR_XEN_XL_H__
> -# define __VIR_XEN_XL_H__
> -
> -# include "virconf.h"
> -# include "domain_conf.h"
> -# include "xen_common.h"
> -
> -virDomainDefPtr xenParseXL(virConfPtr conn, virCapsPtr caps,
> -                           int xendConfigVersion);
> -virConfPtr xenFormatXL(virDomainDefPtr def,
> -                       virConnectPtr, int xendConfigVersion);
> -
> -#endif /* __VIR_XEN_XL_H__ */
> diff --git a/src/xenconfig/xen_xl_disk.l b/src/xenconfig/xen_xl_disk.l
> deleted file mode 100644
> index 164aa32..0000000
> --- a/src/xenconfig/xen_xl_disk.l
> +++ /dev/null
> @@ -1,256 +0,0 @@
> -/*
> - * xen_xl_disk.l - parser for disk specification strings
> - *
> - * Copyright (C) 2011      Citrix Ltd.
> - * Author Ian Jackson <ian.jack...@eu.citrix.com>
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU Lesser General Public License as published
> - * by the Free Software Foundation; version 2.1 only. with the special
> - * exception on linking described in file LICENSE.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU Lesser General Public License for more details.
> - */
> -
> -/*
> - * Parsing the old xm/xend/xl-4.1 disk specs is a tricky problem,
> - * because the target string might in theory contain "," which is the
> - * delimiter we use for stripping off things on the RHS, and ":",
> - * which is the delimiter we use for stripping off things on the LHS.
> - *
> - * In this parser we do not support such target strings in the old
> - * syntax; if the target string has to contain "," or ":" the new
> - * syntax's "target=" should be used.
> - */
> -%{
> -# include <config.h>
> -
> -# include <stdio.h>
> -
> -# include "viralloc.h"
> -# include "virstoragefile.h"
> -# include "virstring.h"
> -# include "domain_conf.h"
> -# include "xen_xl.h"
> -# include "xen_xl_disk_i.h"
> -
> -#define YY_NO_INPUT
> -#define VIR_FROM_THIS VIR_FROM_NONE
> -
> -/* Some versions of flex have a bug (Fedora bugzilla 612465) which causes
> - * it to fail to declare these functions, which it defines.  So declare
> - * them ourselves.  Hopefully we won't have to simultaneously support
> - * a flex version which declares these differently somehow. */
> -int xl_disk_lexget_column(yyscan_t yyscanner);
> -void xl_disk_lexset_column(int  column_no, yyscan_t yyscanner);
> -
> -
> -/*----- useful macros and functions used in actions -----
> - * we use macros in the actual rules to keep the actions short
> - * and particularly to avoid repeating boilerplate values such as
> - * DPC->disk, yytext, etc. */
> -
> -/* For actions whose patterns contain '=', finds the start of the value */
> -#define FROMEQUALS (strchr(yytext,'=')+1)
> -
> -/* Chops the delimiter off, modifying yytext and yyleng. */
> -#define STRIP(delim) do{                                                \
> -     if (yyleng>0 && yytext[yyleng-1]==(delim))                      \
> -         yytext[--yyleng] = 0;                                       \
> -    }while(0)
> -
> -/* Sets a string value, checking it hasn't been set already. */
> -#define SAVESTRING(what,loc,val) do{                                 \
> -     savestring(DPC, what " respecified", &DPC->disk->loc, (val));   \
> -    }while(0)
> -
> -
> -static void
> -savestring(xenXLDiskParserContext *dpc,
> -           const char *what_respecified,
> -           char **update,
> -           const char *value)
> -{
> -    if (*update) {
> -        if (**update) {
> -            xenXLDiskParserError(dpc, value, what_respecified);
> -            return;
> -        }
> -
> -        VIR_FREE(*update); /* do not complain about overwriting empty 
> strings */
> -    }
> -
> -    ignore_value(VIR_STRDUP(*update, value));
> -}
> -
> -#define DPC dpc /* our convention in lexer helper functions */
> -
> -/* Sets ->readwrite from the string. */
> -static void
> -setaccess(xenXLDiskParserContext *dpc, const char *str)
> -{
> -    if (STREQ(str, "rw") || STREQ(str, "w")) {
> -        dpc->disk->src->readonly = 0;
> -    } else if (STREQ(str, "r") || STREQ(str, "ro")) {
> -        dpc->disk->src->readonly = 1;
> -    } else if (STREQ(str, "w!") || STREQ(str, "!")) {
> -        dpc->disk->src->readonly = 0;
> -     dpc->disk->src->shared = 1;
> -    } else {
> -        xenXLDiskParserError(dpc, str, "unknown value for access");
> -    }
> -    dpc->access_set = 1;
> -}
> -
> -/* Sets ->format from the string.  IDL should provide something for this. */
> -static void
> -setformat(xenXLDiskParserContext *dpc, const char *str)
> -{
> -    if (STREQ(str, "") || STREQ(str, "raw"))
> -        virDomainDiskSetFormat(dpc->disk, VIR_STORAGE_FILE_RAW);
> -    else if (STREQ(str, "qcow"))
> -        virDomainDiskSetFormat(dpc->disk, VIR_STORAGE_FILE_QCOW);
> -    else if (STREQ(str, "qcow2"))
> -        virDomainDiskSetFormat(dpc->disk, VIR_STORAGE_FILE_QCOW2);
> -    else if (STREQ(str, "vhd"))
> -        virDomainDiskSetFormat(dpc->disk, VIR_STORAGE_FILE_VHD);
> -    else
> -        xenXLDiskParserError(dpc, str, "unknown value for format");
> -}
> -
> -
> -/* Sets ->backend from the string.  IDL should provide something for this. */
> -static void
> -setdrivertype(xenXLDiskParserContext *dpc, const char *str)
> -{
> -    if (STREQ(str, "phy"))
> -        ignore_value(virDomainDiskSetDriver(dpc->disk, "phy"));
> -    else if (STREQ(str, "tap"))
> -        ignore_value(virDomainDiskSetDriver(dpc->disk, "tap"));
> -    else if (STREQ(str, "file") || STREQ(str, ""))
> -        ignore_value(virDomainDiskSetDriver(dpc->disk, "qemu"));
> -    else
> -        xenXLDiskParserError(dpc, str, "unknown value for backendtype");
> -}
> -
> -
> -/* Handles a vdev positional parameter which includes a devtype. */
> -static int
> -vdev_and_devtype(xenXLDiskParserContext *dpc, char *str)
> -{
> -    /* returns 1 if it was <vdev>:<devtype>, 0 (doing nothing) otherwise */
> -    char *colon = strrchr(str, ':');
> -    if (!colon)
> -        return 0;
> -
> -    *colon++ = 0;
> -    SAVESTRING("vdev", dst, str);
> -
> -    if (STREQ(colon,"cdrom")) {
> -        DPC->disk->device = VIR_DOMAIN_DISK_DEVICE_CDROM;
> -    } else if (STREQ(colon, "disk")) {
> -        DPC->disk->device = VIR_DOMAIN_DISK_DEVICE_DISK;
> -    } else {
> -        xenXLDiskParserError(DPC, colon, "unknown deprecated type");
> -    }
> -    return 1;
> -}
> -
> -#undef DPC /* needs to be defined differently the actual lexer */
> -#define DPC ((xenXLDiskParserContext*)yyextra)
> -
> -%}
> -
> -%option warn
> -%option nodefault
> -%option batch
> -%option 8bit
> -%option noyywrap
> -%option reentrant
> -%option nounput
> -
> -%x LEXERR
> -
> -%%
> -
> - /*----- the scanner rules which do the parsing -----*/
> -
> -[ \t\n]+/([^ \t\n].*)? { /* ignore whitespace before parameters */ }
> -
> - /* ordinary parameters setting enums or strings */
> -
> -format=[^,]*,?       { STRIP(','); setformat(DPC, FROMEQUALS); }
> -
> -cdrom,?              { DPC->disk->device = VIR_DOMAIN_DISK_DEVICE_CDROM; }
> -devtype=cdrom,?      { DPC->disk->device = VIR_DOMAIN_DISK_DEVICE_CDROM; }
> -devtype=disk,?       { DPC->disk->device = VIR_DOMAIN_DISK_DEVICE_DISK; }
> -devtype=[^,]*,?      { xenXLDiskParserError(DPC, yytext,"unknown value for 
> type"); }
> -
> -access=[^,]*,?       { STRIP(','); setaccess(DPC, FROMEQUALS); }
> -backendtype=[^,]*,? { STRIP(','); setdrivertype(DPC, FROMEQUALS); }
> -
> -vdev=[^,]*,? { STRIP(','); SAVESTRING("vdev", dst, FROMEQUALS); }
> -
> - /* the target magic parameter, eats the rest of the string */
> -
> -target=.*    { STRIP(','); SAVESTRING("target", src->path, FROMEQUALS); }
> -
> - /* unknown parameters */
> -
> -[a-z][-a-z0-9]*=[^,],? { xenXLDiskParserError(DPC, yytext, "unknown 
> parameter"); }
> -
> -  /* the "/.*" in these patterns ensures that they count as if they
> -   * matched the whole string, so these patterns take precedence */
> -
> -(raw|qcow2?|vhd):/.* {
> -                    STRIP(':');
> -                    DPC->had_depr_prefix=1;
> -                    setformat(DPC, yytext);
> -                 }
> -
> -tapdisk:/.*  { DPC->had_depr_prefix=1; }
> -tap2?:/.*    { DPC->had_depr_prefix=1; }
> -aio:/.*              { DPC->had_depr_prefix=1; }
> -ioemu:/.*    { DPC->had_depr_prefix=1; }
> -file:/.*     { DPC->had_depr_prefix=1; }
> -phy:/.*              { DPC->had_depr_prefix=1; }
> -[a-z][a-z0-9]*:/([^a-z0-9].*)? {
> -               xenXLDiskParserError(DPC, yytext, "unknown deprecated disk 
> prefix");
> -               return 0;
> -             }
> -
> - /* positional parameters */
> -
> -[^=,]*,|[^=,]+,?  {
> -    STRIP(',');
> -
> -    if (DPC->err) {
> -        /* previous errors may just lead to subsequent ones */
> -    } else if (!DPC->disk->src->path) {
> -        SAVESTRING("target", src->path, yytext);
> -    } else if (DPC->disk->src->format == VIR_STORAGE_FILE_LAST){
> -        setformat(DPC, yytext);
> -    }
> -     else if (!DPC->disk->dst) {
> -        if (!vdev_and_devtype(DPC, yytext))
> -            SAVESTRING("vdev", dst, yytext);
> -    } else if (!DPC->access_set) {
> -        DPC->access_set = 1;
> -        setaccess(DPC, yytext);
> -    } else {
> -        xenXLDiskParserError(DPC, yytext, "too many positional parameters");
> -        return 0; /* don't print any more errors */
> -    }
> -}
> -
> -. {
> -    BEGIN(LEXERR);
> -    yymore();
> -}
> -<LEXERR>.* {
> -    xenXLDiskParserError(DPC, yytext, "bad disk syntax");
> -    return 0;
> -}
> diff --git a/src/xenconfig/xen_xl_disk_i.h b/src/xenconfig/xen_xl_disk_i.h
> deleted file mode 100644
> index 063dedf..0000000
> --- a/src/xenconfig/xen_xl_disk_i.h
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -/*
> - * xen_xl_disk_i.h - common header for disk spec parser
> - *
> - * Copyright (C) 2011      Citrix Ltd.
> - * Author Ian Jackson <ian.jack...@eu.citrix.com>
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU Lesser General Public License as published
> - * by the Free Software Foundation; version 2.1 only. with the special
> - * exception on linking described in file LICENSE.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU Lesser General Public License for more details.
> - */
> -
> -#ifndef __VIR_XEN_XL_DISK_I_H__
> -# define __VIR_XEN_XL_DISK_I_H__
> -
> -# include "virconf.h"
> -# include "domain_conf.h"
> -
> -
> -typedef struct {
> -    int err;
> -    void *scanner;
> -    YY_BUFFER_STATE buf;
> -    virDomainDiskDefPtr disk;
> -    int access_set;
> -    int had_depr_prefix;
> -    const char *spec;
> -} xenXLDiskParserContext;
> -
> -void xenXLDiskParserError(xenXLDiskParserContext *dpc,
> -                          const char *erroneous,
> -                          const char *message);
> -
> -#endif /* __VIR_XEN_XL_DISK_I_H__ */
> 

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to