[libvirt] [PATCH 09/12] Revert "src/xenconfig: Xen-xl parser"
John Ferlan
jferlan at redhat.com
Mon Jan 12 14:51:33 UTC 2015
On 01/10/2015 12:03 AM, Jim Fehlig wrote:
> This reverts commit 2c78051a14acfb7aba078d569b1632dfe0ca0853.
>
> Conflicts:
> src/Makefile.am
>
> Signed-off-by: Jim Fehlig <jfehlig at 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 <davidkiarie4 at 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<davidkiarie4 at 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.jackson at 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.jackson at 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__ */
>
More information about the libvir-list
mailing list