|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v2] tools/helpers: don't hardcode domain type for dom0 and xenstore domain
Today when setting up a minimal domain configuration file for dom0 and
eventually xenstore-domain the domain type is harcoded as PV. Change
that by asking the hypervisor for the correct type.
Signed-off-by: Juergen Gross <jgross@xxxxxxxx>
---
tools/helpers/init-dom-json.c | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/tools/helpers/init-dom-json.c b/tools/helpers/init-dom-json.c
index 91b1fdf3db..704e7cb4f0 100644
--- a/tools/helpers/init-dom-json.c
+++ b/tools/helpers/init-dom-json.c
@@ -13,6 +13,7 @@ int gen_stub_json_config(uint32_t domid)
xentoollog_logger_stdiostream *logger;
libxl_ctx *ctx;
libxl_domain_config dom_config;
+ libxl_dominfo dominfo;
char *json = NULL;
logger = xtl_createlogger_stdiostream(stderr, XTL_ERROR, 0);
@@ -27,10 +28,17 @@ int gen_stub_json_config(uint32_t domid)
libxl_domain_config_init(&dom_config);
+ libxl_dominfo_init(&dominfo);
+ if (libxl_domain_info(ctx, &dominfo, domid)) {
+ fprintf(stderr, "cannot get domain type\n");
+ goto outdispose;
+ }
+
/* Generate stub JSON config. */
- dom_config.c_info.type = LIBXL_DOMAIN_TYPE_PV;
+ dom_config.c_info.type = (dominfo.domain_type == LIBXL_DOMAIN_TYPE_HVM)
+ ? LIBXL_DOMAIN_TYPE_PVH : LIBXL_DOMAIN_TYPE_PV;
libxl_domain_build_info_init_type(&dom_config.b_info,
- LIBXL_DOMAIN_TYPE_PV);
+ dom_config.c_info.type);
json = libxl_domain_config_to_json(ctx, &dom_config);
/* libxl-json format requires the string ends with '\0'. Code
@@ -42,6 +50,8 @@ int gen_stub_json_config(uint32_t domid)
if (rc)
fprintf(stderr, "cannot store stub json config for domain %u\n",
domid);
+outdispose:
+ libxl_dominfo_dispose(&dominfo);
libxl_domain_config_dispose(&dom_config);
free(json);
libxl_ctx_free(ctx);
--
2.13.7
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |