From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:33593) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QdHrR-0004hw-Pj for qemu-devel@nongnu.org; Sun, 03 Jul 2011 04:17:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QdHrP-0001QY-5f for qemu-devel@nongnu.org; Sun, 03 Jul 2011 04:17:01 -0400 Received: from mx1.redhat.com ([209.132.183.28]:11592) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QdHrO-0001QT-JP for qemu-devel@nongnu.org; Sun, 03 Jul 2011 04:16:58 -0400 Date: Sun, 3 Jul 2011 11:17:04 +0300 From: "Michael S. Tsirkin" Message-ID: <20110703081704.GB13183@redhat.com> References: <20110630155725.GA9765@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline In-Reply-To: Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCHv2] Add compat eventfd header List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Blue Swirl Cc: Paolo Bonzini , Alexander Graf , qemu-devel@nongnu.org, Aurelien Jarno , Stefan Hajnoczi On Fri, Jul 01, 2011 at 11:05:28PM +0300, Blue Swirl wrote: > On Thu, Jun 30, 2011 at 6:57 PM, Michael S. Tsirkin wr= ote: > > Support build on rhel 5.X where we have syscall for eventfd but not > > userspace wrapper. > > > > (cherry-picked from commit 9e3269181e9bc56feb43bcd4e8ce0b82cd543e65 > > =A0in qemu-kvm.git). > > > > Signed-off-by: Michael S. Tsirkin > > --- > > > > Changes from v1: > > =A0checkpatch fix > > =A0address comments by agraf > > =A0verify we are on linux > > > > =A0compat/sys/eventfd.h | =A0 20 ++++++++++++++++++++ > > =A0configure =A0 =A0 =A0 =A0 =A0 =A0| =A0 =A06 ++++-- > > =A02 files changed, 24 insertions(+), 2 deletions(-) > > =A0create mode 100644 compat/sys/eventfd.h > > > > diff --git a/compat/sys/eventfd.h b/compat/sys/eventfd.h > > new file mode 100644 > > index 0000000..1801a5f > > --- /dev/null > > +++ b/compat/sys/eventfd.h >=20 > Since we have linux-headers directory now, the directory should be > compat-headers. I'd also add 'linux' directory below that to avoid > collisions, so the full path would be > compat-headers/linux/sys/eventfd.h. >=20 I'll make it compat-headers/sys/eventfd.h. Actually this header is useful for non-linux as well: CONFIG_EVENTFD is not defined there which in theory makes it possible to include sys/eventfd.h without ifdefs. > > @@ -0,0 +1,20 @@ > > +#ifndef _COMPAT_SYS_EVENTFD > > +#define _COMPAT_SYS_EVENTFD > > + > > +#ifdef CONFIG_EVENTFD > > + > > +#ifndef __linux__ > > +#error __linux__ is not defined: eventfd is only supported on linux > > +#endif >=20 > With the linux directory, this check wouldn't be needed. It's not > incorrect and we could add more specific checks later (for example if > SYS_eventfd is not defined). Yes, it's not incorrect because it is nested within CONFIG_EVENTFD. If CONFIG_EVENTFD is set and SYS_eventfd is not defined then there's a bug in the configure script. > > + > > +#include > > +#include > > + > > +static inline int eventfd(int count, int flags) > > +{ > > + =A0 =A0return syscall(SYS_eventfd, count, flags); > > +} > > + > > +#endif > > + > > +#endif > > diff --git a/configure b/configure > > index 856b41e..6f7dd74 100755 > > --- a/configure > > +++ b/configure > > @@ -822,7 +822,6 @@ esac > > > > =A0[ -z "$guest_base" ] && guest_base=3D"$host_guest_base" > > > > - > > =A0default_target_list=3D"" > > > > =A0# these targets are portable > > @@ -891,6 +890,9 @@ sparc64-bsd-user \ > > =A0" > > =A0fi > > > > +#compat headers > > +QEMU_CFLAGS=3D"$QEMU_CFLAGS -idirafter $source_path/compat" >=20 > Please use $source_path/compat-headers/$targetos/. I think it's best to keep it simple. When we have many compat headers we will see how to split them best. If most of the code turns out to be common we will want to avoid duplicating it. > > + > > =A0if test x"$show_help" =3D x"yes" ; then > > =A0cat << EOF > > > > @@ -2122,7 +2124,7 @@ int main(void) > > =A0 =A0 return 0; > > =A0} > > =A0EOF > > -if compile_prog "" "" ; then > > +if compile_prog "-DCONFIG_EVENTFD" "" ; then > > =A0 eventfd=3Dyes > > =A0fi > > > > -- > > 1.7.5.53.gc233e > >