[libvirt] [PATCH v2] libxl: include a XLU_Config in _libxlDriverConfig

Upcoming changes for vscsi will use libxlutil.so to prepare the configuration for libxl. The helpers needs a xlu struct for logging. Provide one and reuse the existing output as log target. Signed-off-by: Olaf Hering <olaf@aepfle.de> Cc: Jim Fehlig <jfehlig@suse.com> --- v2: - call xlu_cfg_destroy, unconditionally - fix cpp indention in libxl_conf.h src/libxl/libxl_conf.c | 7 +++++++ src/libxl/libxl_conf.h | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index fccada5..e1bc0f6 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -92,6 +92,7 @@ libxlDriverConfigDispose(void *obj) virObjectUnref(cfg->caps); libxl_ctx_free(cfg->ctx); xtl_logger_destroy(cfg->logger); + xlu_cfg_destroy(cfg->xlu); if (cfg->logger_file) VIR_FORCE_FCLOSE(cfg->logger_file); @@ -1468,6 +1469,12 @@ libxlDriverConfigNew(void) goto error; } + cfg->xlu = xlu_cfg_init(cfg->logger_file, "libvirt"); + if (!cfg->xlu) { + VIR_ERROR(_("cannot create xlu for libxenlight, disabling driver")); + goto error; + } + if (libxl_ctx_alloc(&cfg->ctx, LIBXL_VERSION, 0, cfg->logger)) { VIR_ERROR(_("cannot initialize libxenlight context, probably not " "running in a Xen Dom0, disabling driver")); diff --git a/src/libxl/libxl_conf.h b/src/libxl/libxl_conf.h index 0a1c0db..24fa960 100644 --- a/src/libxl/libxl_conf.h +++ b/src/libxl/libxl_conf.h @@ -27,6 +27,12 @@ # define LIBXL_CONF_H # include <libxl.h> +# ifdef HAVE_LIBXLUTIL_H +# include <libxlutil.h> +# else +typedef struct XLU_Config XLU_Config; +XLU_Config *xlu_cfg_init(FILE *report, const char *report_filename); +# endif # include "internal.h" # include "libvirt_internal.h" @@ -92,6 +98,7 @@ struct _libxlDriverConfig { /* log stream for driver-wide libxl ctx */ FILE *logger_file; xentoollog_logger *logger; + XLU_Config *xlu; /* libxl ctx for driver wide ops; getVersion, getNodeInfo, ... */ libxl_ctx *ctx;

Olaf Hering wrote:
Upcoming changes for vscsi will use libxlutil.so to prepare the configuration for libxl. The helpers needs a xlu struct for logging.
s/needs a/need an/
Provide one and reuse the existing output as log target.
Signed-off-by: Olaf Hering <olaf@aepfle.de> Cc: Jim Fehlig <jfehlig@suse.com> ---
v2: - call xlu_cfg_destroy, unconditionally - fix cpp indention in libxl_conf.h
src/libxl/libxl_conf.c | 7 +++++++ src/libxl/libxl_conf.h | 7 +++++++ 2 files changed, 14 insertions(+)
diff --git a/src/libxl/libxl_conf.c b/src/libxl/libxl_conf.c index fccada5..e1bc0f6 100644 --- a/src/libxl/libxl_conf.c +++ b/src/libxl/libxl_conf.c @@ -92,6 +92,7 @@ libxlDriverConfigDispose(void *obj) virObjectUnref(cfg->caps); libxl_ctx_free(cfg->ctx); xtl_logger_destroy(cfg->logger); + xlu_cfg_destroy(cfg->xlu); if (cfg->logger_file) VIR_FORCE_FCLOSE(cfg->logger_file);
@@ -1468,6 +1469,12 @@ libxlDriverConfigNew(void) goto error; }
+ cfg->xlu = xlu_cfg_init(cfg->logger_file, "libvirt"); + if (!cfg->xlu) { + VIR_ERROR(_("cannot create xlu for libxenlight, disabling driver")); + goto error; + } + if (libxl_ctx_alloc(&cfg->ctx, LIBXL_VERSION, 0, cfg->logger)) { VIR_ERROR(_("cannot initialize libxenlight context, probably not " "running in a Xen Dom0, disabling driver")); diff --git a/src/libxl/libxl_conf.h b/src/libxl/libxl_conf.h index 0a1c0db..24fa960 100644 --- a/src/libxl/libxl_conf.h +++ b/src/libxl/libxl_conf.h @@ -27,6 +27,12 @@ # define LIBXL_CONF_H
# include <libxl.h> +# ifdef HAVE_LIBXLUTIL_H +# include <libxlutil.h> +# else +typedef struct XLU_Config XLU_Config; +XLU_Config *xlu_cfg_init(FILE *report, const char *report_filename);
You forgot to add xlu_cfg_destroy here. Also, libvirt style seems to prefer the explicit 'extern', e.g. extern XLU_Config *xlu_cfg_init(FILE *report, const char *report_filename); Regards, Jim
+# endif
# include "internal.h" # include "libvirt_internal.h" @@ -92,6 +98,7 @@ struct _libxlDriverConfig { /* log stream for driver-wide libxl ctx */ FILE *logger_file; xentoollog_logger *logger; + XLU_Config *xlu; /* libxl ctx for driver wide ops; getVersion, getNodeInfo, ... */ libxl_ctx *ctx;
participants (2)
-
Jim Fehlig
-
Olaf Hering