Re: [PATCH] dri2: Pass a ScreenPtr through to the driver's AuthMagic function.
On Mon, 2012-06-18 at 11:52 +1000, Christopher James Halse Rogers wrote: xwayland drivers need access to their screen private data to authenticate. Now that drivers no longer have direct access to the global screen arrays, this needs to be passed in as function context. v2: Don't break ABI Signed-off-by: Christopher James Halse Rogers christopher.halse.rog...@canonical.com Reviewed-by: Michel Dänzer michel.daen...@amd.com -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Debian, X and DRI developer ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH] dri2: Pass a ScreenPtr through to the driver's AuthMagic function.
On Sun, Jun 17, 2012 at 9:52 PM, Christopher James Halse Rogers christopher.halse.rog...@canonical.com wrote: xwayland drivers need access to their screen private data to authenticate. Now that drivers no longer have direct access to the global screen arrays, this needs to be passed in as function context. v2: Don't break ABI Yeah, looks good to me now. Reviewed-by: Kristian Høgsberg k...@bitplanet.net Signed-off-by: Christopher James Halse Rogers christopher.halse.rog...@canonical.com --- hw/xfree86/dri2/dri2.c | 35 --- hw/xfree86/dri2/dri2.h | 9 - 2 files changed, 36 insertions(+), 8 deletions(-) diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c index babf32f..412feb3 100644 --- a/hw/xfree86/dri2/dri2.c +++ b/hw/xfree86/dri2/dri2.c @@ -104,7 +104,8 @@ typedef struct _DRI2Screen { DRI2ScheduleSwapProcPtr ScheduleSwap; DRI2GetMSCProcPtr GetMSC; DRI2ScheduleWaitMSCProcPtr ScheduleWaitMSC; - DRI2AuthMagicProcPtr AuthMagic; + DRI2AuthMagic2ProcPtr AuthMagic; + DRI2AuthMagicProcPtr LegacyAuthMagic; DRI2ReuseBufferNotifyProcPtr ReuseBufferNotify; DRI2SwapLimitValidateProcPtr SwapLimitValidate; DRI2GetParamProcPtr GetParam; @@ -1110,12 +,22 @@ DRI2Connect(ScreenPtr pScreen, unsigned int driverType, int *fd, return TRUE; } +static Bool +DRI2AuthMagic (ScreenPtr pScreen, int fd, uint32_t magic) +{ + DRI2ScreenPtr ds = DRI2GetScreen(pScreen); + if (ds == NULL || (*ds-LegacyAuthMagic) (ds-fd, magic)) + return FALSE; + + return TRUE; +} + Bool DRI2Authenticate(ScreenPtr pScreen, uint32_t magic) { DRI2ScreenPtr ds = DRI2GetScreen(pScreen); - if (ds == NULL || (*ds-AuthMagic) (ds-fd, magic)) + if (ds == NULL || (*ds-AuthMagic) (pScreen, ds-fd, magic)) return FALSE; return TRUE; @@ -1202,8 +1213,11 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info) cur_minor = 1; } + if (info-version = 8) { + ds-AuthMagic = info-AuthMagic2; + } if (info-version = 5) { - ds-AuthMagic = info-AuthMagic; + ds-LegacyAuthMagic = info-AuthMagic; } if (info-version = 6) { @@ -1218,14 +1232,21 @@ DRI2ScreenInit(ScreenPtr pScreen, DRI2InfoPtr info) /* * if the driver doesn't provide an AuthMagic function or the info struct - * version is too low, it relies on the old method (using libdrm) or fail + * version is too low, call through LegacyAuthMagic */ - if (!ds-AuthMagic) + if (!ds-AuthMagic) { + ds-AuthMagic = DRI2AuthMagic; + /* + * If the driver doesn't provide an AuthMagic function + * it relies on the old method (using libdrm) or fails + */ + if (!ds-LegacyAuthMagic) #ifdef WITH_LIBDRM - ds-AuthMagic = drmAuthMagic; + ds-LegacyAuthMagic = drmAuthMagic; #else - goto err_out; + goto err_out; #endif + } /* Initialize minor if needed and set to minimum provied by DDX */ if (!dri2_minor || dri2_minor cur_minor) diff --git a/hw/xfree86/dri2/dri2.h b/hw/xfree86/dri2/dri2.h index f849be6..004d286 100644 --- a/hw/xfree86/dri2/dri2.h +++ b/hw/xfree86/dri2/dri2.h @@ -64,6 +64,7 @@ typedef void (*DRI2CopyRegionProcPtr) (DrawablePtr pDraw, DRI2BufferPtr pSrcBuffer); typedef void (*DRI2WaitProcPtr) (WindowPtr pWin, unsigned int sequence); typedef int (*DRI2AuthMagicProcPtr) (int fd, uint32_t magic); +typedef int (*DRI2AuthMagic2ProcPtr) (ScreenPtr pScreen, int fd, uint32_t magic); /** * Schedule a buffer swap @@ -192,7 +193,7 @@ typedef int (*DRI2GetParamProcPtr) (ClientPtr client, /** * Version of the DRI2InfoRec structure defined in this header */ -#define DRI2INFOREC_VERSION 7 +#define DRI2INFOREC_VERSION 8 typedef struct { unsigned int version; /** Version of this struct */ @@ -229,6 +230,12 @@ typedef struct { /* added in version 7 */ DRI2GetParamProcPtr GetParam; + + /* added in version 8 */ + /* AuthMagic callback which passes extra context */ + /* If this is NULL the AuthMagic callback is used */ + /* If this is non-NULL the AuthMagic callback is ignored */ + DRI2AuthMagic2ProcPtr AuthMagic2; } DRI2InfoRec, *DRI2InfoPtr; extern _X_EXPORT int DRI2EventBase; -- 1.7.10.4 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH] dri2: Pass a ScreenPtr through to the driver's AuthMagic function.
Christopher James Halse Rogers christopher.halse.rog...@canonical.com writes: +typedef int (*DRI2AuthMagic2ProcPtr) (ScreenPtr pScreen, int fd, uint32_t magic); Bikeshed -- seems like the 'fd' parameter is not needed in this API? I'll note that in the implementation of the wrapper, you pull it from the screen private instead of using the provided parameter... -- keith.pack...@intel.com pgpH60QR8VD8D.pgp Description: PGP signature ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
[PATCH xorg-gtest] Ensure xorg-gtest implementation is included in xorg-gtest{-all, _main}.cpp
GNU automake puts -I. -I.. at the beginning of every invocation of g++. This breaks xorg-gtest compilation if there is a file of the same name as an xorg-gtest implementation file in ../src/ or ../../src. For example, if compiling xorg-gtest-all.cpp in /home/user1/library/test and there exists /home/user1/library/src/device.cpp, the library's device.cpp file will be included instead of xorg-gtest's. This change adds a -iquote option to xorg-gtest compilation performed in Makefile-xorg-gtest.am. Directories specified with -iquote are searched ahead of directories specified by -I. This changes Makefile-xorg-gtest.am, which projects can copy to provide rules for building xorg-gtest in autotools projects. For substantial changes, projects will want to import the latest version of this file, but this particular fix is only needed if a project runs into build issues. If your project builds without issue, there is no need to replace the existing version of Makefile-xorg-gtest.am. Signed-off-by: Chase Douglas chase.doug...@canonical.com --- src/Makefile-xorg-gtest.am |2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Makefile-xorg-gtest.am b/src/Makefile-xorg-gtest.am index 20983eb..4f36b13 100644 --- a/src/Makefile-xorg-gtest.am +++ b/src/Makefile-xorg-gtest.am @@ -42,6 +42,7 @@ libxorg_gtest_a_CPPFLAGS = \ $(XORG_GTEST_CPPFLAGS) \ $(GTEST_CPPFLAGS) \ $(AM_CPPFLAGS) \ + -iquote$(XORG_GTEST_SOURCE) \ -w libxorg_gtest_a_CXXFLAGS = \ $(XORG_GTEST_CXXFLAGS) \ @@ -54,6 +55,7 @@ libxorg_gtest_main_a_CPPFLAGS = \ $(XORG_GTEST_CPPFLAGS) \ $(GTEST_CPPFLAGS) \ $(AM_CPPFLAGS) \ + -iquote$(XORG_GTEST_SOURCE) \ -w libxorg_gtest_main_a_CXXFLAGS = \ $(XORG_GTEST_CXXFLAGS) \ -- 1.7.9.5 ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH 1/4] AC_SUBST the GLX_SYS_LIBS
On 06/17/12 08:40 PM, Peter Hutterer wrote: libxservertest needs -lpthread from glxapi.c's pthread_once() call. Usually this would be pulled in by the XORG_LIBS but not when building without Xorg. This commit has no visible effect on the current tree, preparation for test cleanups. Signed-off-by: Peter Hutterer peter.hutte...@who-t.net --- configure.ac |1 + test/Makefile.am |2 +- test/xi2/Makefile.am |2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 763ca7a..9cf2821 100644 --- a/configure.ac +++ b/configure.ac @@ -1060,6 +1060,7 @@ if test x$GLX_USE_TLS = xyes ; then GLX_SYS_LIBS=$GLX_SYS_LIBS -lpthread fi AC_SUBST([GLX_DEFINES]) +AC_SUBST([GLX_SYS_LIBS]) Isn't that bit already in git master from fd115ee114e ? -- -Alan Coopersmith- alan.coopersm...@oracle.com Oracle Solaris Engineering - http://blogs.oracle.com/alanc ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
Re: [PATCH 1/4] AC_SUBST the GLX_SYS_LIBS
On Mon, Jun 18, 2012 at 03:45:28PM -0700, Alan Coopersmith wrote: On 06/17/12 08:40 PM, Peter Hutterer wrote: libxservertest needs -lpthread from glxapi.c's pthread_once() call. Usually this would be pulled in by the XORG_LIBS but not when building without Xorg. This commit has no visible effect on the current tree, preparation for test cleanups. Signed-off-by: Peter Hutterer peter.hutte...@who-t.net --- configure.ac |1 + test/Makefile.am |2 +- test/xi2/Makefile.am |2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index 763ca7a..9cf2821 100644 --- a/configure.ac +++ b/configure.ac @@ -1060,6 +1060,7 @@ if test x$GLX_USE_TLS = xyes ; then GLX_SYS_LIBS=$GLX_SYS_LIBS -lpthread fi AC_SUBST([GLX_DEFINES]) +AC_SUBST([GLX_SYS_LIBS]) Isn't that bit already in git master from fd115ee114e ? yes, looks like it, thanks. serves me right for working off the 1.12 branch. Cheers, Peter ___ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel