xserver: Branch 'XACE-modular' - 10 commits

Alan Coopersmith alanc at kemper.freedesktop.org
Thu Jun 22 02:40:15 EEST 2006


 Xext/appgroup.c          |    1 
 Xext/appgroup.h          |   87 ++++++++++++++++++++++++++++++++++++++++++++---
 Xext/security.c          |    2 -
 dix/dispatch.c           |    4 +-
 dix/window.c             |    2 -
 dix/xpstubs.c            |    3 +
 fb/fbcompose.c           |   21 ++++++++---
 hw/xfree86/xaa/xaaPict.c |    5 ++
 hw/xprint/DiPrint.h      |    5 ++
 include/extnsionst.h     |    2 -
 os/access.c              |    3 +
 os/connection.c          |    2 -
 os/io.c                  |    3 +
 os/utils.c               |    3 +
 os/xdmauth.c             |    9 +++-
 15 files changed, 131 insertions(+), 21 deletions(-)

New commits:
diff-tree f83cee0338eca095ad601374a87775be823a2565 (from 15c9002d68a7eeb02a6db1f231af7a18a3cf7512)
Author: Eamon Walsh <ewalsh at epoch.ncsc.mil>
Date:   Wed May 5 20:07:37 2004 +0000

    Modify XC-SECURITY and XC-APPGROUP extensions to work with XACE

diff --git a/Xext/appgroup.h b/Xext/appgroup.h
index 39087fe..a875068 100644
--- a/Xext/appgroup.h
+++ b/Xext/appgroup.h
@@ -51,7 +51,9 @@ extern ClientPtr XagLeader(
 );
 
 extern void XagCallClientStateChange(
-    ClientPtr			/* client */
+    CallbackListPtr *		/* pcbl */,
+    pointer 			/* nulldata */,
+    pointer 			/* calldata */
 );
 
 extern Bool XagIsControlledRoot (
diff-tree 15c9002d68a7eeb02a6db1f231af7a18a3cf7512 (from 90af38fa0c46c2081d2becac262a614c26ba6ef1)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Wed Jun 21 16:24:20 2006 -0700

    Correct ifdef - should be XACE, not XSECURITY

diff --git a/include/extnsionst.h b/include/extnsionst.h
index 8532b69..a86e52c 100644
--- a/include/extnsionst.h
+++ b/include/extnsionst.h
@@ -70,7 +70,7 @@ typedef struct _ExtensionEntry {
     pointer extPrivate;
     unsigned short (* MinorOpcode)(	/* called for errors */
 	ClientPtr /* client */);
-#ifdef XCSECURITY
+#ifdef XACE
     pointer securityState[4];		/* 4 slots for use */
 #endif
 } ExtensionEntry;
diff-tree 90af38fa0c46c2081d2becac262a614c26ba6ef1 (from parents)
Merge: 3e098efa35ba70ad4d5699af3130a3b02e1cb06e 77c947b900faf34f425eef1549d8210c475e093b
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Wed Jun 21 16:23:31 2006 -0700

    Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver
    
    Conflicts:
    
    	Xext/appgroup.c

diff --cc Xext/appgroup.c
index 8db4cef,9de355c..9bf416e
@@@ -43,8 -43,6 +43,7 @@@
  #include "servermd.h"
  #define _XAG_SERVER_
  #include <X11/extensions/Xagstr.h>
- #include <X11/extensions/Xagsrv.h>
 +#include "xacestr.h"
  #include "securitysrv.h"
  #include <X11/Xfuncproto.h>
  
diff --cc dix/dispatch.c
index 0434743,72d4995..a754a2f
@@@ -107,11 -107,11 +107,11 @@@
  #include "panoramiX.h"
  #include "panoramiXsrv.h"
  #endif
 -#ifdef XCSECURITY
 -#include "securitysrv.h"
 +#ifdef XACE
 +#include "xace.h"
  #endif
  #ifdef XAPPGROUP
- #include <X11/extensions/Xagsrv.h>
+ #include "appgroup.h"
  #endif
  #ifdef XKB
  #ifndef XKB_IN_SERVER
diff --cc dix/window.c
index 45a8039,1cf14bc..d90e39b
@@@ -127,10 -127,10 +127,10 @@@
  #include "globals.h"
  
  #ifdef XAPPGROUP
- #include <X11/extensions/Xagsrv.h>
+ #include "appgroup.h"
  #endif
 -#ifdef XCSECURITY
 -#include "securitysrv.h"
 +#ifdef XACE
 +#include "xace.h"
  #endif
  
  /******
diff --cc os/connection.c
index 2fc3e8c,ce76566..ab87730
@@@ -148,11 -148,8 +148,11 @@@
  #include "opaque.h"
  #include "dixstruct.h"
  #ifdef XAPPGROUP
- #include <X11/extensions/Xagsrv.h>
+ #include "appgroup.h"
  #endif
 +#ifdef XACE
 +#include "xace.h"
 +#endif
  #ifdef XCSECURITY
  #include "securitysrv.h"
  #endif
diff-tree 3e098efa35ba70ad4d5699af3130a3b02e1cb06e (from 9af315a9be19b48faa1249e0575cbe3d1e31dec5)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Wed Jun 21 16:21:03 2006 -0700

    Correct ifdef - should be XACE, not XCSECURITY

diff --git a/dix/dispatch.c b/dix/dispatch.c
index ef97edc..0434743 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -2097,7 +2097,7 @@ DoGetImage(register ClientPtr client, in
     Mask		plane = 0;
     char		*pBuf;
     xGetImageReply	xgi;
-#ifdef XCSECURITY
+#ifdef XACE
     RegionPtr pVisibleRegion = NULL;
 #endif
 
diff-tree 77c947b900faf34f425eef1549d8210c475e093b (from 40aafaf154ba8a2cba857689d1481be2d4a610c2)
Author: Alan Coopersmith <alan.coopersmith at sun.com>
Date:   Wed Jun 21 16:18:41 2006 -0700

    Move Xserver internal API for appgroup from Xagsrv.h to appgroup.h
    
    (Since all use is inside the xserver module, might as well keep the header
     in the Xserver module instead of in proto/XExt to allow easier synchronization
     of updates.)

diff --git a/Xext/appgroup.c b/Xext/appgroup.c
index 61c1aa0..9de355c 100644
--- a/Xext/appgroup.c
+++ b/Xext/appgroup.c
@@ -43,7 +43,6 @@ from The Open Group.
 #include "servermd.h"
 #define _XAG_SERVER_
 #include <X11/extensions/Xagstr.h>
-#include <X11/extensions/Xagsrv.h>
 #include "securitysrv.h"
 #include <X11/Xfuncproto.h>
 
diff --git a/Xext/appgroup.h b/Xext/appgroup.h
index 05c9ef1..39087fe 100644
--- a/Xext/appgroup.h
+++ b/Xext/appgroup.h
@@ -1,10 +1,87 @@
-/* $XFree86$ */
+/*
+Copyright 1996, 1998  The Open Group
 
-void XagClientStateChange(
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+The above copyright notice and this permission notice shall be included
+in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+*/
+
+#ifndef _APPGROUP_SRV_H_
+#define _APPGROUP_SRV_H_
+
+#include <X11/Xfuncproto.h>
+
+_XFUNCPROTOBEGIN
+
+extern void XagConnectionInfo(
+    ClientPtr			/* client */,
+    xConnSetupPrefix**		/* conn_prefix */,
+    char**			/* conn_info */,
+    int*			/* num_screens */
+);
+
+extern VisualID XagRootVisual(
+    ClientPtr			/* client */
+);
+
+extern Colormap XagDefaultColormap(
+    ClientPtr			/* client */
+);
+
+extern ClientPtr XagLeader(
+    ClientPtr			/* client */
+);
+
+extern void XagCallClientStateChange(
+    ClientPtr			/* client */
+);
+
+extern Bool XagIsControlledRoot (
+    ClientPtr			/* client */,
+    WindowPtr			/* pParent */
+);
+
+extern XID XagId (
+    ClientPtr			/* client */
+);
+
+extern void XagGetDeltaInfo (
+    ClientPtr			/* client */,
+    CARD32*			/* buf */
+);
+
+extern void XagClientStateChange(
     CallbackListPtr* pcbl,
     pointer nulldata,
     pointer calldata);
-int ProcXagCreate (
+
+extern int ProcXagCreate (
     register ClientPtr client);
-int ProcXagDestroy(
+
+extern int ProcXagDestroy(
     register ClientPtr client);
+
+_XFUNCPROTOEND
+
+#endif /* _APPGROUP_SRV_H_ */
+
+
+
diff --git a/Xext/security.c b/Xext/security.c
index 31f2b92..187e800 100644
--- a/Xext/security.c
+++ b/Xext/security.c
@@ -44,7 +44,7 @@ in this Software without prior written a
 #include <assert.h>
 #include <stdarg.h>
 #ifdef XAPPGROUP
-#include <X11/extensions/Xagsrv.h>
+#include "appgroup.h"
 #endif
 #include <stdio.h>  /* for file reading operations */
 #include <X11/Xatom.h>  /* for XA_STRING */
diff --git a/dix/dispatch.c b/dix/dispatch.c
index 4b4eb2b..72d4995 100644
--- a/dix/dispatch.c
+++ b/dix/dispatch.c
@@ -111,7 +111,7 @@ int ProcInitialConnection();
 #include "securitysrv.h"
 #endif
 #ifdef XAPPGROUP
-#include <X11/extensions/Xagsrv.h>
+#include "appgroup.h"
 #endif
 #ifdef XKB
 #ifndef XKB_IN_SERVER
diff --git a/dix/window.c b/dix/window.c
index 2be01df..1cf14bc 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -127,7 +127,7 @@ Equipment Corporation.
 #include "globals.h"
 
 #ifdef XAPPGROUP
-#include <X11/extensions/Xagsrv.h>
+#include "appgroup.h"
 #endif
 #ifdef XCSECURITY
 #include "securitysrv.h"
diff --git a/os/connection.c b/os/connection.c
index 697ff4e..ce76566 100644
--- a/os/connection.c
+++ b/os/connection.c
@@ -148,7 +148,7 @@ extern __const__ int _nfiles;
 #include "opaque.h"
 #include "dixstruct.h"
 #ifdef XAPPGROUP
-#include <X11/extensions/Xagsrv.h>
+#include "appgroup.h"
 #endif
 #ifdef XCSECURITY
 #include "securitysrv.h"
diff-tree 40aafaf154ba8a2cba857689d1481be2d4a610c2 (from 77aa701e898c6525322cc4029d95167dd9f6e618)
Author: Greg Kroah-Hartman <gregkh at suse.de>
Date:   Wed Jun 21 14:36:09 2006 -0700

    fix a number of compiler warnings in os/*

diff --git a/os/access.c b/os/access.c
index db52aa0..5946b16 100644
--- a/os/access.c
+++ b/os/access.c
@@ -67,6 +67,9 @@ SOFTWARE.
 
 #include <stdio.h>
 #include <stdlib.h>
+#define XSERV_t
+#define TRANS_SERVER
+#define TRANS_REOPEN
 #include <X11/Xtrans/Xtrans.h>
 #include <X11/Xauth.h>
 #include <X11/X.h>
diff --git a/os/io.c b/os/io.c
index a9527ba..e95f0e6 100644
--- a/os/io.c
+++ b/os/io.c
@@ -66,6 +66,9 @@ SOFTWARE.
 #include <X11/Xwinsock.h>
 #endif
 #include <stdio.h>
+#define XSERV_t
+#define TRANS_SERVER
+#define TRANS_REOPEN
 #include <X11/Xtrans/Xtrans.h>
 #include <X11/Xmd.h>
 #include <errno.h>
diff --git a/os/utils.c b/os/utils.c
index f977b83..e41c366 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -68,6 +68,9 @@ OR PERFORMANCE OF THIS SOFTWARE.
 #include <stdio.h>
 #include "misc.h"
 #include <X11/X.h>
+#define XSERV_t
+#define TRANS_SERVER
+#define TRANS_REOPEN
 #include <X11/Xtrans/Xtrans.h>
 #include "input.h"
 #include "dixfont.h"
diff --git a/os/xdmauth.c b/os/xdmauth.c
index 7742981..faa2e37 100644
--- a/os/xdmauth.c
+++ b/os/xdmauth.c
@@ -41,6 +41,9 @@ from The Open Group.
 
 #include <stdio.h>
 #include <X11/X.h>
+#define XSERV_t
+#define TRANS_SERVER
+#define TRANS_REOPEN
 #include <X11/Xtrans/Xtrans.h>
 #include "os.h"
 #include "osdep.h"
@@ -153,9 +156,9 @@ XdmAuthenticationInit (char *cookie, int
     XdmcpRegisterAuthentication (XdmAuthenticationName, XdmAuthenticationNameLen,
 				 (unsigned char *)&rho,
 				 sizeof (rho),
-				 XdmAuthenticationValidator,
-				 XdmAuthenticationGenerator,
-				 XdmAuthenticationAddAuth);
+				 (ValidatorFunc)XdmAuthenticationValidator,
+				 (GeneratorFunc)XdmAuthenticationGenerator,
+				 (AddAuthorFunc)XdmAuthenticationAddAuth);
 }
 
 #endif /* XDMCP */
diff-tree 77aa701e898c6525322cc4029d95167dd9f6e618 (from 865884d050e1778180f7677e15f9ee1625ea4bb2)
Author: Greg Kroah-Hartman <gregkh at suse.de>
Date:   Wed Jun 21 14:16:48 2006 -0700

    add some function prototypes to hw/xprint/DiPrint.h as they are exported

diff --git a/hw/xprint/DiPrint.h b/hw/xprint/DiPrint.h
index a264779..6801ce0 100644
--- a/hw/xprint/DiPrint.h
+++ b/hw/xprint/DiPrint.h
@@ -41,6 +41,7 @@ copyright holders.
 #ifdef HAVE_DIX_CONFIG_H
 #include <dix-config.h>
 #endif
+#include <X11/fonts/fontstruct.h>
 
 #ifndef _XpDiPrint_H_
 #define _XpDiPrint_H_ 1
@@ -74,6 +75,10 @@ extern void PrinterInitGlobals(void);
 
 extern void PrinterInitOutput(ScreenInfo *pScreenInfo, int argc, char **argv);
 
+extern Bool XpClientIsPrintClient(ClientPtr client, FontPathElementPtr fpe);
+
+extern Bool XpClientIsBitmapClient(ClientPtr client);
+
 extern void _XpVoidNoop(void);
 
 extern Bool _XpBoolNoop(void);
diff-tree 865884d050e1778180f7677e15f9ee1625ea4bb2 (from ed18d776f02e2ab235954501ef64936af9f9d909)
Author: Greg Kroah-Hartman <gregkh at suse.de>
Date:   Wed Jun 21 14:16:28 2006 -0700

    fix compiler warning in dix/xpstubs.c when XPRINT is not defined

diff --git a/dix/xpstubs.c b/dix/xpstubs.c
index 5135cc3..c06a524 100644
--- a/dix/xpstubs.c
+++ b/dix/xpstubs.c
@@ -35,6 +35,9 @@ from The Open Group.
 #include <X11/fonts/font.h>
 #ifdef XPRINT
 #include "DiPrint.h"
+#else
+extern Bool XpClientIsBitmapClient(ClientPtr client);
+extern Bool XpClientIsPrintClient(ClientPtr client, FontPathElementPtr fpe);
 #endif
 
 Bool
diff-tree ed18d776f02e2ab235954501ef64936af9f9d909 (from ea5e0eabd1303a55d8fc10f44d21a3d371ce8919)
Author: Kristian Høgsberg <krh at redhat.com>
Date:   Wed Jun 21 16:22:14 2006 -0400

    Fix #2488 for fb too: sample pixel center when transforming.

diff --git a/fb/fbcompose.c b/fb/fbcompose.c
index 6f7e3e6..03adab4 100644
--- a/fb/fbcompose.c
+++ b/fb/fbcompose.c
@@ -2726,8 +2726,9 @@ static void fbFetchSourcePict(PicturePtr
         xFixed_32_32 l;
         xFixed_48_16 dx, dy, a, b, off;
 
-        v.vector[0] = IntToxFixed(x);
-        v.vector[1] = IntToxFixed(y);
+        /* reference point is the center of the pixel */
+        v.vector[0] = IntToxFixed(x) + xFixed1/2;
+        v.vector[1] = IntToxFixed(y) + xFixed1/2;
         v.vector[2] = xFixed1;
         if (pict->transform) {
             if (!PictureTransformPoint3d (pict->transform, &v))
@@ -2793,8 +2794,9 @@ static void fbFetchSourcePict(PicturePtr
 
         if (pict->transform) {
             PictVector v;
-            v.vector[0] = IntToxFixed(x);
-            v.vector[1] = IntToxFixed(y);
+            /* reference point is the center of the pixel */
+            v.vector[0] = IntToxFixed(x) + xFixed1/2;
+            v.vector[1] = IntToxFixed(y) + xFixed1/2;
             v.vector[2] = xFixed1;
             if (!PictureTransformPoint3d (pict->transform, &v))
                 return;
@@ -2914,8 +2916,9 @@ static void fbFetchTransformed(PicturePt
     dx = pict->pDrawable->x;
     dy = pict->pDrawable->y;
 
-    v.vector[0] = IntToxFixed(x - dx);
-    v.vector[1] = IntToxFixed(y - dy);
+    /* reference point is the center of the pixel */
+    v.vector[0] = IntToxFixed(x - dx) + xFixed1 / 2;
+    v.vector[1] = IntToxFixed(y - dy) + xFixed1 / 2;
     v.vector[2] = xFixed1;
 
     /* when using convolution filters one might get here without a transform */
@@ -3020,6 +3023,12 @@ static void fbFetchTransformed(PicturePt
             }
         }
     } else if (pict->filter == PictFilterBilinear) {
+        /* adjust vector for maximum contribution at 0.5, 0.5 of each texel. */
+        v.vector[0] -= v.vector[2] / 2;
+        v.vector[1] -= v.vector[2] / 2;
+        unit.vector[0] -= unit.vector[2] / 2;
+        unit.vector[1] -= unit.vector[2] / 2;
+
         if (pict->repeatType == RepeatNormal) {
             if (REGION_NUM_RECTS(pict->pCompositeClip) == 1) {
                 for (i = 0; i < width; ++i) {
diff-tree ea5e0eabd1303a55d8fc10f44d21a3d371ce8919 (from d44b2a0a57fb89741173c31676af0ccc822387dc)
Author: Matthias Hopf <mhopf at suse.de>
Date:   Wed Jun 21 17:08:51 2006 +0200

    Bug 4320: Fastpath corner case improvement for Composite.

diff --git a/hw/xfree86/xaa/xaaPict.c b/hw/xfree86/xaa/xaaPict.c
index f7c1f3d..a1ff510 100644
--- a/hw/xfree86/xaa/xaaPict.c
+++ b/hw/xfree86/xaa/xaaPict.c
@@ -516,7 +516,10 @@ XAAComposite (CARD8      op,
        (!pSrc->repeat || (xSrc >= 0 && ySrc >= 0 &&
 			  xSrc+width<=pSrc->pDrawable->width &&
 			  ySrc+height<=pSrc->pDrawable->height)) &&
-       ((op == PictOpSrc && pSrc->format == pDst->format) ||
+       ((op == PictOpSrc &&
+	 ((pSrc->format==pDst->format) ||
+	  (pSrc->format==PICT_a8r8g8b8 && pDst->format==PICT_x8r8g8b8) ||
+	  (pSrc->format==PICT_a8b8g8r8 && pDst->format==PICT_x8b8g8r8))) ||
 	(op == PictOpOver && !pSrc->alphaMap && !pDst->alphaMap &&
 	 pSrc->format==pDst->format &&
 	 (pSrc->format==PICT_x8r8g8b8 || pSrc->format==PICT_x8b8g8r8))))



More information about the xorg-commit mailing list