aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorIan Campbell <ian.campbell@citrix.com>2012-01-31 14:41:00 +0000
committerIan Campbell <ian.campbell@citrix.com>2012-01-31 14:41:00 +0000
commit582e9c1434c3c07d9c713ffcdcc74a8fde583ff4 (patch)
tree31c7b46110a5fa66c5e1180670346c2bbf3d12b5 /tools
parent3a375e0f6db6e3aa0eea036cf67d6852be76e7c4 (diff)
downloadxen-582e9c1434c3c07d9c713ffcdcc74a8fde583ff4.tar.gz
xen-582e9c1434c3c07d9c713ffcdcc74a8fde583ff4.tar.bz2
xen-582e9c1434c3c07d9c713ffcdcc74a8fde583ff4.zip
libxl: define libxl_sdl_info to hold all info about the SDL config
Signed-off-by: Ian Campbell <ian.campbell@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Committed-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
Diffstat (limited to 'tools')
-rw-r--r--tools/libxl/libxl.c25
-rw-r--r--tools/libxl/libxl_create.c4
-rw-r--r--tools/libxl/libxl_dm.c14
-rw-r--r--tools/libxl/libxl_types.idl8
-rw-r--r--tools/libxl/xl_cmdimpl.c28
5 files changed, 39 insertions, 40 deletions
diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
index 233ef38935..5bd7a1e9b7 100644
--- a/tools/libxl/libxl.c
+++ b/tools/libxl/libxl.c
@@ -2188,16 +2188,16 @@ out:
int libxl_device_vfb_init(libxl_ctx *ctx, libxl_device_vfb *vfb)
{
memset(vfb, 0x00, sizeof(libxl_device_vfb));
- vfb->display = NULL;
- vfb->xauthority = NULL;
vfb->vnc.enable = 1;
vfb->vnc.passwd = NULL;
vfb->vnc.listen = strdup("127.0.0.1");
vfb->vnc.display = 0;
vfb->vnc.findunused = 1;
vfb->keymap = NULL;
- vfb->sdl = 0;
- vfb->opengl = 0;
+ vfb->sdl.enable = 0;
+ vfb->sdl.opengl = 0;
+ vfb->sdl.display = NULL;
+ vfb->sdl.xauthority = NULL;
return 0;
}
@@ -2248,16 +2248,19 @@ int libxl_device_vfb_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vfb *vfb)
libxl__sprintf(gc, "%d", vfb->vnc.display));
flexarray_append_pair(back, "vncunused",
libxl__sprintf(gc, "%d", vfb->vnc.findunused));
- flexarray_append_pair(back, "sdl", libxl__sprintf(gc, "%d", vfb->sdl));
- flexarray_append_pair(back, "opengl", libxl__sprintf(gc, "%d", vfb->opengl));
- if (vfb->xauthority) {
- flexarray_append_pair(back, "xauthority", vfb->xauthority);
+ flexarray_append_pair(back, "sdl",
+ libxl__sprintf(gc, "%d", vfb->sdl.enable));
+ flexarray_append_pair(back, "opengl",
+ libxl__sprintf(gc, "%d", vfb->sdl.opengl));
+ if (vfb->sdl.xauthority) {
+ flexarray_append_pair(back, "xauthority", vfb->sdl.xauthority);
}
- if (vfb->display) {
- flexarray_append_pair(back, "display", vfb->display);
+ if (vfb->sdl.display) {
+ flexarray_append_pair(back, "display", vfb->sdl.display);
}
- flexarray_append_pair(front, "backend-id", libxl__sprintf(gc, "%d", vfb->backend_domid));
+ flexarray_append_pair(front, "backend-id",
+ libxl__sprintf(gc, "%d", vfb->backend_domid));
flexarray_append_pair(front, "state", libxl__sprintf(gc, "%d", 1));
libxl__device_generic_add(gc, &device,
diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
index 37aa404e12..3bff876bc3 100644
--- a/tools/libxl/libxl_create.c
+++ b/tools/libxl/libxl_create.c
@@ -134,8 +134,8 @@ int libxl_init_dm_info(libxl_ctx *ctx,
dm_info->vnc.display = 0;
dm_info->vnc.findunused = 1;
dm_info->keymap = NULL;
- dm_info->sdl = 0;
- dm_info->opengl = 0;
+ dm_info->sdl.enable = 0;
+ dm_info->sdl.opengl = 0;
dm_info->nographic = 0;
dm_info->serial = NULL;
dm_info->boot = strdup("cda");
diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
index c5efbe1287..4727d3c12e 100644
--- a/tools/libxl/libxl_dm.c
+++ b/tools/libxl/libxl_dm.c
@@ -120,16 +120,17 @@ static char ** libxl__build_device_model_args_old(libxl__gc *gc,
flexarray_append(dm_args, "-vncunused");
}
}
- if (info->sdl) {
+ if (info->sdl.enable) {
flexarray_append(dm_args, "-sdl");
- if (!info->opengl) {
+ if (!info->sdl.opengl) {
flexarray_append(dm_args, "-disable-opengl");
}
+ /* XXX info->sdl.{display,xauthority} into $DISPLAY/$XAUTHORITY */
}
if (info->keymap) {
flexarray_vappend(dm_args, "-k", info->keymap, NULL);
}
- if (info->nographic && (!info->sdl && !info->vnc.enable)) {
+ if (info->nographic && (!info->sdl.enable && !info->vnc.enable)) {
flexarray_append(dm_args, "-nographic");
}
if (info->serial) {
@@ -287,8 +288,9 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
libxl__sprintf(gc, "%s:%d%s", listen, display,
info->vnc.findunused ? ",to=99" : ""));
}
- if (info->sdl) {
+ if (info->sdl.enable) {
flexarray_append(dm_args, "-sdl");
+ /* XXX info->sdl.{display,xauthority} into $DISPLAY/$XAUTHORITY */
}
if (info->spice.enable) {
char *spiceoptions = NULL;
@@ -335,7 +337,7 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
if (info->keymap) {
flexarray_vappend(dm_args, "-k", info->keymap, NULL);
}
- if (info->nographic && (!info->sdl && !info->vnc.enable)) {
+ if (info->nographic && (!info->sdl.enable && !info->vnc.enable)) {
flexarray_append(dm_args, "-nographic");
}
if (info->serial) {
@@ -526,7 +528,6 @@ static int libxl__vfb_and_vkb_from_device_model_info(libxl__gc *gc,
vfb->vnc = info->vnc;
vfb->keymap = info->keymap;
vfb->sdl = info->sdl;
- vfb->opengl = info->opengl;
vkb->backend_domid = 0;
vkb->devid = 0;
@@ -981,7 +982,6 @@ static int libxl__build_xenpv_qemu_args(libxl__gc *gc,
if (vfb->keymap)
info->keymap = libxl__strdup(gc, vfb->keymap);
info->sdl = vfb->sdl;
- info->opengl = vfb->opengl;
} else
info->nographic = 1;
info->domid = domid;
diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
index abd55b82c8..85c02a60a4 100644
--- a/tools/libxl/libxl_types.idl
+++ b/tools/libxl/libxl_types.idl
@@ -251,8 +251,7 @@ libxl_device_model_info = Struct("device_model_info",[
("vnc", libxl_vnc_info),
# keyboard layout, default is en-us keyboard
("keymap", string),
- ("sdl", bool),
- ("opengl", bool), # (requires sdl enabled)
+ ("sdl", libxl_sdl_info),
("spice", libxl_spice_info),
("nographic", bool),
("gfx_passthru", bool),
@@ -279,12 +278,9 @@ libxl_device_vfb = Struct("device_vfb", [
("backend_domid", libxl_domid),
("devid", integer),
("vnc", libxl_vnc_info),
+ ("sdl", libxl_sdl_info),
# set keyboard layout, default is en-us keyboard
("keymap", string),
- ("sdl", bool),
- ("opengl", bool), # (if enabled requires sdl enabled)
- ("display", string),
- ("xauthority", string),
])
libxl_device_vkb = Struct("device_vkb", [
diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
index cd2c48c996..fcf114b822 100644
--- a/tools/libxl/xl_cmdimpl.c
+++ b/tools/libxl/xl_cmdimpl.c
@@ -372,9 +372,9 @@ static void printf_info(int domid,
printf("\t\t\t(vncdisplay %d)\n", dm_info->vnc.display);
printf("\t\t\t(vncunused %d)\n", dm_info->vnc.findunused);
printf("\t\t\t(keymap %s)\n", dm_info->keymap);
- printf("\t\t\t(sdl %d)\n", dm_info->sdl);
+ printf("\t\t\t(sdl %d)\n", dm_info->sdl.enable);
printf("\t\t\t(gfx_passthru %d)\n", dm_info->gfx_passthru);
- printf("\t\t\t(opengl %d)\n", dm_info->opengl);
+ printf("\t\t\t(opengl %d)\n", dm_info->sdl.opengl);
printf("\t\t\t(nographic %d)\n", dm_info->nographic);
printf("\t\t\t(serial %s)\n", dm_info->serial);
printf("\t\t\t(boot %s)\n", dm_info->boot);
@@ -462,10 +462,10 @@ static void printf_info(int domid,
printf("\t\t\t(vncdisplay %d)\n", d_config->vfbs[i].vnc.display);
printf("\t\t\t(vncunused %d)\n", d_config->vfbs[i].vnc.findunused);
printf("\t\t\t(keymap %s)\n", d_config->vfbs[i].keymap);
- printf("\t\t\t(sdl %d)\n", d_config->vfbs[i].sdl);
- printf("\t\t\t(opengl %d)\n", d_config->vfbs[i].opengl);
- printf("\t\t\t(display %s)\n", d_config->vfbs[i].display);
- printf("\t\t\t(xauthority %s)\n", d_config->vfbs[i].xauthority);
+ printf("\t\t\t(sdl %d)\n", d_config->vfbs[i].sdl.enable);
+ printf("\t\t\t(opengl %d)\n", d_config->vfbs[i].sdl.opengl);
+ printf("\t\t\t(display %s)\n", d_config->vfbs[i].sdl.display);
+ printf("\t\t\t(xauthority %s)\n", d_config->vfbs[i].sdl.xauthority);
printf("\t\t)\n");
printf("\t)\n");
}
@@ -1060,15 +1060,15 @@ skip:
free(vfb->keymap);
vfb->keymap = strdup(p2 + 1);
} else if (!strcmp(p, "sdl")) {
- vfb->sdl = atoi(p2 + 1);
+ vfb->sdl.enable = atoi(p2 + 1);
} else if (!strcmp(p, "opengl")) {
- vfb->opengl = atoi(p2 + 1);
+ vfb->sdl.opengl = atoi(p2 + 1);
} else if (!strcmp(p, "display")) {
- free(vfb->display);
- vfb->display = strdup(p2 + 1);
+ free(vfb->sdl.display);
+ vfb->sdl.display = strdup(p2 + 1);
} else if (!strcmp(p, "xauthority")) {
- free(vfb->xauthority);
- vfb->xauthority = strdup(p2 + 1);
+ free(vfb->sdl.xauthority);
+ vfb->sdl.xauthority = strdup(p2 + 1);
}
} while ((p = strtok(NULL, ",")) != NULL);
skip_vfb:
@@ -1271,9 +1271,9 @@ skip_vfb:
dm_info->vnc.findunused = l;
xlu_cfg_replace_string (config, "keymap", &dm_info->keymap, 0);
if (!xlu_cfg_get_long (config, "sdl", &l, 0))
- dm_info->sdl = l;
+ dm_info->sdl.enable = l;
if (!xlu_cfg_get_long (config, "opengl", &l, 0))
- dm_info->opengl = l;
+ dm_info->sdl.opengl = l;
if (!xlu_cfg_get_long (config, "spice", &l, 0))
dm_info->spice.enable = l;
if (!xlu_cfg_get_long (config, "spiceport", &l, 0))