From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=38373 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PiEFC-0002jv-TR for qemu-devel@nongnu.org; Wed, 26 Jan 2011 17:53:44 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PiEF5-0007Wj-Sd for qemu-devel@nongnu.org; Wed, 26 Jan 2011 17:53:37 -0500 Received: from mail-qy0-f180.google.com ([209.85.216.180]:34551) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PiEF5-0007Wc-Ou for qemu-devel@nongnu.org; Wed, 26 Jan 2011 17:53:35 -0500 Received: by qyk29 with SMTP id 29so1603394qyk.4 for ; Wed, 26 Jan 2011 14:53:35 -0800 (PST) Message-ID: <4D40A5E7.9080004@codemonkey.ws> Date: Wed, 26 Jan 2011 16:53:27 -0600 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH V9 04/16] xen: Support new libxc calls from xen unstable. References: <1295965760-31508-1-git-send-email-anthony.perard@citrix.com> <1295965760-31508-5-git-send-email-anthony.perard@citrix.com> In-Reply-To: <1295965760-31508-5-git-send-email-anthony.perard@citrix.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: anthony.perard@citrix.com Cc: Xen Devel , QEMU-devel , Stefano Stabellini On 01/25/2011 08:29 AM, anthony.perard@citrix.com wrote: > From: Anthony PERARD > > Update the libxenctrl calls in Qemu to use the new interface, otherwise > Qemu wouldn't be able to build against new versions of the library. > > We also check libxenctrl version in configure, from Xen 3.3.0 to Xen > unstable. > > Signed-off-by: Anthony PERARD > Signed-off-by: Stefano Stabellini > --- > Makefile.target | 3 + > configure | 62 +++++++++++++++++++++++++++++- > hw/xen_backend.c | 21 +++++----- > hw/xen_backend.h | 7 ++- > hw/xen_common.h | 36 ++++++++++------- > hw/xen_disk.c | 4 +- > hw/xen_domainbuild.c | 2 +- > hw/xen_interfaces.c | 103 +++++++++++++++++++++++++++++++++++++++++++++----- > hw/xen_interfaces.h | 76 +++++++++++++++++++++++++------------ > hw/xen_redirect.h | 32 ++++++++------- > 10 files changed, 264 insertions(+), 82 deletions(-) > > diff --git a/Makefile.target b/Makefile.target > index db29e96..d09719f 100644 > --- a/Makefile.target > +++ b/Makefile.target > @@ -205,6 +205,9 @@ QEMU_CFLAGS += $(VNC_SASL_CFLAGS) > QEMU_CFLAGS += $(VNC_JPEG_CFLAGS) > QEMU_CFLAGS += $(VNC_PNG_CFLAGS) > > +# xen support > +obj-$(CONFIG_XEN) += xen_interfaces.o > + > # xen backend driver support > obj-$(CONFIG_XEN) += xen_backend.o xen_devconfig.o > obj-$(CONFIG_XEN) += xen_console.o xenfb.o xen_disk.o xen_nic.o > diff --git a/configure b/configure > index 5a9121d..fde9bad 100755 > --- a/configure > +++ b/configure > @@ -126,6 +126,7 @@ vnc_jpeg="" > vnc_png="" > vnc_thread="no" > xen="" > +xen_ctrl_version="" > linux_aio="" > attr="" > vhost_net="" > @@ -1144,13 +1145,71 @@ fi > > if test "$xen" != "no" ; then > xen_libs="-lxenstore -lxenctrl -lxenguest" > + > + # Xen unstable > cat> $TMPC< #include > #include > -int main(void) { xs_daemon_open(); xc_interface_open(); return 0; } > +#include > +#include > +#if !defined(HVM_MAX_VCPUS) > +# error HVM_MAX_VCPUS not defined > +#endif > +int main(void) { > + xc_interface *xc; > + xs_daemon_open(); > + xc = xc_interface_open(0, 0, 0); > + xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0); > + xc_gnttab_open(NULL, 0); > + return 0; > +} > EOF > if compile_prog "" "$xen_libs" ; then > + xen_ctrl_version=410 > + xen=yes > + > + # Xen 4.0.0 > + elif ( > + cat> $TMPC< +#include > +#include > +#include > +#include > +#if !defined(HVM_MAX_VCPUS) > +# error HVM_MAX_VCPUS not defined > +#endif > +int main(void) { > + xs_daemon_open(); > + xc_interface_open(); > + xc_gnttab_open(); > + xc_hvm_set_mem_type(0, 0, HVMMEM_ram_ro, 0, 0); > + return 0; > +} > Really? There's no VERSION #define? Can please fix this upstream so we don't have to do this forever. > diff --git a/hw/xen_backend.c b/hw/xen_backend.c > index 860b038..7e78546 100644 > --- a/hw/xen_backend.c > +++ b/hw/xen_backend.c > @@ -43,7 +43,8 @@ > /* ------------------------------------------------------------- */ > > /* public */ > -int xen_xc; > +qemu_xc_interface xen_xc = XC_HANDLER_INITIAL_VALUE; > +qemu_xc_gnttab xen_xcg = XC_HANDLER_INITIAL_VALUE; > Where ever qemu_xc_interface comes from, the typename needs to change. > +/* Xen unstable */ > +#if CONFIG_XEN_CTRL_INTERFACE_VERSION< 410 > +typedef int qemu_xc_interface; > Ah, right here :-) Regards, Anthony Liguori