From 410e5b1d738ba47b36778e6cbed44023a27ce259 Mon Sep 17 00:00:00 2001
From: Aaron Plattner
Date: Tue, 5 Sep 2006 15:23:54 -0700
Subject: (unsigned long)(1 << 31) = bad news on x86_64.
---
fb/fbimage.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fb/fbimage.c b/fb/fbimage.c
index bf5c06b57..3b4a07c3d 100644
--- a/fb/fbimage.c
+++ b/fb/fbimage.c
@@ -68,7 +68,7 @@ fbPutImage (DrawablePtr pDrawable,
break;
case XYPixmap:
srcStride = BitmapBytePad(w + leftPad) / sizeof (FbStip);
- for (i = 1 << (pDrawable->depth - 1); i; i >>= 1)
+ for (i = (unsigned long)1 << (pDrawable->depth - 1); i; i >>= 1)
{
if (i & pGC->planemask)
{
--
cgit v1.2.3
From f6ce0839ba5b73247097826d28f7388fe248ec0c Mon Sep 17 00:00:00 2001
From: Michel Dänzer
Date: Wed, 6 Sep 2006 13:18:02 +0200
Subject: Fix #include paths for fontcacheproto headers.
---
Xext/fontcache.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Xext/fontcache.c b/Xext/fontcache.c
index 00a45c90e..db0348144 100644
--- a/Xext/fontcache.c
+++ b/Xext/fontcache.c
@@ -45,8 +45,8 @@
#include "inputstr.h"
#include "servermd.h"
#define _FONTCACHE_SERVER_
-#include "fontcacheP.h"
-#include "fontcachstr.h"
+#include
+#include
#include
#include "swaprep.h"
--
cgit v1.2.3
From 8356be492c6b46abdffa08b13836571ed872e16f Mon Sep 17 00:00:00 2001
From: Michel Dänzer
Date: Wed, 6 Sep 2006 15:20:55 +0200
Subject: Make sure _XSERVER64 is defined when it should be and gets tested.
---
hw/dmx/Makefile.am | 1 +
hw/dmx/dmx.h | 4 ++++
hw/xfree86/common/xf86.h | 6 ++++++
hw/xnest/Makefile.am | 2 +-
mi/mieq.c | 4 ++++
5 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/hw/dmx/Makefile.am b/hw/dmx/Makefile.am
index 81b62f1fe..d36647b54 100644
--- a/hw/dmx/Makefile.am
+++ b/hw/dmx/Makefile.am
@@ -83,6 +83,7 @@ Xdmx_LDADD = $(XORG_CORE_LIBS) \
Xdmx_CFLAGS = \
-DHAVE_DMX_CONFIG_H \
+ $(DIX_CFLAGS) \
$(GLX_INCS) \
$(GLX_DEFS) \
@DMXMODULES_CFLAGS@
diff --git a/hw/dmx/dmx.h b/hw/dmx/dmx.h
index 18e75de90..becb2da38 100644
--- a/hw/dmx/dmx.h
+++ b/hw/dmx/dmx.h
@@ -51,6 +51,10 @@
#ifndef DMX_H
#define DMX_H
+#if HAVE_DMX_CONFIG_H
+#include
+#endif
+
#include "gcstruct.h"
/* Handle client-side include files in one place. */
diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
index 4903791f2..458750007 100644
--- a/hw/xfree86/common/xf86.h
+++ b/hw/xfree86/common/xf86.h
@@ -36,6 +36,12 @@
#ifndef _XF86_H
#define _XF86_H
+#if HAVE_XORG_CONFIG_H
+#include
+#elif HAVE_DIX_CONFIG_H
+#include
+#endif
+
#include "xf86str.h"
#include "xf86Opt.h"
#include
diff --git a/hw/xnest/Makefile.am b/hw/xnest/Makefile.am
index b237788bc..d40d122f4 100644
--- a/hw/xnest/Makefile.am
+++ b/hw/xnest/Makefile.am
@@ -51,7 +51,7 @@ Xnest_LDFLAGS =
AM_CFLAGS = -DHAVE_XNEST_CONFIG_H \
-DNO_HW_ONLY_EXTS \
- \
+ $(DIX_CFLAGS) \
$(XNESTMODULES_CFLAGS)
EXTRA_DIST = os2Stub.c \
diff --git a/mi/mieq.c b/mi/mieq.c
index a7c6f9a51..a69ce7037 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -32,6 +32,10 @@ in this Software without prior written authorization from The Open Group.
*
*/
+#if HAVE_DIX_CONFIG_H
+#include
+#endif
+
# define NEED_EVENTS
# include
# include
--
cgit v1.2.3
From a0179281a6522ec59830e8f2549633741bc56e10 Mon Sep 17 00:00:00 2001
From: Ian Romanick
Date: Wed, 6 Sep 2006 15:45:48 -0700
Subject: Remove prototypes for non-existant functions.
---
GL/glx/glxutil.h | 19 -------------------
1 file changed, 19 deletions(-)
diff --git a/GL/glx/glxutil.h b/GL/glx/glxutil.h
index c30a1f9cd..1937ef2cf 100644
--- a/GL/glx/glxutil.h
+++ b/GL/glx/glxutil.h
@@ -40,36 +40,18 @@
**
*/
-extern void __glXNop(void);
-
/* relate contexts with drawables */
extern void __glXAssociateContext(__GLXcontext *glxc);
extern void __glXDeassociateContext(__GLXcontext *glxc);
-/* drawable operation */
-extern void __glXGetDrawableSize(__GLdrawablePrivate *glPriv,
- GLint *x, GLint *y,
- GLuint *width, GLuint *height);
-extern GLboolean __glXResizeDrawable(__GLdrawablePrivate *glPriv);
-extern GLboolean __glXResizeDrawableBuffers(__GLXdrawable *glxPriv);
-
/* drawable management */
extern void __glXRefDrawable(__GLXdrawable *glxPriv);
extern void __glXUnrefDrawable(__GLXdrawable *glxPriv);
-extern __GLXdrawable *__glXCreateDrawable(__GLXscreen *screen,
- DrawablePtr pDraw, XID drawId,
- __GLcontextModes *modes);
extern GLboolean __glXDrawableInit(__GLXdrawable *drawable,
__GLXscreen *screen,
DrawablePtr pDraw, XID drawID,
__GLcontextModes *modes);
-extern GLboolean __glXDestroyDrawable(__GLXdrawable *glxPriv);
-extern __GLXdrawable *__glXFindDrawable(XID glxpixmapId);
-extern __GLXdrawable *__glXGetDrawable(__GLXcontext *ctx,
- DrawablePtr pDraw,
- XID glxpixmapId);
-extern void __glXCacheDrawableSize(__GLXdrawable *glxPriv);
/* context helper routines */
extern __GLXcontext *__glXLookupContextByTag(__GLXclientState*, GLXContextTag);
@@ -79,4 +61,3 @@ extern void *__glXglDDXScreenInfo(void);
extern void *__glXglDDXExtensionInfo(void);
#endif /* _glxcmds_h_ */
-
--
cgit v1.2.3
From 64479fffa22581cc7d753065c33eda5520b7db9a Mon Sep 17 00:00:00 2001
From: Ian Romanick
Date: Wed, 6 Sep 2006 16:13:21 -0700
Subject: Remove prototypes and externs for non-existant functions and
variables.
---
GL/glx/glxext.h | 5 -----
GL/glx/glxserver.h | 3 ---
2 files changed, 8 deletions(-)
diff --git a/GL/glx/glxext.h b/GL/glx/glxext.h
index d7082086b..edd66a8f0 100644
--- a/GL/glx/glxext.h
+++ b/GL/glx/glxext.h
@@ -71,9 +71,6 @@ extern void __glXClearErrorOccured(void);
extern GLboolean __glXErrorOccured(void);
extern void __glXResetLargeCommandStatus(__GLXclientState*);
-extern int __glXQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc);
-extern int __glXSwapQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc);
-
extern int DoMakeCurrent( __GLXclientState *cl, GLXDrawable drawId,
GLXDrawable readId, GLXContextID contextId, GLXContextTag tag );
extern int DoGetVisualConfigs(__GLXclientState *cl, unsigned screen,
@@ -93,8 +90,6 @@ extern int DoRenderLarge(__GLXclientState *cl, GLbyte *pc, int do_swap);
extern void GlxExtensionInit(void);
-extern Bool __glXCoreType(void);
-
extern const char GLServerVersion[];
extern int DoGetString(__GLXclientState *cl, GLbyte *pc, GLboolean need_swap);
diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index a79520e4a..838973731 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -191,7 +191,6 @@ typedef int (*__GLXdispatchVendorPrivProcPtr)(__GLXclientState *, GLbyte *);
* Dispatch for GLX commands.
*/
typedef int (*__GLXprocPtr)(__GLXclientState *, char *pc);
-extern __GLXprocPtr __glXProcTable[];
/*
* Tables for computing the size of each rendering command.
@@ -252,6 +251,4 @@ extern int __glXImageSize(GLenum format, GLenum type,
GLint imageHeight, GLint rowLength, GLint skipImages, GLint skipRows,
GLint alignment);
-extern int __glXDrawArraysReqSize(const GLbyte *pc, Bool swap);
-
#endif /* !__GLX_server_h__ */
--
cgit v1.2.3
From 86450998da616e3d00d4d6293acc35eccc2061e7 Mon Sep 17 00:00:00 2001
From: Kristian Høgsberg
Date: Thu, 7 Sep 2006 15:35:16 -0400
Subject: Fix AIGLX VT switching.
See https://bugs.freedesktop.org/show_bug.cgi?id=7916
There may be a simpler, less intrusive fix that involves just rearranging
DRI locking between 2D and 3D drivers around VT switch.
---
GL/glx/glxdri.c | 36 ++++++++++++++++++++--
GL/glx/glxext.c | 90 ++++++++++++++++++++++++++++++++++++++++--------------
GL/glx/glxserver.h | 5 +--
3 files changed, 104 insertions(+), 27 deletions(-)
diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
index 41e49e225..b5723049d 100644
--- a/GL/glx/glxdri.c
+++ b/GL/glx/glxdri.c
@@ -73,6 +73,9 @@ struct __GLXDRIscreen {
__DRIscreen driScreen;
void *driver;
+ xf86EnterVTProc *enterVT;
+ xf86LeaveVTProc *leaveVT;
+
unsigned char glx_enable_bits[__GLX_EXT_BYTES];
};
@@ -622,8 +625,7 @@ static __DRIfuncPtr getProcAddress(const char *proc_name)
static __DRIscreen *findScreen(__DRInativeDisplay *dpy, int scrn)
{
- __GLXDRIscreen *screen =
- (__GLXDRIscreen *) __glXgetActiveScreen(scrn);
+ __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(scrn);
return &screen->driScreen;
}
@@ -817,6 +819,30 @@ static const __DRIinterfaceMethods interface_methods = {
static const char dri_driver_path[] = DRI_DRIVER_PATH;
+static Bool
+glxDRIEnterVT (int index, int flags)
+{
+ __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index);
+
+ LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n");
+
+ glxResumeClients();
+
+ return (*screen->enterVT) (index, flags);
+}
+
+static void
+glxDRILeaveVT (int index, int flags)
+{
+ __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index);
+
+ LogMessage(X_INFO, "AIGLX: Suspending AIGLX clients for VT switch\n");
+
+ glxSuspendClients();
+
+ return (*screen->leaveVT) (index, flags);
+}
+
static __GLXscreen *
__glXDRIscreenProbe(ScreenPtr pScreen)
{
@@ -842,6 +868,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
char filename[128];
Bool isCapable;
size_t buffer_size;
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable")) {
LogMessage(X_ERROR, "AIGLX: DRI module not loaded\n");
@@ -1029,6 +1056,11 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
__glXsetEnterLeaveServerFuncs(__glXDRIenterServer, __glXDRIleaveServer);
+ screen->enterVT = pScrn->EnterVT;
+ pScrn->EnterVT = glxDRIEnterVT;
+ screen->leaveVT = pScrn->LeaveVT;
+ pScrn->LeaveVT = glxDRILeaveVT;
+
LogMessage(X_INFO,
"AIGLX: Loaded and initialized %s\n", filename);
diff --git a/GL/glx/glxext.c b/GL/glx/glxext.c
index fdb8ea262..11fb7fcaf 100644
--- a/GL/glx/glxext.c
+++ b/GL/glx/glxext.c
@@ -59,10 +59,7 @@ xGLXSingleReply __glXReply;
** A set of state for each client. The 0th one is unused because client
** indices start at 1, not 0.
*/
-__GLXclientState *__glXClients[MAXCLIENTS+1];
-
-
-static Bool inDispatch;
+static __GLXclientState *__glXClients[MAXCLIENTS + 1];
/*
** Forward declarations.
@@ -219,6 +216,10 @@ static Bool DrawableGone(__GLXdrawable *glxPriv, XID xid)
return True;
}
+static __GLXcontext *glxPendingDestroyContexts;
+static int glxServerLeaveCount;
+static int glxBlockClients;
+
/*
** Free a context.
*/
@@ -236,13 +237,14 @@ GLboolean __glXFreeContext(__GLXcontext *cx)
* __glXDispatch() or as a callback from the resource manager. In
* the latter case we need to lift the DRI lock manually. */
- if (!inDispatch)
- __glXleaveServer();
-
- cx->destroy(cx);
-
- if (!inDispatch)
- __glXenterServer();
+ if (glxBlockClients) {
+ __glXleaveServer();
+ cx->destroy(cx);
+ __glXenterServer();
+ } else {
+ cx->next = glxPendingDestroyContexts;
+ glxPendingDestroyContexts = cx;
+ }
return GL_TRUE;
}
@@ -338,7 +340,7 @@ void GlxExtensionInit(void)
/*
** Initialize table of client state. There is never a client 0.
*/
- for (i=1; i <= MAXCLIENTS; i++) {
+ for (i = 1; i <= MAXCLIENTS; i++) {
__glXClients[i] = 0;
}
@@ -409,11 +411,43 @@ __GLXcontext *__glXForceCurrent(__GLXclientState *cl, GLXContextTag tag,
/************************************************************************/
-/*
-** Top level dispatcher; all commands are executed from here down.
-*/
+void glxSuspendClients(void)
+{
+ int i;
-/* I cried when I wrote this. Damn you XAA! */
+ for (i = 1; i <= MAXCLIENTS; i++) {
+ if (__glXClients[i] == NULL || !__glXClients[i]->inUse)
+ continue;
+
+ IgnoreClient(__glXClients[i]->client);
+ }
+
+ glxBlockClients = TRUE;
+}
+
+void glxResumeClients(void)
+{
+ __GLXcontext *cx, *next;
+ int i;
+
+ glxBlockClients = FALSE;
+
+ for (i = 1; i <= MAXCLIENTS; i++) {
+ if (__glXClients[i] == NULL || !__glXClients[i]->inUse)
+ continue;
+
+ AttendClient(__glXClients[i]->client);
+ }
+
+ __glXleaveServer();
+ for (cx = glxPendingDestroyContexts; cx != NULL; cx = next) {
+ next = cx->next;
+
+ cx->destroy(cx);
+ }
+ glxPendingDestroyContexts = NULL;
+ __glXenterServer();
+}
static void
__glXnopEnterServer(void)
@@ -438,14 +472,19 @@ void __glXsetEnterLeaveServerFuncs(void (*enter)(void),
void __glXenterServer(void)
{
- (*__glXenterServerFunc)();
+ glxServerLeaveCount--;
+
+ if (glxServerLeaveCount == 0)
+ (*__glXenterServerFunc)();
}
void __glXleaveServer(void)
{
- (*__glXleaveServerFunc)();
-}
+ if (glxServerLeaveCount == 0)
+ (*__glXleaveServerFunc)();
+ glxServerLeaveCount++;
+}
/*
** Top level dispatcher; all commands are executed from here down.
@@ -491,6 +530,15 @@ static int __glXDispatch(ClientPtr client)
return __glXError(GLXBadLargeRequest);
}
+ /* If we're currently blocking GLX clients, just put this guy to
+ * sleep, reset the request and return. */
+ if (glxBlockClients) {
+ ResetCurrentRequest(client);
+ client->sequence--;
+ IgnoreClient(client);
+ return(client->noClientException);
+ }
+
/*
** Use the opcode to index into the procedure table.
*/
@@ -500,12 +548,8 @@ static int __glXDispatch(ClientPtr client)
if (proc != NULL) {
__glXleaveServer();
- inDispatch = True;
-
retval = (*proc)(cl, (GLbyte *) stuff);
- inDispatch = False;
-
__glXenterServer();
}
else {
diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index 838973731..49cad7328 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -136,6 +136,9 @@ void __glXsetEnterLeaveServerFuncs(void (*enter)(void),
void __glXenterServer(void);
void __glXleaveServer(void);
+void glxSuspendClients(void);
+void glxResumeClients(void);
+
/*
** State kept per client.
*/
@@ -176,8 +179,6 @@ struct __GLXclientStateRec {
char *GLClientextensions;
};
-extern __GLXclientState *__glXClients[];
-
/************************************************************************/
/*
--
cgit v1.2.3
From 65256109bb8f5a26704ed960e1dd113981df5787 Mon Sep 17 00:00:00 2001
From: Drew Parsons
Date: Sun, 10 Sep 2006 17:40:37 +1000
Subject: * Define XPSERVERLIST with `/etc/init.d/xprint get_xpserverlist`
instead of `/bin/sh /etc/init.d/xprint get_xpserverlist` - allows the
initscript to set its own different shell under #! - allows disabling of
XPSERVERLIST by making the script non-executable * Allow files to be
installed by using dist_*_DATA instead of EXTRA_DIST. Also, use
dist_*_SCRIPTS to install scripts. * Fix minor typos in man pages.
---
hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am | 3 ++-
hw/xprint/config/C/print/models/PSspooldir/Makefile.am | 3 ++-
hw/xprint/config/Makefile.am | 2 +-
hw/xprint/doc/Xprt.html | 6 +++---
hw/xprint/doc/Xprt.man.pre | 6 +++---
hw/xprint/doc/Xprt.sgml | 6 +++---
hw/xprint/etc/Xsession.d/Makefile.am | 3 ++-
hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh | 4 ++--
8 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am b/hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am
index 37b57d7bb..2b73b9dad 100644
--- a/hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am
+++ b/hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am
@@ -1,3 +1,4 @@
xpcdir = @xpconfigdir@/C/print/models/PS2PDFspooldir-GS
-dist_xpc_DATA = model-config ps2pdf_spooltodir.sh
+dist_xpc_DATA = model-config
+dist_xpc_SCRIPTS = ps2pdf_spooltodir.sh
diff --git a/hw/xprint/config/C/print/models/PSspooldir/Makefile.am b/hw/xprint/config/C/print/models/PSspooldir/Makefile.am
index 52313aa23..717cd2c36 100644
--- a/hw/xprint/config/C/print/models/PSspooldir/Makefile.am
+++ b/hw/xprint/config/C/print/models/PSspooldir/Makefile.am
@@ -1,3 +1,4 @@
xpcdir = @xpconfigdir@/C/print/models/PSspooldir
-dist_xpc_DATA = model-config spooltodir.sh
+dist_xpc_DATA = model-config
+dist_xpc_SCRIPTS = spooltodir.sh
diff --git a/hw/xprint/config/Makefile.am b/hw/xprint/config/Makefile.am
index a5ea214c4..197d19de0 100644
--- a/hw/xprint/config/Makefile.am
+++ b/hw/xprint/config/Makefile.am
@@ -709,4 +709,4 @@ install-data-local: remove-links
uninstall-hook: remove-links
-EXTRA_DIST = README
+dist_xpconfig_DATA = README
diff --git a/hw/xprint/doc/Xprt.html b/hw/xprint/doc/Xprt.html
index f84a3c134..2aa0c9e3c 100644
--- a/hw/xprint/doc/Xprt.html
+++ b/hw/xprint/doc/Xprt.html
@@ -4,7 +4,7 @@
applications to use devices like printers, FAX or create
documents in formats like PostScript, PCL or PDF. It may be used by
clients such as mozilla.
-
Xprint is a very flexible, extensible, scaleable, client/server
+
Xprint is a very flexible, extensible, scalable, client/server
print system based on ISO 10175 (and some other specs) and the X11
rendering protocol.
Using Xprint an application can search, query and use devices like
@@ -44,11 +44,11 @@
font databases.
-pn
permits the server to continue running if it fails to
establish all of its well-known sockets (connection
points for clients), but establishes at least
- one.
-XpFile file
Sets an altername Xprinters file (see section FILES).
-XpSpoolerType spoolername
+ one.
-XpFile file
Sets an alternate Xprinters file (see section FILES).
-XpSpoolerType spoolername
Defines the spooler system to be used for print job spooling.
Supported values in xprint.mozdev.org release 009 are:
aix
aix4
bsd
osf
solaris
sysv
uxp
cups
lprng
other
none
- (multiple values can be specified, seperated by ':', the first active spooler will be chosen).
+ (multiple values can be specified, separated by ':', the first active spooler will be chosen).
The default value is platform-specific and can be obtained via