From mboxrd@z Thu Jan 1 00:00:00 1970 From: ZhouPeng Subject: [PATCH] Play with spice for xen-upstream-qemu on upstream Xen Date: Mon, 18 Apr 2011 15:49:56 +0800 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=bcaec51dd18542039604a12ca3ef Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "Xen-Devel (E-mail)" Cc: Stefano Stabellini List-Id: xen-devel@lists.xenproject.org --bcaec51dd18542039604a12ca3ef Content-Type: multipart/alternative; boundary=bcaec51dd18542038b04a12ca3ed --bcaec51dd18542038b04a12ca3ed Content-Type: text/plain; charset=ISO-8859-1 Signed-off-by: Zhou Peng This patch allows you to play with spice for xen-upstream-qemu on upstream Xen or released Xen-4.1.0. Nothing need to be modified in xen-upstream-qemu, because qemu has include spice's code as a new feature since qemu-0.14. Usage: Add spice fields in VM configuration file. #spice spice=1 spiceport=6000 spicehost='192.168.1.187' spicedisable_ticketing = 0 # default is 0 spicepasswd = 'password' apic=0 # disable acpi, but if you used the appended patch, set acpi=0 You may need to disable acpi(I'm not sure), but if you want to disable acpi, you may need to set apic = 0, (Yes, It is apic not acpi, pls don't ask me why, because I am also confused with it). If you feel uncomfortable by setting apic = 0, you can try an additional patch appended, then you can use acpi=0 in vm cfg file to give "no-acpi" argument to qemu. For detailed: http://code.google.com/p/spice4xen/wiki/Using_Upstream_Qemu diff -r 3f00c5faa12a tools/libxl/libxl.idl --- a/tools/libxl/libxl.idl Wed Apr 13 16:10:26 2011 +0100 +++ b/tools/libxl/libxl.idl Mon Apr 18 10:52:09 2011 +0800 @@ -153,6 +153,13 @@ libxl_device_model_info = Struct("device ("keymap", string, False, "set keyboard layout, default is en-us keyboard"), ("sdl", bool, False, "sdl enabled or disabled"), ("opengl", bool, False, "opengl enabled or disabled (if enabled requires sdl enabled)"), + ("spice", bool, False, "spice enabled or disabled"), + ("spiceport", integer, False, "the port that should be listened on for the spice server"), + ("spicetls_port", integer, False, "the tls port that should be listened on for the spice server, at least one of the port or tls port must be given"), + ("spicehost", string, False, "the interface that should be listened on if given otherwise any interface"), + ("spicedisable_ticketing", bool, False, "Enable client connection with no password"), + ("spicepasswd", string, False, "set ticket password, witch must be used by a client for connection. The passwords never expires"), + ("spiceagent_mouset",bool, False, "Whether spice agent is used for client mouse mode(default is on)"), ("nographic", bool, False, "no graphics, use serial port"), ("gfx_passthru", bool, False, "graphics passthrough enabled or disabled"), ("serial", string, False, "serial port re-direct to pty deivce"), diff -r 3f00c5faa12a tools/libxl/libxl_dm.c --- a/tools/libxl/libxl_dm.c Wed Apr 13 16:10:26 2011 +0100 +++ b/tools/libxl/libxl_dm.c Mon Apr 18 10:52:09 2011 +0800 @@ -225,15 +225,44 @@ static char ** libxl__build_device_model if (strchr(listen, ':') != NULL) flexarray_append(dm_args, - libxl__sprintf(gc, "%s%s", listen, - info->vncunused ? ",to=99" : "")); + libxl__sprintf(gc, "%s%s,%s", listen, + info->vncunused ? ",to=99" : "", info->vncpasswd)); else flexarray_append(dm_args, - libxl__sprintf(gc, "%s:%d%s", listen, display, - info->vncunused ? ",to=99" : "")); + libxl__sprintf(gc, "%s:%d%s,%s", listen, display, + info->vncunused ? ",to=99" : "", info->vncpasswd)); } if (info->sdl) { flexarray_append(dm_args, "-sdl"); + } + if (info->spice) { + char *spiceoptions = NULL; + if (!info->spiceport && !info->spicetls_port) { + assert(!"at least one of the spiceport or tls_port must be provided"); + } + + if (!info->spicedisable_ticketing) { + if (!info->spicepasswd) + assert(!"spice ticketing is enabled but missing password"); + else if (!info->spicepasswd[0]) + assert(!"missing code for supplying spice password"); + } + spiceoptions = libxl__sprintf(gc, "port=%d,tls-port=%d", + info->spiceport, info->spicetls_port); + if (!info->spicehost) + spiceoptions = libxl__sprintf(gc, + "%s,host=%s", spiceoptions, info->spicehost); + if (info->spicedisable_ticketing) + spiceoptions = libxl__sprintf(gc, "%s,disable-ticketing", spiceoptions); + else + spiceoptions = libxl__sprintf(gc, + "%s,password=%s", spiceoptions, info->spicepasswd); + spiceoptions = libxl__sprintf(gc, "%s,agent-mouse=%s", spiceoptions, + info->spiceagent_mouset ? "on" : "off"); + + flexarray_append(dm_args, "-spice"); + flexarray_append(dm_args, spiceoptions); + printf("SPICE Options:\n -spice %s\n", spiceoptions); } if (info->type == XENPV && !info->nographic) { diff -r 3f00c5faa12a tools/libxl/xl_cmdimpl.c --- a/tools/libxl/xl_cmdimpl.c Wed Apr 13 16:10:26 2011 +0100 +++ b/tools/libxl/xl_cmdimpl.c Mon Apr 18 10:52:10 2011 +0800 @@ -1089,6 +1089,20 @@ skip_vfb: dm_info->sdl = l; if (!xlu_cfg_get_long (config, "opengl", &l)) dm_info->opengl = l; + if (!xlu_cfg_get_long (config, "spice", &l)) + dm_info->spice = l; + if (!xlu_cfg_get_long (config, "spiceport", &l)) + dm_info->spiceport = l; + if (!xlu_cfg_get_long (config, "spicetls_port", &l)) + dm_info->spicetls_port = l; + xlu_cfg_replace_string (config, "spicehost", &dm_info->spicehost); + if (!xlu_cfg_get_long (config, "spicedisable_ticketing", &l)) + dm_info->spicedisable_ticketing = l; + xlu_cfg_replace_string (config, "spicepasswd", &dm_info->spicepasswd); + if (!xlu_cfg_get_long (config, "spiceagent_mouse", &l)) + dm_info->spiceagent_mouset = l; + else + dm_info->spiceagent_mouset = 1; if (!xlu_cfg_get_long (config, "nographic", &l)) dm_info->nographic = l; if (!xlu_cfg_get_long (config, "gfx_passthru", &l)) ==============================Appended patch====================== Signed-off-by: Zhou Peng tool/libxl: mistake apic for acpi in libxl__build_device_model_args_old/new It may be advisedly coded for some reason, then it can be a mistake of my understanding. diff -r 6871474a2a09 -r 01f8b29dda8e tools/libxl/libxl_dm.c --- a/tools/libxl/libxl_dm.c Fri Apr 15 10:06:59 2011 +0800 +++ b/tools/libxl/libxl_dm.c Fri Apr 15 15:17:42 2011 +0800 @@ -120,7 +120,7 @@ static char ** libxl__build_device_model if (info->soundhw) { flexarray_vappend(dm_args, "-soundhw", info->soundhw, NULL); } - if (info->apic) { + if (info->acpi) { flexarray_append(dm_args, "-acpi"); } if (info->vcpus > 1) { @@ -268,7 +268,7 @@ static char ** libxl__build_device_model if (info->soundhw) { flexarray_vappend(dm_args, "-soundhw", info->soundhw, NULL); } - if (!info->apic) { + if (!info->acpi) { flexarray_append(dm_args, "-no-acpi"); } if (info->vcpus > 1) { -- Zhou Peng Operating System Technology Group Institute of Software, the Chinese Academy of Sciences (ISCAS) --bcaec51dd18542038b04a12ca3ed Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Signed-off-by: Zhou Peng <zh= oupeng@nfs.iscas.ac.cn>

This patch allows you to play with sp= ice for
xen-upstream-qemu on upstream Xen or released Xen-4.1.0.

Nothing need to be modified in xen-upstream-qemu,
because qemu has incl= ude spice's code as a new feature since qemu-0.14.

Usage:
Add spice fields in VM configuration file.
#spice
spice=3D1
spice= port=3D6000
spicehost=3D'192.168.1.187'
spicedisable_ticketing =3D 0 # defau= lt is 0
spicepasswd =3D 'password'

apic=3D0 # disable acp= i, but if you used the appended patch, set acpi=3D0

You may need to = disable acpi(I'm not sure),
but if you want to disable acpi, you may need to set
apic =3D 0, (Yes, I= t is apic not acpi, pls don't ask me why, because I am also confused wi= th it).
If you feel uncomfortable by setting apic =3D 0, you can try an = additional patch appended,
then you can use acpi=3D0 in vm cfg file to give "no-acpi" argume= nt to qemu.

For detailed:
http://code.google.com/p/spice4xen/wiki/Us= ing_Upstream_Qemu

diff -r 3f00c5faa12a tools/libxl/libxl.idl
--- a/tools/libxl/libxl.i= dl=A0=A0=A0 Wed Apr 13 16:10:26 2011 +0100
+++ b/tools/libxl/libxl.idl= =A0=A0=A0 Mon Apr 18 10:52:09 2011 +0800
@@ -153,6 +153,13 @@ libxl_devi= ce_model_info =3D Struct("device
=A0=A0=A0=A0 ("keymap",=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 string,=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 False, "set keyboard layout, default is= en-us keyboard"),
=A0=A0=A0=A0 ("sdl",=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 bool,=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 False, &= quot;sdl enabled or disabled"),
=A0=A0=A0=A0 ("opengl",=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 bool,=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 False, "opengl enabled or disabled (= if enabled requires sdl enabled)"),
+=A0=A0=A0 ("spice",= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 bool,=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0 False, "spice enabled or disabled"),
+=A0=A0=A0 ("spiceport",=A0=A0=A0=A0=A0=A0=A0 integer,=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 False, "the port that should be listened on for = the spice server"),
+=A0=A0=A0 ("spicetls_port",=A0=A0=A0= integer,=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 False, "the tls port that shou= ld be listened on for the spice server, at least one of the port or tls por= t must be given"),
+=A0=A0=A0 ("spicehost",=A0=A0=A0=A0=A0=A0=A0 string,=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0 False, "the interface that should be listened on= if given otherwise any interface"),
+=A0=A0=A0 ("spicedisable= _ticketing", bool,=A0=A0=A0=A0=A0=A0=A0 False, "Enable client con= nection with no password"),
+=A0=A0=A0 ("spicepasswd",=A0=A0=A0=A0=A0 string,=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0 False, "set ticket password, witch must be used by = a client for connection. The passwords never expires"),
+=A0=A0=A0 = ("spiceagent_mouset",bool,=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= False, "Whether spice agent is used for client mouse mode(default is = on)"),
=A0=A0=A0=A0 ("nographic",=A0=A0=A0=A0=A0=A0=A0 bool,=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0 False, "no graphics, use serial port"= ),
=A0=A0=A0=A0 ("gfx_passthru",=A0=A0=A0=A0 bool,=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0 False, "graphics passthrough enabled or di= sabled"),
=A0=A0=A0=A0 ("serial",=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 string,=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 False, "serial port re-direct to pty de= ivce"),
diff -r 3f00c5faa12a tools/libxl/libxl_dm.c
--- a/tools/= libxl/libxl_dm.c=A0=A0=A0 Wed Apr 13 16:10:26 2011 +0100
+++ b/tools/libxl/libxl_dm.c=A0=A0=A0 Mon Apr 18 10:52:09 2011 +0800
@@ = -225,15 +225,44 @@ static char ** libxl__build_device_model
=A0
=A0= =A0=A0=A0=A0=A0=A0=A0 if (strchr(listen, ':') !=3D NULL)
=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 flexarray_append(dm_args,
-=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 libxl__sprintf(g= c, "%s%s", listen,
-=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0 info->vncunused ? ",to=3D99" : &qu= ot;"));
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = libxl__sprintf(gc, "%s%s,%s", listen,
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 info= ->vncunused ? ",to=3D99" : "", info->vncpasswd));=
=A0=A0=A0=A0=A0=A0=A0=A0 else
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 f= lexarray_append(dm_args,
-=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 libxl__sprintf(gc, "%s:%d%s", listen, display,
-=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 info= ->vncunused ? ",to=3D99" : ""));
+=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 libxl__sprintf(gc, "%s:%d%s= ,%s", listen, display,
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0 info->vncunused ? ",to=3D99" : &qu= ot;", info->vncpasswd));
=A0=A0=A0=A0 }
=A0=A0=A0=A0 if (info->sdl) {
=A0=A0=A0=A0=A0=A0=A0= =A0 flexarray_append(dm_args, "-sdl");
+=A0=A0=A0 }
+=A0=A0= =A0 if (info->spice) {
+=A0=A0=A0=A0=A0=A0=A0 char *spiceoptions =3D = NULL;
+=A0=A0=A0=A0=A0=A0=A0 if (!info->spiceport && !info-&g= t;spicetls_port) {
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 assert(!"at least one of the spicep= ort or tls_port must be provided");
+=A0=A0=A0=A0=A0=A0=A0 }
+<= br>+=A0=A0=A0=A0=A0=A0=A0 if (!info->spicedisable_ticketing) {
+=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 if (!info->spicepasswd)
+=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 assert(!"spice ticketing is enabled = but missing password");
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 else if (!info->spicepasswd[0])
+= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 assert(!"missing code fo= r supplying spice password");
+=A0=A0=A0=A0=A0=A0=A0 }
+=A0=A0= =A0=A0=A0=A0=A0 spiceoptions =3D libxl__sprintf(gc, "port=3D%d,tls-por= t=3D%d",
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 info-&g= t;spiceport, info->spicetls_port);
+=A0=A0=A0=A0=A0=A0=A0 if (!info-&= gt;spicehost)
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 spiceoptions =3D libxl_= _sprintf(gc,
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 = "%s,host=3D%s", spiceoptions, info->spicehost);
+=A0=A0=A0=A0=A0=A0=A0 if (info->spicedisable_ticketing)
+=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0 spiceoptions =3D libxl__sprintf(gc, "%s,disab= le-ticketing", spiceoptions);
+=A0=A0=A0=A0=A0=A0=A0 else
+=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 spiceoptions =3D libxl__sprintf(gc,
+=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 "%s,password=3D= %s", spiceoptions, info->spicepasswd);
+=A0=A0=A0=A0=A0=A0=A0 spiceoptions =3D libxl__sprintf(gc, "%s,agent-m= ouse=3D%s", spiceoptions,
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 in= fo->spiceagent_mouset ? "on" : "off");
+
+=A0= =A0=A0=A0=A0=A0=A0 flexarray_append(dm_args, "-spice");
+=A0=A0=A0=A0=A0=A0=A0 flexarray_append(dm_args, spiceoptions);
+=A0=A0= =A0=A0=A0=A0=A0 printf("SPICE Options:\n=A0 -spice %s\n", spiceop= tions);
=A0=A0=A0=A0 }
=A0
=A0=A0=A0=A0 if (info->type =3D=3D X= ENPV && !info->nographic) {
diff -r 3f00c5faa12a tools/libxl/= xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c=A0=A0=A0 Wed Apr 13 16:10:26 2011 +0100
+= ++ b/tools/libxl/xl_cmdimpl.c=A0=A0=A0 Mon Apr 18 10:52:10 2011 +0800
@@= -1089,6 +1089,20 @@ skip_vfb:
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dm_i= nfo->sdl =3D l;
=A0=A0=A0=A0=A0=A0=A0=A0 if (!xlu_cfg_get_long (confi= g, "opengl", &l))
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dm_info->opengl =3D l;
+=A0=A0= =A0=A0=A0=A0=A0 if (!xlu_cfg_get_long (config, "spice", &l))<= br>+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dm_info->spice =3D l;
+=A0=A0= =A0=A0=A0=A0=A0 if (!xlu_cfg_get_long (config, "spiceport", &= l))
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dm_info->spiceport =3D l;
+=A0=A0= =A0=A0=A0=A0=A0 if (!xlu_cfg_get_long (config, "spicetls_port", &= amp;l))
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dm_info->spicetls_port =3D= l;
+=A0=A0=A0=A0=A0=A0=A0 xlu_cfg_replace_string (config, "spiceho= st", &dm_info->spicehost);
+=A0=A0=A0=A0=A0=A0=A0 if (!xlu_cfg_get_long (config, "spicedisable_ti= cketing", &l))
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dm_info->s= picedisable_ticketing =3D l;
+=A0=A0=A0=A0=A0=A0=A0 xlu_cfg_replace_stri= ng (config, "spicepasswd", &dm_info->spicepasswd);
+=A0=A0=A0=A0=A0=A0=A0 if (!xlu_cfg_get_long (config, "spiceagent_mous= e", &l))
+=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dm_info->spiceag= ent_mouset =3D l;
+=A0=A0=A0=A0=A0=A0=A0 else
+=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 dm_info->spiceagent_mouset =3D 1;
=A0=A0=A0=A0=A0=A0=A0= =A0 if (!xlu_cfg_get_long (config, "nographic", &l))
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 dm_info->nographic =3D l;
=A0=A0= =A0=A0=A0=A0=A0=A0 if (!xlu_cfg_get_long (config, "gfx_passthru",= &l))


=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3DAppended patch=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Signed-off-by: Zhou Peng <= zhoupeng@nfs.iscas.ac.cn>= ;

tool/libxl: mistake apic for acpi in libxl__build_device_model_args_old= /new
It may be advisedly coded for some reason, then it can be a mistake= of my understanding.

diff -r 6871474a2a09 -r 01f8b29dda8e tools/lib= xl/libxl_dm.c
--- a/tools/libxl/libxl_dm.c=A0=A0=A0 Fri Apr 15 10:06:59 2011 +0800
+++= b/tools/libxl/libxl_dm.c=A0=A0=A0 Fri Apr 15 15:17:42 2011 +0800
@@ -12= 0,7 +120,7 @@ static char ** libxl__build_device_model
=A0=A0=A0=A0=A0= =A0=A0=A0 if (info->soundhw) {
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 flexarray_vappend(dm_args, "-soun= dhw", info->soundhw, NULL);
=A0=A0=A0=A0=A0=A0=A0=A0 }
-=A0= =A0=A0=A0=A0=A0=A0 if (info->apic) {
+=A0=A0=A0=A0=A0=A0=A0 if (info-= >acpi) {
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 flexarray_append(dm_arg= s, "-acpi");
=A0=A0=A0=A0=A0=A0=A0=A0 }
=A0=A0=A0=A0=A0=A0=A0=A0 if (info->vcpus &= gt; 1) {
@@ -268,7 +268,7 @@ static char ** libxl__build_device_model=A0=A0=A0=A0=A0=A0=A0=A0 if (info->soundhw) {
=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0=A0 flexarray_vappend(dm_args, "-soundhw", info->s= oundhw, NULL);
=A0=A0=A0=A0=A0=A0=A0=A0 }
-=A0=A0=A0=A0=A0=A0=A0 if (!info->apic) {<= br>+=A0=A0=A0=A0=A0=A0=A0 if (!info->acpi) {
=A0=A0=A0=A0=A0=A0=A0=A0= =A0=A0=A0=A0 flexarray_append(dm_args, "-no-acpi");
=A0=A0=A0= =A0=A0=A0=A0=A0 }
=A0=A0=A0=A0=A0=A0=A0=A0 if (info->vcpus > 1) {<= br>

--
Zhou Peng
Operating System Technology Group
Institute of Softw= are, the Chinese Academy of Sciences (ISCAS)

--bcaec51dd18542038b04a12ca3ed-- --bcaec51dd18542039604a12ca3ef Content-Type: text/x-patch; charset=US-ASCII; name="spice-upstreamXen-upstreamQemu.diff" Content-Disposition: attachment; filename="spice-upstreamXen-upstreamQemu.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gmn3lzgm0 U2lnbmVkLW9mZi1ieTogWmhvdSBQZW5nIDx6aG91cGVuZ0BuZnMuaXNjYXMuYWMuY24+CgpUaGlz IHBhdGNoIGFsbG93cyB5b3UgdG8gcGxheSB3aXRoIHNwaWNlIGZvcgp4ZW4tdXBzdHJlYW0tcWVt dSBvbiB1cHN0cmVhbSBYZW4gb3IgcmVsZWFzZWQgWGVuLTQuMS4wLgoKTm90aGluZyBuZWVkIHRv IGJlIG1vZGlmaWVkIGluIHhlbi11cHN0cmVhbS1xZW11LCAKYmVjYXVzZSBxZW11IGhhcyBpbmNs dWRlIHNwaWNlJ3MgY29kZSBhcyBhIG5ldyBmZWF0dXJlIHNpbmNlIHFlbXUtMC4xNC4KClVzYWdl OgoKQWRkIHNwaWNlIGZpZWxkcyBpbiBWTSBjb25maWd1cmF0aW9uIGZpbGUuCiNzcGljZQpzcGlj ZT0xCnNwaWNlcG9ydD02MDAwCnNwaWNlaG9zdD0nMTkyLjE2OC4xLjE4NycKc3BpY2VkaXNhYmxl X3RpY2tldGluZyA9IDAgIyBkZWZhdWx0IGlzIDAKc3BpY2VwYXNzd2QgPSAncGFzc3dvcmQnCgph cGljPTAgIyBkaXNhYmxlIGFjcGksIGJ1dCBpZiB5b3UgdXNlZCB0aGUgYXBwZW5kZWQgcGF0Y2gs IHNldCBhY3BpPTAKCllvdSBtYXkgbmVlZCB0byBkaXNhYmxlIGFjcGkoSSdtIG5vdCBzdXJlKSwK YnV0IGlmIHlvdSB3YW50IHRvIGRpc2FibGUgYWNwaSwgeW91IG1heSBuZWVkIHRvIHNldAphcGlj ID0gMCwgKFllcywgSXQgaXMgYXBpYyBub3QgYWNwaSwgcGxzIGRvbid0IGFzayBtZSB3aHksIGJl Y2F1c2UgSSBhbSBhbHNvIGNvbmZ1c2VkIHdpdGggaXQpLgpJZiB5b3UgZmVlbCB1bmNvbWZvcnRh YmxlIGJ5IHNldHRpbmcgYXBpYyA9IDAsIHlvdSBjYW4gdHJ5IGFuIGFkZGl0aW9uYWwgcGF0Y2gg YXBwZW5kZWQsCnRoZW4geW91IGNhbiB1c2UgYWNwaT0wIGluIHZtIGNmZyBmaWxlIHRvIGdpdmUg Im5vLWFjcGkiIGFyZ3VtZW50IHRvIHFlbXUuCgpkaWZmIC1yIDNmMDBjNWZhYTEyYSB0b29scy9s aWJ4bC9saWJ4bC5pZGwKLS0tIGEvdG9vbHMvbGlieGwvbGlieGwuaWRsCVdlZCBBcHIgMTMgMTY6 MTA6MjYgMjAxMSArMDEwMAorKysgYi90b29scy9saWJ4bC9saWJ4bC5pZGwJTW9uIEFwciAxOCAx MDo1MjowOSAyMDExICswODAwCkBAIC0xNTMsNiArMTUzLDEzIEBAIGxpYnhsX2RldmljZV9tb2Rl bF9pbmZvID0gU3RydWN0KCJkZXZpY2UKICAgICAoImtleW1hcCIsICAgICAgICAgICBzdHJpbmcs ICAgICAgICAgICAgRmFsc2UsICJzZXQga2V5Ym9hcmQgbGF5b3V0LCBkZWZhdWx0IGlzIGVuLXVz IGtleWJvYXJkIiksCiAgICAgKCJzZGwiLCAgICAgICAgICAgICAgYm9vbCwgICAgICAgICAgICAg IEZhbHNlLCAic2RsIGVuYWJsZWQgb3IgZGlzYWJsZWQiKSwKICAgICAoIm9wZW5nbCIsICAgICAg ICAgICBib29sLCAgICAgICAgICAgICAgRmFsc2UsICJvcGVuZ2wgZW5hYmxlZCBvciBkaXNhYmxl ZCAoaWYgZW5hYmxlZCByZXF1aXJlcyBzZGwgZW5hYmxlZCkiKSwKKyAgICAoInNwaWNlIiwgICAg ICAgICAgICBib29sLCAgICAgICAgICAgICAgRmFsc2UsICJzcGljZSBlbmFibGVkIG9yIGRpc2Fi bGVkIiksCisgICAgKCJzcGljZXBvcnQiLCAgICAgICAgaW50ZWdlciwgICAgICAgICAgIEZhbHNl LCAidGhlIHBvcnQgdGhhdCBzaG91bGQgYmUgbGlzdGVuZWQgb24gZm9yIHRoZSBzcGljZSBzZXJ2 ZXIiKSwKKyAgICAoInNwaWNldGxzX3BvcnQiLCAgICBpbnRlZ2VyLCAgICAgICAgICAgRmFsc2Us ICJ0aGUgdGxzIHBvcnQgdGhhdCBzaG91bGQgYmUgbGlzdGVuZWQgb24gZm9yIHRoZSBzcGljZSBz ZXJ2ZXIsIGF0IGxlYXN0IG9uZSBvZiB0aGUgcG9ydCBvciB0bHMgcG9ydCBtdXN0IGJlIGdpdmVu IiksCisgICAgKCJzcGljZWhvc3QiLCAgICAgICAgc3RyaW5nLCAgICAgICAgICAgIEZhbHNlLCAi dGhlIGludGVyZmFjZSB0aGF0IHNob3VsZCBiZSBsaXN0ZW5lZCBvbiBpZiBnaXZlbiBvdGhlcndp c2UgYW55IGludGVyZmFjZSIpLAorICAgICgic3BpY2VkaXNhYmxlX3RpY2tldGluZyIsIGJvb2ws ICAgICAgICBGYWxzZSwgIkVuYWJsZSBjbGllbnQgY29ubmVjdGlvbiB3aXRoIG5vIHBhc3N3b3Jk IiksCisgICAgKCJzcGljZXBhc3N3ZCIsICAgICAgc3RyaW5nLCAgICAgICAgICAgIEZhbHNlLCAi c2V0IHRpY2tldCBwYXNzd29yZCwgd2l0Y2ggbXVzdCBiZSB1c2VkIGJ5IGEgY2xpZW50IGZvciBj b25uZWN0aW9uLiBUaGUgcGFzc3dvcmRzIG5ldmVyIGV4cGlyZXMiKSwKKyAgICAoInNwaWNlYWdl bnRfbW91c2V0Iixib29sLCAgICAgICAgICAgICAgRmFsc2UsICJXaGV0aGVyIHNwaWNlIGFnZW50 IGlzIHVzZWQgZm9yIGNsaWVudCBtb3VzZSBtb2RlKGRlZmF1bHQgaXMgb24pIiksCiAgICAgKCJu b2dyYXBoaWMiLCAgICAgICAgYm9vbCwgICAgICAgICAgICAgIEZhbHNlLCAibm8gZ3JhcGhpY3Ms IHVzZSBzZXJpYWwgcG9ydCIpLAogICAgICgiZ2Z4X3Bhc3N0aHJ1IiwgICAgIGJvb2wsICAgICAg ICAgICAgICBGYWxzZSwgImdyYXBoaWNzIHBhc3N0aHJvdWdoIGVuYWJsZWQgb3IgZGlzYWJsZWQi KSwKICAgICAoInNlcmlhbCIsICAgICAgICAgICBzdHJpbmcsICAgICAgICAgICAgRmFsc2UsICJz ZXJpYWwgcG9ydCByZS1kaXJlY3QgdG8gcHR5IGRlaXZjZSIpLApkaWZmIC1yIDNmMDBjNWZhYTEy YSB0b29scy9saWJ4bC9saWJ4bF9kbS5jCi0tLSBhL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMJV2Vk IEFwciAxMyAxNjoxMDoyNiAyMDExICswMTAwCisrKyBiL3Rvb2xzL2xpYnhsL2xpYnhsX2RtLmMJ TW9uIEFwciAxOCAxMDo1MjowOSAyMDExICswODAwCkBAIC0yMjUsMTUgKzIyNSw0NCBAQCBzdGF0 aWMgY2hhciAqKiBsaWJ4bF9fYnVpbGRfZGV2aWNlX21vZGVsCiAKICAgICAgICAgaWYgKHN0cmNo cihsaXN0ZW4sICc6JykgIT0gTlVMTCkKICAgICAgICAgICAgIGZsZXhhcnJheV9hcHBlbmQoZG1f YXJncywgCi0gICAgICAgICAgICAgICAgICAgIGxpYnhsX19zcHJpbnRmKGdjLCAiJXMlcyIsIGxp c3RlbiwKLSAgICAgICAgICAgICAgICAgICAgICAgIGluZm8tPnZuY3VudXNlZCA/ICIsdG89OTki IDogIiIpKTsKKyAgICAgICAgICAgICAgICAgICAgbGlieGxfX3NwcmludGYoZ2MsICIlcyVzLCVz IiwgbGlzdGVuLAorICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+dm5jdW51c2VkID8gIix0 bz05OSIgOiAiIiwgaW5mby0+dm5jcGFzc3dkKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAg IGZsZXhhcnJheV9hcHBlbmQoZG1fYXJncywgCi0gICAgICAgICAgICAgICAgICAgIGxpYnhsX19z cHJpbnRmKGdjLCAiJXM6JWQlcyIsIGxpc3RlbiwgZGlzcGxheSwKLSAgICAgICAgICAgICAgICAg ICAgICAgIGluZm8tPnZuY3VudXNlZCA/ICIsdG89OTkiIDogIiIpKTsKKyAgICAgICAgICAgICAg ICAgICAgbGlieGxfX3NwcmludGYoZ2MsICIlczolZCVzLCVzIiwgbGlzdGVuLCBkaXNwbGF5LAor ICAgICAgICAgICAgICAgICAgICAgICAgaW5mby0+dm5jdW51c2VkID8gIix0bz05OSIgOiAiIiwg aW5mby0+dm5jcGFzc3dkKSk7CiAgICAgfQogICAgIGlmIChpbmZvLT5zZGwpIHsKICAgICAgICAg ZmxleGFycmF5X2FwcGVuZChkbV9hcmdzLCAiLXNkbCIpOworICAgIH0KKyAgICBpZiAoaW5mby0+ c3BpY2UpIHsKKyAgICAgICAgY2hhciAqc3BpY2VvcHRpb25zID0gTlVMTDsKKyAgICAgICAgaWYg KCFpbmZvLT5zcGljZXBvcnQgJiYgIWluZm8tPnNwaWNldGxzX3BvcnQpIHsKKyAgICAgICAgICAg IGFzc2VydCghImF0IGxlYXN0IG9uZSBvZiB0aGUgc3BpY2Vwb3J0IG9yIHRsc19wb3J0IG11c3Qg YmUgcHJvdmlkZWQiKTsgCisgICAgICAgIH0KKworICAgICAgICBpZiAoIWluZm8tPnNwaWNlZGlz YWJsZV90aWNrZXRpbmcpIHsKKyAgICAgICAgICAgIGlmICghaW5mby0+c3BpY2VwYXNzd2QpCisg ICAgICAgICAgICAgICAgYXNzZXJ0KCEic3BpY2UgdGlja2V0aW5nIGlzIGVuYWJsZWQgYnV0IG1p c3NpbmcgcGFzc3dvcmQiKTsKKyAgICAgICAgICAgIGVsc2UgaWYgKCFpbmZvLT5zcGljZXBhc3N3 ZFswXSkKKyAgICAgICAgICAgICAgICBhc3NlcnQoISJtaXNzaW5nIGNvZGUgZm9yIHN1cHBseWlu ZyBzcGljZSBwYXNzd29yZCIpOworICAgICAgICB9CisgICAgICAgIHNwaWNlb3B0aW9ucyA9IGxp YnhsX19zcHJpbnRmKGdjLCAicG9ydD0lZCx0bHMtcG9ydD0lZCIsCisgICAgICAgICAgICAgICAg ICAgICAgIGluZm8tPnNwaWNlcG9ydCwgaW5mby0+c3BpY2V0bHNfcG9ydCk7CisgICAgICAgIGlm ICghaW5mby0+c3BpY2Vob3N0KQorICAgICAgICAgICAgc3BpY2VvcHRpb25zID0gbGlieGxfX3Nw cmludGYoZ2MsCisgICAgICAgICAgICAgICAgICAgICIlcyxob3N0PSVzIiwgc3BpY2VvcHRpb25z LCBpbmZvLT5zcGljZWhvc3QpOworICAgICAgICBpZiAoaW5mby0+c3BpY2VkaXNhYmxlX3RpY2tl dGluZykKKyAgICAgICAgICAgIHNwaWNlb3B0aW9ucyA9IGxpYnhsX19zcHJpbnRmKGdjLCAiJXMs ZGlzYWJsZS10aWNrZXRpbmciLCBzcGljZW9wdGlvbnMpOworICAgICAgICBlbHNlCisgICAgICAg ICAgICBzcGljZW9wdGlvbnMgPSBsaWJ4bF9fc3ByaW50ZihnYywKKyAgICAgICAgICAgICAgICAg ICAgIiVzLHBhc3N3b3JkPSVzIiwgc3BpY2VvcHRpb25zLCBpbmZvLT5zcGljZXBhc3N3ZCk7Cisg ICAgICAgIHNwaWNlb3B0aW9ucyA9IGxpYnhsX19zcHJpbnRmKGdjLCAiJXMsYWdlbnQtbW91c2U9 JXMiLCBzcGljZW9wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGluZm8tPnNwaWNlYWdlbnRfbW91c2V0ID8gIm9uIiA6ICJvZmYiKTsKKworICAgICAgICBmbGV4 YXJyYXlfYXBwZW5kKGRtX2FyZ3MsICItc3BpY2UiKTsKKyAgICAgICAgZmxleGFycmF5X2FwcGVu ZChkbV9hcmdzLCBzcGljZW9wdGlvbnMpOworICAgICAgICBwcmludGYoIlNQSUNFIE9wdGlvbnM6 XG4gIC1zcGljZSAlc1xuIiwgc3BpY2VvcHRpb25zKTsKICAgICB9CiAKICAgICBpZiAoaW5mby0+ dHlwZSA9PSBYRU5QViAmJiAhaW5mby0+bm9ncmFwaGljKSB7CmRpZmYgLXIgM2YwMGM1ZmFhMTJh IHRvb2xzL2xpYnhsL3hsX2NtZGltcGwuYwotLS0gYS90b29scy9saWJ4bC94bF9jbWRpbXBsLmMJ V2VkIEFwciAxMyAxNjoxMDoyNiAyMDExICswMTAwCisrKyBiL3Rvb2xzL2xpYnhsL3hsX2NtZGlt cGwuYwlNb24gQXByIDE4IDEwOjUyOjEwIDIwMTEgKzA4MDAKQEAgLTEwODksNiArMTA4OSwyMCBA QCBza2lwX3ZmYjoKICAgICAgICAgICAgIGRtX2luZm8tPnNkbCA9IGw7CiAgICAgICAgIGlmICgh eGx1X2NmZ19nZXRfbG9uZyAoY29uZmlnLCAib3BlbmdsIiwgJmwpKQogICAgICAgICAgICAgZG1f aW5mby0+b3BlbmdsID0gbDsKKyAgICAgICAgaWYgKCF4bHVfY2ZnX2dldF9sb25nIChjb25maWcs ICJzcGljZSIsICZsKSkKKyAgICAgICAgICAgIGRtX2luZm8tPnNwaWNlID0gbDsKKyAgICAgICAg aWYgKCF4bHVfY2ZnX2dldF9sb25nIChjb25maWcsICJzcGljZXBvcnQiLCAmbCkpCisgICAgICAg ICAgICBkbV9pbmZvLT5zcGljZXBvcnQgPSBsOworICAgICAgICBpZiAoIXhsdV9jZmdfZ2V0X2xv bmcgKGNvbmZpZywgInNwaWNldGxzX3BvcnQiLCAmbCkpCisgICAgICAgICAgICBkbV9pbmZvLT5z cGljZXRsc19wb3J0ID0gbDsKKyAgICAgICAgeGx1X2NmZ19yZXBsYWNlX3N0cmluZyAoY29uZmln LCAic3BpY2Vob3N0IiwgJmRtX2luZm8tPnNwaWNlaG9zdCk7CisgICAgICAgIGlmICgheGx1X2Nm Z19nZXRfbG9uZyAoY29uZmlnLCAic3BpY2VkaXNhYmxlX3RpY2tldGluZyIsICZsKSkKKyAgICAg ICAgICAgIGRtX2luZm8tPnNwaWNlZGlzYWJsZV90aWNrZXRpbmcgPSBsOworICAgICAgICB4bHVf Y2ZnX3JlcGxhY2Vfc3RyaW5nIChjb25maWcsICJzcGljZXBhc3N3ZCIsICZkbV9pbmZvLT5zcGlj ZXBhc3N3ZCk7CisgICAgICAgIGlmICgheGx1X2NmZ19nZXRfbG9uZyAoY29uZmlnLCAic3BpY2Vh Z2VudF9tb3VzZSIsICZsKSkKKyAgICAgICAgICAgIGRtX2luZm8tPnNwaWNlYWdlbnRfbW91c2V0 ID0gbDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZG1faW5mby0+c3BpY2VhZ2VudF9tb3Vz ZXQgPSAxOwogICAgICAgICBpZiAoIXhsdV9jZmdfZ2V0X2xvbmcgKGNvbmZpZywgIm5vZ3JhcGhp YyIsICZsKSkKICAgICAgICAgICAgIGRtX2luZm8tPm5vZ3JhcGhpYyA9IGw7CiAgICAgICAgIGlm ICgheGx1X2NmZ19nZXRfbG9uZyAoY29uZmlnLCAiZ2Z4X3Bhc3N0aHJ1IiwgJmwpKQoKCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PUFwcGVuZGVkIHBhdGNoPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KU2lnbmVkLW9mZi1ieTogWmhvdSBQZW5nIDx6aG91 cGVuZ0BuZnMuaXNjYXMuYWMuY24+Cgp0b29sL2xpYnhsOiBtaXN0YWtlIGFwaWMgZm9yIGFjcGkg aW4gbGlieGxfX2J1aWxkX2RldmljZV9tb2RlbF9hcmdzX29sZC9uZXcKSXQgbWF5IGJlIGFkdmlz ZWRseSBjb2RlZCBmb3Igc29tZSByZWFzb24sIHRoZW4gaXQgY2FuIGJlIGEgbWlzdGFrZSBvZiBt eSB1bmRlcnN0YW5kaW5nLgoKZGlmZiAtciA2ODcxNDc0YTJhMDkgLXIgMDFmOGIyOWRkYThlIHRv b2xzL2xpYnhsL2xpYnhsX2RtLmMKLS0tIGEvdG9vbHMvbGlieGwvbGlieGxfZG0uYwlGcmkgQXBy IDE1IDEwOjA2OjU5IDIwMTEgKzA4MDAKKysrIGIvdG9vbHMvbGlieGwvbGlieGxfZG0uYwlGcmkg QXByIDE1IDE1OjE3OjQyIDIwMTEgKzA4MDAKQEAgLTEyMCw3ICsxMjAsNyBAQCBzdGF0aWMgY2hh ciAqKiBsaWJ4bF9fYnVpbGRfZGV2aWNlX21vZGVsCiAgICAgICAgIGlmIChpbmZvLT5zb3VuZGh3 KSB7CiAgICAgICAgICAgICBmbGV4YXJyYXlfdmFwcGVuZChkbV9hcmdzLCAiLXNvdW5kaHciLCBp bmZvLT5zb3VuZGh3LCBOVUxMKTsKICAgICAgICAgfQotICAgICAgICBpZiAoaW5mby0+YXBpYykg eworICAgICAgICBpZiAoaW5mby0+YWNwaSkgewogICAgICAgICAgICAgZmxleGFycmF5X2FwcGVu ZChkbV9hcmdzLCAiLWFjcGkiKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaW5mby0+dmNwdXMg PiAxKSB7CkBAIC0yNjgsNyArMjY4LDcgQEAgc3RhdGljIGNoYXIgKiogbGlieGxfX2J1aWxkX2Rl dmljZV9tb2RlbAogICAgICAgICBpZiAoaW5mby0+c291bmRodykgewogICAgICAgICAgICAgZmxl eGFycmF5X3ZhcHBlbmQoZG1fYXJncywgIi1zb3VuZGh3IiwgaW5mby0+c291bmRodywgTlVMTCk7 CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCFpbmZvLT5hcGljKSB7CisgICAgICAgIGlmICghaW5m by0+YWNwaSkgewogICAgICAgICAgICAgZmxleGFycmF5X2FwcGVuZChkbV9hcmdzLCAiLW5vLWFj cGkiKTsKICAgICAgICAgfQogICAgICAgICBpZiAoaW5mby0+dmNwdXMgPiAxKSB7Cgo= --bcaec51dd18542039604a12ca3ef Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --bcaec51dd18542039604a12ca3ef--