diff options
author | Ian Campbell <ian.campbell@citrix.com> | 2012-04-04 10:51:11 +0100 |
---|---|---|
committer | Ian Campbell <ian.campbell@citrix.com> | 2012-04-04 10:51:11 +0100 |
commit | 8052d596674941501ebf0990ddf0225e88acb63f (patch) | |
tree | d5f96ace12550cf96c137a6b6f594dc8314a7ed1 | |
parent | 4d9dfa2abbd32d0cb5c36a21b35f4fecd1b17ca5 (diff) | |
download | xen-8052d596674941501ebf0990ddf0225e88acb63f.tar.gz xen-8052d596674941501ebf0990ddf0225e88acb63f.tar.bz2 xen-8052d596674941501ebf0990ddf0225e88acb63f.zip |
libxl: provide libxl_domain_config_init.
Currently this struct is too complicated for the IDL to represent (arrays) so
for now implement by hand.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Committed-by: Ian Jackson <ian.jackson.citrix.com>
-rw-r--r-- | tools/libxl/libxl.h | 1 | ||||
-rw-r--r-- | tools/libxl/libxl_create.c | 7 | ||||
-rw-r--r-- | tools/libxl/xl_cmdimpl.c | 7 |
3 files changed, 10 insertions, 5 deletions
diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h index 587d0a69b5..d59f0ee943 100644 --- a/tools/libxl/libxl.h +++ b/tools/libxl/libxl.h @@ -466,6 +466,7 @@ int libxl_ctx_free(libxl_ctx *ctx /* 0 is OK */); typedef int (*libxl_console_ready)(libxl_ctx *ctx, uint32_t domid, void *priv); int libxl_domain_create_new(libxl_ctx *ctx, libxl_domain_config *d_config, libxl_console_ready cb, void *priv, uint32_t *domid); int libxl_domain_create_restore(libxl_ctx *ctx, libxl_domain_config *d_config, libxl_console_ready cb, void *priv, uint32_t *domid, int restore_fd); +void libxl_domain_config_init(libxl_domain_config *d_config); void libxl_domain_config_dispose(libxl_domain_config *d_config); int libxl_domain_suspend(libxl_ctx *ctx, libxl_domain_suspend_info *info, uint32_t domid, int fd); diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index 4b070c484f..7ab2f72200 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -22,6 +22,13 @@ #include <xc_dom.h> #include <xenguest.h> +void libxl_domain_config_init(libxl_domain_config *d_config) +{ + memset(d_config, 0, sizeof(*d_config)); + libxl_domain_create_info_init(&d_config->c_info); + libxl_domain_build_info_init(&d_config->b_info); +} + void libxl_domain_config_dispose(libxl_domain_config *d_config) { int i; diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index e1d5dfa9f7..b81873ed5a 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -549,8 +549,6 @@ static void parse_config_data(const char *configfile_filename_report, exit(1); } - libxl_domain_create_info_init(c_info); - if (!xlu_cfg_get_string (config, "seclabel", &buf, 0)) { e = libxl_flask_context_to_sid(ctx, (char *)buf, strlen(buf), &c_info->ssidref); @@ -596,7 +594,6 @@ static void parse_config_data(const char *configfile_filename_report, exit(1); } - libxl_domain_build_info_init(b_info); libxl_domain_build_info_init_type(b_info, c_info->type); /* the following is the actual config parsing with overriding values in the structures */ @@ -1523,7 +1520,7 @@ static int create_domain(struct domain_create *dom_info) pid_t child_console_pid = -1; struct save_file_header hdr; - memset(&d_config, 0x00, sizeof(d_config)); + libxl_domain_config_init(&d_config); if (restore_file) { uint8_t *optdata_begin = 0; @@ -1836,7 +1833,7 @@ start: /* Reparse the configuration in case it has changed */ libxl_domain_config_dispose(&d_config); - memset(&d_config, 0, sizeof(d_config)); + libxl_domain_config_init(&d_config); parse_config_data(config_file, config_data, config_len, &d_config); |