This is just rearranging the data between structs. There should be no
functional change.
---
src/launch-libvirt.c | 41 +++++++++++++++++++++++------------------
1 file changed, 23 insertions(+), 18 deletions(-)
diff --git a/src/launch-libvirt.c b/src/launch-libvirt.c
index fd6e6d2..d86e2d2 100644
--- a/src/launch-libvirt.c
+++ b/src/launch-libvirt.c
@@ -106,6 +106,7 @@ struct backend_libvirt_data {
char *selinux_imagelabel;
bool selinux_norelabel_disks;
char name[DOMAIN_NAME_LEN]; /* random name */
+ bool is_kvm; /* false = qemu, true = kvm (from capabilities)*/
};
/* Parameters passed to construct_libvirt_xml and subfunctions. We
@@ -122,12 +123,11 @@ struct libvirt_xml_params {
char guestfsd_path[UNIX_PATH_MAX]; /* paths to sockets */
char console_path[UNIX_PATH_MAX];
bool enable_svirt; /* false if we decided to disable sVirt */
- bool is_kvm; /* false = qemu, true = kvm */
bool current_proc_is_root; /* true = euid is root */
};
-static int parse_capabilities (guestfs_h *g, const char *capabilities_xml, struct
libvirt_xml_params *params);
-static xmlChar *construct_libvirt_xml (guestfs_h *g, const struct libvirt_xml_params
*params);
+static int parse_capabilities (guestfs_h *g, const char *capabilities_xml, struct
backend_libvirt_data *data);
+static xmlChar *construct_libvirt_xml (guestfs_h *g, const struct backend_libvirt_data
*data, const struct libvirt_xml_params *params);
static void debug_appliance_permissions (guestfs_h *g);
static void debug_socket_permissions (guestfs_h *g);
static void libvirt_error (guestfs_h *g, const char *fs, ...) __attribute__((format
(printf,2,3)));
@@ -299,7 +299,7 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
if (g->verbose)
guestfs___print_timestamped_message (g, "parsing capabilities XML");
- if (parse_capabilities (g, capabilities_xml, ¶ms) == -1)
+ if (parse_capabilities (g, capabilities_xml, data) == -1)
goto cleanup;
/* Locate and/or build the appliance. */
@@ -434,7 +434,7 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
guestfs___drive_name (params.appliance_index, ¶ms.appliance_dev[7]);
params.enable_svirt = ! is_custom_hv (g);
- xml = construct_libvirt_xml (g, ¶ms);
+ xml = construct_libvirt_xml (g, data, ¶ms);
if (!xml)
goto cleanup;
@@ -575,7 +575,7 @@ launch_libvirt (guestfs_h *g, void *datav, const char *libvirt_uri)
static int
parse_capabilities (guestfs_h *g, const char *capabilities_xml,
- struct libvirt_xml_params *params)
+ struct backend_libvirt_data *data)
{
CLEANUP_XMLFREEDOC xmlDocPtr doc = NULL;
CLEANUP_XMLXPATHFREECONTEXT xmlXPathContextPtr xpathCtx = NULL;
@@ -654,9 +654,9 @@ parse_capabilities (guestfs_h *g, const char *capabilities_xml,
force_tcg = guestfs___get_backend_setting_bool (g, "force_tcg");
if (!force_tcg)
- params->is_kvm = seen_kvm;
+ data->is_kvm = seen_kvm;
else
- params->is_kvm = 0;
+ data->is_kvm = 0;
return 0;
}
@@ -779,10 +779,10 @@ debug_socket_permissions (guestfs_h *g)
}
}
-static int construct_libvirt_xml_domain (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
+static int construct_libvirt_xml_domain (guestfs_h *g, const struct backend_libvirt_data
*data, const struct libvirt_xml_params *params, xmlTextWriterPtr xo);
static int construct_libvirt_xml_name (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
-static int construct_libvirt_xml_cpu (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
-static int construct_libvirt_xml_boot (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
+static int construct_libvirt_xml_cpu (guestfs_h *g, const struct backend_libvirt_data
*data, const struct libvirt_xml_params *params, xmlTextWriterPtr xo);
+static int construct_libvirt_xml_boot (guestfs_h *g, const struct backend_libvirt_data
*data, const struct libvirt_xml_params *params, xmlTextWriterPtr xo);
static int construct_libvirt_xml_seclabel (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
static int construct_libvirt_xml_lifecycle (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
static int construct_libvirt_xml_devices (guestfs_h *g, const struct libvirt_xml_params
*params, xmlTextWriterPtr xo);
@@ -872,7 +872,9 @@ static int construct_libvirt_xml_appliance (guestfs_h *g, const struct
libvirt_x
__FILE__, __LINE__, (fn));
static xmlChar *
-construct_libvirt_xml (guestfs_h *g, const struct libvirt_xml_params *params)
+construct_libvirt_xml (guestfs_h *g,
+ const struct backend_libvirt_data *data,
+ const struct libvirt_xml_params *params)
{
xmlChar *ret = NULL;
CLEANUP_XMLBUFFERFREE xmlBufferPtr xb = NULL;
@@ -905,7 +907,7 @@ construct_libvirt_xml (guestfs_h *g, const struct libvirt_xml_params
*params)
return NULL;
}
- if (construct_libvirt_xml_domain (g, params, xo) == -1)
+ if (construct_libvirt_xml_domain (g, data, params, xo) == -1)
return NULL;
if (xmlTextWriterEndDocument (xo) == -1) {
@@ -925,19 +927,20 @@ construct_libvirt_xml (guestfs_h *g, const struct libvirt_xml_params
*params)
static int
construct_libvirt_xml_domain (guestfs_h *g,
+ const struct backend_libvirt_data *data,
const struct libvirt_xml_params *params,
xmlTextWriterPtr xo)
{
start_element ("domain") {
- attribute ("type", params->is_kvm ? "kvm" :
"qemu");
+ attribute ("type", data->is_kvm ? "kvm" : "qemu");
attribute_ns ("xmlns", "qemu", NULL,
"http://libvirt.org/schemas/domain/qemu/1.0");
if (construct_libvirt_xml_name (g, params, xo) == -1)
return -1;
- if (construct_libvirt_xml_cpu (g, params, xo) == -1)
+ if (construct_libvirt_xml_cpu (g, data, params, xo) == -1)
return -1;
- if (construct_libvirt_xml_boot (g, params, xo) == -1)
+ if (construct_libvirt_xml_boot (g, data, params, xo) == -1)
return -1;
if (construct_libvirt_xml_seclabel (g, params, xo) == -1)
return -1;
@@ -968,6 +971,7 @@ construct_libvirt_xml_name (guestfs_h *g,
/* CPU and memory features. */
static int
construct_libvirt_xml_cpu (guestfs_h *g,
+ const struct backend_libvirt_data *data,
const struct libvirt_xml_params *params,
xmlTextWriterPtr xo)
{
@@ -987,7 +991,7 @@ construct_libvirt_xml_cpu (guestfs_h *g,
* Only do this with KVM. It is broken in subtle ways on TCG, and
* fairly pointless anyway.
*/
- if (params->is_kvm) {
+ if (data->is_kvm) {
start_element ("cpu") {
attribute ("mode", "host-passthrough");
start_element ("model") {
@@ -1031,6 +1035,7 @@ construct_libvirt_xml_cpu (guestfs_h *g,
/* Boot parameters. */
static int
construct_libvirt_xml_boot (guestfs_h *g,
+ const struct backend_libvirt_data *data,
const struct libvirt_xml_params *params,
xmlTextWriterPtr xo)
{
@@ -1039,7 +1044,7 @@ construct_libvirt_xml_boot (guestfs_h *g,
/* Linux kernel command line. */
flags = 0;
- if (!params->is_kvm)
+ if (!data->is_kvm)
flags |= APPLIANCE_COMMAND_LINE_IS_TCG;
cmdline = guestfs___appliance_command_line (g, params->appliance_dev, flags);
--
1.8.5.3