This patch should be applied to an un-modified XFree86 version 4.6.0 source tree. It is patch 2 of 4 patches that will will convert the source tree to XFree86 version 4.7.0. To apply this patch, run the following from the directory containing your 'xc' directory: patch -p0 -E < XFree86-4.6.0-4.7.0.diff1 patch -p0 -E < XFree86-4.6.0-4.7.0.diff2 patch -p0 -E < XFree86-4.6.0-4.7.0.diff3 patch -p0 -E < XFree86-4.6.0-4.7.0.diff4 sh XFree86-4.6.0-4.7.0-cleanup.sh gzip -d < XFree86-4.6.0-4.7.0-diff0.tgz | tar vxf - ------------------------------------------------------------------------------- Index: xc/lib/X11/cmsMath.c diff -u xc/lib/X11/cmsMath.c:3.6 xc/lib/X11/cmsMath.c:3.7 --- xc/lib/X11/cmsMath.c:3.6 Mon Jan 9 09:58:40 2006 +++ xc/lib/X11/cmsMath.c Sun Dec 10 10:58:24 2006 @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/X11/cmsMath.c,v 3.6 2006/01/09 14:58:40 dawes Exp $ */ +/* $XFree86: xc/lib/X11/cmsMath.c,v 3.7 2006/12/10 15:58:24 tsi Exp $ */ /* * Stephen Gildea, MIT X Consortium, January 1991 @@ -31,6 +31,9 @@ #include "Xlibint.h" #include "Xcmsint.h" +#ifdef DEBUG +#include +#endif #include #ifndef DBL_EPSILON Index: xc/lib/X11/imDefIm.c diff -u xc/lib/X11/imDefIm.c:1.17 xc/lib/X11/imDefIm.c:1.18 --- xc/lib/X11/imDefIm.c:1.17 Mon Jan 9 09:58:41 2006 +++ xc/lib/X11/imDefIm.c Mon Apr 9 11:37:11 2007 @@ -30,7 +30,7 @@ makoto@sm.sony.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imDefIm.c,v 1.17 2006/01/09 14:58:41 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imDefIm.c,v 1.18 2007/04/09 15:37:11 tsi Exp $ */ #include #define NEED_EVENTS @@ -420,8 +420,8 @@ CARD8 *num, INT16 *len) { + *num = 0; if (!IS_USE_AUTHORIZATION_FUNC(im)) { - *num = 0; *len = 0; return True; } Index: xc/lib/X11/imTrX.c diff -u xc/lib/X11/imTrX.c:1.5 xc/lib/X11/imTrX.c:1.6 --- xc/lib/X11/imTrX.c:1.5 Mon Jan 9 09:58:42 2006 +++ xc/lib/X11/imTrX.c Mon Apr 9 11:37:11 2007 @@ -27,7 +27,7 @@ fujiwara@a80.tech.yk.fujitsu.co.jp ******************************************************************/ -/* $XFree86: xc/lib/X11/imTrX.c,v 1.5 2006/01/09 14:58:42 dawes Exp $ */ +/* $XFree86: xc/lib/X11/imTrX.c,v 1.6 2007/04/09 15:37:11 tsi Exp $ */ #include #include @@ -432,7 +432,7 @@ { XEvent *ev; XEvent event; - int len; + int len = 0; XSpecRec *spec = (XSpecRec *)im->private.proto.spec; XPointer arg = spec->ev; Index: xc/lib/X11/lcGeneric.c diff -u xc/lib/X11/lcGeneric.c:3.21 xc/lib/X11/lcGeneric.c:3.22 --- xc/lib/X11/lcGeneric.c:3.21 Mon Jan 9 09:58:43 2006 +++ xc/lib/X11/lcGeneric.c Mon Apr 9 11:37:12 2007 @@ -27,7 +27,7 @@ * This is source code modified by FUJITSU LIMITED under the Joint * Development Agreement for the CDE/Motif PST. */ -/* $XFree86: xc/lib/X11/lcGeneric.c,v 3.21 2006/01/09 14:58:43 dawes Exp $ */ +/* $XFree86: xc/lib/X11/lcGeneric.c,v 3.22 2007/04/09 15:37:12 tsi Exp $ */ #include #include "Xlibint.h" @@ -426,7 +426,7 @@ char name[BUFSIZ]; XlcCharSet charsetd; char **value; - int num, new; + int num, new = 0; XlcSide side = XlcUnknown; char *tmp; Index: xc/lib/Xaw/Form.c diff -u xc/lib/Xaw/Form.c:1.23 xc/lib/Xaw/Form.c:1.24 --- xc/lib/Xaw/Form.c:1.23 Thu Dec 22 12:52:10 2005 +++ xc/lib/Xaw/Form.c Mon Apr 9 11:37:12 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/Xaw/Form.c,v 1.23 2005/12/22 17:52:10 tsi Exp $ */ +/* $XFree86: xc/lib/Xaw/Form.c,v 1.24 2007/04/09 15:37:12 tsi Exp $ */ /*********************************************************** @@ -853,7 +853,7 @@ if (request->request_mode & XtCWQueryOnly) { Boolean always_resize_children; - Dimension ret_width, ret_height; + Dimension ret_width = 0, ret_height = 0; fw->form.resize_in_layout = False; Index: xc/lib/Xaw/Paned.c diff -u xc/lib/Xaw/Paned.c:1.13 xc/lib/Xaw/Paned.c:1.14 --- xc/lib/Xaw/Paned.c:1.13 Mon Jan 9 09:59:02 2006 +++ xc/lib/Xaw/Paned.c Mon Apr 9 11:37:12 2007 @@ -44,7 +44,7 @@ SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xaw/Paned.c,v 1.13 2006/01/09 14:59:02 dawes Exp $ */ +/* $XFree86: xc/lib/Xaw/Paned.c,v 1.14 2007/04/09 15:37:12 tsi Exp $ */ /* * Updated and significantly modified from the Athena VPaned Widget. @@ -1509,6 +1509,7 @@ { if (pw->paned.stack == NULL) { *pane = NULL; + *start_size = 0; return; } Index: xc/lib/Xft/Imakefile diff -u xc/lib/Xft/Imakefile:1.32 xc/lib/Xft/Imakefile:1.33 --- xc/lib/Xft/Imakefile:1.32 Tue Oct 25 12:58:48 2005 +++ xc/lib/Xft/Imakefile Fri May 18 14:01:58 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/Xft/Imakefile,v 1.32 2005/10/25 16:58:48 dawes Exp $ +XCOMM $XFree86: xc/lib/Xft/Imakefile,v 1.33 2007/05/18 18:01:58 tsi Exp $ #define DoNormalLib NormalLibXft #define DoSharedLib SharedLibXft @@ -23,7 +23,8 @@ #endif #ifdef UseInstalled -/* when using xmkmf, make sure the needed definitions for the fontconfig +/* + * when using xmkmf, make sure the needed definitions for the fontconfig * library are available */ @@ -44,7 +45,7 @@ WARNINGS=-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs #endif INCLUDES=$(FONTCONFIGINCLUDES) $(FREETYPE2INCLUDES) $(WARNINGS) -DEFINES=$(FREETYPE2DEFINES) $(RENDERDEFINES) -DXFREE86_FT2 +DEFINES=$(FREETYPE2DEFINES) $(RENDERDEFINES) XFT_REVISION=0 Index: xc/lib/Xft1/Imakefile diff -u xc/lib/Xft1/Imakefile:1.17 xc/lib/Xft1/Imakefile:1.18 --- xc/lib/Xft1/Imakefile:1.17 Tue Feb 7 19:49:12 2006 +++ xc/lib/Xft1/Imakefile Fri May 18 14:01:58 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/Xft1/Imakefile,v 1.17 2006/02/08 00:49:12 dawes Exp $ +XCOMM $XFree86: xc/lib/Xft1/Imakefile,v 1.18 2007/05/18 18:01:58 tsi Exp $ XCOMM Allow for builds against old installed bits #ifdef UseInstalled @@ -90,7 +90,7 @@ XFTLIBDIR=XftLibDir INCLUDES=$(FONTCONFIGINCLUDES) $(FREETYPE2INCLUDES) -DEFINES=$(FREETYPE2DEFINES) $(RENDERDEFINES) -DXFREE86_FT2 +DEFINES=$(FREETYPE2DEFINES) $(RENDERDEFINES) #if UseFreetype2 FREETYPE2REQLIB = $(FREETYPE2LIB) Index: xc/lib/Xft1/xftint.h diff -u xc/lib/Xft1/xftint.h:1.3 xc/lib/Xft1/xftint.h:1.4 --- xc/lib/Xft1/xftint.h:1.3 Mon Jul 1 00:28:17 2002 +++ xc/lib/Xft1/xftint.h Sat Apr 21 20:37:18 2007 @@ -1,5 +1,5 @@ /* - * $XFree86: xc/lib/Xft1/xftint.h,v 1.3 2002/07/01 04:28:17 keithp Exp $ + * $XFree86: xc/lib/Xft1/xftint.h,v 1.4 2007/04/22 00:37:18 tsi Exp $ * * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc. * @@ -91,6 +91,17 @@ /* * Yes, these are stolen from fcint.h */ +/* + * Unfortunately, fontconfig's version number was not updated when these were + * renamed (in 2.3.95). + */ +#if FC_VERSION == 20395 +# error "fontconfig 2.3.95 not supported" +#endif +#if FC_VERSION > 20395 +# define FcPatternFindElt FcPatternObjectFindElt +# define FcPatternInsertElt FcPatternObjectInsertElt +#endif FcPatternElt * FcPatternFindElt (const FcPattern *p, const char *object); Index: xc/lib/Xmu/CmapAlloc.c diff -u xc/lib/Xmu/CmapAlloc.c:1.8 xc/lib/Xmu/CmapAlloc.c:1.10 --- xc/lib/Xmu/CmapAlloc.c:1.8 Mon Jan 9 09:59:16 2006 +++ xc/lib/Xmu/CmapAlloc.c Fri Dec 15 11:05:02 2006 @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CmapAlloc.c,v 1.8 2006/01/09 14:59:16 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CmapAlloc.c,v 1.10 2006/12/15 16:05:02 tsi Exp $ */ /* * Author: Donna Converse, MIT X Consortium @@ -324,13 +324,13 @@ guess = 1; do { + delta = (guess - a/(guess*guess))/3; #ifdef _X_ROOT_STATS icbrt_loopcount++; -#endif - delta = (guess - a/(guess*guess))/3; #ifdef DEBUG printf("pass %d: guess=%d, delta=%d\n", icbrt_loopcount, guess, delta); #endif +#endif guess -= delta; } while (delta != 0); Index: xc/lib/Xmu/CvtStdSel.c diff -u xc/lib/Xmu/CvtStdSel.c:3.21 xc/lib/Xmu/CvtStdSel.c:3.22 --- xc/lib/Xmu/CvtStdSel.c:3.21 Mon Jan 9 09:59:16 2006 +++ xc/lib/Xmu/CvtStdSel.c Mon Jun 19 09:43:24 2006 @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/CvtStdSel.c,v 3.21 2006/01/09 14:59:16 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/CvtStdSel.c,v 3.22 2006/06/19 13:43:24 tsi Exp $ */ /* * This file contains routines to handle common selection targets. @@ -112,7 +112,7 @@ #ifdef USE_UNAME struct utsname utss; - if (uname (&utss) == 0) { + if (uname(&utss) >= 0) { char *os_name; int len = strlen(utss.sysname) + 1; #ifndef hpux /* because of hostname length crock */ Index: xc/lib/Xmu/EditresCom.c diff -u xc/lib/Xmu/EditresCom.c:1.23 xc/lib/Xmu/EditresCom.c:1.24 --- xc/lib/Xmu/EditresCom.c:1.23 Mon Jan 9 09:59:16 2006 +++ xc/lib/Xmu/EditresCom.c Mon Apr 9 11:37:12 2007 @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/EditresCom.c,v 1.23 2006/01/09 14:59:16 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/EditresCom.c,v 1.24 2007/04/09 15:37:12 tsi Exp $ */ /* * Author: Chris D. Peterson, Dave Sternlicht, MIT X Consortium @@ -277,7 +277,7 @@ { EditresEvent *event; ProtocolStream alloc_stream, *stream; - unsigned char temp; + unsigned char temp = 0; register unsigned int i; stream = &alloc_stream; Index: xc/lib/Xmu/GetHost.c diff -u xc/lib/Xmu/GetHost.c:3.9 xc/lib/Xmu/GetHost.c:3.10 --- xc/lib/Xmu/GetHost.c:3.9 Mon Jan 9 09:59:16 2006 +++ xc/lib/Xmu/GetHost.c Mon Jun 19 09:43:24 2006 @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xmu/GetHost.c,v 3.9 2006/01/09 14:59:16 dawes Exp $ */ +/* $XFree86: xc/lib/Xmu/GetHost.c,v 3.10 2006/06/19 13:43:24 tsi Exp $ */ /* * Author: Jim Fulton, MIT X Consortium @@ -66,14 +66,23 @@ */ struct utsname name; - uname (&name); - len = strlen (name.nodename); - if (len >= maxlen) len = maxlen - 1; - strncpy (buf, name.nodename, len); + if ((maxlen <= 0) || (buf == NULL)) + return 0; + + len = 0; + if (uname(&name) >= 0) { + len = strlen(name.nodename); + if (len >= maxlen) + len = maxlen - 1; + strncpy(buf, name.nodename, len); + } buf[len] = '\0'; #else + if ((maxlen <= 0) || (buf == NULL)) + return 0; + buf[0] = '\0'; - (void) gethostname (buf, maxlen); + (void) gethostname(buf, maxlen); buf [maxlen - 1] = '\0'; len = strlen(buf); #endif /* hpux */ Index: xc/lib/Xt/Convert.c diff -u xc/lib/Xt/Convert.c:3.10 xc/lib/Xt/Convert.c:3.11 --- xc/lib/Xt/Convert.c:3.10 Mon Jan 9 09:59:20 2006 +++ xc/lib/Xt/Convert.c Sun Dec 10 10:58:24 2006 @@ -30,7 +30,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Convert.c,v 3.10 2006/01/09 14:59:20 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Convert.c,v 3.11 2006/12/10 15:58:24 tsi Exp $ */ /* @@ -501,9 +501,9 @@ } (void) fprintf(stdout, "Index: %4d Entries: %d\n", i, entries); for (p = cacheHashTable[i]; p; p = p->next) { - (void) fprintf(stdout, " Size: %3d Refs: %3d '", + (void) fprintf(stdout, " Size: %3d Refs: %3ld '", p->from.size, - p->has_ext ? CEXT(p)->ref_count : 0); + p->has_ext ? CEXT(p)->ref_count : 0L); (void) fprintf(stdout, "'\n"); } (void) fprintf(stdout, "\n"); Index: xc/lib/Xt/Converters.c diff -u xc/lib/Xt/Converters.c:3.18 xc/lib/Xt/Converters.c:3.19 --- xc/lib/Xt/Converters.c:3.18 Wed Jan 11 19:58:02 2006 +++ xc/lib/Xt/Converters.c Mon Apr 9 11:37:12 2007 @@ -30,7 +30,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Converters.c,v 3.18 2006/01/12 00:58:02 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Converters.c,v 3.19 2007/04/09 15:37:12 tsi Exp $ */ /* @@ -256,6 +256,8 @@ Boolean isPositive = False; int val = 0; char ch; + + *value = 0; /* skip leading whitespace */ #ifndef __UNIXOS2__ while ((ch = *string) == ' ' || ch == '\t') string++; Index: xc/lib/Xt/Initialize.c diff -u xc/lib/Xt/Initialize.c:3.24 xc/lib/Xt/Initialize.c:3.25 --- xc/lib/Xt/Initialize.c:3.24 Tue Apr 19 21:49:18 2005 +++ xc/lib/Xt/Initialize.c Mon Jun 19 09:43:24 2006 @@ -30,7 +30,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Initialize.c,v 3.24 2005/04/20 01:49:18 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Initialize.c,v 3.25 2006/06/19 13:43:24 tsi Exp $ */ /* @@ -154,21 +154,21 @@ int len; struct utsname name; - if (maxlen <= 0 || buf == NULL) + if ((maxlen <= 0) || (buf == NULL) || (uname(&name) < 0)) return; - uname (&name); - len = strlen (name.nodename); - if (len >= maxlen) len = maxlen; - (void) strncpy (buf, name.nodename, len-1); - buf[len-1] = '\0'; + len = strlen(name.nodename); + if (len >= maxlen) + len = maxlen - 1; + (void) strncpy(buf, name.nodename, len); + buf[len] = '\0'; #else if (maxlen <= 0 || buf == NULL) return; buf[0] = '\0'; - (void) gethostname (buf, maxlen); - buf [maxlen - 1] = '\0'; + (void) gethostname(buf, maxlen); + buf[maxlen - 1] = '\0'; #endif } @@ -550,7 +550,7 @@ PATH_MAX - strlen (slashDotXdefaultsDash) - 1); (void) strcat(filename, slashDotXdefaultsDash); len = strlen(filename); - GetHostname (filename+len, PATH_MAX-len); + GetHostname (filename+len, PATH_MAX-1-len); } (void)XrmCombineFileDatabase(filename, &db, False); } Index: xc/lib/Xt/Intrinsic.c diff -u xc/lib/Xt/Intrinsic.c:3.26 xc/lib/Xt/Intrinsic.c:3.27 --- xc/lib/Xt/Intrinsic.c:3.26 Mon Jan 9 09:59:21 2006 +++ xc/lib/Xt/Intrinsic.c Tue May 16 10:57:09 2006 @@ -30,7 +30,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/Intrinsic.c,v 3.26 2006/01/09 14:59:21 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/Intrinsic.c,v 3.27 2006/05/16 14:57:09 tsi Exp $ */ /* @@ -949,7 +949,7 @@ #ifndef X_NOT_POSIX S_ISDIR(status.st_mode) == 0); /* not a directory */ #else - (status.st_mode & S_IFDIR) == 0); /* not a directory */ + (status.st_mode & S_IFMT) != S_IFDIR); /* not a directory */ #endif /* X_NOT_POSIX else */ #if defined(WIN32) XtStackFree ((XtPointer)bufp, buf); Index: xc/lib/Xt/NextEvent.c diff -u xc/lib/Xt/NextEvent.c:3.30 xc/lib/Xt/NextEvent.c:3.31 --- xc/lib/Xt/NextEvent.c:3.30 Mon Jan 9 09:59:21 2006 +++ xc/lib/Xt/NextEvent.c Mon Apr 9 11:37:12 2007 @@ -56,7 +56,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/Xt/NextEvent.c,v 3.30 2006/01/09 14:59:21 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/NextEvent.c,v 3.31 2007/04/09 15:37:12 tsi Exp $ */ #include "IntrinsicI.h" #include @@ -574,6 +574,7 @@ #ifdef USE_POLL wf.fdlist = NULL; wf.stack = fdlist; + wf.fdlistlen = wf.num_dpys = 0; #endif app->rebuild_fdlist = TRUE; Index: xc/lib/Xt/ResConfig.c diff -u xc/lib/Xt/ResConfig.c:3.11 xc/lib/Xt/ResConfig.c:3.12 --- xc/lib/Xt/ResConfig.c:3.11 Mon Jan 9 09:59:22 2006 +++ xc/lib/Xt/ResConfig.c Sun Dec 10 10:58:24 2006 @@ -51,7 +51,7 @@ Corporation. ******************************************************************/ -/* $XFree86: xc/lib/Xt/ResConfig.c,v 3.11 2006/01/09 14:59:22 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/ResConfig.c,v 3.12 2006/12/10 15:58:24 tsi Exp $ */ #include "Intrinsic.h" #include "IntrinsicI.h" @@ -930,10 +930,12 @@ XtPerDisplay pd; #ifdef DEBUG - fprintf (stderr, "in _XtResourceConfiguationEH atom = %d\n",event->xproperty.atom); - fprintf (stderr, " window = %x\n", XtWindow (w)); + fprintf (stderr, "in _XtResourceConfiguationEH atom = %ld\n", + event->xproperty.atom); + fprintf (stderr, " window = %lx\n", (unsigned long)XtWindow (w)); if (XtIsWidget (w)) - fprintf (stderr, " widget = %x name = %s\n", w, w->core.name); + fprintf (stderr, " widget = %lx name = %s\n", + (unsigned long)w, w->core.name); #endif pd = _XtGetPerDisplay (XtDisplay (w)); @@ -999,7 +1001,7 @@ resource = XtNewString (data_ptr); value = XtNewString (&data_ptr[resource_len + 1]); #ifdef DEBUG - fprintf (stderr, "resource_len=%d\n",resource_len); + fprintf (stderr, "resource_len=%ld\n",resource_len); fprintf (stderr, "resource = %s\t value = %s\n", resource, value); #endif Index: xc/lib/Xt/TranslateI.h diff -u xc/lib/Xt/TranslateI.h:1.6 xc/lib/Xt/TranslateI.h:1.7 --- xc/lib/Xt/TranslateI.h:1.6 Mon Jan 9 09:59:23 2006 +++ xc/lib/Xt/TranslateI.h Sun Dec 10 10:58:24 2006 @@ -44,7 +44,7 @@ SOFTWARE. ******************************************************************/ -/* $XFree86: xc/lib/Xt/TranslateI.h,v 1.6 2006/01/09 14:59:23 dawes Exp $ */ +/* $XFree86: xc/lib/Xt/TranslateI.h,v 1.7 2006/12/10 15:58:24 tsi Exp $ */ /* * TranslateI.h - Header file private to translation management @@ -259,7 +259,7 @@ XtTranslations new; /* table to merge from */ } TMConvertRec; -#define _XtEventTimerEventType ((TMLongCard)~0L) +#define _XtEventTimerEventType ((TMLongCard)~0U) #define KeysymModMask (1L<<27) /* private to TM */ #define AnyButtonMask (1L<<28) /* private to TM */ Index: xc/lib/dps/csfindNX.c diff -u xc/lib/dps/csfindNX.c:1.8 xc/lib/dps/csfindNX.c:1.9 --- xc/lib/dps/csfindNX.c:1.8 Tue May 27 18:26:44 2003 +++ xc/lib/dps/csfindNX.c Mon Apr 9 11:37:12 2007 @@ -35,7 +35,7 @@ * * Author: Adobe Systems Incorporated */ -/* $XFree86: xc/lib/dps/csfindNX.c,v 1.8 2003/05/27 22:26:44 tsi Exp $ */ +/* $XFree86: xc/lib/dps/csfindNX.c,v 1.9 2007/04/09 15:37:12 tsi Exp $ */ #include /* for MAXHOSTNAMELEN */ #include @@ -170,7 +170,7 @@ oldErrorHandler = XSetErrorHandler(TmpErrorHandler); current = 0; for (i=0; i < *nAgents; i++) { - unsigned long len; + unsigned long len = 0; int *agentWillingness; unsigned long k; @@ -285,7 +285,7 @@ (i < nAgents) && (agentList[i].willingness > 0) && (match == False); i++) { Atom *licenseMethods = NULL; - unsigned long nMethods; + unsigned long nMethods = 0; unsigned long j; if (GetProperty(dpy, agentList[i].id, Index: xc/lib/dps/cslibint.c diff -u xc/lib/dps/cslibint.c:1.6 xc/lib/dps/cslibint.c:1.7 --- xc/lib/dps/cslibint.c:1.6 Sun Jul 25 16:17:02 2004 +++ xc/lib/dps/cslibint.c Mon Jun 19 09:43:24 2006 @@ -47,7 +47,7 @@ * * Author: Adobe Systems Incorporated and MIT X Consortium */ -/* $XFree86: xc/lib/dps/cslibint.c,v 1.6 2004/07/25 20:17:02 dawes Exp $ */ +/* $XFree86: xc/lib/dps/cslibint.c,v 1.7 2006/06/19 13:43:24 tsi Exp $ */ /* * XlibInternal.c - Internal support routines for the C subroutine @@ -1652,15 +1652,24 @@ #ifdef NEED_UTSNAME struct utsname name; - uname (&name); - len = strlen (name.nodename); - if (len >= maxlen) len = maxlen - 1; - strncpy (buf, name.nodename, len); + if ((maxlen <= 0) || (buf == NULL)) + return 0; + + len = 0; + if (uname(&name) >= 0) { + len = strlen(name.nodename); + if (len >= maxlen) + len = maxlen - 1; + strncpy(buf, name.nodename, len); + } buf[len] = '\0'; #else + if ((maxlen <= 0) || (buf == NULL)) + return 0; + buf[0] = '\0'; - (void) gethostname (buf, maxlen); - buf [maxlen - 1] = '\0'; + (void) gethostname(buf, maxlen); + buf[maxlen - 1] = '\0'; len = strlen(buf); #endif /* NEED_UTSNAME */ return len; Index: xc/lib/dps/dpsXcmu.c diff -u xc/lib/dps/dpsXcmu.c:1.6 xc/lib/dps/dpsXcmu.c:1.7 --- xc/lib/dps/dpsXcmu.c:1.6 Thu Mar 24 21:22:52 2005 +++ xc/lib/dps/dpsXcmu.c Mon Apr 9 11:37:12 2007 @@ -54,7 +54,7 @@ * * Author: Adobe Systems Incorporated and Donna Converse, MIT X Consortium */ -/* $XFree86: xc/lib/dps/dpsXcmu.c,v 1.6 2005/03/25 02:22:52 dawes Exp $ */ +/* $XFree86: xc/lib/dps/dpsXcmu.c,v 1.7 2007/04/09 15:37:12 tsi Exp $ */ #include #include @@ -1086,8 +1086,8 @@ XStandardColormap *colorCube) { XColor *ramp, *black, *white, *altBlack, *altWhite; - int i, r0, r1, r2, r3, size, entries, redMult; - unsigned long base; + int i, r0, r1, r2, r3, size, entries, redMult = 0; + unsigned long base = 0; entries = 1 << vinfo->depth; ramp = (XColor *) calloc(entries, sizeof(XColor)); Index: xc/lib/dps/dpsclient.c diff -u xc/lib/dps/dpsclient.c:1.5 xc/lib/dps/dpsclient.c:1.6 --- xc/lib/dps/dpsclient.c:1.5 Tue Mar 29 13:17:00 2005 +++ xc/lib/dps/dpsclient.c Mon Apr 9 11:37:12 2007 @@ -35,7 +35,7 @@ * * Author: Adobe Systems Incorporated */ -/* $XFree86: xc/lib/dps/dpsclient.c,v 1.5 2005/03/29 18:17:00 tsi Exp $ */ +/* $XFree86: xc/lib/dps/dpsclient.c,v 1.6 2007/04/09 15:37:12 tsi Exp $ */ #include #include @@ -353,7 +353,10 @@ case DPS_LO_NATIVE: *numFormat = dps_native; break; - default: DPSCantHappen(); + default: + DPSCantHappen(); + *numFormat = dps_native; + break; } } Index: xc/lib/font/FreeType/Imakefile diff -u xc/lib/font/FreeType/Imakefile:1.32 xc/lib/font/FreeType/Imakefile:1.33 --- xc/lib/font/FreeType/Imakefile:1.32 Fri Oct 14 11:16:01 2005 +++ xc/lib/font/FreeType/Imakefile Fri May 18 14:01:58 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/font/FreeType/Imakefile,v 1.32 2005/10/14 15:16:01 tsi Exp $ +XCOMM $XFree86: xc/lib/font/FreeType/Imakefile,v 1.33 2007/05/18 18:01:58 tsi Exp $ #if BuildServer && DoLoadableServer #define IHaveSubdirs @@ -7,14 +7,9 @@ SUBDIRS = module #endif -DEFINES = ServerExtraDefines StrcasecmpDefines Freetype2BuildDefines \ - -DXFREE86_FT2 +DEFINES = ServerExtraDefines StrcasecmpDefines Freetype2BuildDefines -FT2SOURCEDIR = $(TOP)/extras/freetype2/src -FT2INCS = $(FREETYPE2INCLUDES) - -INCLUDES = $(FT2INCS) -I../include -I$(SERVERSRC)/include \ - -I$(FT2SOURCEDIR)/truetype +INCLUDES = $(FREETYPE2INCLUDES) -I../include -I$(SERVERSRC)/include SRCS = xttcap.c ftfuncs.c ftenc.c fttools.c OBJS = xttcap.o ftfuncs.o ftenc.o fttools.o Index: xc/lib/font/FreeType/ftconfig.h diff -u xc/lib/font/FreeType/ftconfig.h:1.8 xc/lib/font/FreeType/ftconfig.h:removed --- xc/lib/font/FreeType/ftconfig.h:1.8 Mon Apr 26 12:15:56 2004 +++ xc/lib/font/FreeType/ftconfig.h Sun Aug 12 22:00:57 2007 @@ -1,386 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftconfig.h */ -/* */ -/* ANSI-specific configuration file (specification only). */ -/* */ -/* Copyright 1996-2001, 2002, 2003, 2004 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Modified for XFree86. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/* $XFree86: xc/lib/font/FreeType/ftconfig.h,v 1.8 2004/04/26 16:15:56 dawes Exp $ */ - - /*************************************************************************/ - /* */ - /* This header file contains a number of macro definitions that are used */ - /* by the rest of the engine. Most of the macros here are automatically */ - /* determined at compile time, and you should not need to change it to */ - /* port FreeType, except to compile the library with a non-ANSI */ - /* compiler. */ - /* */ - /* Note however that if some specific modifications are needed, we */ - /* advise you to place a modified copy in your build directory. */ - /* */ - /* The build directory is usually `freetype/builds/', and */ - /* contains system-specific files that are always included first when */ - /* building the library. */ - /* */ - /* This ANSI version should stay in `include/freetype/config'. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTCONFIG_H__ -#define __FTCONFIG_H__ - -#include -#include FT_CONFIG_OPTIONS_H -#include FT_CONFIG_STANDARD_LIBRARY_H - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* PLATFORM-SPECIFIC CONFIGURATION MACROS */ - /* */ - /* These macros can be toggled to suit a specific system. The current */ - /* ones are defaults used to compile FreeType in an ANSI C environment */ - /* (16bit compilers are also supported). Copy this file to your own */ - /* `freetype/builds/' directory, and edit it to port the engine. */ - /* */ - /*************************************************************************/ - - -#ifndef __CHAR_BIT__ -#define __CHAR_BIT__ 8 -#endif - -#ifndef CHAR_BIT -#define CHAR_BIT 8 -#endif - - -#ifdef XFREE86_FT2 - -# include "X11/Xmd.h" - -#ifndef FT_CHAR_BIT -#define FT_CHAR_BIT CHAR_BIT -#endif - - /* The number of bytes in an `int' type. */ -# define FT_SIZEOF_INT 4 - - /* The number of bytes in a `long' type. */ -# ifdef LONG64 -# define FT_SIZEOF_LONG 8 -# else -# define FT_SIZEOF_LONG 4 -# endif - -#else - - /* There are systems (like the Texas Instruments 'C54x) where a `char' */ - /* has 16 bits. ANSI C says that sizeof(char) is always 1. Since an */ - /* `int' has 16 bits also for this system, sizeof(int) gives 1 which */ - /* is probably unexpected. */ - /* */ - /* `CHAR_BIT' (defined in limits.h) gives the number of bits in a */ - /* `char' type. */ - -#ifndef FT_CHAR_BIT -#define FT_CHAR_BIT CHAR_BIT -#endif - - - /* The size of an `int' type. */ -#if FT_UINT_MAX == 0xFFFFFFFFUL -#define FT_SIZEOF_INT (32 / FT_CHAR_BIT) -#elif FT_UINT_MAX == 0xFFFFU -#define FT_SIZEOF_INT (16 / FT_CHAR_BIT) -#elif FT_UINT_MAX > 0xFFFFFFFFU && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFU -#define FT_SIZEOF_INT (64 / FT_CHAR_BIT) -#else -#error "Unsupported size of `int' type!" -#endif - - /* The size of a `long' type. */ -#if FT_ULONG_MAX == 0xFFFFFFFFUL -#define FT_SIZEOF_LONG (32 / FT_CHAR_BIT) -#elif FT_ULONG_MAX > 0xFFFFFFFFU && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFU -#define FT_SIZEOF_LONG (64 / FT_CHAR_BIT) -#else -#error "Unsupported size of `long' type!" -#endif - -#endif - - /* Preferred alignment of data */ -#define FT_ALIGNMENT 8 - - - /* FT_UNUSED is a macro used to indicate that a given parameter is not */ - /* used -- this is only used to get rid of unpleasant compiler warnings */ -#ifndef FT_UNUSED -#define FT_UNUSED( arg ) ( (arg) = (arg) ) -#endif - - - /*************************************************************************/ - /* */ - /* AUTOMATIC CONFIGURATION MACROS */ - /* */ - /* These macros are computed from the ones defined above. Don't touch */ - /* their definition, unless you know precisely what you are doing. No */ - /* porter should need to mess with them. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Mac support */ - /* */ - /* This is the only necessary change, so it is defined here instead */ - /* providing a new configuration file. */ - /* */ -#if ( defined( __APPLE__ ) && !defined( DARWIN_NO_CARBON ) ) || \ - ( defined( __MWERKS__ ) && defined( macintosh ) ) -#define FT_MACINTOSH 1 -#endif - - - /*************************************************************************/ - /* */ - /* IntN types */ - /* */ - /* Used to guarantee the size of some specific integers. */ - /* */ - typedef signed short FT_Int16; - typedef unsigned short FT_UInt16; - -#if FT_SIZEOF_INT == (32 / FT_CHAR_BIT) - - typedef signed int FT_Int32; - typedef unsigned int FT_UInt32; - -#elif FT_SIZEOF_LONG == (32 / FT_CHAR_BIT) - - typedef signed long FT_Int32; - typedef unsigned long FT_UInt32; - -#else -#error "no 32bit type found -- please check your configuration files" -#endif - - /* look up an integer type that is at least 32 bits */ -#if FT_SIZEOF_INT >= (32 / FT_CHAR_BIT) - - typedef int FT_Fast; - typedef unsigned int FT_UFast; - -#elif FT_SIZEOF_LONG >= (32 / FT_CHAR_BIT) - - typedef long FT_Fast; - typedef unsigned long FT_UFast; - -#endif - - - /* determine whether we have a 64-bit int type for platforms without */ - /* Autoconf */ -#if FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) - - /* FT_LONG64 must be defined if a 64-bit type is available */ -#define FT_LONG64 -#define FT_INT64 long - -#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */ - - /* this compiler provides the __int64 type */ -#define FT_LONG64 -#define FT_INT64 __int64 - -#elif defined( __BORLANDC__ ) /* Borland C++ */ - - /* XXXX: We should probably check the value of __BORLANDC__ in order */ - /* to test the compiler version. */ - - /* this compiler provides the __int64 type */ -#define FT_LONG64 -#define FT_INT64 __int64 - -#elif defined( __WATCOMC__ ) /* Watcom C++ */ - - /* Watcom doesn't provide 64-bit data types */ - -#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */ - -#define FT_LONG64 -#define FT_INT64 long long int - -#elif defined( __GNUC__ ) - - /* GCC provides the "long long" type */ -#define FT_LONG64 -#define FT_INT64 long long int - -#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */ - - -#define FT_BEGIN_STMNT do { -#define FT_END_STMNT } while ( 0 ) -#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT - - - /*************************************************************************/ - /* */ - /* A 64-bit data type will create compilation problems if you compile */ - /* in strict ANSI mode. To avoid them, we disable their use if */ - /* __STDC__ is defined. You can however ignore this rule by */ - /* defining the FT_CONFIG_OPTION_FORCE_INT64 configuration macro. */ - /* */ -#if defined( FT_LONG64 ) && !defined( FT_CONFIG_OPTION_FORCE_INT64 ) - -#ifdef __STDC__ - - /* undefine the 64-bit macros in strict ANSI compilation mode */ -#undef FT_LONG64 -#undef FT_INT64 - -#endif /* __STDC__ */ - -#endif /* FT_LONG64 && !FT_CONFIG_OPTION_FORCE_INT64 */ - - -#ifdef FT_MAKE_OPTION_SINGLE_OBJECT - -#define FT_LOCAL( x ) static x -#define FT_LOCAL_DEF( x ) static x - -#else - -#ifdef __cplusplus -#define FT_LOCAL( x ) extern "C" x -#define FT_LOCAL_DEF( x ) extern "C" x -#else -#define FT_LOCAL( x ) extern x -#define FT_LOCAL_DEF( x ) x -#endif - -#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */ - - -#ifndef FT_BASE - -#ifdef __cplusplus -#define FT_BASE( x ) extern "C" x -#else -#define FT_BASE( x ) extern x -#endif - -#endif /* !FT_BASE */ - - -#ifndef FT_BASE_DEF - -#ifdef __cplusplus -#define FT_BASE_DEF( x ) extern "C" x -#else -#define FT_BASE_DEF( x ) extern x -#endif - -#endif /* !FT_BASE_DEF */ - - -#ifndef FT_EXPORT - -#ifdef __cplusplus -#define FT_EXPORT( x ) extern "C" x -#else -#define FT_EXPORT( x ) extern x -#endif - -#endif /* !FT_EXPORT */ - - -#ifndef FT_EXPORT_DEF - -#ifdef __cplusplus -#define FT_EXPORT_DEF( x ) extern "C" x -#else -#define FT_EXPORT_DEF( x ) extern x -#endif - -#endif /* !FT_EXPORT_DEF */ - - -#ifndef FT_EXPORT_VAR - -#ifdef __cplusplus -#define FT_EXPORT_VAR( x ) extern "C" x -#else -#define FT_EXPORT_VAR( x ) extern x -#endif - -#endif /* !FT_EXPORT_VAR */ - - /* The following macros are needed to compile the library with a */ - /* C++ compiler and with 16bit compilers. */ - /* */ - - /* This is special. Within C++, you must specify `extern "C"' for */ - /* functions which are used via function pointers, and you also */ - /* must do that for structures which contain function pointers to */ - /* assure C linkage -- it's not possible to have (local) anonymous */ - /* functions which are accessed by (global) function pointers. */ - /* */ - /* */ - /* FT_CALLBACK_DEF is used to _define_ a callback function. */ - /* */ - /* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */ - /* contains pointers to callback functions. */ - /* */ - /* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */ - /* that contains pointers to callback functions. */ - /* */ - /* */ - /* Some 16bit compilers have to redefine these macros to insert */ - /* the infamous `_cdecl' or `__fastcall' declarations. */ - /* */ -#ifndef FT_CALLBACK_DEF -#ifdef __cplusplus -#define FT_CALLBACK_DEF( x ) extern "C" x -#else -#define FT_CALLBACK_DEF( x ) static x -#endif -#endif /* FT_CALLBACK_DEF */ - -#ifndef FT_CALLBACK_TABLE -#ifdef __cplusplus -#define FT_CALLBACK_TABLE extern "C" -#define FT_CALLBACK_TABLE_DEF extern "C" -#else -#define FT_CALLBACK_TABLE extern -#define FT_CALLBACK_TABLE_DEF /* nothing */ -#endif -#endif /* FT_CALLBACK_TABLE */ - - -FT_END_HEADER - - -#endif /* __FTCONFIG_H__ */ - - -/* END */ Index: xc/lib/font/FreeType/ftfuncs.c diff -u xc/lib/font/FreeType/ftfuncs.c:1.46 xc/lib/font/FreeType/ftfuncs.c:1.47 --- xc/lib/font/FreeType/ftfuncs.c:1.46 Fri Oct 14 11:16:01 2005 +++ xc/lib/font/FreeType/ftfuncs.c Fri May 18 14:01:58 2007 @@ -1,3 +1,4 @@ +/* $XFree86: xc/lib/font/FreeType/ftfuncs.c,v 1.47 2007/05/18 18:01:58 tsi Exp $ */ /* Copyright (c) 1997 by Mark Leisher Copyright (c) 1998-2003 by Juliusz Chroboczek @@ -26,8 +27,6 @@ THE SOFTWARE. */ -/* $XFree86: xc/lib/font/FreeType/ftfuncs.c,v 1.46 2005/10/14 15:16:01 tsi Exp $ */ - #include "fontmisc.h" #ifndef FONTMODULE @@ -50,10 +49,7 @@ #include FT_TYPE1_TABLES_H #include FT_XFREE86_H #include FT_BBOX_H -#include FT_INTERNAL_TRUETYPE_TYPES_H #include FT_TRUETYPE_TAGS_H -#include FT_INTERNAL_SFNT_H -#include FT_INTERNAL_STREAM_H /* * If you want to use FT_Outline_Get_CBox instead of * FT_Outline_Get_BBox, define here. @@ -119,6 +115,25 @@ }; +/* read 2-byte value from a SFNT table */ +static FT_UShort +sfnt_get_ushort( FT_Face face, + FT_ULong table_tag, + FT_ULong table_offset ) +{ + FT_Byte buff[2]; + FT_ULong len = sizeof(buff); + FT_UShort result = 0; + + if ( !FT_Load_Sfnt_Table( face, table_tag, table_offset, buff, &len ) ); + result = (FT_UShort)( (buff[0] << 8) | buff[1] ); + + return result; +} + +#define sfnt_get_short(f,t,o) ((FT_Short)sfnt_get_ushort((f),(t),(o))) + + static int ftypeInitP = 0; /* is the engine initialised? */ static FT_Library ftypeLibrary; @@ -207,6 +222,10 @@ if(maxp && maxp->maxContours == 0) face->bitmap = 1; } + + face->num_hmetrics = (FT_UInt) sfnt_get_ushort( face->face, + TTAG_hhea, 34 ); + /* Insert face in hashtable and return it */ face->next = faceTable[bucket]; faceTable[bucket] = face; @@ -458,30 +477,32 @@ } if( FT_IS_SFNT( face->face ) ) { - /* See Set_Char_Sizes() in ttdriver.c */ - FT_Error err; - TT_Face tt_face; - FT_Long tt_dim_x, tt_dim_y; - FT_UShort tt_x_ppem, tt_y_ppem; - FT_F26Dot6 tt_char_width, tt_char_height; - SFNT_Service sfnt; - tt_face=(TT_Face)face->face; - tt_char_width = (int)(trans->scale*(1<<6) + 0.5); - tt_char_height = (int)(trans->scale*(1<<6) + 0.5); - if ( ( tt_face->header.Flags & 8 ) != 0 ) { - tt_dim_x = ( ( tt_char_width * trans->xres + (36+32*72) ) / 72 ) & -64; - tt_dim_y = ( ( tt_char_height * trans->yres + (36+32*72) ) / 72 ) & -64; - } - else{ - tt_dim_x = ( ( tt_char_width * trans->xres + 36 ) / 72 ); - tt_dim_y = ( ( tt_char_height * trans->yres + 36 ) / 72 ); - } - tt_x_ppem = (FT_UShort)( tt_dim_x >> 6 ); - tt_y_ppem = (FT_UShort)( tt_dim_y >> 6 ); - /* See Reset_SBit_Size() in ttobjs.c */ - sfnt = (SFNT_Service)tt_face->sfnt; - err = sfnt->set_sbit_strike(tt_face,tt_x_ppem,tt_y_ppem,&instance->strike_index); - if ( err ) instance->strike_index=0xFFFFU; + FT_F26Dot6 tt_char_width, tt_char_height, tt_dim_x, tt_dim_y; + FT_UInt nn; + + instance->strike_index=0xFFFFU; + + tt_char_width = (FT_F26Dot6)(trans->scale*(1<<6) + 0.5); + tt_char_height = (FT_F26Dot6)(trans->scale*(1<<6) + 0.5); + + tt_dim_x = FLOOR64( ( tt_char_width * trans->xres + 36 ) / 72 + 32 ); + tt_dim_y = FLOOR64( ( tt_char_height * trans->yres + 36 ) / 72 + 32 ); + + if ( tt_dim_x && !tt_dim_y ) + tt_dim_y = tt_dim_x; + else if ( !tt_dim_x && tt_dim_y ) + tt_dim_x = tt_dim_y; + + for ( nn = 0; nn < face->face->num_fixed_sizes; nn++ ) + { + FT_Bitmap_Size* sz = &face->face->available_sizes[nn]; + + if ( tt_dim_x == FLOOR64(sz->x_ppem + 32) && tt_dim_y == FLOOR64(sz->y_ppem + 32) ) + { + instance->strike_index = nn; + break; + } + } } /* maintain a linked list of instances */ @@ -799,31 +820,61 @@ * parse the htmx field in TrueType font. */ -/* from src/truetype/ttgload.c */ static void -tt_get_metrics( TT_HoriHeader* header, +tt_get_metrics( FT_Face face, FT_UInt idx, + FT_UInt num_hmetrics, FT_Short* bearing, FT_UShort* advance ) -/* Copyright 1996-2001, 2002 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ { - TT_LongMetrics longs_m; - FT_UShort k = header->number_Of_HMetrics; + /* read the metrics directly from the horizontal header, we + * parse the SFNT table directly through the standard FreeType API. + * this works with any version of the library and doesn't need to + * peek at its internals. Maybe a bit less + */ + FT_UInt count = num_hmetrics; + FT_ULong length = 0; + FT_ULong offset = 0; + FT_Error error; - if ( k == 0 ) { - *bearing = *advance = 0; - return; - } + error = FT_Load_Sfnt_Table( face, TTAG_hmtx, 0, NULL, &length ); - if ( idx < (FT_UInt)k ) { - longs_m = (TT_LongMetrics )header->long_metrics + idx; - *bearing = longs_m->bearing; - *advance = longs_m->advance; + if ( count == 0 || error ) + { + *advance = 0; + *bearing = 0; + } + else if ( idx < count ) + { + offset = idx * 4L; + if ( offset + 4 > length ) + { + *advance = 0; + *bearing = 0; + } + else + { + *advance = sfnt_get_ushort( face, TTAG_hmtx, offset ); + *bearing = sfnt_get_short ( face, TTAG_hmtx, offset+2 ); + } + } + else + { + offset = 4L * (count - 1); + if ( offset + 4 > length ) + { + *advance = 0; + *bearing = 0; + } + else + { + *advance = sfnt_get_ushort ( face, TTAG_hmtx, offset ); + offset += 4 + 2 * ( idx - count ); + if ( offset + 2 > length) + *bearing = 0; + else + *bearing = sfnt_get_short ( face, TTAG_hmtx, offset ); } - else { - *bearing = ((TT_ShortMetrics*)header->short_metrics)[idx - k]; - *advance = ((TT_LongMetrics )header->long_metrics)[k - 1].advance; } } @@ -831,6 +882,7 @@ ft_get_very_lazy_bbox( FT_UInt index, FT_Face face, FT_Size size, + FT_UInt num_hmetrics, double slant, FT_Matrix *matrix, FT_BBox *bbox, @@ -838,15 +890,14 @@ FT_Long *vertAdvance) { if ( FT_IS_SFNT( face ) ) { - TT_Face ttface = (TT_Face)face; FT_Size_Metrics *smetrics = &size->metrics; FT_Short leftBearing = 0; FT_UShort advance = 0; FT_Vector p0, p1, p2, p3; /* horizontal */ - tt_get_metrics(&ttface->horizontal, index, - &leftBearing, &advance); + tt_get_metrics( face, index, num_hmetrics, + &leftBearing, &advance ); #if 0 fprintf(stderr,"x_scale=%f y_scale=%f\n", @@ -905,69 +956,25 @@ FT_Do_SBit_Metrics( FT_Face ft_face, FT_Size ft_size, FT_ULong strike_index, FT_UShort glyph_index, FT_Glyph_Metrics *metrics_return ) { - SFNT_Service sfnt; - TT_Face face; - FT_Error error; - FT_Stream stream; - TT_SBit_Strike strike; - TT_SBit_Range range; - TT_SBit_MetricsRec elem_metrics; - FT_ULong ebdt_pos; - FT_ULong glyph_offset; - ; - - if ( ! FT_IS_SFNT( ft_face ) ) - { - error=-1; - goto Exit; - } - - face = (TT_Face)ft_face; - sfnt = (SFNT_Service)face->sfnt; - - if ( strike_index != 0xFFFFU && sfnt->load_sbits ) { - /* Check whether there is a glyph sbit for the current index */ - error = sfnt->find_sbit_image( face, glyph_index, strike_index, - &range, &strike, &glyph_offset ); - } - else error=-1; - if ( error ) goto Exit; - - if ( metrics_return == NULL ) goto Exit; - - stream = face->root.stream; - - /* now, find the location of the `EBDT' table in */ - /* the font file */ - error = face->goto_table( face, TTAG_EBDT, stream, 0 ); - if ( error ) - error = face->goto_table( face, TTAG_bdat, stream, 0 ); - if (error) - goto Exit; - - ebdt_pos = FT_STREAM_POS(); - - /* place stream at beginning of glyph data and read metrics */ - if ( FT_STREAM_SEEK( ebdt_pos + glyph_offset ) ) - goto Exit; - - error = sfnt->load_sbit_metrics( stream, range, &elem_metrics ); - if ( error ) - goto Exit; - - metrics_return->width = (FT_Pos)elem_metrics.width << 6; - metrics_return->height = (FT_Pos)elem_metrics.height << 6; - - metrics_return->horiBearingX = (FT_Pos)elem_metrics.horiBearingX << 6; - metrics_return->horiBearingY = (FT_Pos)elem_metrics.horiBearingY << 6; - metrics_return->horiAdvance = (FT_Pos)elem_metrics.horiAdvance << 6; - - metrics_return->vertBearingX = (FT_Pos)elem_metrics.vertBearingX << 6; - metrics_return->vertBearingY = (FT_Pos)elem_metrics.vertBearingY << 6; - metrics_return->vertAdvance = (FT_Pos)elem_metrics.vertAdvance << 6; - - Exit: - return error; + if ( strike_index != 0xFFFFU && ft_face->available_sizes != NULL ) + { + FT_Error error; + FT_Bitmap_Size* sz = &ft_face->available_sizes[strike_index]; + + error = FT_Set_Pixel_Sizes( ft_face, sz->x_ppem/64, sz->y_ppem/64 ); + if ( !error ) + { + error = FT_Load_Glyph( ft_face, glyph_index, FT_LOAD_SBITS_ONLY ); + if ( !error ) + { + if ( metrics_return != NULL ) + *metrics_return = ft_face->glyph->metrics; + + return 0; + } + } + } + return -1; } int @@ -1023,6 +1030,7 @@ if( bitmap_metrics == NULL ) { if ( instance->ttcap.flags & TTCAP_IS_VERY_LAZY ) { if( ft_get_very_lazy_bbox( idx, face->face, instance->size, + face->num_hmetrics, instance->ttcap.vl_slant, &instance->transformation.matrix, &bbox, &outline_hori_advance, @@ -1183,10 +1191,27 @@ } if( face->face->glyph->format != FT_GLYPH_FORMAT_BITMAP ) { +#ifdef USE_GET_CBOX + FT_Outline_Get_CBox(&face->face->glyph->outline, &bbox); + ftrc = 0; +#else + ftrc = FT_Outline_Get_BBox(&face->face->glyph->outline, &bbox); +#endif + if( ftrc != 0 ) return FTtoXReturnCode(ftrc); + bbox.yMin = FLOOR64( bbox.yMin ); + bbox.yMax = CEIL64 ( bbox.yMax ); + ht_actual = ( bbox.yMax - bbox.yMin ) >> 6; + /* FreeType think a glyph with 0 height control box is invalid. + * So just let X to create a empty bitmap instead. */ + if ( ht_actual == 0 ) + is_outline = -1; + else + { ftrc = FT_Render_Glyph(face->face->glyph,FT_RENDER_MODE_MONO); if( ftrc != 0 ) return FTtoXReturnCode(ftrc); is_outline = 1; } + } else{ is_outline=0; } @@ -1197,6 +1222,7 @@ if( is_outline == 1 ){ if( correct ){ if( ft_get_very_lazy_bbox( idx, face->face, instance->size, + face->num_hmetrics, instance->ttcap.vl_slant, &instance->transformation.matrix, &bbox, &outline_hori_advance, Index: xc/lib/font/FreeType/ftfuncs.h diff -u xc/lib/font/FreeType/ftfuncs.h:1.19 xc/lib/font/FreeType/ftfuncs.h:1.20 --- xc/lib/font/FreeType/ftfuncs.h:1.19 Wed Apr 14 11:32:43 2004 +++ xc/lib/font/FreeType/ftfuncs.h Fri May 18 14:01:58 2007 @@ -1,3 +1,4 @@ +/* $XFree86: xc/lib/font/FreeType/ftfuncs.h,v 1.20 2007/05/18 18:01:58 tsi Exp $ */ /* Copyright (c) 1998-2002 by Juliusz Chroboczek Copyright (c) 2003 After X-TT Project, All rights reserved. @@ -20,7 +21,6 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/* $XFree86: xc/lib/font/FreeType/ftfuncs.h,v 1.19 2004/04/14 15:32:43 dawes Exp $ */ /* Number of buckets in the hashtable holding faces */ #define NUMFACEBUCKETS 32 @@ -47,6 +47,7 @@ char *filename; FT_Face face; int bitmap; + FT_UInt num_hmetrics; struct _FTInstance *instances; struct _FTInstance *active_instance; struct _FTFace *next; /* link to next face in bucket */ Index: xc/lib/font/FreeType/ftsystem.c diff -u xc/lib/font/FreeType/ftsystem.c:1.5 xc/lib/font/FreeType/ftsystem.c:removed --- xc/lib/font/FreeType/ftsystem.c:1.5 Fri Oct 14 11:16:01 2005 +++ xc/lib/font/FreeType/ftsystem.c Sun Aug 12 22:00:57 2007 @@ -1,331 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftsystem.c */ -/* */ -/* ANSI-specific FreeType low-level system interface (body). */ -/* */ -/* Copyright 1996-2001, 2002 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Modified for XFree86. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/* Modified for XFree86 */ -/* $XFree86: xc/lib/font/FreeType/ftsystem.c,v 1.5 2005/10/14 15:16:01 tsi Exp $ */ - - /*************************************************************************/ - /* */ - /* This file contains the default interface used by FreeType to access */ - /* low-level, i.e. memory management, i/o access as well as thread */ - /* synchronisation. It can be replaced by user-specific routines if */ - /* necessary. */ - /* */ - /*************************************************************************/ - - -#include -#include FT_CONFIG_CONFIG_H -#include FT_INTERNAL_DEBUG_H -#include FT_SYSTEM_H -#include FT_ERRORS_H -#include FT_TYPES_H -#include FT_INTERNAL_OBJECTS_H -#include FT_INTERNAL_STREAM_H - -#ifndef FONTMODULE -#include -#include -#else -#include -#define _XTYPEDEF_BOOL -#include -#define DONT_DEFINE_WRAPPERS -#include "xf86_ansic.h" -#undef DONT_DEFINE_WRAPPERS -#define malloc(x) xf86malloc(x) -#define realloc(x, y) xf86realloc(x, y) -#define free(x) xf86free(x) -#define FILE XF86FILE -#define fopen(x, y) xf86fopen(x, y) -#define fclose(x) xf86fclose(x) -#define fseek(x, y, z) xf86fseek(x, y, z) -#define ftell(x) xf86ftell(x) -#define SEEK_SET XF86_SEEK_SET -#define SEEK_END XF86_SEEK_END -#define fread(x, y, z, t) xf86fread(x, y, z, t) -#endif - - - /*************************************************************************/ - /* */ - /* MEMORY MANAGEMENT INTERFACE */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* It is not necessary to do any error checking for the */ - /* allocation-related functions. This will be done by the higher level */ - /* routines like FT_Alloc() or FT_Realloc(). */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* */ - /* ft_alloc */ - /* */ - /* */ - /* The memory allocation function. */ - /* */ - /* */ - /* memory :: A pointer to the memory object. */ - /* */ - /* size :: The requested size in bytes. */ - /* */ - /* */ - /* The address of newly allocated block. */ - /* */ - FT_CALLBACK_DEF( void* ) - ft_alloc( FT_Memory memory, - long size ) - { - FT_UNUSED( memory ); - - return malloc( size ); - } - - - /*************************************************************************/ - /* */ - /* */ - /* ft_realloc */ - /* */ - /* */ - /* The memory reallocation function. */ - /* */ - /* */ - /* memory :: A pointer to the memory object. */ - /* */ - /* cur_size :: The current size of the allocated memory block. */ - /* */ - /* new_size :: The newly requested size in bytes. */ - /* */ - /* block :: The current address of the block in memory. */ - /* */ - /* */ - /* The address of the reallocated memory block. */ - /* */ - FT_CALLBACK_DEF( void* ) - ft_realloc( FT_Memory memory, - long cur_size, - long new_size, - void* block ) - { - FT_UNUSED( memory ); - FT_UNUSED( cur_size ); - - return realloc( block, new_size ); - } - - - /*************************************************************************/ - /* */ - /* */ - /* ft_free */ - /* */ - /* */ - /* The memory release function. */ - /* */ - /* */ - /* memory :: A pointer to the memory object. */ - /* */ - /* block :: The address of block in memory to be freed. */ - /* */ - FT_CALLBACK_DEF( void ) - ft_free( FT_Memory memory, - void* block ) - { - FT_UNUSED( memory ); - - free( block ); - } - - - /*************************************************************************/ - /* */ - /* RESOURCE MANAGEMENT INTERFACE */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* The macro FT_COMPONENT is used in trace mode. It is an implicit */ - /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log */ - /* messages during execution. */ - /* */ -#undef FT_COMPONENT -#define FT_COMPONENT trace_io - - /* We use the macro STREAM_FILE for convenience to extract the */ - /* system-specific stream handle from a given FreeType stream object */ -#define STREAM_FILE( stream ) ( (FILE*)stream->descriptor.pointer ) - - - /*************************************************************************/ - /* */ - /* */ - /* ft_ansi_stream_close */ - /* */ - /* */ - /* The function to close a stream. */ - /* */ - /* */ - /* stream :: A pointer to the stream object. */ - /* */ - FT_CALLBACK_DEF( void ) - ft_ansi_stream_close( FT_Stream stream ) - { - fclose( STREAM_FILE( stream ) ); - - stream->descriptor.pointer = NULL; - stream->size = 0; - stream->base = 0; - } - - - /*************************************************************************/ - /* */ - /* */ - /* ft_ansi_stream_io */ - /* */ - /* */ - /* The function to open a stream. */ - /* */ - /* */ - /* stream :: A pointer to the stream object. */ - /* */ - /* offset :: The position in the data stream to start reading. */ - /* */ - /* buffer :: The address of buffer to store the read data. */ - /* */ - /* count :: The number of bytes to read from the stream. */ - /* */ - /* */ - /* The number of bytes actually read. */ - /* */ - FT_CALLBACK_DEF( unsigned long ) - ft_ansi_stream_io( FT_Stream stream, - unsigned long offset, - unsigned char* buffer, - unsigned long count ) - { - FILE* file; - - - file = STREAM_FILE( stream ); - - fseek( file, offset, SEEK_SET ); - - return (unsigned long)fread( buffer, 1, count, file ); - } - - - /* documentation is in ftobjs.h */ - - FT_EXPORT_DEF( FT_Error ) - FT_Stream_Open( FT_Stream stream, - const char* filepathname ) - { - FILE* file; - - - if ( !stream ) - return FT_Err_Invalid_Stream_Handle; - - file = fopen( filepathname, "rb" ); - if ( !file ) - { - FT_ERROR(( "FT_Stream_Open:" )); - FT_ERROR(( " could not open `%s'\n", filepathname )); - - return FT_Err_Cannot_Open_Resource; - } - - fseek( file, 0, SEEK_END ); - stream->size = ftell( file ); - fseek( file, 0, SEEK_SET ); - - stream->descriptor.pointer = file; - stream->pathname.pointer = (char*)filepathname; - stream->pos = 0; - - stream->read = ft_ansi_stream_io; - stream->close = ft_ansi_stream_close; - - FT_TRACE1(( "FT_Stream_Open:" )); - FT_TRACE1(( " opened `%s' (%d bytes) successfully\n", - filepathname, stream->size )); - - return FT_Err_Ok; - } - - -#ifdef FT_DEBUG_MEMORY - - extern FT_Int - ft_mem_debug_init( FT_Memory memory ); - - extern void - ft_mem_debug_done( FT_Memory memory ); - -#endif - - - /* documentation is in ftobjs.h */ - - FT_EXPORT_DEF( FT_Memory ) - FT_New_Memory( void ) - { - FT_Memory memory; - - - memory = (FT_Memory)malloc( sizeof ( *memory ) ); - if ( memory ) - { - memory->user = 0; - memory->alloc = ft_alloc; - memory->realloc = ft_realloc; - memory->free = ft_free; -#ifdef FT_DEBUG_MEMORY - ft_mem_debug_init( memory ); -#endif - } - - return memory; - } - - - /* documentation is in ftobjs.h */ - - FT_EXPORT_DEF( void ) - FT_Done_Memory( FT_Memory memory ) - { -#ifdef FT_DEBUG_MEMORY - ft_mem_debug_done( memory ); -#endif -#undef free - memory->free( memory, memory ); - } - - -/* END */ Index: xc/lib/font/FreeType/fttools.c diff -u xc/lib/font/FreeType/fttools.c:1.9 xc/lib/font/FreeType/fttools.c:1.10 --- xc/lib/font/FreeType/fttools.c:1.9 Fri Oct 14 11:16:01 2005 +++ xc/lib/font/FreeType/fttools.c Mon Jul 10 23:05:12 2006 @@ -21,7 +21,7 @@ THE SOFTWARE. */ -/* $XFree86: xc/lib/font/FreeType/fttools.c,v 1.9 2005/10/14 15:16:01 tsi Exp $ */ +/* $XFree86: xc/lib/font/FreeType/fttools.c,v 1.10 2006/07/11 03:05:12 tsi Exp $ */ #include "fontmisc.h" #ifndef FONTMODULE @@ -122,6 +122,8 @@ FT_SfntName name; int len; + name_len--; + if(FTGetName(face, nid, TT_PLATFORM_MICROSOFT, TT_MS_ID_UNICODE_CS, &name) || FTGetName(face, nid, @@ -135,6 +137,7 @@ if(len > name_len) len = name_len; memcpy(name_return, name.string, len); + name_return[len] = 0; return len; } Index: xc/lib/font/FreeType/module/Imakefile diff -u xc/lib/font/FreeType/module/Imakefile:1.23 xc/lib/font/FreeType/module/Imakefile:1.24 --- xc/lib/font/FreeType/module/Imakefile:1.23 Fri Oct 14 11:16:01 2005 +++ xc/lib/font/FreeType/module/Imakefile Fri May 18 14:01:58 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/font/FreeType/module/Imakefile,v 1.23 2005/10/14 15:16:01 tsi Exp $ +XCOMM $XFree86: xc/lib/font/FreeType/module/Imakefile,v 1.24 2007/05/18 18:01:58 tsi Exp $ /* * Copyright (c) 1994-2004 by The XFree86 Project, Inc. * All rights reserved. @@ -52,7 +52,7 @@ #define IHaveModules #include -DEFINES = -DFONTMODULE Freetype2BuildDefines -DXFREE86_FT2 +DEFINES = -DFONTMODULE Freetype2BuildDefines INCLUDES = -I.. -I../../include \ -I$(SERVERSRC)/include \ @@ -96,7 +96,7 @@ LinkSourceFile(ftinit.c,$(FT2SOURCEDIR)/base) LinkSourceFile(ftglyph.c,$(FT2SOURCEDIR)/base) LinkSourceFile(ftbbox.c,$(FT2SOURCEDIR)/base) -LinkSourceFile(ftsystem.c,..) +LinkSourceFile(ftsystem.c,$(FT2SOURCEDIR)/base) LinkSourceFile(ftutil.c,$(FT2SOURCEDIR)/base) LinkSourceFile(fttype1.c,$(FT2SOURCEDIR)/base) LinkSourceFile(ftxf86.c,$(FT2SOURCEDIR)/base) Index: xc/lib/font/FreeType/module/ft2build.h diff -u xc/lib/font/FreeType/module/ft2build.h:1.1 xc/lib/font/FreeType/module/ft2build.h:removed --- xc/lib/font/FreeType/module/ft2build.h:1.1 Wed Nov 19 21:35:40 2003 +++ xc/lib/font/FreeType/module/ft2build.h Sun Aug 12 22:00:57 2007 @@ -1,41 +0,0 @@ -/***************************************************************************/ -/* */ -/* ft2build.h */ -/* */ -/* FreeType 2 build and setup macros. */ -/* */ -/* Copyright 1996-2001 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Modified for XFree86. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - -/* $XFree86: xc/lib/font/FreeType/module/ft2build.h,v 1.1 2003/11/20 02:35:40 dawes Exp $ */ - - /*************************************************************************/ - /* */ - /* This file corresponds to the default "ft2build.h" file for */ - /* FreeType 2. It uses the "freetype" include root. */ - /* */ - /* Note that specific platforms might use a different configuration. */ - /* See builds/unix/ft2unix.h for an example. */ - /* */ - /*************************************************************************/ - - -#ifndef __FT2_BUILD_GENERIC_H__ -#define __FT2_BUILD_GENERIC_H__ - -#include "ftheader.h" - -#endif /* __FT2_BUILD_GENERIC_H__ */ - - -/* END */ Index: xc/lib/font/FreeType/module/ftheader.h diff -u xc/lib/font/FreeType/module/ftheader.h:1.2 xc/lib/font/FreeType/module/ftheader.h:removed --- xc/lib/font/FreeType/module/ftheader.h:1.2 Mon Apr 26 12:15:56 2004 +++ xc/lib/font/FreeType/module/ftheader.h Sun Aug 12 22:00:57 2007 @@ -1,564 +0,0 @@ -/***************************************************************************/ -/* */ -/* ftheader.h */ -/* */ -/* Build macros of the FreeType 2 library. */ -/* */ -/* Copyright 1996-2001, 2002, 2003, 2004 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ -/* $XFree86: xc/lib/font/FreeType/module/ftheader.h,v 1.2 2004/04/26 16:15:56 dawes Exp $ */ - -#ifndef __FT_HEADER_H__ -#define __FT_HEADER_H__ - - /*@***********************************************************************/ - /* */ - /* */ - /* FT_BEGIN_HEADER */ - /* */ - /* */ - /* This macro is used in association with @FT_END_HEADER in header */ - /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }' block when included from a */ - /* C++ compiler. */ - /* */ -#ifdef __cplusplus -#define FT_BEGIN_HEADER extern "C" { -#else -#define FT_BEGIN_HEADER /* nothing */ -#endif - - - /*@***********************************************************************/ - /* */ - /* */ - /* FT_END_HEADER */ - /* */ - /* */ - /* This macro is used in association with @FT_BEGIN_HEADER in header */ - /* files to ensure that the declarations within are properly */ - /* encapsulated in an `extern "C" { .. }' block when included from a */ - /* C++ compiler. */ - /* */ -#ifdef __cplusplus -#define FT_END_HEADER } -#else -#define FT_END_HEADER /* nothing */ -#endif - - - /*************************************************************************/ - /* */ - /* Aliases for the FreeType 2 public and configuration files. */ - /* */ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /*
*/ - /* header_file_macros */ - /* */ - /* */ - /* Header File Macros */ - /* */ - /* <Abstract> */ - /* Macro definitions used to #include specific header files. */ - /* */ - /* <Description> */ - /* The following macros are defined to the name of specific */ - /* FreeType 2 header files. They can be used directly in #include */ - /* statements as in: */ - /* */ - /* { */ - /* #include FT_FREETYPE_H */ - /* #include FT_MULTIPLE_MASTERS_H */ - /* #include FT_GLYPH_H */ - /* } */ - /* */ - /* There are several reasons why we are now using macros to name */ - /* public header files. The first one is that such macros are not */ - /* limited to the infamous 8.3 naming rule required by DOS (and */ - /* `FT_MULTIPLE_MASTERS_H' is a lot more meaningful than `ftmm.h'). */ - /* */ - /* The second reason is that is allows for more flexibility in the */ - /* way FreeType 2 is installed on a given system. */ - /* */ - /*************************************************************************/ - - /* configuration files */ - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CONFIG_CONFIG_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* FreeType 2 configuration data. */ - /* */ -#ifndef FT_CONFIG_CONFIG_H -#define FT_CONFIG_CONFIG_H <ftconfig.h> -#endif - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CONFIG_STANDARD_LIBRARY_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* FreeType 2 configuration data. */ - /* */ -#ifndef FT_CONFIG_STANDARD_LIBRARY_H -#define FT_CONFIG_STANDARD_LIBRARY_H <ftstdlib.h> -#endif - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CONFIG_OPTIONS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* FreeType 2 project-specific configuration options. */ - /* */ -#ifndef FT_CONFIG_OPTIONS_H -#define FT_CONFIG_OPTIONS_H <ftoption.h> -#endif - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CONFIG_MODULES_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the list of FreeType 2 modules that are statically linked to new */ - /* library instances in @FT_Init_FreeType. */ - /* */ -#ifndef FT_CONFIG_MODULES_H -#define FT_CONFIG_MODULES_H <ftmodule.h> -#endif - - /* public headers */ - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_FREETYPE_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the base FreeType 2 API. */ - /* */ -#define FT_FREETYPE_H <freetype/freetype.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_ERRORS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the list of FreeType 2 error codes (and messages). */ - /* */ - /* It is included by @FT_FREETYPE_H. */ - /* */ -#define FT_ERRORS_H <freetype/fterrors.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_MODULE_ERRORS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the list of FreeType 2 module error offsets (and messages). */ - /* */ -#define FT_MODULE_ERRORS_H <freetype/ftmoderr.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_SYSTEM_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the FreeType 2 interface to low-level operations (i.e. memory */ - /* management and stream i/o). */ - /* */ - /* It is included by @FT_FREETYPE_H. */ - /* */ -#define FT_SYSTEM_H <freetype/ftsystem.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_IMAGE_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* types definitions related to glyph images (i.e. bitmaps, outlines, */ - /* scan-converter parameters). */ - /* */ - /* It is included by @FT_FREETYPE_H. */ - /* */ -#define FT_IMAGE_H <freetype/ftimage.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_TYPES_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the basic data types defined by FreeType 2. */ - /* */ - /* It is included by @FT_FREETYPE_H. */ - /* */ -#define FT_TYPES_H <fttypes.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_LIST_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the list management API of FreeType 2. */ - /* */ - /* (Most applications will never need to include this file.) */ - /* */ -#define FT_LIST_H <freetype/ftlist.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_OUTLINE_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the scalable outline management API of FreeType 2. */ - /* */ -#define FT_OUTLINE_H <freetype/ftoutln.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_SIZES_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the API used to manage multiple @FT_Size objects per face. */ - /* */ -#define FT_SIZES_H <freetype/ftsizes.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_MODULE_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the module management API of FreeType 2. */ - /* */ -#define FT_MODULE_H <freetype/ftmodapi.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_RENDER_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the renderer module management API of FreeType 2. */ - /* */ -#define FT_RENDER_H <freetype/ftrender.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_TYPE1_TABLES_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the types and API specific to the Type 1 format. */ - /* */ -#define FT_TYPE1_TABLES_H <freetype/t1tables.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_TRUETYPE_IDS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the enumeration values used to identify name strings, languages, */ - /* encodings, etc. This file really contains a _large_ set of */ - /* constant macro definitions, taken from the TrueType and OpenType */ - /* specifications. */ - /* */ -#define FT_TRUETYPE_IDS_H <freetype/ttnameid.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_TRUETYPE_TABLES_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the types and API specific to the TrueType (as well as OpenType) */ - /* format. */ - /* */ -#define FT_TRUETYPE_TABLES_H <freetype/tttables.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_TRUETYPE_TAGS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the definitions of TrueType 4-byte `tags' used to identify blocks */ - /* in SFNT-based font formats (i.e. TrueType and OpenType). */ - /* */ -#define FT_TRUETYPE_TAGS_H <freetype/tttags.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_BDF_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the definitions of an API to access BDF-specific strings from a */ - /* face. */ - /* */ -#define FT_BDF_H <freetype/ftbdf.h> - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_GZIP_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the definitions of an API to support for gzip-compressed files. */ - /* */ -#define FT_GZIP_H <freetype/ftgzip.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_LZW_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the definitions of an API to support for LZW-compressed files. */ - /* */ -#define FT_LZW_H <freetype/ftlzw.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_WINFONTS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the definitions of an API to support Windows .FNT files */ - /* */ -#define FT_WINFONTS_H <freetype/ftwinfnt.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_GLYPH_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the API of the optional glyph management component. */ - /* */ -#define FT_GLYPH_H <freetype/ftglyph.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_BBOX_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the API of the optional exact bounding box computation routines. */ - /* */ -#define FT_BBOX_H <freetype/ftbbox.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CACHE_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the API of the optional FreeType 2 cache sub-system. */ - /* */ -#define FT_CACHE_H <freetype/ftcache.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CACHE_IMAGE_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the `glyph image' API of the FreeType 2 cache sub-system. */ - /* */ - /* It is used to define a cache for @FT_Glyph elements. You can also */ - /* see the API defined in @FT_CACHE_SMALL_BITMAPS_H if you only need */ - /* to store small glyph bitmaps, as it will use less memory. */ - /* */ - /* This macro is deprecated. Simply include @FT_CACHE_H to have all */ - /* glyph image-related cache declarations. */ - /* */ -#define FT_CACHE_IMAGE_H FT_CACHE_H - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CACHE_SMALL_BITMAPS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the `small bitmaps' API of the FreeType 2 cache sub-system. */ - /* */ - /* It is used to define a cache for small glyph bitmaps in a */ - /* relatively memory-efficient way. You can also use the API defined */ - /* in @FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, */ - /* including scalable outlines. */ - /* */ - /* This macro is deprecated. Simply include @FT_CACHE_H to have all */ - /* small bitmaps-related cache declarations. */ - /* */ -#define FT_CACHE_SMALL_BITMAPS_H FT_CACHE_H - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_CACHE_CHARMAP_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the `charmap' API of the FreeType 2 cache sub-system. */ - /* */ - /* This macro is deprecated. Simply include @FT_CACHE_H to have all */ - /* charmap-based cache declarations. */ - /* */ -#define FT_CACHE_CHARMAP_H FT_CACHE_H - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_MAC_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the Macintosh-specific FreeType 2 API. The latter is used to */ - /* access fonts embedded in resource forks. */ - /* */ - /* This header file must be explicitly included by client */ - /* applications compiled on the Mac (note that the base API still */ - /* works though). */ - /* */ -#define FT_MAC_H <freetype/ftmac.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_MULTIPLE_MASTERS_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the optional multiple-masters management API of FreeType 2. */ - /* */ -#define FT_MULTIPLE_MASTERS_H <freetype/ftmm.h> - - - /*************************************************************************/ - /* */ - /* @macro: */ - /* FT_SFNT_NAMES_H */ - /* */ - /* @description: */ - /* A macro used in #include statements to name the file containing */ - /* the optional FreeType 2 API used to access embedded `name' strings */ - /* in SFNT-based font formats (i.e. TrueType and OpenType). */ - /* */ -#define FT_SFNT_NAMES_H <freetype/ftsnames.h> - - /* */ - -#define FT_TRIGONOMETRY_H <freetype/fttrigon.h> -#define FT_STROKER_H <freetype/ftstroke.h> -#define FT_SYNTHESIS_H <freetype/ftsynth.h> -#define FT_ERROR_DEFINITIONS_H <freetype/fterrdef.h> - -#define FT_CACHE_MANAGER_H <freetype/cache/ftcmanag.h> - -#define FT_CACHE_INTERNAL_MRU_H <freetype/cache/ftcmru.h> -#define FT_CACHE_INTERNAL_MANAGER_H <freetype/cache/ftcmanag.h> -#define FT_CACHE_INTERNAL_CACHE_H <freetype/cache/ftccache.h> -#define FT_CACHE_INTERNAL_GLYPH_H <freetype/cache/ftcglyph.h> -#define FT_CACHE_INTERNAL_IMAGE_H <freetype/cache/ftcimage.h> -#define FT_CACHE_INTERNAL_SBITS_H <freetype/cache/ftcsbits.h> - - -#define FT_XFREE86_H <freetype/ftxf86.h> - -#define FT_INCREMENTAL_H <freetype/ftincrem.h> - -#define FT_TRUETYPE_UNPATENTED_H <freetype/ttunpat.h> - - /* now include internal headers definitions from <freetype/internal/...> */ - -#define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h> -#include FT_INTERNAL_INTERNAL_H - - -#endif /* __FT2_BUILD_H__ */ - - -/* END */ Index: xc/lib/font/FreeType/module/ftmodule.h diff -u xc/lib/font/FreeType/module/ftmodule.h:1.1 xc/lib/font/FreeType/module/ftmodule.h:removed --- xc/lib/font/FreeType/module/ftmodule.h:1.1 Wed Nov 19 21:35:40 2003 +++ xc/lib/font/FreeType/module/ftmodule.h Sun Aug 12 22:00:57 2007 @@ -1,21 +0,0 @@ -/* $XFree86: xc/lib/font/FreeType/module/ftmodule.h,v 1.1 2003/11/20 02:35:40 dawes Exp $ */ - -FT_USE_MODULE(autohint_module_class) -FT_USE_MODULE(cff_driver_class) -/* FT_USE_MODULE(t1cid_driver_class) */ -FT_USE_MODULE(pcf_driver_class) -FT_USE_MODULE(bdf_driver_class) -FT_USE_MODULE(psaux_module_class) -FT_USE_MODULE(psnames_module_class) -FT_USE_MODULE(pshinter_module_class) -FT_USE_MODULE(ft_raster1_renderer_class) -FT_USE_MODULE(sfnt_module_class) -/* FT_USE_MODULE(ft_smooth_renderer_class) */ -/* FT_USE_MODULE(ft_smooth_lcd_renderer_class) */ -/* FT_USE_MODULE(ft_smooth_lcdv_renderer_class) */ -FT_USE_MODULE(tt_driver_class) -FT_USE_MODULE(t1_driver_class) -/* FT_USE_MODULE(t42_driver_class) */ -/* FT_USE_MODULE(pfr_driver_class) */ -/* FT_USE_MODULE(winfnt_driver_class) */ - Index: xc/lib/font/FreeType/module/ftoption.h diff -u xc/lib/font/FreeType/module/ftoption.h:1.3 xc/lib/font/FreeType/module/ftoption.h:removed --- xc/lib/font/FreeType/module/ftoption.h:1.3 Mon Mar 28 23:00:30 2005 +++ xc/lib/font/FreeType/module/ftoption.h Sun Aug 12 22:00:57 2007 @@ -1,570 +0,0 @@ -/* $XFree86: xc/lib/font/FreeType/module/ftoption.h,v 1.3 2005/03/29 04:00:30 tsi Exp $ */ -/***************************************************************************/ -/* */ -/* ftoption.h */ -/* */ -/* User-selectable configuration macros (specification only). */ -/* */ -/* Copyright 1996-2001, 2002, 2003, 2004 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Modified for XFree86. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - -#ifndef __FTOPTION_H__ -#define __FTOPTION_H__ - - -#include <ft2build.h> - - -FT_BEGIN_HEADER - - /*************************************************************************/ - /* */ - /* USER-SELECTABLE CONFIGURATION MACROS */ - /* */ - /* This file contains the default configuration macro definitions for */ - /* a standard build of the FreeType library. There are three ways to */ - /* use this file to build project-specific versions of the library: */ - /* */ - /* - You can modify this file by hand, but this is not recommended in */ - /* cases where you would like to build several versions of the */ - /* library from a single source directory. */ - /* */ - /* - You can put a copy of this file in your build directory, more */ - /* precisely in "$BUILD/freetype/config/ftoption.h", where "$BUILD" */ - /* is the name of a directory that is included _before_ the FreeType */ - /* include path during compilation. */ - /* */ - /* The default FreeType Makefiles and Jamfiles use the build */ - /* directory "builds/<system>" by default, but you can easily change */ - /* that for your own projects. */ - /* */ - /* - Copy the file <ft2build.h> to "$BUILD/ft2build.h" and modify it */ - /* slightly to pre-define the macro FT_CONFIG_OPTIONS_H used to */ - /* locate this file during the build. For example, */ - /* */ - /* #define FT_CONFIG_OPTIONS_H <myftoptions.h> */ - /* #include <freetype/config/ftheader.h> */ - /* */ - /* will use "$BUILD/myftoptions.h" instead of this file for macro */ - /* definitions. */ - /* */ - /* Note also that you can similarly pre-define the macro */ - /* FT_CONFIG_MODULES_H used to locate the file listing of the modules */ - /* that are statically linked to the library at compile time. By */ - /* default, this file is <freetype/config/ftmodule.h>. */ - /* */ - /* We highly recommend using the third method whenever possible. */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** G E N E R A L F R E E T Y P E 2 C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Many compilers provide a non-ANSI 64-bit data type that can be used */ - /* by FreeType to speed up some computations. However, this will create */ - /* some problems when compiling the library in strict ANSI mode. */ - /* */ - /* For this reason, the use of 64-bit integers is normally disabled when */ - /* the __STDC__ macro is defined. You can however disable this by */ - /* defining the macro FT_CONFIG_OPTION_FORCE_INT64 here. */ - /* */ - /* For most compilers, this will only create compilation warnings when */ - /* building the library. */ - /* */ - /* ObNote: The compiler-specific 64-bit integers are detected in the */ - /* file "ftconfig.h" either statically or through the */ - /* `configure' script on supported platforms. */ - /* */ -#undef FT_CONFIG_OPTION_FORCE_INT64 - - - /*************************************************************************/ - /* */ - /* LZW-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* 'compress' program. This is mostly used to parse many of the PCF */ - /* files that come with various X11 distributions. The implementation */ - /* uses NetBSD's `zopen' to partially uncompress the file on the fly */ - /* (see src/lzw/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. */ - /* */ -#define FT_CONFIG_OPTION_USE_LZW - - - /*************************************************************************/ - /* */ - /* Gzip-compressed file support. */ - /* */ - /* FreeType now handles font files that have been compressed with the */ - /* 'gzip' program. This is mostly used to parse many of the PCF files */ - /* that come with XFree86. The implementation uses `zlib' to */ - /* partially uncompress the file on the fly (see src/gzip/ftgzip.c). */ - /* */ - /* Define this macro if you want to enable this `feature'. See also */ - /* the macro FT_CONFIG_OPTION_SYSTEM_ZLIB below. */ - /* */ -#define FT_CONFIG_OPTION_USE_ZLIB - - - /*************************************************************************/ - /* */ - /* ZLib library selection */ - /* */ - /* This macro is only used when FT_CONFIG_OPTION_USE_ZLIB is defined. */ - /* It allows FreeType's `ftgzip' component to link to the system's */ - /* installation of the ZLib library. This is useful on systems like */ - /* Unix or VMS where it generally is already available. */ - /* */ - /* If you let it undefined, the component will use its own copy */ - /* of the zlib sources instead. These have been modified to be */ - /* included directly within the component and *not* export external */ - /* function names. This allows you to link any program with FreeType */ - /* _and_ ZLib without linking conflicts. */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -/* #define FT_CONFIG_OPTION_SYSTEM_ZLIB */ - - - /*************************************************************************/ - /* */ - /* DLL export compilation */ - /* */ - /* When compiling FreeType as a DLL, some systems/compilers need a */ - /* special keyword in front OR after the return type of function */ - /* declarations. */ - /* */ - /* Two macros are used within the FreeType source code to define */ - /* exported library functions: FT_EXPORT and FT_EXPORT_DEF. */ - /* */ - /* FT_EXPORT( return_type ) */ - /* */ - /* is used in a function declaration, as in */ - /* */ - /* FT_EXPORT( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ); */ - /* */ - /* */ - /* FT_EXPORT_DEF( return_type ) */ - /* */ - /* is used in a function definition, as in */ - /* */ - /* FT_EXPORT_DEF( FT_Error ) */ - /* FT_Init_FreeType( FT_Library* alibrary ) */ - /* { */ - /* ... some code ... */ - /* return FT_Err_Ok; */ - /* } */ - /* */ - /* You can provide your own implementation of FT_EXPORT and */ - /* FT_EXPORT_DEF here if you want. If you leave them undefined, they */ - /* will be later automatically defined as `extern return_type' to */ - /* allow normal compilation. */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_EXPORT(x) extern x */ -/* #define FT_EXPORT_DEF(x) x */ - - - /*************************************************************************/ - /* */ - /* Glyph Postscript Names handling */ - /* */ - /* By default, FreeType 2 is compiled with the `PSNames' module. This */ - /* module is in charge of converting a glyph name string into a */ - /* Unicode value, or return a Macintosh standard glyph name for the */ - /* use with the TrueType `post' table. */ - /* */ - /* Undefine this macro if you do not want `PSNames' compiled in your */ - /* build of FreeType. This has the following effects: */ - /* */ - /* - The TrueType driver will provide its own set of glyph names, */ - /* if you build it to support postscript names in the TrueType */ - /* `post' table. */ - /* */ - /* - The Type 1 driver will not be able to synthetize a Unicode */ - /* charmap out of the glyphs found in the fonts. */ - /* */ - /* You would normally undefine this configuration macro when building */ - /* a version of FreeType that doesn't contain a Type 1 or CFF driver. */ - /* */ -#define FT_CONFIG_OPTION_POSTSCRIPT_NAMES - - - /*************************************************************************/ - /* */ - /* Postscript Names to Unicode Values support */ - /* */ - /* By default, FreeType 2 is built with the `PSNames' module compiled */ - /* in. Among other things, the module is used to convert a glyph name */ - /* into a Unicode value. This is especially useful in order to */ - /* synthetize on the fly a Unicode charmap from the CFF/Type 1 driver */ - /* through a big table named the `Adobe Glyph List' (AGL). */ - /* */ - /* Undefine this macro if you do not want the Adobe Glyph List */ - /* compiled in your `PSNames' module. The Type 1 driver will not be */ - /* able to synthetize a Unicode charmap out of the glyphs found in the */ - /* fonts. */ - /* */ -#define FT_CONFIG_OPTION_ADOBE_GLYPH_LIST - - - /*************************************************************************/ - /* */ - /* Support for Mac fonts */ - /* */ - /* Define this macro if you want support for outline fonts in Mac */ - /* format (mac dfont, mac resource, macbinary containing a mac */ - /* resource) on non-Mac platforms. */ - /* */ - /* Note that the `FOND' resource isn't checked. */ - /* */ -#define FT_CONFIG_OPTION_MAC_FONTS - - - /*************************************************************************/ - /* */ - /* Guessing methods to access embedded resource forks */ - /* */ - /* Enable extra Mac fonts support on non-Mac platforms (e.g. */ - /* GNU/Linux). */ - /* */ - /* Resource forks which include fonts data are stored sometimes in */ - /* locations which users or developers don't expected. In some cases, */ - /* resource forks start with some offset from the head of a file. In */ - /* other cases, the actual resource fork is stored in file different */ - /* from what the user specifies. If this option is activated, */ - /* FreeType tries to guess whether such offsets or different file */ - /* names must be used. */ - /* */ - /* Note that normal, direct access of resource forks is controlled via */ - /* the FT_CONFIG_OPTION_MAC_FONTS option. */ - /* */ -#ifdef FT_CONFIG_OPTION_MAC_FONTS -#define FT_CONFIG_OPTION_GUESSING_EMBEDDED_RFORK -#endif - - - /*************************************************************************/ - /* */ - /* Allow the use of FT_Incremental_Interface to load typefaces that */ - /* contain no glyph data, but supply it via a callback function. */ - /* This allows FreeType to be used with the PostScript language, using */ - /* the GhostScript interpreter. */ - /* */ -/* #define FT_CONFIG_OPTION_INCREMENTAL */ - - - /*************************************************************************/ - /* */ - /* The size in bytes of the render pool used by the scan-line converter */ - /* to do all of its work. */ - /* */ - /* This must be greater than 4KByte. */ - /* */ -#define FT_RENDER_POOL_SIZE 16384L - - - /*************************************************************************/ - /* */ - /* FT_MAX_MODULES */ - /* */ - /* The maximum number of modules that can be registered in a single */ - /* FreeType library object. 32 is the default. */ - /* */ -#define FT_MAX_MODULES 32 - - - /*************************************************************************/ - /* */ - /* Debug level */ - /* */ - /* FreeType can be compiled in debug or trace mode. In debug mode, */ - /* errors are reported through the `ftdebug' component. In trace */ - /* mode, additional messages are sent to the standard output during */ - /* execution. */ - /* */ - /* Define FT_DEBUG_LEVEL_ERROR to build the library in debug mode. */ - /* Define FT_DEBUG_LEVEL_TRACE to build it in trace mode. */ - /* */ - /* Don't define any of these macros to compile in `release' mode! */ - /* */ - /* Do not #undef these macros here since the build system might define */ - /* them for certain configurations only. */ - /* */ -/* #define FT_DEBUG_LEVEL_ERROR */ -/* #define FT_DEBUG_LEVEL_TRACE */ - - - /*************************************************************************/ - /* */ - /* Memory Debugging */ - /* */ - /* FreeType now comes with an integrated memory debugger that is */ - /* capable of detecting simple errors like memory leaks or double */ - /* deletes. To compile it within your build of the library, you */ - /* should define FT_DEBUG_MEMORY here. */ - /* */ - /* Note that the memory debugger is only activated at runtime when */ - /* when the _environment_ variable "FT2_DEBUG_MEMORY" is defined also! */ - /* */ - /* Do not #undef this macro here since the build system might define */ - /* it for certain configurations only. */ - /* */ -/* #define FT_DEBUG_MEMORY */ - - - /*************************************************************************/ - /* */ - /* Module errors */ - /* */ - /* If this macro is set (which is _not_ the default), the higher byte */ - /* of an error code gives the module in which the error has occurred, */ - /* while the lower byte is the real error code. */ - /* */ - /* Setting this macro makes sense for debugging purposes only, since */ - /* it would break source compatibility of certain programs that use */ - /* FreeType 2. */ - /* */ - /* More details can be found in the files ftmoderr.h and fterrors.h. */ - /* */ -#undef FT_CONFIG_OPTION_USE_MODULE_ERRORS - - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** S F N T D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_EMBEDDED_BITMAPS if you want to support */ - /* embedded bitmaps in all formats using the SFNT module (namely */ - /* TrueType & OpenType). */ - /* */ -#define TT_CONFIG_OPTION_EMBEDDED_BITMAPS - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_POSTSCRIPT_NAMES if you want to be able to */ - /* load and enumerate the glyph Postscript names in a TrueType or */ - /* OpenType file. */ - /* */ - /* Note that when you do not compile the `PSNames' module by undefining */ - /* the above FT_CONFIG_OPTION_POSTSCRIPT_NAMES, the `sfnt' module will */ - /* contain additional code used to read the PS Names table from a font. */ - /* */ - /* (By default, the module uses `PSNames' to extract glyph names.) */ - /* */ -#define TT_CONFIG_OPTION_POSTSCRIPT_NAMES - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_SFNT_NAMES if your applications need to */ - /* access the internal name table in a SFNT-based format like TrueType */ - /* or OpenType. The name table contains various strings used to */ - /* describe the font, like family name, copyright, version, etc. It */ - /* does not contain any glyph name though. */ - /* */ - /* Accessing SFNT names is done through the functions declared in */ - /* `freetype/ftnames.h'. */ - /* */ -#define TT_CONFIG_OPTION_SFNT_NAMES - - - /*************************************************************************/ - /* */ - /* TrueType CMap support */ - /* */ - /* Here you can fine-tune which TrueType CMap table format shall be */ - /* supported. */ -#define TT_CONFIG_CMAP_FORMAT_0 -#define TT_CONFIG_CMAP_FORMAT_2 -#define TT_CONFIG_CMAP_FORMAT_4 -#define TT_CONFIG_CMAP_FORMAT_6 -#define TT_CONFIG_CMAP_FORMAT_8 -#define TT_CONFIG_CMAP_FORMAT_10 -#define TT_CONFIG_CMAP_FORMAT_12 - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** T R U E T Y P E D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_BYTECODE_INTERPRETER if you want to compile */ - /* a bytecode interpreter in the TrueType driver. Note that there are */ - /* important patent issues related to the use of the interpreter. */ - /* */ - /* By undefining this, you will only compile the code necessary to load */ - /* TrueType glyphs without hinting. */ - /* */ - /* Do not #undef this macro here, since the build system might */ - /* define it for certain configurations only. */ - /* */ -/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_UNPATENTED_HINTING (in addition to */ - /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER) to compile the unpatented */ - /* work-around hinting system. Note that for the moment, the algorithm */ - /* is only used when selected at runtime through the parameter tag */ - /* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook */ - /* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally actived */ - /* */ -#define TT_CONFIG_OPTION_UNPATENTED_HINTING - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_INTERPRETER_SWITCH to compile the TrueType */ - /* bytecode interpreter with a huge switch statement, rather than a call */ - /* table. This results in smaller and faster code for a number of */ - /* architectures. */ - /* */ - /* Note however that on some compiler/processor combinations, undefining */ - /* this macro will generate faster, though larger, code. */ - /* */ -#define TT_CONFIG_OPTION_INTERPRETER_SWITCH - - - /*************************************************************************/ - /* */ - /* Define TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED to compile the */ - /* TrueType glyph loader to use Apple's definition of how to handle */ - /* component offsets in composite glyphs. */ - /* */ - /* Apple and MS disagree on the default behavior of component offsets */ - /* in composites. Apple says that they should be scaled by the scale */ - /* factors in the transformation matrix (roughly, it's more complex) */ - /* while MS says they should not. OpenType defines two bits in the */ - /* composite flags array which can be used to disambiguate, but old */ - /* fonts will not have them. */ - /* */ - /* http://partners.adobe.com/asn/developer/opentype/glyf.html */ - /* http://fonts.apple.com/TTRefMan/RM06/Chap6glyf.html */ - /* */ -#undef TT_CONFIG_OPTION_COMPONENT_OFFSET_SCALED - - - /*************************************************************************/ - /*************************************************************************/ - /**** ****/ - /**** T Y P E 1 D R I V E R C O N F I G U R A T I O N ****/ - /**** ****/ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* T1_MAX_DICT_DEPTH is the maximal depth of nest dictionaries and */ - /* arrays in the Type 1 stream (see t1load.c). A minimum of 4 is */ - /* required. */ - /* */ -#define T1_MAX_DICT_DEPTH 5 - - - /*************************************************************************/ - /* */ - /* T1_MAX_SUBRS_CALLS details the maximum number of nested sub-routine */ - /* calls during glyph loading. */ - /* */ -#define T1_MAX_SUBRS_CALLS 16 - - - /*************************************************************************/ - /* */ - /* T1_MAX_CHARSTRING_OPERANDS is the charstring stack's capacity. A */ - /* minimum of 16 is required. */ - /* */ - /* The Chinese font MingTiEG-Medium (CNS 11643 character set) needs 256. */ - /* */ -#define T1_MAX_CHARSTRINGS_OPERANDS 256 - - - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of `t1afm', which is in charge of reading Type 1 AFM */ - /* files into an existing face. Note that if set, the T1 driver will be */ - /* unable to produce kerning distances. */ - /* */ -#define T1_CONFIG_OPTION_NO_AFM - - - /*************************************************************************/ - /* */ - /* Define this configuration macro if you want to prevent the */ - /* compilation of the Multiple Masters font support in the Type 1 */ - /* driver. */ - /* */ -#define T1_CONFIG_OPTION_NO_MM_SUPPORT - - /* */ - -/* - * The FT_CONFIG_OPTION_CHESTER_XXXX macros are used to toggle some recent - * improvements to the auto-hinter contributed by David Chester. They will - * most likely disappear completely in the next release. For now, you - * should always keep them defined. - * - */ -#define FT_CONFIG_OPTION_CHESTER_HINTS - -#ifdef FT_CONFIG_OPTION_CHESTER_HINTS - -#define FT_CONFIG_CHESTER_SMALL_F -#define FT_CONFIG_CHESTER_ASCENDER -#define FT_CONFIG_CHESTER_SERIF -#define FT_CONFIG_CHESTER_STEM -#define FT_CONFIG_CHESTER_BLUE_SCALE - -#endif /* FT_CONFIG_OPTION_CHESTER_HINTS */ - -FT_END_HEADER - - -#endif /* __FTOPTION_H__ */ - - -/* END */ Index: xc/lib/font/FreeType/module/ftstdlib.h diff -u xc/lib/font/FreeType/module/ftstdlib.h:1.4 xc/lib/font/FreeType/module/ftstdlib.h:removed --- xc/lib/font/FreeType/module/ftstdlib.h:1.4 Fri Oct 14 11:16:01 2005 +++ xc/lib/font/FreeType/module/ftstdlib.h Sun Aug 12 22:00:57 2007 @@ -1,207 +0,0 @@ -/* ftstdlib.h -- modified for XFree86. */ -/* $XFree86: xc/lib/font/FreeType/module/ftstdlib.h,v 1.4 2005/10/14 15:16:01 tsi Exp $ */ - -/***************************************************************************/ -/* */ -/* ftstdlib.h */ -/* */ -/* ANSI-specific library and header configuration file (specification */ -/* only). */ -/* */ -/* Copyright 2002, 2003, 2004 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ - - - /*************************************************************************/ - /* */ - /* This file is used to group all #includes to the ANSI C library that */ - /* FreeType normally requires. It also defines macros to rename the */ - /* standard functions within the FreeType source code. */ - /* */ - /* Load a file which defines __FTSTDLIB_H__ before this one to override */ - /* it. */ - /* */ - /*************************************************************************/ - - -#ifndef __FTSTDLIB_H__ -#define __FTSTDLIB_H__ - - - /**********************************************************************/ - /* */ - /* integer limits */ - /* */ - /* UINT_MAX and ULONG_MAX are used to automatically compute the size */ - /* of `int' and `long' in bytes at compile-time. So far, this works */ - /* for all platforms the library has been tested on. */ - /* */ - /* Note that on the extremely rare platforms that do not provide */ - /* integer types that are _exactly_ 16 and 32 bits wide (e.g. some */ - /* old Crays where `int' is 36 bits), we do not make any guarantee */ - /* about the correct behaviour of FT2 with all fonts. */ - /* */ - /* In these case, "ftconfig.h" will refuse to compile anyway with a */ - /* message like "couldn't find 32-bit type" or something similar. */ - /* */ - /* IMPORTANT NOTE: We do not define aliases for heap management and */ - /* i/o routines (i.e. malloc/free/fopen/fread/...) */ - /* since these functions should all be encapsulated */ - /* by platform-specific implementations of */ - /* "ftsystem.c". */ - /* */ - /**********************************************************************/ - - -#ifndef FONTMODULE - -#include <limits.h> - -#define FT_UINT_MAX UINT_MAX -#define FT_ULONG_MAX ULONG_MAX - - - /**********************************************************************/ - /* */ - /* character and string processing */ - /* */ - /**********************************************************************/ - - -#include <ctype.h> - -#define ft_isalnum isalnum -#define ft_isupper isupper -#define ft_islower islower -#define ft_isdigit isdigit -#define ft_isxdigit isxdigit - - -#include <string.h> - -#define ft_memcmp memcmp -#define ft_memcpy memcpy -#define ft_memmove memmove -#define ft_memset memset -#define ft_strcat strcat -#define ft_strcmp strcmp -#define ft_strcpy strcpy -#define ft_strlen strlen -#define ft_strncmp strncmp -#define ft_strncpy strncpy -#define ft_strrchr strrchr - - -#include <stdio.h> - -#define ft_sprintf sprintf - - - /**********************************************************************/ - /* */ - /* sorting */ - /* */ - /**********************************************************************/ - - -#include <stdlib.h> - -#define ft_qsort qsort -#define ft_exit exit /* only used to exit from unhandled exceptions */ - -#define ft_atol atol - - - /**********************************************************************/ - /* */ - /* execution control */ - /* */ - /**********************************************************************/ - - -#include <setjmp.h> - -#define ft_jmp_buf jmp_buf /* note: this cannot be a typedef since */ - /* jmp_buf is defined as a macro */ - /* on certain platforms */ - -#define ft_setjmp setjmp /* same thing here */ -#define ft_longjmp longjmp /* " */ - - -#else - -#include <X11/Xmd.h> -#define _XTYPEDEF_BOOL -#include <X11/Xdefs.h> -#define DONT_DEFINE_WRAPPERS -#define DEFINE_SETJMP_WRAPPERS -#include "xf86_ansic.h" -#undef DONT_DEFINE_WRAPPERS - -#ifndef offsetof -#define offsetof(TYPE, MEMBER) ((xf86size_t)&((TYPE*)0)->MEMBER) -#endif - -#define FT_UINT_MAX 4294967295U -#ifdef LONG64 -#define FT_ULONG_MAX 18446744073709551615UL -#else -#define FT_ULONG_MAX 4294967295UL -#endif - -#define ft_isalnum xf86isalnum -#define ft_isupper xf86isupper -#define ft_islower xf86islower -#define ft_isdigit xf86isdigit -#define ft_isxdigit xf86isxdigit - -#define ft_memcmp xf86memcmp -#define ft_memcpy xf86memcpy -#define ft_memmove xf86memmove -#define ft_memset xf86memset -#define ft_strcat xf86strcat -#define ft_strcmp xf86strcmp -#define ft_strcpy xf86strcpy -#define ft_strlen xf86strlen -#define ft_strncmp xf86strncmp -#define ft_strncpy xf86strncpy -#define ft_strrchr xf86strrchr - -#define ft_sprintf xf86sprintf - -#define ft_qsort xf86qsort -#define ft_exit xf86exit - -#define ft_atol xf86atol - -#define ft_jmp_buf jmp_buf -#define ft_setjmp setjmp -#define ft_longjmp longjmp - -#undef memcpy -#define memcpy xf86memcpy -#undef memset -#define memset xf86memset - -#endif /* FONTMODULE */ - - - /* the following is only used for debugging purposes, i.e. when */ - /* FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined */ - /* */ -#include <stdarg.h> - - -#endif /* __FTSTDLIB_H__ */ - - -/* END */ Index: xc/lib/font/FreeType/module/fttypes.h diff -u xc/lib/font/FreeType/module/fttypes.h:1.2 xc/lib/font/FreeType/module/fttypes.h:removed --- xc/lib/font/FreeType/module/fttypes.h:1.2 Fri Oct 14 11:16:01 2005 +++ xc/lib/font/FreeType/module/fttypes.h Sun Aug 12 22:00:57 2007 @@ -1,571 +0,0 @@ -/***************************************************************************/ -/* */ -/* fttypes.h */ -/* */ -/* FreeType simple types definitions (specification only). */ -/* */ -/* Copyright 1996-2001 by */ -/* David Turner, Robert Wilhelm, and Werner Lemberg. */ -/* */ -/* Modified for XFree86. */ -/* */ -/* This file is part of the FreeType project, and may only be used, */ -/* modified, and distributed under the terms of the FreeType project */ -/* license, LICENSE.TXT. By continuing to use, modify, or distribute */ -/* this file you indicate that you have read the license and */ -/* understand and accept it fully. */ -/* */ -/***************************************************************************/ -/* $XFree86: xc/lib/font/FreeType/module/fttypes.h,v 1.2 2005/10/14 15:16:01 tsi Exp $ */ - -#ifndef __FTTYPES_H__ -#define __FTTYPES_H__ - - -#include <ft2build.h> -#include FT_CONFIG_CONFIG_H -#include FT_SYSTEM_H -#include FT_IMAGE_H - -#ifndef FONTMODULE -#include <stddef.h> -#else -#include <X11/Xmd.h> -#define _XTYPEDEF_BOOL -#include <X11/Xdefs.h> -#include "xf86_ansic.h" -#ifndef size_t -#define DONT_DEFINE_WRAPPERS -#define size_t xf86size_t -#undef DONT_DEFINE_WRAPPERS -#endif -#endif - -FT_BEGIN_HEADER - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* basic_types */ - /* */ - /* <Title> */ - /* Basic Data Types */ - /* */ - /* <Abstract> */ - /* The basic data types defined by the library. */ - /* */ - /* <Description> */ - /* This section contains the basic data types defined by FreeType 2, */ - /* ranging from simple scalar types to bitmap descriptors. More */ - /* font-specific structures are defined in a different section. */ - /* */ - /* <Order> */ - /* FT_Byte */ - /* FT_Char */ - /* FT_Int */ - /* FT_UInt */ - /* FT_Short */ - /* FT_UShort */ - /* FT_Long */ - /* FT_ULong */ - /* FT_Bool */ - /* FT_Offset */ - /* FT_PtrDist */ - /* FT_String */ - /* FT_Error */ - /* FT_Fixed */ - /* FT_Pointer */ - /* FT_Pos */ - /* FT_Vector */ - /* FT_BBox */ - /* FT_Matrix */ - /* FT_FWord */ - /* FT_UFWord */ - /* FT_F2Dot14 */ - /* FT_UnitVector */ - /* FT_F26Dot6 */ - /* */ - /* */ - /* FT_Generic */ - /* FT_Generic_Finalizer */ - /* */ - /* FT_Bitmap */ - /* FT_Pixel_Mode */ - /* FT_Palette_Mode */ - /* FT_Glyph_Format */ - /* FT_IMAGE_TAG */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Bool */ - /* */ - /* <Description> */ - /* A typedef of unsigned char, used for simple booleans. */ - /* */ - typedef unsigned char FT_Bool; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_FWord */ - /* */ - /* <Description> */ - /* A signed 16-bit integer used to store a distance in original font */ - /* units. */ - /* */ - typedef signed short FT_FWord; /* distance in FUnits */ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UFWord */ - /* */ - /* <Description> */ - /* An unsigned 16-bit integer used to store a distance in original */ - /* font units. */ - /* */ - typedef unsigned short FT_UFWord; /* unsigned distance */ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Char */ - /* */ - /* <Description> */ - /* A simple typedef for the _signed_ char type. */ - /* */ - typedef signed char FT_Char; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Byte */ - /* */ - /* <Description> */ - /* A simple typedef for the _unsigned_ char type. */ - /* */ - typedef unsigned char FT_Byte; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_String */ - /* */ - /* <Description> */ - /* A simple typedef for the char type, usually used for strings. */ - /* */ - typedef char FT_String; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Short */ - /* */ - /* <Description> */ - /* A typedef for signed short. */ - /* */ - typedef signed short FT_Short; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UShort */ - /* */ - /* <Description> */ - /* A typedef for unsigned short. */ - /* */ - typedef unsigned short FT_UShort; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Int */ - /* */ - /* <Description> */ - /* A typedef for the int type. */ - /* */ - typedef int FT_Int; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_UInt */ - /* */ - /* <Description> */ - /* A typedef for the unsigned int type. */ - /* */ - typedef unsigned int FT_UInt; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Long */ - /* */ - /* <Description> */ - /* A typedef for signed long. */ - /* */ - typedef signed long FT_Long; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_ULong */ - /* */ - /* <Description> */ - /* A typedef for unsigned long. */ - /* */ - typedef unsigned long FT_ULong; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_F2Dot14 */ - /* */ - /* <Description> */ - /* A signed 2.14 fixed float type used for unit vectors. */ - /* */ - typedef signed short FT_F2Dot14; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_F26Dot6 */ - /* */ - /* <Description> */ - /* A signed 26.6 fixed float type used for vectorial pixel */ - /* coordinates. */ - /* */ - typedef signed long FT_F26Dot6; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Fixed */ - /* */ - /* <Description> */ - /* This type is used to store 16.16 fixed float values, like scales */ - /* or matrix coefficients. */ - /* */ - typedef signed long FT_Fixed; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Error */ - /* */ - /* <Description> */ - /* The FreeType error code type. A value of 0 is always interpreted */ - /* as a successful operation. */ - /* */ - typedef int FT_Error; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Pointer */ - /* */ - /* <Description> */ - /* A simple typedef for a typeless pointer. */ - /* */ - typedef void* FT_Pointer; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_Offset */ - /* */ - /* <Description> */ - /* This is equivalent to the ANSI C `size_t' type, i.e. the largest */ - /* _unsigned_ integer type used to express a file size or position, */ - /* or a memory block size. */ - /* */ - typedef size_t FT_Offset; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_PtrDist */ - /* */ - /* <Description> */ - /* This is equivalent to the ANSI C `ptrdiff_t' type, i.e. the */ - /* largest _signed_ integer type used to express the distance */ - /* between two pointers. */ - /* */ - typedef size_t FT_PtrDist; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_UnitVector */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2D vector unit vector. Uses */ - /* FT_F2Dot14 types. */ - /* */ - /* <Fields> */ - /* x :: Horizontal coordinate. */ - /* */ - /* y :: Vertical coordinate. */ - /* */ - typedef struct FT_UnitVector_ - { - FT_F2Dot14 x; - FT_F2Dot14 y; - - } FT_UnitVector; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Matrix */ - /* */ - /* <Description> */ - /* A simple structure used to store a 2x2 matrix. Coefficients are */ - /* in 16.16 fixed float format. The computation performed is: */ - /* */ - /* { */ - /* x' = x*xx + y*xy */ - /* y' = x*yx + y*yy */ - /* } */ - /* */ - /* <Fields> */ - /* xx :: Matrix coefficient. */ - /* */ - /* xy :: Matrix coefficient. */ - /* */ - /* yx :: Matrix coefficient. */ - /* */ - /* yy :: Matrix coefficient. */ - /* */ - typedef struct FT_Matrix_ - { - FT_Fixed xx, xy; - FT_Fixed yx, yy; - - } FT_Matrix; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Data */ - /* */ - /* <Description> */ - /* Read-only binary data represented as a pointer and a length. */ - /* */ - /* <Fields> */ - /* pointer :: The data. */ - /* */ - /* length :: The length of the data in bytes. */ - /* */ - typedef struct FT_Data_ - { - const FT_Byte* pointer; - FT_Int length; - - } FT_Data; - - - /*************************************************************************/ - /* */ - /* <FuncType> */ - /* FT_Generic_Finalizer */ - /* */ - /* <Description> */ - /* Describes a function used to destroy the `client' data of any */ - /* FreeType object. See the description of the FT_Generic type for */ - /* details of usage. */ - /* */ - /* <Input> */ - /* The address of the FreeType object which is under finalization. */ - /* Its client data is accessed through its `generic' field. */ - /* */ - typedef void (*FT_Generic_Finalizer)(void* object); - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_Generic */ - /* */ - /* <Description> */ - /* Client applications often need to associate their own data to a */ - /* variety of FreeType core objects. For example, a text layout API */ - /* might want to associate a glyph cache to a given size object. */ - /* */ - /* Most FreeType object contains a `generic' field, of type */ - /* FT_Generic, which usage is left to client applications and font */ - /* servers. */ - /* */ - /* It can be used to store a pointer to client-specific data, as well */ - /* as the address of a `finalizer' function, which will be called by */ - /* FreeType when the object is destroyed (for example, the previous */ - /* client example would put the address of the glyph cache destructor */ - /* in the `finalizer' field). */ - /* */ - /* <Fields> */ - /* data :: A typeless pointer to any client-specified data. This */ - /* field is completely ignored by the FreeType library. */ - /* */ - /* finalizer :: A pointer to a `generic finalizer' function, which */ - /* will be called when the object is destroyed. If this */ - /* field is set to NULL, no code will be called. */ - /* */ - typedef struct FT_Generic_ - { - void* data; - FT_Generic_Finalizer finalizer; - - } FT_Generic; - - - /*************************************************************************/ - /* */ - /* <Macro> */ - /* FT_MAKE_TAG */ - /* */ - /* <Description> */ - /* This macro converts four letter tags which are used to label */ - /* TrueType tables into an unsigned long to be used within FreeType. */ - /* */ - /* <Note> */ - /* The produced values *must* be 32bit integers. Don't redefine this */ - /* macro. */ - /* */ -#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \ - ( ( (FT_ULong)_x1 << 24 ) | \ - ( (FT_ULong)_x2 << 16 ) | \ - ( (FT_ULong)_x3 << 8 ) | \ - (FT_ULong)_x4 ) - - - /*************************************************************************/ - /*************************************************************************/ - /* */ - /* L I S T M A N A G E M E N T */ - /* */ - /*************************************************************************/ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Section> */ - /* list_processing */ - /* */ - /*************************************************************************/ - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_ListNode */ - /* */ - /* <Description> */ - /* Many elements and objects in FreeType are listed through a */ - /* FT_List record (see FT_ListRec). As its name suggests, a */ - /* FT_ListNode is a handle to a single list element. */ - /* */ - typedef struct FT_ListNodeRec_* FT_ListNode; - - - /*************************************************************************/ - /* */ - /* <Type> */ - /* FT_List */ - /* */ - /* <Description> */ - /* A handle to a list record (see FT_ListRec). */ - /* */ - typedef struct FT_ListRec_* FT_List; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ListNodeRec */ - /* */ - /* <Description> */ - /* A structure used to hold a single list element. */ - /* */ - /* <Fields> */ - /* prev :: The previous element in the list. NULL if first. */ - /* */ - /* next :: The next element in the list. NULL if last. */ - /* */ - /* data :: A typeless pointer to the listed object. */ - /* */ - typedef struct FT_ListNodeRec_ - { - FT_ListNode prev; - FT_ListNode next; - void* data; - - } FT_ListNodeRec; - - - /*************************************************************************/ - /* */ - /* <Struct> */ - /* FT_ListRec */ - /* */ - /* <Description> */ - /* A structure used to hold a simple doubly-linked list. These are */ - /* used in many parts of FreeType. */ - /* */ - /* <Fields> */ - /* head :: The head (first element) of doubly-linked list. */ - /* */ - /* tail :: The tail (last element) of doubly-linked list. */ - /* */ - typedef struct FT_ListRec_ - { - FT_ListNode head; - FT_ListNode tail; - - } FT_ListRec; - - - /* */ - -#define FT_IS_EMPTY( list ) ( (list).head == 0 ) - - /* return base error code (without module-specific prefix) */ -#define FT_ERROR_BASE( x ) ( (x) & 0xFF ) - - /* return module error code */ -#define FT_ERROR_MODULE( x ) ( (x) & 0xFF00U ) - -#define FT_BOOL( x ) ( (FT_Bool)( x ) ) - -FT_END_HEADER - -#endif /* __FTTYPES_H__ */ - - -/* END */ Index: xc/lib/font/Speedo/do_char.c diff -u xc/lib/font/Speedo/do_char.c:1.5 xc/lib/font/Speedo/do_char.c:1.6 --- xc/lib/font/Speedo/do_char.c:1.5 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/do_char.c Sun Dec 10 10:58:24 2006 @@ -19,7 +19,7 @@ WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/do_char.c,v 1.5 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/do_char.c,v 1.6 2006/12/10 15:58:24 tsi Exp $ */ /***************************** D O - C H A R . C ***************************** * * @@ -30,11 +30,13 @@ #include "spdo_prv.h" /* General definitions for Speedo */ -#define DEBUG 0 +#ifndef DEBUG +#define DEBUG 0 +#endif #if DEBUG #include <stdio.h> -#define SHOW(X) printf("X = %d\n", X) +#define SHOW(X) printf("X = %lx\n", (unsigned long)X) #else #define SHOW(X) #endif Index: xc/lib/font/Speedo/do_trns.c diff -u xc/lib/font/Speedo/do_trns.c:1.5 xc/lib/font/Speedo/do_trns.c:1.6 --- xc/lib/font/Speedo/do_trns.c:1.5 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/do_trns.c Sun Dec 10 10:58:24 2006 @@ -19,7 +19,7 @@ WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/do_trns.c,v 1.5 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/do_trns.c,v 1.6 2006/12/10 15:58:24 tsi Exp $ */ /**************************** D O _ T R N S . C ****************************** * * @@ -31,11 +31,13 @@ #include "spdo_prv.h" /* General definitions for Speedo */ -#define DEBUG 0 +#ifndef DEBUG +#define DEBUG 0 +#endif #if DEBUG #include <stdio.h> -#define SHOW(X) printf("X = %d\n", X) +#define SHOW(X) printf("X = %lx\n", (unsigned long)X) #else #define SHOW(X) #endif Index: xc/lib/font/Speedo/htest.c diff -u xc/lib/font/Speedo/htest.c:1.2 xc/lib/font/Speedo/htest.c:1.3 --- xc/lib/font/Speedo/htest.c:1.2 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/htest.c Sun Dec 10 10:58:24 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/Speedo/htest.c,v 1.2 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/htest.c,v 1.3 2006/12/10 15:58:24 tsi Exp $ */ /* Copyright 1989-1991, Bitstream Inc., Cambridge, MA. @@ -31,10 +31,12 @@ #include "speedo.h" /* General definition for make_bmap */ #include <stdio.h> -#define DEBUG 0 +#ifndef DEBUG +#define DEBUG 0 +#endif #if DEBUG -#define SHOW(X) printf("X = %d\n", X) +#define SHOW(X) printf("X = %lx\n", (unsigned long)X) #else #define SHOW(X) #endif Index: xc/lib/font/Speedo/iface.c diff -u xc/lib/font/Speedo/iface.c:1.4 xc/lib/font/Speedo/iface.c:1.5 --- xc/lib/font/Speedo/iface.c:1.4 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/iface.c Sun Dec 10 10:58:24 2006 @@ -19,7 +19,7 @@ WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/iface.c,v 1.4 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/iface.c,v 1.5 2006/12/10 15:58:24 tsi Exp $ */ /***************************** I F A C E . C ********************************* * * @@ -35,11 +35,13 @@ #include "xf86_ansic.h" #endif -#define DEBUG 0 +#ifndef DEBUG +#define DEBUG 0 +#endif #if DEBUG #include <stdio.h> -#define SHOW(X) printf("X = %d\n", X) +#define SHOW(X) printf("X = %lx\n", (unsigned long)X) #else #define SHOW(X) #endif Index: xc/lib/font/Speedo/nsample.c diff -u xc/lib/font/Speedo/nsample.c:1.2 xc/lib/font/Speedo/nsample.c:1.3 --- xc/lib/font/Speedo/nsample.c:1.2 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/nsample.c Sun Dec 10 10:58:24 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/Speedo/nsample.c,v 1.2 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/nsample.c,v 1.3 2006/12/10 15:58:24 tsi Exp $ */ /* Copyright 1989-1991, Bitstream Inc., Cambridge, MA. @@ -53,10 +53,12 @@ #include "speedo.h" /* General definition for make_bmap */ #include "keys.h" /* Font decryption keys */ -#define DEBUG 0 +#ifndef DEBUG +#define DEBUG 0 +#endif #if DEBUG -#define SHOW(X) printf("X = %d\n", X) +#define SHOW(X) printf("X = %lx\n", (unsigned long)X) #else #define SHOW(X) #endif Index: xc/lib/font/Speedo/out_bl2d.c diff -u xc/lib/font/Speedo/out_bl2d.c:1.5 xc/lib/font/Speedo/out_bl2d.c:1.6 --- xc/lib/font/Speedo/out_bl2d.c:1.5 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/out_bl2d.c Sun Dec 10 10:58:24 2006 @@ -19,7 +19,7 @@ WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/out_bl2d.c,v 1.5 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/out_bl2d.c,v 1.6 2006/12/10 15:58:24 tsi Exp $ */ /*************************** O U T _ B L 2 D . C ***************************** * * @@ -30,12 +30,14 @@ #include "spdo_prv.h" /* General definitions for speedo */ #define CLOCKWISE 1 +#ifndef DEBUG #define DEBUG 0 +#endif #define ABS(X) ( (X < 0) ? -X : X) #if DEBUG #include <stdio.h> -#define SHOW(X) printf("X = %d\n", X) +#define SHOW(X) printf("X = %lx\n", (unsigned long)X) #else #define SHOW(X) #endif Index: xc/lib/font/Speedo/out_blk.c diff -u xc/lib/font/Speedo/out_blk.c:1.4 xc/lib/font/Speedo/out_blk.c:1.5 --- xc/lib/font/Speedo/out_blk.c:1.4 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/out_blk.c Sun Dec 10 10:58:24 2006 @@ -19,7 +19,7 @@ WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/out_blk.c,v 1.4 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/out_blk.c,v 1.5 2006/12/10 15:58:24 tsi Exp $ */ /*************************** O U T _ B L K . C ********************************* @@ -31,18 +31,19 @@ #include "spdo_prv.h" /* General definitions for Speedo */ +#ifndef DEBUG #define DEBUG 0 +#endif #define LOCAL static #define ABS(X) ( (X < 0) ? -X : X) #if DEBUG #include <stdio.h> -#define SHOW(X) printf("X = %d\n", X) +#define SHOW(X) printf("X = %lx\n", (unsigned long)X) #else #define SHOW(X) #endif - /***** GLOBAL VARIABLES *****/ /***** GLOBAL FUNCTIONS *****/ Index: xc/lib/font/Speedo/out_outl.c diff -u xc/lib/font/Speedo/out_outl.c:1.2 xc/lib/font/Speedo/out_outl.c:1.3 --- xc/lib/font/Speedo/out_outl.c:1.2 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/out_outl.c Sun Dec 10 10:58:24 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/Speedo/out_outl.c,v 1.2 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/out_outl.c,v 1.3 2006/12/10 15:58:24 tsi Exp $ */ /* Copyright 1989-1991, Bitstream Inc., Cambridge, MA. @@ -31,12 +31,13 @@ #include "spdo_prv.h" /* General definitions for Speedo */ - -#define DEBUG 0 +#ifndef DEBUG +#define DEBUG 0 +#endif #if DEBUG #include <stdio.h> -#define SHOW(X) printf("X = %d\n", X) +#define SHOW(X) printf("X = %lx\n", (unsigned long)X) #else #define SHOW(X) #endif Index: xc/lib/font/Speedo/out_scrn.c diff -u xc/lib/font/Speedo/out_scrn.c:1.6 xc/lib/font/Speedo/out_scrn.c:1.7 --- xc/lib/font/Speedo/out_scrn.c:1.6 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/out_scrn.c Sun Dec 10 10:58:24 2006 @@ -19,7 +19,7 @@ WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/out_scrn.c,v 1.6 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/out_scrn.c,v 1.7 2006/12/10 15:58:24 tsi Exp $ */ /*************************** O U T _ S C R N . C ***************************** @@ -31,18 +31,19 @@ #include "spdo_prv.h" /* General definitions for Speedo */ +#ifndef DEBUG #define DEBUG 0 +#endif #define LOCAL static #define ABS(X) ( (X < 0) ? -X : X) #if DEBUG #include <stdio.h> -#define SHOW(X) printf("X = %d\n", X) +#define SHOW(X) printf("X = %lx\n", (unsigned long)X) #else #define SHOW(X) #endif - /***** GLOBAL VARIABLES *****/ /***** GLOBAL FUNCTIONS *****/ Index: xc/lib/font/Speedo/out_util.c diff -u xc/lib/font/Speedo/out_util.c:1.4 xc/lib/font/Speedo/out_util.c:1.5 --- xc/lib/font/Speedo/out_util.c:1.4 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/out_util.c Sun Dec 10 10:58:24 2006 @@ -19,10 +19,12 @@ WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/out_util.c,v 1.4 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/out_util.c,v 1.5 2006/12/10 15:58:24 tsi Exp $ */ -#define DEBUG 0 +#ifndef DEBUG +#define DEBUG 0 +#endif /*************************** O U T _ U T I L . C ***************************** * * @@ -34,6 +36,11 @@ #include "spdo_prv.h" /* General definitions for Speedo */ /* absolute value function */ #define ABS(X) ( (X < 0) ? -X : X) + +#if DEBUG +#include <stdio.h> +#endif + #if INCL_BLACK || INCL_2D || INCL_SCREEN FUNCTION void init_char_out( Index: xc/lib/font/Speedo/reset.c diff -u xc/lib/font/Speedo/reset.c:1.4 xc/lib/font/Speedo/reset.c:1.5 --- xc/lib/font/Speedo/reset.c:1.4 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/reset.c Sun Dec 10 10:58:24 2006 @@ -19,7 +19,7 @@ WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/reset.c,v 1.4 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/reset.c,v 1.5 2006/12/10 15:58:24 tsi Exp $ */ @@ -32,11 +32,13 @@ #include "spdo_prv.h" /* General definitions for Speedo */ #include "keys.h" /* Font decryption keys */ -#define DEBUG 0 +#ifndef DEBUG +#define DEBUG 0 +#endif #if DEBUG #include <stdio.h> -#define SHOW(X) printf("X = %d\n", X) +#define SHOW(X) printf("X = %lx\n", (unsigned long)X) #else #define SHOW(X) #endif Index: xc/lib/font/Speedo/set_spcs.c diff -u xc/lib/font/Speedo/set_spcs.c:1.5 xc/lib/font/Speedo/set_spcs.c:1.6 --- xc/lib/font/Speedo/set_spcs.c:1.5 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/set_spcs.c Sun Dec 10 10:58:24 2006 @@ -19,7 +19,7 @@ WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/set_spcs.c,v 1.5 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/set_spcs.c,v 1.6 2006/12/10 15:58:24 tsi Exp $ */ /*************************** S E T _ S P C S . C ***************************** @@ -31,11 +31,13 @@ #include "spdo_prv.h" /* General definitions for Speedo */ #include "keys.h" -#define DEBUG 0 +#ifndef DEBUG +#define DEBUG 0 +#endif #if DEBUG #include <stdio.h> -#define SHOW(X) printf("X = %d\n", X) +#define SHOW(X) printf("X = %lx\n", (unsigned long)X) #else #define SHOW(X) #endif Index: xc/lib/font/Speedo/set_trns.c diff -u xc/lib/font/Speedo/set_trns.c:1.7 xc/lib/font/Speedo/set_trns.c:1.8 --- xc/lib/font/Speedo/set_trns.c:1.7 Mon Jan 9 09:59:27 2006 +++ xc/lib/font/Speedo/set_trns.c Sun Dec 10 10:58:24 2006 @@ -19,7 +19,7 @@ WITH THE SPEEDO SOFTWARE OR THE BITSTREAM CHARTER OUTLINE FONT. */ -/* $XFree86: xc/lib/font/Speedo/set_trns.c,v 1.7 2006/01/09 14:59:27 dawes Exp $ */ +/* $XFree86: xc/lib/font/Speedo/set_trns.c,v 1.8 2006/12/10 15:58:24 tsi Exp $ */ @@ -34,14 +34,17 @@ #include "spdo_prv.h" /* General definitions for Speedo */ -#define DEBUG 0 +#ifndef DEBUG +#define DEBUG 0 +#endif #if DEBUG #include <stdio.h> -#define SHOW(X) printf("X = %d\n", X) +#define SHOW(X) printf("X = %lx\n", (unsigned long)X) #else #define SHOW(X) #endif + /***** LOCAL MACROS *****/ #define SQUEEZE_X_ORU(A,B,C) ((((fix31)A * (fix31)B) + C) >> 16) Index: xc/lib/font/Type1/AFM.h diff -u xc/lib/font/Type1/AFM.h:1.1 xc/lib/font/Type1/AFM.h:1.2 --- xc/lib/font/Type1/AFM.h:1.1 Mon May 3 01:58:44 1999 +++ xc/lib/font/Type1/AFM.h Thu Sep 7 09:39:12 2006 @@ -1,4 +1,6 @@ -/* Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved. +/* $XFree86: xc/lib/font/Type1/AFM.h,v 1.2 2006/09/07 13:39:12 tsi Exp $ */ +/* + * Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved. * * The contents of this file are subject to the CID Font Code Public Licence * Version 1.0 (the "License"). You may not use this file except in compliance @@ -47,6 +49,8 @@ BBox charBBox; /* key: B */ } Metrics; +#define MAX_CID_METRICS ((int)((unsigned int)(-1) / (2 * sizeof(Metrics)))) + typedef struct { int nChars; /* number of entries in char metrics array */ Index: xc/lib/font/Type1/afm.c diff -u xc/lib/font/Type1/afm.c:1.5 xc/lib/font/Type1/afm.c:1.7 --- xc/lib/font/Type1/afm.c:1.5 Fri Oct 14 11:16:02 2005 +++ xc/lib/font/Type1/afm.c Sat Dec 16 10:08:36 2006 @@ -15,7 +15,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/afm.c,v 1.5 2005/10/14 15:16:02 tsi Exp $ */ +/* $XFree86: xc/lib/font/Type1/afm.c,v 1.7 2006/12/16 15:08:36 tsi Exp $ */ #ifdef BUILDCID #ifndef FONTMODULE @@ -27,7 +27,7 @@ #include <X11/Xdefs.h> /* For Bool */ #include "xf86_ansic.h" #endif -#include "fontmisc.h" /* for xalloc/xfree */ +#include "fontmisc.h" /* for xalloc/xfree */ #include "AFM.h" #define PBUF 256 @@ -111,6 +111,12 @@ fi->nChars = atoi(p); + if ((fi->nChars <= 0) || (fi->nChars > MAX_CID_METRICS)) { + xfree(afmbuf); + xfree(fi); + return(1); + } + fi->metrics = (Metrics *)xalloc(fi->nChars * sizeof(Metrics)); if (fi->metrics == NULL) { Index: xc/lib/font/Type1/cidchar.c diff -u xc/lib/font/Type1/cidchar.c:1.11 xc/lib/font/Type1/cidchar.c:1.12 --- xc/lib/font/Type1/cidchar.c:1.11 Fri Oct 14 11:16:02 2005 +++ xc/lib/font/Type1/cidchar.c Sat Dec 16 10:08:36 2006 @@ -15,7 +15,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/cidchar.c,v 1.11 2005/10/14 15:16:02 tsi Exp $ */ +/* $XFree86: xc/lib/font/Type1/cidchar.c,v 1.12 2006/12/16 15:08:36 tsi Exp $ */ #ifdef BUILDCID #ifndef FONTMODULE @@ -64,20 +64,18 @@ CIDGetGlyphInfo(FontPtr pFont, unsigned int cidcode, CharInfoPtr pci, int *rc) { CharInfoPtr cp = NULL; + cidglyphs *cid; + unsigned char *p1 = NULL; #ifdef USE_MMAP int fd; unsigned char *buf; long total_len = 0; #else + unsigned char *p2; FILE *fp; unsigned char buf[BSIZE]; unsigned int count = 0; #endif - cidglyphs *cid; - unsigned char *p1 = NULL; -#ifndef USE_MMAP - unsigned char *p2; -#endif register int i = 0, j; long byteoffset; int FDindex, FDBytes, GDBytes, SDBytes, SubrCount, CIDMapOffset, len; @@ -104,14 +102,7 @@ return (cp); } } -#else - if (!(fp = fopen(cid->CIDFontName,"rb"))) { - *rc = BadFontName; - return(cp); - } -#endif -#ifdef USE_MMAP if (cid->dataoffset == 0) { if ((p1 = (unsigned char *)strstr((char *)cid->CIDdata, (char *)sd)) != NULL) { @@ -123,7 +114,12 @@ } } #else /* USE_MMAP */ + if (!(fp = fopen(cid->CIDFontName,"rb"))) { + *rc = BadFontName; + return(cp); + } if (cid->dataoffset == 0) { + cid->CIDsize = fseek(fp, 0, SEEK_END); p2 = sd; /* find "StartData" */ @@ -188,6 +184,18 @@ CIDMapOffset = CIDFontP->CIDfontInfoP[CIDMAPOFFSET].value.data.integer; byteoffset = cid->dataoffset + 1 + CIDMapOffset + cidcode * (FDBytes + GDBytes); + + if ((FDBytes < 0) || (FDBytes > sizeof(FDindex)) || + (GDBytes <= 0) || (GDBytes > sizeof(cstringoffset)) || + (byteoffset < 0) || + (cid->CIDsize < (byteoffset + 2 * (FDBytes + GDBytes)))) { + *rc = BadFontFormat; +#ifndef USE_MMAP + fclose(fp); +#endif + return(cp); + } + #ifdef USE_MMAP buf = &cid->CIDdata[byteoffset]; #else @@ -205,15 +213,14 @@ /* if FDBytes is equal to 0, the CIDMap contains no FD indices, and the */ /* FD index of 0 is assumed. */ - if (FDBytes == 0) - FDindex = 0; - else { - FDindex = 0; + FDindex = 0; + if (FDBytes != 0) { for (i = 0; i < FDBytes; i++) FDindex += (unsigned char)buf[i] << (8 * (FDBytes - 1 - i)); } - if (FDindex >= CIDFontP->CIDfontInfoP[CIDFDARRAY].value.len) { + if ((FDindex < 0) || + (FDindex >= CIDFontP->CIDfontInfoP[CIDFDARRAY].value.len)) { *rc = BadFontFormat; #ifndef USE_MMAP fclose(fp); @@ -233,7 +240,9 @@ len = nextcstringoffset - cstringoffset; - if (len <= 0) { /* empty interval, missing glyph */ + if ((cstringoffset < 0) || (nextcstringoffset < 0) || + ((len = nextcstringoffset - cstringoffset) <= 0)) { + /* empty interval, missing glyph */ *rc = BadFontFormat; #ifndef USE_MMAP fclose(fp); @@ -256,8 +265,16 @@ byteoffset = cid->dataoffset + 1 + cstringoffset; + if ((byteoffset < 0) || (cid->CIDsize < (byteoffset + len))) { + *rc = BadFontFormat; +#ifndef USE_MMAP + xfree(charstring.data.stringP); + fclose(fp); +#endif + return(cp); + } #ifdef USE_MMAP - charstring.data.stringP = &cid->CIDdata[byteoffset]; + charstring.data.stringP = &cid->CIDdata[byteoffset]; #else if (fseek(fp, byteoffset, SEEK_SET)) { *rc = BadFontFormat; @@ -282,34 +299,42 @@ SDBytes = FDArrayP[FDindex].Private[CIDT1SDBYTES].value.data.integer; SubrCount = FDArrayP[FDindex].Private[CIDT1SUBRCNT].value.data.integer; + + if ((SDBytes < 0) || (SDBytes > sizeof(subroffsets[0])) || + (SubrCount < 0) || (SubrCount > MAX_PS_PSOBJS) || + (byteoffset < 0) || + (cid->CIDsize < (byteoffset + (SDBytes * (SubrCount + 1))))) { + *rc = BadFontFormat; +#ifndef USE_MMAP + xfree(charstring.data.stringP); + fclose(fp); +#endif + return(cp); + } + #ifdef USE_MMAP buf = &cid->CIDdata[byteoffset]; #else if (fseek(fp, byteoffset, SEEK_SET)) { *rc = BadFontFormat; + xfree(charstring.data.stringP); fclose(fp); return(cp); } if ((count = fread(buf, 1, BSIZE, fp)) < SDBytes * (SubrCount + 1)) { *rc = BadFontFormat; + xfree(charstring.data.stringP); fclose(fp); return(cp); } #endif - arrayP = (psobj *)vm_alloc(SubrCount*sizeof(psobj)); - if (!arrayP) { - *rc = AllocError; -#ifndef USE_MMAP - fclose(fp); -#endif - return(cp); - } - - if (!(subroffsets = (long *)xalloc((SubrCount + 1)*sizeof(long)))) { + if (!(arrayP = (psobj *)vm_alloc(SubrCount*sizeof(psobj))) || + !(subroffsets = (long *)xalloc((SubrCount + 1)*sizeof(long)))) { *rc = AllocError; #ifndef USE_MMAP + xfree(charstring.data.stringP); fclose(fp); #endif return(cp); @@ -320,15 +345,34 @@ for (j = 0; j < SDBytes; j++) subroffsets[i] += (unsigned char)buf[i * SDBytes + j] << (8 * (SDBytes - 1 - j)); + if ((subroffsets[i] < 0) || (subroffsets[i] > cid->CIDsize)) { + *rc = BadFontFormat; + xfree(subroffsets); +#ifndef USE_MMAP + xfree(charstring.data.stringP); + fclose(fp); +#endif + return(cp); + } } byteoffset = cid->dataoffset + 1 + subroffsets[0]; + if ((byteoffset < 0) || (byteoffset > cid->CIDsize)) { + *rc = BadFontFormat; + xfree(subroffsets); +#ifndef USE_MMAP + xfree(charstring.data.stringP); + fclose(fp); +#endif + return(cp); + } /* get subroutine info */ #ifndef USE_MMAP if (fseek(fp, byteoffset, SEEK_SET)) { *rc = BadFontFormat; xfree(subroffsets); + xfree(charstring.data.stringP); fclose(fp); return(cp); } @@ -337,23 +381,32 @@ #endif for (i = 0; i < SubrCount; i++) { len = subroffsets[i + 1] - subroffsets[i]; -#ifndef USE_MMAP - arrayP[i].data.valueP = vm_alloc(len); - if (!arrayP[i].data.valueP) { - *rc = AllocError; + if (len < 0) { + *rc = BadFontFormat; xfree(subroffsets); +#ifndef USE_MMAP + xfree(charstring.data.stringP); fclose(fp); +#endif return(cp); } -#endif arrayP[i].len = len; #ifdef USE_MMAP arrayP[i].data.valueP = (char *)&cid->CIDdata[total_len]; total_len += len; #else + arrayP[i].data.valueP = vm_alloc(len); + if (!arrayP[i].data.valueP) { + *rc = AllocError; + xfree(subroffsets); + xfree(charstring.data.stringP); + fclose(fp); + return(cp); + } if ((count = fread(arrayP[i].data.valueP, 1, len, fp)) != len) { *rc = BadFontFormat; xfree(subroffsets); + xfree(charstring.data.stringP); fclose(fp); return(cp); } @@ -361,7 +414,7 @@ } FontP->Subrs.len = SubrCount; - FontP->Subrs.data.arrayP = arrayP; + FontP->Subrs.data.arrayP = arrayP; xfree(subroffsets); } @@ -370,7 +423,7 @@ if (!blues) { *rc = AllocError; #ifndef USE_MMAP - xfree(subroffsets); + xfree(charstring.data.stringP); fclose(fp); #endif return(cp); Index: xc/lib/font/Type1/fontfcn.h diff -u xc/lib/font/Type1/fontfcn.h:1.6 xc/lib/font/Type1/fontfcn.h:1.7 --- xc/lib/font/Type1/fontfcn.h:1.6 Mon Jan 9 09:59:29 2006 +++ xc/lib/font/Type1/fontfcn.h Sat Dec 16 10:08:36 2006 @@ -1,3 +1,4 @@ +/* $XFree86: xc/lib/font/Type1/fontfcn.h,v 1.7 2006/12/16 15:08:36 tsi Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -43,7 +44,6 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/fontfcn.h,v 1.6 2006/01/09 14:59:29 dawes Exp $ */ #ifdef BUILDCID @@ -81,8 +81,12 @@ psdict *CharStringsP; psdict *Private; psdict *fontInfoP; -struct blues_struct *BluesP; + struct blues_struct *BluesP; } psfont; + +#define MAX_PS_PSFONTS \ + ((int)((unsigned int)(-1) / (2 * sizeof(psfont)))) + /***================================================================***/ /* Routines in scan_font */ /***================================================================***/ Index: xc/lib/font/Type1/fonts.h diff -u xc/lib/font/Type1/fonts.h:1.2 xc/lib/font/Type1/fonts.h:1.3 --- xc/lib/font/Type1/fonts.h:1.2 Mon Jan 9 09:59:29 2006 +++ xc/lib/font/Type1/fonts.h Mon Apr 9 11:37:13 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/Type1/fonts.h,v 1.2 2006/01/09 14:59:29 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/fonts.h,v 1.3 2007/04/09 15:37:13 tsi Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -37,7 +37,7 @@ #define CopyText(t) t #define I_DumpText(t) #define CoerceText(t) t -#define TextDelta(t,pt) +#define TextDelta(t,pt) (pt)->x = (pt)->y = 0; #define XformText(p,s) #define GimeSpace() FALSE Index: xc/lib/font/Type1/objects.c diff -u xc/lib/font/Type1/objects.c:1.12 xc/lib/font/Type1/objects.c:1.13 --- xc/lib/font/Type1/objects.c:1.12 Fri Oct 14 11:16:02 2005 +++ xc/lib/font/Type1/objects.c Sat Dec 16 10:08:36 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/Type1/objects.c,v 1.12 2005/10/14 15:16:02 tsi Exp $ */ +/* $XFree86: xc/lib/font/Type1/objects.c,v 1.13 2006/12/16 15:08:36 tsi Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -298,21 +298,24 @@ { register struct xobject *template = (struct xobject *)ptr; register struct xobject *r; + int sizer, extrar; /* * round up 'size' and 'extra' to be an integer number of 'long's: */ - size = (size + sizeof(long) - 1) & -(int)sizeof(long); - extra = (extra + sizeof(long) - 1) & -(int)sizeof(long); - if (size + extra <= 0) + sizer = (size + sizeof(long) - 1) & -(int)sizeof(long); + extrar = (extra + sizeof(long) - 1) & -(int)sizeof(long); + if ((size < 0) || (sizer < size) || + (extra < 0) || (extrar < extra) || + (sizer + extrar <= 0)) Abort("Non-positive allocate?"); - r = (struct xobject *) xiMalloc(size + extra); + r = (struct xobject *) xiMalloc(sizer + extrar); while (r == NULL) { if (!GimeSpace()) { Abort("We have REALLY run out of memory"); } - r = (struct xobject *) xiMalloc(size + extra); + r = (struct xobject *) xiMalloc(sizer + extrar); } /* @@ -324,7 +327,7 @@ function, which was in turn called by Unique(). (PNM) */ if (!ISPERMANENT(template->flag)) --template->references; - LONGCOPY(r, template, size); + LONGCOPY(r, template, sizer); r->flag &= ~(ISPERMANENT(ON) | ISIMMORTAL(ON)); /* added reference field 3-2-6-91 PNM */ r->references = 1; @@ -332,7 +335,7 @@ else { register char **p1; - for (p1=(char **)r; size > 0; size -= sizeof(char *)) + for (p1=(char **)r; sizer > 0; sizer -= sizeof(char *)) *p1++ = NULL; } Index: xc/lib/font/Type1/range.h diff -u xc/lib/font/Type1/range.h:1.1 xc/lib/font/Type1/range.h:1.2 --- xc/lib/font/Type1/range.h:1.1 Tue May 4 05:35:22 1999 +++ xc/lib/font/Type1/range.h Thu Sep 7 09:39:12 2006 @@ -1,4 +1,6 @@ -/* Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved. +/* $XFree86: xc/lib/font/Type1/range.h,v 1.2 2006/09/07 13:39:12 tsi Exp $ */ +/* + * Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved. * * The contents of this file are subject to the CID Font Code Public Licence * Version 1.0 (the "License"). You may not use this file except in compliance @@ -24,6 +26,9 @@ unsigned int srcCodeHi; } spacerangecode; +#define MAX_CID_SPACERANGECODES \ + ((int)((unsigned int)(-1) / (2 * sizeof(spacerangecode)))) + typedef struct space_range { struct space_range *next; int rangecnt; @@ -36,6 +41,9 @@ unsigned int dstCIDLo; } cidrangecode; +#define MAX_CID_CIDRANGECODES \ + ((int)((unsigned int)(-1) / (2 * sizeof(cidrangecode)))) + typedef struct cid_range { struct cid_range *next; int rangecnt; Index: xc/lib/font/Type1/scanfont.c diff -u xc/lib/font/Type1/scanfont.c:1.18 xc/lib/font/Type1/scanfont.c:1.20 --- xc/lib/font/Type1/scanfont.c:1.18 Fri Oct 14 11:16:02 2005 +++ xc/lib/font/Type1/scanfont.c Sat Dec 16 10:08:36 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/Type1/scanfont.c,v 1.18 2005/10/14 15:16:02 tsi Exp $ */ +/* $XFree86: xc/lib/font/Type1/scanfont.c,v 1.20 2006/12/16 15:08:36 tsi Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -630,7 +630,7 @@ scan_token(inputP); if (tokenType == TOKEN_INTEGER) { /* an FD array must contain at least one element */ - if (tokenValue.integer <= 0) + if ((tokenValue.integer <= 0) || (tokenValue.integer > MAX_PS_PSFONTS)) return(SCAN_ERROR); arrayP->len = tokenValue.integer; } else @@ -816,7 +816,7 @@ /* note: rc is set by getInt. */ N = getInt(); if (rc) return(rc); - if (N < 0 ) return(SCAN_ERROR); + if ((N < 0) || (N > MAX_PS_PSOBJS)) return(SCAN_ERROR); /* if we already have a Subrs, then skip the second one */ /* The second one is for hiresolution devices. */ if (FontP->Subrs.data.arrayP != NULL) { @@ -902,7 +902,7 @@ } else return(rc); /* if next token was not an Int */ } - if (N<=0) return(SCAN_ERROR); + if ((N<=0) || (N >= MAX_PS_PSDICTS)) return(SCAN_ERROR); /* save number of entries in the dictionary */ dictP = (psdict *)vm_alloc((N+1)*sizeof(psdict)); @@ -1732,6 +1732,10 @@ break; case TOKEN_NAME: if (0 == strncmp(tokenStartP,"begincodespacerange",19)) { + if ((rangecnt <= 0) || (rangecnt > MAX_CID_SPACERANGECODES)) { + rc = SCAN_OUT_OF_MEMORY; + break; + } CIDFontP->spacerangecnt++; spacerangeP = (spacerange *)vm_alloc(sizeof(spacerange)); if (!spacerangeP) { @@ -1787,6 +1791,10 @@ } } if (0 == strncmp(tokenStartP,"begincidrange",13)) { + if ((rangecnt <= 0) || (rangecnt > MAX_CID_CIDRANGECODES)) { + rc = SCAN_OUT_OF_MEMORY; + break; + } CIDFontP->cidrangecnt++; cidrangeP = (cidrange *)vm_alloc(sizeof(cidrange)); if (!cidrangeP) { @@ -1868,6 +1876,10 @@ } if (0 == strncmp(tokenStartP,"beginnotdefrange",16)) { + if ((rangecnt <= 0) || (rangecnt > MAX_CID_CIDRANGECODES)) { + rc = SCAN_OUT_OF_MEMORY; + break; + } CIDFontP->notdefrangecnt++; notdefrangeP = (cidrange *)vm_alloc(sizeof(cidrange)); if (!notdefrangeP) { Index: xc/lib/font/Type1/t1funcs.c diff -u xc/lib/font/Type1/t1funcs.c:3.35 xc/lib/font/Type1/t1funcs.c:3.36 --- xc/lib/font/Type1/t1funcs.c:3.35 Fri Oct 14 11:16:03 2005 +++ xc/lib/font/Type1/t1funcs.c Sat Dec 16 10:08:36 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/Type1/t1funcs.c,v 3.35 2005/10/14 15:16:03 tsi Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1funcs.c,v 3.36 2006/12/16 15:08:36 tsi Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -215,7 +215,7 @@ cidglyphs *cid; char *p; double t1 = .001, t2 = 0.0, t3 = 0.0, t4 = .001; - double sxmult; + double sxmult, fsize; char CIDFontName[CID_NAME_MAX]; char CMapName[CID_NAME_MAX]; char cidfontname[CID_PATH_MAX]; @@ -341,10 +341,11 @@ bzero(cid, sizeof(cidglyphs)); /* heuristic for "maximum" size of pool we'll need: */ - size = 200000 + 600 * - (int)hypot(vals->pixel_matrix[2], vals->pixel_matrix[3]) - * sizeof(short); - if (size < 0 || NULL == (pool = (long *) xalloc(size))) { + fsize = 200000 + 600 * sizeof(short) * + floor(hypot(vals->pixel_matrix[2], vals->pixel_matrix[3])); + size = (int)fsize; + if ((fsize < 0) || (fsize != (double)size) || + (NULL == (pool = (long *) xalloc(size)))) { xfree(cid); DestroyFontRec(pFont); return AllocError; @@ -388,7 +389,7 @@ delmemory(); xfree(pool); - if (pFont->info.firstCol > pFont->info.lastCol) + if ((nchars < 0) || (pFont->info.firstCol > pFont->info.lastCol)) { xfree(cid); DestroyFontRec(pFont); @@ -518,7 +519,7 @@ psobj *fontmatrix; long x0, total_width = 0, total_raw_width = 0; double x1, y1, t1 = .001, t2 = 0.0, t3 = 0.0, t4 = .001; - double sxmult; + double sxmult, fsize; /* Reject ridiculously small font sizes that will blow up the math */ if (hypot(vals->pixel_matrix[0], vals->pixel_matrix[1]) < 1.0 || @@ -550,13 +551,14 @@ /* heuristic for "maximum" size of pool we'll need: */ #ifdef BUILDCID - size = 400000 + 600 * + fsize = 400000 + 600 * sizeof(short) * #else - size = 200000 + 600 * + fsize = 200000 + 600 * sizeof(short) * #endif - (int)hypot(vals->pixel_matrix[2], vals->pixel_matrix[3]) - * sizeof(short); - if (size < 0 || NULL == (pool = (long *) xalloc(size))) { + floor(hypot(vals->pixel_matrix[2], vals->pixel_matrix[3])); + size = (int)fsize; + if ((fsize < 0) || (fsize != (double)size) || + (NULL == (pool = (long *) xalloc(size)))) { xfree(type1); DestroyFontRec(pFont); return AllocError; @@ -1525,7 +1527,7 @@ int len, rc; long x0; double x1, y1, t1 = .001, t2 = 0.0, t3 = 0.0, t4 = .001; - double sxmult; + double sxmult, fsize; long h,w; long paddedW; cidglyphs *cid; @@ -1549,10 +1551,11 @@ #define PAD(bits, pad) (((bits)+(pad)-1)&-(pad)) /* heuristic for "maximum" size of pool we'll need: */ - size = 200000 + 600 * - (int)hypot(cid->pixel_matrix[2], cid->pixel_matrix[3]) - * sizeof(short); - if (size < 0 || NULL == (pool = (long *) xalloc(size))) { + fsize = 200000 + 600 * sizeof(short) * + floor(hypot(cid->pixel_matrix[2], cid->pixel_matrix[3])); + size = (int)fsize; + if ((fsize < 0) || (fsize != (double)size) || + (NULL == (pool = (long *) xalloc(size)))) { *mode = AllocError; return(NULL); } Index: xc/lib/font/Type1/t1info.c diff -u xc/lib/font/Type1/t1info.c:1.20 xc/lib/font/Type1/t1info.c:1.21 --- xc/lib/font/Type1/t1info.c:1.20 Fri Oct 14 11:16:03 2005 +++ xc/lib/font/Type1/t1info.c Mon Apr 9 11:37:13 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/Type1/t1info.c,v 1.20 2005/10/14 15:16:03 tsi Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1info.c,v 1.21 2007/04/09 15:37:13 tsi Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -1046,7 +1046,7 @@ { FontInfoPtr pInfo = &pFont->info; struct type1font *p = (struct type1font *)pFont->fontPrivate; - long sAscent, sDescent; /* Scalable 1000-pixel values */ + long sAscent = 0, sDescent = 0; /* Scalable 1000-pixel values */ FillHeader(pInfo, Vals); Index: xc/lib/font/Type1/t1intf.h diff -u xc/lib/font/Type1/t1intf.h:1.8 xc/lib/font/Type1/t1intf.h:1.9 --- xc/lib/font/Type1/t1intf.h:1.8 Mon Jan 9 09:59:29 2006 +++ xc/lib/font/Type1/t1intf.h Mon Dec 18 10:46:15 2006 @@ -43,7 +43,7 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/t1intf.h,v 1.8 2006/01/09 14:59:29 dawes Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1intf.h,v 1.9 2006/12/18 15:46:15 tsi Exp $ */ #ifdef BUILDCID #include "AFM.h" @@ -65,8 +65,8 @@ FontInfo *AFMinfo; #ifdef USE_MMAP unsigned char *CIDdata; - long CIDsize; #endif + long CIDsize; } cidglyphs; #endif Index: xc/lib/font/Type1/t1malloc.c diff -u xc/lib/font/Type1/t1malloc.c:1.13 xc/lib/font/Type1/t1malloc.c:1.14 --- xc/lib/font/Type1/t1malloc.c:1.13 Fri Oct 14 11:16:03 2005 +++ xc/lib/font/Type1/t1malloc.c Sat Dec 16 10:08:36 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/Type1/t1malloc.c,v 1.13 2005/10/14 15:16:03 tsi Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1malloc.c,v 1.14 2006/12/16 15:08:36 tsi Exp $ */ /* Copyright International Business Machines, Corp. 1991 * All Rights Reserved * Copyright Lexmark International, Inc. 1991 @@ -414,6 +414,8 @@ xiMalloc(unsigned size) { char *memaddr; + + if ((int)size <= 0) return (char *)0; while ( (memaddr = malloc_local(size)) == NULL ) { /* Ask TYPE1IMAGER to give us some of its cache back */ @@ -452,10 +454,13 @@ (longs), not bytes, increased to span an integral number of double words, so that all memory blocks dispensed with be properly aligned. */ + if (size < 0) return (char *)0; size += 2*sizeof(long) + DEBUGWORDS*sizeof(long); + if (size < 0) return (char *)0; if (size < sizeof(struct freeblock) + sizeof(long)) size = sizeof(struct freeblock) + sizeof(long); size = ((unsigned) (size + sizeof(double) - 1) / sizeof(double)) * (sizeof(double)/sizeof(long)); + if ((size < 0) || (size != (int)size)) return (char *)0; /* For speed, we will try first to give the user back a very recently Index: xc/lib/font/Type1/t1test.c diff -u xc/lib/font/Type1/t1test.c:1.2 xc/lib/font/Type1/t1test.c:1.3 --- xc/lib/font/Type1/t1test.c:1.2 Fri Oct 14 11:16:03 2005 +++ xc/lib/font/Type1/t1test.c Sat Dec 16 10:08:37 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/Type1/t1test.c,v 1.2 2005/10/14 15:16:03 tsi Exp $ */ +/* $XFree86: xc/lib/font/Type1/t1test.c,v 1.3 2006/12/16 15:08:37 tsi Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -229,6 +229,7 @@ int size; { extern char *malloc(); + if (size <= 0) return (char *)0; return(malloc(size)); } Index: xc/lib/font/Type1/util.c diff -u xc/lib/font/Type1/util.c:1.7 xc/lib/font/Type1/util.c:1.8 --- xc/lib/font/Type1/util.c:1.7 Fri Oct 14 11:16:03 2005 +++ xc/lib/font/Type1/util.c Thu Sep 7 09:39:12 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/Type1/util.c,v 1.7 2005/10/14 15:16:03 tsi Exp $ */ +/* $XFree86: xc/lib/font/Type1/util.c,v 1.8 2006/09/07 13:39:12 tsi Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -96,7 +96,7 @@ bytes = (bytes + 7) & ~7; /* Allocate the space, if it is available */ - if (bytes <= vm_free) { + if ((bytes > 0) && (bytes <= vm_free)) { answer = vm_next; vm_free -= bytes; vm_next += bytes; Index: xc/lib/font/Type1/util.h diff -u xc/lib/font/Type1/util.h:1.6 xc/lib/font/Type1/util.h:1.7 --- xc/lib/font/Type1/util.h:1.6 Mon Jan 9 09:59:30 2006 +++ xc/lib/font/Type1/util.h Sat Dec 16 10:08:37 2006 @@ -1,3 +1,4 @@ +/* $XFree86: xc/lib/font/Type1/util.h,v 1.7 2006/12/16 15:08:37 tsi Exp $ */ /* Copyright International Business Machines,Corp. 1991 * All Rights Reserved * @@ -43,7 +44,6 @@ * The Original Software is CID font code that was developed by Silicon * Graphics, Inc. */ -/* $XFree86: xc/lib/font/Type1/util.h,v 1.6 2006/01/09 14:59:30 dawes Exp $ */ #ifndef UTIL_H #define UTIL_H @@ -145,6 +145,9 @@ unsigned short len; union ps_value data; } psobj; + +#define MAX_PS_PSOBJS \ + ((int)((unsigned int)(-1) / (2 * sizeof(psobj)))) /***================================================================***/ /* Definition of a PostScript Dictionary Entry */ @@ -154,6 +157,9 @@ psobj value; } psdict; +#define MAX_PS_PSDICTS \ + ((int)((unsigned int)(-1) / (2 * sizeof(psdict)))) + /***================================================================***/ /* Macros for testing type of PostScript objects */ /***================================================================***/ Index: xc/lib/font/bitmap/bdfread.c diff -u xc/lib/font/bitmap/bdfread.c:1.14 xc/lib/font/bitmap/bdfread.c:1.15 --- xc/lib/font/bitmap/bdfread.c:1.14 Mon Jan 9 09:59:31 2006 +++ xc/lib/font/bitmap/bdfread.c Thu Apr 5 12:08:59 2007 @@ -48,7 +48,7 @@ from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/bdfread.c,v 1.14 2006/01/09 14:59:31 dawes Exp $ */ +/* $XFree86: xc/lib/font/bitmap/bdfread.c,v 1.15 2007/04/05 16:08:59 tsi Exp $ */ #ifndef FONTMODULE #include <ctype.h> @@ -278,7 +278,7 @@ bdfError("bad 'CHARS' in bdf file\n"); return (FALSE); } - if (nchars < 1) { + if ((nchars < 1) || (nchars > (0x7fffffff / sizeof(CharInfoRec)))) { bdfError("invalid number of CHARS in BDF file\n"); return (FALSE); } Index: xc/lib/font/bitmap/bitscale.c diff -u xc/lib/font/bitmap/bitscale.c:3.31 xc/lib/font/bitmap/bitscale.c:3.32 --- xc/lib/font/bitmap/bitscale.c:3.31 Mon Jan 9 09:59:31 2006 +++ xc/lib/font/bitmap/bitscale.c Mon Apr 9 11:37:13 2007 @@ -25,7 +25,7 @@ from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/bitscale.c,v 3.31 2006/01/09 14:59:31 dawes Exp $ */ +/* $XFree86: xc/lib/font/bitmap/bitscale.c,v 3.32 2007/04/09 15:37:13 tsi Exp $ */ /* * Author: Keith Packard, MIT X Consortium @@ -732,6 +732,7 @@ fp = (FontPropPtr) xalloc(sizeof(FontPropRec) * nProps); *pProps = fp; if (!fp) { + *pIsStringProp = NULL; fprintf(stderr, "Error: Couldn't allocate font properties (%ld*%d)\n", (unsigned long)sizeof(FontPropRec), nProps); return 1; Index: xc/lib/font/bitmap/pcfread.c diff -u xc/lib/font/bitmap/pcfread.c:1.23 xc/lib/font/bitmap/pcfread.c:1.25 --- xc/lib/font/bitmap/pcfread.c:1.23 Mon Jan 9 09:59:31 2006 +++ xc/lib/font/bitmap/pcfread.c Tue Jul 25 11:54:11 2006 @@ -25,7 +25,7 @@ from The Open Group. */ -/* $XFree86: xc/lib/font/bitmap/pcfread.c,v 1.23 2006/01/09 14:59:31 dawes Exp $ */ +/* $XFree86: xc/lib/font/bitmap/pcfread.c,v 1.25 2006/07/25 15:54:11 tsi Exp $ */ /* * Author: Keith Packard, MIT X Consortium @@ -128,6 +128,10 @@ return (PCFTablePtr) NULL; count = pcfGetLSB32(file); if (IS_EOF(file)) return (PCFTablePtr) NULL; + if ((count < 0) || (count > (0x7fffffff / sizeof(PCFTableRec)))) { + pcfError("pcfReadTOC(): invalid file format\n"); + return NULL; + } tables = (PCFTablePtr) xalloc(count * sizeof(PCFTableRec)); if (!tables) { pcfError("pcfReadTOC(): Couldn't allocate tables (%d*%d)\n", count, sizeof(PCFTableRec)); @@ -247,6 +251,10 @@ if (!PCF_FORMAT_MATCH(format, PCF_DEFAULT_FORMAT)) goto Bail; nprops = pcfGetINT32(file, format); + if ((nprops <= 0) || (nprops > (0x7fffffff / sizeof(FontPropRec)))) { + pcfError("pcfGetProperties(): invalid nprops value (%d)\n", nprops); + goto Bail; + } if (IS_EOF(file)) goto Bail; props = (FontPropPtr) xalloc(nprops * sizeof(FontPropRec)); if (!props) { @@ -262,6 +270,13 @@ props[i].name = pcfGetINT32(file, format); isStringProp[i] = pcfGetINT8(file, format); props[i].value = pcfGetINT32(file, format); + if (props[i].name < 0 + || (isStringProp[i] != 0 && isStringProp[i] != 1) + || (isStringProp[i] && props[i].value < 0)) { + pcfError("pcfGetProperties(): invalid file format %d %d %d\n", + props[i].name, isStringProp[i], props[i].value); + goto Bail; + } if (IS_EOF(file)) goto Bail; } /* pad the property array */ @@ -277,6 +292,7 @@ } if (IS_EOF(file)) goto Bail; string_size = pcfGetINT32(file, format); + if (string_size < 0) goto Bail; if (IS_EOF(file)) goto Bail; strings = (char *) xalloc(string_size); if (!strings) { @@ -417,6 +433,10 @@ else nmetrics = pcfGetINT16(file, format); if (IS_EOF(file)) goto Bail; + if ((nmetrics < 0) || (nmetrics > (0x7fffffff / sizeof(CharInfoRec)))) { + pcfError("pcfReadFont(): invalid file format\n"); + goto Bail; + } metrics = (CharInfoPtr) xalloc(nmetrics * sizeof(CharInfoRec)); if (!metrics) { pcfError("pcfReadFont(): Couldn't allocate metrics (%d*%d)\n", nmetrics, sizeof(CharInfoRec)); @@ -442,7 +462,7 @@ nbitmaps = pcfGetINT32(file, format); if (nbitmaps != nmetrics || IS_EOF(file)) goto Bail; - + /* nmetrics is already ok, so nbitmap also is */ offsets = (CARD32 *) xalloc(nbitmaps * sizeof(CARD32)); if (!offsets) { pcfError("pcfReadFont(): Couldn't allocate offsets (%d*%d)\n", nbitmaps, sizeof(CARD32)); @@ -456,6 +476,7 @@ for (i = 0; i < GLYPHPADOPTIONS; i++) { bitmapSizes[i] = pcfGetINT32(file, format); if (IS_EOF(file)) goto Bail; + if ((INT32)bitmapSizes[i] < 0) goto Bail; } sizebitmaps = bitmapSizes[PCF_GLYPH_PAD_INDEX(format)]; @@ -531,6 +552,7 @@ if (IS_EOF(file)) goto Bail; if (nink_metrics != nmetrics) goto Bail; + /* nmetrics already checked */ ink_metrics = (xCharInfo *) xalloc(nink_metrics * sizeof(xCharInfo)); if (!ink_metrics) { pcfError("pcfReadFont(): Couldn't allocate ink_metrics (%d*%d)\n", nink_metrics, sizeof(xCharInfo)); @@ -804,6 +826,10 @@ else nmetrics = pcfGetINT16(file, format); if (IS_EOF(file)) goto Bail; + if ((nmetrics < 0) || (nmetrics > (0x7fffffff / sizeof(CharInfoRec)))) { + pcfError("pmfReadFont(): invalid file format\n"); + goto Bail; + } metrics = (CharInfoPtr) xalloc(nmetrics * sizeof(CharInfoRec)); if (!metrics) { pcfError("pmfReadFont(): Couldn't allocate metrics (%d*%d)\n", nmetrics, sizeof(CharInfoRec)); Index: xc/lib/font/fc/fserve.c diff -u xc/lib/font/fc/fserve.c:3.28 xc/lib/font/fc/fserve.c:3.29 --- xc/lib/font/fc/fserve.c:3.28 Fri Oct 14 11:16:05 2005 +++ xc/lib/font/fc/fserve.c Mon Apr 9 11:37:13 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/fc/fserve.c,v 3.28 2005/10/14 15:16:05 tsi Exp $ */ +/* $XFree86: xc/lib/font/fc/fserve.c,v 3.29 2007/04/09 15:37:13 tsi Exp $ */ /* Copyright 1990, 1998 The Open Group @@ -2737,6 +2737,7 @@ *error = ret; return 0; } + *error = 0; *setup_len = len; return (fsConnSetup *) data; } Index: xc/lib/font/fontfile/Imakefile diff -u xc/lib/font/fontfile/Imakefile:3.23 xc/lib/font/fontfile/Imakefile:3.24 --- xc/lib/font/fontfile/Imakefile:3.23 Fri Oct 14 11:16:06 2005 +++ xc/lib/font/fontfile/Imakefile Sat Apr 28 14:53:41 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/font/fontfile/Imakefile,v 3.23 2005/10/14 15:16:06 tsi Exp $ +XCOMM $XFree86: xc/lib/font/fontfile/Imakefile,v 3.24 2007/04/28 18:53:41 tsi Exp $ #include <Server.tmpl> @@ -42,8 +42,7 @@ DEFINES = StrcasecmpDefines $(ATTRIBDEFS) \ $(SPEEDO_DEFINES) $(TYPE1_DEFINES) $(CID_DEFINES) \ - $(FREETYPE_DEFINES) $(XTRUETYPE_DEFINES) $(FONTENCDEFS) \ - $(GZIP_DEFS) + $(FREETYPE_DEFINES) $(FONTENCDEFS) $(GZIP_DEFS) SRCS = dirfile.c fontdir.c fontfile.c fileio.c fontscale.c \ defaults.c bitsource.c register.c renderers.c bufio.c \ Index: xc/lib/font/fontfile/fontdir.c diff -u xc/lib/font/fontfile/fontdir.c:3.24 xc/lib/font/fontfile/fontdir.c:3.25 --- xc/lib/font/fontfile/fontdir.c:3.24 Mon Jan 9 09:59:34 2006 +++ xc/lib/font/fontfile/fontdir.c Thu Apr 5 12:08:59 2007 @@ -23,7 +23,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/lib/font/fontfile/fontdir.c,v 3.24 2006/01/09 14:59:34 dawes Exp $ */ +/* $XFree86: xc/lib/font/fontfile/fontdir.c,v 3.25 2007/04/05 16:08:59 tsi Exp $ */ /* * Author: Keith Packard, MIT X Consortium @@ -37,6 +37,9 @@ { if (size) { + if ((size < 0) || (size > (0x7fffffff / sizeof(FontEntryRec)))) + return FALSE; + table->entries = (FontEntryPtr) xalloc(sizeof(FontEntryRec) * size); if (!table->entries) return FALSE; Index: xc/lib/font/util/patcache.c diff -u xc/lib/font/util/patcache.c:3.6 xc/lib/font/util/patcache.c:3.7 --- xc/lib/font/util/patcache.c:3.6 Fri Oct 14 11:16:06 2005 +++ xc/lib/font/util/patcache.c Sat Sep 2 12:44:03 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/lib/font/util/patcache.c,v 3.6 2005/10/14 15:16:06 tsi Exp $ */ +/* $XFree86: xc/lib/font/util/patcache.c,v 3.7 2006/09/02 16:44:03 dawes Exp $ */ /* Copyright 1991, 1998 The Open Group @@ -126,7 +126,7 @@ /* add entry */ void CacheFontPattern (FontPatternCachePtr cache, - char *pattern, + const char *pattern, int patlen, FontPtr pFont) { @@ -172,7 +172,7 @@ /* find matching entry */ FontPtr FindCachedFontPattern (FontPatternCachePtr cache, - char *pattern, + const char *pattern, int patlen) { int hash; Index: xc/lib/fontconfig/Imakefile diff -u xc/lib/fontconfig/Imakefile:1.21 xc/lib/fontconfig/Imakefile:1.22 --- xc/lib/fontconfig/Imakefile:1.21 Tue Oct 25 12:58:48 2005 +++ xc/lib/fontconfig/Imakefile Fri May 18 14:01:58 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/fontconfig/Imakefile,v 1.21 2005/10/25 16:58:48 dawes Exp $ +XCOMM $XFree86: xc/lib/fontconfig/Imakefile,v 1.22 2007/05/18 18:01:58 tsi Exp $ #define DoNormalLib NormalLibFontconfig #define DoSharedLib SharedLibFontconfig @@ -22,7 +22,7 @@ INCLUDES=$(EXPATINCLUDES) $(FREETYPE2INCLUDES) -I$(FONTCONFIGSRC)/src -DEFINES=-DFC_DEFAULT_FONTS='"$(FC_DEFAULT_FONTS)"' -DHAVE_EXPAT -DXFREE86_FT2 +DEFINES=-DFC_DEFAULT_FONTS='"$(FC_DEFAULT_FONTS)"' -DHAVE_EXPAT REQUIREDLIBS=$(LDPRELIBS) $(FREETYPE2LIB) $(EXPATLIB) Index: xc/lib/freetype2/Imakefile diff -u xc/lib/freetype2/Imakefile:1.25 xc/lib/freetype2/Imakefile:1.27 --- xc/lib/freetype2/Imakefile:1.25 Fri Oct 14 11:16:07 2005 +++ xc/lib/freetype2/Imakefile Fri May 18 14:01:58 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/freetype2/Imakefile,v 1.25 2005/10/14 15:16:07 tsi Exp $ +XCOMM $XFree86: xc/lib/freetype2/Imakefile,v 1.27 2007/05/18 18:01:58 tsi Exp $ #define IHaveSubdirs #define PassCDebugFlags @@ -32,7 +32,7 @@ # endif #endif -DEFINES = $(DARWINDEFINES) Freetype2BuildDefines -DXFREE86_FT2 +DEFINES = $(DARWINDEFINES) Freetype2BuildDefines INCLUDES = \ -I$(FREETYPESRC)\ @@ -257,5 +257,3 @@ LinkSourceFile(winfnt.c,$(FREETYPESRC)/winfonts) DependTarget() - -DependSubdirs($(SUBDIRS)) Index: xc/lib/freetype2/freetype/Imakefile diff -u xc/lib/freetype2/freetype/Imakefile:1.12 xc/lib/freetype2/freetype/Imakefile:1.13 --- xc/lib/freetype2/freetype/Imakefile:1.12 Mon Apr 26 12:15:56 2004 +++ xc/lib/freetype2/freetype/Imakefile Wed Jan 3 20:59:07 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/freetype2/freetype/Imakefile,v 1.12 2004/04/26 16:15:56 dawes Exp $ +XCOMM $XFree86: xc/lib/freetype2/freetype/Imakefile,v 1.13 2007/01/04 01:59:07 tsi Exp $ #define IHaveSubdirs #define PassCDebugFlags @@ -86,5 +86,3 @@ LinkSourceFile(tttables.h,$(FREETYPEINC)) LinkSourceFile(tttags.h,$(FREETYPEINC)) LinkSourceFile(ttunpat.h,$(FREETYPEINC)) - -DependSubdirs($(SUBDIRS)) Index: xc/lib/freetype2/freetype/config/Imakefile diff -u xc/lib/freetype2/freetype/config/Imakefile:1.13 xc/lib/freetype2/freetype/config/Imakefile:1.14 --- xc/lib/freetype2/freetype/config/Imakefile:1.13 Fri Oct 31 15:49:05 2003 +++ xc/lib/freetype2/freetype/config/Imakefile Fri May 18 14:01:58 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/lib/freetype2/freetype/config/Imakefile,v 1.13 2003/10/31 20:49:05 herrb Exp $ +XCOMM $XFree86: xc/lib/freetype2/freetype/config/Imakefile,v 1.14 2007/05/18 18:01:58 tsi Exp $ FREETYPETOP = $(TOP)/extras/freetype2 FREETYPESRC = $(FREETYPETOP)/src @@ -14,11 +14,7 @@ BuildIncludes($(HEADERS),freetype2/freetype/config,../../..) InstallMultipleFlags($(HEADERS),$(INCDIR)/freetype2/freetype/config,$(INSTINCFLAGS)) -#if 0 LinkSourceFile(ftconfig.h,$(FREETYPEINC)/config) -#else -LinkSourceFile(ftconfig.h,$(FONTLIBSRC)/FreeType) -#endif LinkSourceFile(ftheader.h,$(FREETYPEINC)/config) LinkSourceFile(ftmodule.h,$(FREETYPEINC)/config) LinkSourceFile(ftoption.h,$(FREETYPEINC)/config) Index: xc/lib/misc/snprintf.c diff -u xc/lib/misc/snprintf.c:3.3 xc/lib/misc/snprintf.c:3.4 --- xc/lib/misc/snprintf.c:3.3 Mon Jan 9 09:59:36 2006 +++ xc/lib/misc/snprintf.c Fri Nov 3 11:30:48 2006 @@ -51,7 +51,7 @@ * All Rights Reserved */ -/* $XFree86: xc/lib/misc/snprintf.c,v 3.3 2006/01/09 14:59:36 dawes Exp $ */ +/* $XFree86: xc/lib/misc/snprintf.c,v 3.4 2006/11/03 16:30:48 tsi Exp $ */ /* @@ -369,8 +369,8 @@ char *q; int s_len; - int min_width; - int precision; + int min_width = 0; + int precision = 0; enum { LEFT, RIGHT } adjust; @@ -548,7 +548,7 @@ s = conv_p2(ui_num, 4, *fmt, &num_buf[NUM_BUF_SIZE], &s_len); FIX_PRECISION(adjust_precision, precision, s, s_len); - if (alternate_form && i_num != 0) { + if (alternate_form && ui_num != 0) { *--s = *fmt; /* 'x' or 'X' */ *--s = '0'; s_len += 2; @@ -628,8 +628,8 @@ case 'n': *(va_arg(ap, int *)) = cc; - - break; + fmt++; + continue; /* * If the pointer size is equal to the size of an unsigned Index: xc/lib/xkbui/XKBui.c diff -u xc/lib/xkbui/XKBui.c:3.8 xc/lib/xkbui/XKBui.c:3.9 --- xc/lib/xkbui/XKBui.c:3.8 Mon Jan 9 09:59:37 2006 +++ xc/lib/xkbui/XKBui.c Sun Dec 10 10:58:25 2006 @@ -23,7 +23,7 @@ THE USE OR PERFORMANCE OF THIS SOFTWARE. ********************************************************/ -/* $XFree86: xc/lib/xkbui/XKBui.c,v 3.8 2006/01/09 14:59:37 dawes Exp $ */ +/* $XFree86: xc/lib/xkbui/XKBui.c,v 3.9 2006/12/10 15:58:25 tsi Exp $ */ #include <X11/Xos.h> #include <stdio.h> @@ -96,7 +96,7 @@ if (XAllocNamedColor(view->dpy,view->opts.cmap,spec,&sdef,&xdef)) { xkb->geom->colors[i].pixel= sdef.pixel; #ifdef DEBUG - fprintf(stderr,"got pixel %d for \"%s\"\n",sdef.pixel,spec); + fprintf(stderr,"got pixel %ld for \"%s\"\n", sdef.pixel, spec); #endif found= True; } @@ -108,7 +108,7 @@ if (XAllocNamedColor(view->dpy,view->opts.cmap,buf,&sdef,&xdef)) { xkb->geom->colors[i].pixel= sdef.pixel; #ifdef DEBUG - fprintf(stderr,"got pixel %d for \"%s\"\n",sdef.pixel,spec); + fprintf(stderr,"got pixel %ld for \"%s\"\n", sdef.pixel, spec); #endif found= True; } Index: xc/lib/xtrans/Xtrans.c diff -u xc/lib/xtrans/Xtrans.c:3.36 xc/lib/xtrans/Xtrans.c:3.38 --- xc/lib/xtrans/Xtrans.c:3.36 Mon Jan 9 09:59:38 2006 +++ xc/lib/xtrans/Xtrans.c Sat Sep 2 12:44:03 2006 @@ -25,7 +25,7 @@ from The Open Group. */ -/* $XFree86: xc/lib/xtrans/Xtrans.c,v 3.36 2006/01/09 14:59:38 dawes Exp $ */ +/* $XFree86: xc/lib/xtrans/Xtrans.c,v 3.38 2006/09/02 16:44:03 dawes Exp $ */ /* Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA * @@ -158,7 +158,7 @@ #define PROTOBUFSIZE 20 static Xtransport * -TRANS(SelectTransport) (char *protocol) +TRANS(SelectTransport) (const char *protocol) { char protobuf[PROTOBUFSIZE]; @@ -774,7 +774,7 @@ } int -TRANS(NoListen) (char * protocol) +TRANS(NoListen) (const char * protocol) { Xtransport *trans; @@ -1381,15 +1381,24 @@ #ifdef NEED_UTSNAME struct utsname name; - uname (&name); - len = strlen (name.nodename); - if (len >= maxlen) len = maxlen - 1; - strncpy (buf, name.nodename, len); + if ((maxlen <= 0) || (buf == NULL)) + return 0; + + len = 0; + if (uname(&name) >= 0) { + len = strlen(name.nodename); + if (len >= maxlen) + len = maxlen - 1; + strncpy(buf, name.nodename, len); + } buf[len] = '\0'; #else + if ((maxlen <= 0) || (buf == NULL)) + return 0; + buf[0] = '\0'; - (void) gethostname (buf, maxlen); - buf [maxlen - 1] = '\0'; + (void) gethostname(buf, maxlen); + buf[maxlen - 1] = '\0'; len = strlen(buf); #endif /* NEED_UTSNAME */ return len; Index: xc/lib/xtrans/Xtrans.h diff -u xc/lib/xtrans/Xtrans.h:3.23 xc/lib/xtrans/Xtrans.h:3.24 --- xc/lib/xtrans/Xtrans.h:3.23 Mon Jan 9 09:59:38 2006 +++ xc/lib/xtrans/Xtrans.h Sat Sep 2 12:44:03 2006 @@ -25,7 +25,7 @@ from The Open Group. */ -/* $XFree86: xc/lib/xtrans/Xtrans.h,v 3.23 2006/01/09 14:59:38 dawes Exp $ */ +/* $XFree86: xc/lib/xtrans/Xtrans.h,v 3.24 2006/09/02 16:44:03 dawes Exp $ */ /* Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA * @@ -343,7 +343,7 @@ ); int TRANS(NoListen) ( - char* /* protocol*/ + const char* /* protocol*/ ); int TRANS(ResetListener)( Index: xc/lib/xtrans/Xtranssock.c diff -u xc/lib/xtrans/Xtranssock.c:3.73 xc/lib/xtrans/Xtranssock.c:3.74 --- xc/lib/xtrans/Xtranssock.c:3.73 Wed Mar 1 16:01:55 2006 +++ xc/lib/xtrans/Xtranssock.c Mon Apr 2 20:21:06 2007 @@ -26,7 +26,7 @@ from the copyright holders. */ -/* $XFree86: xc/lib/xtrans/Xtranssock.c,v 3.73 2006/03/01 21:01:55 dawes Exp $ */ +/* $XFree86: xc/lib/xtrans/Xtranssock.c,v 3.74 2007/04/03 00:21:06 tsi Exp $ */ /* Copyright 1993, 1994 NCR Corporation - Dayton, Ohio, USA * @@ -278,11 +278,13 @@ * that don't have IPv6 support. */ #if defined(IPv6) && defined(AF_INET6) +#ifndef __DARWIN__ static const struct in6_addr local_in6addr_any = IN6ADDR_ANY_INIT; #pragma weak in6addr_any = local_in6addr_any #ifndef __USLC__ #pragma weak getaddrinfo #endif +#endif static int haveIPv6 = 1; #endif Index: xc/nls/compose.dir diff -u xc/nls/compose.dir:1.30 xc/nls/compose.dir:1.31 --- xc/nls/compose.dir:1.30 Mon Jan 30 20:56:08 2006 +++ xc/nls/compose.dir Thu Jul 5 10:52:06 2007 @@ -3,7 +3,7 @@ XCOMM The first word is the compose table file name and XCOMM the second word is full locale name. XCOMM -XCOMM $XFree86: xc/nls/compose.dir,v 1.30 2006/01/31 01:56:08 dawes Exp $ +XCOMM $XFree86: xc/nls/compose.dir,v 1.31 2007/07/05 14:52:06 tsi Exp $ XCOMM iso8859-1/Compose: C iso8859-1/Compose: af_ZA.ISO8859-1 @@ -191,11 +191,9 @@ iso8859-2/Compose: sk_SK.ISO8859-2 iso8859-2/Compose: sl_CS.ISO8859-2 iso8859-2/Compose: sl_SI.ISO8859-2 -iso8859-5/Compose: sp_YU.ISO8859-5 iso8859-2/Compose: sq_AL.ISO8859-2 iso8859-2/Compose: sr_CS.ISO8859-2 iso8859-5/Compose: sr_CS.ISO8859-5 -iso8859-2/Compose: sr_SP.ISO8859-2 iso8859-2/Compose: sr_YU.ISO8859-2 iso8859-5/Compose: sr_YU.ISO8859-5 iso8859-1/Compose: ss_ZA.ISO8859-1 @@ -349,6 +347,8 @@ en_US.UTF-8/Compose: sl_SI.UTF-8 en_US.UTF-8/Compose: sq_AL.UTF-8 en_US.UTF-8/Compose: sr_CS.UTF-8 +en_US.UTF-8/Compose: sr_ME.UTF-8 +en_US.UTF-8/Compose: sr_RS.UTF-8 en_US.UTF-8/Compose: sr_YU.UTF-8 en_US.UTF-8/Compose: ss_ZA.UTF-8 en_US.UTF-8/Compose: st_ZA.UTF-8 Index: xc/nls/locale.alias diff -u xc/nls/locale.alias:1.72 xc/nls/locale.alias:1.73 --- xc/nls/locale.alias:1.72 Mon Jan 30 20:56:08 2006 +++ xc/nls/locale.alias Thu Jul 5 10:52:06 2007 @@ -4,7 +4,7 @@ XCOMM The first word is the alias name (simplified locale name) XCOMM the second word is full locale name. XCOMM -XCOMM $XFree86: xc/nls/locale.alias,v 1.72 2006/01/31 01:56:08 dawes Exp $ +XCOMM $XFree86: xc/nls/locale.alias,v 1.73 2007/07/05 14:52:06 tsi Exp $ XCOMM POSIX: C @@ -438,8 +438,8 @@ lo_LA.mulelao1: lo_LA.MULELAO-1 #if defined(__FreeBSD__) XCOMM most locales in FreeBSD 2.1.[56] do not work, allow use of FreeBSD's -XCOMM generic latin-1 locale name. N.B. "lt" is a bad code to use for a -XCOMM generic Latin-1 locale anyway because it is the country code for +XCOMM generic latin-1 locale name. N.B. "lt" is a bad code to use for a +XCOMM generic Latin-1 locale anyway because it is the country code for XCOMM Lithuania, which by default uses Latin-7 (ISO-8859-13). lt_LN.ISO_8859-1: lt_LN.ISO8859-1 #endif @@ -593,12 +593,13 @@ se_NO: se_NO.UTF-8 se_NO.utf8: se_NO.UTF-8 XCOMM sh was the old ISO code for Serbo-Croatian (now individual sr and hr). -XCOMM YU was the old ISO code for Yugoslavia (now CS for Serbia&Montenegro). -XCOMM These lines should be deleted in the future. -sh: sr_CS.ISO8859-2 +XCOMM YU was the old ISO code for Yugoslavia (later CS for Serbia&Montenegro). +XCOMM CS was the old ISO code for Serbia&Montenegro (now separate RS and ME). +XCOMM These lines should be deleted in the future. +sh: sr_RS.UTF-8@latin sh_HR.iso88592: hr_HR.ISO8859-2 -sh_YU: sr_CS.ISO8859-2 -sh_SP: sr_CS.ISO8859-2 +sh_YU: sr_RS.UTF-8@latin +sh_YU.utf8: sr_RS.UTF-8@latin si: si_LK.UTF-8 si_LK: si_LK.UTF-8 sk: sk_SK.ISO8859-2 @@ -609,44 +610,31 @@ sl_SI: sl_SI.ISO8859-2 sl_SI.iso88592: sl_SI.ISO8859-2 sl_SI.ISO-8859-2: sl_SI.ISO8859-2 -XCOMM sp is not an ISO 639 language code, but in Cyrillic, "R" looks like "P". -XCOMM YU was the old ISO code for Yugoslavia (now CS for Serbia&Montenegro). -XCOMM These lines should be deleted in the future. -sp: sr_CS.ISO8859-5 -sp_YU: sr_CS.ISO8859-5 sq: sq_AL.ISO8859-2 sq_AL: sq_AL.ISO8859-2 sq_AL.iso88592: sq_AL.ISO8859-2 -XCOMM SP is not an ISO 639 country code, but in Cyrillic, "R" looks like "P". -XCOMM YU was the old ISO code for Yugoslavia (now CS for Serbia&Montenegro). -XCOMM Some of these lines should be deleted in the future. -sr_SP: sr_CS.ISO8859-2 -sr: sr_CS.ISO8859-5 -sr_YU: sr_CS.ISO8859-5 -sr_YU.iso88592: sr_CS.ISO8859-2 -sr_YU.iso88595: sr_CS.ISO8859-5 -sr@cyrillic: sr_CS.ISO8859-5 -sr_YU@cyrillic: sr_CS.ISO8859-5 -sr_YU.iso88595@cyrillic: sr_CS.ISO8859-5 -sr_YU.ISO8859-5@cyrillic: sr_CS.ISO8859-5 -sr_YU.cp1251@cyrillic: sr_CS.CP1251 -sr_YU.CP1251@cyrillic: sr_CS.CP1251 -sr_YU.microsoftcp1251@cyrillic: sr_CS.CP1251 -sr_YU.microsoft-cp1251@cyrillic: sr_CS.CP1251 -sr_YU.MICROSOFT-CP1251@cyrillic: sr_CS.CP1251 -sr_YU.UTF-8@cyrillic: sr_CS.UTF-8 -sr_CS: sr_CS.ISO8859-5 -sr_CS.iso88592: sr_CS.ISO8859-2 -sr_CS.ISO-8859-2: sr_CS.ISO8859-2 -sr_CS.iso88595: sr_CS.ISO8859-5 -sr_CS.ISO-8859-5: sr_CS.ISO8859-5 -sr@Latn: sr_CS.ISO8859-2 -sr_CS@Latn: sr_CS.ISO8859-2 -sr_CS.iso88592@Latn: sr_CS.ISO8859-2 -sr_CS.ISO-8859-2@Latn: sr_CS.ISO8859-2 -sr_CS.ISO8859-2@Latn: sr_CS.ISO8859-2 -sr_CS.utf8: sr_CS.UTF-8 -sr_CS.UTF-8@Latn: sr_CS.UTF-8 +XCOMM YU was the old ISO code for Yugoslavia (later CS for Serbia&Montenegro). +XCOMM CS was the old ISO code for Serbia&Montenegro (now separate RS and ME). +XCOMM Some of these lines should be deleted in the future. +sr: sr_RS.UTF-8 +sr_YU: sr_RS.UTF-8@latin +sr@cyrillic: sr_RS.UTF-8 +sr_YU@cyrillic: sr_RS.UTF-8 +sr_YU.utf8: sr_RS.UTF-8 +sr_YU.UTF-8@cyrillic: sr_RS.UTF-8 +sr_CS: sr_RS.UTF-8 +sr@Latn: sr_RS.UTF-8@latin +sr_CS@Latn: sr_RS.UTF-8@latin +sr_CS.utf8: sr_RS.UTF-8 +sr_CS.UTF-8@Latn: sr_RS.UTF-8@latin +sr_RS: sr_RS.UTF-8 +sr@latin: sr_RS.UTF-8@latin +sr_RS@latin: sr_RS.UTF-8@latin +sr_RS@Latn: sr_RS.UTF-8@latin +sr_RS.UTF-8@Latn: sr_RS.UTF-8@latin +sr_RS.utf8: sr_RS.UTF-8 +sr_ME: sr_ME.UTF-8 +sr_ME.utf8: sr_ME.UTF-8 ss: ss_ZA.ISO8859-1 ss_ZA: ss_ZA.ISO8859-1 ss_ZA.iso88591: ss_ZA.ISO8859-1 @@ -827,7 +815,7 @@ romanian: ro_RO.ISO8859-2 rumanian: ro_RO.ISO8859-2 russian: ru_RU.ISO8859-5 -serbocroatian: sr_CS.ISO8859-2 +serbocroatian: sr_RS.UTF-8@latin slovak: sk_SK.ISO8859-2 slovene: sl_SI.ISO8859-2 slovenian: sl_SI.ISO8859-2 @@ -934,7 +922,7 @@ Slovak_Slovakia.1250: sk_SK.iso8859-2 Slovene_Slovenia.1250: sl_SI.iso8859-2 Albanian_Albania.1250: sq_AL.iso8859-2 -Serbian (Latin)_Serbia.1250: sr_CS.iso8859-2 +Serbian (Latin)_Serbia.1250: sr_RS.UTF-8@latin Swedish_Finland.1252: sv_FI.iso8859-1 Swedish_Sweden.1252: sv_SE.iso8859-1 Turkish_Turkey.1254: tr_TR.iso8859-9 Index: xc/nls/locale.dir diff -u xc/nls/locale.dir:1.50 xc/nls/locale.dir:1.51 --- xc/nls/locale.dir:1.50 Mon Jan 30 20:56:08 2006 +++ xc/nls/locale.dir Thu Jul 5 10:52:06 2007 @@ -3,7 +3,7 @@ XCOMM The first word is the locale database file name and XCOMM the second word is the full locale name. XCOMM -XCOMM $XFree86: xc/nls/locale.dir,v 1.50 2006/01/31 01:56:08 dawes Exp $ +XCOMM $XFree86: xc/nls/locale.dir,v 1.51 2007/07/05 14:52:06 tsi Exp $ XCOMM C/XLC_LOCALE: C @@ -192,11 +192,9 @@ iso8859-2/XLC_LOCALE: sh_YU.ISO8859-2 iso8859-2/XLC_LOCALE: sk_SK.ISO8859-2 iso8859-2/XLC_LOCALE: sl_SI.ISO8859-2 -iso8859-5/XLC_LOCALE: sp_YU.ISO8859-5 iso8859-2/XLC_LOCALE: sq_AL.ISO8859-2 iso8859-2/XLC_LOCALE: sr_CS.ISO8859-2 iso8859-5/XLC_LOCALE: sr_CS.ISO8859-5 -iso8859-2/XLC_LOCALE: sr_SP.ISO8859-2 iso8859-2/XLC_LOCALE: sr_YU.ISO8859-2 iso8859-5/XLC_LOCALE: sr_YU.ISO8859-5 microsoft-cp1251/XLC_LOCALE: sr_YU.CP1251 @@ -368,6 +366,8 @@ en_US.UTF-8/XLC_LOCALE: sl_SI.UTF-8 en_US.UTF-8/XLC_LOCALE: sq_AL.UTF-8 en_US.UTF-8/XLC_LOCALE: sr_CS.UTF-8 +en_US.UTF-8/XLC_LOCALE: sr_ME.UTF-8 +en_US.UTF-8/XLC_LOCALE: sr_RS.UTF-8 en_US.UTF-8/XLC_LOCALE: sr_YU.UTF-8 en_US.UTF-8/XLC_LOCALE: ss_ZA.UTF-8 en_US.UTF-8/XLC_LOCALE: st_ZA.UTF-8 Index: xc/programs/Imakefile diff -u xc/programs/Imakefile:3.60 xc/programs/Imakefile:3.61 --- xc/programs/Imakefile:3.60 Sat Apr 8 14:33:00 2006 +++ xc/programs/Imakefile Tue Apr 3 10:09:56 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Imakefile,v 3.60 2006/04/08 18:33:00 dawes Exp $ +XCOMM $XFree86: xc/programs/Imakefile,v 3.61 2007/04/03 14:09:56 tsi Exp $ #if BuildServer || BuildClients #define IHaveSubdirs @@ -104,6 +104,10 @@ XCURSORGENDIR = xcursorgen #endif +#if BuildXResLibrary + RESTESTDIR = restest +#endif + #if BuildFontconfigLibrary FCDIRS = fc-cache fc-list #endif @@ -132,7 +136,7 @@ xrefresh $(XRXSRCDIR) xset \ xsetroot $(XSMSRCDIR) xstdcmap $(XINPUTCLIENTDIRS) \ $(XTERMSRCDIR) $(XTRAPCLIENTDIRS) $(XVIDTUNESRCDIR) xwd xwininfo xwud \ - $(XPMCLIENTDIRS) $(XVINFOSRCDIR) \ + $(XPMCLIENTDIRS) $(XVINFOSRCDIR) $(RESTESTDIR) \ $(XSSRCDIR) $(LBXPROXYSRCDIR) $(SCRIPTSDIR) \ $(GLXCLIENTDIRS) $(XRANDRDIR) $(XCURSORGENDIR) #endif Index: xc/programs/Xserver/Imakefile diff -u xc/programs/Xserver/Imakefile:3.324 xc/programs/Xserver/Imakefile:3.331 --- xc/programs/Xserver/Imakefile:3.324 Wed Mar 1 22:00:34 2006 +++ xc/programs/Xserver/Imakefile Fri May 11 20:30:18 2007 @@ -1,10 +1,10 @@ /* * Server Master Makefile */ -XCOMM $XFree86: xc/programs/Xserver/Imakefile,v 3.324 2006/03/02 03:00:34 dawes Exp $ +XCOMM $XFree86: xc/programs/Xserver/Imakefile,v 3.331 2007/05/12 00:30:18 tsi Exp $ /* - * Copyright (c) 1994-2006 by The XFree86 Project, Inc. + * Copyright (c) 1994-2007 by The XFree86 Project, Inc. * All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining @@ -82,16 +82,6 @@ OS = os/LibraryTargetName(os) MI = mi/LibraryTargetName(mi) DIX = dix/LibraryTargetName(dix) -#if DoLoadableServer - MFB = mfb/ModuleLibraryTargetName(mfb) - FB = fb/ModuleLibraryTargetName(fb) - CFB8 = cfb/ModuleLibraryTargetName(cfb) - CFB16 = cfb16/ModuleLibraryTargetName(cfb16) - CFB24 = cfb24/ModuleLibraryTargetName(cfb24) - CFB32 = cfb32/ModuleLibraryTargetName(cfb32) - SHADOW = miext/shadow/ModuleLibraryTargetName(shadow) - LAYER = miext/layer/ModuleLibraryTargetName(layer) -#else MFB = mfb/LibraryTargetName(mfb) FB = fb/LibraryTargetName(fb) CFB8 = cfb/LibraryTargetName(cfb) @@ -100,33 +90,35 @@ CFB32 = cfb32/LibraryTargetName(cfb32) SHADOW = miext/shadow/LibraryTargetName(shadow) LAYER = miext/layer/LibraryTargetName(layer) -#endif #if BuildLowMem LMFCFB = lmfcfb/LibraryTargetName(cfb) #endif #if BuildGlxExt #if BuildXF86DRI - DRILIB = GL/dri/ModuleLibraryTargetName(dri) + DRILIB = GL/dri/LibraryTargetName(dri) #else DRILIB = #endif #if GlxUseSGISI - GLXLIB = GL/glx/ModuleLibraryTargetName(glx) \ - GL/sgi-si/ModuleLibraryTargetName(GLcore) \ + GLXLIB = GL/glx/LibraryTargetName(glx) \ + GL/sgi-si/LibraryTargetName(GLcore) \ $(DRILIB) #else #if DoLoadableServer - GLXLIB = GL/glx/ModuleLibraryTargetName(glx) \ - GL/mesa/GLcore/ModuleLibraryTargetName(GLcore) + GLXLIB = GL/glx/LibraryTargetName(glx) \ + GL/mesa/GLcore/LibraryTargetName(GLcore) #else - GLXLIB = GL/glx/ModuleLibraryTargetName(glx) \ - GL/mesa/GLcore/ModuleLibraryTargetName(GLcore) \ + GLXLIB = GL/glx/LibraryTargetName(glx) \ + GL/mesa/GLcore/LibraryTargetName(GLcore) \ $(DRILIB) #endif #endif GLXDIR = GL GLXEXT = $(GLXLIB) +#if defined(DarwinArchitecture) && BuildAppleDRI + GLOBJS = GL/mesa/main/dispatch.o +#endif #endif #if BuildXInputExt @@ -174,7 +166,8 @@ SITEEXTDIRS = SiteExtensionDirs #endif -#if DoLoadableServer && HasDlopen +/* Don't link with -ldl twice */ +#if DoLoadableServer && HasDlopen && !UsePam LIBDL = DlLibrary #endif LIBREGEX = RegexLibrary @@ -254,13 +247,11 @@ #ifdef ServerExtraSysLibs EXTRASYSLIBS = ServerExtraSysLibs #endif -#if HasPam && HasPamMisc - PAMLIBS = PamLibraries PamMiscLibraries -#endif SYSLIBS = $(ZLIB) MathLibrary Krb5Libraries $(USB) \ - $(PAMLIBS) $(XAUTHLIB) $(XDMCPLIB) $(EXTRASYSLIBS) + $(XAUTHLIB) $(XDMCPLIB) $(SERVERPAMLIBRARIES) \ + $(EXTRASYSLIBS) NOAUTH_SYSLIBS = $(ZLIB) MathLibrary Krb5Libraries $(USB) \ - $(PAMLIBS) $(XDMCPLIB) $(EXTRASYSLIBS) + $(XDMCPLIB) $(SERVERPAMLIBRARIES) $(EXTRASYSLIBS) #if !HasCbrt CBRT = mi/LibraryTargetName(cbrt) #endif @@ -368,7 +359,7 @@ XF86LOADERLIB = $(XF86SRC)/loader/LibraryTargetName(loader) XF86MAINLIBS = $(DIX) $(OS) $(FONTBASE) $(XF86COMLIB) $(XPDDX) $(MI) \ $(XF86EXTENSIONS) - XF86SERVERSYSLIBS = $(XPFBLIBS) $(SYSLIBS) $(LIBDL) $(LIBREGEX) + XF86SERVERSYSLIBS = $(XPFBLIBS) $(LIBREGEX) $(SYSLIBS) $(LIBDL) XF86SERVERLIBS = $(XF86LIBS) $(XF86LOADERLIB) $(XF86MAINLIBS) $(XF86OSLIB) #else XF86EXTENSIONS = $(STATICEXTS) $(LOADABLEEXTS) @@ -443,7 +434,7 @@ XF86MAINLIBS = $(SHADOW) $(DIX) $(OS) $(XPDDX) $(FB) \ $(CFB32) $(CFB16) $(CFB8) $(MFB) $(MI) \ $(XF86EXTENSIONS) $(XF86COMLIB) - XF86SERVERSYSLIBS = $(FONTLIBS) $(SYSLIBS) $(LIBDL) $(LIBREGEX) + XF86SERVERSYSLIBS = $(FONTLIBS) $(LIBREGEX) $(SYSLIBS) $(LIBDL) XF86SERVERLIBS = $(XF86DRVLIBS) $(XF86IDRVLIBS) $(XF86LIBS) \ $(XF86MAINLIBS) $(XF86SCANLIB) #endif @@ -799,6 +790,7 @@ TINYX = $(TINYXDIR)/LibraryTargetName(tinyx) TINYXFBDEV = $(TINYXDIR)/fbdev/LibraryTargetName(fbdev) + TINYXDIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(DEPDIRS) #if defined(XfbdevServer) && XfbdevServer XCOMM @@ -808,10 +800,8 @@ FBDEVDIR = $(TINYXDIR)/fbdev FBDEV = $(FBDEVDIR)/LibraryTargetName(fbdev) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - FBDEVDIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(FBDEVDIR) $(SHADOWDIR) $(LAYERDIR) + FBDEVDIRS = $(TINYXDIRS) $(FBSUBDIR) $(SHADOWDIR) $(LAYERDIR) FBDEVLIBS = $(TINY_DIX) $(TINY_OS) $(FBDEV) $(LAYER) $(TINYX) \ $(TINYXOS) $(SHADOW) $(FB) $(MI) $(TINY_EXTENSIONS) @@ -842,10 +832,7 @@ SAVAGEDIR = $(TINYXDIR)/savage SAVAGE = $(SAVAGEDIR)/LibraryTargetName(savage) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - - SAVAGEDIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(SAVAGEDIR) + SAVAGEDIRS = $(TINYXDIRS) $(FBSUBDIR) SAVAGEOBJS = $(TINYXDIR)/miinitext.o $(TINYXDIR)/register.o \ $(TINYXDIR)/ffcheck.o @@ -876,10 +863,7 @@ IGSDIR = $(TINYXDIR)/igs IGS = $(IGSDIR)/LibraryTargetName(igs) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - - IGSDIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(IGSDIR) + IGSDIRS = $(TINYXDIRS) $(FBSUBDIR) IGSOBJS = $(TINYXDIR)/miinitext.o $(TINYXDIR)/register.o \ $(TINYXDIR)/ffcheck.o @@ -916,11 +900,7 @@ TRIDENTDIR = $(TINYXDIR)/trident TRIDENT = $(TRIDENTDIR)/LibraryTargetName(trident) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - - TRIDENTDIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(FBDEVDIR) $(VESADIR) $(SHADOWDIR) \ - $(LAYERDIR) $(TRIDENTDIR) + TRIDENTDIRS = $(TINYXDIRS) $(FBSUBDIR) $(SHADOWDIR) $(LAYERDIR) TRIDENTOBJS = $(TINYXDIR)/miinitext.o $(TINYXDIR)/register.o \ $(TINYXDIR)/ffcheck.o @@ -955,11 +935,7 @@ CHIPSDIR = $(TINYXDIR)/chips CHIPS = $(CHIPSDIR)/LibraryTargetName(chips) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - - CHIPSDIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(FBDEVDIR) $(VESADIR) $(SHADOWDIR) \ - $(LAYERDIR) $(CHIPSDIR) + CHIPSDIRS = $(TINYXDIRS) $(FBSUBDIR) $(SHADOWDIR) $(LAYERDIR) CHIPSOBJS = $(TINYXDIR)/miinitext.o $(TINYXDIR)/register.o \ $(TINYXDIR)/ffcheck.o @@ -994,11 +970,7 @@ MACH64DIR = $(TINYXDIR)/mach64 MACH64 = $(MACH64DIR)/LibraryTargetName(mach64) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - - MACH64DIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(VESADIR) $(SHADOWDIR) $(LAYERDIR) \ - $(MACH64DIR) + MACH64DIRS = $(TINYXDIRS) $(FBSUBDIR) $(SHADOWDIR) $(LAYERDIR) MACH64OBJS = $(TINYXDIR)/miinitext.o $(TINYXDIR)/register.o \ $(TINYXDIR)/ffcheck.o @@ -1027,19 +999,10 @@ XCOMM server with Intel i810 driver XCOMM - FBDEVDIR = $(TINYXDIR)/fbdev - FBDEV = $(FBDEVDIR)/LibraryTargetName(fbdev) - - VESADIR = $(TINYXDIR)/vesa - VESA = $(VESADIR)/LibraryTargetName(vesa) - I810DIR = $(TINYXDIR)/i810 I810 = $(I810DIR)/LibraryTargetName(i810) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - - I810DIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(SHADOWDIR) $(I810DIR) + I810DIRS = $(TINYXDIRS) $(FBSUBDIR) $(SHADOWDIR) I810OBJS = $(TINYXDIR)/miinitext.o $(TINYXDIR)/register.o \ $(TINYXDIR)/ffcheck.o @@ -1070,10 +1033,7 @@ SIS530DIR = $(TINYXDIR)/sis530 SIS530 = $(SIS530DIR)/LibraryTargetName(sis530) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - - SIS530DIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(SIS530DIR) + SIS530DIRS = $(TINYXDIRS) $(FBSUBDIR) SIS530OBJS = $(TINYXDIR)/miinitext.o $(TINYXDIR)/register.o \ $(TINYXDIR)/ffcheck.o @@ -1104,10 +1064,7 @@ TRIODIR = $(TINYXDIR)/trio TRIO = $(TRIODIR)/LibraryTargetName(trio) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - - TRIODIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(TRIODIR) + TRIODIRS = $(TINYXDIRS) $(FBSUBDIR) TRIOOBJS = $(TINYXDIR)/miinitext.o $(TINYXDIR)/register.o \ $(TINYXDIR)/ffcheck.o @@ -1144,11 +1101,7 @@ IPAQDIR = $(TINYXDIR)/ipaq IPAQ = $(IPAQDIR)/LibraryTargetName(ipaq) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - - IPAQDIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(FBDEVDIR) $(LAYERDIR) $(SHADOWDIR) \ - $(PCMCIADIR) $(IPAQDIR) + IPAQDIRS = $(TINYXDIRS) $(FBSUBDIR) $(LAYERDIR) $(SHADOWDIR) IPAQOBJS = $(TINYXDIR)/miinitext.o $(TINYXDIR)/register.o \ $(TINYXDIR)/ffcheck.o @@ -1186,10 +1139,7 @@ TS300DIR = $(TINYXDIR)/ts300 TS300 = $(TS300DIR)/LibraryTargetName(ts300) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - - TS300DIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(TRIODIR) $(SIS530DIR) $(TS300DIR) + TS300DIRS = $(TINYXDIRS) $(FBSUBDIR) TS300OBJS = $(TINYXDIR)/miinitext.o $(TINYXDIR)/register.o \ $(TINYXDIR)/ffcheck.o @@ -1221,10 +1171,7 @@ ITSYDIR = $(TINYXDIR)/itsy ITSY = $(ITSYDIR)/LibraryTargetName(itsy) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - - ITSYDIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(ITSYDIR) + ITSYDIRS = $(TINYXDIRS) $(FBSUBDIR) ITSYOBJS = $(TINYXDIR)/miinitext.o $(TINYXDIR)/register.o \ $(TINYXDIR)/ffcheck.o @@ -1255,10 +1202,7 @@ VESADIR = $(TINYXDIR)/vesa VESA = $(VESADIR)/LibraryTargetName(vesa) - TINYXDIRS = $(TINYXOSDIR) $(DEPDIRS) - - VESADIRS = $(STDDIRS) $(HWSUBDIR) $(TINY_EXTDIRS) $(TINYXDIRS) \ - $(FBSUBDIR) $(VESADIR) $(SHADOWDIR) $(LAYERDIR) + VESADIRS = $(TINYXDIRS) $(FBSUBDIR) $(SHADOWDIR) $(LAYERDIR) VESAOBJS = $(TINYXDIR)/miinitext.o $(TINYXDIR)/register.o \ $(TINYXDIR)/ffcheck.o @@ -1280,10 +1224,6 @@ $(VESASYSLIBS)) #endif /* XvesaServer */ - TINYXSUBDIRS = $(TINYXDIRS) $(FBDEVDIR) $(SAVAGEDIR) $(TRIDENTDIR) \ - $(I810DIR) $(SIS530DIR) $(TRIODIR) $(TS300DIR) \ - $(ITSYDIR) $(IGSDIR) $(VESADIR) $(PCMCIADIR) $(IPAQDIR) \ - $(MACH64DIR) $(CHIPSDIR) #endif /* TinyXServer */ @@ -1377,7 +1317,8 @@ XNESTEXTENSIONS = $(XNESTLOADABLEEXTS) $(XNESTSTATICEXTS) XNESTEXTDIRS = $(GLXDIR) $(LBXDIRS) $(SITEEXTDIRS) XNESTDIRS = $(STDDIRS) $(HWSUBDIR) $(XNESTEXTDIRS) $(DEPDIRS) - XNESTOBJS = $(XNESTDDXDIR)/dix/main.o $(XNESTDDXDIR)/miinitext.o + XNESTOBJS = $(XNESTDDXDIR)/dix/main.o $(XNESTDDXDIR)/miinitext.o \ + $(GLOBJS) XNEST = $(XNESTDDXDIR)/LibraryTargetName(xnest) XNESTLIBS = $(XNESTDDXDIR)/$(DIX) $(XNESTDDXDIR)/$(OS) $(XNEST) \ $(MI) $(XNESTEXTENSIONS) @@ -1433,7 +1374,8 @@ XVFBEXTDIRS = $(GLXDIR) $(LBXDIRS) $(SITEEXTDIRS) XVFBDIRS = $(STDDIRS) $(HWSUBDIR) $(XVFBEXTDIRS) \ $(MFBSUBDIR) $(FBSUBDIR) $(DEPDIRS) - XVFBOBJS = $(XVFBDDXDIR)/dix/main.o $(XVFBDDXDIR)/miinitext.o + XVFBOBJS = $(XVFBDDXDIR)/dix/main.o $(XVFBDDXDIR)/miinitext.o \ + $(GLOBJS) XVFB = $(XVFBDDXDIR)/LibraryTargetName(vfb) XVFBLIBS = $(XVFBDDXDIR)/$(DIX) $(XVFBDDXDIR)/$(OS) $(XVFB) $(FB) \ $(MFB) $(MI) $(XVFBEXTENSIONS) @@ -1598,7 +1540,7 @@ */ SetUIDServerTarget(XDarwin, \ $(DARWINDIRS), \ - $(DARWINOBJS), \ + $(DARWINOBJS) $(GLOBJS), \ $(DARWINLIBS) $(IOKITLIB) $(DARWINEXTLIBS), \ $(DARWINSYSLIBS)) @@ -1613,12 +1555,6 @@ $(ROOTLESSDIR)/accel/LibraryTargetName(rlAccel) XPLUGINLIB = XpluginLibrary -#if NothingOutsideProjectRoot - XDARWINAPPDIR = $(BINDIR)/XDarwin.app/Contents -#else - XDARWINAPPDIR = /Applications/XDarwin.app/Contents -#endif - /* * Quartz X server (installed in its application bundle) */ @@ -1633,7 +1569,7 @@ $(MV) $(DESTDIR)$(BINDIR)/XDarwinApp \ $(DESTDIR)$(XDARWINAPPDIR)/MacOS/XDarwin -(cd $(DESTDIR)$(BINDIR); $(RM) XDarwinQuartz; \ - $(LN) $(XDARWINAPPDIR)/MacOS/XDarwin XDarwinQuartz) + $(LN) $(DESTDIR)$(XDARWINAPPDIR)/MacOS/XDarwin XDarwinQuartz) /* * Display mode bundles for Quartz @@ -1648,8 +1584,7 @@ $(XPRDIRS), \ $(QUARTZDIR)/xpr/xprScreen.o, \ $(XPRLIBS), \ - -framework ApplicationServices $(XPLUGINLIB), \ - $(XDARWINAPPDIR)/Resources) + -framework ApplicationServices $(XPLUGINLIB)) #endif CRDIRS = $(QUARTZDIR)/cr $(ROOTLESSDIR) $(ROOTLESSDIR)/safeAlpha @@ -1662,8 +1597,7 @@ $(CRLIBS), \ -framework ApplicationServices \ -framework Cocoa \ - -framework Carbon -ObjC, \ - $(XDARWINAPPDIR)/Resources) + -framework Carbon -ObjC); FSDIRS = $(QUARTZDIR)/fullscreen $(SHADOWDIR) FSLIBS = $(QUARTZDIR)/fullscreen/LibraryTargetName(fullscreen) \ @@ -1674,8 +1608,7 @@ $(FSDIRS), \ $(QUARTZDIR)/fullscreen/fullscreen.o, \ $(FSLIBS), \ - -framework ApplicationServices, \ - $(XDARWINAPPDIR)/Resources) + -framework ApplicationServices) /* * GLX bundles for Quartz @@ -1686,8 +1619,7 @@ GL, \ GL/glx/glxext.o, \ GL/glx/libglx.a GL/apple/libAGLcore.a, \ - -framework AGL -framework OpenGL, \ - $(XDARWINAPPDIR)/Resources) + -framework AGL -framework OpenGL) #if BuildAppleDRI BundleProgramTarget(glxCGL, \ @@ -1695,17 +1627,15 @@ GL, \ GL/glx/glxext.o, \ GL/glx/libglx.a GL/apple/libCGLcore.a, \ - -framework OpenGL $(XPLUGINLIB), \ - $(XDARWINAPPDIR)/Resources) + -framework OpenGL $(XPLUGINLIB)) #endif BundleProgramTarget(glxMesa, \ XDarwinApp, \ GL, \ GL/glx/glxext.o, \ - GL/glx/libglx.a GL/mesa/GLcore/libGLcore.a, \ - NullParameter, \ - $(XDARWINAPPDIR)/Resources) + GL/glx/libglx.a GL/mesa/GLcore/libGLcore.a $(GLOBJS), \ + NullParameter) #else /* !DarwinQuartzSupport */ @@ -1741,7 +1671,7 @@ SUBDIRS = $(STDDIRS) $(DIXSUBDIR) $(OSSUBDIR) $(HWSUBDIR) \ $(EXTDIRS) $(LMFCFBSUBDIR) $(MFBSUBDIR) $(CFBSUBDIRS) \ $(IPLANDIRS) $(ILBMDIR) $(AFBSUBDIR) \ - $(LMFCFBDIR) $(FBSUBDIR) $(TINYXSUBDIRS) \ + $(LMFCFBDIR) $(FBSUBDIR) \ $(MIEXTDIRS) $(XWINPARSERDIR) #if defined(ServerToInstall) && !defined(OS2Architecture) Index: xc/programs/Xserver/GL/dri/drimodule.c diff -u xc/programs/Xserver/GL/dri/drimodule.c:1.8 xc/programs/Xserver/GL/dri/drimodule.c:1.9 --- xc/programs/Xserver/GL/dri/drimodule.c:1.8 Thu Mar 16 11:49:48 2006 +++ xc/programs/Xserver/GL/dri/drimodule.c Mon Apr 2 20:21:07 2007 @@ -24,7 +24,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ -/* $XFree86: xc/programs/Xserver/GL/dri/drimodule.c,v 1.8 2006/03/16 16:49:48 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/GL/dri/drimodule.c,v 1.9 2007/04/03 00:21:07 tsi Exp $ */ /* * Authors: @@ -103,7 +103,6 @@ if (errmaj) *errmaj = LDR_NOSUBENT; } else { LoaderModReqSymLists(drm, drmSymbols, NULL); - LoaderModRefSymbols(module, "noPanoramiXExtension", NULL); LoadExtension(&XF86DRIExt, FALSE); } /* Need a non-NULL return value to indicate success. */ Index: xc/programs/Xserver/GL/dri/xf86dri.c diff -u xc/programs/Xserver/GL/dri/xf86dri.c:1.15 xc/programs/Xserver/GL/dri/xf86dri.c:1.16 --- xc/programs/Xserver/GL/dri/xf86dri.c:1.15 Fri Oct 14 11:16:09 2005 +++ xc/programs/Xserver/GL/dri/xf86dri.c Wed Jan 3 21:48:10 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/GL/dri/xf86dri.c,v 1.15 2005/10/14 15:16:09 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/GL/dri/xf86dri.c,v 1.16 2007/01/04 02:48:10 tsi Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -86,10 +86,8 @@ static unsigned char DRIReqCode = 0; -extern void XFree86DRIExtensionInit(void); - void -XFree86DRIExtensionInit(void) +XFree86DRIExtensionInit(INITARGS) { ExtensionEntry* extEntry; Index: xc/programs/Xserver/GL/glx/glxcmds.c diff -u xc/programs/Xserver/GL/glx/glxcmds.c:1.14 xc/programs/Xserver/GL/glx/glxcmds.c:1.15 --- xc/programs/Xserver/GL/glx/glxcmds.c:1.14 Fri Dec 10 11:06:59 2004 +++ xc/programs/Xserver/GL/glx/glxcmds.c Mon Apr 9 11:37:13 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/GL/glx/glxcmds.c,v 1.14 2004/12/10 16:06:59 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/GL/glx/glxcmds.c,v 1.15 2007/04/09 15:37:13 tsi Exp $ */ /* ** License Applicability. Except to the extent portions of this file are ** made subject to an alternative license as permitted in the SGI Free @@ -494,8 +494,8 @@ GLXContextID contextId, GLXContextTag tag ) { ClientPtr client = cl->client; - DrawablePtr pDraw; - DrawablePtr pRead; + DrawablePtr pDraw = NULL; + DrawablePtr pRead = NULL; xGLXMakeCurrentReply reply; __GLXpixmap *drawPixmap = NULL; __GLXpixmap *readPixmap = NULL; Index: xc/programs/Xserver/GL/glx/glxext.c diff -u xc/programs/Xserver/GL/glx/glxext.c:1.11 xc/programs/Xserver/GL/glx/glxext.c:1.12 --- xc/programs/Xserver/GL/glx/glxext.c:1.11 Fri Dec 10 11:06:59 2004 +++ xc/programs/Xserver/GL/glx/glxext.c Wed Jan 3 21:48:10 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/GL/glx/glxext.c,v 1.11 2004/12/10 16:06:59 alanh Exp $ +/* $XFree86: xc/programs/Xserver/GL/glx/glxext.c,v 1.12 2007/01/04 02:48:10 tsi Exp $ ** The contents of this file are subject to the GLX Public License Version 1.0 ** (the "License"). You may not use this file except in compliance with the ** License. You may obtain a copy of the License at Silicon Graphics, Inc., @@ -216,7 +216,7 @@ /* ** Initialize the GLX extension. */ -void GlxExtensionInit(void) +void GlxExtensionInit(INITARGS) { ExtensionEntry *extEntry; int i; Index: xc/programs/Xserver/GL/glx/glxext.h diff -u xc/programs/Xserver/GL/glx/glxext.h:1.9 xc/programs/Xserver/GL/glx/glxext.h:1.10 --- xc/programs/Xserver/GL/glx/glxext.h:1.9 Fri Dec 10 11:06:59 2004 +++ xc/programs/Xserver/GL/glx/glxext.h Wed Jan 3 21:48:10 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/GL/glx/glxext.h,v 1.9 2004/12/10 16:06:59 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/GL/glx/glxext.h,v 1.10 2007/01/04 02:48:10 tsi Exp $ */ #ifndef _glxext_h_ #define _glxext_h_ @@ -84,7 +84,7 @@ extern int DoCreateGLXPixmap(__GLXclientState *cl, VisualID visual, GLuint screenNum, XID pixmapId, XID glxpixmapId); -extern void GlxExtensionInit(void); +extern void GlxExtensionInit(INITARGS); extern Bool __glXCoreType(void); Index: xc/programs/Xserver/GL/mesa/GLcore/Imakefile diff -u xc/programs/Xserver/GL/mesa/GLcore/Imakefile:1.9 xc/programs/Xserver/GL/mesa/GLcore/Imakefile:1.10 --- xc/programs/Xserver/GL/mesa/GLcore/Imakefile:1.9 Fri Oct 14 11:16:09 2005 +++ xc/programs/Xserver/GL/mesa/GLcore/Imakefile Sun Jul 1 11:14:49 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/GL/mesa/GLcore/Imakefile,v 1.9 2005/10/14 15:16:09 tsi Exp $ +XCOMM $XFree86: xc/programs/Xserver/GL/mesa/GLcore/Imakefile,v 1.10 2007/07/01 15:14:49 tsi Exp $ /* * Copyright (c) 2000-2004 by The XFree86 Project, Inc. * All rights reserved. @@ -101,14 +101,13 @@ DepLibraryModuleTarget(GLcore, $(DONES) $(OBJS),$(OBJS) $(XOBJS),extensions) InstallLibraryModule(GLcore,$(MODULEDIR),extensions) +InstallDriverSDKLibraryModule(GLcore,$(DRIVERSDKMODULEDIR),extensions) #else NormalDepLibraryTarget(GLcore, $(DONES) $(OBJS), $(OBJS) $(XOBJS)) NormalLibraryObjectRule() #endif -InstallDriverSDKLibraryModule(GLcore,$(DRIVERSDKMODULEDIR),extensions) - #ifdef IHaveSubdirs MakeSubdirs($(SUBDIRS)) DependSubdirs($(SUBDIRS)) Index: xc/programs/Xserver/Xext/dmx.c diff -u xc/programs/Xserver/Xext/dmx.c:1.6 xc/programs/Xserver/Xext/dmx.c:1.7 --- xc/programs/Xserver/Xext/dmx.c:1.6 Fri Oct 14 11:16:11 2005 +++ xc/programs/Xserver/Xext/dmx.c Wed Jan 3 21:48:11 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xext/dmx.c,v 1.6 2005/10/14 15:16:11 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/dmx.c,v 1.7 2007/01/04 02:48:11 tsi Exp $ */ /* * Copyright 2002-2004 Red Hat Inc., Durham, North Carolina. * @@ -64,8 +64,6 @@ extern int PanoramiXNumScreens; #endif -extern void DMXExtensionInit(void); - static DISPATCH_PROC(ProcDMXDispatch); static DISPATCH_PROC(ProcDMXQueryVersion); static DISPATCH_PROC(ProcDMXSync); @@ -117,7 +115,7 @@ /** Initialize the extension. */ void -DMXExtensionInit(void) +DMXExtensionInit(INITARGS) { AddExtension(DMX_EXTENSION_NAME, 0, 0, ProcDMXDispatch, SProcDMXDispatch, Index: xc/programs/Xserver/Xext/panoramiX.c diff -u xc/programs/Xserver/Xext/panoramiX.c:3.46 xc/programs/Xserver/Xext/panoramiX.c:3.47 --- xc/programs/Xserver/Xext/panoramiX.c:3.46 Sun Feb 19 10:51:16 2006 +++ xc/programs/Xserver/Xext/panoramiX.c Wed Jan 3 21:48:11 2007 @@ -68,7 +68,7 @@ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $XFree86: xc/programs/Xserver/Xext/panoramiX.c,v 3.46 2006/02/19 15:51:16 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/panoramiX.c,v 3.47 2007/01/04 02:48:11 tsi Exp $ */ #define NEED_REPLIES #include <stdio.h> @@ -574,7 +574,7 @@ * Initialize global variables. */ -void PanoramiXExtensionInit(int argc, char *argv[]) +void PanoramiXExtensionInit(INITARGS) { int i; Bool success = FALSE; Index: xc/programs/Xserver/Xext/security.c diff -u xc/programs/Xserver/Xext/security.c:1.20 xc/programs/Xserver/Xext/security.c:1.21 --- xc/programs/Xserver/Xext/security.c:1.20 Fri Oct 14 11:16:11 2005 +++ xc/programs/Xserver/Xext/security.c Sat Sep 2 12:44:03 2006 @@ -69,7 +69,7 @@ * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $XFree86: xc/programs/Xserver/Xext/security.c,v 1.20 2005/10/14 15:16:11 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/security.c,v 1.21 2006/09/02 16:44:03 dawes Exp $ */ #include "dixstruct.h" #include "extnsionst.h" @@ -1333,7 +1333,7 @@ static PropertyAccessPtr PropertyAccessList = NULL; static char SecurityDefaultAction = SecurityErrorOperation; -static char *SecurityPolicyFile = DEFAULTPOLICYFILE; +static const char *SecurityPolicyFile = DEFAULTPOLICYFILE; static ATOM SecurityMaxPropertyName = 0; static char *SecurityKeywords[] = { @@ -1912,7 +1912,7 @@ int -XSecurityOptions(int argc, char **argv, int i) +XSecurityOptions(int argc, const char **argv, int i) { if (strcmp(argv[i], "-sp") == 0) { Index: xc/programs/Xserver/Xext/vidmodeproc.h diff -u xc/programs/Xserver/Xext/vidmodeproc.h:1.6 xc/programs/Xserver/Xext/vidmodeproc.h:1.7 --- xc/programs/Xserver/Xext/vidmodeproc.h:1.6 Fri Jun 25 11:44:42 2004 +++ xc/programs/Xserver/Xext/vidmodeproc.h Wed Jan 3 21:48:11 2007 @@ -1,10 +1,11 @@ -/* $XFree86: xc/programs/Xserver/Xext/vidmodeproc.h,v 1.6 2004/06/25 15:44:42 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/vidmodeproc.h,v 1.7 2007/01/04 02:48:11 tsi Exp $ */ /* Prototypes for VidMode functions that the DDX must provide */ #ifndef _VIDMODEPROC_H_ #define _VIDMODEPROC_H_ +#include "extnsionst.h" typedef enum { VIDMODE_H_DISPLAY, @@ -37,7 +38,7 @@ float f; } vidMonitorValue; -void XFree86VidModeExtensionInit(void); +void XFree86VidModeExtensionInit(INITARGS); Bool VidModeAvailable(int scrnIndex); Bool VidModeGetCurrentModeline(int scrnIndex, pointer *mode, int *dotClock); Index: xc/programs/Xserver/Xext/xcmisc.c diff -u xc/programs/Xserver/Xext/xcmisc.c:3.10 xc/programs/Xserver/Xext/xcmisc.c:3.11 --- xc/programs/Xserver/Xext/xcmisc.c:3.10 Fri Oct 14 11:16:11 2005 +++ xc/programs/Xserver/Xext/xcmisc.c Thu Apr 5 12:08:59 2007 @@ -25,7 +25,7 @@ from The Open Group. */ -/* $XFree86: xc/programs/Xserver/Xext/xcmisc.c,v 3.10 2005/10/14 15:16:11 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/xcmisc.c,v 3.11 2007/04/05 16:08:59 tsi Exp $ */ #define NEED_EVENTS #define NEED_REPLIES @@ -136,11 +136,13 @@ REQUEST_SIZE_MATCH(xXCMiscGetXIDListReq); - pids = (XID *)ALLOCATE_LOCAL(stuff->count * sizeof(XID)); + if (stuff->count > ((CARD32)(-1) / sizeof(XID) / 2)) + return BadAlloc; + + pids = (XID *)Xalloc(stuff->count * sizeof(XID)); if (!pids) - { return BadAlloc; - } + count = GetXIDList(client, stuff->count, pids); rep.type = X_Reply; rep.sequenceNumber = client->sequence; @@ -152,12 +154,11 @@ swapl(&rep.count, n); } WriteToClient(client, sizeof(xXCMiscGetXIDListReply), (char *)&rep); - if (count) - { + if (count) { client->pSwapReplyFunc = (ReplySwapPtr) Swap32Write; WriteSwappedDataToClient(client, count * sizeof(XID), pids); } - DEALLOCATE_LOCAL(pids); + Xfree(pids); return(client->noClientException); } Index: xc/programs/Xserver/Xext/xf86bigfont.c diff -u xc/programs/Xserver/Xext/xf86bigfont.c:1.21 xc/programs/Xserver/Xext/xf86bigfont.c:1.23 --- xc/programs/Xserver/Xext/xf86bigfont.c:1.21 Fri Oct 14 11:16:11 2005 +++ xc/programs/Xserver/Xext/xf86bigfont.c Mon Apr 9 11:37:13 2007 @@ -1,10 +1,10 @@ -/* $XFree86: xc/programs/Xserver/Xext/xf86bigfont.c,v 1.21 2005/10/14 15:16:11 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/xf86bigfont.c,v 1.23 2007/04/09 15:37:13 tsi Exp $ */ /* * BIGFONT extension for sharing font metrics between clients (if possible) * and for transmitting font metrics to clients in a compressed form. * * Copyright (c) 1999-2000 Bruno Haible - * Copyright (c) 1999-2000 The XFree86 Project, Inc. + * Copyright (c) 1999-2007 The XFree86 Project, Inc. */ /* THIS IS NOT AN X CONSORTIUM STANDARD */ @@ -143,7 +143,7 @@ #endif void -XFree86BigfontExtensionInit() +XFree86BigfontExtensionInit(INITARGS) { #if 0 ExtensionEntry* extEntry; @@ -409,7 +409,7 @@ int nCharInfos; int shmid; #ifdef HAS_SHM - ShmDescPtr pDesc; + ShmDescPtr pDesc = NULL; #else #define pDesc 0 #endif Index: xc/programs/Xserver/Xext/xf86misc.c diff -u xc/programs/Xserver/Xext/xf86misc.c:3.48 xc/programs/Xserver/Xext/xf86misc.c:3.49 --- xc/programs/Xserver/Xext/xf86misc.c:3.48 Fri Oct 14 11:16:12 2005 +++ xc/programs/Xserver/Xext/xf86misc.c Wed Jan 3 21:48:11 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xext/xf86misc.c,v 3.48 2005/10/14 15:16:12 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/xf86misc.c,v 3.49 2007/01/04 02:48:11 tsi Exp $ */ /* * Copyright (c) 1995, 1996 The XFree86 Project, Inc @@ -158,7 +158,7 @@ #define MISCERR(x) (miscErrorBase + x) void -XFree86MiscExtensionInit(void) +XFree86MiscExtensionInit(INITARGS) { ExtensionEntry* extEntry; Index: xc/programs/Xserver/Xext/xf86miscproc.h diff -u xc/programs/Xserver/Xext/xf86miscproc.h:1.6 xc/programs/Xserver/Xext/xf86miscproc.h:1.7 --- xc/programs/Xserver/Xext/xf86miscproc.h:1.6 Thu Apr 3 11:15:47 2003 +++ xc/programs/Xserver/Xext/xf86miscproc.h Wed Jan 3 21:48:11 2007 @@ -1,10 +1,12 @@ -/* $XFree86: xc/programs/Xserver/Xext/xf86miscproc.h,v 1.6 2003/04/03 16:15:47 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/xf86miscproc.h,v 1.7 2007/01/04 02:48:11 tsi Exp $ */ /* Prototypes for Pointer/Keyboard functions that the DDX must provide */ #ifndef _XF86MISCPROC_H_ #define _XF86MISCPROC_H_ +#include "extnsionst.h" + typedef enum { MISC_MSE_PROTO, MISC_MSE_BAUDRATE, @@ -44,7 +46,7 @@ #define MISC_MSEFLAG_CLEARRTS 2 #define MISC_MSEFLAG_REOPEN 128 -void XFree86MiscExtensionInit(void); +void XFree86MiscExtensionInit(INITARGS); Bool MiscExtGetMouseSettings(pointer *mouse, char **devname); int MiscExtGetMouseValue(pointer mouse, MiscExtMseValType valtype); Index: xc/programs/Xserver/Xext/xf86vmode.c diff -u xc/programs/Xserver/Xext/xf86vmode.c:3.61 xc/programs/Xserver/Xext/xf86vmode.c:3.62 --- xc/programs/Xserver/Xext/xf86vmode.c:3.61 Fri Oct 14 11:16:12 2005 +++ xc/programs/Xserver/Xext/xf86vmode.c Wed Jan 3 21:48:11 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xext/xf86vmode.c,v 3.61 2005/10/14 15:16:12 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/xf86vmode.c,v 3.62 2007/01/04 02:48:11 tsi Exp $ */ /* @@ -160,7 +160,7 @@ #endif void -XFree86VidModeExtensionInit(void) +XFree86VidModeExtensionInit(INITARGS) { ExtensionEntry* extEntry; ScreenPtr pScreen; Index: xc/programs/Xserver/Xext/xvdix.h diff -u xc/programs/Xserver/Xext/xvdix.h:1.9 xc/programs/Xserver/Xext/xvdix.h:1.10 --- xc/programs/Xserver/Xext/xvdix.h:1.9 Fri Oct 14 11:16:12 2005 +++ xc/programs/Xserver/Xext/xvdix.h Wed Jan 3 21:48:11 2007 @@ -21,7 +21,7 @@ SOFTWARE. ******************************************************************/ -/* $XFree86: xc/programs/Xserver/Xext/xvdix.h,v 1.9 2005/10/14 15:16:12 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/xvdix.h,v 1.10 2007/01/04 02:48:11 tsi Exp $ */ #ifndef XVDIX_H #define XVDIX_H @@ -54,6 +54,7 @@ */ #include "scrnintstr.h" +#include "extnsionst.h" #include <X11/extensions/Xvproto.h> extern int XvScreenIndex; @@ -241,7 +242,7 @@ extern int ProcXvDispatch(ClientPtr); extern int SProcXvDispatch(ClientPtr); -extern void XvExtensionInit(void); +extern void XvExtensionInit(INITARGS); extern int XvScreenInit(ScreenPtr); extern int XvGetScreenIndex(void); extern unsigned long XvGetRTPort(void); Index: xc/programs/Xserver/Xext/xvmain.c diff -u xc/programs/Xserver/Xext/xvmain.c:1.18 xc/programs/Xserver/Xext/xvmain.c:1.19 --- xc/programs/Xserver/Xext/xvmain.c:1.18 Fri Oct 14 11:16:12 2005 +++ xc/programs/Xserver/Xext/xvmain.c Wed Jan 3 21:48:11 2007 @@ -21,7 +21,7 @@ SOFTWARE. ******************************************************************/ -/* $XFree86: xc/programs/Xserver/Xext/xvmain.c,v 1.18 2005/10/14 15:16:12 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/xvmain.c,v 1.19 2007/01/04 02:48:11 tsi Exp $ */ /* ** File: @@ -152,7 +152,7 @@ */ void -XvExtensionInit() +XvExtensionInit(INITARGS) { ExtensionEntry *extEntry; Index: xc/programs/Xserver/Xext/xvmc.c diff -u xc/programs/Xserver/Xext/xvmc.c:1.11 xc/programs/Xserver/Xext/xvmc.c:1.12 --- xc/programs/Xserver/Xext/xvmc.c:1.11 Fri Oct 14 11:16:12 2005 +++ xc/programs/Xserver/Xext/xvmc.c Wed Jan 3 21:48:11 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xext/xvmc.c,v 1.11 2005/10/14 15:16:12 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/xvmc.c,v 1.12 2007/01/04 02:48:11 tsi Exp $ */ #define NEED_REPLIES #define NEED_EVENTS @@ -575,7 +575,7 @@ } void -XvMCExtensionInit() +XvMCExtensionInit(INITARGS) { ExtensionEntry *extEntry; Index: xc/programs/Xserver/Xext/xvmcext.h diff -u xc/programs/Xserver/Xext/xvmcext.h:1.3 xc/programs/Xserver/Xext/xvmcext.h:1.4 --- xc/programs/Xserver/Xext/xvmcext.h:1.3 Fri Oct 14 11:16:12 2005 +++ xc/programs/Xserver/Xext/xvmcext.h Wed Jan 3 21:48:11 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xext/xvmcext.h,v 1.3 2005/10/14 15:16:12 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/xvmcext.h,v 1.4 2007/01/04 02:48:11 tsi Exp $ */ #ifndef _XVMC_H #define _XVMC_H @@ -102,7 +102,7 @@ XvMCDestroySubpictureProcPtr DestroySubpicture; } XvMCAdaptorRec, *XvMCAdaptorPtr; -void XvMCExtensionInit(void); +void XvMCExtensionInit(INITARGS); int XvMCScreenInit(ScreenPtr pScreen, int num, XvMCAdaptorPtr adapt); Index: xc/programs/Xserver/Xext/extmod/modinit.h diff -u xc/programs/Xserver/Xext/extmod/modinit.h:1.5 xc/programs/Xserver/Xext/extmod/modinit.h:1.6 --- xc/programs/Xserver/Xext/extmod/modinit.h:1.5 Sun Feb 19 10:51:17 2006 +++ xc/programs/Xserver/Xext/extmod/modinit.h Wed Jan 3 21:48:11 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xext/extmod/modinit.h,v 1.5 2006/02/19 15:51:17 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xext/extmod/modinit.h,v 1.6 2007/01/04 02:48:11 tsi Exp $ */ #include "extnsionst.h" @@ -54,7 +54,7 @@ #endif #ifdef XF86VIDMODE -extern void XFree86VidModeExtensionInit(INITARGS); +extern void XFree86VidModeExtensionInit(INITARGS); #define _XF86VIDMODE_SERVER_ #include <X11/extensions/xf86vmstr.h> #endif @@ -134,7 +134,7 @@ #endif #if 1 -extern void PanoramiXExtensionInit(int argc, char *argv[]); +extern void PanoramiXExtensionInit(INITARGS); #endif #if 1 Index: xc/programs/Xserver/Xi/extinit.c diff -u xc/programs/Xserver/Xi/extinit.c:3.8 xc/programs/Xserver/Xi/extinit.c:3.9 --- xc/programs/Xserver/Xi/extinit.c:3.8 Fri Oct 14 11:16:14 2005 +++ xc/programs/Xserver/Xi/extinit.c Wed Jan 3 21:48:11 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xi/extinit.c,v 3.8 2005/10/14 15:16:14 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xi/extinit.c,v 3.9 2007/01/04 02:48:11 tsi Exp $ */ /************************************************************ Copyright 1989, 1998 The Open Group @@ -213,7 +213,7 @@ */ void -XInputExtensionInit() +XInputExtensionInit(INITARGS) { ExtensionEntry *extEntry; Index: xc/programs/Xserver/Xprint/DiPrint.h diff -u xc/programs/Xserver/Xprint/DiPrint.h:1.5 xc/programs/Xserver/Xprint/DiPrint.h:1.6 --- xc/programs/Xserver/Xprint/DiPrint.h:1.5 Mon Jan 9 09:59:42 2006 +++ xc/programs/Xserver/Xprint/DiPrint.h Sat Sep 2 12:44:03 2006 @@ -29,7 +29,7 @@ dealings in this Software without prior written authorization from said copyright holders. */ -/* $XFree86: xc/programs/Xserver/Xprint/DiPrint.h,v 1.5 2006/01/09 14:59:42 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/DiPrint.h,v 1.6 2006/09/02 16:44:03 dawes Exp $ */ /* * The XpDiListEntry struct is the type of each element of the array @@ -63,9 +63,9 @@ extern WindowPtr XpDiValidatePrinter(char *printerName, int printerNameLen); -extern int XprintOptions(int argc, char **argv, int i); +extern int XprintOptions(int argc, const char **argv, int i); -extern void PrinterInitOutput(ScreenInfo *pScreenInfo, int argc, char **argv); +extern void PrinterInitOutput(ScreenInfo *pScreenInfo, int argc, const char **argv); extern void _XpVoidNoop(void); Index: xc/programs/Xserver/Xprint/Imakefile diff -u xc/programs/Xserver/Xprint/Imakefile:1.24 xc/programs/Xserver/Xprint/Imakefile:1.25 --- xc/programs/Xserver/Xprint/Imakefile:1.24 Sun Feb 19 10:51:17 2006 +++ xc/programs/Xserver/Xprint/Imakefile Wed Jul 26 09:48:22 2006 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/Xprint/Imakefile,v 1.24 2006/02/19 15:51:17 tsi Exp $ +XCOMM $XFree86: xc/programs/Xserver/Xprint/Imakefile,v 1.25 2006/07/26 13:48:22 tsi Exp $ #include <Server.tmpl> @@ -118,7 +118,7 @@ /* Go ahead: Call me paranoid ... */ Makefiles:: - RemoveFiles(Quark.c Xlcint.h Xresource.h Xrm.c XrmI.h) + @RemoveFiles(Quark.c Xlcint.h Xresource.h Xrm.c XrmI.h) LinkSourceFile(Quarks.c,$(XLIBSRC)) Index: xc/programs/Xserver/Xprint/Init.c diff -u xc/programs/Xserver/Xprint/Init.c:1.17 xc/programs/Xserver/Xprint/Init.c:1.19 --- xc/programs/Xserver/Xprint/Init.c:1.17 Sun Feb 19 10:51:17 2006 +++ xc/programs/Xserver/Xprint/Init.c Tue Jan 23 13:02:56 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xprint/Init.c,v 1.17 2006/02/19 15:51:17 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/Init.c,v 1.19 2007/01/23 18:02:56 tsi Exp $ */ /* (c) Copyright 1996 Hewlett-Packard Company (c) Copyright 1996 International Business Machines Corp. @@ -95,12 +95,12 @@ int index, ScreenPtr pScreen, int argc, - char **argv); + const char **argv); static Bool InitPrintDrivers( int index, ScreenPtr pScreen, - int argc, - char **argv); + const int argc, + const char **argv); /* * The following two defines are used to build the name "X*printers", where @@ -324,9 +324,9 @@ int screenNum; } DriverMapEntry, *DriverMapPtr; -static char *configFileName = (char *)NULL; +static const char *configFileName = (char *)NULL; static Bool freeDefaultFontPath = FALSE; -static char *origFontPath = (char *)NULL; +static const char *origFontPath = (char *)NULL; /* * XprintOptions checks argv[i] to see if it is our command line @@ -336,7 +336,7 @@ int XprintOptions( int argc, - char **argv, + const char **argv, int i) { if(strcmp(argv[i], "-XpFile") == 0) @@ -1227,7 +1227,7 @@ PrinterInitOutput( ScreenInfo *pScreenInfo, int argc, - char **argv) + const char **argv) { PrinterDbPtr pDb, pDbEntry; int driverCount, i; @@ -1399,8 +1399,8 @@ InitPrintDrivers( int index, ScreenPtr pScreen, - int argc, - char **argv) + const int argc, + const char **argv) { PrinterDbPtr pDb, pDb2; @@ -1456,7 +1456,7 @@ int index, ScreenPtr pScreen, int argc, - char **argv) + const char **argv) { float fWidth, fHeight, maxWidth, maxHeight; unsigned short width, height; Index: xc/programs/Xserver/Xprint/attributes.c diff -u xc/programs/Xserver/Xprint/attributes.c:1.23 xc/programs/Xserver/Xprint/attributes.c:1.24 --- xc/programs/Xserver/Xprint/attributes.c:1.23 Fri Oct 14 11:16:15 2005 +++ xc/programs/Xserver/Xprint/attributes.c Mon Apr 9 11:37:13 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xprint/attributes.c,v 1.23 2005/10/14 15:16:15 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/attributes.c,v 1.24 2007/04/09 15:37:13 tsi Exp $ */ /* (c) Copyright 1996 Hewlett-Packard Company (c) Copyright 1996 International Business Machines Corp. @@ -1367,6 +1367,8 @@ { char *cmdName; + *pVector = NULL; + if(command == (char *)NULL) return (char *)NULL; Index: xc/programs/Xserver/Xprint/attributes.h diff -u xc/programs/Xserver/Xprint/attributes.h:1.7 xc/programs/Xserver/Xprint/attributes.h:1.8 --- xc/programs/Xserver/Xprint/attributes.h:1.7 Mon Jan 9 09:59:43 2006 +++ xc/programs/Xserver/Xprint/attributes.h Sat Sep 2 12:44:04 2006 @@ -29,7 +29,7 @@ dealings in this Software without prior written authorization from said copyright holders. */ -/* $XFree86: xc/programs/Xserver/Xprint/attributes.h,v 1.7 2006/01/09 14:59:43 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/attributes.h,v 1.8 2006/09/02 16:44:04 dawes Exp $ */ #ifndef _Xp_attributes_h #define _Xp_attributes_h 1 @@ -37,7 +37,7 @@ #include "scrnintstr.h" #include "AttrValid.h" -#define BFuncArgs int ndx, ScreenPtr pScreen, int argc, char **argv +#define BFuncArgs int ndx, ScreenPtr pScreen, int argc, const char **argv typedef Bool (*pBFunc)(BFuncArgs); #define VFuncArgs char *name, XpValidatePoolsRec *pValRec, float *width, float *height, int *res Index: xc/programs/Xserver/Xprint/ddxInit.c diff -u xc/programs/Xserver/Xprint/ddxInit.c:1.18 xc/programs/Xserver/Xprint/ddxInit.c:1.21 --- xc/programs/Xserver/Xprint/ddxInit.c:1.18 Sun Feb 19 10:51:17 2006 +++ xc/programs/Xserver/Xprint/ddxInit.c Mon Apr 2 20:21:07 2007 @@ -76,7 +76,7 @@ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -/* $XFree86: xc/programs/Xserver/Xprint/ddxInit.c,v 1.18 2006/02/19 15:51:17 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/ddxInit.c,v 1.21 2007/04/03 00:21:07 tsi Exp $ */ #include <X11/X.h> #include <X11/Xproto.h> @@ -84,6 +84,7 @@ #include "servermd.h" #include <X11/Xos.h> #include "DiPrint.h" +#include "mipointer.h" /* *----------------------------------------------------------------------- @@ -115,8 +116,8 @@ void InitOutput( ScreenInfo *pScreenInfo, - int argc, - char **argv) + const int argc, + const char **argv) { pScreenInfo->imageByteOrder = IMAGE_BYTE_ORDER; pScreenInfo->bitmapScanlineUnit = BITMAP_SCANLINE_UNIT; @@ -150,9 +151,7 @@ static int KeyboardProc( DevicePtr pKbd, - int what, - int argc, - char *argv[]) + int what) { KeySymsRec keySyms; @@ -178,13 +177,10 @@ return Success; } -#include "../mi/mipointer.h" static int PointerProc( DevicePtr pPtr, - int what, - int argc, - char *argv[]) + int what) { #define NUM_BUTTONS 1 CARD8 map[NUM_BUTTONS]; @@ -212,8 +208,8 @@ void InitInput( - int argc, - char **argv) + const int argc, + const char **argv) { DeviceIntPtr ptr, kbd; @@ -240,7 +236,7 @@ #ifdef __DARWIN__ void -DarwinHandleGUI(int argc, char *argv[]) +DarwinHandleGUI(int argc, const char *argv[], char *envp[]) { } #endif @@ -298,7 +294,7 @@ int ddxProcessArgument ( int argc, - char *argv[], + const char *argv[], int i) { return XprintOptions(argc, argv, i) - i; Index: xc/programs/Xserver/Xprint/pcl/Pcl.h diff -u xc/programs/Xserver/Xprint/pcl/Pcl.h:1.14 xc/programs/Xserver/Xprint/pcl/Pcl.h:1.16 --- xc/programs/Xserver/Xprint/pcl/Pcl.h:1.14 Fri Oct 14 11:16:16 2005 +++ xc/programs/Xserver/Xprint/pcl/Pcl.h Tue Jan 23 13:02:57 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xprint/pcl/Pcl.h,v 1.14 2005/10/14 15:16:16 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/pcl/Pcl.h,v 1.16 2007/01/23 18:02:57 tsi Exp $ */ /******************************************************************* ** ** ********************************************************* @@ -379,17 +379,12 @@ int ndx, ScreenPtr pScreen, int argc, - char **argv); + const char **argv); extern Bool InitializeMonoPclDriver( int ndx, ScreenPtr pScreen, int argc, - char **argv); -extern Bool InitializeLj3PclDriver( - int ndx, - ScreenPtr pScreen, - int argc, - char **argv); + const char **argv); extern XpContextPtr PclGetContextFromWindow( WindowPtr win ); /****** Index: xc/programs/Xserver/Xprint/pcl/PclInit.c diff -u xc/programs/Xserver/Xprint/pcl/PclInit.c:1.14 xc/programs/Xserver/Xprint/pcl/PclInit.c:1.15 --- xc/programs/Xserver/Xprint/pcl/PclInit.c:1.14 Sun Feb 19 10:51:18 2006 +++ xc/programs/Xserver/Xprint/pcl/PclInit.c Sat Sep 2 12:44:04 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xprint/pcl/PclInit.c,v 1.14 2006/02/19 15:51:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/pcl/PclInit.c,v 1.15 2006/09/02 16:44:04 dawes Exp $ */ /******************************************************************* ** ** ********************************************************* @@ -166,7 +166,7 @@ int ndx, ScreenPtr pScreen, int argc, - char **argv) + const char **argv) { int maxRes, xRes, yRes, maxDim; unsigned i; Index: xc/programs/Xserver/Xprint/pcl/PclWindow.c diff -u xc/programs/Xserver/Xprint/pcl/PclWindow.c:1.12 xc/programs/Xserver/Xprint/pcl/PclWindow.c:1.13 --- xc/programs/Xserver/Xprint/pcl/PclWindow.c:1.12 Mon Jan 9 09:59:44 2006 +++ xc/programs/Xserver/Xprint/pcl/PclWindow.c Mon Apr 9 11:37:14 2007 @@ -43,7 +43,7 @@ dealings in this Software without prior written authorization from said copyright holders. */ -/* $XFree86: xc/programs/Xserver/Xprint/pcl/PclWindow.c,v 1.12 2006/01/09 14:59:44 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/pcl/PclWindow.c,v 1.13 2007/04/09 15:37:14 tsi Exp $ */ #include <stdio.h> @@ -219,11 +219,11 @@ #define COUNT_BITS 8 pointer gcval[7]; - pointer newValues [COUNT_BITS]; + pointer newValues [COUNT_BITS] = {NULL, }; - BITS32 gcmask, index, mask; + BITS32 gcmask = 0, index, mask; RegionRec prgnWin; - DDXPointRec oldCorner; + DDXPointRec oldCorner = {0, 0}; BoxRec box; WindowPtr pBgWin; GCPtr pGC; @@ -233,7 +233,7 @@ register xRectangle *prect; int numRects; - gcmask = 0; + REGION_NULL(pWin->drawable.pScreen, &prgnWin); /* * We don't want to paint a window that has no place to put the Index: xc/programs/Xserver/Xprint/ps/Ps.h diff -u xc/programs/Xserver/Xprint/ps/Ps.h:1.15 xc/programs/Xserver/Xprint/ps/Ps.h:1.16 --- xc/programs/Xserver/Xprint/ps/Ps.h:1.15 Fri Oct 14 11:16:16 2005 +++ xc/programs/Xserver/Xprint/ps/Ps.h Sat Sep 2 12:44:04 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xprint/ps/Ps.h,v 1.15 2005/10/14 15:16:16 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/ps/Ps.h,v 1.16 2006/09/02 16:44:04 dawes Exp $ */ /* Copyright 1996, 1998 The Open Group @@ -289,7 +289,7 @@ */ extern Bool InitializePsDriver(int ndx, ScreenPtr pScreen, int argc, - char **argv); + const char **argv); extern XpContextPtr PsGetContextFromWindow(WindowPtr win); /* Index: xc/programs/Xserver/Xprint/ps/PsInit.c diff -u xc/programs/Xserver/Xprint/ps/PsInit.c:1.16 xc/programs/Xserver/Xprint/ps/PsInit.c:1.17 --- xc/programs/Xserver/Xprint/ps/PsInit.c:1.16 Sun Feb 19 10:51:18 2006 +++ xc/programs/Xserver/Xprint/ps/PsInit.c Sat Sep 2 12:44:04 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xprint/ps/PsInit.c,v 1.16 2006/02/19 15:51:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/ps/PsInit.c,v 1.17 2006/09/02 16:44:04 dawes Exp $ */ /* Copyright 1996, 1998 The Open Group @@ -110,7 +110,7 @@ int ndx; ScreenPtr pScreen; int argc; - char **argv; + const char **argv; { #if 0 PsScreenPrivPtr pPriv; Index: xc/programs/Xserver/Xprint/ps/PsWindow.c diff -u xc/programs/Xserver/Xprint/ps/PsWindow.c:1.14 xc/programs/Xserver/Xprint/ps/PsWindow.c:1.15 --- xc/programs/Xserver/Xprint/ps/PsWindow.c:1.14 Mon Jan 9 09:59:45 2006 +++ xc/programs/Xserver/Xprint/ps/PsWindow.c Mon Apr 9 11:37:14 2007 @@ -72,7 +72,7 @@ ** ********************************************************* ** ********************************************************************/ -/* $XFree86: xc/programs/Xserver/Xprint/ps/PsWindow.c,v 1.14 2006/01/09 14:59:45 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/ps/PsWindow.c,v 1.15 2007/04/09 15:37:14 tsi Exp $ */ #include <stdio.h> #include <string.h> @@ -234,7 +234,7 @@ BITS32 gcmask, index, mask; RegionRec prgnWin; - DDXPointRec oldCorner; + DDXPointRec oldCorner = {0, }; BoxRec box; WindowPtr pBgWin; GCPtr pGC; @@ -244,14 +244,16 @@ register xRectangle *prect; int numRects; - gcmask = 0; - /* * We don't want to paint a window that has no place to put the * PS output. */ if( PsGetContextFromWindow(pWin)==(XpContextPtr)NULL ) return; + gcmask = 0; + (void) memset(newValues, 0, sizeof(newValues)); + REGION_NULL(pWin->drawable.pScreen, &prgnWin); + if( what==PW_BACKGROUND ) { switch(pWin->backgroundState) Index: xc/programs/Xserver/Xprint/raster/Raster.c diff -u xc/programs/Xserver/Xprint/raster/Raster.c:1.13 xc/programs/Xserver/Xprint/raster/Raster.c:1.14 --- xc/programs/Xserver/Xprint/raster/Raster.c:1.13 Fri Oct 14 11:16:16 2005 +++ xc/programs/Xserver/Xprint/raster/Raster.c Sat Sep 2 12:44:04 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xprint/raster/Raster.c,v 1.13 2005/10/14 15:16:16 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/raster/Raster.c,v 1.14 2006/09/02 16:44:04 dawes Exp $ */ /* (c) Copyright 1996 Hewlett-Packard Company (c) Copyright 1996 International Business Machines Corp. @@ -181,7 +181,7 @@ int ndx, ScreenPtr pScreen, int argc, - char **argv) + const char **argv) { int xRes, yRes; int maxRes, maxDim, numBytes; Index: xc/programs/Xserver/Xprint/raster/Raster.h diff -u xc/programs/Xserver/Xprint/raster/Raster.h:1.5 xc/programs/Xserver/Xprint/raster/Raster.h:1.6 --- xc/programs/Xserver/Xprint/raster/Raster.h:1.5 Fri Oct 14 11:16:16 2005 +++ xc/programs/Xserver/Xprint/raster/Raster.h Sat Sep 2 12:44:04 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/Xprint/raster/Raster.h,v 1.5 2005/10/14 15:16:16 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/Xprint/raster/Raster.h,v 1.6 2006/09/02 16:44:04 dawes Exp $ */ /* (c) Copyright 1996 Hewlett-Packard Company (c) Copyright 1996 International Business Machines Corp. @@ -109,6 +109,6 @@ extern XpValidatePoolsRec RasterValidatePoolsRec; extern Bool InitializeRasterDriver(int ndx, ScreenPtr pScreen, int argc, - char **argv); + const char **argv); #endif /* _RASTER_H_ */ Index: xc/programs/Xserver/cfb/Imakefile.inc diff -u xc/programs/Xserver/cfb/Imakefile.inc:1.9 xc/programs/Xserver/cfb/Imakefile.inc:1.15 --- xc/programs/Xserver/cfb/Imakefile.inc:1.9 Fri Oct 14 11:16:18 2005 +++ xc/programs/Xserver/cfb/Imakefile.inc Sun Jul 1 11:14:49 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/cfb/Imakefile.inc,v 1.9 2005/10/14 15:16:18 tsi Exp $ +XCOMM $XFree86: xc/programs/Xserver/cfb/Imakefile.inc,v 1.15 2007/07/01 15:14:49 tsi Exp $ /* * Copyright (c) 1994-2004 by The XFree86 Project, Inc. * All rights reserved. @@ -67,20 +67,20 @@ #if defined(MipsArchitecture) && \ !defined(ArcArchitecture) && \ !defined(Mips64Architecture) -STIPPLESRC = stipmips.s stipmipste.s +STIPPLESRC = stipmips.S stipmipste.S STIPPLEOBJ = stipmips.o stipmipste.o STIPPLEDEF = -DHAS_STIPPLE_CODE #endif -#ifdef SparcArchitecture -STIPPLESRC = stipsparc.s stipsparcte.s +#if defined(SparcArchitecture) && !defined(Sparc64Architecture) +STIPPLESRC = stipsparc.S stipsparcte.S STIPPLEOBJ = stipsparc.o stipsparcte.o STIPPLEDEF = -DHAS_STIPPLE_CODE #endif #endif #if PixelSize == 32 -#ifdef SparcArchitecture -STIPPLESRC = stipsprc32.s stipsprcte32.s +#if defined(SparcArchitecture) && !defined(Sparc64Architecture) +STIPPLESRC = stipsprc32.S stipsprcte32.S STIPPLEOBJ = stipsprc32.o stipsprcte32.o STIPPLEDEF = -DHAS_STIPPLE_CODE #endif @@ -91,46 +91,32 @@ XFMODOBJ = cfbmodule.o #endif -#if !(defined(IHaveModules) && PixelSize != 8) -CFBCMAP = cfbcmap.o -#endif - -SRCS = cfbgc.c cfbrrop.c cfbwindow.c \ - cfbpntwin.c cfbmskbits.c cfbpixmap.c cfbbitblt.c \ - cfbfillsp.c cfbsetsp.c cfbscrinit.c cfballpriv.c \ - cfbgetsp.c cfbfillrct.c \ - cfbsolidC.c cfbsolidX.c cfbsolidG.c \ - cfbtileoddC.c cfbtileoddG.c cfbtile32C.c cfbtile32G.c \ - cfbcmap.c cfbzerarcC.c cfbzerarcX.c cfbzerarcG.c \ - cfbfillarcC.c cfbfillarcG.c \ - cfbigblt8.c cfbglblt8.c cfbtegblt.c cfbbstore.c \ - cfbbltC.c cfbbltX.c cfbbltO.c cfbbltG.c \ - cfbpolypnt.c \ - cfbbres.c cfbline.c cfbhrzvert.c cfbbresd.c cfbimage.c cfbseg.c \ - cfb8lineCO.c cfb8lineX.c cfb8lineG.c cfb8lineCP.c \ - cfb8segC.c cfb8segX.c cfb8segG.c cfb8segCS.c \ - cfbply1rctC.c cfbply1rctG.c cfbcppl.c $(PSZSRCS) $(XFMODSRC) - -OBJS = cfbgc.o cfbrrop.o cfbwindow.o \ - cfbgetsp.o cfbfillrct.o \ - cfbsolidC.o cfbsolidX.o cfbsolidG.o \ - cfbtileoddC.o cfbtileoddG.o cfbtile32C.o cfbtile32G.o \ - cfbfillsp.o cfbsetsp.o cfbscrinit.o cfballpriv.o \ - cfbpntwin.o cfbmskbits.o cfbpixmap.o \ - $(CFBCMAP) cfbzerarcC.o cfbzerarcX.o cfbzerarcG.o \ - cfbfillarcC.o cfbfillarcG.o \ - cfbigblt8.o cfbglblt8.o cfbtegblt.o cfbbstore.o \ - cfbpolypnt.o \ - cfbbres.o cfbline.o cfbhrzvert.o cfbbresd.o cfbimage.o cfbseg.o \ - cfb8lineCO.o cfb8lineX.o cfb8lineG.o cfb8lineCP.o \ - cfb8segCS.o cfb8segX.o cfb8segG.o cfb8segC.o \ - cfbbitblt.o cfbbltC.o cfbbltX.o cfbbltO.o cfbbltG.o \ - cfbply1rctC.o cfbply1rctG.o cfbcppl.o $(PSZOBJS) $(STIPPLEOBJ) \ - $(XFMODOBJ) - -#ifdef XFree86Version -PLATFORMDEFS = -DXFREE86 -#endif +#if !defined(IHaveModules) || (PixelSize == 8) +CFBCMAPSRC = cfbcmap.c +CFBCMAPOBJ = cfbcmap.o +#endif + +SRCS = cfb8lineCO.c cfb8lineCP.c cfb8lineG.c cfb8lineX.c cfb8segC.c \ + cfb8segCS.c cfb8segG.c cfb8segX.c cfballpriv.c cfbbitblt.c cfbbltC.c \ + cfbbltG.c cfbbltO.c cfbbltX.c cfbbres.c cfbbresd.c cfbbstore.c \ + cfbcppl.c cfbfillarcC.c cfbfillarcG.c cfbfillrct.c cfbfillsp.c cfbgc.c \ + cfbgetsp.c cfbglblt8.c cfbhrzvert.c cfbigblt8.c cfbimage.c cfbline.c \ + cfbmskbits.c cfbpixmap.c cfbply1rctC.c cfbply1rctG.c cfbpntwin.c \ + cfbpolypnt.c cfbrrop.c cfbscrinit.c cfbseg.c cfbsetsp.c cfbsolidC.c \ + cfbsolidG.c cfbsolidX.c cfbtegblt.c cfbtile32C.c cfbtile32G.c \ + cfbtileoddC.c cfbtileoddG.c cfbwindow.c cfbzerarcC.c cfbzerarcG.c \ + cfbzerarcX.c $(PSZSRCS) $(CFBCMAPSRC) $(STIPPLESRC) $(XFMODSRC) + +OBJS = cfb8lineCO.o cfb8lineCP.o cfb8lineG.o cfb8lineX.o cfb8segC.o \ + cfb8segCS.o cfb8segG.o cfb8segX.o cfballpriv.o cfbbitblt.o cfbbltC.o \ + cfbbltG.o cfbbltO.o cfbbltX.o cfbbres.o cfbbresd.o cfbbstore.o \ + cfbcppl.o cfbfillarcC.o cfbfillarcG.o cfbfillrct.o cfbfillsp.o cfbgc.o \ + cfbgetsp.o cfbglblt8.o cfbhrzvert.o cfbigblt8.o cfbimage.o cfbline.o \ + cfbmskbits.o cfbpixmap.o cfbply1rctC.o cfbply1rctG.o cfbpntwin.o \ + cfbpolypnt.o cfbrrop.o cfbscrinit.o cfbseg.o cfbsetsp.o cfbsolidC.o \ + cfbsolidG.o cfbsolidX.o cfbtegblt.o cfbtile32C.o cfbtile32G.o \ + cfbtileoddC.o cfbtileoddG.o cfbwindow.o cfbzerarcC.o cfbzerarcG.o \ + cfbzerarcX.o $(PSZOBJS) $(CFBCMAPOBJ) $(STIPPLEOBJ) $(XFMODOBJ) #if BuildLowMem LMDEFINES = -ULOWMEMFTPT @@ -140,7 +126,7 @@ -I$(SERVERSRC)/cfb24 -I$(SERVERSRC)/include -I$(SERVERSRC)/Xext LINTLIBS = $(SERVERSRC)/dix/llib-ldix.ln $(SERVERSRC)/os/llib-los.ln \ $(SERVERSRC)/mfb/llib-lmfb.ln $(SERVERSRC)/mi/llib-lmi.ln - DEFINES = $(LMDEFINES) -DPSZ=PixelSize $(PLATFORMDEFS) + DEFINES = $(LMDEFINES) -DPSZ=PixelSize #if PixelSize == 8 CFBNAME = cfb @@ -207,15 +193,15 @@ #if defined(MipsArchitecture) && \ !defined(ArcArchitecture) && \ !defined(Mips64Architecture) -LinkSourceFile(stipmips.s,LinkDirectory) +LinkSourceFile(stipmips.S,LinkDirectory) #endif -#ifdef SparcArchitecture -LinkSourceFile(stipsparc.s,LinkDirectory) +#if defined(SparcArchitecture) && !defined(Sparc64Architecture) +LinkSourceFile(stipsparc.S,LinkDirectory) #endif #endif #if PixelSize == 32 -#ifdef SparcArchitecture -LinkSourceFile(stipsprc32.s,LinkDirectory) +#if defined(SparcArchitecture) && !defined(Sparc64Architecture) +LinkSourceFile(stipsprc32.S,LinkDirectory) #endif #endif #endif @@ -271,49 +257,26 @@ #if defined(MipsArchitecture) && \ !defined(ArcArchitecture) && \ !defined(Mips64Architecture) -stipmipste.s: stipmips.s - $(RM) $@ - $(LN) stipmips.s stipmipste.s -clean:: - $(RM) stipmipste.s - -stipmipste.o: stipmipste.s - $(AS) -o $@ -DTETEXT stipmipste.s -#endif - -#ifdef SparcArchitecture -stipsparcte.s: stipsparc.s - $(RM) $@ - $(LN) stipsparc.s stipsparcte.s -clean:: - $(RM) stipsparcte.s - -stipsparc.o: stipsparc.s - $(CPP) stipsparc.s AsmDefines | $(AS) -o $@ - +ObjectFromSpecialAsmSource(stipmipste,stipmips,-DTETEXT) +NormalAsmObjectRule() +#endif -stipsparcte.o: stipsparcte.s - $(CPP) -DTETEXT stipsparcte.s AsmDefines | $(AS) -o $@ - +#if defined(SparcArchitecture) && !defined(Sparc64Architecture) +ObjectFromSpecialAsmSource(stipsparcte,stipsparc,-DTETEXT) +NormalAsmObjectRule() #endif #endif #if PixelSize == 32 -#ifdef SparcArchitecture -stipsprcte32.s: stipsprc32.s - $(RM) $@ - $(LN) stipsprc32.s stipsprcte32.s -clean:: - $(RM) stipsprcte32.s - -stipsprc32.o: stipsprc32.s - $(CPP) stipsprc32.s AsmDefines | $(AS) -o $@ - - -stipsprcte32.o: stipsprcte32.s - $(CPP) -DTETEXT stipsprcte32.s AsmDefines | $(AS) -o $@ - +#if defined(SparcArchitecture) && !defined(Sparc64Architecture) +ObjectFromSpecialAsmSource(stipsprcte32,stipsprc32,-DTETEXT) +NormalAsmObjectRule() #endif #endif #ifdef IHaveModules InstallLibraryModule($(CFBNAME),$(MODULEDIR),.) +InstallDriverSDKLibraryModule($(CFBNAME),$(DRIVERSDKMODULEDIR),.) #endif DependTarget() @@ -323,8 +286,7 @@ DependSubdirs($(SUBDIRS)) #endif -InstallDriverSDKLibraryModule($(CFBNAME),$(DRIVERSDKMODULEDIR),.) - +#if !defined(IHaveModules) || !BuildModuleInSubdir #if PixelSize == 8 InstallDriverSDKNonExecFile(cfb.h,$(DRIVERSDKINCLUDEDIR)) InstallDriverSDKNonExecFile(cfb16.h,$(DRIVERSDKINCLUDEDIR)) @@ -333,3 +295,4 @@ InstallDriverSDKNonExecFile(cfbmap.h,$(DRIVERSDKINCLUDEDIR)) InstallDriverSDKNonExecFile(cfbunmap.h,$(DRIVERSDKINCLUDEDIR)) #endif +#endif Index: xc/programs/Xserver/cfb/cfb8bit.c diff -u xc/programs/Xserver/cfb/cfb8bit.c:1.7 xc/programs/Xserver/cfb/cfb8bit.c:1.8 --- xc/programs/Xserver/cfb/cfb8bit.c:1.7 Fri Oct 14 11:16:18 2005 +++ xc/programs/Xserver/cfb/cfb8bit.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfb8bit.c,v 1.7 2005/10/14 15:16:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfb8bit.c,v 1.8 2006/12/25 15:35:16 tsi Exp $ */ /* Copyright 1989, 1994, 1998 The Open Group @@ -258,7 +258,6 @@ * contents of the glyph to compute the visible bits. */ -#if PGSZ == 32 #if (BITMAP_BIT_ORDER == MSBFirst) PixelGroup cfb8BitLenMasks[PGSZ] = { 0xffffffff, 0x7fffffff, 0x3fffffff, 0x1fffffff, @@ -282,81 +281,6 @@ 0xf0000000, 0xe0000000, 0xc0000000, 0x80000000, }; #endif /* BITMAP_BIT_ORDER */ -#else /* PGSZ == 64 */ -#if (BITMAP_BIT_ORDER == MSBFirst) -PixelGroup cfb8BitLenMasks[PGSZ] = { - 0xffffffffffffffff, 0x7fffffffffffffff, - 0x3fffffffffffffff, 0x1fffffffffffffff, - 0x0fffffffffffffff, 0x07ffffffffffffff, - 0x03ffffffffffffff, 0x01ffffffffffffff, - 0x00ffffffffffffff, 0x007fffffffffffff, - 0x003fffffffffffff, 0x001fffffffffffff, - 0x000fffffffffffff, 0x0007ffffffffffff, - 0x0003ffffffffffff, 0x0001ffffffffffff, - 0x0000ffffffffffff, 0x00007fffffffffff, - 0x00003fffffffffff, 0x00001fffffffffff, - 0x00000fffffffffff, 0x000007ffffffffff, - 0x000003ffffffffff, 0x000001ffffffffff, - 0x000000ffffffffff, 0x0000007fffffffff, - 0x0000003fffffffff, 0x0000001fffffffff, - 0x0000000fffffffff, 0x00000007ffffffff, - 0x00000003ffffffff, 0x00000001ffffffff, - 0x00000000ffffffff, 0x000000007fffffff, - 0x000000003fffffff, 0x000000001fffffff, - 0x000000000fffffff, 0x0000000007ffffff, - 0x0000000003ffffff, 0x0000000001ffffff, - 0x0000000000ffffff, 0x00000000007fffff, - 0x00000000003fffff, 0x00000000001fffff, - 0x00000000000fffff, 0x000000000007ffff, - 0x000000000003ffff, 0x000000000001ffff, - 0x000000000000ffff, 0x0000000000007fff, - 0x0000000000003fff, 0x0000000000001fff, - 0x0000000000000fff, 0x00000000000007ff, - 0x00000000000003ff, 0x00000000000001ff, - 0x00000000000000ff, 0x000000000000007f, - 0x000000000000003f, 0x000000000000001f, - 0x000000000000000f, 0x0000000000000007, - 0x0000000000000003, 0x0000000000000001 -}; -#else -PixelGroup cfb8BitLenMasks[PGSZ] = { - 0xffffffffffffffff, 0xfffffffffffffffe, - 0xfffffffffffffffc, 0xfffffffffffffff8, - 0xfffffffffffffff0, 0xffffffffffffffe0, - 0xffffffffffffffc0, 0xffffffffffffff80, - 0xffffffffffffff00, 0xfffffffffffffe00, - 0xfffffffffffffc00, 0xfffffffffffff800, - 0xfffffffffffff000, 0xffffffffffffe000, - 0xffffffffffffc000, 0xffffffffffff8000, - 0xffffffffffff0000, 0xfffffffffffe0000, - 0xfffffffffffc0000, 0xfffffffffff80000, - 0xfffffffffff00000, 0xffffffffffe00000, - 0xffffffffffc00000, 0xffffffffff800000, - 0xffffffffff000000, 0xfffffffffe000000, - 0xfffffffffc000000, 0xfffffffff8000000, - 0xfffffffff0000000, 0xffffffffe0000000, - 0xffffffffc0000000, 0xffffffff80000000, - 0xffffffff00000000, 0xfffffffe00000000, - 0xfffffffc00000000, 0xfffffff800000000, - 0xfffffff000000000, 0xffffffe000000000, - 0xffffffc000000000, 0xffffff8000000000, - 0xffffff0000000000, 0xfffffe0000000000, - 0xfffffc0000000000, 0xfffff80000000000, - 0xfffff00000000000, 0xffffe00000000000, - 0xffffc00000000000, 0xffff800000000000, - 0xffff000000000000, 0xfffe000000000000, - 0xfffc000000000000, 0xfff8000000000000, - 0xfff0000000000000, 0xffe0000000000000, - 0xffc0000000000000, 0xff80000000000000, - 0xff00000000000000, 0xfe00000000000000, - 0xfc00000000000000, 0xf800000000000000, - 0xf000000000000000, 0xe000000000000000, - 0xc000000000000000, 0x8000000000000000 -}; -#endif /* BITMAP_BIT_ORDER */ -#endif /* PGSZ */ - - int cfb8ComputeClipMasks32(BoxPtr pBox, int numRects, int x, int y, int w, int h, Index: xc/programs/Xserver/cfb/cfb8bit.h diff -u xc/programs/Xserver/cfb/cfb8bit.h:3.9 xc/programs/Xserver/cfb/cfb8bit.h:3.11 --- xc/programs/Xserver/cfb/cfb8bit.h:3.9 Sun Mar 27 21:51:03 2005 +++ xc/programs/Xserver/cfb/cfb8bit.h Mon Dec 25 11:10:17 2006 @@ -7,7 +7,7 @@ * are used for depths other than 8. Perhaps the file should be * renamed. dpw */ -/* $XFree86: xc/programs/Xserver/cfb/cfb8bit.h,v 3.9 2005/03/28 02:51:03 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfb8bit.h,v 3.11 2006/12/25 16:10:17 tsi Exp $ */ /* @@ -51,9 +51,8 @@ #if defined(__GNUC__) && defined(mc68020) #undef RotBitsLeft -#define RotBitsLeft(x,k) asm("rol%.l %2,%0" \ - : "=d" (x) \ - : "0" (x), "dI" (k)) +#define RotBitsLeft(x,k) \ + __asm__ __volatile__("rol%.l %2,%0" : "=d" (x) : "0" (x), "dI" (k)) #endif #if PSZ == 8 @@ -194,7 +193,6 @@ #else /* AVOID_MEMORY_READ */ -#if PGSZ == 32 #if (BITMAP_BIT_ORDER == MSBFirst) #define SinglePixel0 3 #define SinglePixel1 2 @@ -233,44 +231,8 @@ #define QuadPixel0 0 #define QuadPixel1 1 #define QuadPixel2 2 -#else /* PGSZ == 64 */ -#if (BITMAP_BIT_ORDER == MSBFirst) -#define SinglePixel0 7 -#define SinglePixel1 6 -#define SinglePixel2 5 -#define SinglePixel3 4 -#define SinglePixel4 3 -#define SinglePixel5 2 -#define SinglePixel6 1 -#define SinglePixel7 0 -#define DoublePixel0 3 -#define DoublePixel1 2 -#define DoublePixel2 1 -#define DoublePixel3 0 -#define QuadPixel0 1 -#define QuadPixel1 0 -#else -#define SinglePixel0 0 -#define SinglePixel1 1 -#define SinglePixel2 2 -#define SinglePixel3 3 -#define SinglePixel4 4 -#define SinglePixel5 5 -#define SinglePixel6 6 -#define SinglePixel7 7 -#define DoublePixel0 0 -#define DoublePixel1 1 -#define DoublePixel2 2 -#define DoublePixel3 3 -#define QuadPixel0 0 -#define QuadPixel1 1 -#endif -#define OctaPixel0 0 -#endif /* PGSZ == 64 */ #if PSZ == 8 - -#if PGSZ == 32 #define WriteBitGroup(dst,pixel,bits) \ switch (bits) { \ case 0: \ @@ -329,129 +291,7 @@ ((CARD32 *) (dst))[0] = (pixel); \ break; \ } -#else /* PGSZ == 64 */ -#define WriteBitGroup(dst,pixel,bits) \ - if ( bits == 0xff ) \ - ((PixelGroup *) (dst))[OctaPixel0] = (pixel); \ - else { \ - switch (bits & 0x0f) { \ - case 0: \ - break; \ - case 1: \ - ((CARD8 *) (dst))[SinglePixel0] = (pixel); \ - break; \ - case 2: \ - ((CARD8 *) (dst))[SinglePixel1] = (pixel); \ - break; \ - case 3: \ - ((CARD16 *) (dst))[DoublePixel0] = (pixel); \ - break; \ - case 4: \ - ((CARD8 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 5: \ - ((CARD8 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 6: \ - ((CARD8 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 7: \ - ((CARD16 *) (dst))[DoublePixel0] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 8: \ - ((CARD8 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 9: \ - ((CARD8 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 10: \ - ((CARD8 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 11: \ - ((CARD16 *) (dst))[DoublePixel0] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 12: \ - ((CARD16 *) (dst))[DoublePixel1] = (pixel); \ - break; \ - case 13: \ - ((CARD8 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD16 *) (dst))[DoublePixel1] = (pixel); \ - break; \ - case 14: \ - ((CARD8 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD16 *) (dst))[DoublePixel1] = (pixel); \ - break; \ - case 15: \ - ((CARD32 *) (dst))[QuadPixel0] = (pixel); \ - break; \ - } \ - switch ((bits & 0xf0) >> 4) { \ - case 0: \ - break; \ - case 1: \ - ((CARD8 *) (dst))[SinglePixel4] = (pixel); \ - break; \ - case 2: \ - ((CARD8 *) (dst))[SinglePixel5] = (pixel); \ - break; \ - case 3: \ - ((CARD16 *) (dst))[DoublePixel2] = (pixel); \ - break; \ - case 4: \ - ((CARD8 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 5: \ - ((CARD8 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 6: \ - ((CARD8 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 7: \ - ((CARD16 *) (dst))[DoublePixel2] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 8: \ - ((CARD8 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 9: \ - ((CARD8 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 10: \ - ((CARD8 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 11: \ - ((CARD16 *) (dst))[DoublePixel2] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 12: \ - ((CARD16 *) (dst))[DoublePixel3] = (pixel); \ - break; \ - case 13: \ - ((CARD8 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD16 *) (dst))[DoublePixel3] = (pixel); \ - break; \ - case 14: \ - ((CARD8 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD16 *) (dst))[DoublePixel3] = (pixel); \ - break; \ - case 15: \ - ((CARD32 *) (dst))[QuadPixel1] = (pixel); \ - break; \ - } \ - } -#endif /* PGSZ == 64 */ -#if PGSZ == 32 #define SwitchBitGroup(dst,pixel,bits) { \ switch (bits) { \ case 0: \ @@ -511,133 +351,9 @@ break; \ } \ } -#else /* PGSZ == 64 */ -#define SwitchBitGroup(dst,pixel,bits) { \ - if ( bits == 0xff ) \ - SwitchBitsLoop (((PixelGroup *) (dst))[OctaPixel0] = (pixel);) \ - else { \ - switch (bits & 0x0f) { \ - case 0: \ - break; \ - case 1: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel);) \ - break; \ - case 2: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel);) \ - break; \ - case 3: \ - SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel);)\ - break; \ - case 4: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel2] = (pixel);) \ - break; \ - case 5: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel2] = (pixel);) \ - break; \ - case 6: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel2] = (pixel);) \ - break; \ - case 7: \ - SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel2] = (pixel);) \ - break; \ - case 8: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel3] = (pixel);) \ - break; \ - case 9: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel3] = (pixel);) \ - break; \ - case 10: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel3] = (pixel);) \ - break; \ - case 11: \ - SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel0] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel3] = (pixel);) \ - break; \ - case 12: \ - SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel1] = (pixel);)\ - break; \ - case 13: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD16 *) (dst))[DoublePixel1] = (pixel);)\ - break; \ - case 14: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD16 *) (dst))[DoublePixel1] = (pixel);)\ - break; \ - case 15: \ - SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel0] = (pixel);) \ - break; \ - } \ - switch ((bits & 0xf0) >> 4) { \ - case 0: \ - break; \ - case 1: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel4] = (pixel);) \ - break; \ - case 2: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel5] = (pixel);) \ - break; \ - case 3: \ - SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel2] = (pixel);)\ - break; \ - case 4: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel6] = (pixel);) \ - break; \ - case 5: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel6] = (pixel);) \ - break; \ - case 6: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel6] = (pixel);) \ - break; \ - case 7: \ - SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel2] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel6] = (pixel);) \ - break; \ - case 8: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel7] = (pixel);) \ - break; \ - case 9: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel7] = (pixel);) \ - break; \ - case 10: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel7] = (pixel);) \ - break; \ - case 11: \ - SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel2] = (pixel); \ - ((CARD8 *) (dst))[SinglePixel7] = (pixel);) \ - break; \ - case 12: \ - SwitchBitsLoop (((CARD16 *) (dst))[DoublePixel3] = (pixel);)\ - break; \ - case 13: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD16 *) (dst))[DoublePixel3] = (pixel);)\ - break; \ - case 14: \ - SwitchBitsLoop (((CARD8 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD16 *) (dst))[DoublePixel3] = (pixel);)\ - break; \ - case 15: \ - SwitchBitsLoop (((CARD32 *) (dst))[QuadPixel1] = (pixel);) \ - break; \ - } \ - } \ -} -#endif /* PGSZ == 64 */ #endif /* PSZ == 8 */ #if PSZ == 16 - -#if PGSZ == 32 #define WriteBitGroup(dst,pixel,bits) \ switch (bits) { \ case 0: \ @@ -697,133 +413,7 @@ ((CARD32 *) (dst))[DoublePixel1] = (pixel); \ break; \ } -#else /* PGSZ == 64 */ -#define WriteBitGroup(dst,pixel,bits) \ - if ( bits == 0xff ) { \ - ((PixelGroup *) (dst))[QuadPixel0] = (pixel); \ - ((PixelGroup *) (dst))[QuadPixel1] = (pixel); \ - } \ - else { \ - switch (bits & 0x0f) { \ - case 0: \ - break; \ - case 1: \ - ((CARD16 *) (dst))[SinglePixel0] = (pixel); \ - break; \ - case 2: \ - ((CARD16 *) (dst))[SinglePixel1] = (pixel); \ - break; \ - case 3: \ - ((CARD32 *) (dst))[DoublePixel0] = (pixel); \ - break; \ - case 4: \ - ((CARD16 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 5: \ - ((CARD16 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD16 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 6: \ - ((CARD16 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD16 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 7: \ - ((CARD32 *) (dst))[DoublePixel0] = (pixel); \ - ((CARD16 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 8: \ - ((CARD16 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 9: \ - ((CARD16 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD16 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 10: \ - ((CARD16 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD16 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 11: \ - ((CARD32 *) (dst))[DoublePixel0] = (pixel); \ - ((CARD16 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 12: \ - ((CARD32 *) (dst))[DoublePixel1] = (pixel); \ - break; \ - case 13: \ - ((CARD16 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[DoublePixel1] = (pixel); \ - break; \ - case 14: \ - ((CARD16 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[DoublePixel1] = (pixel); \ - break; \ - case 15: \ - ((CARD32 *) (dst))[DoublePixel0] = (pixel); \ - ((CARD32 *) (dst))[DoublePixel1] = (pixel); \ - break; \ - } \ - switch ((bits & 0xf0) >> 4) { \ - case 0: \ - break; \ - case 1: \ - ((CARD16 *) (dst))[SinglePixel4] = (pixel); \ - break; \ - case 2: \ - ((CARD16 *) (dst))[SinglePixel5] = (pixel); \ - break; \ - case 3: \ - ((CARD32 *) (dst))[DoublePixel2] = (pixel); \ - break; \ - case 4: \ - ((CARD16 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 5: \ - ((CARD16 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD16 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 6: \ - ((CARD16 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD16 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 7: \ - ((CARD32 *) (dst))[DoublePixel2] = (pixel); \ - ((CARD16 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 8: \ - ((CARD16 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 9: \ - ((CARD16 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD16 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 10: \ - ((CARD16 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD16 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 11: \ - ((CARD32 *) (dst))[DoublePixel2] = (pixel); \ - ((CARD16 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 12: \ - ((CARD32 *) (dst))[DoublePixel3] = (pixel); \ - break; \ - case 13: \ - ((CARD16 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[DoublePixel3] = (pixel); \ - break; \ - case 14: \ - ((CARD16 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[DoublePixel3] = (pixel); \ - break; \ - case 15: \ - ((CARD32 *) (dst))[DoublePixel2] = (pixel); \ - ((CARD32 *) (dst))[DoublePixel3] = (pixel); \ - break; \ - } \ - } -#endif /* PGSZ */ -#if PGSZ == 32 #define SwitchBitGroup(dst,pixel,bits) { \ switch (bits) { \ case 0: \ @@ -884,10 +474,6 @@ break; \ } \ } -#else /* PGSZ == 64 */ -#define SwitchBitGroup(dst,pixel,bits) { \ - cfb cannot hack 64-bit SwitchBitGroup psz=PSZ -#endif /* PGSZ */ #endif /* PSZ == 16 */ @@ -896,7 +482,6 @@ /* 24 000111222333*/ /* 16 001122334455*/ /* 8 0123456789AB*/ -#if PGSZ == 32 #define WriteBitGroup(dst,pixel,bits) \ { \ CARD32 reg_pixel = (pixel); \ @@ -1017,151 +602,7 @@ break; \ } \ } -#else /* PGSZ == 64 */ -#define WriteBitGroup(dst,pixel,bits) \ - if ( bits == 0xff ) { \ - ((PixelGroup *) (dst))[DoublePixel0] = (pixel); \ - ((PixelGroup *) (dst))[DoublePixel1] = (pixel); \ - ((PixelGroup *) (dst))[DoublePixel2] = (pixel); \ - ((PixelGroup *) (dst))[DoublePixel3] = (pixel); \ - } \ - else { \ - switch (bits & 0x0f) { \ - case 0: \ - break; \ - case 1: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - break; \ - case 2: \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - break; \ - case 3: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - break; \ - case 4: \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 5: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 6: \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 7: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 8: \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 9: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 10: \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 11: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 12: \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 13: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 14: \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 15: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - } \ - switch ((bits & 0xf0) >> 4) { \ - case 0: \ - break; \ - case 1: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - break; \ - case 2: \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - break; \ - case 3: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - break; \ - case 4: \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 5: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 6: \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 7: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 8: \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 9: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 10: \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 11: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 12: \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 13: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 14: \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 15: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - } \ - } -#endif /* PGSZ */ -#if PGSZ == 32 #define SwitchBitGroup(dst,pixel,bits) { \ switch (bits) { \ case 0: \ @@ -1242,16 +683,10 @@ break; \ } \ } -#else /* PGSZ == 64 */ -#define SwitchBitGroup(dst,pixel,bits) { \ - cfb cannot hack 64-bit SwitchBitGroup psz=PSZ -#endif /* PGSZ */ #endif /* PSZ == 24 */ #if PSZ == 32 - -#if PGSZ == 32 #define WriteBitGroup(dst,pixel,bits) \ switch (bits) { \ case 0: \ @@ -1319,151 +754,7 @@ ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ break; \ } -#else /* PGSZ == 64 */ -#define WriteBitGroup(dst,pixel,bits) \ - if ( bits == 0xff ) { \ - ((PixelGroup *) (dst))[DoublePixel0] = (pixel); \ - ((PixelGroup *) (dst))[DoublePixel1] = (pixel); \ - ((PixelGroup *) (dst))[DoublePixel2] = (pixel); \ - ((PixelGroup *) (dst))[DoublePixel3] = (pixel); \ - } \ - else { \ - switch (bits & 0x0f) { \ - case 0: \ - break; \ - case 1: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - break; \ - case 2: \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - break; \ - case 3: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - break; \ - case 4: \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 5: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 6: \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 7: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - break; \ - case 8: \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 9: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 10: \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 11: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 12: \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 13: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 14: \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - case 15: \ - ((CARD32 *) (dst))[SinglePixel0] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel1] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel2] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel3] = (pixel); \ - break; \ - } \ - switch ((bits & 0xf0) >> 4) { \ - case 0: \ - break; \ - case 1: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - break; \ - case 2: \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - break; \ - case 3: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - break; \ - case 4: \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 5: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 6: \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 7: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - break; \ - case 8: \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 9: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 10: \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 11: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 12: \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 13: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 14: \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - case 15: \ - ((CARD32 *) (dst))[SinglePixel4] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel5] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel6] = (pixel); \ - ((CARD32 *) (dst))[SinglePixel7] = (pixel); \ - break; \ - } \ - } -#endif /* PGSZ */ -#if PGSZ == 32 #define SwitchBitGroup(dst,pixel,bits) { \ switch (bits) { \ case 0: \ @@ -1532,10 +823,6 @@ break; \ } \ } -#else /* PGSZ == 64 */ -#define SwitchBitGroup(dst,pixel,bits) { \ - cfb cannot hack 64-bit SwitchBitGroup psz=PSZ -#endif /* PGSZ */ #endif /* PSZ == 32 */ #endif /* AVOID_MEMORY_READ */ Index: xc/programs/Xserver/cfb/cfb8line.c diff -u xc/programs/Xserver/cfb/cfb8line.c:3.22 xc/programs/Xserver/cfb/cfb8line.c:3.24 --- xc/programs/Xserver/cfb/cfb8line.c:3.22 Fri Oct 14 11:16:18 2005 +++ xc/programs/Xserver/cfb/cfb8line.c Mon Dec 25 11:10:18 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfb8line.c,v 3.22 2005/10/14 15:16:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfb8line.c,v 3.24 2006/12/25 16:10:18 tsi Exp $ */ /* Copyright 1990, 1998 The Open Group @@ -93,7 +93,7 @@ #ifdef PIXEL_ADDR #if defined(__GNUC__) && defined(mc68020) -#define STUPID volatile +#define STUPID __volatile__ #define REARRANGE #else #define STUPID @@ -192,12 +192,12 @@ #endif #if PSZ == 24 -#define PXL2ADR(x) ((x)*3 >> 2) +#define PXL2ADR(x) (((x) * PSZB) / PGSZB) #if RROP == GXcopy #define body_rop \ - addrp = (PixelType *)((unsigned long)addrb & ~0x03); \ - switch((unsigned long)addrb & 3){ \ + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); \ + switch((unsigned long)addrb & (PGSZB - 1)){ \ case 0: \ *addrp = (*addrp & 0xFF000000)|(piQxelXor[0] & 0xFFFFFF); \ break; \ @@ -216,8 +216,8 @@ #endif #if RROP == GXxor #define body_rop \ - addrp = (PixelType *)((unsigned long)addrb & ~0x03); \ - switch((unsigned long)addrb & 3){ \ + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); \ + switch((unsigned long)addrb & (PGSZB - 1)){ \ case 0: \ *addrp ^= piQxelXor[0] & 0xFFFFFF; \ break; \ @@ -236,8 +236,8 @@ #endif #if RROP == GXand #define body_rop \ - addrp = (PixelType *)((unsigned long)addrb & ~0x03); \ - switch((unsigned long)addrb & 3){ \ + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); \ + switch((unsigned long)addrb & (PGSZB - 1)){ \ case 0: \ *addrp &= piQxelAnd[0] | 0xFF000000; \ break; \ @@ -256,8 +256,8 @@ #endif #if RROP == GXor #define body_rop \ - addrp = (PixelType *)((unsigned long)addrb & ~0x03); \ - switch((unsigned long)addrb & 3){ \ + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); \ + switch((unsigned long)addrb & (PGSZB - 1)){ \ case 0: \ *addrp |= piQxelOr[0] & 0xFFFFFF; \ break; \ @@ -276,8 +276,8 @@ #endif #if RROP == GXset #define body_rop \ - addrp = (PixelType *)((unsigned long)addrb & ~0x03); \ - switch((unsigned long)addrb & 3){ \ + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); \ + switch((unsigned long)addrb & (PGSZB - 1)){ \ case 0: \ *addrp = (*addrp & (piQxelAnd[0]|0xFF000000)) \ ^ (piQxelXor[0] & 0xFFFFFF); \ @@ -445,8 +445,8 @@ #if PSZ == 24 addrLineEnd = addr + WIDTH_MUL(_y1, nwidth); xOffset = xBase + _x1; - addrb = (char *)addrLineEnd + xOffset * 3; - addrp = (PixelType *)((unsigned long)addrb & ~0x03); + addrb = (char *)addrLineEnd + xOffset * PSZB; + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); #else addrp = addr + WIDTH_MUL(_y1, nwidth) + _x1; #endif @@ -471,8 +471,8 @@ #if PSZ == 24 addrLineEnd = addr + WIDTH_MUL(Y2, nwidth); xOffset = xBase + X2; - addrb = (char *)addrLineEnd + xOffset * 3; - addrp = (PixelType *)((unsigned long)addrb & ~0x03); + addrb = (char *)addrLineEnd + xOffset * PSZB; + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); #else addrp = addr + WIDTH_MUL(Y2, nwidth) + X2; #endif @@ -492,8 +492,8 @@ #if PSZ == 24 addrLineEnd = addr + WIDTH_MUL(y1_or_e1, nwidth); xOffset = xBase + x1_or_len; - addrb = (char *)addrLineEnd + xOffset * 3; - addrp = (PixelType *)((unsigned long)addrb & ~0x03); + addrb = (char *)addrLineEnd + xOffset * PSZB; + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); #else addrp = addr + WIDTH_MUL(y1_or_e1, nwidth) + x1_or_len; #endif @@ -598,12 +598,12 @@ #if PSZ == 24 if (stepmajor == 1 || stepmajor == -1){ - stepmajor3 = stepmajor * 3; + stepmajor3 = stepmajor * PSZB; stepminor3 = stepminor * sizeof (CfbBits); majordx = stepmajor; minordx = 0; } else { stepmajor3 = stepmajor * sizeof (CfbBits); - stepminor3 = stepminor * 3; + stepminor3 = stepminor * PSZB; majordx = 0; minordx = stepminor; } #endif @@ -693,7 +693,7 @@ #endif #endif #if PSZ == 24 - addrp = (PixelType *)((unsigned long)addrb & ~0x03); + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); #endif } #undef body @@ -733,31 +733,20 @@ x1_or_len++; } # if PSZ == 24 - y1_or_e1 = xOffset & 3; + y1_or_e1 = xOffset & (PGSZB - 1); # else -# if PGSZ == 64 /* PIM value from <cfbmskbits.h> is not it! (for 16/32 PSZ)*/ - y1_or_e1 = ((long) addrp) & 0x7; + y1_or_e1 = ((long) addrp) & (PGSZB - 1); addrp = (PixelType *) (((unsigned char *) addrp) - y1_or_e1); -# else - y1_or_e1 = ((long) addrp) & PIM; - addrp = (PixelType *) (((unsigned char *) addrp) - y1_or_e1); -# endif -#if PGSZ == 32 # if PWSH != 2 y1_or_e1 >>= (2 - PWSH); # endif -#else /* PGSZ == 64 */ -# if PWSH != 3 - y1_or_e1 >>= (3 - PWSH); -# endif -#endif /* PGSZ */ # endif /* PSZ == 24 */ #if PSZ == 24 { #if RROP == GXcopy int nlmiddle; - int leftIndex = xOffset & 3; - int rightIndex = (xOffset + x1_or_len) & 3; + int leftIndex = xOffset & (PGSZB - 1); + int rightIndex = (xOffset + x1_or_len) & (PGSZB - 1); #else int pidx; #endif @@ -765,7 +754,7 @@ #if RROP == GXcopy nlmiddle = x1_or_len; if(leftIndex){ - nlmiddle -= (4 - leftIndex); + nlmiddle -= (PGSZB - leftIndex); } if(rightIndex){ nlmiddle -= rightIndex; @@ -903,7 +892,7 @@ /* if (e3){ e3 &= 0xFFFFFF; - switch(rightIndex&3){ + switch(rightIndex & (PGSZB - 1)){ case 0: *addrp = ((*addrp) & (0xFF000000 | ~e3)) | (piQxelXor[0] & 0xFFFFFF & e3); @@ -933,13 +922,14 @@ } } #else /* GXcopy */ - addrp = (PixelType *)((char *)addrLineEnd + ((xOffset * 3) & ~0x03)); + addrp = (PixelType *)((char *)addrLineEnd + + ((xOffset * PSZB) & ~(PGSZB - 1))); if (x1_or_len <= 1){ if (x1_or_len) RROP_SOLID24(addrp, xOffset); } else { maskbits(xOffset, x1_or_len, e, e3, x1_or_len); - pidx = xOffset & 3; + pidx = xOffset & (PGSZB - 1); if (e){ RROP_SOLID_MASK(addrp, e, pidx-1); addrp++; @@ -1033,7 +1023,7 @@ # endif #if PSZ == 24 #if RROP == GXcopy - switch(xOffset & 3){ + switch(xOffset & (PGSZB - 1)){ case 0: *addrp = ((*addrp)&0xFF000000)|(piQxelXor[0] & 0xFFFFFF); break; @@ -1051,7 +1041,7 @@ } #endif #if RROP == GXxor - switch(xOffset & 3){ + switch(xOffset & (PGSZB - 1)){ case 0: *addrp ^= (piQxelXor[0] & 0xFFFFFF); break; @@ -1069,7 +1059,7 @@ } #endif #if RROP == GXand - switch(xOffset & 3){ + switch(xOffset & (PGSZB - 1)){ case 0: *addrp &= (piQxelAnd[0] | 0xFF000000); break; @@ -1087,7 +1077,7 @@ } #endif #if RROP == GXor - switch(xOffset & 3){ + switch(xOffset & (PGSZB - 1)){ case 0: *addrp |= (piQxelOr[0] & 0xFFFFFF); break; @@ -1105,7 +1095,7 @@ } #endif #if RROP == GXset - switch(xOffset & 3){ + switch(xOffset & (PGSZB - 1)){ case 0: *addrp = (((*addrp)&(piQxelAnd[0] |0xFF000000))^(piQxelXor[0] & 0xFFFFFF)); break; @@ -1420,13 +1410,13 @@ #if PSZ == 24 addrLineEnd = addr + (y1 * nwidth); - addrb = (char *)addrLineEnd + x1 * 3; + addrb = (char *)addrLineEnd + x1 * PSZB; if (stepx == 1 || stepx == -1){ - stepx3 = stepx * 3; + stepx3 = stepx * PSZB; stepy3 = stepy * sizeof (CfbBits); } else { stepx3 = stepx * sizeof (CfbBits); - stepy3 = stepy * 3; + stepy3 = stepy * PSZB; } #else addrp = addr + (y1 * nwidth) + x1; @@ -1446,17 +1436,11 @@ while (len >= PGSZB) { body body body body -#if PGSZ == 64 - body body body body -#endif len -= PGSZB; } switch (len) { -#if PGSZ == 64 - case 7: body case 6: body case 5: body case 4: body -#endif - case 3: body case 2: body case 1: body + case 3: body case 2: body case 1: body } #undef body } @@ -1491,16 +1475,10 @@ while ((len -= PGSZB) >= 0) { body body body body -#if PGSZ == 64 - body body body body -#endif } switch (len) { - case -1: body case -2: body case -3: body -#if PGSZ == 64 - case -4: body case -5: body case -6: body case -7: body -#endif + case -1: body case -2: body case -3: body } #else /* !LARGE_INSTRUCTION_CACHE */ IMPORTANT_START; Index: xc/programs/Xserver/cfb/cfbbitblt.c diff -u xc/programs/Xserver/cfb/cfbbitblt.c:1.23 xc/programs/Xserver/cfb/cfbbitblt.c:1.24 --- xc/programs/Xserver/cfb/cfbbitblt.c:1.23 Fri Oct 14 11:16:18 2005 +++ xc/programs/Xserver/cfb/cfbbitblt.c Mon Dec 25 10:35:16 2006 @@ -2,7 +2,7 @@ * cfb copy area */ -/* $XFree86: xc/programs/Xserver/cfb/cfbbitblt.c,v 1.23 2005/10/14 15:16:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbbitblt.c,v 1.24 2006/12/25 15:35:16 tsi Exp $ */ /* @@ -790,13 +790,6 @@ # define StoreRopBits(o,c) StoreRopBitsPlain(o,c) # define FirstStep(c) Step(c) #else /* BITMAP_BIT_ORDER == LSBFirst */ -#if PGSZ == 64 -# define StoreBits(o,c) StorePixels(pdst,o, (cfb8Pixels[c & 0xff])) -# define StoreRopBits(o,c) StoreRopPixels(pdst,o, \ - (cfb8StippleAnd[c & 0xff]), \ - (cfb8StippleXor[c & 0xff])) -# define FirstStep(c) c = BitLeft (c, 8); -#else /* 0x3c is 0xf << 2 (4 bits, long word) */ # define StoreBits(o,c) StorePixels(pdst,o,*((CfbBits *)\ (((char *) cfb8Pixels) + (c & 0x3c)))) @@ -804,7 +797,6 @@ *((CfbBits *) (((char *) cfb8StippleAnd) + (c & 0x3c))), \ *((CfbBits *) (((char *) cfb8StippleXor) + (c & 0x3c)))) # define FirstStep(c) c = BitLeft (c, 2); -#endif /* PGSZ */ #endif /* BITMAP_BIT_ORDER */ StoreBits0(tmp); FirstStep(tmp); @@ -1067,7 +1059,7 @@ pdstLine = (unsigned short *)pdstBase + dsty * widthDst + dstx; #endif #if PSZ == 24 - pdstLine = (unsigned char *)pdstBase + dsty * widthDst + dstx * 3; + pdstLine = (unsigned char *)pdstBase + dsty * widthDst + dstx * PSZB; #endif #if PSZ == 32 pdstLine = (unsigned int *)pdstBase + dsty * widthDst + dstx; @@ -1153,7 +1145,7 @@ *(pdst + 1) = bgpixel >> 8; *(pdst + 2) = bgpixel >> 16; } - pdst += 3; + pdst += PSZB; i++; } #endif @@ -1205,7 +1197,7 @@ *(pdst + 1) = bgpixel >> 8; *(pdst + 2) = bgpixel >> 16; } - pdst += 3; + pdst += PSZB; #else *pdst = ((tmp >> (31 - i)) & 0x01) ? fgpixel : bgpixel; pdst++; @@ -1245,7 +1237,7 @@ ((result & planemask) >> 8); *(pdst+2) = ((dst & ~planemask) >> 16) | ((result & planemask) >> 16); - pdst += 3; + pdst += PSZB; #else DoRop (result, rop, src, *pdst); @@ -1285,7 +1277,7 @@ ((result & planemask) >> 8); *(pdst+2) = ((dst & ~planemask) >> 16) | ((result & planemask) >> 16); - pdst += 3; + pdst += PSZB; #else DoRop (result, rop, src, *pdst); Index: xc/programs/Xserver/cfb/cfbblt.c diff -u xc/programs/Xserver/cfb/cfbblt.c:3.16 xc/programs/Xserver/cfb/cfbblt.c:3.18 --- xc/programs/Xserver/cfb/cfbblt.c:3.16 Fri Oct 14 11:16:18 2005 +++ xc/programs/Xserver/cfb/cfbblt.c Mon Dec 25 11:10:18 2006 @@ -1,7 +1,7 @@ /* * cfb copy area */ -/* $XFree86: xc/programs/Xserver/cfb/cfbblt.c,v 3.16 2005/10/14 15:16:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbblt.c,v 3.18 2006/12/25 16:10:18 tsi Exp $ */ /* @@ -104,16 +104,9 @@ /* ................................................. */ #if PSZ == 24 -#define BYPP 3 -#if PGSZ == 32 #define P3W 4 /* pixels in 3 machine words */ #define PAM 3 /* pixel align mask; PAM = P3W -1 */ #define P2WSH 2 -#else -#define P3W 8 /* pixels in 3 machine words */ -#define PAM 7 /* pixel align mask; PAM = P3W -1 */ -#define P2WSH 3 -#endif #endif void @@ -289,7 +282,7 @@ #if PSZ == 24 #ifdef DO_MEMCPY - w2 = w * BYPP; + w2 = w * PSZB; #endif #endif if (ydir == -1) /* start at last scanline of rectangle */ @@ -336,8 +329,8 @@ || (pptSrc->x + w <= pbox->x1)) { #if PSZ == 24 - char *psrc = (char *) psrcLine + (pptSrc->x * BYPP); - char *pdst = (char *) pdstLine + (pbox->x1 * BYPP); + char *psrc = (char *) psrcLine + (pptSrc->x * PSZB); + char *pdst = (char *) pdstLine + (pbox->x1 * PSZB); #else char *psrc = (char *) psrcLine + pptSrc->x; char *pdst = (char *) pdstLine + pbox->x1; @@ -380,9 +373,9 @@ for (i = 0, si = pptSrc->x, di = pbox->x1; i < w; i++, si++, di++) { - psrc = psrcLine + ((si * BYPP) >> P2WSH); - pdst = pdstLine + ((di * BYPP) >> P2WSH); - sii = (si & 3); + psrc = psrcLine + ((si * PSZB) >> P2WSH); + pdst = pdstLine + ((di * PSZB) >> P2WSH); + sii = (si & PSZB); MROP_SOLID24P(psrc, pdst, sii, di); } pdstLine += widthDst; @@ -399,8 +392,8 @@ xoffSrc = ( - pptSrc->x) & PAM; xoffDst = ( - pbox->x1) & PAM; #endif - pdstLine += (pbox->x1 * BYPP) >> P2WSH; - psrcLine += (pptSrc->x * BYPP) >> P2WSH; + pdstLine += (pbox->x1 * PSZB) >> P2WSH; + psrcLine += (pptSrc->x * PSZB) >> P2WSH; #else xoffSrc = pptSrc->x & PIM; xoffDst = pbox->x1 & PIM; @@ -431,14 +424,14 @@ psrcLine += widthSrc; #if PSZ == 24 && MROP == 0 index = (int)(pdst - pdstBase); - im3 = index % 3; + im3 = index % PSZB; #endif /* PSZ == 24 && MROP == 0 */ if (startmask) { #if PSZ == 24 && MROP == 0 *pdst = DoMaskMergeRop24u(*psrc, *pdst, startmask, im3); index++; - im3 = index % 3; + im3 = index % PSZB; #else /* PSZ != 24 || MROP != 0 */ *pdst = MROP_MASK(*psrc, *pdst, startmask); #endif /* PSZ == 24 && MROP == 0 */ @@ -454,8 +447,12 @@ pdst += nl & (UNROLL-1); #if PSZ == 24 && MROP == 0 -#define BodyOdd(n) pdst[-n] = DoMergeRop24u(psrc[-n], pdst[-n], ((int)(pdst - n - pdstBase))%3); -#define BodyEven(n) pdst[-n] = DoMergeRop24u(psrc[-n], pdst[-n], ((int)(pdst - n - pdstBase))%3); +#define BodyOdd(n) \ + pdst[-n] = DoMergeRop24u(psrc[-n], pdst[-n], \ + ((int)(pdst - n - pdstBase)) % PSZB); +#define BodyEven(n) \ + pdst[-n] = DoMergeRop24u(psrc[-n], pdst[-n], \ + ((int)(pdst - n - pdstBase)) % PSZB); #else /* PSZ != 24 || MROP != 0 */ #define BodyOdd(n) pdst[-n] = MROP_SOLID (psrc[-n], pdst[-n]); #define BodyEven(n) pdst[-n] = MROP_SOLID (psrc[-n], pdst[-n]); @@ -468,7 +465,12 @@ #else #if PSZ == 24 && MROP == 0 -#define BodyOdd(n) *pdst = DoMergeRop24u(*psrc, *pdst, im3); pdst++; psrc++; index++; im3 = index % 3; +#define BodyOdd(n) \ + *pdst = DoMergeRop24u(*psrc, *pdst, im3); \ + pdst++; \ + psrc++; \ + index++; \ + im3 = index % PSZB; #define BodyEven(n) BodyOdd(n) #else /* PSZ != 24 || MROP != 0 */ #define BodyOdd(n) *pdst = MROP_SOLID (*psrc, *pdst); pdst++; psrc++; @@ -492,11 +494,11 @@ */ while ((nl -= 6) >= 0) { - asm ("moveml %1+,#0x0c0f;moveml#0x0c0f,%0" + __asm__ __volatile__ ( + "moveml %1+,#0x0c0f;moveml#0x0c0f,%0" : "=m" (*(char *)pdst) : "m" (*(char *)psrc) - : "d0", "d1", "d2", "d3", - "a2", "a3"); + : "d0", "d1", "d2", "d3", "a2", "a3"); pdst += 6; } nl += 6; @@ -506,7 +508,7 @@ #if 0 /*PSZ == 24 && MROP == 0*/ DuffL(nl, label1, *pdst = DoMergeRop24u(*psrc, *pdst, im3); - pdst++; psrc++; index++;im3 = index % 3;) + pdst++; psrc++; index++;im3 = index % PSZB;) #else /* !(PSZ == 24 && MROP == 0) */ DuffL(nl, label1, *pdst = MROP_SOLID (*psrc, *pdst); @@ -516,7 +518,7 @@ if (endmask) #if PSZ == 24 && MROP == 0 - *pdst = DoMaskMergeRop24u(*psrc, *pdst, endmask, (int)(pdst - pdstBase) % 3); + *pdst = DoMaskMergeRop24u(*psrc, *pdst, endmask, (int)(pdst - pdstBase) % PSZB); #else /* !(PSZ == 24 && MROP == 0) */ *pdst = MROP_MASK(*psrc, *pdst, endmask); #endif /* PSZ == 24 && MROP == 0 */ @@ -533,11 +535,7 @@ #if PSZ == 24 leftShift = (xoffSrc - xoffDst) << 3; #else -#if PGSZ == 32 leftShift = (xoffSrc - xoffDst) << (5 - PWSH); -#else /* PGSZ == 64 */ - leftShift = (xoffSrc - xoffDst) << (6 - PWSH); -#endif /* PGSZ */ #endif rightShift = PGSZ - leftShift; } @@ -546,11 +544,7 @@ #if PSZ == 24 rightShift = (xoffDst - xoffSrc) << 3; #else -#if PGSZ == 32 rightShift = (xoffDst - xoffSrc) << (5 - PWSH); -#else /* PGSZ == 64 */ - rightShift = (xoffDst - xoffSrc) << (6 - PWSH); -#endif /* PGSZ */ #endif leftShift = PGSZ - rightShift; } @@ -662,8 +656,8 @@ for (i = 0, si = pptSrc->x + w - 1, di = pbox->x2 - 1; i < w; i++, si--, di--) { - psrc = psrcLine + ((si * BYPP) >> P2WSH); - pdst = pdstLine + ((di * BYPP) >> P2WSH); + psrc = psrcLine + ((si * PSZB) >> P2WSH); + pdst = pdstLine + ((di * PSZB) >> P2WSH); sii = (si & PAM); MROP_SOLID24P(psrc, pdst, sii, di); } @@ -681,8 +675,8 @@ xoffSrc = (pptSrc->x + w) & PAM; xoffDst = pbox->x2 & PAM; #endif - pdstLine += ((pbox->x2 * BYPP - 1) >> P2WSH) + 1; - psrcLine += (((pptSrc->x+w) * BYPP - 1) >> P2WSH) + 1; + pdstLine += ((pbox->x2 * PSZB - 1) >> P2WSH) + 1; + psrcLine += (((pptSrc->x+w) * PSZB - 1) >> P2WSH) + 1; #else xoffSrc = (pptSrc->x + w - 1) & PIM; xoffDst = (pbox->x2 - 1) & PIM; @@ -725,7 +719,7 @@ psrc--; #if PSZ == 24 && MROP == 0 index--; - im3 = index % 3; + im3 = index % PSZB; *pdst = DoMaskMergeRop24u(*psrc, *pdst, endmask, im3); #else /* !(PSZ == 24 && MROP == 0) */ *pdst = MROP_MASK (*psrc, *pdst, endmask); @@ -738,7 +732,9 @@ pdst -= nl & (UNROLL - 1); #if PSZ == 24 && MROP == 0 -#define BodyOdd(n) pdst[n-1] = DoMergeRop24u(psrc[n-1], pdst[n-1], ((int)(pdst - (n - 1) -pdstBase)) % 3); +#define BodyOdd(n) \ + pdst[n-1] = DoMergeRop24u(psrc[n-1], pdst[n-1], \ + ((int)(pdst - (n - 1) -pdstBase)) % PSZB); #else /* !(PSZ == 24 && MROP == 0) */ #define BodyOdd(n) pdst[n-1] = MROP_SOLID (psrc[n-1], pdst[n-1]); #endif /* PSZ == 24 && MROP == 0 */ @@ -752,7 +748,12 @@ #else #if PSZ == 24 && MROP == 0 -#define BodyOdd(n) --pdst; --psrc; --index; im3 = index % 3;*pdst = DoMergeRop24u(*psrc, *pdst, im3); +#define BodyOdd(n) \ + --pdst; \ + --psrc; \ + --index; \ + im3 = index % PSZB; \ + *pdst = DoMergeRop24u(*psrc, *pdst, im3); #else /* !(PSZ == 24 && MROP == 0) */ #define BodyOdd(n) --pdst; --psrc; *pdst = MROP_SOLID(*psrc, *pdst); #endif /* PSZ == 24 && MROP == 0 */ @@ -769,7 +770,7 @@ #else #if PSZ == 24 && MROP == 0 DuffL(nl,label3, - --pdst; --psrc; --index; im3= index%3;*pdst = DoMergeRop24u(*psrc, *pdst, im3);) + --pdst; --psrc; --index; im3= index % PSZB;*pdst = DoMergeRop24u(*psrc, *pdst, im3);) #else /* !(PSZ == 24 && MROP == 0) */ DuffL(nl,label3, --pdst; --psrc; *pdst = MROP_SOLID (*psrc, *pdst);) @@ -781,7 +782,7 @@ --pdst; --psrc; #if PSZ == 24 && MROP == 0 - *pdst = DoMaskMergeRop24u(*psrc, *pdst, startmask, (int)(pdst - pdstBase) % 3); + *pdst = DoMaskMergeRop24u(*psrc, *pdst, startmask, (int)(pdst - pdstBase) % PSZB); #else /* !(PSZ == 24 && MROP == 0) */ *pdst = MROP_MASK(*psrc, *pdst, startmask); #endif /* PSZ == 24 && MROP == 0 */ @@ -800,11 +801,7 @@ leftShift = (xoffDst - xoffSrc) << 3; rightShift = PGSZ - leftShift; #else -#if PGSZ == 32 rightShift = (xoffDst - xoffSrc) << (5 - PWSH); -#else /* PGSZ == 64 */ - rightShift = (xoffDst - xoffSrc) << (6 - PWSH); -#endif /* PGSZ */ leftShift = PGSZ - rightShift; #endif } @@ -814,11 +811,7 @@ rightShift = (xoffSrc - xoffDst) << 3; leftShift = PGSZ - rightShift; #else -#if PGSZ == 32 leftShift = (xoffSrc - xoffDst) << (5 - PWSH); -#else /* PGSZ == 64 */ - leftShift = (xoffSrc - xoffDst) << (6 - PWSH); -#endif /* PGSZ */ rightShift = PGSZ - leftShift; #endif } Index: xc/programs/Xserver/cfb/cfbbres.c diff -u xc/programs/Xserver/cfb/cfbbres.c:3.7 xc/programs/Xserver/cfb/cfbbres.c:3.8 --- xc/programs/Xserver/cfb/cfbbres.c:3.7 Fri Oct 14 11:16:18 2005 +++ xc/programs/Xserver/cfb/cfbbres.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbbres.c,v 3.7 2005/10/14 15:16:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbbres.c,v 3.8 2006/12/25 15:35:16 tsi Exp $ */ /*********************************************************** Copyright 1987, 1998 The Open Group @@ -86,7 +86,7 @@ nlwidth <<= PWSH; #if PSZ == 24 addrp = (PixelType *)(addrl) + (y1 * nlwidth); - addrb = (char *)addrp + x1 * 3; + addrb = (char *)addrp + x1 * PSZB; piQxelXor[0] = (xor << 24) | xor; piQxelXor[1] = (xor << 16)| (xor >> 8); @@ -102,7 +102,7 @@ e = e-e1; /* to make looping easier */ #if PSZ == 24 nlwidth3 = nlwidth * sizeof (CfbBits); - signdx3 = signdx * 3; + signdx3 = signdx * PSZB; #endif if (axis == Y_AXIS) @@ -123,8 +123,8 @@ --len; #if PSZ == 24 #define body_copy \ - addrp = (PixelType *)((unsigned long)addrb & ~0x03); \ - switch((unsigned long)addrb & 3){ \ + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); \ + switch((unsigned long)addrb & (PGSZB - 1)){ \ case 0: \ *addrp = ((*addrp)&0xFF000000)|(piQxelXor[0] & 0xFFFFFF); \ break; \ @@ -184,8 +184,8 @@ while(len--) { #if PSZ == 24 - addrp = (PixelType *)((unsigned long)addrb & ~0x03); - switch((unsigned long)addrb & 3){ + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); + switch((unsigned long)addrb & (PGSZB - 1)){ case 0: *addrp = (*addrp & (piQxelAnd[0]|0xFF000000)) ^ (piQxelXor[0] & 0xFFFFFF); @@ -232,7 +232,7 @@ /* point to longword containing first point */ #if PSZ == 24 - addrl = (addrl + (y1 * nlwidth) + ((x1 * 3) >>2); + addrl = (addrl + (y1 * nlwidth) + ((x1 * PSZB) / PGSZB); #else addrl = (addrl + (y1 * nlwidth) + (x1 >> PWSH)); #endif @@ -242,8 +242,8 @@ leftbit = cfbmask[0]; #if PSZ == 24 - rightbit = cfbmask[(PPW-1)<<1]; - bit = cfbmask[(x1 & 3)<<1]; + rightbit = cfbmask[(PPW - 1) << 1]; + bit = cfbmask[(x1 & (PGSZB - 1)) << 1]; #else rightbit = cfbmask[PPW-1]; bit = cfbmask[x1 & PIM]; Index: xc/programs/Xserver/cfb/cfbbresd.c diff -u xc/programs/Xserver/cfb/cfbbresd.c:3.8 xc/programs/Xserver/cfb/cfbbresd.c:3.9 --- xc/programs/Xserver/cfb/cfbbresd.c:3.8 Fri Oct 14 11:16:18 2005 +++ xc/programs/Xserver/cfb/cfbbresd.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbbresd.c,v 3.8 2005/10/14 15:16:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbbresd.c,v 3.9 2006/12/25 15:35:16 tsi Exp $ */ /*********************************************************** Copyright 1987, 1998 The Open Group @@ -134,7 +134,7 @@ /* point to first point */ nlwidth <<= PWSH; addrp = (PixelType *)(addrl) + (y1 * nlwidth); - addrb = (char *)addrp + x1 * 3; + addrb = (char *)addrp + x1 * PSZB; #else #define Loop(store) while (thisDash--) {\ @@ -147,7 +147,7 @@ #endif signdy *= nlwidth; #if PSZ == 24 - signdx3 = signdx * 3; + signdx3 = signdx * PSZB; signdy3 = signdy * sizeof (CfbBits); #endif if (axis == Y_AXIS) @@ -168,8 +168,8 @@ { #if PSZ == 24 #define body_copy(pix) { \ - addrp = (PixelType *)((unsigned long)addrb & ~0x03); \ - switch((unsigned long)addrb & 3){ \ + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); \ + switch((unsigned long)addrb & (PGSZB - 1)){ \ case 0: \ *addrp = (*addrp & 0xFF000000)|((pix)[0] & 0xFFFFFF); \ break; \ @@ -217,8 +217,8 @@ else { #define body_set(and, xor) { \ - addrp = (PixelType *)((unsigned long)addrb & ~0x03); \ - switch((unsigned long)addrb & 3){ \ + addrp = (PixelType *)((unsigned long)addrb & ~(PGSZB - 1)); \ + switch((unsigned long)addrb & (PGSZB - 1)){ \ case 0: \ *addrp = (*addrp & ((and)[0]|0xFF000000)) ^ ((xor)[0] & 0xFFFFFF); \ break; \ @@ -269,7 +269,7 @@ /* point to longword containing first point */ #if PSZ == 24 - addrl = (addrl + (y1 * nlwidth) + ((x1*3) >> 2); + addrl = (addrl + (y1 * nlwidth) + ((x1 * PSZB) / PGSZB); #else addrl = (addrl + (y1 * nlwidth) + (x1 >> PWSH)); #endif @@ -279,8 +279,8 @@ startbit = cfbmask[0]; else #if PSZ == 24 - startbit = cfbmask[(PPW-1)<<1]; - bit = cfbmask[(x1 & 3)<<1]; + startbit = cfbmask[(PPW - 1) << 1]; + bit = cfbmask[(x1 & (PGSZB - 1)) << 1]; #else startbit = cfbmask[PPW-1]; bit = cfbmask[x1 & PIM]; Index: xc/programs/Xserver/cfb/cfbcppl.c diff -u xc/programs/Xserver/cfb/cfbcppl.c:1.9 xc/programs/Xserver/cfb/cfbcppl.c:1.10 --- xc/programs/Xserver/cfb/cfbcppl.c:1.9 Fri Oct 14 11:16:18 2005 +++ xc/programs/Xserver/cfb/cfbcppl.c Thu Dec 21 16:34:14 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbcppl.c,v 1.9 2005/10/14 15:16:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbcppl.c,v 1.10 2006/12/21 21:34:14 tsi Exp $ */ /* Copyright 1990, 1998 The Open Group @@ -34,9 +34,7 @@ #include "windowstr.h" #include "cfb.h" #if PSZ == 8 -#undef PSZ /* for maskbits.h */ #include "maskbits.h" -#define PSZ 8 #include "mergerop.h" #else /* PSZ==8 */ #include "cfbtab.h" /* provides starttab, endttab, partmasks */ Index: xc/programs/Xserver/cfb/cfbfillarc.c diff -u xc/programs/Xserver/cfb/cfbfillarc.c:3.9 xc/programs/Xserver/cfb/cfbfillarc.c:3.11 --- xc/programs/Xserver/cfb/cfbfillarc.c:3.9 Fri Oct 14 11:16:18 2005 +++ xc/programs/Xserver/cfb/cfbfillarc.c Mon Dec 25 11:10:18 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbfillarc.c,v 3.9 2005/10/14 15:16:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbfillarc.c,v 3.11 2006/12/25 16:10:18 tsi Exp $ */ /************************************************************ Copyright 1989, 1998 The Open Group @@ -39,7 +39,7 @@ /* gcc 1.35 is stupid */ #if defined(__GNUC__) && __GNUC__ < 2 && defined(mc68020) -#define STUPID volatile +#define STUPID __volatile__ #else #define STUPID #endif @@ -91,7 +91,7 @@ continue; xpos = xorg - x; #if PSZ == 24 - xpos3 = (xpos * 3) & ~0x03; + xpos3 = (xpos * PSZB) & ~(PGSZB - 1); addrl = (CfbBits *)((char *)addrlt + xpos3); if (slw == 1){ RROP_SOLID24(addrl, xpos); @@ -102,7 +102,7 @@ continue; } maskbits(xpos, slw, startmask, endmask, nlmiddle); - xpos &= 3; + xpos &= (PGSZB - 1); pidx = xpos; if (startmask){ RROP_SOLID_MASK(addrl, startmask, pidx-1); @@ -183,13 +183,13 @@ #define FILLSPAN(xl,xr,addr) \ if (xr >= xl){ \ n = xr - xl + 1; \ - addrl = (CfbBits *)((char *)addr + ((xl * 3) & ~0x03)); \ + addrl = (CfbBits *)((char *)addr + ((xl * PSZB) & ~(PGSZB - 1))); \ if (n <= 1){ \ if (n) \ RROP_SOLID24(addrl, xl); \ } else { \ maskbits(xl, n, startmask, endmask, n); \ - pidx = xl & 3; \ + pidx = xl & (PGSZB - 1); \ if (startmask){ \ RROP_SOLID_MASK(addrl, startmask, pidx-1); \ addrl++; \ Index: xc/programs/Xserver/cfb/cfbfillsp.c diff -u xc/programs/Xserver/cfb/cfbfillsp.c:3.10 xc/programs/Xserver/cfb/cfbfillsp.c:3.12 --- xc/programs/Xserver/cfb/cfbfillsp.c:3.10 Fri Oct 14 11:16:18 2005 +++ xc/programs/Xserver/cfb/cfbfillsp.c Mon Apr 9 11:37:14 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbfillsp.c,v 3.10 2005/10/14 15:16:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbfillsp.c,v 3.12 2007/04/09 15:37:14 tsi Exp $ */ /************************************************************ Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. @@ -121,7 +121,9 @@ */ #ifdef notdef -#include <stdio.h> +#ifndef XFree86LOADER +#include <stdio.h> +#endif static dumpspans(int n, DDXPointPtr ppt, int *pwidth) { @@ -150,7 +152,7 @@ return; #if PSZ == 24 - if (pGC->tile.pixmap->drawable.width & 3) + if (pGC->tile.pixmap->drawable.width & (PGSZB - 1)) #else if (pGC->tile.pixmap->drawable.width & PIM) #endif @@ -397,7 +399,7 @@ PixmapPtr pStipple; /* pointer to stipple we want to fill with */ int w; int width, x, xrem, xSrc, ySrc; - CfbBits tmpSrc, tmpDst1, tmpDst2; + CfbBits tmpSrc, tmpDst1 = 0, tmpDst2 = 0; int stwidth, stippleWidth; CfbBits *psrcS; int rop, stiprop = 0; @@ -521,8 +523,8 @@ xtemp = (xrem & MFB_PIM); ptemp = (CfbBits *)(psrcS + (xrem >> MFB_PWSH)); #if PSZ == 24 - tmpx = x & 3; - pdsttmp = pdst + ((x * 3)>>2); + tmpx = x & (PGSZB - 1); + pdsttmp = pdst + ((x * PSZB) / PGSZB); #else #if PSZ != 32 || PPW != 1 tmpx = x & PIM; Index: xc/programs/Xserver/cfb/cfbgetsp.c diff -u xc/programs/Xserver/cfb/cfbgetsp.c:3.12 xc/programs/Xserver/cfb/cfbgetsp.c:3.13 --- xc/programs/Xserver/cfb/cfbgetsp.c:3.12 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbgetsp.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbgetsp.c,v 3.12 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbgetsp.c,v 3.13 2006/12/25 15:35:16 tsi Exp $ */ /*********************************************************** Copyright 1987, 1998 The Open Group @@ -139,14 +139,14 @@ while(ppt < pptLast) { #if PSZ == 24 - xEnd = min(ppt->x + *pwidth, widthSrc * sizeof(CfbBits) / 3); + xEnd = min(ppt->x + *pwidth, widthSrc * sizeof(CfbBits) / PSZB); w = xEnd - ppt->x; psrc = psrcBase + ppt->y * widthSrc; srcBit = ppt->x; - psrcb = (char *)psrc + (ppt->x * 3); + psrcb = (char *)psrc + (ppt->x * PSZB); xIndex = 0; pdstb = (char *)pdst; - pdstNext = pdst + ((w * 3 + 3) >> 2); + pdstNext = pdst + (((w + 1) * PSZB) / PGSZB); #else xEnd = min(ppt->x + *pwidth, widthSrc << PWSH); w = xEnd - ppt->x; @@ -160,14 +160,14 @@ FatalError("cfb24GetSpans: Internal error (w < 0)\n"); nl = w; while (nl--){ - psrc = (PixelGroup *)((unsigned long)psrcb & ~0x03); + psrc = (PixelGroup *)((unsigned long)psrcb & ~(PGSZB - 1)); getbits24(psrc, tmpSrc, srcBit); - pdst = (PixelGroup *)((unsigned long)pdstb & ~0x03); + pdst = (PixelGroup *)((unsigned long)pdstb & ~(PGSZB - 1)); putbits24(tmpSrc, PPW, pdst, ~((CfbBits)0), xIndex); srcBit++; - psrcb += 3; + psrcb += PSZB; xIndex++; - pdstb += 3; + pdstb += PSZB; } pdst = pdstNext; #else /* PSZ == 24 */ Index: xc/programs/Xserver/cfb/cfbglblt8.c diff -u xc/programs/Xserver/cfb/cfbglblt8.c:3.11 xc/programs/Xserver/cfb/cfbglblt8.c:3.12 --- xc/programs/Xserver/cfb/cfbglblt8.c:3.11 Fri Feb 17 22:31:36 2006 +++ xc/programs/Xserver/cfb/cfbglblt8.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbglblt8.c,v 3.11 2006/02/18 03:31:36 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbglblt8.c,v 3.12 2006/12/25 15:35:16 tsi Exp $ */ /* Copyright 1989, 1998 The Open Group @@ -225,19 +225,20 @@ glyphBits = (glyphPointer) FONTGLYPHBITS(pglyphBase,pci); xoff = x + pci->metrics.leftSideBearing; #if PSZ == 24 - dstLine = pdstBase + (y - pci->metrics.ascent) * widthDst +((xoff>> 2)*3); + dstLine = pdstBase + + (y - pci->metrics.ascent) * widthDst + ((xoff / PGSZB) * PSZB); #else dstLine = pdstBase + - (y - pci->metrics.ascent) * widthDst + (xoff >> PWSH); + (y - pci->metrics.ascent) * widthDst + (xoff >> PWSH); #endif x += pci->metrics.characterWidth; if ((hTmp = pci->metrics.descent + pci->metrics.ascent)) { #if PSZ == 24 - xoff &= 0x03; + xoff &= (PGSZB - 1); #else xoff &= PIM; -#endif /* PSZ == 24 */ +#endif #ifdef STIPPLE STIPPLE(dstLine,glyphBits,pixel,bwidthDst,hTmp,xoff); #else @@ -358,13 +359,12 @@ if ((hTmp = pci->metrics.descent + pci->metrics.ascent)) { #if PSZ == 24 - dstLine = pdstBase + yG * widthDst + ((xG>> 2)*3); - /* never use (xG*3)>>2 */ + dstLine = pdstBase + yG * widthDst + ((xG / PGSZB) * PSZB); #else dstLine = pdstBase + yG * widthDst + (xG >> PWSH); #endif #if PSZ == 24 - xoff = xG & 3; + xoff = xG & (PGSZB - 1); #else xoff = xG & PIM; #endif Index: xc/programs/Xserver/cfb/cfbhrzvert.c diff -u xc/programs/Xserver/cfb/cfbhrzvert.c:3.10 xc/programs/Xserver/cfb/cfbhrzvert.c:3.11 --- xc/programs/Xserver/cfb/cfbhrzvert.c:3.10 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbhrzvert.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbhrzvert.c,v 3.10 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbhrzvert.c,v 3.11 2006/12/25 15:35:16 tsi Exp $ */ /*********************************************************** Copyright 1987,1998 The Open Group @@ -77,11 +77,11 @@ piQxelXor[1] = ((xor>>8) & 0xFFFF)| ((xor<<16) & 0xFFFF0000); piQxelXor[2] = ((xor<<8) & 0xFFFFFF00) | ((xor>>16) & 0xFF); - leftIndex = x1 & 3; - rightIndex = ((x1 + len) < 5)?0:(x1 + len)&3; + leftIndex = x1 & PSZB; + rightIndex = ((x1 + len) < 5) ? 0 : (x1 + len) & PSZB; nlmiddle = len; if(leftIndex){ - nlmiddle -= (4 - leftIndex); + nlmiddle -= (PGSZB - leftIndex); } if(rightIndex){ nlmiddle -= rightIndex; @@ -91,7 +91,8 @@ nlmiddle >>= 2; - addrl += (y1 * nlwidth) + (x1 >> 2)*3 + (leftIndex?leftIndex-1:0); + addrl += (y1 * nlwidth) + (x1 / PGSZB) * PSZB + + (leftIndex ? leftIndex - 1 : 0); switch(leftIndex+len){ case 4: @@ -368,8 +369,8 @@ #if PSZ == 24 nlwidth <<= PWSH; - xIdx = x1 & 3; - bits = (PixelType *)(addrl + (y1 * nlwidth) + ((x1*3) >> 2)); + xIdx = x1 & PSZB; + bits = (PixelType *)(addrl + (y1 * nlwidth) + ((x1 * PSZB) / PGSZB)); #else nlwidth <<= PWSH; bits = bits + (y1 * nlwidth) + x1; @@ -520,10 +521,10 @@ } #else /* !PIXEL_ADDR */ #if PSZ == 24 - addrl = addrl + (y1 * nlwidth) + ((x1*3) >>2); + addrl = addrl + (y1 * nlwidth) + ((x1 * PSZB) / PGSZB); - and |= ~cfbmask[(x1 & 3)<<1]; - xor &= cfbmask[(x1 & 3)<<1]; + and |= ~cfbmask[(x1 & (PGSZB - 1)) << 1]; + xor &= cfbmask[(x1 & (PGSZB - 1)) << 1]; #else addrl = addrl + (y1 * nlwidth) + (x1 >> PWSH); Index: xc/programs/Xserver/cfb/cfbline.c diff -u xc/programs/Xserver/cfb/cfbline.c:3.8 xc/programs/Xserver/cfb/cfbline.c:3.9 --- xc/programs/Xserver/cfb/cfbline.c:3.8 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbline.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbline.c,v 3.8 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbline.c,v 3.9 2006/12/25 15:35:16 tsi Exp $ */ /*********************************************************** Copyright 1987, 1998 The Open Group @@ -425,8 +425,8 @@ CfbBits scrbits; #if PSZ == 24 - mask = cfbmask[(x2 & 3)<<1]; - addrl += (y2 * nlwidth) + ((x2*3) >> 2); + mask = cfbmask[(x2 & (PGSZB - 1)) << 1]; + addrl += (y2 * nlwidth) + ((x2 * PSZB) / PGSZB); #else mask = cfbmask[x2 & PIM]; addrl += (y2 * nlwidth) + (x2 >> PWSH); @@ -720,8 +720,8 @@ if (dashIndex & 1) pix = 1; #if PSZ == 24 - mask = cfbmask[(x2 & 3)<<1]; - addrl += (y2 * nlwidth) + ((x2 *3)>> 2); + mask = cfbmask[(x2 & (PGSZB - 1)) << 1]; + addrl += (y2 * nlwidth) + ((x2 * PSZB) / PGSZB); #else mask = cfbmask[x2 & PIM]; addrl += (y2 * nlwidth) + (x2 >> PWSH); Index: xc/programs/Xserver/cfb/cfbmskbits.c diff -u xc/programs/Xserver/cfb/cfbmskbits.c:3.3 xc/programs/Xserver/cfb/cfbmskbits.c:3.4 --- xc/programs/Xserver/cfb/cfbmskbits.c:3.3 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbmskbits.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbmskbits.c,v 3.3 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbmskbits.c,v 3.4 2006/12/25 15:35:16 tsi Exp $ */ /************************************************************ Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. @@ -46,11 +46,11 @@ see also cfbmskbits.h */ -#include <X11/X.h> -#include <X11/Xmd.h> -#include <servermd.h> -#include "cfb.h" -#include "cfbmskbits.h" +#include <X11/X.h> +#include <X11/Xmd.h> +#include "servermd.h" +#include "cfb.h" +#include "cfbmskbits.h" #define _cfbBits(a) (PixelGroup)(a) @@ -62,12 +62,7 @@ #define cfbFlip8(a) ((cfbFlip4(a) << 4) | cfbFlip4(a >> 4)) #define cfbFlip16(a) ((cfbFlip8(a) << 8) | cfbFlip8(a >> 8)) #define cfbFlip32(a) ((cfbFlip16(a) << 16) | cfbFlip16(a >> 16)) -#if PGSZ == 32 #define cfbBits(a) cfbFlip32(_cfbBits(a)) -#else /* PGSZ == 64 */ -#define cfbFlip64(a) ((cfbFlip32(a) << 32) | cfbFlip32(a >> 32)) -#define cfbBits(a) cfbFlip64(_cfbBits(a)) -#endif /* PGSZ */ #endif /* BITMAP_BIT_ORDER */ /* NOTE: @@ -77,7 +72,6 @@ have to do if we thought it was partial. */ #if PSZ == 4 -#if PGSZ == 32 PixelGroup cfbstarttab[] = { cfbBits(0x00000000), @@ -100,50 +94,9 @@ cfbBits(0xFFFFFF00), cfbBits(0xFFFFFFF0) }; -#else /* PGSZ == 64 */ -PixelGroup cfbstarttab[] = - { - cfbBits(0x0000000000000000), - cfbBits(0x0FFFFFFFFFFFFFFF), - cfbBits(0x00FFFFFFFFFFFFFF), - cfbBits(0x000FFFFFFFFFFFFF), - cfbBits(0x0000FFFFFFFFFFFF), - cfbBits(0x00000FFFFFFFFFFF), - cfbBits(0x000000FFFFFFFFFF), - cfbBits(0x0000000FFFFFFFFF), - cfbBits(0x00000000FFFFFFFF), - cfbBits(0x000000000FFFFFFF), - cfbBits(0x0000000000FFFFFF), - cfbBits(0x00000000000FFFFF), - cfbBits(0x000000000000FFFF), - cfbBits(0x0000000000000FFF), - cfbBits(0x00000000000000FF), - cfbBits(0x000000000000000F), - }; -PixelGroup cfbendtab[] = - { - cfbBits(0x0000000000000000), - cfbBits(0xF000000000000000), - cfbBits(0xFF00000000000000), - cfbBits(0xFFF0000000000000), - cfbBits(0xFFFF000000000000), - cfbBits(0xFFFFF00000000000), - cfbBits(0xFFFFFF0000000000), - cfbBits(0xFFFFFFF000000000), - cfbBits(0xFFFFFFFF00000000), - cfbBits(0xFFFFFFFFF0000000), - cfbBits(0xFFFFFFFFFF000000), - cfbBits(0xFFFFFFFFFFF00000), - cfbBits(0xFFFFFFFFFFFF0000), - cfbBits(0xFFFFFFFFFFFFF000), - cfbBits(0xFFFFFFFFFFFFFF00), - cfbBits(0xFFFFFFFFFFFFFFF0), - }; -#endif /* PGSZ */ #endif /* PSZ == 4 */ #if PSZ == 8 -#if PGSZ == 32 PixelGroup cfbstarttab[] = { cfbBits(0x00000000), @@ -158,34 +111,9 @@ cfbBits(0xFFFF0000), cfbBits(0xFFFFFF00) }; -#else /* PGSZ == 64 */ -PixelGroup cfbstarttab[] = - { - cfbBits(0x0000000000000000), - cfbBits(0x00FFFFFFFFFFFFFF), - cfbBits(0x0000FFFFFFFFFFFF), - cfbBits(0x000000FFFFFFFFFF), - cfbBits(0x00000000FFFFFFFF), - cfbBits(0x0000000000FFFFFF), - cfbBits(0x000000000000FFFF), - cfbBits(0x00000000000000FF) - }; -PixelGroup cfbendtab[] = - { - cfbBits(0x0000000000000000), - cfbBits(0xFF00000000000000), - cfbBits(0xFFFF000000000000), - cfbBits(0xFFFFFF0000000000), - cfbBits(0xFFFFFFFF00000000), - cfbBits(0xFFFFFFFFFF000000), - cfbBits(0xFFFFFFFFFFFF0000), - cfbBits(0xFFFFFFFFFFFFFF00) - }; -#endif /* PGSZ */ #endif /* PSZ == 8 */ #if PSZ == 16 -#if PGSZ == 32 PixelGroup cfbstarttab[] = { cfbBits(0x00000000), @@ -196,26 +124,9 @@ cfbBits(0x00000000), cfbBits(0xFFFF0000), }; -#else /* PGSZ == 64 */ -PixelGroup cfbstarttab[] = - { - cfbBits(0x0000000000000000), - cfbBits(0x0000FFFFFFFFFFFF), - cfbBits(0x00000000FFFFFFFF), - cfbBits(0x000000000000FFFF), - }; -PixelGroup cfbendtab[] = - { - cfbBits(0x0000000000000000), - cfbBits(0xFFFF000000000000), - cfbBits(0xFFFFFFFF00000000), - cfbBits(0xFFFFFFFFFFFF0000), - }; -#endif /* PGSZ */ #endif #if PSZ == 24 -#if PGSZ == 32 PixelGroup cfbstarttab[] = { cfbBits(0x00000000), @@ -230,24 +141,9 @@ cfbBits(0xFFFF0000), cfbBits(0xFF000000), }; -#else /* PGSZ == 64 */ -PixelGroup cfbstarttab[] = - { - cfbBits(0x0000000000000000), - cfbBits(0x000000FFFFFFFFFF), - cfbBits(0x000000000000FFFF), - }; -PixelGroup cfbendtab[] = - { - cfbBits(0x0000000000000000), - cfbBits(0xFFFFFFFFFF000000), - cfbBits(0xFFFF000000000000), - }; -#endif /* PGSZ */ #endif /* PSZ == 24 */ #if PSZ == 32 -#if PGSZ == 32 PixelGroup cfbstarttab[] = { cfbBits(0x00000000), @@ -256,18 +152,6 @@ { cfbBits(0x00000000), }; -#else /* PGSZ == 64 */ -PixelGroup cfbstarttab[] = - { - cfbBits(0x0000000000000000), - cfbBits(0x00000000FFFFFFFF), - }; -PixelGroup cfbendtab[] = - { - cfbBits(0x0000000000000000), - cfbBits(0xFFFFFFFF00000000), - }; -#endif /* PGSZ */ #endif /* PSZ == 32 */ /* a hack, for now, since the entries for 0 need to be all @@ -276,7 +160,6 @@ 0 (which is only a problem in the horizontal line code.) */ #if PSZ == 4 -#if PGSZ == 32 PixelGroup cfbstartpartial[] = { cfbBits(0xFFFFFFFF), @@ -300,51 +183,9 @@ cfbBits(0xFFFFFF00), cfbBits(0xFFFFFFF0) }; -#else /* PGSZ == 64 */ -PixelGroup cfbstartpartial[] = - { - cfbBits(0xFFFFFFFFFFFFFFFF), - cfbBits(0x0FFFFFFFFFFFFFFF), - cfbBits(0x00FFFFFFFFFFFFFF), - cfbBits(0x000FFFFFFFFFFFFF), - cfbBits(0x0000FFFFFFFFFFFF), - cfbBits(0x00000FFFFFFFFFFF), - cfbBits(0x000000FFFFFFFFFF), - cfbBits(0x0000000FFFFFFFFF), - cfbBits(0x00000000FFFFFFFF), - cfbBits(0x000000000FFFFFFF), - cfbBits(0x0000000000FFFFFF), - cfbBits(0x00000000000FFFFF), - cfbBits(0x000000000000FFFF), - cfbBits(0x0000000000000FFF), - cfbBits(0x00000000000000FF), - cfbBits(0x000000000000000F), - }; - -PixelGroup cfbendpartial[] = - { - cfbBits(0xFFFFFFFFFFFFFFFF), - cfbBits(0xF000000000000000), - cfbBits(0xFF00000000000000), - cfbBits(0xFFF0000000000000), - cfbBits(0xFFFF000000000000), - cfbBits(0xFFFFF00000000000), - cfbBits(0xFFFFFF0000000000), - cfbBits(0xFFFFFFF000000000), - cfbBits(0xFFFFFFFF00000000), - cfbBits(0xFFFFFFFFF0000000), - cfbBits(0xFFFFFFFFFF000000), - cfbBits(0xFFFFFFFFFFF00000), - cfbBits(0xFFFFFFFFFFFF0000), - cfbBits(0xFFFFFFFFFFFFF000), - cfbBits(0xFFFFFFFFFFFFFF00), - cfbBits(0xFFFFFFFFFFFFFFF0), - }; -#endif /* PGSZ */ #endif /* PSZ == 4 */ #if PSZ == 8 -#if PGSZ == 32 PixelGroup cfbstartpartial[] = { cfbBits(0xFFFFFFFF), @@ -360,35 +201,9 @@ cfbBits(0xFFFF0000), cfbBits(0xFFFFFF00) }; -#else /* PGSZ == 64 */ -PixelGroup cfbstartpartial[] = - { - cfbBits(0xFFFFFFFFFFFFFFFF), - cfbBits(0x00FFFFFFFFFFFFFF), - cfbBits(0x0000FFFFFFFFFFFF), - cfbBits(0x000000FFFFFFFFFF), - cfbBits(0x00000000FFFFFFFF), - cfbBits(0x0000000000FFFFFF), - cfbBits(0x000000000000FFFF), - cfbBits(0x00000000000000FF), - }; - -PixelGroup cfbendpartial[] = - { - cfbBits(0xFFFFFFFFFFFFFFFF), - cfbBits(0xFF00000000000000), - cfbBits(0xFFFF000000000000), - cfbBits(0xFFFFFF0000000000), - cfbBits(0xFFFFFFFF00000000), - cfbBits(0xFFFFFFFFFF000000), - cfbBits(0xFFFFFFFFFFFF0000), - cfbBits(0xFFFFFFFFFFFFFF00), - }; -#endif /* PGSZ */ #endif /* PSZ == 8 */ #if PSZ == 16 -#if PGSZ == 32 PixelGroup cfbstartpartial[] = { cfbBits(0xFFFFFFFF), @@ -400,27 +215,9 @@ cfbBits(0xFFFFFFFF), cfbBits(0xFFFF0000), }; -#else /* PGSZ == 64 */ -PixelGroup cfbstartpartial[] = - { - cfbBits(0xFFFFFFFFFFFFFFFF), - cfbBits(0x0000FFFFFFFFFFFF), - cfbBits(0x00000000FFFFFFFF), - cfbBits(0x000000000000FFFF), - }; - -PixelGroup cfbendpartial[] = - { - cfbBits(0xFFFFFFFFFFFFFFFF), - cfbBits(0xFFFF000000000000), - cfbBits(0xFFFFFFFF00000000), - cfbBits(0xFFFFFFFFFFFF0000), - }; -#endif /* PGSZ */ #endif /* PSZ == 16 */ #if PSZ == 24 -#if PGSZ == 32 PixelGroup cfbstartpartial[] = { cfbBits(0xFFFFFFFF), @@ -436,33 +233,9 @@ cfbBits(0xFFFF0000), cfbBits(0xFF000000), }; -#else /* PGSZ == 64 */ -PixelGroup cfbstartpartial[] = - { - cfbBits(0xFFFFFFFFFFFFFFFF), - cfbBits(0x0000FFFFFFFFFFFF), - cfbBits(0x000000FFFFFFFFFF), - cfbBits(0x00000000FFFFFFFF), - cfbBits(0x0000000000FFFFFF), - cfbBits(0x000000000000FFFF), - cfbBits(0x00000000000000FF), - }; - -PixelGroup cfbendpartial[] = - { - cfbBits(0xFFFFFFFFFFFFFFFF), - cfbBits(0xFFFFFFFFFFFF0000), - cfbBits(0xFFFFFFFFFF000000), - cfbBits(0xFFFFFFFF00000000), - cfbBits(0xFFFFFF0000000000), - cfbBits(0xFFFF000000000000), - cfbBits(0xFF00000000000000), - }; -#endif /* PGSZ */ #endif /* PSZ == 24 */ #if PSZ == 32 -#if PGSZ == 32 PixelGroup cfbstartpartial[] = { cfbBits(0xFFFFFFFF), @@ -472,19 +245,6 @@ { cfbBits(0xFFFFFFFF), }; -#else /* PGSZ == 64 */ -PixelGroup cfbstartpartial[] = - { - cfbBits(0xFFFFFFFFFFFFFFFF), - cfbBits(0x00000000FFFFFFFF), - }; - -PixelGroup cfbendpartial[] = - { - cfbBits(0xFFFFFFFFFFFFFFFF), - cfbBits(0xFFFFFFFF00000000), - }; -#endif /* PGSZ */ #endif /* PSZ == 32 */ /* used for masking bits in bresenham lines @@ -495,7 +255,6 @@ */ #if PSZ == 4 -#if PGSZ == 32 PixelGroup cfbmask[] = { cfbBits(0xF0000000), @@ -518,50 +277,9 @@ cfbBits(0xFFFFFF0F), cfbBits(0xFFFFFFF0) }; -#else /* PGSZ == 64 */ -PixelGroup cfbmask[] = - { - cfbBits(0xF000000000000000), - cfbBits(0x0F00000000000000), - cfbBits(0x00F0000000000000), - cfbBits(0x000F000000000000), - cfbBits(0x0000F00000000000), - cfbBits(0x00000F0000000000), - cfbBits(0x000000F000000000), - cfbBits(0x0000000F00000000), - cfbBits(0x00000000F0000000), - cfbBits(0x000000000F000000), - cfbBits(0x0000000000F00000), - cfbBits(0x00000000000F0000), - cfbBits(0x000000000000F000), - cfbBits(0x0000000000000F00), - cfbBits(0x00000000000000F0), - cfbBits(0x000000000000000F), - }; -PixelGroup cfbrmask[] = - { - cfbBits(0x0FFFFFFFFFFFFFFF), - cfbBits(0xF0FFFFFFFFFFFFFF), - cfbBits(0xFF0FFFFFFFFFFFFF), - cfbBits(0xFFF0FFFFFFFFFFFF), - cfbBits(0xFFFF0FFFFFFFFFFF), - cfbBits(0xFFFFF0FFFFFFFFFF), - cfbBits(0xFFFFFF0FFFFFFFFF), - cfbBits(0xFFFFFFF0FFFFFFFF), - cfbBits(0xFFFFFFFF0FFFFFFF), - cfbBits(0xFFFFFFFFF0FFFFFF), - cfbBits(0xFFFFFFFFFF0FFFFF), - cfbBits(0xFFFFFFFFFFF0FFFF), - cfbBits(0xFFFFFFFFFFFF0FFF), - cfbBits(0xFFFFFFFFFFFFF0FF), - cfbBits(0xFFFFFFFFFFFFFF0F), - cfbBits(0xFFFFFFFFFFFFFFF0), - }; -#endif /* PGSZ */ #endif /* PSZ == 4 */ #if PSZ == 8 -#if PGSZ == 32 PixelGroup cfbmask[] = { cfbBits(0xFF000000), @@ -576,34 +294,9 @@ cfbBits(0xFFFF00FF), cfbBits(0xFFFFFF00) }; -#else /* PGSZ == 64 */ -PixelGroup cfbmask[] = - { - cfbBits(0xFF00000000000000), - cfbBits(0x00FF000000000000), - cfbBits(0x0000FF0000000000), - cfbBits(0x000000FF00000000), - cfbBits(0x00000000FF000000), - cfbBits(0x0000000000FF0000), - cfbBits(0x000000000000FF00), - cfbBits(0x00000000000000FF), - }; -PixelGroup cfbrmask[] = - { - cfbBits(0x00FFFFFFFFFFFFFF), - cfbBits(0xFF00FFFFFFFFFFFF), - cfbBits(0xFFFF00FFFFFFFFFF), - cfbBits(0xFFFFFF00FFFFFFFF), - cfbBits(0xFFFFFFFF00FFFFFF), - cfbBits(0xFFFFFFFFFF00FFFF), - cfbBits(0xFFFFFFFFFFFF00FF), - cfbBits(0xFFFFFFFFFFFFFF00), - }; -#endif /* PGSZ */ #endif /* PSZ == 8 */ #if PSZ == 16 -#if PGSZ == 32 PixelGroup cfbmask[] = { cfbBits(0xFFFF0000), @@ -614,26 +307,9 @@ cfbBits(0x0000FFFF), cfbBits(0xFFFF0000), }; -#else /* PGSZ == 64 */ -PixelGroup cfbmask[] = - { - cfbBits(0xFFFF000000000000), - cfbBits(0x0000FFFF00000000), - cfbBits(0x00000000FFFF0000), - cfbBits(0x000000000000FFFF), - }; -PixelGroup cfbrmask[] = - { - cfbBits(0x0000FFFFFFFFFFFF), - cfbBits(0xFFFF0000FFFFFFFF), - cfbBits(0xFFFFFFFF0000FFFF), - cfbBits(0xFFFFFFFFFFFF0000), - }; -#endif /* PGSZ */ #endif /* PSZ == 16 */ #if PSZ == 24 -#if PGSZ == 32 PixelGroup cfbmask[] = { cfbBits(0xFFFFFF00), @@ -656,36 +332,9 @@ cfbBits(0xFF000000), cfbBits(0xFFFFFFFF), }; -#else /* PGSZ == 64 */ -PixelGroup cfbmask[] = - { - cfbBits(0xFFFFFF0000000000), - cfbBits(0x000000FFFFFF0000), - cfbBits(0x000000000000FFFF), - }; -PixelGroup cfbmask2[] = - { - cfbBits(0x0000000000000000), - cfbBits(0x0000000000000000), - cfbBits(0xFF00000000000000), - }; -PixelGroup cfbrmask[] = - { - cfbBits(0x000000FFFFFFFFFF), - cfbBits(0xFFFFFF000000FFFF), - cfbBits(0xFFFFFFFFFFFF0000), - }; -PixelGroup cfbrmask2[] = - { - cfbBits(0x0000000000000000), - cfbBits(0x0000000000000000), - cfbBits(0x00FFFFFFFFFFFFFF), - }; -#endif /* PGSZ */ #endif /* PSZ == 24 */ #if PSZ == 32 -#if PGSZ == 32 PixelGroup cfbmask[] = { cfbBits(0xFFFFFFFF), @@ -694,18 +343,6 @@ { cfbBits(0xFFFFFFFF), }; -#else /* PGSZ == 64 */ -PixelGroup cfbmask[] = - { - cfbBits(0xFFFFFFFF00000000), - cfbBits(0x00000000FFFFFFFF), - }; -PixelGroup cfbrmask[] = - { - cfbBits(0x00000000FFFFFFFF), - cfbBits(0xFFFFFFFF00000000), - }; -#endif /* PGSZ */ #endif /* PSZ == 32 */ /* @@ -715,7 +352,6 @@ */ #if PSZ == 4 PixelGroup QuartetBitsTable[] = { -#if PGSZ == 32 #if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 00000000 */ 0x00000080, /* 1 - 10000000 */ @@ -737,51 +373,11 @@ 0x0000007F, /* 7 - 01111111 */ 0x000000FF /* 8 - 11111111 */ #endif /* (BITMAP_BIT_ORDER == MSBFirst) */ -#else /* PGSZ == 64 */ -#if (BITMAP_BIT_ORDER == MSBFirst) - 0x00000000, /* 0 - 0000000000000000 */ - 0x00008000, /* 1 - 1000000000000000 */ - 0x0000C000, /* 2 - 1100000000000000 */ - 0x0000E000, /* 3 - 1110000000000000 */ - 0x0000F000, /* 4 - 1111000000000000 */ - 0x0000F800, /* 5 - 1111100000000000 */ - 0x0000FC00, /* 6 - 1111110000000000 */ - 0x0000FE00, /* 7 - 1111111000000000 */ - 0x0000FF00, /* 8 - 1111111100000000 */ - 0x0000FF80, /* 9 - 1111111110000000 */ - 0x0000FFC0, /* 10- 1111111111000000 */ - 0x0000FFE0, /* 11- 1111111111100000 */ - 0x0000FFF0, /* 12- 1111111111110000 */ - 0x0000FFF8, /* 13- 1111111111111000 */ - 0x0000FFFC, /* 14- 1111111111111100 */ - 0x0000FFFE, /* 15- 1111111111111110 */ - 0x0000FFFF, /* 16- 1111111111111111 */ -#else /* (BITMAP_BIT_ORDER == LSBFirst */ - 0x00000000, /* 0 - 0000000000000000 */ - 0x00000001, /* 1 - 0000000000000001 */ - 0x00000003, /* 2 - 0000000000000011 */ - 0x00000007, /* 3 - 0000000000000111 */ - 0x0000000F, /* 4 - 0000000000001111 */ - 0x0000001F, /* 5 - 0000000000011111 */ - 0x0000003F, /* 6 - 0000000000111111 */ - 0x0000007F, /* 7 - 0000000001111111 */ - 0x000000FF, /* 8 - 0000000011111111 */ - 0x000001FF, /* 9 - 0000000111111111 */ - 0x000003FF, /* 10- 0000001111111111 */ - 0x000007FF, /* 11- 0000011111111111 */ - 0x00000FFF, /* 12- 0000111111111111 */ - 0x00001FFF, /* 13- 0001111111111111 */ - 0x00003FFF, /* 14- 0011111111111111 */ - 0x00007FFF, /* 15- 0111111111111111 */ - 0x0000FFFF, /* 16- 1111111111111111 */ -#endif /* (BITMAP_BIT_ORDER == MSBFirst) */ -#endif /* PGSZ */ }; #endif /* PSZ == 4 */ #if PSZ == 8 PixelGroup QuartetBitsTable[] = { -#if PGSZ == 32 #if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 0000 */ 0x00000008, /* 1 - 1000 */ @@ -795,35 +391,11 @@ 0x00000007, /* 3 - 0111 */ 0x0000000F /* 4 - 1111 */ #endif /* (BITMAP_BIT_ORDER == MSBFirst) */ -#else /* PGSZ == 64 */ -#if (BITMAP_BIT_ORDER == MSBFirst) - 0x00000000, /* 0 - 00000000 */ - 0x00000080, /* 1 - 10000000 */ - 0x000000C0, /* 2 - 11000000 */ - 0x000000E0, /* 3 - 11100000 */ - 0x000000F0, /* 4 - 11110000 */ - 0x000000F8, /* 5 - 11111000 */ - 0x000000FC, /* 6 - 11111100 */ - 0x000000FE, /* 7 - 11111110 */ - 0x000000FF /* 8 - 11111111 */ -#else /* (BITMAP_BIT_ORDER == LSBFirst */ - 0x00000000, /* 0 - 00000000 */ - 0x00000001, /* 1 - 00000001 */ - 0x00000003, /* 2 - 00000011 */ - 0x00000007, /* 3 - 00000111 */ - 0x0000000F, /* 4 - 10000111 */ - 0x0000001F, /* 5 - 00011111 */ - 0x0000003F, /* 6 - 00111111 */ - 0x0000007F, /* 7 - 01111111 */ - 0x000000FF /* 8 - 11111111 */ -#endif /* (BITMAP_BIT_ORDER == MSBFirst) */ -#endif /* PGSZ */ }; #endif /* PSZ == 8 */ #if PSZ == 16 PixelGroup QuartetBitsTable[] = { -#if PGSZ == 32 #if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 00 */ 0x00000002, /* 1 - 10 */ @@ -833,27 +405,11 @@ 0x00000001, /* 1 - 01 */ 0x00000003, /* 2 - 11 */ #endif /* (BITMAP_BIT_ORDER == MSBFirst) */ -#else /* PGSZ == 64 */ -#if (BITMAP_BIT_ORDER == MSBFirst) - 0x00000000, /* 0 - 0000 */ - 0x00000008, /* 1 - 1000 */ - 0x0000000C, /* 2 - 1100 */ - 0x0000000E, /* 3 - 1110 */ - 0x0000000F, /* 4 - 1111 */ -#else /* (BITMAP_BIT_ORDER == LSBFirst */ - 0x00000000, /* 0 - 0000 */ - 0x00000001, /* 1 - 0001 */ - 0x00000003, /* 2 - 0011 */ - 0x00000007, /* 3 - 0111 */ - 0x0000000F, /* 4 - 1111 */ -#endif /* (BITMAP_BIT_ORDER == MSBFirst) */ -#endif /* PGSZ */ }; #endif /* PSZ == 16 */ #if PSZ == 24 PixelGroup QuartetBitsTable[] = { -#if PGSZ == 32 #if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 0 */ 0x00000001, /* 1 - 1 */ @@ -861,23 +417,11 @@ 0x00000000, /* 0 - 0 */ 0x00000001, /* 1 - 1 */ #endif /* (BITMAP_BIT_ORDER == MSBFirst) */ -#else /* PGSZ == 64 */ -#if (BITMAP_BIT_ORDER == MSBFirst) - 0x00000000, /* 0 - 00 */ - 0x00000002, /* 1 - 10 */ - 0x00000003, /* 2 - 11*/ -#else /* (BITMAP_BIT_ORDER == LSBFirst */ - 0x00000000, /* 0 - 00 */ - 0x00000001, /* 1 - 01 */ - 0x00000003, /* 2 - 11 */ -#endif /* (BITMAP_BIT_ORDER == MSBFirst) */ -#endif /* PGSZ */ }; #endif /* PSZ == 24 */ #if PSZ == 32 PixelGroup QuartetBitsTable[] = { -#if PGSZ == 32 #if (BITMAP_BIT_ORDER == MSBFirst) 0x00000000, /* 0 - 0 */ 0x00000001, /* 1 - 1 */ @@ -885,17 +429,6 @@ 0x00000000, /* 0 - 0 */ 0x00000001, /* 1 - 1 */ #endif /* (BITMAP_BIT_ORDER == MSBFirst) */ -#else /* PGSZ == 64 */ -#if (BITMAP_BIT_ORDER == MSBFirst) - 0x00000000, /* 0 - 00 */ - 0x00000002, /* 1 - 10 */ - 0x00000003, /* 2 - 11*/ -#else /* (BITMAP_BIT_ORDER == LSBFirst */ - 0x00000000, /* 0 - 00 */ - 0x00000001, /* 1 - 01 */ - 0x00000003, /* 2 - 11 */ -#endif /* (BITMAP_BIT_ORDER == MSBFirst) */ -#endif /* PGSZ */ }; #endif /* PSZ == 32 */ @@ -905,7 +438,6 @@ * is handled by QuartetBitsTable above. */ #if PSZ == 4 -#if PGSZ == 32 PixelGroup QuartetPixelMaskTable[] = { 0x00000000, 0x0000000F, @@ -1164,17 +696,10 @@ 0xFFFFFFF0, 0xFFFFFFFF, }; -#else /* PGSZ == 64 */ -No QuartetPixelMaskTable for psz=PSZ -this would be a 64K entry table, a bit much I think. -Try breaking things in two: -mask = table[index&0xff00]<<32 | table[index&0xff] -#endif /* PGSZ */ #endif /* PSZ == 4 */ #if PSZ == 8 PixelGroup QuartetPixelMaskTable[] = { -#if PGSZ == 32 0x00000000, 0x000000FF, 0x0000FF00, @@ -1191,164 +716,22 @@ 0xFFFF00FF, 0xFFFFFF00, 0xFFFFFFFF -#else /* PGSZ == 64 */ - 0x0000000000000000, 0x00000000000000FF, - 0x000000000000FF00, 0x000000000000FFFF, - 0x0000000000FF0000, 0x0000000000FF00FF, - 0x0000000000FFFF00, 0x0000000000FFFFFF, - 0x00000000FF000000, 0x00000000FF0000FF, - 0x00000000FF00FF00, 0x00000000FF00FFFF, - 0x00000000FFFF0000, 0x00000000FFFF00FF, - 0x00000000FFFFFF00, 0x00000000FFFFFFFF, - 0x000000FF00000000, 0x000000FF000000FF, - 0x000000FF0000FF00, 0x000000FF0000FFFF, - 0x000000FF00FF0000, 0x000000FF00FF00FF, - 0x000000FF00FFFF00, 0x000000FF00FFFFFF, - 0x000000FFFF000000, 0x000000FFFF0000FF, - 0x000000FFFF00FF00, 0x000000FFFF00FFFF, - 0x000000FFFFFF0000, 0x000000FFFFFF00FF, - 0x000000FFFFFFFF00, 0x000000FFFFFFFFFF, - 0x0000FF0000000000, 0x0000FF00000000FF, - 0x0000FF000000FF00, 0x0000FF000000FFFF, - 0x0000FF0000FF0000, 0x0000FF0000FF00FF, - 0x0000FF0000FFFF00, 0x0000FF0000FFFFFF, - 0x0000FF00FF000000, 0x0000FF00FF0000FF, - 0x0000FF00FF00FF00, 0x0000FF00FF00FFFF, - 0x0000FF00FFFF0000, 0x0000FF00FFFF00FF, - 0x0000FF00FFFFFF00, 0x0000FF00FFFFFFFF, - 0x0000FFFF00000000, 0x0000FFFF000000FF, - 0x0000FFFF0000FF00, 0x0000FFFF0000FFFF, - 0x0000FFFF00FF0000, 0x0000FFFF00FF00FF, - 0x0000FFFF00FFFF00, 0x0000FFFF00FFFFFF, - 0x0000FFFFFF000000, 0x0000FFFFFF0000FF, - 0x0000FFFFFF00FF00, 0x0000FFFFFF00FFFF, - 0x0000FFFFFFFF0000, 0x0000FFFFFFFF00FF, - 0x0000FFFFFFFFFF00, 0x0000FFFFFFFFFFFF, - 0x00FF000000000000, 0x00FF0000000000FF, - 0x00FF00000000FF00, 0x00FF00000000FFFF, - 0x00FF000000FF0000, 0x00FF000000FF00FF, - 0x00FF000000FFFF00, 0x00FF000000FFFFFF, - 0x00FF0000FF000000, 0x00FF0000FF0000FF, - 0x00FF0000FF00FF00, 0x00FF0000FF00FFFF, - 0x00FF0000FFFF0000, 0x00FF0000FFFF00FF, - 0x00FF0000FFFFFF00, 0x00FF0000FFFFFFFF, - 0x00FF00FF00000000, 0x00FF00FF000000FF, - 0x00FF00FF0000FF00, 0x00FF00FF0000FFFF, - 0x00FF00FF00FF0000, 0x00FF00FF00FF00FF, - 0x00FF00FF00FFFF00, 0x00FF00FF00FFFFFF, - 0x00FF00FFFF000000, 0x00FF00FFFF0000FF, - 0x00FF00FFFF00FF00, 0x00FF00FFFF00FFFF, - 0x00FF00FFFFFF0000, 0x00FF00FFFFFF00FF, - 0x00FF00FFFFFFFF00, 0x00FF00FFFFFFFFFF, - 0x00FFFF0000000000, 0x00FFFF00000000FF, - 0x00FFFF000000FF00, 0x00FFFF000000FFFF, - 0x00FFFF0000FF0000, 0x00FFFF0000FF00FF, - 0x00FFFF0000FFFF00, 0x00FFFF0000FFFFFF, - 0x00FFFF00FF000000, 0x00FFFF00FF0000FF, - 0x00FFFF00FF00FF00, 0x00FFFF00FF00FFFF, - 0x00FFFF00FFFF0000, 0x00FFFF00FFFF00FF, - 0x00FFFF00FFFFFF00, 0x00FFFF00FFFFFFFF, - 0x00FFFFFF00000000, 0x00FFFFFF000000FF, - 0x00FFFFFF0000FF00, 0x00FFFFFF0000FFFF, - 0x00FFFFFF00FF0000, 0x00FFFFFF00FF00FF, - 0x00FFFFFF00FFFF00, 0x00FFFFFF00FFFFFF, - 0x00FFFFFFFF000000, 0x00FFFFFFFF0000FF, - 0x00FFFFFFFF00FF00, 0x00FFFFFFFF00FFFF, - 0x00FFFFFFFFFF0000, 0x00FFFFFFFFFF00FF, - 0x00FFFFFFFFFFFF00, 0x00FFFFFFFFFFFFFF, - 0xFF00000000000000, 0xFF000000000000FF, - 0xFF0000000000FF00, 0xFF0000000000FFFF, - 0xFF00000000FF0000, 0xFF00000000FF00FF, - 0xFF00000000FFFF00, 0xFF00000000FFFFFF, - 0xFF000000FF000000, 0xFF000000FF0000FF, - 0xFF000000FF00FF00, 0xFF000000FF00FFFF, - 0xFF000000FFFF0000, 0xFF000000FFFF00FF, - 0xFF000000FFFFFF00, 0xFF000000FFFFFFFF, - 0xFF0000FF00000000, 0xFF0000FF000000FF, - 0xFF0000FF0000FF00, 0xFF0000FF0000FFFF, - 0xFF0000FF00FF0000, 0xFF0000FF00FF00FF, - 0xFF0000FF00FFFF00, 0xFF0000FF00FFFFFF, - 0xFF0000FFFF000000, 0xFF0000FFFF0000FF, - 0xFF0000FFFF00FF00, 0xFF0000FFFF00FFFF, - 0xFF0000FFFFFF0000, 0xFF0000FFFFFF00FF, - 0xFF0000FFFFFFFF00, 0xFF0000FFFFFFFFFF, - 0xFF00FF0000000000, 0xFF00FF00000000FF, - 0xFF00FF000000FF00, 0xFF00FF000000FFFF, - 0xFF00FF0000FF0000, 0xFF00FF0000FF00FF, - 0xFF00FF0000FFFF00, 0xFF00FF0000FFFFFF, - 0xFF00FF00FF000000, 0xFF00FF00FF0000FF, - 0xFF00FF00FF00FF00, 0xFF00FF00FF00FFFF, - 0xFF00FF00FFFF0000, 0xFF00FF00FFFF00FF, - 0xFF00FF00FFFFFF00, 0xFF00FF00FFFFFFFF, - 0xFF00FFFF00000000, 0xFF00FFFF000000FF, - 0xFF00FFFF0000FF00, 0xFF00FFFF0000FFFF, - 0xFF00FFFF00FF0000, 0xFF00FFFF00FF00FF, - 0xFF00FFFF00FFFF00, 0xFF00FFFF00FFFFFF, - 0xFF00FFFFFF000000, 0xFF00FFFFFF0000FF, - 0xFF00FFFFFF00FF00, 0xFF00FFFFFF00FFFF, - 0xFF00FFFFFFFF0000, 0xFF00FFFFFFFF00FF, - 0xFF00FFFFFFFFFF00, 0xFF00FFFFFFFFFFFF, - 0xFFFF000000000000, 0xFFFF0000000000FF, - 0xFFFF00000000FF00, 0xFFFF00000000FFFF, - 0xFFFF000000FF0000, 0xFFFF000000FF00FF, - 0xFFFF000000FFFF00, 0xFFFF000000FFFFFF, - 0xFFFF0000FF000000, 0xFFFF0000FF0000FF, - 0xFFFF0000FF00FF00, 0xFFFF0000FF00FFFF, - 0xFFFF0000FFFF0000, 0xFFFF0000FFFF00FF, - 0xFFFF0000FFFFFF00, 0xFFFF0000FFFFFFFF, - 0xFFFF00FF00000000, 0xFFFF00FF000000FF, - 0xFFFF00FF0000FF00, 0xFFFF00FF0000FFFF, - 0xFFFF00FF00FF0000, 0xFFFF00FF00FF00FF, - 0xFFFF00FF00FFFF00, 0xFFFF00FF00FFFFFF, - 0xFFFF00FFFF000000, 0xFFFF00FFFF0000FF, - 0xFFFF00FFFF00FF00, 0xFFFF00FFFF00FFFF, - 0xFFFF00FFFFFF0000, 0xFFFF00FFFFFF00FF, - 0xFFFF00FFFFFFFF00, 0xFFFF00FFFFFFFFFF, - 0xFFFFFF0000000000, 0xFFFFFF00000000FF, - 0xFFFFFF000000FF00, 0xFFFFFF000000FFFF, - 0xFFFFFF0000FF0000, 0xFFFFFF0000FF00FF, - 0xFFFFFF0000FFFF00, 0xFFFFFF0000FFFFFF, - 0xFFFFFF00FF000000, 0xFFFFFF00FF0000FF, - 0xFFFFFF00FF00FF00, 0xFFFFFF00FF00FFFF, - 0xFFFFFF00FFFF0000, 0xFFFFFF00FFFF00FF, - 0xFFFFFF00FFFFFF00, 0xFFFFFF00FFFFFFFF, - 0xFFFFFFFF00000000, 0xFFFFFFFF000000FF, - 0xFFFFFFFF0000FF00, 0xFFFFFFFF0000FFFF, - 0xFFFFFFFF00FF0000, 0xFFFFFFFF00FF00FF, - 0xFFFFFFFF00FFFF00, 0xFFFFFFFF00FFFFFF, - 0xFFFFFFFFFF000000, 0xFFFFFFFFFF0000FF, - 0xFFFFFFFFFF00FF00, 0xFFFFFFFFFF00FFFF, - 0xFFFFFFFFFFFF0000, 0xFFFFFFFFFFFF00FF, - 0xFFFFFFFFFFFFFF00, 0xFFFFFFFFFFFFFFFF, -#endif /* PGSZ */ }; #endif /* PSZ == 8 */ #if PSZ == 16 PixelGroup QuartetPixelMaskTable[] = { -#if PGSZ == 32 0x00000000, 0x0000FFFF, 0xFFFF0000, 0xFFFFFFFF, -#else /* PGSZ == 64 */ - 0x0000000000000000, 0x000000000000FFFF, - 0x00000000FFFF0000, 0x00000000FFFFFFFF, - 0x0000FFFF00000000, 0x0000FFFF0000FFFF, - 0x0000FFFFFFFF0000, 0x0000FFFFFFFFFFFF, - 0xFFFF000000000000, 0xFFFF00000000FFFF, - 0xFFFF0000FFFF0000, 0xFFFF0000FFFFFFFF, - 0xFFFFFFFF00000000, 0xFFFFFFFF0000FFFF, - 0xFFFFFFFFFFFF0000, 0xFFFFFFFFFFFFFFFF, -#endif /* PGSZ */ }; #endif /* PSZ == 16 */ #if PSZ == 24 PixelGroup QuartetPixelMaskTable[] = { -#if PGSZ == 32 -/* Four pixels consist three pixel groups....*/ - 0x00000000, 0x00FFFFFF, /*0x00000000, *//*0*/ +/* Four pixels consist three pixel groups.... */ + 0x00000000, 0x00FFFFFF, /*0x00000000, *//*0*/ /* 0x00000000, 0x00000000, 0x00000000,*/ /*0*/ /* 0x00FFFFFF, 0x00000000, 0x00000000,*/ /*1*/ /* 0xFF000000, 0x0000FFFF, 0x00000000,*/ /*2*/ @@ -1365,24 +748,13 @@ /* 0x00FFFFFF, 0xFFFF0000, 0xFFFFFFFF,*/ /*13*/ /* 0xFF000000, 0xFFFFFFFF, 0xFFFFFFFF,*/ /*14*/ /* 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF,*/ /*15*/ -#else /* PGSZ == 64 */ - 0x0000000000000000, 0x0000000000FFFFFF, - 0x0000FFFFFF000000, 0xFFFFFFFFFFFFFFFF -#endif /* PGSZ */ }; #endif /* PSZ == 24 */ #if PSZ == 32 PixelGroup QuartetPixelMaskTable[] = { -#if PGSZ == 32 0x00000000, 0xFFFFFFFF, -#else /* PGSZ == 64 */ - 0x0000000000000000, - 0x00000000FFFFFFFF, - 0xFFFFFFFF00000000, - 0xFFFFFFFFFFFFFFFF -#endif /* PGSZ */ }; #endif /* PSZ == 32 */ Index: xc/programs/Xserver/cfb/cfbmskbits.h diff -u xc/programs/Xserver/cfb/cfbmskbits.h:3.16 xc/programs/Xserver/cfb/cfbmskbits.h:3.21 --- xc/programs/Xserver/cfb/cfbmskbits.h:3.16 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbmskbits.h Mon Dec 25 11:40:45 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbmskbits.h,v 3.16 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbmskbits.h,v 3.21 2006/12/25 16:40:45 tsi Exp $ */ /************************************************************ Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. @@ -33,11 +33,6 @@ #include <X11/X.h> #include <X11/Xmd.h> #include "servermd.h" -#if defined(XFREE86) || ( defined(__OpenBSD__) && defined(__alpha__) ) \ - || (defined(__bsdi__)) -#include "xf86_ansic.h" -#include "compiler.h" -#endif /* * ========================================================================== @@ -58,6 +53,7 @@ * name explanation * ---- ----------- * PSZ pixel size (in bits) + * PSZB pixel size (in bytes) * PGSZ pixel group size (in bits) * PGSZB pixel group size (in bytes) * PGSZBMSK mask with lowest PGSZB bits set to 1 @@ -127,11 +123,16 @@ #define PixelGroup CARD32 #define PGSZB 4 #endif /* PixelGroup */ + +#if !defined(PGSZB) || (PGSZB != 4) +# error "PGSZB is unspecified or no longer supported." +#endif #ifndef CfbBits #define CfbBits CARD32 #endif +#define PSZB (PSZ >> 3) #define PGSZ (PGSZB << 3) #define PPW (PGSZ/PSZ) #define PLST (PPW-1) @@ -409,30 +410,31 @@ # if (PSZ == 24 && PPW == 1) #define maskbits(x, w, startmask, endmask, nlw) {\ - startmask = cfbstarttab[(x)&3]; \ - endmask = cfbendtab[((x)+(w)) & 3]; \ - nlw = ((((x)+(w))*3)>>2) - (((x)*3 +3)>>2); \ + startmask = cfbstarttab[(x) & (PGSZB - 1)]; \ + endmask = cfbendtab[((x) + (w)) & (PGSZB - 1)]; \ + nlw = ((((x) + (w)) * PSZB) / PGSZB) - ((((x) + 1) * PSZB) / PGSZB); \ } #define mask32bits(x, w, startmask, endmask) \ - startmask = cfbstarttab[(x)&3]; \ - endmask = cfbendtab[((x)+(w)) & 3]; + startmask = cfbstarttab[(x) & (PGSZB - 1)]; \ + endmask = cfbendtab[((x) + (w)) & (PGSZB - 1)]; #define maskpartialbits(x, w, mask) \ - mask = cfbstartpartial[(x) & 3] & cfbendpartial[((x)+(w)) & 3]; + mask = cfbstartpartial[(x) & (PGSZB - 1)] & \ + cfbendpartial[((x) + (w)) & (PGSZB - 1)]; #define maskbits24(x, w, startmask, endmask, nlw) \ - startmask = cfbstarttab24[(x) & 3]; \ - endmask = cfbendtab24[((x)+(w)) & 3]; \ + startmask = cfbstarttab24[(x) & (PGSZB - 1)]; \ + endmask = cfbendtab24[((x) + (w)) & (PGSZB - 1)]; \ if (startmask){ \ - nlw = (((w) - (4 - ((x) & 3))) >> 2); \ + nlw = (((w) - (PGSZB - ((x) & (PGSZB - 1)))) / PGSZB); \ } else { \ - nlw = (w) >> 2; \ + nlw = (w) / PGSZB; \ } #define getbits24(psrc, dst, index) {\ int idx; \ - switch(idx = ((index)&3)<<1){ \ + switch(idx = ((index) & (PGSZB - 1)) << 1){ \ case 0: \ dst = (*(psrc) &cfbmask[idx]); \ break; \ @@ -448,7 +450,7 @@ #define putbits24(src, w, pdst, planemask, index) {\ PixelGroup dstpixel; \ unsigned int idx; \ - switch(idx = ((index)&3)<<1){ \ + switch(idx = ((index) & (PGSZB - 1)) << 1){ \ case 0: \ dstpixel = (*(pdst) &cfbmask[idx]); \ break; \ @@ -574,8 +576,10 @@ #if defined(__GNUC__) && defined(mc68020) #undef getbits #define FASTGETBITS(psrc, x, w, dst) \ - asm ("bfextu %3{%1:%2},%0" \ - : "=d" (dst) : "di" (x), "di" (w), "o" (*(char *)(psrc))) + __asm__ __volatile__ ( \ + "bfextu %3{%1:%2},%0" \ + : "=d" (dst) \ + : "di" (x), "di" (w), "o" (*(char *)(psrc))) #define getbits(psrc,x,w,dst) \ { \ @@ -584,9 +588,10 @@ } #define FASTPUTBITS(src, x, w, pdst) \ - asm ("bfins %3,%0{%1:%2}" \ - : "=o" (*(char *)(pdst)) \ - : "di" (x), "di" (w), "d" (src), "0" (*(char *) (pdst))) + __asm__ __volatile__ ( \ + "bfins %3,%0{%1:%2}" \ + : "+o" (*(char *)(pdst)) \ + : "di" (x), "di" (w), "d" (src)) #undef putbits #define putbits(src, x, w, pdst, planemask) \ @@ -727,20 +732,20 @@ } #if GETLEFTBITS_ALIGNMENT == 1 -#define getleftbits(psrc, w, dst) dst = *((unsigned int *) psrc) +#define getleftbits(psrc, w, dst) dst = *((unsigned int *) psrc) #define getleftbits24(psrc, w, dst, idx){ \ regiseter int index; \ - switch(index = ((idx)&3)<<1){ \ + switch(index = ((idx) & (PGSZB - 1)) << 1){ \ case 0: \ - dst = (*((unsigned int *) psrc))&cfbmask[index]; \ + dst = *((unsigned int *) psrc) & cfbmask[index]; \ break; \ case 2: \ case 4: \ - dst = BitLeft(((*((unsigned int *) psrc))&cfbmask[index]), cfb24Shift[index]); \ - dst |= BitRight(((*((unsigned int *) psrc)+1)&cfbmask[index]), cfb4Shift[index]); \ + dst = BitLeft((*((unsigned int *) psrc) & cfbmask[index]), cfb24Shift[index]); \ + dst |= BitRight(((*((unsigned int *) psrc) + 1) & cfbmask[index]), cfb4Shift[index]); \ break; \ case 6: \ - dst = BitLeft((*((unsigned int *) psrc)),cfb24Shift[index]); \ + dst = BitLeft(*((unsigned int *) psrc), cfb24Shift[index]); \ break; \ }; \ } @@ -749,16 +754,17 @@ #define getglyphbits(psrc, x, w, dst) \ { \ dst = BitLeft((unsigned) *(psrc), (x)); \ - if ( ((x) + (w)) > 32) \ + if (((x) + (w)) > 32) \ dst |= (BitRight((unsigned) *((psrc)+1), 32-(x))); \ } #if GETLEFTBITS_ALIGNMENT == 2 #define getleftbits(psrc, w, dst) \ { \ - if ( ((int)(psrc)) & 0x01 ) \ - getglyphbits( ((unsigned int *)(((char *)(psrc))-1)), 8, (w), (dst) ); \ + if (((int)(psrc)) & 0x01 ) \ + getglyphbits(((unsigned int *)(((char *)(psrc)) - 1)), 8, (w), \ + (dst)); \ else \ - dst = *((unsigned int *) psrc); \ + dst = *((unsigned int *) psrc); \ } #endif /* GETLEFTBITS_ALIGNMENT == 2 */ @@ -766,11 +772,9 @@ #define getleftbits(psrc, w, dst) \ { \ int off, off_b; \ - off_b = (off = ( ((int)(psrc)) & 0x03)) << 3; \ - getglyphbits( \ - (unsigned int *)( ((char *)(psrc)) - off), \ - (off_b), (w), (dst) \ - ); \ + off_b = (off = (((int)(psrc)) & (PGSZB - 1))) << 3; \ + getglyphbits((unsigned int *)(((char *)(psrc)) - off), (off_b), (w), \ + (dst)); \ } #endif /* GETLEFTBITS_ALIGNMENT == 4 */ @@ -823,15 +827,15 @@ } #else /* BITMAP_BIT_ORDER == LSB */ -/* this must load 32 bits worth; for most machines, thats an int */ -#define CfbFetchUnaligned(x) ldl_u(x) - #define getstipplepixels( psrcstip, xt, w, ones, psrcpix, destpix ) \ { \ - PixelGroup q; \ - q = CfbFetchUnaligned(psrcstip) >> (xt); \ - if ( ((xt)+(w)) > (PPW*PSZ) ) \ - q |= (CfbFetchUnaligned((psrcstip)+1)) << ((PPW*PSZ)-(xt)); \ + PixelGroup q, tmp; \ + memmove(&tmp, psrcstip, sizeof(PixelGroup)); \ + q = tmp >> (xt); \ + if ( ((xt)+(w)) > (PPW*PSZ) ) { \ + memmove(&tmp, (psrcstip) + 1, sizeof(PixelGroup)); \ + q |= tmp << ((PPW*PSZ)-(xt)); \ + } \ q = QuartetBitsTable[(w)] & ((ones) ? q : ~q); \ *(destpix) = (*(psrcpix)) & QuartetPixelMaskTable[q]; \ } @@ -843,12 +847,12 @@ CfbBits src; \ unsigned int sidx; \ unsigned int didx; \ - sidx = ((srcindex) & 3)<<1; \ - didx = ((dstindex) & 3)<<1; \ + sidx = ((srcindex) & (PGSZB - 1)) << 1; \ + didx = ((dstindex) & (PGSZB - 1)) << 1; \ q = *(psrcstip) >> (xt); \ -/* if((srcindex)!=0)*/ \ -/* src = (((*(psrcpix)) << cfb24Shift[sidx]) & (cfbmask[sidx])) |*/ \ -/* (((*((psrcpix)+1)) << cfb24Shift[sidx+1]) & (cfbmask[sidx+1])); */\ +/* if((srcindex)!=0) */ \ +/* src = (((*(psrcpix)) << cfb24Shift[sidx]) & (cfbmask[sidx])) | */ \ +/* (((*((psrcpix)+1)) << cfb24Shift[sidx+1]) & (cfbmask[sidx+1])); */ \ /* else */\ src = (*(psrcpix))&0xFFFFFF; \ if ( ((xt)+(w)) > PGSZ ) \ Index: xc/programs/Xserver/cfb/cfbply1rct.c diff -u xc/programs/Xserver/cfb/cfbply1rct.c:3.13 xc/programs/Xserver/cfb/cfbply1rct.c:3.14 --- xc/programs/Xserver/cfb/cfbply1rct.c:3.13 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbply1rct.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbply1rct.c,v 3.13 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbply1rct.c,v 3.14 2006/12/25 15:35:16 tsi Exp $ */ /* * Copyright 1990, 1998 The Open Group @@ -276,20 +276,16 @@ l -= c; #endif -#if PGSZ == 32 #define LWRD_SHIFT 2 -#else /* PGSZ == 64 */ -#define LWRD_SHIFT 3 -#endif /* PGSZ */ #if PSZ == 24 - addr = (CfbBits *)((char *)addrl + ((l * 3) & ~0x03)); + addr = (CfbBits *)((char *)addrl + ((l * PSZB) & ~(PGSZB - 1))); if (nmiddle <= 1){ if (nmiddle) RROP_SOLID24(addr, l); } else { maskbits(l, nmiddle, startmask, endmask, nmiddle); - pidx = l & 3; + pidx = l & (PGSZB - 1); if (startmask){ RROP_SOLID_MASK(addr, startmask, pidx-1); addr++; Index: xc/programs/Xserver/cfb/cfbpntwin.c diff -u xc/programs/Xserver/cfb/cfbpntwin.c:3.11 xc/programs/Xserver/cfb/cfbpntwin.c:3.12 --- xc/programs/Xserver/cfb/cfbpntwin.c:3.11 Sun Feb 19 10:51:18 2006 +++ xc/programs/Xserver/cfb/cfbpntwin.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbpntwin.c,v 3.11 2006/02/19 15:51:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbpntwin.c,v 3.12 2006/12/25 15:35:16 tsi Exp $ */ /*********************************************************** Copyright 1987, 1998 The Open Group @@ -230,18 +230,18 @@ { #endif #if PSZ == 24 -/* _Box has x1, y1, x2, y2*/ - leftIndex = pBox->x1 & 3; - rightIndex = ((leftIndex+w)<5)?0:(pBox->x2 &3); + /* _Box has x1, y1, x2, y2*/ + leftIndex = pBox->x1 & (PGSZB - 1); + rightIndex = ((leftIndex + w) < 5) ? 0 : (pBox->x2 & (PGSZB - 1)); nmiddle = w - rightIndex; if(leftIndex){ - nmiddle -= (4 - leftIndex); + nmiddle -= (PGSZB - leftIndex); } nmiddle >>= 2; if(nmiddle < 0) nmiddle = 0; - pdst = pdstBase + pBox->y1 * widthDst + ((pBox->x1*3) >> 2); + pdst = pdstBase + pBox->y1 * widthDst + ((pBox->x1 * PSZB) / PGSZB); switch(leftIndex+w){ case 4: @@ -341,7 +341,7 @@ { w = nmiddle; pdstULC = pdst; -/* maskbits (pBox->x1, w, leftMask, rightMask, nmiddle);*/ +/* maskbits (pBox->x1, w, leftMask, rightMask, nmiddle); */ while(h--){ nmiddle = w; pdst = pdstULC; @@ -477,28 +477,29 @@ w = pBox->x2 - pBox->x1; h = pBox->y2 - pBox->y1; y = pBox->y1; - leftIndex = pBox->x1 & 3; -/* rightIndex = ((leftIndex+w)<5)?0:pBox->x2 &3;*/ - rightIndex = pBox->x2 &3; + leftIndex = pBox->x1 & (PGSZB - 1); +/* rightIndex = ((leftIndex + w) < 5) ? 0 : pBox->x2 & (PGSZB - 1); */ + rightIndex = pBox->x2 & (PGSZB - 1); nmiddle = w - rightIndex; if(leftIndex){ - nmiddle -= (4 - leftIndex); + nmiddle -= (PGSZB - leftIndex); } nmiddle >>= 2; if(nmiddle < 0) nmiddle = 0; - pdst = pdstBase + ((pBox->x1 *3)>> 2) + pBox->y1 * widthDst; + pdst = pdstBase + ((pBox->x1 * PSZB) / PGSZB) + pBox->y1 * widthDst; srcy = y % tileHeight; -#define StepTile piQxelArray[0] = (psrc[srcy] & 0xFFFFFF) | ((psrc[srcy] & 0xFF)<<24); \ - piQxelArray[1] = (psrc[srcy] & 0xFFFF00) | ((psrc[srcy] & 0xFFFF)<<16); \ - piQxelArray[2] = ((psrc[srcy] & 0xFF0000)>>16) | \ - ((psrc[srcy] & 0xFFFFFF)<<8); \ - /*rrop_xor = psrc[srcy];*/ \ - ++srcy; \ - if (srcy == tileHeight) \ - srcy = 0; +#define StepTile \ + piQxelArray[0] = (psrc[srcy] & 0xFFFFFF) | ((psrc[srcy] & 0xFF) << 24); \ + piQxelArray[1] = (psrc[srcy] & 0xFFFF00) | ((psrc[srcy] & 0xFFFF) << 16); \ + piQxelArray[2] = ((psrc[srcy] & 0xFF0000) >> 16) | \ + ((psrc[srcy] & 0xFFFFFF) << 8); \ + /* rrop_xor = psrc[srcy]; */ \ + ++srcy; \ + if (srcy == tileHeight) \ + srcy = 0; switch(leftIndex+w){ case 4: Index: xc/programs/Xserver/cfb/cfbpolypnt.c diff -u xc/programs/Xserver/cfb/cfbpolypnt.c:3.8 xc/programs/Xserver/cfb/cfbpolypnt.c:3.9 --- xc/programs/Xserver/cfb/cfbpolypnt.c:3.8 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbpolypnt.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbpolypnt.c,v 3.8 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbpolypnt.c,v 3.9 2006/12/25 15:35:16 tsi Exp $ */ /************************************************************ Copyright 1989, 1998 The Open Group @@ -131,7 +131,8 @@ #if PSZ == 24 PointLoop( xtmp = pDrawable->x + intToX(pt); - p = addrp + (intToY(pt) << npwidth) + ((xtmp * 3) >>2); + p = addrp + (intToY(pt) << npwidth) + + ((xtmp * PSZB) / PGSZB); RROP_SOLID24_COPY(p, xtmp)) #else PointLoop(*(addrp + (intToY(pt) << npwidth) + intToX(pt)) = xor;) @@ -149,7 +150,8 @@ #if PSZ == 24 PointLoop( xtmp = pDrawable->x + intToX(pt); - p = addrp + intToY(pt) * npwidth + ((xtmp * 3) >> 2); + p = addrp + intToY(pt) * npwidth + + ((xtmp * PSZB) / PGSZB); RROP_SOLID24_COPY(p, xtmp)) #else PointLoop(*(addrp + intToY(pt) * npwidth + intToX(pt)) = xor;) @@ -163,7 +165,7 @@ RROP_SET_SETUP(xor, and) PointLoop( xtmp = pDrawable->x + intToX(pt); - p = addrp + intToY(pt) * npwidth + ((xtmp * 3) >> 2); + p = addrp + intToY(pt) * npwidth + ((xtmp * PSZB) / PGSZB); RROP_SOLID24_SET(p, xtmp)) #else PointLoop( addrpt = addrp + intToY(pt) * npwidth + intToX(pt); Index: xc/programs/Xserver/cfb/cfbrrop.h diff -u xc/programs/Xserver/cfb/cfbrrop.h:3.13 xc/programs/Xserver/cfb/cfbrrop.h:3.15 --- xc/programs/Xserver/cfb/cfbrrop.h:3.13 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbrrop.h Mon Dec 25 10:35:16 2006 @@ -25,7 +25,7 @@ * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/programs/Xserver/cfb/cfbrrop.h,v 3.13 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbrrop.h,v 3.15 2006/12/25 15:35:16 tsi Exp $ */ #ifndef GXcopy #include <X11/X.h> @@ -274,40 +274,29 @@ #define RROP_NAME(prefix) RROP_NAME_CAT(prefix,General) #endif /* GXset */ -#define RROP_UNROLL_CASE1(p,i) case (i): RROP_SOLID((p) - (i)); -#define RROP_UNROLL_CASE2(p,i) RROP_UNROLL_CASE1(p,(i)+1) RROP_UNROLL_CASE1(p,i) -#define RROP_UNROLL_CASE4(p,i) RROP_UNROLL_CASE2(p,(i)+2) RROP_UNROLL_CASE2(p,i) -#define RROP_UNROLL_CASE8(p,i) RROP_UNROLL_CASE4(p,(i)+4) RROP_UNROLL_CASE4(p,i) -#define RROP_UNROLL_CASE16(p,i) RROP_UNROLL_CASE8(p,(i)+8) RROP_UNROLL_CASE8(p,i) +#define RROP_UNROLL_CASE1(p,i) case (i): RROP_SOLID((p) - (i)); +#define RROP_UNROLL_CASE2(p,i) RROP_UNROLL_CASE1(p,(i)+1) RROP_UNROLL_CASE1(p,i) +#define RROP_UNROLL_CASE4(p,i) RROP_UNROLL_CASE2(p,(i)+2) RROP_UNROLL_CASE2(p,i) +#define RROP_UNROLL_CASE8(p,i) RROP_UNROLL_CASE4(p,(i)+4) RROP_UNROLL_CASE4(p,i) +#define RROP_UNROLL_CASE16(p,i) RROP_UNROLL_CASE8(p,(i)+8) RROP_UNROLL_CASE8(p,i) + #define RROP_UNROLL_CASE3(p) RROP_UNROLL_CASE2(p,2) RROP_UNROLL_CASE1(p,1) #define RROP_UNROLL_CASE7(p) RROP_UNROLL_CASE4(p,4) RROP_UNROLL_CASE3(p) #define RROP_UNROLL_CASE15(p) RROP_UNROLL_CASE8(p,8) RROP_UNROLL_CASE7(p) #define RROP_UNROLL_CASE31(p) RROP_UNROLL_CASE16(p,16) RROP_UNROLL_CASE15(p) -#ifdef LONG64 -#define RROP_UNROLL_CASE63(p) RROP_UNROLL_CASE32(p,32) RROP_UNROLL_CASE31(p) -#endif /* LONG64 */ - -#define RROP_UNROLL_LOOP1(p,i) RROP_SOLID((p) + (i)); -#define RROP_UNROLL_LOOP2(p,i) RROP_UNROLL_LOOP1(p,(i)) RROP_UNROLL_LOOP1(p,(i)+1) -#define RROP_UNROLL_LOOP4(p,i) RROP_UNROLL_LOOP2(p,(i)) RROP_UNROLL_LOOP2(p,(i)+2) -#define RROP_UNROLL_LOOP8(p,i) RROP_UNROLL_LOOP4(p,(i)) RROP_UNROLL_LOOP4(p,(i)+4) -#define RROP_UNROLL_LOOP16(p,i) RROP_UNROLL_LOOP8(p,(i)) RROP_UNROLL_LOOP8(p,(i)+8) -#define RROP_UNROLL_LOOP32(p,i) RROP_UNROLL_LOOP16(p,(i)) RROP_UNROLL_LOOP16(p,(i)+16) -#ifdef LONG64 -#define RROP_UNROLL_LOOP64(p,i) RROP_UNROLL_LOOP32(p,(i)) RROP_UNROLL_LOOP32(p,(i)+32) -#endif /* LONG64 */ + +#define RROP_UNROLL_LOOP1(p,i) RROP_SOLID((p) + (i)); +#define RROP_UNROLL_LOOP2(p,i) RROP_UNROLL_LOOP1(p,(i)) RROP_UNROLL_LOOP1(p,(i)+1) +#define RROP_UNROLL_LOOP4(p,i) RROP_UNROLL_LOOP2(p,(i)) RROP_UNROLL_LOOP2(p,(i)+2) +#define RROP_UNROLL_LOOP8(p,i) RROP_UNROLL_LOOP4(p,(i)) RROP_UNROLL_LOOP4(p,(i)+4) +#define RROP_UNROLL_LOOP16(p,i) RROP_UNROLL_LOOP8(p,(i)) RROP_UNROLL_LOOP8(p,(i)+8) +#define RROP_UNROLL_LOOP32(p,i) RROP_UNROLL_LOOP16(p,(i)) RROP_UNROLL_LOOP16(p,(i)+16) #if defined (FAST_CONSTANT_OFFSET_MODE) && defined (SHARED_IDCACHE) && (RROP == GXcopy) -#ifdef LONG64 -#define RROP_UNROLL_SHIFT 6 -#define RROP_UNROLL_CASE(p) RROP_UNROLL_CASE63(p) -#define RROP_UNROLL_LOOP(p) RROP_UNROLL_LOOP64(p,-64) -#else /* not LONG64 */ #define RROP_UNROLL_SHIFT 5 #define RROP_UNROLL_CASE(p) RROP_UNROLL_CASE31(p) #define RROP_UNROLL_LOOP(p) RROP_UNROLL_LOOP32(p,-32) -#endif /* LONG64 */ #define RROP_UNROLL (1<<RROP_UNROLL_SHIFT) #define RROP_UNROLL_MASK (RROP_UNROLL-1) Index: xc/programs/Xserver/cfb/cfbsetsp.c diff -u xc/programs/Xserver/cfb/cfbsetsp.c:3.8 xc/programs/Xserver/cfb/cfbsetsp.c:3.9 --- xc/programs/Xserver/cfb/cfbsetsp.c:3.8 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbsetsp.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbsetsp.c,v 3.8 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbsetsp.c,v 3.9 2006/12/25 15:35:16 tsi Exp $ */ /*********************************************************** Copyright 1987, 1998 The Open Group @@ -59,7 +59,7 @@ #include "cfb.h" #include "cfbmskbits.h" -#include <mergerop.h> +#include "mergerop.h" /* cfbSetScanline -- copies the bits from psrc to the drawable starting at * (xStart, y) and continuing to (xEnd, y). xOrigin tells us where psrc @@ -103,9 +103,9 @@ #if PSZ == 24 pdst = pdstBase + (y * widthDst); xIndex = xStart; - pdstb = (char *)pdst + (xStart * 3); + pdstb = (char *)pdst + (xStart * PSZB); offSrc = xStart - xOrigin; - psrcb = (char *)psrc + (offSrc * 3); + psrcb = (char *)psrc + (offSrc * PSZB); #else pdst = pdstBase + (y * widthDst) + (xStart >> PWSH); psrc += (xStart - xOrigin) >> PWSH; @@ -116,14 +116,14 @@ #if PSZ == 24 nl = w; while (nl--){ - psrc = (unsigned int *)((unsigned long)psrcb & ~0x03); + psrc = (unsigned int *)((unsigned long)psrcb & ~(PGSZB - 1)); getbits24(psrc, tmpSrc, offSrc); - pdst = (int *)((unsigned long)pdstb & ~0x03); + pdst = (int *)((unsigned long)pdstb & ~(PGSZB - 1)); DoMergeRop24(tmpSrc, pdst, xIndex); offSrc++; - psrcb += 3; + psrcb += PSZB; xIndex++; - pdstb += 3; + pdstb += PSZB; } #else /* PSZ == 24 */ dstBit = xStart & PIM; Index: xc/programs/Xserver/cfb/cfbsolid.c diff -u xc/programs/Xserver/cfb/cfbsolid.c:3.11 xc/programs/Xserver/cfb/cfbsolid.c:3.12 --- xc/programs/Xserver/cfb/cfbsolid.c:3.11 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbsolid.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbsolid.c,v 3.11 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbsolid.c,v 3.12 2006/12/25 15:35:16 tsi Exp $ */ /* * Copyright 1990, 1998 The Open Group @@ -45,7 +45,7 @@ #if defined(FAST_CONSTANT_OFFSET_MODE) && (RROP != GXcopy) # define Expand(left,right,leftAdjust) {\ - int part = nmiddle & 3; \ + int part = nmiddle & (PGSZB - 1); \ int widthStep; \ widthStep = widthDst - nmiddle - leftAdjust; \ nmiddle >>= 2; \ @@ -152,19 +152,19 @@ { #endif #if PSZ == 24 - leftIndex = pBox->x1 &3; -/* rightIndex = ((leftIndex+w)<5)?0:pBox->x2 &3;*/ - rightIndex = pBox->x2 &3; + leftIndex = pBox->x1 & (PGSZB - 1); +/* rightIndex = ((leftIndex + w) < 5) ? 0 : pBox->x2 & (PGSZB - 1); */ + rightIndex = pBox->x2 & (PGSZB - 1); nmiddle = w - rightIndex; if(leftIndex){ - nmiddle -= (4 - leftIndex); + nmiddle -= (PGSZB - leftIndex); } nmiddle >>= 2; if(nmiddle < 0) nmiddle = 0; - pdstRect += (pBox->x1 * 3) >> 2; + pdstRect += (pBox->x1 * PSZB) / PGSZB; pdst = pdstRect; switch(leftIndex+w){ case 4: @@ -824,20 +824,20 @@ if (!w) continue; #if PSZ == 24 - leftIndex = x &3; -/* rightIndex = ((leftIndex+w)<5)?0:(x+w)&3;*/ - rightIndex = (x+w)&3; + leftIndex = x & (PGSZB - 1); +/* rightIndex = ((leftIndex + w) < 5) ? 0 : (x + w) & (PGSZB - 1); */ + rightIndex = (x + w) & (PGSZB - 1); nlmiddle = w - rightIndex; if(leftIndex){ - nlmiddle -= (4 - leftIndex); + nlmiddle -= (PGSZB - leftIndex); } -/* nlmiddle += 3;*/ +/* nlmiddle += PSZB; */ nlmiddle >>= 2; if(nlmiddle < 0) nlmiddle = 0; - pdst += (x >> 2)*3; + pdst += (x / PGSZB) * PSZB; pdst += leftIndex? (leftIndex -1):0; switch(leftIndex+w){ case 4: @@ -1018,7 +1018,7 @@ pdst--; break; case 2: -/* pdst++;*/ +/* pdst++; */ #if RROP == GXcopy *pdst = ((*pdst) & 0xFFFF) | (piQxelXor[1] & 0xFFFF0000); pdst++; Index: xc/programs/Xserver/cfb/cfbteblt8.c diff -u xc/programs/Xserver/cfb/cfbteblt8.c:1.9 xc/programs/Xserver/cfb/cfbteblt8.c:1.10 --- xc/programs/Xserver/cfb/cfbteblt8.c:1.9 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbteblt8.c Mon Dec 25 10:35:16 2006 @@ -3,7 +3,7 @@ * 8 bit displays, in Copy mode with no clipping. */ -/* $XFree86: xc/programs/Xserver/cfb/cfbteblt8.c,v 1.9 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbteblt8.c,v 1.10 2006/12/25 15:35:16 tsi Exp $ */ /* Copyright 1989, 1998 The Open Group @@ -308,13 +308,8 @@ #define StoreBits(o) StorePixels(o,GetPixelGroup(c)); #define FirstStep Step #else -#if PGSZ == 64 -#define StoreBits(o) StorePixels(o,cfb8Pixels[(c) & PGSZBMSK]); -#define FirstStep Step -#else /* PGSZ == 32 */ #define StoreBits(o) StorePixels(o,*((CfbBits *) (((char *) cfb8Pixels) + (c & 0x3c)))); #define FirstStep c = BitLeft (c, 2); -#endif /* PGSZ */ #endif /* BITMAP_BIT_ORDER */ @@ -477,7 +472,7 @@ } else { -#if NGLYPHS == 4 && PGSZ == 32 +#if NGLYPHS == 4 ew = widthGlyph; /* widthGlyphs >> 2 */ #else ew = widthGlyphs >> PWSH; Index: xc/programs/Xserver/cfb/cfbtegblt.c diff -u xc/programs/Xserver/cfb/cfbtegblt.c:3.9 xc/programs/Xserver/cfb/cfbtegblt.c:3.10 --- xc/programs/Xserver/cfb/cfbtegblt.c:3.9 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbtegblt.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbtegblt.c,v 3.9 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbtegblt.c,v 3.10 2006/12/25 15:35:16 tsi Exp $ */ /*********************************************************** Copyright 1987, 1998 The Open Group @@ -174,7 +174,7 @@ { #if PSZ == 24 w = 1; - ptemp = (CfbBits *)(pglyph + ((xtemp *3)>> 2)); + ptemp = (CfbBits *)(pglyph + ((xtemp * PSZB) / PGSZB)); getstipplepixels24(ptemp,xtemp,0,&bgfill,&tmpDst1, xtemp); getstipplepixels24(ptemp,xtemp,1,&fgfill,&tmpDst2, xtemp); #else @@ -189,7 +189,7 @@ { CfbBits tmpDst = tmpDst1 | tmpDst2; #if PSZ == 24 - CfbBits *pdsttmp = pdst + ((x*3) >> 2); + CfbBits *pdsttmp = pdst + ((x * PSZB) / PGSZB); putbits24(tmpDst,w,pdsttmp,pGC->planemask,x); #else CfbBits *pdsttmp = pdst + (x >> PWSH); Index: xc/programs/Xserver/cfb/cfbtile32.c diff -u xc/programs/Xserver/cfb/cfbtile32.c:3.10 xc/programs/Xserver/cfb/cfbtile32.c:3.11 --- xc/programs/Xserver/cfb/cfbtile32.c:3.10 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbtile32.c Mon Dec 25 10:35:16 2006 @@ -2,7 +2,7 @@ * Fill 32 bit tiled rectangles. Used by both PolyFillRect and PaintWindow. * no depth dependencies. */ -/* $XFree86: xc/programs/Xserver/cfb/cfbtile32.c,v 3.10 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbtile32.c,v 3.11 2006/12/25 15:35:16 tsi Exp $ */ /* @@ -81,7 +81,7 @@ while (nlw--) \ { \ STORE24(p,xtmp); \ - if(xtmp&3) p++; \ + if(xtmp & (PGSZB - 1)) p++; \ xtmp++; \ } \ right \ @@ -212,15 +212,17 @@ y = pBox->y1; #if PSZ == 24 xtmp = pBox->x1; - p = pbits + (y * nlwDst) + ((pBox->x1*3) >> 2); -/* p = pbits + (y * nlwDst) + ((pBox->x1>> 2)*3);*/ + p = pbits + (y * nlwDst) + ((pBox->x1 * PSZB) / PGSZB); +/* p = pbits + (y * nlwDst) + ((pBox->x1 / PGSZB) * PSZB); */ #else p = pbits + (y * nlwDst) + (pBox->x1 >> PWSH); #endif srcy = y % tileHeight; #if PSZ == 24 - if (w == 1 && ((pBox->x1 & 3) == 0 || (pBox->x1 & 3) == 3)) + if (w == 1 && + ((pBox->x1 & (PGSZB - 1)) == 0 || + (pBox->x1 & (PGSZB - 1)) == (PGSZB - 1))) #else if ( ((pBox->x1 & PIM) + w) <= PPW) #endif @@ -346,9 +348,9 @@ ++ppt; w = *pwidth++; #if PSZ == 24 -/* p = pbits + (y * nlwDst) + ((x*3) >> 2);*/ +/* p = pbits + (y * nlwDst) + ((x * PSZB) / PGSZB); */ xtmp = x; - p = pbits + (y * nlwDst) + ((x >> 2)*3); + p = pbits + (y * nlwDst) + ((x / PGSZB) * PSZB); #else p = pbits + (y * nlwDst) + (x >> PWSH); #endif @@ -356,7 +358,7 @@ MROP_PREBUILD(srcpix); #if PSZ == 24 - if ((x & 3) + w < 5) + if ((x & (PGSZB - 1)) + w < 5) #else if ((x & PIM) + w < PPW) #endif @@ -371,7 +373,7 @@ { *p = MROP_PREBUILT_MASK(srcpix, *p, startmask); #if PSZ == 24 - if(xtmp&3) p++; + if(xtmp & (PGSZB - 1)) p++; xtmp++; #else p++; @@ -381,7 +383,7 @@ { #if PSZ == 24 STORE24(p,xtmp); - if(xtmp&3) p++; + if(xtmp & (PGSZB - 1)) p++; ++xtmp; #else STORE(p); @@ -405,8 +407,8 @@ ++ppt; w = *pwidth++; #if PSZ == 24 -/* p = pbits + (y * nlwDst) + ((x *3)>> 2);*/ - p = pbits + (y * nlwDst) + ((x >> 2)*3); +/* p = pbits + (y * nlwDst) + ((x * PSZB) / PGSZB); */ + p = pbits + (y * nlwDst) + ((x / PGSZB) * PSZB); xtmp = x; #else p = pbits + (y * nlwDst) + (x >> PWSH); @@ -415,7 +417,7 @@ MROP_PREBUILD(srcpix); #if PSZ == 24 - if ((x & 3) + w < 5) + if ((x & (PGSZB - 1)) + w < 5) #else if ((x & PIM) + w < PPW) #endif @@ -430,7 +432,7 @@ { *p = MROP_PREBUILT_MASK(srcpix, *p, startmask); #if PSZ == 24 - if(xtmp&3)p++; + if (xtmp & (PGSZB - 1)) p++; xtmp++; #else p++; @@ -440,7 +442,7 @@ { #if PSZ == 24 STORE24(p,xtmp); - if(xtmp&3)p++; + if (xtmp & (PGSZB - 1)) p++; xtmp++; #else STORE(p); Index: xc/programs/Xserver/cfb/cfbtileodd.c diff -u xc/programs/Xserver/cfb/cfbtileodd.c:3.9 xc/programs/Xserver/cfb/cfbtileodd.c:3.10 --- xc/programs/Xserver/cfb/cfbtileodd.c:3.9 Fri Oct 14 11:16:19 2005 +++ xc/programs/Xserver/cfb/cfbtileodd.c Mon Dec 25 10:35:16 2006 @@ -2,7 +2,7 @@ * Fill odd tiled rectangles and spans. * no depth dependencies. */ -/* $XFree86: xc/programs/Xserver/cfb/cfbtileodd.c,v 3.9 2005/10/14 15:16:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbtileodd.c,v 3.10 2006/12/25 15:35:16 tsi Exp $ */ /* @@ -63,13 +63,13 @@ pSrc = pSrcLine; \ nlwSrc = widthSrc;\ if (tileEndPart) { \ - if (4 - xoff + tileEndPart <= 4) {\ + if (PGSZB - xoff + tileEndPart <= PGSZB) {\ bits = *pSrc++; \ nlwSrc--; \ } else \ bits = BitLeft(tmp, tileEndLeftShift) | \ BitRight(bits, tileEndRightShift); \ - xoff = (xoff + xoffStep) & 3; \ + xoff = (xoff + xoffStep) & (PGSZB - 1); \ leftShift = xoff << LEFTSHIFT_AMT; \ rightShift = PGSZ - leftShift; \ }\ @@ -180,8 +180,8 @@ cfbGetLongWidthAndPointer (pDrawable, widthDst, pdstBase) #if PSZ == 24 - tileEndPart = (4 - tileWidth) & 3; - tileEndMask = cfbendpartial[tileWidth & 3]; + tileEndPart = (PGSZB - tileWidth) & (PGSZB - 1); + tileEndMask = cfbendpartial[tileWidth & (PGSZB - 1)]; #else tileEndPart = tileWidth & PIM; tileEndMask = cfbendpartial[tileEndPart]; @@ -189,7 +189,7 @@ tileEndLeftShift = (tileEndPart) << LEFTSHIFT_AMT; tileEndRightShift = PGSZ - tileEndLeftShift; #if PSZ == 24 - xoffStep = 4 - tileEndPart; + xoffStep = PGSZB - tileEndPart; #else xoffStep = PPW - tileEndPart; #endif /* PSZ == 24 */ @@ -203,7 +203,7 @@ modulus (pBox->x1 - xrot, tileWidth, srcx); modulus (pBox->y1 - yrot, tileHeight, srcy); #if PSZ == 24 - xoffDst = (4 - pBox->x1) & 3; + xoffDst = (PGSZB - pBox->x1) & (PGSZB - 1); if (w == 1 && (xoffDst == 0 || xoffDst == 1)) #else xoffDst = pBox->x1 & PIM; @@ -219,13 +219,14 @@ maskbits (pBox->x1, w, startmask, endmask, nlwMiddle) } #if PSZ == 24 - pDstLine = pdstBase + (pBox->y1 * widthDst) + ((pBox->x1*3) >> 2); + pDstLine = pdstBase + (pBox->y1 * widthDst) + + ((pBox->x1 * PSZB) / PGSZB); #else pDstLine = pdstBase + (pBox->y1 * widthDst) + (pBox->x1 >> PWSH); #endif pSrcLine = pSrcBase + (srcy * widthSrc); #if PSZ == 24 - xoffSrc = (4 - srcx) & 3; + xoffSrc = (PGSZB - srcx) & (PGSZB - 1); #else xoffSrc = srcx & PIM; #endif @@ -237,7 +238,7 @@ else { #if PSZ == 24 - xoffStart = 4 - (xoffDst - xoffSrc); + xoffStart = PGSZB - (xoffDst - xoffSrc); #else xoffStart = PPW - (xoffDst - xoffSrc); #endif @@ -246,7 +247,7 @@ leftShiftStart = (xoffStart) << LEFTSHIFT_AMT; rightShiftStart = PGSZ - leftShiftStart; #if PSZ == 24 - nlwSrcStart = widthSrc - ((srcx*3) >> 2); + nlwSrcStart = widthSrc - ((srcx * PSZB) / PGSZB); #else nlwSrcStart = widthSrc - (srcx >> PWSH); #endif @@ -271,7 +272,7 @@ rightShift = rightShiftStart; nlwSrc = nlwSrcStart; #if PSZ == 24 - pSrc = pSrcLine + ((srcx * 3) >> 2); + pSrc = pSrcLine + ((srcx * PSZB) / PGSZB); #else pSrc = pSrcLine + (srcx >> PWSH); #endif @@ -438,8 +439,8 @@ cfbGetLongWidthAndPointer (pDrawable, widthDst, pdstBase) #if PSZ == 24 - tileEndPart = (4 - tileWidth) & 3; - tileEndMask = cfbendpartial[tileWidth & 3]; + tileEndPart = (PGSZB - tileWidth) & (PGSZB - 1); + tileEndMask = cfbendpartial[tileWidth & (PGSZB - 1)]; #else tileEndPart = tileWidth & PIM; tileEndMask = cfbendpartial[tileEndPart]; @@ -447,7 +448,7 @@ tileEndLeftShift = (tileEndPart) << LEFTSHIFT_AMT; tileEndRightShift = PGSZ - tileEndLeftShift; #if PSZ == 24 - xoffStep = 4 - tileEndPart; + xoffStep = PGSZB - tileEndPart; #else xoffStep = PPW - tileEndPart; #endif @@ -457,7 +458,7 @@ modulus (ppt->x - xrot, tileWidth, srcx); modulus (ppt->y - yrot, tileHeight, srcy); #if PSZ == 24 - xoffDst = (4 - ppt->x) & 3; + xoffDst = (PGSZB - ppt->x) & (PGSZB - 1); if (w == 1 && (xoffDst == 0 || xoffDst == 1)) #else xoffDst = ppt->x & PIM; @@ -473,13 +474,13 @@ maskbits (ppt->x, w, startmask, endmask, nlw) } #if PSZ == 24 - pDstLine = pdstBase + (ppt->y * widthDst) + ((ppt->x *3)>> 2); + pDstLine = pdstBase + (ppt->y * widthDst) + ((ppt->x * PSZB) / PGSZB); #else pDstLine = pdstBase + (ppt->y * widthDst) + (ppt->x >> PWSH); #endif pSrcLine = pSrcBase + (srcy * widthSrc); #if PSZ == 24 - xoffSrc = (4 - srcx) & 3; + xoffSrc = (PGSZB - srcx) & (PGSZB - 1); #else xoffSrc = srcx & PIM; #endif @@ -491,7 +492,7 @@ else { #if PSZ == 24 - xoffStart = 4 - (xoffDst - xoffSrc); + xoffStart = PGSZB - (xoffDst - xoffSrc); #else xoffStart = PPW - (xoffDst - xoffSrc); #endif @@ -500,7 +501,7 @@ leftShiftStart = (xoffStart) << LEFTSHIFT_AMT; rightShiftStart = PGSZ - leftShiftStart; #if PSZ == 24 - nlwSrcStart = widthSrc - ((srcx*3) >> 2); + nlwSrcStart = widthSrc - ((srcx * PSZB) / PGSZB); #else nlwSrcStart = widthSrc - (srcx >> PWSH); #endif @@ -523,7 +524,7 @@ rightShift = rightShiftStart; nlwSrc = nlwSrcStart; #if PSZ == 24 - pSrc = pSrcLine + ((srcx * 3) >> 2); + pSrc = pSrcLine + ((srcx * PSZB) / PGSZB); #else pSrc = pSrcLine + (srcx >> PWSH); #endif @@ -683,8 +684,8 @@ modulus (pBox->x1 - xrot, tileWidth, srcx); modulus (pBox->y1 - yrot, tileHeight, srcy); #if PSZ == 24 - xoffSrc = (4 - srcx) & 3; - srcStart = (srcx * 3) >> 2; + xoffSrc = (PGSZB - srcx) & (PGSZB - 1); + srcStart = (srcx * PSZB) / PGSZB; #else xoffSrc = srcx & PIM; srcStart = (srcx >> PWSH); @@ -694,8 +695,9 @@ /* set up dest */ #if PSZ == 24 - xoffDst = (4 - pBox->x1) & 3; - pdstLine = pdstBase + (pBox->y1 * widthDst) + ((pBox->x1*3) >> 2); + xoffDst = (PGSZB - pBox->x1) & (PGSZB - 1); + pdstLine = pdstBase + (pBox->y1 * widthDst) + + ((pBox->x1 * PSZB) / PGSZB); #else xoffDst = pBox->x1 & PIM; pdstLine = pdstBase + (pBox->y1 * widthDst) + (pBox->x1 >> PWSH); @@ -995,8 +997,8 @@ modulus (ppt->x - xrot, tileWidth, srcx); modulus (ppt->y - yrot, tileHeight, srcy); #if PSZ == 24 - xoffSrc = (4 - srcx) & 3; - srcStart = (srcx * 3) >> 2; + xoffSrc = (PGSZB - srcx) & (PGSZB - 1); + srcStart = (srcx * PSZB) / PGSZB; #else xoffSrc = srcx & PIM; srcStart = (srcx >> PWSH); @@ -1006,8 +1008,8 @@ /* set up dest */ #if PSZ == 24 - xoffDst = (4 - ppt->x) & 3; - pdstLine = pdstBase + (ppt->y * widthDst) + ((ppt->x *3) >> 2); + xoffDst = (PGSZB - ppt->x) & (PGSZB - 1); + pdstLine = pdstBase + (ppt->y * widthDst) + ((ppt->x * PSZB) / PGSZB); /* set up masks */ if (w == 1 && (xoffDst == 0 || xoffDst == 1)) #else Index: xc/programs/Xserver/cfb/cfbzerarc.c diff -u xc/programs/Xserver/cfb/cfbzerarc.c:3.7 xc/programs/Xserver/cfb/cfbzerarc.c:3.8 --- xc/programs/Xserver/cfb/cfbzerarc.c:3.7 Fri Oct 14 11:16:20 2005 +++ xc/programs/Xserver/cfb/cfbzerarc.c Mon Dec 25 10:35:16 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/cfb/cfbzerarc.c,v 3.7 2005/10/14 15:16:20 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/cfbzerarc.c,v 3.8 2006/12/25 15:35:16 tsi Exp $ */ /************************************************************ Copyright 1989, 1998 The Open Group @@ -73,11 +73,11 @@ info.xorgo += pDraw->x; #if PSZ == 24 xorg = info.xorg; - xorg3 = xorg * 3; - info.xorg = (info.xorg * 3) >> 2; + xorg3 = xorg * PSZB; + info.xorg = (info.xorg * PSZB) / PGSZB; xorgo = info.xorgo; - xorgo3 = xorgo * 3; - info.xorgo = (info.xorgo * 3) >> 2; + xorgo3 = xorgo * PSZB; + info.xorgo = (info.xorgo * PSZB) / PGSZB; #endif MIARCSETUP(); yoffset = y ? npwidth : 0; @@ -110,23 +110,23 @@ int tmp1, tmp2, tmp1_3, tmp2_3; tmp1 = xorg + info.h; - tmp1_3 = tmp1 * 3; + tmp1_3 = tmp1 * PSZB; tmp2 = xorg - info.h; - tmp2_3 = tmp2 * 3; + tmp2_3 = tmp2 * PSZB; while (1) { - xtmp = (xorg3 + x * 3) >> 2; + xtmp = (xorg3 + x * PSZB) / PGSZB; RROP_SOLID24(yorgp + yoffset + xtmp, xorg + x); RROP_SOLID24(yorgop - yoffset + xtmp, xorg + x); - xtmp = (xorg3 - x * 3) >> 2; + xtmp = (xorg3 - x * PSZB) / PGSZB; RROP_SOLID24(yorgp + yoffset + xtmp, xorg - x); RROP_SOLID24(yorgop - yoffset + xtmp, xorg - x); if (a < 0) break; - xtmp = (tmp1_3 - y * 3) >> 2; + xtmp = (tmp1_3 - y * PSZB) / PGSZB; RROP_SOLID24(yorghb - xoffset + xtmp, tmp1 - y); RROP_SOLID24(yorghb + xoffset + xtmp, tmp1 - y); - xtmp = (tmp2_3 + y * 3) >> 2; + xtmp = (tmp2_3 + y * PSZB) / PGSZB; RROP_SOLID24(yorghb - xoffset + xtmp, tmp2 + y); RROP_SOLID24(yorghb + xoffset + xtmp, tmp2 + y); xoffset += npwidth; @@ -166,10 +166,10 @@ { MIARCOCTANTSHIFT(dyoffset = npwidth;); #if PSZ == 24 - xtmp = (xorg3 + x * 3) >> 2; + xtmp = (xorg3 + x * PSZB) / PGSZB; RROP_SOLID24(yorgp + yoffset + xtmp, xorg + x); RROP_SOLID24(yorgop - yoffset + xtmp, xorg + x); - xtmp = (xorgo3 - x * 3) >> 2; + xtmp = (xorgo3 - x * PSZB) / PGSZB; RROP_SOLID24(yorgp + yoffset + xtmp, xorgo - x); RROP_SOLID24(yorgop - yoffset + xtmp, xorgo - x); #else @@ -193,19 +193,19 @@ } #if PSZ == 24 if (mask & 1){ - xtmp = (xorg3 + x * 3) >> 2; + xtmp = (xorg3 + x * PSZB) / PGSZB; RROP_SOLID24(yorgp + yoffset + xtmp, xorg + x); } if (mask & 2){ - xtmp = (xorgo3 - x * 3) >> 2; + xtmp = (xorgo3 - x * PSZB) / PGSZB; RROP_SOLID24(yorgp + yoffset + xtmp, xorgo - x); } if (mask & 4){ - xtmp = (xorgo3 - x * 3) >> 2; + xtmp = (xorgo3 - x * PSZB) / PGSZB; RROP_SOLID24(yorgop - yoffset + xtmp, xorgo - x); } if (mask & 8){ - xtmp = (xorg3 + x * 3) >> 2; + xtmp = (xorg3 + x * PSZB) / PGSZB; RROP_SOLID24(yorgop - yoffset + xtmp, xorg + x); } #else @@ -230,11 +230,11 @@ mask = info.start.mask; #if PSZ == 24 if (mask & 1){ - xtmp = (xorg3 + x * 3) >> 2; + xtmp = (xorg3 + x * PSZB) / PGSZB; RROP_SOLID24(yorgp + yoffset + xtmp, xorg + x); } if (mask & 4){ - xtmp = (xorgo3 - x * 3) >> 2; + xtmp = (xorgo3 - x * PSZB) / PGSZB; RROP_SOLID24(yorgop - yoffset + xtmp, xorgo - x); } #else @@ -247,11 +247,11 @@ { #if PSZ == 24 if (mask & 2){ - xtmp = (xorgo3 - x * 3) >> 2; + xtmp = (xorgo3 - x * PSZB) / PGSZB; RROP_SOLID24(yorgp + yoffset + xtmp, xorgo - x); } if (mask & 8){ - xtmp = (xorg3 + x * 3) >> 2; + xtmp = (xorg3 + x * PSZB) / PGSZB; RROP_SOLID24(yorgop - yoffset + xtmp, xorg + x); } #else Index: xc/programs/Xserver/cfb/stip68kgnu.h diff -u xc/programs/Xserver/cfb/stip68kgnu.h:3.5 xc/programs/Xserver/cfb/stip68kgnu.h:3.6 --- xc/programs/Xserver/cfb/stip68kgnu.h:3.5 Mon Jan 9 09:59:45 2006 +++ xc/programs/Xserver/cfb/stip68kgnu.h Mon Dec 25 11:10:18 2006 @@ -24,14 +24,14 @@ * * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/programs/Xserver/cfb/stip68kgnu.h,v 3.5 2006/01/09 14:59:45 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/cfb/stip68kgnu.h,v 3.6 2006/12/25 16:10:18 tsi Exp $ */ /* * Stipple stack macro for 68k GCC */ #define STIPPLE(addr,stipple,value,width,count,shift) \ - __asm volatile ( \ + __asm__ __volatile__ ( \ "lea 5f,%/a1\n\ moveq #28,%/d2\n\ addl %2,%/d2\n\ Index: xc/programs/Xserver/cfb/stipmips.S diff -u /dev/null xc/programs/Xserver/cfb/stipmips.S:1.2 --- /dev/null Sun Aug 12 22:01:31 2007 +++ xc/programs/Xserver/cfb/stipmips.S Thu Dec 21 16:34:14 2006 @@ -0,0 +1,281 @@ +/* $XFree86: xc/programs/Xserver/cfb/stipmips.S,v 1.2 2006/12/21 21:34:14 tsi Exp $ */ +/* + * Copyright 1990, 1998 The Open Group + * + * 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. + * + * Author: Keith Packard, MIT X Consortium + */ + +/* + * MIPS assembly code for optimized text rendering. + * + * Other stippling could be done in assembly, but the payoff is + * not nearly as large. Mostly because large areas are heavily + * optimized already. + */ + +#include <X11/Xarch.h> + +#if X_BYTE_ORDER == X_LITTLE_ENDIAN +# define BitsR sll +# define BitsL srl +# define BO(o) o +# define HO(o) o +# define WO(o) o +# define FourBits(dest,bits) and dest, bits, 0xf +#else +# define BitsR srl +# define BitsL sll +# define BO(o) 3-o +# define HO(o) 2-o +# define WO(o) o +# define FourBits(dest,bits) srl dest, bits, 28 +#endif + +/* reordering instructions would be fatal here */ + .set noreorder + + +/* + * cfbStippleStack(addr, stipple, value, stride, Count, Shift) + * 4 5 6 7 16(sp) 20(sp) + * + * Apply successive 32-bit stipples starting at addr, addr+stride, ... + * + * Used for text rendering, but only when no data could be lost + * when the stipple is shifted left by Shift bits + */ +/* arguments */ +#define addr $4 +#define stipple $5 +#define value $6 +#define stride $7 +#define Count 16($sp) +#define Shift 20($sp) + +/* local variables */ +#define count $14 +#define shift $13 +#define atemp $12 +#define bits $11 +#define lshift $9 +#define sbase $8 +#define stemp $2 + +#define CASE_SIZE 5 /* case blocks are 2^5 bytes each */ +#define CASE_MASK 0x1e0 /* first case mask */ + +#define ForEachLine $200 +#define NextLine $201 +#define NextLine1 $202 +#define CaseBegin $203 +#define ForEachBits $204 +#define ForEachBits1 $205 +#define NextBits $206 + +#ifdef TETEXT +#define cfbStippleStack cfbStippleStackTE +#endif + + .globl cfbStippleStack + .ent cfbStippleStack 2 +cfbStippleStack: + .frame $sp, 0, $31 + lw count, Count /* fetch stack params */ + la sbase,CaseBegin /* load up switch table */ + lw shift, Shift + li lshift, 4 /* compute offset within */ + subu lshift, lshift, shift /* stipple of remaining bits */ +#if X_BYTE_ORDER == X_LITTLE_ENDIAN + addu shift, shift, CASE_SIZE /* first shift for LSB */ +#else + addu shift, shift, 28-CASE_SIZE /* first shift for MSB */ +#endif + /* do ... while (--count > 0); */ +ForEachLine: + lw bits, 0(stipple) /* get stipple bits */ + move atemp, addr /* set up for this line */ +#ifdef TETEXT + /* Terminal emulator fonts are expanded and have many 0 rows */ + beqz bits, NextLine /* skip out early on 0 */ +#endif + addu addr, addr, stride /* step for the loop */ + BitsR stemp, bits, shift /* get first bits */ + and stemp, stemp, CASE_MASK /* compute first branch */ + addu stemp, stemp, sbase /* ... */ + j stemp /* ... */ + BitsL bits, bits, lshift /* set remaining bits */ + +ForEachBits: + addu atemp, atemp, 4 +ForEachBits1: + FourBits(stemp, bits) /* compute jump for */ + sll stemp, stemp, CASE_SIZE /* next four bits */ + addu stemp, stemp, sbase /* ... */ + j stemp /* ... */ + BitsL bits, bits, 4 /* step for remaining bits */ +CaseBegin: + bnez bits, ForEachBits1 /* 0 */ + addu atemp, atemp, 4 +NextLine: + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + nop + + bnez bits, ForEachBits /* 1 */ + sb value, BO(0)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + nop + + bnez bits, ForEachBits /* 2 */ + sb value, BO(1)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + nop + + bnez bits, ForEachBits /* 3 */ + sh value, HO(0)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + nop + + bnez bits, ForEachBits /* 4 */ + sb value, BO(2)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + nop + + sb value, BO(0)(atemp) /* 5 */ + bnez bits, ForEachBits + sb value, BO(2)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + + sb value, BO(1)(atemp) /* 6 */ + bnez bits, ForEachBits + sb value, BO(2)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + + bnez bits, ForEachBits /* 7 */ + swl value, BO(2)(atemp) /* untested on MSB */ + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + nop + + bnez bits, ForEachBits /* 8 */ + sb value, BO(3)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + nop + + sb value, BO(0)(atemp) /* 9 */ + bnez bits, ForEachBits + sb value, BO(3)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + + sb value, BO(1)(atemp) /* a */ + bnez bits, ForEachBits + sb value, BO(3)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + + sh value, HO(0)(atemp) /* b */ + bnez bits, ForEachBits + sb value, BO(3)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + + bnez bits, ForEachBits /* c */ + sh value, HO(2)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + nop + + sb value, BO(0)(atemp) /* d */ + bnez bits, ForEachBits + sh value, HO(2)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + + bnez bits, ForEachBits /* e */ + swr value, BO(1)(atemp) /* untested on MSB */ + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + nop + + bnez bits, ForEachBits /* f */ + sw value, WO(0)(atemp) + addu count, count, -1 + bnez count, ForEachLine + addu stipple, stipple, 4 + j $31 + nop + nop + + .end cfbStippleStack Index: xc/programs/Xserver/cfb/stipmips.s diff -u xc/programs/Xserver/cfb/stipmips.s:1.3 xc/programs/Xserver/cfb/stipmips.s:removed --- xc/programs/Xserver/cfb/stipmips.s:1.3 Mon Jan 9 09:59:45 2006 +++ xc/programs/Xserver/cfb/stipmips.s Sun Aug 12 22:01:31 2007 @@ -1,281 +0,0 @@ -/* $XFree86: xc/programs/Xserver/cfb/stipmips.s,v 1.3 2006/01/09 14:59:45 dawes Exp $ */ -/* - * -Copyright 1990, 1998 The Open Group - -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. - * - * Author: Keith Packard, MIT X Consortium - */ - -/* - * MIPS assembly code for optimized text rendering. - * - * Other stippling could be done in assembly, but the payoff is - * not nearly as large. Mostly because large areas are heavily - * optimized already. - */ - -#ifdef MIPSEL -# define BitsR sll -# define BitsL srl -# define BO(o) o -# define HO(o) o -# define WO(o) o -# define FourBits(dest,bits) and dest, bits, 0xf -#else -# define BitsR srl -# define BitsL sll -# define BO(o) 3-o -# define HO(o) 2-o -# define WO(o) o -# define FourBits(dest,bits) srl dest, bits, 28 -#endif - -/* reordering instructions would be fatal here */ - .set noreorder - - -/* - * cfbStippleStack(addr, stipple, value, stride, Count, Shift) - * 4 5 6 7 16(sp) 20(sp) - * - * Apply successive 32-bit stipples starting at addr, addr+stride, ... - * - * Used for text rendering, but only when no data could be lost - * when the stipple is shifted left by Shift bits - */ -/* arguments */ -#define addr $4 -#define stipple $5 -#define value $6 -#define stride $7 -#define Count 16($sp) -#define Shift 20($sp) - -/* local variables */ -#define count $14 -#define shift $13 -#define atemp $12 -#define bits $11 -#define lshift $9 -#define sbase $8 -#define stemp $2 - -#define CASE_SIZE 5 /* case blocks are 2^5 bytes each */ -#define CASE_MASK 0x1e0 /* first case mask */ - -#define ForEachLine $200 -#define NextLine $201 -#define NextLine1 $202 -#define CaseBegin $203 -#define ForEachBits $204 -#define ForEachBits1 $205 -#define NextBits $206 - -#ifdef TETEXT -#define cfbStippleStack cfbStippleStackTE -#endif - - .globl cfbStippleStack - .ent cfbStippleStack 2 -cfbStippleStack: - .frame $sp, 0, $31 - lw count, Count /* fetch stack params */ - la sbase,CaseBegin /* load up switch table */ - lw shift, Shift - li lshift, 4 /* compute offset within */ - subu lshift, lshift, shift /* stipple of remaining bits */ -#ifdef MIPSEL - addu shift, shift, CASE_SIZE /* first shift for LSB */ -#else - addu shift, shift, 28-CASE_SIZE /* first shift for MSB */ -#endif - /* do ... while (--count > 0); */ -ForEachLine: - lw bits, 0(stipple) /* get stipple bits */ - move atemp, addr /* set up for this line */ -#ifdef TETEXT - /* Terminal emulator fonts are expanded and have many 0 rows */ - beqz bits, NextLine /* skip out early on 0 */ -#endif - addu addr, addr, stride /* step for the loop */ - BitsR stemp, bits, shift /* get first bits */ - and stemp, stemp, CASE_MASK /* compute first branch */ - addu stemp, stemp, sbase /* ... */ - j stemp /* ... */ - BitsL bits, bits, lshift /* set remaining bits */ - -ForEachBits: - addu atemp, atemp, 4 -ForEachBits1: - FourBits(stemp, bits) /* compute jump for */ - sll stemp, stemp, CASE_SIZE /* next four bits */ - addu stemp, stemp, sbase /* ... */ - j stemp /* ... */ - BitsL bits, bits, 4 /* step for remaining bits */ -CaseBegin: - bnez bits, ForEachBits1 /* 0 */ - addu atemp, atemp, 4 -NextLine: - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - nop - - bnez bits, ForEachBits /* 1 */ - sb value, BO(0)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - nop - - bnez bits, ForEachBits /* 2 */ - sb value, BO(1)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - nop - - bnez bits, ForEachBits /* 3 */ - sh value, HO(0)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - nop - - bnez bits, ForEachBits /* 4 */ - sb value, BO(2)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - nop - - sb value, BO(0)(atemp) /* 5 */ - bnez bits, ForEachBits - sb value, BO(2)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - - sb value, BO(1)(atemp) /* 6 */ - bnez bits, ForEachBits - sb value, BO(2)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - - bnez bits, ForEachBits /* 7 */ - swl value, BO(2)(atemp) /* untested on MSB */ - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - nop - - bnez bits, ForEachBits /* 8 */ - sb value, BO(3)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - nop - - sb value, BO(0)(atemp) /* 9 */ - bnez bits, ForEachBits - sb value, BO(3)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - - sb value, BO(1)(atemp) /* a */ - bnez bits, ForEachBits - sb value, BO(3)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - - sh value, HO(0)(atemp) /* b */ - bnez bits, ForEachBits - sb value, BO(3)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - - bnez bits, ForEachBits /* c */ - sh value, HO(2)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - nop - - sb value, BO(0)(atemp) /* d */ - bnez bits, ForEachBits - sh value, HO(2)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - - bnez bits, ForEachBits /* e */ - swr value, BO(1)(atemp) /* untested on MSB */ - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - nop - - bnez bits, ForEachBits /* f */ - sw value, WO(0)(atemp) - addu count, count, -1 - bnez count, ForEachLine - addu stipple, stipple, 4 - j $31 - nop - nop - - .end cfbStippleStack Index: xc/programs/Xserver/cfb/stipple68k.S diff -u /dev/null xc/programs/Xserver/cfb/stipple68k.S:1.1 --- /dev/null Sun Aug 12 22:01:31 2007 +++ xc/programs/Xserver/cfb/stipple68k.S Wed Dec 20 11:48:29 2006 @@ -0,0 +1,230 @@ +/* $XFree86: xc/programs/Xserver/cfb/stipple68k.S,v 1.1 2006/12/20 16:48:29 tsi Exp $ */ +/* + * Copyright 1990, 1998 The Open Group + * + * 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. + * + * Author: Keith Packard, MIT X Consortium + */ + +/* + * Stipple code for 68k processors + */ + +#ifdef __ELF__ +#ifdef TETEXT +#define _cfbStippleStack cfbStippleStackTE +#else +#define _cfbStippleStack cfbStippleStack +#endif +#else +#ifdef TETEXT +#define _cfbStippleStack _cfbStippleStackTE +#endif +#endif + + +#define atemp a0 +#define addr a1 +#define stipple a2 +#define stride a3 +#define case a4 + +#define ctemp d0 +#define value d1 +#define count d2 +#define shift d3 +#define c d4 +#define lshift d5 +#define rshift d6 + +#define PushMask #0x3e38 +#define PopMask #0x1c7c + +#define NumReg 8 +#define arg0 36 +#define arg1 40 +#define arg2 44 +#define arg3 48 +#define arg4 52 +#define arg5 56 +#define arg6 60 + +#ifdef __ELF__ +#define ForEachLine .L2 +#define ForEachBits .L5 + +#define a0 %A0 +#define a1 %A1 +#define a2 %A2 +#define a3 %A3 +#define a4 %A4 +#define a5 %A5 +#define a6 %A6 +#define sp %SP +#define d0 %D0 +#define d1 %D1 +#define d2 %D2 +#define d3 %D3 +#define d4 %D4 +#define d5 %D5 +#define d6 %D6 +#define d7 %D7 +#else +#define ForEachLine L2 +#define ForEachBits L5 +#endif +#define CASE_SIZE 5 + +.text + .even + .globl _cfbStippleStack +_cfbStippleStack: + moveml PushMask,sp@- + movel sp@(arg0),addr + movel sp@(arg1),stipple + movel sp@(arg2),value + movel sp@(arg3),stride + movew sp@(arg4+2),count + movel sp@(arg5),shift + subqw #1,count /* predecrement count */ + lea CaseBegin,case + movew #28,lshift + addl shift,lshift + movew #28,rshift + subql #4,shift + negl shift +ForEachLine: + movel addr,atemp + addl stride,addr + movel stipple@+,c +#ifdef TETEXT + jeq NextLine +#endif + /* Get first few bits */ + movel c,ctemp + lsrl lshift,ctemp + lsll #CASE_SIZE,ctemp + lsll shift,c /* set up for next bits */ + jmp case@(ctemp:l) + +ForEachBits: + addl #4,atemp + movel c,ctemp + lsrl rshift,ctemp /* better than lsrl, andi */ + lsll #CASE_SIZE,ctemp + lsll #4,c /* set up for next bits */ + jmp case@(ctemp:l) + +#define Break \ + andl c,c ; \ + jne ForEachBits ; \ + dbra count,ForEachLine ; \ + moveml sp@+,PopMask ; \ + rts ; + +CaseBegin: + jne ForEachBits /* 0 */ +NextLine: + dbra count,ForEachLine + moveml sp@+,PopMask + rts + + . = CaseBegin + 0x20 + + moveb value,atemp@(3) /* 1 */ + Break + + . = CaseBegin + 0x40 + + moveb value,atemp@(2) /* 2 */ + Break + + . = CaseBegin + 0x60 + + movew value,atemp@(2) /* 3 */ + Break + + . = CaseBegin + 0x80 + + moveb value,atemp@(1) /* 4 */ + Break + + . = CaseBegin + 0xa0 + + moveb value,atemp@(3) /* 5 */ + moveb value,atemp@(1) + Break + + . = CaseBegin + 0xc0 + + movew value,atemp@(1) /* 6 */ + Break + + . = CaseBegin + 0xe0 + + movew value,atemp@(2) /* 7 */ + moveb value,atemp@(1) + Break + + . = CaseBegin + 0x100 + + moveb value,atemp@ /* 8 */ + Break + + . = CaseBegin + 0x120 + + moveb value,atemp@(3) /* 9 */ + moveb value,atemp@ + Break + + . = CaseBegin + 0x140 + + moveb value,atemp@(2) /* a */ + moveb value,atemp@ + Break + + . = CaseBegin + 0x160 + + movew value,atemp@(2) /* b */ + moveb value,atemp@ + Break + + . = CaseBegin + 0x180 + + movew value,atemp@ /* c */ + Break + + . = CaseBegin + 0x1a0 + + moveb value,atemp@(3) /* d */ + movew value,atemp@ + Break + + . = CaseBegin + 0x1c0 + + moveb value,atemp@(2) /* e */ + movew value,atemp@ + Break + + . = CaseBegin + 0x1e0 + + movel value,atemp@ /* f */ + Break Index: xc/programs/Xserver/cfb/stipple68k.s diff -u xc/programs/Xserver/cfb/stipple68k.s:3.4 xc/programs/Xserver/cfb/stipple68k.s:removed --- xc/programs/Xserver/cfb/stipple68k.s:3.4 Mon Jan 9 09:59:45 2006 +++ xc/programs/Xserver/cfb/stipple68k.s Sun Aug 12 22:01:31 2007 @@ -1,230 +0,0 @@ -/* - * -Copyright 1990, 1998 The Open Group - -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. - * - * Author: Keith Packard, MIT X Consortium - */ -/* $XFree86: xc/programs/Xserver/cfb/stipple68k.s,v 3.4 2006/01/09 14:59:45 dawes Exp $ */ - -/* - * Stipple code for 68k processors - */ - -#ifdef __ELF__ -#ifdef TETEXT -#define _cfbStippleStack cfbStippleStackTE -#else -#define _cfbStippleStack cfbStippleStack -#endif -#else -#ifdef TETEXT -#define _cfbStippleStack _cfbStippleStackTE -#endif -#endif - - -#define atemp a0 -#define addr a1 -#define stipple a2 -#define stride a3 -#define case a4 - -#define ctemp d0 -#define value d1 -#define count d2 -#define shift d3 -#define c d4 -#define lshift d5 -#define rshift d6 - -#define PushMask #0x3e38 -#define PopMask #0x1c7c -#define NumReg 8 -#define arg0 36 -#define arg1 40 -#define arg2 44 -#define arg3 48 -#define arg4 52 -#define arg5 56 -#define arg6 60 - -#ifdef __ELF__ -#define ForEachLine .L2 -#define ForEachBits .L5 -#define a0 %A0 -#define a1 %A1 -#define a2 %A2 -#define a3 %A3 -#define a4 %A4 -#define a5 %A5 -#define a6 %A6 -#define sp %SP -#define d0 %D0 -#define d1 %D1 -#define d2 %D2 -#define d3 %D3 -#define d4 %D4 -#define d5 %D5 -#define d6 %D6 -#define d7 %D7 -#else -#define ForEachLine L2 -#define ForEachBits L5 -#endif -#define CASE_SIZE 5 - -.text - .even - .globl _cfbStippleStack -_cfbStippleStack: - moveml PushMask,sp@- - movel sp@(arg0),addr - movel sp@(arg1),stipple - movel sp@(arg2),value - movel sp@(arg3),stride - movew sp@(arg4+2),count - movel sp@(arg5),shift - subqw #1,count /* predecrement count */ - lea CaseBegin,case - movew #28,lshift - addl shift,lshift - movew #28,rshift - subql #4,shift - negl shift -ForEachLine: - movel addr,atemp - addl stride,addr - movel stipple@+,c -#ifdef TETEXT - jeq NextLine -#endif - /* Get first few bits */ - movel c,ctemp - lsrl lshift,ctemp - lsll #CASE_SIZE,ctemp - lsll shift,c /* set up for next bits */ - jmp case@(ctemp:l) - -ForEachBits: - addl #4,atemp - movel c,ctemp - lsrl rshift,ctemp /* better than lsrl, andi */ - lsll #CASE_SIZE,ctemp - lsll #4,c /* set up for next bits */ - jmp case@(ctemp:l) - -#define Break \ - andl c,c ; \ - jne ForEachBits ; \ - dbra count,ForEachLine ; \ - moveml sp@+,PopMask ; \ - rts ; - -CaseBegin: - jne ForEachBits /* 0 */ -NextLine: - dbra count,ForEachLine - moveml sp@+,PopMask - rts - - . = CaseBegin + 0x20 - - moveb value,atemp@(3) /* 1 */ - Break - - . = CaseBegin + 0x40 - - moveb value,atemp@(2) /* 2 */ - Break - - . = CaseBegin + 0x60 - - movew value,atemp@(2) /* 3 */ - Break - - . = CaseBegin + 0x80 - - moveb value,atemp@(1) /* 4 */ - Break - - . = CaseBegin + 0xa0 - - moveb value,atemp@(3) /* 5 */ - moveb value,atemp@(1) - Break - - . = CaseBegin + 0xc0 - - movew value,atemp@(1) /* 6 */ - Break - - . = CaseBegin + 0xe0 - - movew value,atemp@(2) /* 7 */ - moveb value,atemp@(1) - Break - - . = CaseBegin + 0x100 - - moveb value,atemp@ /* 8 */ - Break - - . = CaseBegin + 0x120 - - moveb value,atemp@(3) /* 9 */ - moveb value,atemp@ - Break - - . = CaseBegin + 0x140 - - moveb value,atemp@(2) /* a */ - moveb value,atemp@ - Break - - . = CaseBegin + 0x160 - - movew value,atemp@(2) /* b */ - moveb value,atemp@ - Break - - . = CaseBegin + 0x180 - - movew value,atemp@ /* c */ - Break - - . = CaseBegin + 0x1a0 - - moveb value,atemp@(3) /* d */ - movew value,atemp@ - Break - - . = CaseBegin + 0x1c0 - - moveb value,atemp@(2) /* e */ - movew value,atemp@ - Break - - . = CaseBegin + 0x1e0 - - movel value,atemp@ /* f */ - Break Index: xc/programs/Xserver/cfb/stipsparc.S diff -u /dev/null xc/programs/Xserver/cfb/stipsparc.S:1.2 --- /dev/null Sun Aug 12 22:01:31 2007 +++ xc/programs/Xserver/cfb/stipsparc.S Thu Dec 21 16:34:14 2006 @@ -0,0 +1,280 @@ +/* $XFree86: xc/programs/Xserver/cfb/stipsparc.S,v 1.2 2006/12/21 21:34:14 tsi Exp $ */ +/* + * Copyright 1990, 1998 The Open Group + * + * 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. + * + * Author: Keith Packard, MIT X Consortium + */ + +/* + * SPARC assembly code for optimized text rendering. + * + * Other stippling could be done in assembly, but the payoff is + * not nearly as large. Mostly because large areas are heavily + * optimized already. + */ + +#include <X11/Xarch.h> + +/* not that I expect to ever see an LSB SPARC, but ... */ +#if X_BYTE_ORDER == X_LITTLE_ENDIAN +# define BitsR sll +# define BitsL srl +# define BO(o) o +# define HO(o) o +# define WO(o) o +# define FourBits(dest,bits) and bits, 0xf, dest +#else +# define BitsR srl +# define BitsL sll +# define BO(o) 3-o +# define HO(o) 2-o +# define WO(o) o +# define FourBits(dest,bits) srl bits, 28, dest +#endif + +/* + * cfbStippleStack(addr, stipple, value, stride, Count, Shift) + * 4 5 6 7 16(sp) 20(sp) + * + * Apply successive 32-bit stipples starting at addr, addr+stride, ... + * + * Used for text rendering, but only when no data could be lost + * when the stipple is shifted left by Shift bits + */ +/* arguments */ +#define addr %i0 +#define stipple %i1 +#define value %i2 +#define stride %i3 +#define count %i4 +#define shift %i5 + +/* local variables */ +#define atemp %l0 +#define bits %l1 +#define lshift %l2 +#define sbase %l3 +#define stemp %l4 + +#define CASE_SIZE 5 /* case blocks are 2^5 bytes each */ +#define CASE_MASK 0x1e0 /* first case mask */ + +#define ForEachLine LY1 +#define NextLine LY2 +#define CaseBegin LY3 +#define ForEachBits LY4 +#define NextBits LY5 + +#if defined(SVR4) || defined(__ELF__) +#ifdef TETEXT +#define _cfbStippleStack cfbStippleStackTE +#else +#define _cfbStippleStack cfbStippleStack +#endif +#else +#ifdef TETEXT +#define _cfbStippleStack _cfbStippleStackTE +#endif +#endif + .seg "text" + .proc 16 + .globl _cfbStippleStack +_cfbStippleStack: + save %sp,-64,%sp + sethi %hi(CaseBegin),sbase /* load up switch table */ + or sbase,%lo(CaseBegin),sbase + + mov 4,lshift /* compute offset within */ + sub lshift, shift, lshift /* stipple of remaining bits */ +#if X_BYTE_ORDER == X_LITTLE_ENDIAN + inc CASE_SIZE, shift /* first shift for LSB */ +#else + inc 28-CASE_SIZE, shift /* first shift for MSB */ +#endif + /* do ... while (--count > 0); */ +ForEachLine: + ld [stipple],bits /* get stipple bits */ + mov addr,atemp /* set up for this line */ +#ifdef TETEXT + /* Terminal emulator fonts are expanded and have many 0 rows */ + tst bits + bz NextLine /* skip out early on 0 */ +#endif + add addr, stride, addr /* step for the loop */ + BitsR bits, shift, stemp /* get first bits */ + and stemp, CASE_MASK, stemp /* compute first jump */ + BitsL bits, lshift, bits /* set remaining bits */ + jmp sbase+stemp /* ... */ + tst bits + +ForEachBits: + inc 4, atemp +ForEachBits1: + FourBits(stemp, bits) /* compute jump for */ + sll stemp, CASE_SIZE, stemp /* these four bits */ + BitsL bits, 4, bits /* step for remaining bits */ + jmp sbase+stemp /* jump */ + tst bits +CaseBegin: + bnz,a ForEachBits1 /* 0 */ + inc 4, atemp +NextLine: + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + nop + + bnz ForEachBits /* 1 */ + stb value, [atemp+BO(0)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + nop + + bnz ForEachBits /* 2 */ + stb value, [atemp+BO(1)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + nop + + bnz ForEachBits /* 3 */ + sth value, [atemp+HO(0)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + nop + + bnz ForEachBits /* 4 */ + stb value, [atemp+BO(2)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + nop + + stb value, [atemp+BO(0)] /* 5 */ + bnz ForEachBits + stb value, [atemp+BO(2)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + stb value, [atemp+BO(1)] /* 6 */ + bnz ForEachBits + stb value, [atemp+BO(2)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + sth value, [atemp+HO(0)] /* 7 */ + bnz ForEachBits + stb value, [atemp+BO(2)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + bnz ForEachBits /* 8 */ + stb value, [atemp+BO(3)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + nop + + stb value, [atemp+BO(0)] /* 9 */ + bnz ForEachBits + stb value, [atemp+BO(3)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + stb value, [atemp+BO(1)] /* a */ + bnz ForEachBits + stb value, [atemp+BO(3)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + sth value, [atemp+HO(0)] /* b */ + bnz ForEachBits + stb value, [atemp+BO(3)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + bnz ForEachBits /* c */ + sth value, [atemp+HO(2)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + nop + + stb value, [atemp+BO(0)] /* d */ + bnz ForEachBits + sth value, [atemp+HO(2)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + stb value, [atemp+BO(1)] /* e */ + bnz ForEachBits + sth value, [atemp+HO(2)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + bnz ForEachBits /* f */ + st value, [atemp+WO(0)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore Index: xc/programs/Xserver/cfb/stipsparc.s diff -u xc/programs/Xserver/cfb/stipsparc.s:1.6 xc/programs/Xserver/cfb/stipsparc.s:removed --- xc/programs/Xserver/cfb/stipsparc.s:1.6 Mon Jan 9 09:59:45 2006 +++ xc/programs/Xserver/cfb/stipsparc.s Sun Aug 12 22:01:31 2007 @@ -1,280 +0,0 @@ -/* - * -Copyright 1990, 1998 The Open Group - -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. - * - * Author: Keith Packard, MIT X Consortium - */ -/* $XFree86: xc/programs/Xserver/cfb/stipsparc.s,v 1.6 2006/01/09 14:59:45 dawes Exp $ */ - -/* - * SPARC assembly code for optimized text rendering. - * - * Other stippling could be done in assembly, but the payoff is - * not nearly as large. Mostly because large areas are heavily - * optimized already. - */ - -/* not that I expect to ever see an LSB SPARC, but ... */ -#ifdef LITTLE_ENDIAN -# define BitsR sll -# define BitsL srl -# define BO(o) o -# define HO(o) o -# define WO(o) o -# define FourBits(dest,bits) and bits, 0xf, dest -#else -# define BitsR srl -# define BitsL sll -# define BO(o) 3-o -# define HO(o) 2-o -# define WO(o) o -# define FourBits(dest,bits) srl bits, 28, dest -#endif - -/* - * cfbStippleStack(addr, stipple, value, stride, Count, Shift) - * 4 5 6 7 16(sp) 20(sp) - * - * Apply successive 32-bit stipples starting at addr, addr+stride, ... - * - * Used for text rendering, but only when no data could be lost - * when the stipple is shifted left by Shift bits - */ -/* arguments */ -#define addr %i0 -#define stipple %i1 -#define value %i2 -#define stride %i3 -#define count %i4 -#define shift %i5 - -/* local variables */ -#define atemp %l0 -#define bits %l1 -#define lshift %l2 -#define sbase %l3 -#define stemp %l4 - -#define CASE_SIZE 5 /* case blocks are 2^5 bytes each */ -#define CASE_MASK 0x1e0 /* first case mask */ - -#define ForEachLine LY1 -#define NextLine LY2 -#define CaseBegin LY3 -#define ForEachBits LY4 -#define NextBits LY5 - -#if defined(SVR4) || defined(__ELF__) -#ifdef TETEXT -#define _cfbStippleStack cfbStippleStackTE -#else -#define _cfbStippleStack cfbStippleStack -#endif -#else -#ifdef TETEXT -#define _cfbStippleStack _cfbStippleStackTE -#endif -#endif - .seg "text" - .proc 16 - .globl _cfbStippleStack -_cfbStippleStack: - save %sp,-64,%sp - sethi %hi(CaseBegin),sbase /* load up switch table */ - or sbase,%lo(CaseBegin),sbase - - mov 4,lshift /* compute offset within */ - sub lshift, shift, lshift /* stipple of remaining bits */ -#ifdef LITTLE_ENDIAN - inc CASE_SIZE, shift /* first shift for LSB */ -#else - inc 28-CASE_SIZE, shift /* first shift for MSB */ -#endif - /* do ... while (--count > 0); */ -ForEachLine: - ld [stipple],bits /* get stipple bits */ - mov addr,atemp /* set up for this line */ -#ifdef TETEXT - /* Terminal emulator fonts are expanded and have many 0 rows */ - tst bits - bz NextLine /* skip out early on 0 */ -#endif - add addr, stride, addr /* step for the loop */ - BitsR bits, shift, stemp /* get first bits */ - and stemp, CASE_MASK, stemp /* compute first jump */ - BitsL bits, lshift, bits /* set remaining bits */ - jmp sbase+stemp /* ... */ - tst bits - -ForEachBits: - inc 4, atemp -ForEachBits1: - FourBits(stemp, bits) /* compute jump for */ - sll stemp, CASE_SIZE, stemp /* these four bits */ - BitsL bits, 4, bits /* step for remaining bits */ - jmp sbase+stemp /* jump */ - tst bits -CaseBegin: - bnz,a ForEachBits1 /* 0 */ - inc 4, atemp -NextLine: - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - nop - - bnz ForEachBits /* 1 */ - stb value, [atemp+BO(0)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - nop - - bnz ForEachBits /* 2 */ - stb value, [atemp+BO(1)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - nop - - bnz ForEachBits /* 3 */ - sth value, [atemp+HO(0)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - nop - - bnz ForEachBits /* 4 */ - stb value, [atemp+BO(2)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - nop - - stb value, [atemp+BO(0)] /* 5 */ - bnz ForEachBits - stb value, [atemp+BO(2)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - stb value, [atemp+BO(1)] /* 6 */ - bnz ForEachBits - stb value, [atemp+BO(2)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - sth value, [atemp+HO(0)] /* 7 */ - bnz ForEachBits - stb value, [atemp+BO(2)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - bnz ForEachBits /* 8 */ - stb value, [atemp+BO(3)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - nop - - stb value, [atemp+BO(0)] /* 9 */ - bnz ForEachBits - stb value, [atemp+BO(3)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - stb value, [atemp+BO(1)] /* a */ - bnz ForEachBits - stb value, [atemp+BO(3)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - sth value, [atemp+HO(0)] /* b */ - bnz ForEachBits - stb value, [atemp+BO(3)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - bnz ForEachBits /* c */ - sth value, [atemp+HO(2)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - nop - - stb value, [atemp+BO(0)] /* d */ - bnz ForEachBits - sth value, [atemp+HO(2)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - stb value, [atemp+BO(1)] /* e */ - bnz ForEachBits - sth value, [atemp+HO(2)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - bnz ForEachBits /* f */ - st value, [atemp+WO(0)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore Index: xc/programs/Xserver/cfb/stipsprc32.S diff -u /dev/null xc/programs/Xserver/cfb/stipsprc32.S:1.2 --- /dev/null Sun Aug 12 22:01:31 2007 +++ xc/programs/Xserver/cfb/stipsprc32.S Thu Dec 21 16:34:14 2006 @@ -0,0 +1,279 @@ +/* $XFree86: xc/programs/Xserver/cfb/stipsprc32.S,v 1.2 2006/12/21 21:34:14 tsi Exp $ */ +/* + * Copyright 1990, 1998 The Open Group + * + * 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. + * + * Author: Keith Packard, MIT X Consortium + */ + +/* + * SPARC assembly code for optimized text rendering. + * + * Other stippling could be done in assembly, but the payoff is + * not nearly as large. Mostly because large areas are heavily + * optimized already. + */ + +/* not that I expect to ever see an LSB SPARC, but ... */ +#if X_BYTE_ORDER == X_LITTLE_ENDIAN +# define BitsR sll +# define BitsL srl +# define WO(o) 3-o +# define FourBits(dest,bits) and bits, 0xf, dest +#else +# define BitsR srl +# define BitsL sll +# define WO(o) o +# define FourBits(dest,bits) srl bits, 28, dest +#endif + +/* + * cfb32StippleStack(addr, stipple, value, stride, Count, Shift) + * 4 5 6 7 16(sp) 20(sp) + * + * Apply successive 32-bit stipples starting at addr, addr+stride, ... + * + * Used for text rendering, but only when no data could be lost + * when the stipple is shifted left by Shift bits + */ +/* arguments */ +#define addr %i0 +#define stipple %i1 +#define value %i2 +#define stride %i3 +#define count %i4 +#define shift %i5 + +/* local variables */ +#define atemp %l0 +#define bits %l1 +#define lshift %l2 +#define sbase %l3 +#define stemp %l4 + +#define CASE_SIZE 5 /* case blocks are 2^5 bytes each */ +#define CASE_MASK 0x1e0 /* first case mask */ + +#define ForEachLine LY1 +#define NextLine LY2 +#define CaseBegin LY3 +#define ForEachBits LY4 +#define NextBits LY5 + +#if defined(SVR4) || defined(__ELF__) +#ifdef TETEXT +#define _cfb32StippleStack cfb32StippleStackTE +#else +#define _cfb32StippleStack cfb32StippleStack +#endif +#else +#ifdef TETEXT +#define _cfb32StippleStack _cfb32StippleStackTE +#endif +#endif + + .seg "text" + .proc 16 + .globl _cfb32StippleStack +_cfb32StippleStack: + save %sp,-64,%sp + sethi %hi(CaseBegin),sbase /* load up switch table */ + or sbase,%lo(CaseBegin),sbase + + mov 4,lshift /* compute offset within */ + sub lshift, shift, lshift /* stipple of remaining bits */ +#if X_BYTE_ORDER == X_LITTLE_ENDIAN + inc CASE_SIZE, shift /* first shift for LSB */ +#else + inc 28-CASE_SIZE, shift /* first shift for MSB */ +#endif + /* do ... while (--count > 0); */ +ForEachLine: + ld [stipple],bits /* get stipple bits */ + mov addr,atemp /* set up for this line */ +#ifdef TETEXT + /* Terminal emulator fonts are expanded and have many 0 rows */ + tst bits + bz NextLine /* skip out early on 0 */ +#endif + add addr, stride, addr /* step for the loop */ + BitsR bits, shift, stemp /* get first bits */ + and stemp, CASE_MASK, stemp /* compute first jump */ + BitsL bits, lshift, bits /* set remaining bits */ + jmp sbase+stemp /* ... */ + tst bits + +ForEachBits: + inc 16, atemp +ForEachBits1: + FourBits(stemp, bits) /* compute jump for */ + sll stemp, CASE_SIZE, stemp /* these four bits */ + BitsL bits, 4, bits /* step for remaining bits */ + jmp sbase+stemp /* jump */ + tst bits +CaseBegin: + bnz,a ForEachBits1 /* 0 */ + inc 16, atemp +NextLine: + deccc 1, count +NextLine1: + bnz,a ForEachLine + inc 4, stipple + ret + restore + nop + + bnz ForEachBits /* 1 */ + st value, [atemp+WO(12)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + nop + + bnz ForEachBits /* 2 */ + st value, [atemp+WO(8)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + nop + + st value, [atemp+WO(8)] /* 3 */ + bnz ForEachBits + st value, [atemp+WO(12)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + bnz ForEachBits /* 4 */ + st value, [atemp+WO(4)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + nop + + st value, [atemp+WO(4)] /* 5 */ + bnz ForEachBits + st value, [atemp+WO(12)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + st value, [atemp+WO(4)] /* 6 */ + bnz ForEachBits + st value, [atemp+WO(8)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + st value, [atemp+WO(4)] /* 7 */ + st value, [atemp+WO(8)] + bnz ForEachBits + st value, [atemp+WO(12)] + b NextLine1 + deccc 1, count + nop + nop + + bnz ForEachBits /* 8 */ + st value, [atemp+WO(0)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + nop + + st value, [atemp+WO(0)] /* 9 */ + bnz ForEachBits + st value, [atemp+WO(12)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + st value, [atemp+WO(0)] /* a */ + bnz ForEachBits + st value, [atemp+WO(8)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + st value, [atemp+WO(0)] /* b */ + st value, [atemp+WO(8)] + bnz ForEachBits + st value, [atemp+WO(12)] + b NextLine1 + deccc 1, count + nop + nop + + st value, [atemp+WO(0)] /* c */ + bnz ForEachBits + st value, [atemp+WO(4)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore + + st value, [atemp+WO(0)] /* d */ + st value, [atemp+WO(4)] + bnz ForEachBits + st value, [atemp+WO(12)] + b NextLine1 + deccc 1, count + nop + nop + + st value, [atemp+WO(0)] /* e */ + st value, [atemp+WO(4)] + bnz ForEachBits + st value, [atemp+WO(8)] + b NextLine1 + deccc 1, count + nop + nop + + st value, [atemp+WO(0)] /* f */ + st value, [atemp+WO(4)] + st value, [atemp+WO(8)] + bnz ForEachBits + st value, [atemp+WO(12)] + deccc 1, count + bnz,a ForEachLine + inc 4, stipple + ret + restore Index: xc/programs/Xserver/cfb/stipsprc32.s diff -u xc/programs/Xserver/cfb/stipsprc32.s:1.6 xc/programs/Xserver/cfb/stipsprc32.s:removed --- xc/programs/Xserver/cfb/stipsprc32.s:1.6 Mon Jan 9 09:59:45 2006 +++ xc/programs/Xserver/cfb/stipsprc32.s Sun Aug 12 22:01:31 2007 @@ -1,281 +0,0 @@ -/* - * -Copyright 1990, 1998 The Open Group - -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. - * - * Author: Keith Packard, MIT X Consortium - */ -/* $XFree86: xc/programs/Xserver/cfb/stipsprc32.s,v 1.6 2006/01/09 14:59:45 dawes Exp $ */ - -/* - * SPARC assembly code for optimized text rendering. - * - * Other stippling could be done in assembly, but the payoff is - * not nearly as large. Mostly because large areas are heavily - * optimized already. - */ - -/* not that I expect to ever see an LSB SPARC, but ... */ -#ifdef LITTLE_ENDIAN -# define BitsR sll -# define BitsL srl -# define WO(o) 3-o -# define FourBits(dest,bits) and bits, 0xf, dest -#else -# define BitsR srl -# define BitsL sll -# define WO(o) o -# define FourBits(dest,bits) srl bits, 28, dest -#endif - -/* - * cfb32StippleStack(addr, stipple, value, stride, Count, Shift) - * 4 5 6 7 16(sp) 20(sp) - * - * Apply successive 32-bit stipples starting at addr, addr+stride, ... - * - * Used for text rendering, but only when no data could be lost - * when the stipple is shifted left by Shift bits - */ -/* arguments */ -#define addr %i0 -#define stipple %i1 -#define value %i2 -#define stride %i3 -#define count %i4 -#define shift %i5 - -/* local variables */ -#define atemp %l0 -#define bits %l1 -#define lshift %l2 -#define sbase %l3 -#define stemp %l4 - -#define CASE_SIZE 5 /* case blocks are 2^5 bytes each */ -#define CASE_MASK 0x1e0 /* first case mask */ - -#define ForEachLine LY1 -#define NextLine LY2 -#define CaseBegin LY3 -#define ForEachBits LY4 -#define NextBits LY5 - -#if defined(SVR4) || defined(__ELF__) -#ifdef TETEXT -#define _cfb32StippleStack cfb32StippleStackTE -#else -#define _cfb32StippleStack cfb32StippleStack -#endif -#else -#ifdef TETEXT -#define _cfb32StippleStack _cfb32StippleStackTE -#endif -#endif - - .seg "text" - .proc 16 - .globl _cfb32StippleStack -_cfb32StippleStack: - save %sp,-64,%sp - sethi %hi(CaseBegin),sbase /* load up switch table */ - or sbase,%lo(CaseBegin),sbase - - mov 4,lshift /* compute offset within */ - sub lshift, shift, lshift /* stipple of remaining bits */ -#ifdef LITTLE_ENDIAN - inc CASE_SIZE, shift /* first shift for LSB */ -#else - inc 28-CASE_SIZE, shift /* first shift for MSB */ -#endif - /* do ... while (--count > 0); */ -ForEachLine: - ld [stipple],bits /* get stipple bits */ - mov addr,atemp /* set up for this line */ -#ifdef TETEXT - /* Terminal emulator fonts are expanded and have many 0 rows */ - tst bits - bz NextLine /* skip out early on 0 */ -#endif - add addr, stride, addr /* step for the loop */ - BitsR bits, shift, stemp /* get first bits */ - and stemp, CASE_MASK, stemp /* compute first jump */ - BitsL bits, lshift, bits /* set remaining bits */ - jmp sbase+stemp /* ... */ - tst bits - -ForEachBits: - inc 16, atemp -ForEachBits1: - FourBits(stemp, bits) /* compute jump for */ - sll stemp, CASE_SIZE, stemp /* these four bits */ - BitsL bits, 4, bits /* step for remaining bits */ - jmp sbase+stemp /* jump */ - tst bits -CaseBegin: - bnz,a ForEachBits1 /* 0 */ - inc 16, atemp -NextLine: - deccc 1, count -NextLine1: - bnz,a ForEachLine - inc 4, stipple - ret - restore - nop - - bnz ForEachBits /* 1 */ - st value, [atemp+WO(12)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - nop - - bnz ForEachBits /* 2 */ - st value, [atemp+WO(8)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - nop - - st value, [atemp+WO(8)] /* 3 */ - bnz ForEachBits - st value, [atemp+WO(12)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - bnz ForEachBits /* 4 */ - st value, [atemp+WO(4)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - nop - - st value, [atemp+WO(4)] /* 5 */ - bnz ForEachBits - st value, [atemp+WO(12)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - st value, [atemp+WO(4)] /* 6 */ - bnz ForEachBits - st value, [atemp+WO(8)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - st value, [atemp+WO(4)] /* 7 */ - st value, [atemp+WO(8)] - bnz ForEachBits - st value, [atemp+WO(12)] - b NextLine1 - deccc 1, count - nop - nop - - bnz ForEachBits /* 8 */ - st value, [atemp+WO(0)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - nop - - st value, [atemp+WO(0)] /* 9 */ - bnz ForEachBits - st value, [atemp+WO(12)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - st value, [atemp+WO(0)] /* a */ - bnz ForEachBits - st value, [atemp+WO(8)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - st value, [atemp+WO(0)] /* b */ - st value, [atemp+WO(8)] - bnz ForEachBits - st value, [atemp+WO(12)] - b NextLine1 - deccc 1, count - nop - nop - - st value, [atemp+WO(0)] /* c */ - bnz ForEachBits - st value, [atemp+WO(4)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore - - st value, [atemp+WO(0)] /* d */ - st value, [atemp+WO(4)] - bnz ForEachBits - st value, [atemp+WO(12)] - b NextLine1 - deccc 1, count - nop - nop - - st value, [atemp+WO(0)] /* e */ - st value, [atemp+WO(4)] - bnz ForEachBits - st value, [atemp+WO(8)] - b NextLine1 - deccc 1, count - nop - nop - - st value, [atemp+WO(0)] /* f */ - st value, [atemp+WO(4)] - st value, [atemp+WO(8)] - bnz ForEachBits - st value, [atemp+WO(12)] - deccc 1, count - bnz,a ForEachLine - inc 4, stipple - ret - restore Index: xc/programs/Xserver/dbe/dbe.c diff -u xc/programs/Xserver/dbe/dbe.c:3.14 xc/programs/Xserver/dbe/dbe.c:3.16 --- xc/programs/Xserver/dbe/dbe.c:3.14 Sun Feb 19 10:51:18 2006 +++ xc/programs/Xserver/dbe/dbe.c Tue Jan 9 12:26:01 2007 @@ -29,7 +29,7 @@ * DIX DBE code * *****************************************************************************/ -/* $XFree86: xc/programs/Xserver/dbe/dbe.c,v 3.14 2006/02/19 15:51:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/dbe/dbe.c,v 3.16 2007/01/09 17:26:01 tsi Exp $ */ /* INCLUDES */ @@ -715,11 +715,14 @@ return(Success); } + if (nStuff > (CARD32)(-1L) / sizeof(DbeSwapInfoRec)) + return BadAlloc; + /* Get to the swap info appended to the end of the request. */ dbeSwapInfo = (xDbeSwapInfo *)&stuff[1]; /* Allocate array to record swap information. */ - swapInfo = (DbeSwapInfoPtr)ALLOCATE_LOCAL(nStuff * sizeof(DbeSwapInfoRec)); + swapInfo = (DbeSwapInfoPtr)Xalloc(nStuff * sizeof(DbeSwapInfoRec)); if (swapInfo == NULL) { return(BadAlloc); @@ -734,14 +737,14 @@ if (!(pWin = SecurityLookupWindow(dbeSwapInfo[i].window, client, SecurityWriteAccess))) { - DEALLOCATE_LOCAL(swapInfo); + Xfree(swapInfo); return(BadWindow); } /* Each window must be double-buffered - BadMatch. */ if (DBE_WINDOW_PRIV(pWin) == NULL) { - DEALLOCATE_LOCAL(swapInfo); + Xfree(swapInfo); return(BadMatch); } @@ -750,7 +753,7 @@ { if (dbeSwapInfo[i].window == dbeSwapInfo[j].window) { - DEALLOCATE_LOCAL(swapInfo); + Xfree(swapInfo); return(BadMatch); } } @@ -761,7 +764,7 @@ (dbeSwapInfo[i].swapAction != XdbeUntouched ) && (dbeSwapInfo[i].swapAction != XdbeCopied )) { - DEALLOCATE_LOCAL(swapInfo); + Xfree(swapInfo); return(BadValue); } @@ -791,12 +794,12 @@ error = (*pDbeScreenPriv->SwapBuffers)(client, &nStuff, swapInfo); if (error != Success) { - DEALLOCATE_LOCAL(swapInfo); + Xfree(swapInfo); return(error); } } - DEALLOCATE_LOCAL(swapInfo); + Xfree(swapInfo); return(Success); } /* ProcDbeSwapBuffers() */ @@ -878,10 +881,12 @@ REQUEST_AT_LEAST_SIZE(xDbeGetVisualInfoReq); + if (stuff->n > (CARD32)(-1L) / sizeof(DrawablePtr)) + return BadAlloc; /* Make sure any specified drawables are valid. */ if (stuff->n != 0) { - if (!(pDrawables = (DrawablePtr *)ALLOCATE_LOCAL(stuff->n * + if (!(pDrawables = (DrawablePtr *)Xalloc(stuff->n * sizeof(DrawablePtr)))) { return(BadAlloc); @@ -894,7 +899,7 @@ if (!(pDrawables[i] = (DrawablePtr)SecurityLookupDrawable( drawables[i], client, SecurityReadAccess))) { - DEALLOCATE_LOCAL(pDrawables); + Xfree(pDrawables); return(BadDrawable); } } @@ -906,7 +911,7 @@ { if (pDrawables) { - DEALLOCATE_LOCAL(pDrawables); + Xfree(pDrawables); } return(BadAlloc); @@ -933,7 +938,7 @@ /* Free pDrawables if we needed to allocate it above. */ if (pDrawables) { - DEALLOCATE_LOCAL(pDrawables); + Xfree(pDrawables); } return(BadAlloc); @@ -1014,7 +1019,7 @@ if (pDrawables) { - DEALLOCATE_LOCAL(pDrawables); + Xfree(pDrawables); } return(client->noClientException); @@ -1778,7 +1783,7 @@ *****************************************************************************/ void -DbeExtensionInit(void) +DbeExtensionInit(INITARGS) { ExtensionEntry *extEntry; int i, j; Index: xc/programs/Xserver/dbe/dbeproc.h diff -u xc/programs/Xserver/dbe/dbeproc.h:1.2 xc/programs/Xserver/dbe/dbeproc.h:1.3 --- xc/programs/Xserver/dbe/dbeproc.h:1.2 Sun Feb 19 10:51:18 2006 +++ xc/programs/Xserver/dbe/dbeproc.h Wed Jan 3 21:48:12 2007 @@ -1,8 +1,10 @@ -/* $XFree86: xc/programs/Xserver/dbe/dbeproc.h,v 1.2 2006/02/19 15:51:18 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/dbe/dbeproc.h,v 1.3 2007/01/04 02:48:12 tsi Exp $ */ #ifndef DBEPROC_H #define DBEPROC_H 1 +#include "extnsionst.h" + #ifndef DBE_EXT_INIT_ONLY #include "dbestruct.h" @@ -16,6 +18,6 @@ #endif /* DBE_EXT_INIT_ONLY */ -void DbeExtensionInit(void); +void DbeExtensionInit(INITARGS); #endif /* DBEPROC_H */ Index: xc/programs/Xserver/dix/cursor.c diff -u xc/programs/Xserver/dix/cursor.c:3.11 xc/programs/Xserver/dix/cursor.c:3.12 --- xc/programs/Xserver/dix/cursor.c:3.11 Fri Oct 14 11:16:21 2005 +++ xc/programs/Xserver/dix/cursor.c Sat Sep 2 12:44:04 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/dix/cursor.c,v 3.11 2005/10/14 15:16:21 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/dix/cursor.c,v 3.12 2006/09/02 16:44:04 dawes Exp $ */ /*********************************************************** Copyright 1987, 1998 The Open Group @@ -405,7 +405,7 @@ *************************************************************/ CursorPtr -CreateRootCursor(char *pfilename, unsigned int glyph) +CreateRootCursor(const char *pfilename, unsigned int glyph) { CursorPtr curs; FontPtr cursorfont; Index: xc/programs/Xserver/dix/dixfonts.c diff -u xc/programs/Xserver/dix/dixfonts.c:3.33 xc/programs/Xserver/dix/dixfonts.c:3.36 --- xc/programs/Xserver/dix/dixfonts.c:3.33 Fri Oct 14 11:16:21 2005 +++ xc/programs/Xserver/dix/dixfonts.c Mon Dec 25 12:04:59 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/dix/dixfonts.c,v 3.33 2005/10/14 15:16:21 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/dix/dixfonts.c,v 3.36 2006/12/25 17:04:59 tsi Exp $ */ /************************************************************************ Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts. @@ -140,7 +140,7 @@ * adding RT_FONT prevents conflict with default cursor font */ Bool -SetDefaultFont(char *defaultfontname) +SetDefaultFont(const char *defaultfontname) { int err; FontPtr pf; @@ -393,7 +393,7 @@ int OpenFont(ClientPtr client, XID fid, Mask flags, unsigned lenfname, - char *pfontname) + const char *pfontname) { OFclosurePtr c; int i; @@ -1812,7 +1812,7 @@ } int -SetDefaultFontPath(char *path) +SetDefaultFontPath(const char *path) { unsigned char *cp, *pp, @@ -2147,7 +2147,7 @@ bpr = GLYPH_SIZE(cip, 4); for (r = 0; r < (cip->metrics.ascent + cip->metrics.descent); r++) { - pointer row = (pointer) cip->bits + r * bpr; + unsigned *row = (unsigned *)(cip->bits + (r * bpr)); byte = 0; for (l = 0; l <= (cip->metrics.rightSideBearing - Index: xc/programs/Xserver/dix/events.c diff -u xc/programs/Xserver/dix/events.c:3.58 xc/programs/Xserver/dix/events.c:3.60 --- xc/programs/Xserver/dix/events.c:3.58 Sun Feb 19 10:51:19 2006 +++ xc/programs/Xserver/dix/events.c Thu May 24 12:51:39 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/dix/events.c,v 3.58 2006/02/19 15:51:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/dix/events.c,v 3.60 2007/05/24 16:51:39 tsi Exp $ */ /************************************************************ Copyright 1987, 1998 The Open Group @@ -150,7 +150,7 @@ static int DontPropagateRefCnts[DNPMCOUNT]; #ifdef DEBUG -static debug_events = 0; +static int debug_events = 0; #endif InputInfo inputInfo; @@ -353,8 +353,10 @@ if (new.y >= sprite.physLimits.y2) new.y = sprite.physLimits.y2 - 1; +#ifdef SHAPE if (sprite.hotShape) /* more work if the shape is a mess */ ConfineToShape(sprite.hotShape, &new.x, &new.y); +#endif if((new.x != sprite.hotPhys.x) || (new.y != sprite.hotPhys.y)) { @@ -485,8 +487,10 @@ else if (sprite.hot.y >= sprite.physLimits.y2) sprite.hot.y = sprite.physLimits.y2 - 1; +#ifdef SHAPE if (sprite.hotShape) ConfineToShape(sprite.hotShape, &sprite.hot.x, &sprite.hot.y); +#endif sprite.hotPhys = sprite.hot; if ((sprite.hotPhys.x != XE_KBPTR.rootX) || @@ -554,10 +558,12 @@ sprite.hotLimits = *REGION_EXTENTS(sprite.screen, &sprite.Reg1); +#ifdef SHAPE if(REGION_NUM_RECTS(&sprite.Reg1) > 1) sprite.hotShape = &sprite.Reg1; else sprite.hotShape = NullRegion; +#endif sprite.confined = FALSE; sprite.confineWin = (pWin == WindowTable[0]) ? NullWindow : pWin; @@ -2227,8 +2233,10 @@ y = sprite.physLimits.y1; else if (y >= sprite.physLimits.y2) y = sprite.physLimits.y2 - 1; +#ifdef SHAPE if (sprite.hotShape) ConfineToShape(sprite.hotShape, &x, &y); +#endif XineramaSetCursorPosition(x, y, TRUE); @@ -2639,7 +2647,7 @@ kptr = &keyc->down[key >> 3]; bit = 1 << (key & 7); modifiers = keyc->modifierMap[key]; -#ifdef DEBUG +#if defined(DEBUG) && defined(XKB) if ((xkbDebugFlags&0x4)&& ((xE->u.u.type==KeyPress)||(xE->u.u.type==KeyRelease))) { ErrorF("CoreProcessKbdEvent: Key %d %s\n",key, Index: xc/programs/Xserver/dix/globals.c diff -u xc/programs/Xserver/dix/globals.c:1.14 xc/programs/Xserver/dix/globals.c:1.15 --- xc/programs/Xserver/dix/globals.c:1.14 Fri Oct 14 11:16:21 2005 +++ xc/programs/Xserver/dix/globals.c Sat Sep 2 12:44:04 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/dix/globals.c,v 1.14 2005/10/14 15:16:21 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/dix/globals.c,v 1.15 2006/09/02 16:44:04 dawes Exp $ */ /************************************************************ Copyright 1987, 1998 The Open Group @@ -116,11 +116,11 @@ int logoScreenSaver = DEFAULT_LOGO_SCREEN_SAVER; #endif -char *defaultFontPath = COMPILEDDEFAULTFONTPATH; -char *defaultTextFont = COMPILEDDEFAULTFONT; -char *defaultCursorFont = COMPILEDCURSORFONT; -char *rgbPath = RGB_DB; -char *defaultDisplayClass = COMPILEDDISPLAYCLASS; +const char *defaultFontPath = COMPILEDDEFAULTFONTPATH; +const char *defaultTextFont = COMPILEDDEFAULTFONT; +const char *defaultCursorFont = COMPILEDCURSORFONT; +const char *rgbPath = RGB_DB; +const char *defaultDisplayClass = COMPILEDDISPLAYCLASS; FontPtr defaultFont; /* not declared in dix.h to avoid including font.h in every compilation of dix code */ Bool loadableFonts = FALSE; @@ -138,10 +138,10 @@ int defaultColorVisualClass = -1; int monitorResolution = 0; -char *display; +const char *display; CARD32 TimeOutValue = DEFAULT_TIMEOUT * MILLI_PER_SECOND; int argcGlobal; -char **argvGlobal; +const char **argvGlobal; DDXPointRec dixScreenOrigins[MAXSCREENS]; Index: xc/programs/Xserver/dix/main.c diff -u xc/programs/Xserver/dix/main.c:3.50 xc/programs/Xserver/dix/main.c:3.55 --- xc/programs/Xserver/dix/main.c:3.50 Thu Mar 16 16:43:59 2006 +++ xc/programs/Xserver/dix/main.c Mon Feb 5 09:54:15 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/dix/main.c,v 3.50 2006/03/16 21:43:59 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/dix/main.c,v 3.55 2007/02/05 14:54:15 tsi Exp $ */ /*********************************************************** Copyright 1987, 1998 The Open Group @@ -228,7 +228,7 @@ #endif int -main(int argc, char *argv[], char *envp[]) +main(int argc, const char *argv[], char *envp[]) { int i, j, k, error; char *xauthfile; @@ -250,6 +250,9 @@ else restart = 1; + /* Setup the allocator so that xalloc/xfree can be used early. */ + OsInitAllocator(); + CheckUserParameters(argc, argv, envp); CheckUserAuthorization(); @@ -469,16 +472,12 @@ if (dispatchException & DE_TERMINATE) { CloseWellKnownConnections(); - } - - OsCleanup((dispatchException & DE_TERMINATE) != 0); - - if (dispatchException & DE_TERMINATE) - { + OsCleanup(TRUE); ddxGiveUp(); break; } + OsCleanup(FALSE); xfree(ConnectionInfo); ConnectionInfo = NULL; OsPrepareRestart(); @@ -653,7 +652,7 @@ */ int -AddScreen(ScrnInitProcPtr pfnInit, int argc, char **argv) +AddScreen(ScrnInitProcPtr pfnInit, const int argc, const char **argv) { int i; Index: xc/programs/Xserver/dix/window.c diff -u xc/programs/Xserver/dix/window.c:3.39 xc/programs/Xserver/dix/window.c:3.40 --- xc/programs/Xserver/dix/window.c:3.39 Fri Oct 14 11:16:22 2005 +++ xc/programs/Xserver/dix/window.c Sun Dec 10 10:58:26 2006 @@ -69,7 +69,7 @@ * * *****************************************************************/ -/* $XFree86: xc/programs/Xserver/dix/window.c,v 3.39 2005/10/14 15:16:22 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/dix/window.c,v 3.40 2006/12/10 15:58:26 tsi Exp $ */ #include "misc.h" #include "scrnintstr.h" @@ -159,7 +159,7 @@ * For debugging only ******/ -int +void PrintChildren(WindowPtr p1, int indent) { WindowPtr p2; @@ -169,13 +169,14 @@ { p2 = p1->firstChild; for (i=0; i<indent; i++) ErrorF( " "); - ErrorF( "%x\n", p1->drawable.id); + ErrorF( "%lx\n", (unsigned long)p1->drawable.id); miPrintRegion(&p1->clipList); PrintChildren(p2, indent+4); p1 = p1->nextSib; } } +void PrintWindowTree() { int i; Index: xc/programs/Xserver/fb/Imakefile diff -u xc/programs/Xserver/fb/Imakefile:1.21 xc/programs/Xserver/fb/Imakefile:1.22 --- xc/programs/Xserver/fb/Imakefile:1.21 Fri Oct 14 11:16:23 2005 +++ xc/programs/Xserver/fb/Imakefile Sun Jul 1 11:14:50 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/fb/Imakefile,v 1.21 2005/10/14 15:16:23 tsi Exp $ +XCOMM $XFree86: xc/programs/Xserver/fb/Imakefile,v 1.22 2007/07/01 15:14:50 tsi Exp $ /* * Copyright (c) 1994-2004 by The XFree86 Project, Inc. * All rights reserved. @@ -158,6 +158,7 @@ #ifdef IHaveModules InstallLibraryModule(fb,$(MODULEDIR),.) +InstallDriverSDKLibraryModule(fb,$(DRIVERSDKMODULEDIR),.) #endif DependTarget() @@ -205,6 +206,7 @@ LinkSourceFile(fbwindow.c,LinkDirectory) #endif -InstallDriverSDKLibraryModule(fb,$(DRIVERSDKMODULEDIR),.) +#if !defined(IHaveModules) || !BuildModuleInSubdir InstallDriverSDKNonExecFile(fb.h,$(DRIVERSDKINCLUDEDIR)) InstallDriverSDKNonExecFile(fbrop.h,$(DRIVERSDKINCLUDEDIR)) +#endif Index: xc/programs/Xserver/fb/fbcmap.c diff -u xc/programs/Xserver/fb/fbcmap.c:1.8 xc/programs/Xserver/fb/fbcmap.c:1.9 --- xc/programs/Xserver/fb/fbcmap.c:1.8 Fri Oct 14 11:16:23 2005 +++ xc/programs/Xserver/fb/fbcmap.c Tue May 16 10:10:42 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/fb/fbcmap.c,v 1.8 2005/10/14 15:16:23 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/fb/fbcmap.c,v 1.9 2006/05/16 14:10:42 tsi Exp $ */ /************************************************************ Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. @@ -82,7 +82,13 @@ #include "resource.h" #include "fb.h" -#ifndef XFree86Server +#if 0 + +/* + * Old version. This isn't GLX-aware and doesn't respect Xvfb's specification + * of rootDepth. + */ + ColormapPtr FbInstalledMaps[MAXSCREENS]; int @@ -627,6 +633,7 @@ *defaultVisp = depth[i].vids[j]; return TRUE; } + #else #include "micmap.h" Index: xc/programs/Xserver/fb/fbpict.c diff -u xc/programs/Xserver/fb/fbpict.c:1.17 xc/programs/Xserver/fb/fbpict.c:1.18 --- xc/programs/Xserver/fb/fbpict.c:1.17 Thu Jun 10 13:28:10 2004 +++ xc/programs/Xserver/fb/fbpict.c Tue Dec 26 22:04:33 2006 @@ -1,5 +1,5 @@ /* - * $XFree86: xc/programs/Xserver/fb/fbpict.c,v 1.17 2004/06/10 17:28:10 tsi Exp $ + * $XFree86: xc/programs/Xserver/fb/fbpict.c,v 1.18 2006/12/27 03:04:33 tsi Exp $ * * Copyright © 2000 SuSE, Inc. * @@ -17,7 +17,7 @@ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL SuSE * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION - * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN + * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * * Author: Keith Packard, SuSE, Inc. @@ -57,7 +57,7 @@ ((*((CARD16 *) (a)) = (CARD16) (v)),\ (*((a)+2) = (CARD8) ((v) >> 16)))) #endif - + CARD32 fbOver (CARD32 x, CARD32 y) { @@ -136,6 +136,17 @@ (line) = ((type *) __bits__) + (stride) * ((y) - __yoff__) + (mul) * ((x) - __xoff__); \ } +#define fbComposeConvertFormat(source, picture) { \ + if (PICT_FORMAT_TYPE((picture)->pFormat->format) == PICT_TYPE_ABGR) { \ + CARD32 tmp = source; \ +\ + src = (tmp & 0xff00ff00) | \ + ((tmp & 0x00ff0000) >> 16) | \ + ((tmp & 0x000000ff) << 16); \ + } \ +} + + /* * Naming convention: * @@ -163,15 +174,17 @@ CARD16 w; fbComposeGetSolid(pSrc, src); - - dstMask = FbFullMask (pDst->pDrawable->depth); - srca = src >> 24; if (src == 0) return; - + + fbComposeConvertFormat(src, pDst); + + dstMask = FbFullMask (pDst->pDrawable->depth); + srca = src >> 24; + fbComposeGetStart (pDst, xDst, yDst, CARD32, dstStride, dstLine, 1); fbComposeGetStart (pMask, xMask, yMask, CARD8, maskStride, maskLine, 1); - + while (height--) { dst = dstLine; @@ -222,15 +235,17 @@ CARD32 m, n, o, p; fbComposeGetSolid(pSrc, src); - - dstMask = FbFullMask (pDst->pDrawable->depth); - srca = src >> 24; if (src == 0) return; - + + fbComposeConvertFormat(src, pDst); + + dstMask = FbFullMask (pDst->pDrawable->depth); + srca = src >> 24; + fbComposeGetStart (pDst, xDst, yDst, CARD32, dstStride, dstLine, 1); fbComposeGetStart (pMask, xMask, yMask, CARD32, maskStride, maskLine, 1); - + while (height--) { dst = dstLine; @@ -295,14 +310,16 @@ CARD16 w; fbComposeGetSolid(pSrc, src); - - srca = src >> 24; if (src == 0) return; - + + fbComposeConvertFormat(src, pDst); + + srca = src >> 24; + fbComposeGetStart (pDst, xDst, yDst, CARD8, dstStride, dstLine, 3); fbComposeGetStart (pMask, xMask, yMask, CARD8, maskStride, maskLine, 1); - + while (height--) { dst = dstLine; @@ -357,14 +374,16 @@ CARD16 w; fbComposeGetSolid(pSrc, src); - - srca = src >> 24; if (src == 0) return; - + + fbComposeConvertFormat(src, pDst); + + srca = src >> 24; + fbComposeGetStart (pDst, xDst, yDst, CARD16, dstStride, dstLine, 1); fbComposeGetStart (pMask, xMask, yMask, CARD8, maskStride, maskLine, 1); - + while (height--) { dst = dstLine; @@ -422,16 +441,18 @@ CARD32 m, n, o; fbComposeGetSolid(pSrc, src); - - srca = src >> 24; if (src == 0) return; - + + fbComposeConvertFormat(src, pDst); + + srca = src >> 24; + src16 = cvt8888to0565(src); - + fbComposeGetStart (pDst, xDst, yDst, CARD16, dstStride, dstLine, 1); fbComposeGetStart (pMask, xMask, yMask, CARD32, maskStride, maskLine, 1); - + while (height--) { dst = dstLine; @@ -490,10 +511,10 @@ FbStride dstStride, srcStride; CARD8 a; CARD16 w; - + fbComposeGetStart (pDst, xDst, yDst, CARD32, dstStride, dstLine, 1); fbComposeGetStart (pSrc, xSrc, ySrc, CARD32, srcStride, srcLine, 1); - + dstMask = FbFullMask (pDst->pDrawable->depth); while (height--) @@ -537,10 +558,10 @@ CARD8 a; FbStride dstStride, srcStride; CARD16 w; - + fbComposeGetStart (pDst, xDst, yDst, CARD8, dstStride, dstLine, 3); fbComposeGetStart (pSrc, xSrc, ySrc, CARD32, srcStride, srcLine, 1); - + while (height--) { dst = dstLine; @@ -586,7 +607,7 @@ CARD8 a; FbStride dstStride, srcStride; CARD16 w; - + fbComposeGetStart (pSrc, xSrc, ySrc, CARD32, srcStride, srcLine, 1); fbComposeGetStart (pDst, xDst, yDst, CARD16, dstStride, dstLine, 1); @@ -636,9 +657,8 @@ CARD16 *srcLine, *src; FbStride dstStride, srcStride; CARD16 w; - - fbComposeGetStart (pSrc, xSrc, ySrc, CARD16, srcStride, srcLine, 1); + fbComposeGetStart (pSrc, xSrc, ySrc, CARD16, srcStride, srcLine, 1); fbComposeGetStart (pDst, xDst, yDst, CARD16, dstStride, dstLine, 1); while (height--) @@ -674,7 +694,7 @@ CARD16 w; CARD8 s, d; CARD16 t; - + fbComposeGetStart (pSrc, xSrc, ySrc, CARD8, srcStride, srcLine, 1); fbComposeGetStart (pDst, xDst, yDst, CARD8, dstStride, dstLine, 1); @@ -725,7 +745,7 @@ CARD32 s, d; CARD16 t; CARD32 m,n,o,p; - + fbComposeGetStart (pSrc, xSrc, ySrc, CARD32, srcStride, srcLine, 1); fbComposeGetStart (pDst, xDst, yDst, CARD32, dstStride, dstLine, 1); @@ -780,9 +800,8 @@ int dstBpp, srcBpp; int dstXoff, dstYoff; int srcXoff, srcYoff; - - fbGetDrawable(pSrc->pDrawable, srcBits, srcStride, srcBpp, srcXoff, srcYoff); + fbGetDrawable(pSrc->pDrawable, srcBits, srcStride, srcBpp, srcXoff, srcYoff); fbGetDrawable(pDst->pDrawable, dstBits, dstStride, dstBpp, dstXoff, dstYoff); fbBlt (srcBits + srcStride * (ySrc + srcYoff), @@ -825,22 +844,24 @@ int dstXoff, dstYoff; int maskXoff, maskYoff; FbBits src; - + fbComposeGetSolid(pSrc, src); if ((src & 0xff000000) != 0xff000000) { fbCompositeGeneral (op, pSrc, pMask, pDst, - xSrc, ySrc, xMask, yMask, xDst, yDst, + xSrc, ySrc, xMask, yMask, xDst, yDst, width, height); return; } + + fbComposeConvertFormat(src, pDst); + fbGetStipDrawable (pMask->pDrawable, maskBits, maskStride, maskBpp, maskXoff, maskYoff); fbGetDrawable (pDst->pDrawable, dstBits, dstStride, dstBpp, dstXoff, dstYoff); switch (dstBpp) { case 32: - break; case 24: break; case 16: @@ -895,7 +916,7 @@ Bool dstAlphaMap = pDst->alphaMap != 0; int x_msk, y_msk, x_src, y_src, x_dst, y_dst; int w, h, w_this, h_this; - + xDst += pDst->pDrawable->x; yDst += pDst->pDrawable->y; xSrc += pSrc->pDrawable->x; @@ -907,7 +928,7 @@ maskRepeat = pMask->repeat; maskAlphaMap = pMask->alphaMap != 0; } - + if (!miComputeCompositeRegion (®ion, pSrc, pMask, @@ -921,7 +942,7 @@ width, height)) return; - + func = fbCompositeGeneral; if (!pSrc->transform && !(pMask && pMask->transform)) if (!maskAlphaMap && !srcAlphaMap && !dstAlphaMap) @@ -929,7 +950,7 @@ case PictOpOver: if (pMask) { - if (srcRepeat && + if (srcRepeat && pSrc->pDrawable->width == 1 && pSrc->pDrawable->height == 1) { @@ -1126,7 +1147,7 @@ w_this = pSrc->pDrawable->width - x_src; } (*func) (op, pSrc, pMask, pDst, - x_src, y_src, x_msk, y_msk, x_dst, y_dst, + x_src, y_src, x_msk, y_msk, x_dst, y_dst, w_this, h_this); w -= w_this; x_src += w_this; Index: xc/programs/Xserver/fb/fbtrap.c diff -u xc/programs/Xserver/fb/fbtrap.c:1.10 xc/programs/Xserver/fb/fbtrap.c:1.11 --- xc/programs/Xserver/fb/fbtrap.c:1.10 Thu Sep 26 20:31:24 2002 +++ xc/programs/Xserver/fb/fbtrap.c Sun Dec 10 10:58:26 2006 @@ -1,5 +1,5 @@ /* - * $XFree86: xc/programs/Xserver/fb/fbtrap.c,v 1.10 2002/09/27 00:31:24 keithp Exp $ + * $XFree86: xc/programs/Xserver/fb/fbtrap.c,v 1.11 2006/12/10 15:58:26 tsi Exp $ * * Copyright © 2000 University of Southern California * @@ -35,8 +35,10 @@ #include "fbpict.h" #ifdef DEBUG +#ifndef IN_MODULE #include <stdio.h> #include <assert.h> +#endif #define ASSERT(e) assert(e) @@ -940,10 +942,10 @@ #ifdef DEBUG fprintf(stderr, "alpha (%f, %f) - (%f, %f) = ", - (double) pw->p1.x / (1 << 16), - (double) pw->p1.y / (1 << 16), - (double) pw->p2.x / (1 << 16), - (double) pw->p2.y / (1 << 16)); + (double) pw->p_trap_top.x / (1 << 16), + (double) pw->p_trap_top.y / (1 << 16), + (double) pw->p_trap_bottom.x / (1 << 16), + (double) pw->p_trap_bottom.y / (1 << 16)); fflush(stderr); #endif Index: xc/programs/Xserver/hw/darwin/Imakefile diff -u xc/programs/Xserver/hw/darwin/Imakefile:1.22 xc/programs/Xserver/hw/darwin/Imakefile:1.24 --- xc/programs/Xserver/hw/darwin/Imakefile:1.22 Fri Oct 14 11:16:23 2005 +++ xc/programs/Xserver/hw/darwin/Imakefile Mon Apr 2 20:21:07 2007 @@ -1,7 +1,7 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/Imakefile,v 1.22 2005/10/14 15:16:23 tsi Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/Imakefile,v 1.24 2007/04/03 00:21:07 tsi Exp $ -#include <Server.tmpl> #define IHaveSubdirs +#include <Server.tmpl> LinkSourceFile(XFree86.man,../xfree86) @@ -27,9 +27,9 @@ $(XINPUTOBJS) INCLUDES = -I$(SERVERSRC)/mi -I$(SERVERSRC)/fb -I$(SERVERSRC)/render \ + -I$(SERVERSRC)/Xi -I$(SERVERSRC)/record -I$(SERVERSRC)/dbe \ -I$(SERVERSRC)/include -I$(SERVERSRC)/os \ - -I$(SERVERSRC)/miext/shadow -I$(SERVERSRC)/hw/xfree86 \ - -I$(SERVERSRC)/Xi + -I$(SERVERSRC)/miext/shadow -I$(SERVERSRC)/hw/xfree86 OSNAME = OSName OSVENDOR = OSVendor @@ -48,11 +48,7 @@ #endif #if DarwinQuartzSupport -# if (OSMajorVersion == 1 && OSMinorVersion >= 4) || OSMajorVersion >= 5 SUBDIRS = iokit bundle quartz utils -# else -SUBDIRS = iokit bundle quartz_1.3 utils -# endif QUARTZDEF = -DDARWIN_WITH_QUARTZ #else SUBDIRS = iokit utils Index: xc/programs/Xserver/hw/darwin/darwin.c diff -u xc/programs/Xserver/hw/darwin/darwin.c:1.60 xc/programs/Xserver/hw/darwin/darwin.c:1.64 --- xc/programs/Xserver/hw/darwin/darwin.c:1.60 Sun Feb 19 10:51:19 2006 +++ xc/programs/Xserver/hw/darwin/darwin.c Mon Apr 2 20:21:07 2007 @@ -5,7 +5,7 @@ * **************************************************************/ /* - * Copyright (c) 2001-2003 Torrey T. Lyons. All Rights Reserved. + * Copyright (c) 2001-2004 Torrey T. Lyons. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -29,7 +29,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/darwin.c,v 1.60 2006/02/19 15:51:19 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/darwin.c,v 1.64 2007/04/03 00:21:07 tsi Exp $ */ #include <X11/X.h> #include <X11/Xproto.h> @@ -89,13 +89,16 @@ int darwinDesiredDepth = -1; int darwinDesiredRefresh = -1; char *darwinKeymapFile = "USA.keymapping"; +int darwinSyncKeymap = FALSE; +int darwinSwapAltMeta = FALSE; // modifier masks for faking mouse buttons int darwinFakeMouse2Mask = NX_COMMANDMASK; int darwinFakeMouse3Mask = NX_ALTERNATEMASK; -static DeviceIntPtr darwinPointer; -static DeviceIntPtr darwinKeyboard; +// devices +DeviceIntPtr darwinPointer = NULL; +DeviceIntPtr darwinKeyboard = NULL; // Common pixmap formats static PixmapFormatRec formats[] = { @@ -145,8 +148,8 @@ ErrorF(" (%s)", XF86_CUSTOM_VERSION); #endif ErrorF(" / X Window System\n"); - ErrorF("(protocol Version %d, revision %d, vendor release %d)\n", - X_PROTOCOL, X_PROTOCOL_REVISION, VENDOR_RELEASE ); + ErrorF("(protocol Version %d, revision %d)\n", + X_PROTOCOL, X_PROTOCOL_REVISION); ErrorF("Release Date: %s\n", XF86_DATE); ErrorF("\tIf the server is older than 6-12 months, or if your hardware is\n" "\tnewer than the above date, look for a newer version before\n" @@ -181,8 +184,8 @@ static Bool DarwinAddScreen( int index, ScreenPtr pScreen, - int argc, - char **argv ) + const int argc, + const char **argv ) { int bitsPerRGB, i, dpi; static int foundIndex = 0; @@ -347,7 +350,7 @@ DeviceIntPtr pPointer, int what ) { - char map[6]; + unsigned char map[6]; switch (what) { @@ -529,7 +532,7 @@ * InitInput * Register the keyboard and mouse devices */ -void InitInput( int argc, char **argv ) +void InitInput( const int argc, const char **argv ) { darwinPointer = AddInputDevice(DarwinMouseProc, TRUE); RegisterPointerDevice( darwinPointer ); @@ -607,7 +610,7 @@ * After other screen setup has been done, a mode specific * SetupScreen function can be called to finalize screen setup. */ -void InitOutput( ScreenInfo *pScreenInfo, int argc, char **argv ) +void InitOutput( ScreenInfo *pScreenInfo, const int argc, const char **argv ) { int i; static unsigned long generation = 0; @@ -689,7 +692,7 @@ * not device dependent, otherwise Count of number of elements of argv * that are part of a device dependent commandline option. */ -int ddxProcessArgument( int argc, char *argv[], int i ) +int ddxProcessArgument( int argc, const char *argv[], int i ) { int numDone; @@ -734,11 +737,16 @@ return 2; } + if ( !strcmp( argv[i], "-swapAltMeta" ) ) { + darwinSwapAltMeta = 1; + return 1; + } + if ( !strcmp( argv[i], "-keymap" ) ) { if ( i == argc-1 ) { FatalError( "-keymap must be followed by a filename\n" ); } - darwinKeymapFile = argv[i+1]; + darwinKeymapFile = (char *)argv[i+1]; return 2; } @@ -747,6 +755,16 @@ return 1; } + if ( !strcmp( argv[i], "+synckeymap" ) ) { + darwinSyncKeymap = TRUE; + return 1; + } + + if ( !strcmp( argv[i], "-synckeymap" ) ) { + darwinSyncKeymap = FALSE; + return 1; + } + if ( !strcmp( argv[i], "-size" ) ) { if ( i >= argc-2 ) { FatalError( "-size must be followed by two numbers\n" ); Index: xc/programs/Xserver/hw/darwin/darwin.h diff -u xc/programs/Xserver/hw/darwin/darwin.h:1.21 xc/programs/Xserver/hw/darwin/darwin.h:1.23 --- xc/programs/Xserver/hw/darwin/darwin.h:1.21 Fri Oct 14 11:16:23 2005 +++ xc/programs/Xserver/hw/darwin/darwin.h Mon Apr 2 20:21:07 2007 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001-2003 Torrey T. Lyons. All Rights Reserved. + * Copyright (c) 2001-2004 Torrey T. Lyons. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -23,7 +23,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/darwin.h,v 1.21 2005/10/14 15:16:23 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/darwin.h,v 1.23 2007/04/03 00:21:07 tsi Exp $ */ #ifndef _DARWIN_H #define _DARWIN_H @@ -31,6 +31,7 @@ #include <IOKit/IOTypes.h> #include "inputstr.h" #include "scrnintstr.h" +#include "extnsionst.h" #include <X11/extensions/XKB.h> typedef struct { @@ -69,9 +70,9 @@ // Mode specific functions Bool DarwinModeAddScreen(int index, ScreenPtr pScreen); Bool DarwinModeSetupScreen(int index, ScreenPtr pScreen); -void DarwinModeInitOutput(int argc,char **argv); -void DarwinModeInitInput(int argc, char **argv); -int DarwinModeProcessArgument(int argc, char *argv[], int i); +void DarwinModeInitOutput(int argc, const char **argv); +void DarwinModeInitInput(int argc, const char **argv); +int DarwinModeProcessArgument(int argc, const char *argv[], int i); void DarwinModeProcessEvent(xEvent *xe); void DarwinModeGiveUp(void); void DarwinModeBell(int volume, DeviceIntPtr pDevice, pointer ctrl, int class); @@ -83,8 +84,7 @@ #define kern_assert(x) { if ((x) != KERN_SUCCESS) \ FatalError("assert failed on line %d of %s with kernel return 0x%x!\n", \ __LINE__, __FILE__, x); } -#define SCREEN_PRIV(pScreen) \ - ((DarwinFramebufferPtr)pScreen->devPrivates[darwinScreenIndex].ptr) +#define SCREEN_PRIV(pScreen) pScreen->devPrivates[darwinScreenIndex].ptr #define MIN_KEYCODE XkbMinLegalKeyCode // unfortunately, this isn't 0... @@ -98,13 +98,17 @@ extern io_connect_t darwinParamConnect; extern int darwinEventReadFD; extern int darwinEventWriteFD; +extern DeviceIntPtr darwinPointer; +extern DeviceIntPtr darwinKeyboard; // User preferences extern int darwinMouseAccelChange; extern int darwinFakeButtons; extern int darwinFakeMouse2Mask; extern int darwinFakeMouse3Mask; +extern int darwinSwapAltMeta; extern char *darwinKeymapFile; +extern int darwinSyncKeymap; extern unsigned int darwinDesiredWidth, darwinDesiredHeight; extern int darwinDesiredDepth; extern int darwinDesiredRefresh; Index: xc/programs/Xserver/hw/darwin/darwinEvents.c diff -u xc/programs/Xserver/hw/darwin/darwinEvents.c:1.7 xc/programs/Xserver/hw/darwin/darwinEvents.c:1.8 --- xc/programs/Xserver/hw/darwin/darwinEvents.c:1.7 Fri Oct 14 11:16:23 2005 +++ xc/programs/Xserver/hw/darwin/darwinEvents.c Mon Apr 2 20:21:07 2007 @@ -2,7 +2,7 @@ * Darwin event queue and event handling */ /* -Copyright (c) 2002 Torrey T. Lyons. All Rights Reserved. +Copyright (c) 2002-2004 Torrey T. Lyons. All Rights Reserved. Copyright 2004 Kaleb S. KEITHLEY. All Rights Reserved. This file is based on mieq.c by Keith Packard, @@ -29,7 +29,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/darwinEvents.c,v 1.7 2005/10/14 15:16:23 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/darwinEvents.c,v 1.8 2007/04/03 00:21:07 tsi Exp $ */ #define NEED_EVENTS #include <X11/X.h> @@ -44,6 +44,7 @@ #include "mipointer.h" #include "darwin.h" +#include "darwinKeyboard.h" #include <sys/types.h> #include <sys/uio.h> @@ -322,6 +323,23 @@ switch (xe.u.u.type) { case KeyPress: + if (old_flags == 0 + && darwinSyncKeymap && darwinKeymapFile == NULL) + { + /* See if keymap has changed. */ + + static unsigned int last_seed; + unsigned int this_seed; + + this_seed = DarwinModeSystemKeymapSeed(); + if (this_seed != last_seed) + { + last_seed = this_seed; + DarwinKeyboardReload(darwinKeyboard); + } + } + /* fall through */ + case KeyRelease: xe.u.u.detail += MIN_KEYCODE; (*darwinEventQueue.pKbd->processInputProc) Index: xc/programs/Xserver/hw/darwin/darwinKeyboard.c diff -u xc/programs/Xserver/hw/darwin/darwinKeyboard.c:1.21 xc/programs/Xserver/hw/darwin/darwinKeyboard.c:1.22 --- xc/programs/Xserver/hw/darwin/darwinKeyboard.c:1.21 Wed Mar 31 19:05:22 2004 +++ xc/programs/Xserver/hw/darwin/darwinKeyboard.c Mon Apr 2 20:21:07 2007 @@ -2,7 +2,7 @@ // // Keyboard support for the Darwin X Server // -// Copyright (c) 2001-2003 Torrey T. Lyons. All Rights Reserved. +// Copyright (c) 2001-2004 Torrey T. Lyons. All Rights Reserved. // Copyright (c) 2003 Apple Computer, Inc. All Rights Reserved. // Copyright 2004 Kaleb S. KEITHLEY. All Rights Reserved. // @@ -38,7 +38,7 @@ // //============================================================================= -/* $XFree86: xc/programs/Xserver/hw/darwin/darwinKeyboard.c,v 1.21 2004/04/01 00:05:22 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/darwinKeyboard.c,v 1.22 2007/04/03 00:21:07 tsi Exp $ */ /* =========================================================================== @@ -64,12 +64,12 @@ /* Define this to use Alt for Mode_switch. */ #define ALT_IS_MODE_SWITCH 1 -#include <drivers/event_status_driver.h> -#include <IOKit/hidsystem/ev_keymap.h> #include <stdio.h> #include <stdlib.h> #include <errno.h> #include <sys/stat.h> +#include <IOKit/hidsystem/event_status_driver.h> +#include <IOKit/hidsystem/ev_keymap.h> #include <architecture/byte_order.h> // For the NXSwap* #include "darwin.h" #include "darwinKeyboard.h" @@ -636,24 +636,6 @@ destroy_data_stream( keyMapStream ); xfree( keyMap.mapping ); -#ifdef DUMP_DARWIN_KEYMAP - ErrorF("Darwin -> X converted keyboard map\n"); - for (i = 0, k = info->keyMap; i < NX_NUMKEYCODES; - i++, k += GLYPHS_PER_KEY) - { - int j; - ErrorF("0x%02x:", i); - for (j = 0; j < GLYPHS_PER_KEY; j++) { - if (k[j] == NoSymbol) { - ErrorF("\tNoSym"); - } else { - ErrorF("\t0x%x", k[j]); - } - } - ErrorF("\n"); - } -#endif - return TRUE; } @@ -669,7 +651,6 @@ { int i; KeySym *k; - int darwinSwapAltMeta = 0; memset(info->modMap, NoSymbol, sizeof(info->modMap)); memset(info->modifierKeycodes, 0, sizeof(info->modifierKeycodes)); @@ -777,6 +758,49 @@ /* + * DarwinLoadKeyboardMapping + * Load the keyboard map from a file or system and convert + * it to an equivalent X keyboard map and modifier map. + */ +static void +DarwinLoadKeyboardMapping(KeySymsRec *keySyms) +{ + memset(keyInfo.keyMap, 0, sizeof(keyInfo.keyMap)); + + if (!DarwinParseNXKeyMapping(&keyInfo)) { + if (!DarwinModeReadSystemKeymap(&keyInfo)) { + FatalError("Could not build a valid keymap."); + } + } + + DarwinBuildModifierMaps(&keyInfo); + +#ifdef DUMP_DARWIN_KEYMAP + ErrorF("Darwin -> X converted keyboard map\n"); + for (i = 0, k = info->keyMap; i < NX_NUMKEYCODES; + i++, k += GLYPHS_PER_KEY) + { + int j; + ErrorF("0x%02x:", i); + for (j = 0; j < GLYPHS_PER_KEY; j++) { + if (k[j] == NoSymbol) { + ErrorF("\tNoSym"); + } else { + ErrorF("\t0x%x", k[j]); + } + } + ErrorF("\n"); + } +#endif + + keySyms->map = keyInfo.keyMap; + keySyms->mapWidth = GLYPHS_PER_KEY; + keySyms->minKeyCode = MIN_KEYCODE; + keySyms->maxKeyCode = MAX_KEYCODE; +} + + +/* * DarwinKeyboardInit * Get the Darwin keyboard map and compute an equivalent * X keyboard map and modifier map. Set the new keyboard @@ -787,31 +811,89 @@ { KeySymsRec keySyms; - memset( keyInfo.keyMap, 0, sizeof( keyInfo.keyMap ) ); - // Open a shared connection to the HID System. // Note that the Event Status Driver is really just a wrapper // for a kIOHIDParamConnectType connection. assert( darwinParamConnect = NXOpenEventStatus() ); - if (!DarwinParseNXKeyMapping(&keyInfo)) { - if (!DarwinModeReadSystemKeymap(&keyInfo)) { - FatalError("Could not build a valid keymap."); - } - } + DarwinLoadKeyboardMapping(&keySyms); - DarwinBuildModifierMaps(&keyInfo); - - keySyms.map = keyInfo.keyMap; - keySyms.mapWidth = GLYPHS_PER_KEY; - keySyms.minKeyCode = MIN_KEYCODE; - keySyms.maxKeyCode = MAX_KEYCODE; + /* Initialize the seed, so we don't reload the keymap unnecessarily + (and possibly overwrite xinitrc changes) */ + DarwinModeSystemKeymapSeed(); assert( InitKeyboardDeviceStruct( (DevicePtr)pDev, &keySyms, keyInfo.modMap, DarwinModeBell, DarwinChangeKeyboardControl )); } + +/* Borrowed from dix/devices.c */ +static Bool +InitModMap(register KeyClassPtr keyc) +{ + int i, j; + CARD8 keysPerModifier[8]; + CARD8 mask; + + if (keyc->modifierKeyMap != NULL) + xfree (keyc->modifierKeyMap); + + keyc->maxKeysPerModifier = 0; + for (i = 0; i < 8; i++) + keysPerModifier[i] = 0; + for (i = 8; i < MAP_LENGTH; i++) + { + for (j = 0, mask = 1; j < 8; j++, mask <<= 1) + { + if (mask & keyc->modifierMap[i]) + { + if (++keysPerModifier[j] > keyc->maxKeysPerModifier) + keyc->maxKeysPerModifier = keysPerModifier[j]; + } + } + } + keyc->modifierKeyMap = (KeyCode *)xalloc(8*keyc->maxKeysPerModifier); + if (!keyc->modifierKeyMap && keyc->maxKeysPerModifier) + return (FALSE); + bzero((char *)keyc->modifierKeyMap, 8*(int)keyc->maxKeysPerModifier); + for (i = 0; i < 8; i++) + keysPerModifier[i] = 0; + for (i = 8; i < MAP_LENGTH; i++) + { + for (j = 0, mask = 1; j < 8; j++, mask <<= 1) + { + if (mask & keyc->modifierMap[i]) + { + keyc->modifierKeyMap[(j*keyc->maxKeysPerModifier) + + keysPerModifier[j]] = i; + keysPerModifier[j]++; + } + } + } + return TRUE; +} + + +void +DarwinKeyboardReload(DeviceIntPtr pDev) +{ + KeySymsRec keySyms; + + DarwinLoadKeyboardMapping(&keySyms); + + if (SetKeySymsMap(&pDev->key->curKeySyms, &keySyms)) { + /* now try to update modifiers. */ + + memmove(pDev->key->modifierMap, keyInfo.modMap, MAP_LENGTH); + InitModMap(pDev->key); + } + + SendMappingNotify(MappingKeyboard, MIN_KEYCODE, NUM_KEYCODES, 0); + SendMappingNotify(MappingModifier, 0, 0, 0); +} + + //----------------------------------------------------------------------------- // Modifier translation functions // Index: xc/programs/Xserver/hw/darwin/darwinKeyboard.h diff -u xc/programs/Xserver/hw/darwin/darwinKeyboard.h:1.2 xc/programs/Xserver/hw/darwin/darwinKeyboard.h:1.3 --- xc/programs/Xserver/hw/darwin/darwinKeyboard.h:1.2 Fri Oct 14 11:16:23 2005 +++ xc/programs/Xserver/hw/darwin/darwinKeyboard.h Mon Apr 2 20:21:07 2007 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003 Torrey T. Lyons. All Rights Reserved. + * Copyright (c) 2003-2004 Torrey T. Lyons. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -23,7 +23,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/darwinKeyboard.h,v 1.2 2005/10/14 15:16:23 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/darwinKeyboard.h,v 1.3 2007/04/03 00:21:07 tsi Exp $ */ #ifndef DARWIN_KEYBOARD_H #define DARWIN_KEYBOARD_H 1 @@ -45,6 +45,8 @@ unsigned char modifierKeycodes[32][2]; } darwinKeyboardInfo; +void DarwinKeyboardReload(DeviceIntPtr pDev); +unsigned int DarwinModeSystemKeymapSeed(void); Bool DarwinModeReadSystemKeymap(darwinKeyboardInfo *info); #endif /* DARWIN_KEYBOARD_H */ Index: xc/programs/Xserver/hw/darwin/bundle/Imakefile diff -u xc/programs/Xserver/hw/darwin/bundle/Imakefile:1.25 xc/programs/Xserver/hw/darwin/bundle/Imakefile:1.26 --- xc/programs/Xserver/hw/darwin/bundle/Imakefile:1.25 Wed Mar 27 21:21:09 2002 +++ xc/programs/Xserver/hw/darwin/bundle/Imakefile Sat Apr 21 20:37:19 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/Imakefile,v 1.25 2002/03/28 02:21:09 torrey Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/Imakefile,v 1.26 2007/04/22 00:37:19 tsi Exp $ #include <Server.tmpl> #define IHaveSubdirs @@ -6,10 +6,15 @@ SUBDIRS = Dutch.lproj English.lproj French.lproj German.lproj Japanese.lproj \ ko.lproj Portuguese.lproj Spanish.lproj Swedish.lproj +SYMLINKDIR = ../symlinks + +BundleSymbolicLink($(SYMLINKDIR),.,XDarwin.icns) +BundleSymbolicLinkSubdirs($(SUBDIRS)) + MakeSubdirs($(SUBDIRS)) -DependSubdirs($(SUBDIRS)) AllTarget(startXClients) MakeScriptFromCpp(startXClients, -DXINITDIR=$(XINITDIR) -DXBINDIR=$(BINDIR)) -DependTarget() +depend:: /* Nothing to do */ + Index: xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/Credits.rtf diff -u xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/Credits.rtf:1.6 xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/Credits.rtf:1.8 --- xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/Credits.rtf:1.6 Wed Feb 25 14:36:21 2004 +++ xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/Credits.rtf Mon Apr 2 20:21:07 2007 @@ -5,10 +5,20 @@ \vieww9000\viewh9000\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ +\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc +\f1\b \cf0 Contributors to XFree86 4.7: +\f0\b0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural +\cf0 Kaleb KEITHLEY\ + +\f2\i Working left and right Ctrl, Alt (Option), Meta (Command) and Shift keys. +\f0\i0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural + +\f1\b \cf0 \ \f1\b \cf0 Contributors to XFree86 4.4: \f0\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural @@ -155,4 +165,4 @@ \f0\i0 \ Torrey T. Lyons\ -\f2\i Integration into XFree86 Project for 4.0.2} \ No newline at end of file +\f2\i Integration into XFree86 Project for 4.0.2} Index: xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/Imakefile diff -u xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/Imakefile:1.2 xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/Imakefile:1.3 --- xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/Imakefile:1.2 Tue Jul 16 21:24:55 2002 +++ xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/Imakefile Sat Apr 21 20:37:19 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/Imakefile,v 1.2 2002/07/17 01:24:55 torrey Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/Imakefile,v 1.3 2007/04/22 00:37:19 tsi Exp $ #include <Server.tmpl> @@ -23,3 +23,9 @@ clean:: RemoveFiles(InfoPlist.strings) + +SYMLINKDIR = ../../symlinks/Dutch.lproj + +BundleSymbolicLink($(SYMLINKDIR),.,Localizable.strings) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/classes.nib) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/objects.nib) Index: xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/XDarwinHelp.html.cpp diff -u xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/XDarwinHelp.html.cpp:1.2 xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/XDarwinHelp.html.cpp:1.3 --- xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/XDarwinHelp.html.cpp:1.2 Sun Nov 18 20:21:32 2001 +++ xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/XDarwinHelp.html.cpp Sat Feb 24 13:34:52 2007 @@ -1 +1,109 @@ -<!-- $XFree86: xc/programs/Xserver/hw/darwin/bundle/Dutch.lproj/XDarwinHelp.html.cpp,v 1.2 2001/11/19 01:21:32 torrey Exp $ --> #include "xf86Version.h" #ifndef PRE_RELEASE #define PRE_RELEASE XF86_VERSION_SNAP #endif <html> <head> <title>XFree86 voor Mac OS X

XFree86 voor Darwin en Mac OS X

XFree86 XF86_VERSION
Release Date: XF86_REL_DATE

Inhoud

  1. Belangrijke Informatie
  2. Gebruik
  3. Instellen van het Path
  4. Voorkeursinstellingen
  5. Licentie

Belangrijke Informatie

#if PRE_RELEASE Dit is een pre-release van XFree86, waarvoor geen ondersteuning beschikbaar is. Rapporteren van bugs en aanleveren van patches kan op de XonX project pagina bij SourceForge. Kijk alvorens een bug te rapporteren in een pre-release eerst of een nieuwe versie beschikbaar is bij XonX of in de XFree86 CVS repository. #else Als de server ouder is dan 6-12 maanden, of als uw hardware nieuwer is dan de bovenstaande datum, kijk dan of een nieuwe versie beschikbaar is voor u een probleem aanmeldt. Rapporteren van bugs en aanleveren van patches kan op de XonX project pagina bij SourceForge. #endif
Deze software is beschikbaar gesteld onder de voorwaarden van de MIT X11 / X Consortium Licentie en is beschikbaar 'AS IS',zonder enige garantie. Lees s.v.p. de Licentie voor gebruik.

Gebruik

XFree86 is een open-source uitvoering van het X Window Systeem, verzorgd door XFree86 Project, Inc., die vrij verspreid mag worden. De X window server voor Darwin en Mac OS X verzorgd door XFree86 heet XDarwin. XDarwin werkt op Mac OS X in schermvullende of rootless modus.

Het X window systeem in schermvullende modus neemt het hele beeldscherm in beslag. U schakelt terug naar de Mac OS X desktop door de toesten Command-Option-A in te drukken. Deze toetsencombinatie kunt u veranderen in de Voorkeuren. Op de Mac OS X desktop klikt u op de XDarwin icoon in de Dock om weer naar het X window systeem te schakelen. (In de Voorkeuren kunt er voor kiezen om een apart XDarwin schakelpaneel te gebruiken op de Mac OS X desktop.)

In rootless modus verschijnen het X window systeem en Aqua (de Mac OS X desktop) tegelijk op het scherm. Het achtergrondscherm van X11, waarbinnen alle X11 vensters vallen, is net zo groot als het gehele scherm, maar het achtergrondscherm zelf is onzichtbaar.

Meerknopsmuis emulatie

Voor veel X11 programma's hebt u een 3-knops muis nodig. Met een 1-knops muis kunt u een 3-knops muis nabootsen door een toets in te drukken terwijl u klikt met de muis. Het instellen hiervan kan bij Voorkeuren, "Meerknopsmuis emulatie" in "Algemeen". Emulatie is standaard ingeschakeld: ingedrukt houden van de "command" toets terwijl u klikt emuleert knop 2, ingedrukt houden van "option" emuleert knop 3. Deze toetsen kunt u dus wijzigen in de Voorkeuren. Let op: als u xmodmap gebruikt om de indeling van het toetsenbord te wijzigen, moet u toch de oorspronkelijke toetsen op het toetsenbord gebruiken voor deze functie.

Instellen van het Path

Het path is de lijst van directories waarin gezocht wordt naar commando's. De X11 commando's staan in de directory /usr/X11R6/bin, die dus aan uw path moet worden toegevoegd. XDarwin doet dit automatisch voor u en kan extra directories toevoegen waarin u commando's hebt geïnstalleerd.

Ervaren gebruikers zullen het path al correct hebben ingesteld in de configuratiebestanden voor hun shell. In dat geval kunt u XDarwin via de Voorkeuren vertellen het path niet te wijzigen. XDarwin start de eerste X11 clients binnen de standaard login shell van de gebruiker (bij de Voorkeuren kunt u een afwijkende shell opgeven). Het instellen van het path is afhankelijk van de shell. Zie hiervoor de man pages voor de shell.

Het kan handig zijn de man pages voor XFree86 toe te voegen aan de lijst waarin gezocht wordt als u documentatie opvraagt. De manualpages voor X11 staan in /usr/X11R6/man en de MANPATH environment variable bevat de lijst van directories waarin naar documentatie wordt gezocht.

Voorkeursinstellingen

Een aantal instellingen kan worden gewijzigd door "Voorkeuren..." te kiezen in het "XDarwin" menu. Wijzigingen van de instellingen genoemd onder "Start" gaan pas in als u XDarwin opnieuw hebt gestart. Een wijziging van de overige instellingen is direct effectief. Hier onder vindt u de verschillende mogelijkheden beschreven:

Algemeen

  • Gebruik systeempiep voor X11: Als u dit inschakelt wordt het Mac OS X waarschuwingssignaal ook gebruikt door X11, anders gebruikt X11 een simpele pieptoon (dit is de standaardinstelling).
  • Wijzigen muis-versnelling door X11 mogelijk: In een standaard X window systeem kan de window manager de muis-versnelling aanpassen. Dit kan verwarrend zijn omdat de snelheid onder X11 dan verschillend kan zijn van de snelheid die u in Mac OS X bij Systeemvoorkeuren hebt ingesteld. Om verwarring te voorkomen is de standaardinstelling dat X11 de versnelling niet kan wijzigen.
  • Meerknopsmuis emulatie: Dit is hierboven beschreven bij Gebruik. Als emulatie is ingeschakeld moet u de gekozen toetsen ingedrukt houden terwijl u met de muis klikt om de tweede en derde muisknop na te bootsen.

Start

  • Standaard modus: Hier kiest u de standaard scherm-modus: schermvullend of rootless (hierboven beschreven bij Gebruik). U kunt ook kiezen tijdens het starten van XDarwin, zie de optie hieronder.
  • Kies scherm-modus tijdens start: Dit is standaard ingeschakeld zodat u tijdens het starten van XDarwin kunt kiezen tussen schermvullend en rootless scherm-modus. Als u dit uitschakelt start XDarwin in de standaard modus zonder u iets te vragen.
  • X11 scherm nummer: Met X11 kunnen meerdere schermen worden aangestuurd door verschillende X servers op dezelfde computer. Als u meerdere X servers tegelijk wilt gebruiken stelt u hier het scherm nummer in dat door XDarwin wordt gebruikt.
  • Xinerama multi-monitor ondersteuning mogelijk: XDarwin ondersteunt het gebruik van meerdere monitoren met Xinerama, waarbij elke monitor wordt gezien als deel van één groot rechthoekig scherm. U kunt Xinerama hier uitschakelen, maar XDarwin werkt op dit moment zonder Xinerama niet goed met meerdere monitoren. Als u maar 1 monitor gebruikt is deze instelling automatisch uitgeschakeld.
  • Toetsenbordindeling-bestand: Een toetsenbordindeling-bestand wordt bij het starten geladen en omgezet naar een X11 toetsenbordindeling. Voor verschillende talen vindt u toetsenbordindelingen in de directory /System/Library/Keyboards.
  • Bij starten eerste X11 clients: Als XDarwin start, wordt xinit uitgevoerd om de X window manager en andere X clients te starten (zie "man xinit"). Voordat XDarwin xinit uitvoert voegt het de opgegeven directories toe aan het path. Standaard wordt alleen /usr/X11R6/bin toegevoegd. U kunt meerdere directories opgeven, gescheiden door een dubbelepunt. X clients worden gestart met de standaard login shell van de gebruiker met gebruik van de configuratiebestanden voor die shell. U kunt een afwijkende shell opgeven.

Schermvullend

  • Toetscombinatie knop: Klik op deze knop om de toetscombinatie te wijzigen waarmee u tussen de Mac OS X desktop en X11 schakelt. Als toetscombinatie kunt u elke combinatie gebruiken van de shift, control, command en option toetsen samen met één normale toets.
  • Klikken op icoon in Dock schakelt naar X11: Hiermee is een klik op de XDarwin icoon in de Dock voldoende om naar X11 te schakelen. In sommige versies van Mac OS X verdwijnt soms de cursor als u deze mogelijkheid gebruikt en daarna terugkeert naar de Mac OS X desktop.
  • Toon help bij schermvullend starten: Hiermee wordt een inleidend scherm getoond als XDarwin schermvullend start.
  • Kleurdiepte: In de schermvullende modus kan X11 een andere kleurdiepte gebruiken dan Aqua (en de Mac OS X desktop). Als u "Huidig" kiest, neemt XDarwin bij het starten de kleurdiepte over van Aqua. U kunt ook kiezen voor 8, 15 of 24 bits.

Licentie

The XFree86 Project is committed to providing freely redistributable binary and source releases. The main license we use is one based on the traditional MIT X11 / X Consortium License, which does not impose any conditions on modification or redistribution of source code or binaries other than requiring that copyright/license notices are left intact. For more information and additional copyright/licensing notices covering some sections of the code, please see the XFree86 License page.

X Consortium License

Copyright (C) 1996 X Consortium

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

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 X CONSORTIUM 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 X Consortium 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 X Consortium.

X Window System is a trademark of X Consortium, Inc.

\ No newline at end of file + + +#include "xf86Version.h" +#ifndef PRE_RELEASE +#define PRE_RELEASE XF86_VERSION_SNAP +#endif + + + +XFree86 voor Mac OS X + + +
+

XFree86 voor Darwin en Mac OS X

+ XFree86 XF86_VERSION
+ Release Date: XF86_REL_DATE +
+

Inhoud

+
    +
  1. Belangrijke Informatie
  2. +
  3. Gebruik
  4. +
  5. Instellen van het Path
  6. +
  7. Voorkeursinstellingen
  8. +
  9. Licentie
  10. +
+
+

Belangrijke Informatie

+
+
+#if PRE_RELEASE +Dit is een pre-release van XFree86, waarvoor geen ondersteuning beschikbaar is. Rapporteren van bugs en aanleveren van patches kan op de XonX project pagina bij SourceForge. Kijk alvorens een bug te rapporteren in een pre-release eerst of een nieuwe versie beschikbaar is bij XonX of in de XFree86 CVS repository. +#else +Als de server ouder is dan 6-12 maanden, of als uw hardware nieuwer is dan de bovenstaande datum, kijk dan of een nieuwe versie beschikbaar is voor u een probleem aanmeldt. Rapporteren van bugs en aanleveren van patches kan op de XonX project pagina bij SourceForge. +#endif +
+
+Deze software is beschikbaar gesteld onder de voorwaarden van de MIT X11 / X Consortium Licentie en is beschikbaar 'AS IS',zonder enige garantie. Lees s.v.p. de Licentie voor gebruik.
+ +

Gebruik

+

XFree86 is een open-source uitvoering van het X Window Systeem, verzorgd door XFree86 Project, Inc., die vrij verspreid mag worden. De X window server voor Darwin en Mac OS X verzorgd door XFree86 heet XDarwin. XDarwin werkt op Mac OS X in schermvullende of rootless modus.

+

Het X window systeem in schermvullende modus neemt het hele beeldscherm in beslag. U schakelt terug naar de Mac OS X desktop door de toesten Command-Option-A in te drukken. Deze toetsencombinatie kunt u veranderen in de Voorkeuren. Op de Mac OS X desktop klikt u op de XDarwin icoon in de Dock om weer naar het X window systeem te schakelen. (In de Voorkeuren kunt er voor kiezen om een apart XDarwin schakelpaneel te gebruiken op de Mac OS X desktop.)

+

In rootless modus verschijnen het X window systeem en Aqua (de Mac OS X desktop) tegelijk op het scherm. Het achtergrondscherm van X11, waarbinnen alle X11 vensters vallen, is net zo groot als het gehele scherm, maar het achtergrondscherm zelf is onzichtbaar.

+ +

Meerknopsmuis emulatie

+

Voor veel X11 programma's hebt u een 3-knops muis nodig. Met een 1-knops muis kunt u een 3-knops muis nabootsen door een toets in te drukken terwijl u klikt met de muis. Het instellen hiervan kan bij Voorkeuren, "Meerknopsmuis emulatie" in "Algemeen". Emulatie is standaard ingeschakeld: ingedrukt houden van de "command" toets terwijl u klikt emuleert knop 2, ingedrukt houden van "option" emuleert knop 3. Deze toetsen kunt u dus wijzigen in de Voorkeuren. Let op: als u xmodmap gebruikt om de indeling van het toetsenbord te wijzigen, moet u toch de oorspronkelijke toetsen op het toetsenbord gebruiken voor deze functie.

+ +

Instellen van het Path

+

Het path is de lijst van directories waarin gezocht wordt naar commando's. De X11 commando's staan in de directory /usr/X11R6/bin, die dus aan uw path moet worden toegevoegd. XDarwin doet dit automatisch voor u en kan extra directories toevoegen waarin u commando's hebt geïnstalleerd.

+ +

Ervaren gebruikers zullen het path al correct hebben ingesteld in de configuratiebestanden voor hun shell. In dat geval kunt u XDarwin via de Voorkeuren vertellen het path niet te wijzigen. XDarwin start de eerste X11 clients binnen de standaard login shell van de gebruiker (bij de Voorkeuren kunt u een afwijkende shell opgeven). Het instellen van het path is afhankelijk van de shell. Zie hiervoor de man pages voor de shell.

+ +

Het kan handig zijn de man pages voor XFree86 toe te voegen aan de lijst waarin gezocht wordt als u documentatie opvraagt. De manualpages voor X11 staan in /usr/X11R6/man en de MANPATH environment variable bevat de lijst van directories waarin naar documentatie wordt gezocht.

+ +

Voorkeursinstellingen

+

Een aantal instellingen kan worden gewijzigd door "Voorkeuren..." te kiezen in het "XDarwin" menu. Wijzigingen van de instellingen genoemd onder "Start" gaan pas in als u XDarwin opnieuw hebt gestart. Een wijziging van de overige instellingen is direct effectief. Hier onder vindt u de verschillende mogelijkheden beschreven:

+ +

Algemeen

+
    +
  • Gebruik systeempiep voor X11: Als u dit inschakelt wordt het Mac OS X waarschuwingssignaal ook gebruikt door X11, anders gebruikt X11 een simpele pieptoon (dit is de standaardinstelling).
  • +
  • Wijzigen muis-versnelling door X11 mogelijk: In een standaard X window systeem kan de window manager de muis-versnelling aanpassen. Dit kan verwarrend zijn omdat de snelheid onder X11 dan verschillend kan zijn van de snelheid die u in Mac OS X bij Systeemvoorkeuren hebt ingesteld. Om verwarring te voorkomen is de standaardinstelling dat X11 de versnelling niet kan wijzigen.
  • +
  • Meerknopsmuis emulatie: Dit is hierboven beschreven bij Gebruik. Als emulatie is ingeschakeld moet u de gekozen toetsen ingedrukt houden terwijl u met de muis klikt om de tweede en derde muisknop na te bootsen.
  • +
+ +

Start

+
    +
  • Standaard modus: Hier kiest u de standaard scherm-modus: schermvullend of rootless (hierboven beschreven bij Gebruik). U kunt ook kiezen tijdens het starten van XDarwin, zie de optie hieronder.
  • +
  • Kies scherm-modus tijdens start: Dit is standaard ingeschakeld zodat u tijdens het starten van XDarwin kunt kiezen tussen schermvullend en rootless scherm-modus. Als u dit uitschakelt start XDarwin in de standaard modus zonder u iets te vragen.
  • +
  • X11 scherm nummer: Met X11 kunnen meerdere schermen worden aangestuurd door verschillende X servers op dezelfde computer. Als u meerdere X servers tegelijk wilt gebruiken stelt u hier het scherm nummer in dat door XDarwin wordt gebruikt.
  • +
  • Xinerama multi-monitor ondersteuning mogelijk: XDarwin ondersteunt het gebruik van meerdere monitoren met Xinerama, waarbij elke monitor wordt gezien als deel van één groot rechthoekig scherm. U kunt Xinerama hier uitschakelen, maar XDarwin werkt op dit moment zonder Xinerama niet goed met meerdere monitoren. Als u maar 1 monitor gebruikt is deze instelling automatisch uitgeschakeld.
  • +
  • Toetsenbordindeling-bestand: Een toetsenbordindeling-bestand wordt bij het starten geladen en omgezet naar een X11 toetsenbordindeling. Voor verschillende talen vindt u toetsenbordindelingen in de directory /System/Library/Keyboards.
  • +
  • Bij starten eerste X11 clients: Als XDarwin start, wordt xinit uitgevoerd om de X window manager en andere X clients te starten (zie "man xinit"). Voordat XDarwin xinit uitvoert voegt het de opgegeven directories toe aan het path. Standaard wordt alleen /usr/X11R6/bin toegevoegd. U kunt meerdere directories opgeven, gescheiden door een dubbelepunt. X clients worden gestart met de standaard login shell van de gebruiker met gebruik van de configuratiebestanden voor die shell. U kunt een afwijkende shell opgeven.
  • +
+ +

Schermvullend

+
    +
  • Toetscombinatie knop: Klik op deze knop om de toetscombinatie te wijzigen waarmee u tussen de Mac OS X desktop en X11 schakelt. Als toetscombinatie kunt u elke combinatie gebruiken van de shift, control, command en option toetsen samen met één normale toets.
  • +
  • Klikken op icoon in Dock schakelt naar X11: Hiermee is een klik op de XDarwin icoon in de Dock voldoende om naar X11 te schakelen. In sommige versies van Mac OS X verdwijnt soms de cursor als u deze mogelijkheid gebruikt en daarna terugkeert naar de Mac OS X desktop.
  • +
  • Toon help bij schermvullend starten: Hiermee wordt een inleidend scherm getoond als XDarwin schermvullend start.
  • +
  • Kleurdiepte: In de schermvullende modus kan X11 een andere kleurdiepte gebruiken dan Aqua (en de Mac OS X desktop). Als u "Huidig" kiest, neemt XDarwin bij het starten de kleurdiepte over van Aqua. U kunt ook kiezen voor 8, 15 of 24 bits.
  • +
+ +

Licentie

+The XFree86 Project is committed to providing freely redistributable binary and source releases. The main license we use is one based on the traditional MIT X11 / X Consortium License, which does not impose any conditions on modification or redistribution of source code or binaries other than requiring that copyright/license notices are left intact. For more information and additional copyright/licensing notices covering some sections of the code, please see the XFree86 +License page. +

X Consortium License

+

Copyright (C) 1996 X Consortium

+

Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without +limitation the rights to use, copy, modify, merge, publish, distribute, +sublicense, and/or sell copies of the Software, and to permit persons to +whom the Software is furnished to do so, subject to the following conditions:

+

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 X CONSORTIUM 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 X Consortium 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 X Consortium.

+

X Window System is a trademark of X Consortium, Inc.

+ + + Index: xc/programs/Xserver/hw/darwin/bundle/English.lproj/Credits.rtf diff -u xc/programs/Xserver/hw/darwin/bundle/English.lproj/Credits.rtf:1.11 xc/programs/Xserver/hw/darwin/bundle/English.lproj/Credits.rtf:1.13 --- xc/programs/Xserver/hw/darwin/bundle/English.lproj/Credits.rtf:1.11 Wed Feb 25 14:36:22 2004 +++ xc/programs/Xserver/hw/darwin/bundle/English.lproj/Credits.rtf Mon Apr 2 20:21:07 2007 @@ -5,10 +5,20 @@ \vieww5160\viewh6300\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ +\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc +\f1\b \cf0 Contributors to XFree86 4.7: +\f0\b0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural +\cf0 Kaleb KEITHLEY\ + +\f2\i Working left and right Ctrl, Alt (Option), Meta (Command) and Shift keys. +\f0\i0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural + +\f1\b \cf0 \ \f1\b \cf0 Contributors to XFree86 4.4: \f0\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural @@ -155,4 +165,4 @@ \f0\i0 \ Torrey T. Lyons\ -\f2\i Integration into XFree86 Project for 4.0.2} \ No newline at end of file +\f2\i Integration into XFree86 Project for 4.0.2} Index: xc/programs/Xserver/hw/darwin/bundle/English.lproj/Imakefile diff -u xc/programs/Xserver/hw/darwin/bundle/English.lproj/Imakefile:1.2 xc/programs/Xserver/hw/darwin/bundle/English.lproj/Imakefile:1.3 --- xc/programs/Xserver/hw/darwin/bundle/English.lproj/Imakefile:1.2 Sun Nov 4 02:09:47 2001 +++ xc/programs/Xserver/hw/darwin/bundle/English.lproj/Imakefile Sat Apr 21 20:37:19 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/English.lproj/Imakefile,v 1.2 2001/11/04 07:09:47 torrey Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/English.lproj/Imakefile,v 1.3 2007/04/22 00:37:19 tsi Exp $ #include @@ -21,3 +21,9 @@ clean:: RemoveFiles(InfoPlist.strings) + +SYMLINKDIR = ../../symlinks/English.lproj + +BundleSymbolicLink($(SYMLINKDIR),.,Localizable.strings) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/classes.nib) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/objects.nib) Index: xc/programs/Xserver/hw/darwin/bundle/French.lproj/Credits.rtf diff -u xc/programs/Xserver/hw/darwin/bundle/French.lproj/Credits.rtf:1.7 xc/programs/Xserver/hw/darwin/bundle/French.lproj/Credits.rtf:1.9 --- xc/programs/Xserver/hw/darwin/bundle/French.lproj/Credits.rtf:1.7 Wed Feb 25 14:36:22 2004 +++ xc/programs/Xserver/hw/darwin/bundle/French.lproj/Credits.rtf Mon Apr 2 20:21:08 2007 @@ -5,10 +5,20 @@ \vieww5160\viewh4480\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ +\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc +\f1\b \cf0 Contributors to XFree86 4.7: +\f0\b0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural +\cf0 Kaleb KEITHLEY\ + +\f2\i Working left and right Ctrl, Alt (Option), Meta (Command) and Shift keys. +\f0\i0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural + +\f1\b \cf0 \ \f1\b \cf0 Contributors to XFree86 4.4: \f0\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural @@ -153,4 +163,4 @@ \f0\i0 \ Torrey T. Lyons\ -\f2\i Int\'8egration dans le projet XFree86 pour la version 4.0.2} \ No newline at end of file +\f2\i Int\'8egration dans le projet XFree86 pour la version 4.0.2} Index: xc/programs/Xserver/hw/darwin/bundle/French.lproj/Imakefile diff -u xc/programs/Xserver/hw/darwin/bundle/French.lproj/Imakefile:1.3 xc/programs/Xserver/hw/darwin/bundle/French.lproj/Imakefile:1.4 --- xc/programs/Xserver/hw/darwin/bundle/French.lproj/Imakefile:1.3 Tue Jul 16 21:24:55 2002 +++ xc/programs/Xserver/hw/darwin/bundle/French.lproj/Imakefile Sat Apr 21 20:37:19 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/French.lproj/Imakefile,v 1.3 2002/07/17 01:24:55 torrey Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/French.lproj/Imakefile,v 1.4 2007/04/22 00:37:19 tsi Exp $ #include @@ -23,3 +23,9 @@ clean:: RemoveFiles(InfoPlist.strings) + +SYMLINKDIR = ../../symlinks/French.lproj + +BundleSymbolicLink($(SYMLINKDIR),.,Localizable.strings) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/classes.nib) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/objects.nib) Index: xc/programs/Xserver/hw/darwin/bundle/German.lproj/Credits.rtf diff -u xc/programs/Xserver/hw/darwin/bundle/German.lproj/Credits.rtf:1.6 xc/programs/Xserver/hw/darwin/bundle/German.lproj/Credits.rtf:1.8 --- xc/programs/Xserver/hw/darwin/bundle/German.lproj/Credits.rtf:1.6 Wed Feb 25 14:36:22 2004 +++ xc/programs/Xserver/hw/darwin/bundle/German.lproj/Credits.rtf Mon Apr 2 20:21:08 2007 @@ -5,10 +5,20 @@ \vieww5160\viewh6300\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ +\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc +\f1\b \cf0 Contributors to XFree86 4.7: +\f0\b0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural +\cf0 Kaleb KEITHLEY\ + +\f2\i Working left and right Ctrl, Alt (Option), Meta (Command) and Shift keys. +\f0\i0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural + +\f1\b \cf0 \ \f1\b \cf0 Contributors to XFree86 4.4: \f0\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural @@ -155,4 +165,4 @@ \f0\i0 \ Torrey T. Lyons\ -\f2\i Integration into XFree86 Project for 4.0.2} \ No newline at end of file +\f2\i Integration into XFree86 Project for 4.0.2} Index: xc/programs/Xserver/hw/darwin/bundle/German.lproj/Imakefile diff -u xc/programs/Xserver/hw/darwin/bundle/German.lproj/Imakefile:1.3 xc/programs/Xserver/hw/darwin/bundle/German.lproj/Imakefile:1.4 --- xc/programs/Xserver/hw/darwin/bundle/German.lproj/Imakefile:1.3 Tue Jul 16 21:24:56 2002 +++ xc/programs/Xserver/hw/darwin/bundle/German.lproj/Imakefile Sat Apr 21 20:37:19 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/German.lproj/Imakefile,v 1.3 2002/07/17 01:24:56 torrey Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/German.lproj/Imakefile,v 1.4 2007/04/22 00:37:19 tsi Exp $ #include @@ -23,3 +23,9 @@ clean:: RemoveFiles(InfoPlist.strings) + +SYMLINKDIR = ../../symlinks/German.lproj + +BundleSymbolicLink($(SYMLINKDIR),.,Localizable.strings) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/classes.nib) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/objects.nib) Index: xc/programs/Xserver/hw/darwin/bundle/German.lproj/XDarwinHelp.html.cpp diff -u xc/programs/Xserver/hw/darwin/bundle/German.lproj/XDarwinHelp.html.cpp:1.1 xc/programs/Xserver/hw/darwin/bundle/German.lproj/XDarwinHelp.html.cpp:1.2 --- xc/programs/Xserver/hw/darwin/bundle/German.lproj/XDarwinHelp.html.cpp:1.1 Fri Nov 2 19:25:34 2001 +++ xc/programs/Xserver/hw/darwin/bundle/German.lproj/XDarwinHelp.html.cpp Tue Feb 27 13:32:43 2007 @@ -1,4 +1,4 @@ - + #include "xf86Version.h" #ifndef PRE_RELEASE @@ -35,34 +35,47 @@
This software is distributed under the terms of the MIT X11 / X Consortium License and is provided AS IS, with no warranty. Please read the License before using.
+

Usage

XFree86 is a freely redistributable open-source implementation of the X Window System produced by the XFree86 Project, Inc. XFree86 runs on Mac OS X in full screen mode. When the X window system is active, it takes over the entire screen. You can switch back to the Mac OS X desktop by holding down Command-Option-A. This key combination can be changed in the user preferences. From the Mac OS X desktop, just click on the XDarwin icon in the floating switch window to switch back to the X window system. You can change this behavior in the user preferences so that clicking on the XDarwin icon in the Dock switches as well.

+="http://www.x.org/">X Window System produced by the XFree86 Project, Inc. The X window server for Darwin and Mac OS X provided by XFree86 is called XDarwin. XDarwin runs on Mac OS X in full screen or rootless modes.

+

In full screen mode, when the X window system is active, it takes over the entire screen. You can switch back to the Mac OS X desktop by holding down Command-Option-A. This key combination can be changed in the user preferences. From the Mac OS X desktop, click on the XDarwin icon in the Dock to switch back to the X window system. (You can change this behavior in the user preferences so that you must click the XDarwin icon in the floating switch window instead.)

+

In rootless mode, the X window system and Aqua share your display. The root window of the X11 display is the size of the screen and contains all the other windows. The X11 root window is not displayed in rootless mode as Aqua handles the desktop background.

Multi-Button Mouse Emulation

-

Many X11 applications rely on the use of a 3-button mouse. To emulate a 3-button mouse with a single button, select "Enable emulation of multiple mouse buttons" in the Preferences. When emulating a 3-button mouse, holding down the left command key and clicking the mouse button will simulate clicking the second mouse button. Holding down the left option key and clicking will simulate the third button.

-

Notes:

-
    -
  • With most keyboards the left and right command and option keys are not differentiated so either will work. -
  • Even with command and/or option keys mapped to some other key with xmodmap, you still must use the original command and option keys for multibutton mouse emulation. -
  • The only way to simulate holding down the left command key and clicking the second mouse button is to map some other key to be the left command key. The same is true for simulating holding down the left option key and clicking the third mouse button. -
+

Many X11 applications rely on the use of a 3-button mouse. You can emulate a 3-button mouse with a single button by holding down various modifier keys while you click the mouse button. This is controlled by settings in the "Multi-Button Mouse Emulation" section of the "General" preferences. By default, emulation is on and holding down the command key and clicking the mouse button will simulate clicking the second mouse button. Holding down the option key and clicking will simulate the third button. You can change to any combination of modifiers to emulate buttons two and three in the preferences. Note, even if the modifiers keys are mapped to some other key with xmodmap, you still must use the actual keys specified in the preferences for multi-button mouse emulation.

+

Setting Your Path

-

The X11 binaries are located in /usr/X11R6/bin, which you may need to add to your path. Your path is the list of directories to be searched for executable commands. The way to do this depends on the shell you are using. The following directions are for tcsh, which is the default shell on Darwin and Mac OS X.

-

You can check your path by typing "printenv PATH". You should see /usr/X11R6/bin listed as one of the directories. If not, you should add it to your default path. To do so, you can add the following line to the file ~/Library/init/tcsh/path: (You may need to create this file and directory path if it does not exist already.)

-
setenv PATH "${PATH}:/usr/X11R6/bin"
-

Note that if you have created a .cshrc or .tcshrc file, these files will override your settings in ~/Library/init/tcsh/ and you will need to change one of these files instead. These changes will not take effect until you open a new Terminal window. You may also want to add the man pages from XFree86 to the list of pages to be searched when you are looking for documentation. The X11 man pages are located in /usr/X11R6/man and the MANPATH environment variable contains the list of directories to search.

+

Your path is the list of directories to be searched for executable commands. The X11 commands are located in /usr/X11R6/bin, which needs to be added to your path. XDarwin does this for you by default and can also add additional directories where you have installed command line applications.

+

More experienced users will have already set their path correctly using the initialization files for their shell. In this case, you can inform XDarwin not to modify your path in the preferences. XDarwin launches the initial X11 clients in the user's default login shell. (An alternate shell can also be specified in the preferences.) The way to set the path depends on the shell you are using. This is described in the man page documentation for the shell.

+

In addition you may also want to add the man pages from XFree86 to the list of pages to be searched when you are looking for documentation. The X11 man pages are located in /usr/X11R6/man and the MANPATH environment variable contains the list of directories to search.

+

User Preferences

-

A number of options may be set from the user preferences, accessible from the "Preferences..." menu item in the "XDarwin" menu. The options listed under Startup Options will not take effect until you have restarted XDarwin. All other options take effect immediately. The various options are described below:

+

A number of options may be set from the user preferences, accessible from the "Preferences..." menu item in the "XDarwin" menu. The options listed as start up options will not take effect until you have restarted XDarwin. All other options take effect immediately. The various options are described below:

+

General

    -
  • Key combination button: Click this button and then press any number of modifiers followed by a standard key to change the key combination to switch between Aqua and X11.
  • -
  • Use System beep for X11: When enabled the standard Mac OS X alert sound is used as X11 bell. When disabled (default) a simple tone is used.
  • -
  • Click on icon in Dock switches to X11: Enable this to activate switching to X11 by clicking on the XDarwin icon in the Dock. On some versions of Mac OS X, switching by clicking in the Dock can cause the cursor to disappear on returning to Aqua.
  • -
  • Show help on startup: This will show the introductory splash screen when XDarwin is launched.
  • -
  • Display number: This sets what X display number XDarwin should assign to the display. Note that XDarwin always takes over the main display when showing X11.
  • -
  • Keymapping: By default, XDarwin loads the keymapping from the Darwin kernel on startup. On portables, this keymapping is sometimes empty so that the keyboard will appear to be dead in X11. If "Load from file" is selected, XDarwin will load the keymapping from the specified file instead.
  • +
  • Use System beep for X11: When enabled the standard Mac OS X alert sound is used as the X11 bell. When disabled (default) a simple tone is used.
  • +
  • Allow X11 to change mouse acceleration: In a standard X window system implementation, the window manager can change the mouse acceleration. This can lead to confusion as the mouse acceleration may be set to different values by the Mac OS X System Preferences and the X window manager. By default, X11 is not allowed to change the mouse acceleration to avoid this problem.
  • +
  • Multi-Button Mouse Emulation: This is described above under Usage. When emulation is enabled the selected modifiers must be held down when the mouse button is pushed to emulate the second or third mouse buttons.
+

Start Up

+
    +
  • Default Mode: If the user does not indicate whether to run in full screen or rootless mode, the mode specified here will be used.
  • +
  • Show mode pick panel on startup: By default, a panel is displayed when XDarwin is started to allow the user to choose between full screen or rootless mode. If this option is turned off, the default mode will be started automatically.
  • +
  • X11 Display number: X11 allows there to be multiple displays managed by separate X servers on a single computer. The user may specify an integer display number for XDarwin to use if more than one X server is going to be run simultaneously.
  • +
  • Allow Xinerama multiple monitor support: XDarwin supports multiple monitors with Xinerama, which treats all monitors as being part of one large rectangular screen. You can disable Xinerama with this option, but currently XDarwin does not handle multiple monitors correctly without it. If you only have a single monitor, Xinerama is automatically disabled.
  • +
  • Keymapping File: A keymapping file is read at startup and translated to an X11 keymap. Keymapping files, available for a wide variety of languages, are found in /System/Library/Keyboards.
  • +
  • Starting First X11 Clients: When XDarwin is started from the Finder, it will run xinit to launch the X window manager and other X clients. (See "man xinit" for more information.) Before XDarwin runs xinit it will add the specified directories to the user's path. By default only /usr/X11R6/bin is added. Additional directories may added, separated by a colon. The X clients are started in the user's default login shell so that the user's shell initialization files are read. If desired, an alternate shell may be specified.
  • +
+

Full Screen

+
    +
  • Key combination button: Click this button and then press any number of modifiers followed by a standard key to change the key combination to switch between Aqua and X11.
  • +
  • Click on icon in Dock switches to X11: Enable this to activate switching to X11 by clicking on the XDarwin icon in the Dock. On some versions of Mac OS X, switching by clicking in the Dock can cause the cursor to disappear on returning to Aqua.
  • +
  • Show help on startup: This will show an introductory splash screen when XDarwin is started in full screen mode.
  • +
  • Color bit depth: In full screen mode, the X11 display can use a different color bit depth than is used by Aqua. If "Current" is specified, the depth used by Aqua when XDarwin starts will be used. Otherwise 8, 15, or 24 bits may be specified.
  • +
+

License

-The XFree86 Project is committed to providing freely redistributable binary and source releases. The main license we use is one based on the traditional MIT X11 / X Consortium License, which doesn't impose any conditions on modification or redistribution of source code or binaries other than requiring that copyright/license notices are left intact. For more information and additional copyright/licensing notices covering some sections of the code, please see the XFree86 +The XFree86 Project is committed to providing freely redistributable binary and source releases. The main license we use is one based on the traditional MIT X11 / X Consortium License, which does not impose any conditions on modification or redistribution of source code or binaries other than requiring that copyright/license notices are left intact. For more information and additional copyright/licensing notices covering some sections of the code, please see the XFree86 License page.

X Consortium License

Copyright (C) 1996 X Consortium

Index: xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/Credits.rtf diff -u xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/Credits.rtf:1.10 xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/Credits.rtf:1.12 --- xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/Credits.rtf:1.10 Wed Feb 25 14:36:23 2004 +++ xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/Credits.rtf Mon Apr 2 20:21:08 2007 @@ -1,175 +1,193 @@ -{\rtf1\mac\ansicpg10000\cocoartf102 -{\fonttbl\f0\fswiss\fcharset77 Helvetica;\f1\fswiss\fcharset77 Helvetica-Bold;\f2\fswiss\fcharset77 Helvetica-Oblique; -\f3\fnil\fcharset78 HiraKakuPro-W3;} +{\rtf1\mac\ansicpg10001\cocoartf102 +{\fonttbl\f0\fnil\fcharset78 HiraKakuPro-W3;\f1\fswiss\fcharset77 Helvetica;\f2\fswiss\fcharset77 Helvetica-Bold; +\f3\fswiss\fcharset77 Helvetica-Oblique;} {\colortbl;\red255\green255\blue255;} \vieww13980\viewh11160\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ +\f0\fs24 \cf0 \'82\'b1\'82\'cc\'90\'bb\'95\'69\'82\'cd +\f1 XFree86 +\f0 \'83\'76\'83\'8d\'83\'57\'83\'46\'83\'4e\'83\'67 +\f1 (http://www.xfree86.org/) +\f0 \'82\'a8\'82\'e6\'82\'d1\'82\'bb\'82\'cc\'8d\'76\'8c\'a3\'8e\'d2\'82\'c9\'82\'e6\'82\'c1\'82\'c4\'8a\'4a\'94\'ad\'82\'b3\'82\'ea\'82\'bd\'83\'5c\'83\'74\'83\'67\'83\'45\'83\'46\'83\'41\'82\'f0\'8a\'dc\'82\'f1\'82\'c5\'82\'a2\'82\'dc\'82\'b7\'81\'42\'8e\'9f\'82\'cc\'90\'6c\'81\'58\'82\'cd Darwin +\f1 /Mac OS X +\f0 \'82\'cc\'83\'54\'83\'7c\'81\'5b\'83\'67\'82\'c9\'8d\'76\'8c\'a3\'82\'b5\'82\'dc\'82\'b5\'82\'bd\'81\'42 +\f1 \ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc -\f1\b \cf0 Contributors to XFree86 4.4: -\f0\b0 \ +\f2\b \cf0 Contributors to XFree86 4.7: +\f1\b0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural +\cf0 Kaleb KEITHLEY\ + +\f0 \'8d\'b6\'89\'45\'82\'cc Ctrl,Alt(Option),Meta(Command) \'82\'a8\'82\'e6\'82\'d1 Shift \'83\'4c\'81\'5b\'82\'cc\'93\'ae\'8d\'ec +\f1 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural + +\f2\b \cf0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc +\cf0 Contributors to XFree86 4.4: +\f1\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \cf0 John Harper -\f2\i \ +\f3\i \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural -\f3\i0 \cf0 \'83\'8b\'81\'5b\'83\'67\'83\'8c\'83\'58 \'83\'41\'83\'4e\'83\'5a\'83\'89\'83\'8c\'81\'5b\'83\'56\'83\'87\'83\'93 \'82\'a8\'82\'e6\'82\'d1 Apple-WM \'8a\'67\'92\'a3 -\f0 \ +\f0\i0 \cf0 \'83\'8b\'81\'5b\'83\'67\'83\'8c\'83\'58 \'83\'41\'83\'4e\'83\'5a\'83\'89\'83\'8c\'81\'5b\'83\'56\'83\'87\'83\'93 \'82\'a8\'82\'e6\'82\'d1 Apple-WM \'8a\'67\'92\'a3 +\f1 \ Torrey T. Lyons\ -\f3 \'83\'76\'83\'8d\'83\'57\'83\'46\'83\'4e\'83\'67 \'83\'8a\'81\'5b\'83\'5f\'81\'5b\ +\f0 \'83\'76\'83\'8d\'83\'57\'83\'46\'83\'4e\'83\'67 \'83\'8a\'81\'5b\'83\'5f\'81\'5b\ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural -\f1\b \cf0 \ +\f2\b \cf0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc \cf0 Additional XonX Contributors to XFree86 4.3: -\f0\b0 \ +\f1\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \cf0 Fabr\'92cio Luis de Castro\ -\f3 \'83\'7c\'83\'8b\'83\'67\'83\'4b\'83\'8b\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 -\f0 \ +\f0 \'83\'7c\'83\'8b\'83\'67\'83\'4b\'83\'8b\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 +\f1 \ Michael Oland\ -\f3 \'90\'56\'82\'b5\'82\'a2 -\f0 XDarwin -\f3 \'83\'41\'83\'43\'83\'52\'83\'93 -\f0 \ +\f0 \'90\'56\'82\'b5\'82\'a2 +\f1 XDarwin +\f0 \'83\'41\'83\'43\'83\'52\'83\'93 +\f1 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural -\f1\b \cf0 \ +\f2\b \cf0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc \cf0 XonX Contributors to XFree86 4.2: -\f0\b0 \ +\f1\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \cf0 Rob Braun\ Darwin x86 -\f2\i -\f3\i0 \'83\'54\'83\'7c\'81\'5b\'83\'67 -\f0 \ +\f3\i +\f0\i0 \'83\'54\'83\'7c\'81\'5b\'83\'67 +\f1 \ Pablo Di Noto\ -\f2\i -\f3\i0 \'83\'58\'83\'79\'83\'43\'83\'93\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 -\f0 \ +\f3\i +\f0\i0 \'83\'58\'83\'79\'83\'43\'83\'93\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 +\f1 \ Paul Edens\ -\f2\i -\f3\i0 \'83\'49\'83\'89\'83\'93\'83\'5f\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 -\f0 \ +\f3\i +\f0\i0 \'83\'49\'83\'89\'83\'93\'83\'5f\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 +\f1 \ Kyunghwan Kim\ -\f2\i -\f3\i0 \'8a\'d8\'8d\'91\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 -\f0 \ +\f3\i +\f0\i0 \'8a\'d8\'8d\'91\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 +\f1 \ Mario Klebsch\ -\f3 \'94\'f1US\'83\'4c\'81\'5b\'83\'7b\'81\'5b\'83\'68 \'83\'54\'83\'7c\'81\'5b\'83\'67 -\f0 \ +\f0 \'94\'f1US\'83\'4c\'81\'5b\'83\'7b\'81\'5b\'83\'68 \'83\'54\'83\'7c\'81\'5b\'83\'67 +\f1 \ Torrey T. Lyons\ -\f3 \'83\'76\'83\'8d\'83\'57\'83\'46\'83\'4e\'83\'67 \'83\'8a\'81\'5b\'83\'5f\'81\'5b -\f0 \ +\f0 \'83\'76\'83\'8d\'83\'57\'83\'46\'83\'4e\'83\'67 \'83\'8a\'81\'5b\'83\'5f\'81\'5b +\f1 \ Andreas Monitzer\ -\f3 \'83\'68\'83\'43\'83\'63\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 -\f0 \ +\f0 \'83\'68\'83\'43\'83\'63\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 +\f1 \ Patrik Montgomery\ -\f2\i -\f3\i0 \'83\'58\'83\'45\'83\'46\'81\'5b\'83\'66\'83\'93\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 -\f0 \ +\f3\i +\f0\i0 \'83\'58\'83\'45\'83\'46\'81\'5b\'83\'66\'83\'93\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 +\f1 \ Greg Parker\ -\f3 \'83\'8b\'81\'5b\'83\'67\'83\'8c\'83\'58 \'83\'54\'83\'7c\'81\'5b\'83\'67 -\f0 \ +\f0 \'83\'8b\'81\'5b\'83\'67\'83\'8c\'83\'58 \'83\'54\'83\'7c\'81\'5b\'83\'67 +\f1 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural -\f3 \cf0 \'93\'63\'92\'86 \'8f\'72\'8c\'f5 -\f0 \ +\f0 \cf0 \'93\'63\'92\'86 \'8f\'72\'8c\'f5 +\f1 \ -\f3 \'93\'fa\'96\'7b\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 -\f0 \ +\f0 \'93\'fa\'96\'7b\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 +\f1 \ Olivier Verdier\ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural -\f2\i \cf0 -\f3\i0 \'83\'74\'83\'89\'83\'93\'83\'58\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 -\f0 \ +\f3\i \cf0 +\f0\i0 \'83\'74\'83\'89\'83\'93\'83\'58\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 +\f1 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural -\f1\b \cf0 \ +\f2\b \cf0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc \cf0 Special Thanks: -\f0\b0 \ +\f1\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \cf0 Devin Poolman and Zero G Software, Inc.\ -\f2\i -\f3\i0 \'83\'43\'83\'93\'83\'58\'83\'67\'81\'5b\'83\'89 -\f0 \ +\f3\i +\f0\i0 \'83\'43\'83\'93\'83\'58\'83\'67\'81\'5b\'83\'89 +\f1 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural -\f1\b \cf0 \ +\f2\b \cf0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc \cf0 XonX Team Members\ Contributing to XFree86 4.1: -\f0\b0 \ +\f1\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \cf0 Rob Braun\ Darwin x86 -\f3 \'83\'54\'83\'7c\'81\'5b\'83\'67 -\f0 \ +\f0 \'83\'54\'83\'7c\'81\'5b\'83\'67 +\f1 \ Torrey T. Lyons\ -\f3 \'83\'76\'83\'8d\'83\'57\'83\'46\'83\'4e\'83\'67 \'83\'8a\'81\'5b\'83\'5f\'81\'5b -\f0 \ +\f0 \'83\'76\'83\'8d\'83\'57\'83\'46\'83\'4e\'83\'67 \'83\'8a\'81\'5b\'83\'5f\'81\'5b +\f1 \ Andreas Monitzer\ Cocoa -\f3 \'94\'c5 XDarwin \'83\'74\'83\'8d\'83\'93\'83\'67\'83\'47\'83\'93\'83\'68 -\f0 \ +\f0 \'94\'c5 XDarwin \'83\'74\'83\'8d\'83\'93\'83\'67\'83\'47\'83\'93\'83\'68 +\f1 \ Greg Parker\ -\f3 \'8d\'c5\'8f\'89\'82\'cc Quartz \'83\'43\'83\'93\'83\'76\'83\'8a\'83\'81\'83\'93\'83\'67 -\f0 \ +\f0 \'8d\'c5\'8f\'89\'82\'cc Quartz \'83\'43\'83\'93\'83\'76\'83\'8a\'83\'81\'83\'93\'83\'67 +\f1 \ Christoph Pfisterer\ -\f3 \'8b\'a4\'97\'4c\'83\'89\'83\'43\'83\'75\'83\'89\'83\'8a -\f0 \ +\f0 \'8b\'a4\'97\'4c\'83\'89\'83\'43\'83\'75\'83\'89\'83\'8a +\f1 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural -\f3 \cf0 \'93\'63\'92\'86 \'8f\'72\'8c\'f5 -\f0 \ +\f0 \cf0 \'93\'63\'92\'86 \'8f\'72\'8c\'f5 +\f1 \ -\f3 \'93\'fa\'96\'7b\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 -\f0 \ +\f0 \'93\'fa\'96\'7b\'8c\'ea\'83\'8d\'81\'5b\'83\'4a\'83\'89\'83\'43\'83\'59 +\f1 \ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc -\f1\b \cf0 Special Thanks: -\f0\b0 \ +\f2\b \cf0 Special Thanks: +\f1\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \cf0 Tiago Ribeiro\ XDarwin -\f3 \'83\'41\'83\'43\'83\'52\'83\'93 -\f0 \ +\f0 \'83\'41\'83\'43\'83\'52\'83\'93 +\f1 \ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc -\f1\b \cf0 History: -\f0\b0 \ +\f2\b \cf0 History: +\f1\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural \cf0 John Carmack\ -\f3 XFree86 \'82\'cc Mac OS X Server \'82\'d6\'82\'cc\'8d\'c5\'8f\'89\'82\'cc\'88\'da\'90\'41 -\f0 \ +\f0 XFree86 \'82\'cc Mac OS X Server \'82\'d6\'82\'cc\'8d\'c5\'8f\'89\'82\'cc\'88\'da\'90\'41 +\f1 \ Dave Zarzycki\ XFree86 4.0 -\f3 \'82\'f0 Darwin 1.0 \'82\'c9\'88\'da\'90\'41 -\f0 \ +\f0 \'82\'f0 Darwin 1.0 \'82\'c9\'88\'da\'90\'41 +\f1 \ Torrey T. Lyons\ XFree86 4.0.2 -\f3 \'83\'76\'83\'8d\'83\'57\'83\'46\'83\'4e\'83\'67\'82\'d6\'82\'cc\'93\'9d\'8d\'87} \ No newline at end of file +\f0 \'83\'76\'83\'8d\'83\'57\'83\'46\'83\'4e\'83\'67\'82\'d6\'82\'cc\'93\'9d\'8d\'87} Index: xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/Imakefile diff -u xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/Imakefile:1.3 xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/Imakefile:1.4 --- xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/Imakefile:1.3 Tue Jul 16 21:24:57 2002 +++ xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/Imakefile Sat Apr 21 20:37:19 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/Imakefile,v 1.3 2002/07/17 01:24:57 torrey Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/Imakefile,v 1.4 2007/04/22 00:37:19 tsi Exp $ #include @@ -23,3 +23,9 @@ clean:: RemoveFiles(InfoPlist.strings) + +SYMLINKDIR = ../../symlinks/Japanese.lproj + +BundleSymbolicLink($(SYMLINKDIR),.,Localizable.strings) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/classes.nib) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/objects.nib) Index: xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/XDarwinHelp.html.cpp diff -u xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/XDarwinHelp.html.cpp:1.5 xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/XDarwinHelp.html.cpp:1.6 --- xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/XDarwinHelp.html.cpp:1.5 Fri May 3 21:25:40 2002 +++ xc/programs/Xserver/hw/darwin/bundle/Japanese.lproj/XDarwinHelp.html.cpp Sat Feb 24 13:34:52 2007 @@ -1,149 +1,149 @@ - - -#include "xf86Version.h" -#ifndef PRE_RELEASE -#define PRE_RELEASE XF86_VERSION_SNAP -#endif - - - - - -XFree86 for Mac OS X - -
-

XFree86 on Darwin and Mac OS X

- XFree86 XF86_VERSION
- Release Date: XF86_REL_DATE -
-

Ìܼ¡

-
    -
  1. Ãí°Õ»ö¹à
  2. -
  3. »ÈÍÑË¡
  4. -
  5. ¥Ñ¥¹¤ÎÀßÄê
  6. -
  7. ´Ä¶­ÀßÄê
  8. -
  9. ¥é¥¤¥»¥ó¥¹
  10. -
-
-

Ãí°Õ»ö¹à

-
-
-#if PRE_RELEASE -¤³¤ì¤Ï¡¤XFree86 ¤Î¥×¥ì¥ê¥ê¡¼¥¹¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ê¡¤¤¤¤«¤Ê¤ë¾ì¹ç¤Ë¤ª¤¤¤Æ¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó¡£ -¥Ð¥°¤ÎÊó¹ð¤ä¥Ñ¥Ã¥Á¤¬ SourceForge ¤Î XonX ¥×¥í¥¸¥§¥¯¥È¥Ú¡¼¥¸¤ËÄó½Ð¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ -¥×¥ì¥ê¥ê¡¼¥¹¥Ð¡¼¥¸¥ç¥ó¤Î¥Ð¥°¤òÊó¹ð¤¹¤ëÁ°¤Ë¡¤XonX ¥×¥í¥¸¥§¥¯¥È¥Ú¡¼¥¸¤Þ¤¿¤Ï XFree86 CVS ¥ê¥Ý¥¸¥È¥ê¤ÇºÇ¿·ÈǤΥÁ¥§¥Ã¥¯¤ò¤·¤Æ²¼¤µ¤¤¡£ -#else -¤â¤·¡¤¥µ¡¼¥Ð¡¼¤¬ 6 -12 ¥ö·î°Ê¾åÁ°¤Î¤â¤Î¤«¡¤¤Þ¤¿¤Ï¤¢¤Ê¤¿¤Î¥Ï¡¼¥É¥¦¥§¥¢¤¬¾åµ­¤ÎÆüÉÕ¤è¤ê¤â¿·¤·¤¤¤â¤Î¤Ê¤é¤Ð¡¤ÌäÂê¤òÊó¹ð¤¹¤ëÁ°¤Ë¤è¤ê¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤òõ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£ -¥Ð¥°¤ÎÊó¹ð¤ä¥Ñ¥Ã¥Á¤¬ SourceForge ¤Î XonX ¥×¥í¥¸¥§¥¯¥È¥Ú¡¼¥¸¤ËÄó½Ð¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ -#endif -
-
-ËÜ¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¤MIT X11/X Consortium License ¤Î¾ò·ï¤Ë´ð¤Å¤­¡¤ÌµÊݾڤǡ¤¡Ö¤½¤Î¤Þ¤Þ¡×¤Î·Á¤Ç¶¡µë¤µ¤ì¤Þ¤¹¡£ -¤´»ÈÍѤˤʤëÁ°¤Ë¡¤¥é¥¤¥»¥ó¥¹¾ò·ï¤ò¤ªÆɤ߲¼¤µ¤¤¡£ -
- -

»ÈÍÑË¡

-

XFree86 ¤Ï¡¤XFree86 Project, Inc.¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¡¤ºÆÇÛÉÛ²Äǽ¤Ê¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î X Window System ¤Î¼ÂÁõ¤Ç¤¹¡£ -XFree86 ¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤ë Darwin ¤È Mac OS X ¤Î¤¿¤á¤Î X Window ¥µ¡¼¥Ð¡¼¤ò XDarwin ¤È¸Æ¤Ó¤Þ¤¹¡£ -XDarwin ¤Ï¡¤Mac OS X ¾å¤Ç¥Õ¥ë¥¹¥¯¥ê¡¼¥ó¥â¡¼¥É¤Þ¤¿¤Ï¥ë¡¼¥È¥ì¥¹¥â¡¼¥É¤ÇÆ°ºî¤·¤Þ¤¹¡£

- -

¥Õ¥ë¥¹¥¯¥ê¡¼¥ó¥â¡¼¥É¤Ç¤Ï¡¤X Window System ¤¬¥¢¥¯¥Æ¥£¥Ö¤Ê»þ¡¤¤½¤ì¤ÏÁ´²èÌ̤òÀêÍ­¤·¤Þ¤¹¡£ -¤¢¤Ê¤¿¤Ï¡¤Command-Option-A ¥­¡¼¤ò²¡¤¹¤³¤È¤Ë¤è¤Ã¤Æ Mac OS X ¥Ç¥¹¥¯¥È¥Ã¥×¤ØÀÚ¤êÂؤ¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¥­¡¼¤ÎÁȤ߹ç¤ï¤»¤Ï¡¤´Ä¶­ÀßÄê¤ÇÊѹ¹²Äǽ¤Ç¤¹¡£ -Mac OS X ¥Ç¥¹¥¯¥È¥Ã¥×¤«¤é X Window System ¤ØÀÚ¤êÂؤ¨¤ë¾ì¹ç¤Ï¡¤¥É¥Ã¥¯¤Ëɽ¼¨¤µ¤ì¤¿ XDarwin ¥¢¥¤¥³¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ²¼¤µ¤¤¡£ -¡Ê´Ä¶­ÀßÄê¤Ç¡¤¥Õ¥í¡¼¥Æ¥£¥ó¥°¡¦¥¦¥£¥ó¥É¥¦¤Ëɽ¼¨¤µ¤ì¤¿ XDarwin ¥¢¥¤¥³¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤è¤¦¤ËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¡Ë

- -

¥ë¡¼¥È¥ì¥¹¥â¡¼¥É¤Ç¤Ï¡¤X Window System ¤È Aqua ¤Ï²èÌ̤ò¶¦Í­¤·¤Þ¤¹¡£ -X11 ¤¬É½¼¨¤¹¤ë¥ë¡¼¥È¥¦¥£¥ó¥É¥¦¤Ï²èÌ̤Υµ¥¤¥º¤Ç¤¢¤ê¡¤Â¾¤ÎÁ´¤Æ¤Î¥¦¥£¥ó¥É¥¦¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ -Aqua ¤¬¥Ç¥¹¥¯¥È¥Ã¥×¤ÎÇطʤòÀ©¸æ¤¹¤ë¤Î¤Ç¡¤X11 ¤Î¥ë¡¼¥È¥¦¥£¥ó¥É¥¦¤Ï¥ë¡¼¥È¥ì¥¹¥â¡¼¥É¤Ç¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£

- -

Ê£¿ô¥Ü¥¿¥ó¥Þ¥¦¥¹¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó

-

¿¤¯¤Î X11 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¤3 ¥Ü¥¿¥ó¥Þ¥¦¥¹¤òɬÍפȤ·¤Þ¤¹¡£ -¤¢¤Ê¤¿¤Ï¥Þ¥¦¥¹¥Ü¥¿¥ó¤Î¥¯¥ê¥Ã¥¯¤ÈƱ»þ¤Ë¤¤¤¯¤Ä¤«¤Î½¤¾þ¥­¡¼¤ò²¡¤¹¤³¤È¤Ë¤è¤Ã¤Æ¡¤°ì¤Ä¤Î¥Ü¥¿¥ó¤Ç 3 ¥Ü¥¿¥ó¥Þ¥¦¥¹¤ò¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ -¤³¤ì¤Ï¡¤´Ä¶­ÀßÄê¤Î¡Ö°ìÈÌÀßÄê¡×¤Î¡ÖÊ£¿ô¥Ü¥¿¥ó¥Þ¥¦¥¹¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¡×¥»¥¯¥·¥ç¥ó¤ÇÀßÄꤷ¤Þ¤¹¡£ -¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¤¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤ÏÍ­¸ú¤Ç¡¤¥³¥Þ¥ó¥É¥­¡¼¤ò²¡¤·¤Ê¤¬¤é¥Þ¥¦¥¹¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤³¤È¤ÏÂè 2 ¥Þ¥¦¥¹¥Ü¥¿¥ó¤Î¥¯¥ê¥Ã¥¯¤ËÁêÅö¤·¤Þ¤¹¡£ -¥ª¥×¥·¥ç¥ó¥­¡¼¤ò²¡¤·¤Ê¤¬¤é¥¯¥ê¥Ã¥¯¤¹¤ë¤³¤È¤ÏÂè 3 ¥Þ¥¦¥¹¥Ü¥¿¥ó¤Î¥¯¥ê¥Ã¥¯¤ËÁêÅö¤·¤Þ¤¹¡£ -¤¢¤Ê¤¿¤Ï¡¤´Ä¶­ÀßÄê¤Ç¥Ü¥¿¥ó 2 ¤È 3 ¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë½¤¾þ¥­¡¼¤ÎÁȹ礻¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ -Ãí¡§½¤¾þ¥­¡¼¤ò xmodmap ¤Ç¾¤Î¥­¡¼¤Ë³ä¤êÅö¤Æ¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¡¤Ê£¿ô¥Ü¥¿¥ó¥Þ¥¦¥¹¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Ç¤ÏËÜÍè¤Î¥³¥Þ¥ó¥É¥­¡¼¤ä¥ª¥×¥·¥ç¥ó¥­¡¼¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£

- -

¥Ñ¥¹¤ÎÀßÄê

-

¥Ñ¥¹¤Ï¡¤ ¼Â¹Ô²Äǽ¤Ê¥³¥Þ¥ó¥É¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤Ç¤¹¡£ -X11 ¥Ð¥¤¥Ê¥ê¤Ï¡¤/usr/X11R6/bin ¤ËÃÖ¤«¤ì¤Þ¤¹¡£¤¢¤Ê¤¿¤Ï¤½¤ì¤ò¥Ñ¥¹¤Ë²Ã¤¨¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ -XDarwin ¤Ï¡¤¤³¤ì¤ò¥Ç¥Õ¥©¥ë¥È¤Ç¹Ô¤¤¤Þ¤¹¡£¤Þ¤¿¡¤¤¢¤Ê¤¿¤¬¥³¥Þ¥ó¥É¥é¥¤¥ó¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿ÄɲäΥǥ£¥ì¥¯¥È¥ê¤ò²Ã¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

- -

·Ð¸³Ë­¤«¤Ê¥æ¡¼¥¶¡¼¤Ï¡¤¤¹¤Ç¤Ë¼«¤é¤Î¥·¥§¥ë¤Î¤¿¤á¤Ë½é´ü²½¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Æ¥Ñ¥¹¤òÀßÄꤷ¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¡£ -¤³¤Î¾ì¹ç¡¤¤¢¤Ê¤¿¤Ï´Ä¶­ÀßÄê¤Ç XDarwin ¤¬¤¢¤Ê¤¿¤Î¥Ñ¥¹¤òÊѹ¹¤·¤Ê¤¤¤è¤¦¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ -XDarwin ¤Ï¡¤¥æ¡¼¥¶¡¼¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥í¥°¥¤¥ó¥·¥§¥ë¤ÇºÇ½é¤Î X11 ¥¯¥é¥¤¥¢¥ó¥È¤ò³«»Ï¤·¤Þ¤¹¡£ -¡Ê´Ä¶­ÀßÄê¤ÇÂå¤ï¤ê¤Î¥·¥§¥ë¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¡Ë -¥Ñ¥¹¤òÀßÄꤹ¤ëÊýË¡¤Ï¡¤¤¢¤Ê¤¿¤¬»ÈÍѤ·¤Æ¤¤¤ë¥·¥§¥ë¤Ë°Í¸¤·¤Þ¤¹¡£ -¤³¤ì¤Ï¡¤¥·¥§¥ë¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¥É¥­¥å¥á¥ó¥È¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ - -

¤Þ¤¿¡¤¤¢¤Ê¤¿¤Ï¥É¥­¥å¥á¥ó¥È¤òõ¤·¤Æ¤¤¤ë»þ¡¤XFree86 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò¸¡º÷¤µ¤ì¤ë¥Ú¡¼¥¸¤Î¥ê¥¹¥È¤ËÄɲä·¤¿¤¤¤È»×¤¦¤«¤â¤·¤ì¤Þ¤»¤ó¡£ -X11 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï /usr/X11R6/man ¤ËÃÖ¤«¤ì¤Þ¤¹¡£¤½¤·¤Æ MANPATH ´Ä¶­ÊÑ¿ô¤Ï¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£

- -

´Ä¶­ÀßÄê

-

¡ÖXDarwin¡×¥á¥Ë¥å¡¼¤Î¡Ö´Ä¶­ÀßÄê...¡×¥á¥Ë¥å¡¼¹àÌܤ«¤é¥¢¥¯¥»¥¹¤Ç¤­¤ë´Ä¶­ÀßÄê¥Ñ¥Í¥ë¤Ç¡¤¤¤¤¯¤Ä¤«¤Î¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ -¡Öµ¯Æ°¥ª¥×¥·¥ç¥ó¡×¤ÎÆâÍƤϡ¤XDarwin ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤ÇÍ­¸ú¤È¤Ê¤ê¤Þ¤»¤ó¡£ -¾¤ÎÁ´¤Æ¤Î¥ª¥×¥·¥ç¥ó¤ÎÆâÍƤϡ¤Ä¾¤Á¤ËÍ­¸ú¤È¤Ê¤ê¤Þ¤¹¡£ -°Ê²¼¡¤¤½¤ì¤¾¤ì¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹:

- -

°ìÈÌÀßÄê

-
    -
  • X11 ¤Ç¥·¥¹¥Æ¥à¤Î¥Ó¡¼¥×²»¤ò»ÈÍѤ¹¤ë: ¥ª¥ó¤Î¾ì¹ç¡¤Mac OS X ¤Î¥Ó¡¼¥×²»¤¬ X11 ¤Î¥Ù¥ë¤È¤·¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£¥ª¥Õ¤Î¾ì¹ç¡Ê¥Ç¥Õ¥©¥ë¥È¡Ë¡¤¥·¥ó¥×¥ë ¥È¡¼¥ó¤¬»È¤ï¤ì¤Þ¤¹¡£
  • -
  • X11 ¤Î¥Þ¥¦¥¹¥¢¥¯¥»¥é¥ì¡¼¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë: ɸ½àŪ¤Ê X Window System ¤Î¼ÂÁõ¤Ç¤Ï¡¤¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã¡¼¤Ï¥Þ¥¦¥¹¤Î²Ã®ÅÙ¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ - ¥Þ¥¦¥¹¤Î²Ã®ÅÙ¤Ë Mac OS X ¤Î¥·¥¹¥Æ¥à´Ä¶­ÀßÄê¤È X ¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã¡¼¤¬°Û¤Ê¤ëÃͤòÀßÄꤷ¤¿¾ì¹ç¡¤¤³¤ì¤Ïº®Íð¤ò¾·¤­¤Þ¤¹¡£ - ¤³¤ÎÌäÂê¤òÈò¤±¤ë¤¿¤á¡¤¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï X11 ¤Î¥Þ¥¦¥¹¥¢¥¯¥»¥é¥ì¡¼¥·¥ç¥ó¤òÍ­¸ú¤È¤·¤Þ¤»¤ó¡£
  • -
  • Ê£¿ô¥Ü¥¿¥ó¥Þ¥¦¥¹¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó: »ÈÍÑË¡¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£¥ª¥ó¤Î¾ì¹ç¡¤¥Þ¥¦¥¹¥Ü¥¿¥ó¤¬Âè 2 ¤Þ¤¿¤ÏÂè 3 ¤Î¥Þ¥¦¥¹¥Ü¥¿¥ó¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë»þ¤Ë¡¤ÁªÂò¤·¤¿½¤¾þ¥­¡¼¤òƱ»þ¤Ë²¡¤·¤Þ¤¹¡£
  • -
- -

µ¯Æ°¥ª¥×¥·¥ç¥ó

-
    -
  • ²èÌ̥⡼¥É: ¥æ¡¼¥¶¡¼¤¬¥Õ¥ë¥¹¥¯¥ê¡¼¥ó¥â¡¼¥É¤Þ¤¿¤Ï¥ë¡¼¥È¥ì¥¹¥â¡¼¥É¤Î¤É¤Á¤é¤ò»ÈÍѤ¹¤ë¤«¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¤¤³¤³¤Ç»ØÄꤵ¤ì¤¿¥â¡¼¥É¤¬»È¤ï¤ì¤Þ¤¹¡£
  • -
  • µ¯Æ°»þ¤Ë¥â¡¼¥ÉÁªÂò¥Ñ¥Í¥ë¤òɽ¼¨¤¹¤ë: ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¤XDarwin ¤Îµ¯Æ°»þ¤Ë¥æ¡¼¥¶¡¼¤¬¥Õ¥ë¥¹¥¯¥ê¡¼¥ó¥â¡¼¥É¤Þ¤¿¤Ï¥ë¡¼¥È¥ì¥¹¥â¡¼¥É¤Î¤É¤Á¤é¤ò»ÈÍѤ¹¤ë¤«¤òÁªÂò¤¹¤ë¥Ñ¥Í¥ë¤òɽ¼¨¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¥ª¥Õ¤Î¾ì¹ç¡¤²èÌ̥⡼¥É¤Ç»ØÄꤷ¤¿¥â¡¼¥É¤Çµ¯Æ°¤·¤Þ¤¹¡£
  • -
  • X11 ¥Ç¥£¥¹¥×¥ì¥¤ÈÖ¹æ: X11¤Ï¡¤°ì¤Ä¤Î¥³¥ó¥Ô¥å¡¼¥¿¾å¤ÇÊÌ¡¹¤Î X ¥µ¡¼¥Ð¡¼¤¬´ÉÍý¤¹¤ëÊ£¿ô¤Î¥Ç¥£¥¹¥×¥ì¥¤¤¬Â¸ºß¤¹¤ë¤³¤È¤òµö¤·¤Þ¤¹¡£Ê£¿ô¤Î X ¥µ¡¼¥Ð¡¼¤¬Æ±»þ¤Ë¼Â¹Ô¤·¤Æ¤¤¤ë»þ¡¤XDarwin ¤¬»ÈÍѤ¹¤ë¥Ç¥£¥¹¥×¥ì¥¤¤ÎÈÖ¹æ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
  • -
  • Xinerama ¥Þ¥ë¥Á¥â¥Ë¥¿¥µ¥Ý¡¼¥È¤òÍ­¸ú¤Ë¤¹¤ë: XDarwin ¤Ï¡¤Xinerama ¥Þ¥ë¥Á¥â¥Ë¥¿¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¤½¤ì¤ÏÁ´¤Æ¤Î¥â¥Ë¥¿¤ò°ì¤Ä¤ÎÂ礭¤Ê²èÌ̤ΰìÉô¤È¤ß¤Ê¤·¤Þ¤¹¡£¤¢¤Ê¤¿¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç Xinerama ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤¿¤À¤·¡¤¸½ºß XDarwin ¤Ï¤½¤ì̵¤·¤ÇÀµ¤·¤¯Ê£¿ô¤Î¥â¥Ë¥¿¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£¤â¤·¡¤¤¢¤Ê¤¿¤¬°ì¤Ä¤Î¥â¥Ë¥¿¤ò»È¤¦¤À¤±¤Ê¤é¤Ð¡¤Xinerama ¤Ï¼«Æ°Åª¤Ë̵¸ú¤È¤Ê¤ê¤Þ¤¹¡£
  • -
  • ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°¥Õ¥¡¥¤¥ë: ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°¥Õ¥¡¥¤¥ë¤Ïµ¯Æ°»þ¤ËÆɤ߹þ¤Þ¤ì¡¤X11 ¥­¡¼¥Þ¥Ã¥×¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£Â¾¸À¸ì¤ËÂбþ¤·¤¿¥­¡¼¥Þ¥Ã¥Ô¥ó¥°¥Õ¥¡¥¤¥ë¤Ï /System/Library/Keyboards ¤Ë¤¢¤ê¤Þ¤¹¡£¡ÊÌõÃí¡§¥­¡¼¥Þ¥Ã¥Ô¥ó¥°¤Ç Japanese ¤òÁªÂò¤¹¤ë¤È¡¤°ìÉô¤Î¥­¡¼¤¬¸ú¤«¤Ê¤¤Åù¤ÎÉÔ¶ñ¹ç¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¾ì¹ç¤Ï USA ¤òÁªÂò¤·¤¿¾å¤Ç ~/.Xmodmap ¤òŬÍѤ·¤Æ²¼¤µ¤¤¡£¡Ë
  • -
  • ºÇ½é¤Î X11 ¥¯¥é¥¤¥¢¥ó¥È¤Îµ¯Æ°: XDarwin ¤¬ Finder¤«¤éµ¯Æ°¤¹¤ë»þ¡¤X ¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã¡¼¤È X ¥¯¥é¥¤¥¢¥ó¥È¤Îµ¯Æ°¤Ï xinit ¤ò¼Â¹Ô¤·¤Þ¤¹¡£¡Ê¾ÜºÙ¤Ï "man xinit" ¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£¡ËXDarwin ¤Ï xinit ¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¤»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò¥æ¡¼¥¶¡¼¤Î¥Ñ¥¹¤ËÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï /usr/X11R6/bin ¤À¤±¤òÄɲä·¤Þ¤¹¡£Â¾¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲä·¤¿¤¤¾ì¹ç¤Ï¡¤¥³¥í¥ó¤Ç¶èÀڤäƻØÄꤷ¤Þ¤¹¡£¥æ¡¼¥¶¡¼¤Î¥·¥§¥ë½é´ü²½¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤à¤¿¤á¤Ë¡¤X ¥¯¥é¥¤¥¢¥ó¥È¤Ï¥æ¡¼¥¶¡¼¤Î¥Ç¥Õ¥©¥ë¥È¥í¥°¥¤¥ó¥·¥§¥ë¤Çµ¯Æ°¤µ¤ì¤Þ¤¹¡£É¬ÍפǤ¢¤ì¤Ð¡¤Âå¤ï¤ê¤Î¥·¥§¥ë¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
  • -
- -

¥Õ¥ë¥¹¥¯¥ê¡¼¥ó

-
    -
  • ¥­¡¼ÀßÄê¥Ü¥¿¥ó: X11 ¤È Aqua ¤òÀÚ¤êÂؤ¨¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¥Ü¥¿¥ó¤ÎÁȤ߹ç¤ï¤»¤ò»ØÄꤷ¤Þ¤¹¡£ - ¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¤Ç¤°Õ¤Î¿ô¤Î½¤¾þ¥­¡¼¤Ë³¤¤¤ÆÄ̾ï¤Î¥­¡¼¤ò²¡¤·¤Þ¤¹¡£
  • -
  • ¥É¥Ã¥¯¤Î¥¢¥¤¥³¥ó¤Î¥¯¥ê¥Ã¥¯¤Ç X11 ¤ËÌá¤ë: ¥ª¥ó¤Î¾ì¹ç¡¤¥É¥Ã¥¯¤Ëɽ¼¨¤µ¤ì¤¿ XDarwin ¥¢¥¤¥³¥ó¤Î¥¯¥ê¥Ã¥¯¤Ç X11 ¤Ø¤ÎÀڤ괹¤¨¤¬²Äǽ¤È¤Ê¤ê¤Þ¤¹¡£Mac OS X ¤Î¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¤¥É¥Ã¥¯¤Î¥¢¥¤¥³¥ó¤Î¥¯¥ê¥Ã¥¯¤Ç Aqua ¤ËÌá¤Ã¤¿»þ¡¤¥«¡¼¥½¥ë¤¬¾Ã¼º¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
  • -
  • µ¯Æ°»þ¤Ë¥Ø¥ë¥×¤òɽ¼¨¤¹¤ë: XDarwin ¤¬¥Õ¥ë¥¹¥¯¥ê¡¼¥ó¥â¡¼¥É¤Çµ¯Æ°¤¹¤ë»þ¡¤¥¹¥×¥é¥Ã¥·¥å¥¹¥¯¥ê¡¼¥ó¤òɽ¼¨¤·¤Þ¤¹¡£
  • -
  • ¿§¿¼ÅÙ: ¥Õ¥ë¥¹¥¯¥ê¡¼¥ó¥â¡¼¥É¤Ç¤Ï¡¤X11 ¥Ç¥£¥¹¥×¥ì¥¤¤¬ Aqua ¤È°Û¤Ê¤ë¿§¿¼ÅÙ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¡ÖÊѹ¹¤Ê¤·¡×¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¤XDarwin ¤Ï Aqua ¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¿§¿¼ÅÙ¤ò»È¤¤¤Þ¤¹¡£¤³¤ì°Ê³°¤Ë 8¡¤15 ¤Þ¤¿¤Ï24 ¥Ó¥Ã¥È¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
  • -
- -

-¥é¥¤¥»¥ó¥¹ -

-XFree86 Project ¤Ï¡¤¼«Í³¤ËºÆÇÛÉÛ²Äǽ¤Ê¥Ð¥¤¥Ê¥ê¤È¥½¡¼¥¹¥³¡¼¥É¤òÄ󶡤¹¤ë¤³¤È¤Ë¥³¥ß¥Ã¥È¤·¤Æ¤¤¤Þ¤¹¡£ -»ä¤¿¤Á¤¬»ÈÍѤ¹¤ë¼ç¤Ê¥é¥¤¥»¥ó¥¹¤Ï¡¤ÅÁÅýŪ¤Ê MIT X11/X Consortium License ¤Ë´ð¤Å¤¯¤â¤Î¤Ç¤¹¡£ -¤½¤·¤Æ¡¤¤½¤ì¤Ï½¤Àµ¤Þ¤¿¤ÏºÆÇÛÉÛ¤µ¤ì¤ë¥½¡¼¥¹¥³¡¼¥É¤Þ¤¿¤Ï¥Ð¥¤¥Ê¥ê¤Ë¡¤¤½¤Î Copyright/¥é¥¤¥»¥ó¥¹¹ð¼¨¤¬¤½¤Î¤Þ¤Þ»Ä¤µ¤ì¤ë¤³¤È¤òÍ׵᤹¤ë°Ê³°¤Î¾ò·ï¤ò¶¯À©¤·¤Þ¤»¤ó¡£ -¤è¤ê¿¤¯¤Î¾ðÊó¤È¡¤¥³¡¼¥É¤Î°ìÉô¤ò¥«¥Ð¡¼¤¹¤ëÄɲäΠCopyright/¥é¥¤¥»¥ó¥¹¹ð¼¨¤Î¤¿¤á¤Ë¡¤XFree86 ¤Î License ¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£ -

- -X Consortium License

-

Copyright (C) 1996 X Consortium

-

Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the "Software"), -to deal in the Software without restriction, including without -limitation the rights to use, copy, modify, merge, publish, distribute, -sublicense, and/or sell copies of the Software, and to permit persons to -whom the Software is furnished to do so, subject to the following conditions:

-

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 X CONSORTIUM 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 X Consortium 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 X Consortium.

-

X Window System is a trademark of X Consortium, Inc.

- - + + +#include "xf86Version.h" +#ifndef PRE_RELEASE +#define PRE_RELEASE XF86_VERSION_SNAP +#endif + + + + + +XFree86 for Mac OS X + +
+

XFree86 on Darwin and Mac OS X

+ XFree86 XF86_VERSION
+ Release Date: XF86_REL_DATE +
+

Ìܼ¡

+
    +
  1. Ãí°Õ»ö¹à
  2. +
  3. »ÈÍÑË¡
  4. +
  5. ¥Ñ¥¹¤ÎÀßÄê
  6. +
  7. ´Ä¶­ÀßÄê
  8. +
  9. ¥é¥¤¥»¥ó¥¹
  10. +
+
+

Ãí°Õ»ö¹à

+
+
+#if PRE_RELEASE +¤³¤ì¤Ï¡¤XFree86 ¤Î¥×¥ì¥ê¥ê¡¼¥¹¥Ð¡¼¥¸¥ç¥ó¤Ç¤¢¤ê¡¤¤¤¤«¤Ê¤ë¾ì¹ç¤Ë¤ª¤¤¤Æ¤â¥µ¥Ý¡¼¥È¤µ¤ì¤Þ¤»¤ó¡£ +¥Ð¥°¤ÎÊó¹ð¤ä¥Ñ¥Ã¥Á¤¬ SourceForge ¤Î XonX ¥×¥í¥¸¥§¥¯¥È¥Ú¡¼¥¸¤ËÄó½Ð¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ +¥×¥ì¥ê¥ê¡¼¥¹¥Ð¡¼¥¸¥ç¥ó¤Î¥Ð¥°¤òÊó¹ð¤¹¤ëÁ°¤Ë¡¤XonX ¥×¥í¥¸¥§¥¯¥È¥Ú¡¼¥¸¤Þ¤¿¤Ï XFree86 CVS ¥ê¥Ý¥¸¥È¥ê¤ÇºÇ¿·ÈǤΥÁ¥§¥Ã¥¯¤ò¤·¤Æ²¼¤µ¤¤¡£ +#else +¤â¤·¡¤¥µ¡¼¥Ð¡¼¤¬ 6 -12 ¥ö·î°Ê¾åÁ°¤Î¤â¤Î¤«¡¤¤Þ¤¿¤Ï¤¢¤Ê¤¿¤Î¥Ï¡¼¥É¥¦¥§¥¢¤¬¾åµ­¤ÎÆüÉÕ¤è¤ê¤â¿·¤·¤¤¤â¤Î¤Ê¤é¤Ð¡¤ÌäÂê¤òÊó¹ð¤¹¤ëÁ°¤Ë¤è¤ê¿·¤·¤¤¥Ð¡¼¥¸¥ç¥ó¤òõ¤·¤Æ¤ß¤Æ¤¯¤À¤µ¤¤¡£ +¥Ð¥°¤ÎÊó¹ð¤ä¥Ñ¥Ã¥Á¤¬ SourceForge ¤Î XonX ¥×¥í¥¸¥§¥¯¥È¥Ú¡¼¥¸¤ËÄó½Ð¤µ¤ì¤Æ¤¤¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¡£ +#endif +
+
+ËÜ¥½¥Õ¥È¥¦¥§¥¢¤Ï¡¤MIT X11/X Consortium License ¤Î¾ò·ï¤Ë´ð¤Å¤­¡¤ÌµÊݾڤǡ¤¡Ö¤½¤Î¤Þ¤Þ¡×¤Î·Á¤Ç¶¡µë¤µ¤ì¤Þ¤¹¡£ +¤´»ÈÍѤˤʤëÁ°¤Ë¡¤¥é¥¤¥»¥ó¥¹¾ò·ï¤ò¤ªÆɤ߲¼¤µ¤¤¡£ +
+ +

»ÈÍÑË¡

+

XFree86 ¤Ï¡¤XFree86 Project, Inc.¤Ë¤è¤Ã¤ÆºîÀ®¤µ¤ì¤¿¡¤ºÆÇÛÉÛ²Äǽ¤Ê¥ª¡¼¥×¥ó¥½¡¼¥¹¤Î X Window System ¤Î¼ÂÁõ¤Ç¤¹¡£ +XFree86 ¤Ë¤è¤Ã¤ÆÄ󶡤µ¤ì¤ë Darwin ¤È Mac OS X ¤Î¤¿¤á¤Î X Window ¥µ¡¼¥Ð¡¼¤ò XDarwin ¤È¸Æ¤Ó¤Þ¤¹¡£ +XDarwin ¤Ï¡¤Mac OS X ¾å¤Ç¥Õ¥ë¥¹¥¯¥ê¡¼¥ó¥â¡¼¥É¤Þ¤¿¤Ï¥ë¡¼¥È¥ì¥¹¥â¡¼¥É¤ÇÆ°ºî¤·¤Þ¤¹¡£

+ +

¥Õ¥ë¥¹¥¯¥ê¡¼¥ó¥â¡¼¥É¤Ç¤Ï¡¤X Window System ¤¬¥¢¥¯¥Æ¥£¥Ö¤Ê»þ¡¤¤½¤ì¤ÏÁ´²èÌ̤òÀêÍ­¤·¤Þ¤¹¡£ +¤¢¤Ê¤¿¤Ï¡¤Command-Option-A ¥­¡¼¤ò²¡¤¹¤³¤È¤Ë¤è¤Ã¤Æ Mac OS X ¥Ç¥¹¥¯¥È¥Ã¥×¤ØÀÚ¤êÂؤ¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤³¤Î¥­¡¼¤ÎÁȤ߹ç¤ï¤»¤Ï¡¤´Ä¶­ÀßÄê¤ÇÊѹ¹²Äǽ¤Ç¤¹¡£ +Mac OS X ¥Ç¥¹¥¯¥È¥Ã¥×¤«¤é X Window System ¤ØÀÚ¤êÂؤ¨¤ë¾ì¹ç¤Ï¡¤¥É¥Ã¥¯¤Ëɽ¼¨¤µ¤ì¤¿ XDarwin ¥¢¥¤¥³¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ²¼¤µ¤¤¡£ +¡Ê´Ä¶­ÀßÄê¤Ç¡¤¥Õ¥í¡¼¥Æ¥£¥ó¥°¡¦¥¦¥£¥ó¥É¥¦¤Ëɽ¼¨¤µ¤ì¤¿ XDarwin ¥¢¥¤¥³¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤è¤¦¤ËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¡Ë

+ +

¥ë¡¼¥È¥ì¥¹¥â¡¼¥É¤Ç¤Ï¡¤X Window System ¤È Aqua ¤Ï²èÌ̤ò¶¦Í­¤·¤Þ¤¹¡£ +X11 ¤¬É½¼¨¤¹¤ë¥ë¡¼¥È¥¦¥£¥ó¥É¥¦¤Ï²èÌ̤Υµ¥¤¥º¤Ç¤¢¤ê¡¤Â¾¤ÎÁ´¤Æ¤Î¥¦¥£¥ó¥É¥¦¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£ +Aqua ¤¬¥Ç¥¹¥¯¥È¥Ã¥×¤ÎÇطʤòÀ©¸æ¤¹¤ë¤Î¤Ç¡¤X11 ¤Î¥ë¡¼¥È¥¦¥£¥ó¥É¥¦¤Ï¥ë¡¼¥È¥ì¥¹¥â¡¼¥É¤Ç¤Ïɽ¼¨¤µ¤ì¤Þ¤»¤ó¡£

+ +

Ê£¿ô¥Ü¥¿¥ó¥Þ¥¦¥¹¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó

+

¿¤¯¤Î X11 ¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤Ï¡¤3 ¥Ü¥¿¥ó¥Þ¥¦¥¹¤òɬÍפȤ·¤Þ¤¹¡£ +¤¢¤Ê¤¿¤Ï¥Þ¥¦¥¹¥Ü¥¿¥ó¤Î¥¯¥ê¥Ã¥¯¤ÈƱ»þ¤Ë¤¤¤¯¤Ä¤«¤Î½¤¾þ¥­¡¼¤ò²¡¤¹¤³¤È¤Ë¤è¤Ã¤Æ¡¤°ì¤Ä¤Î¥Ü¥¿¥ó¤Ç 3 ¥Ü¥¿¥ó¥Þ¥¦¥¹¤ò¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¤³¤ì¤Ï¡¤´Ä¶­ÀßÄê¤Î¡Ö°ìÈÌÀßÄê¡×¤Î¡ÖÊ£¿ô¥Ü¥¿¥ó¥Þ¥¦¥¹¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¡×¥»¥¯¥·¥ç¥ó¤ÇÀßÄꤷ¤Þ¤¹¡£ +¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¤¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤ÏÍ­¸ú¤Ç¡¤¥³¥Þ¥ó¥É¥­¡¼¤ò²¡¤·¤Ê¤¬¤é¥Þ¥¦¥¹¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤¹¤ë¤³¤È¤ÏÂè 2 ¥Þ¥¦¥¹¥Ü¥¿¥ó¤Î¥¯¥ê¥Ã¥¯¤ËÁêÅö¤·¤Þ¤¹¡£ +¥ª¥×¥·¥ç¥ó¥­¡¼¤ò²¡¤·¤Ê¤¬¤é¥¯¥ê¥Ã¥¯¤¹¤ë¤³¤È¤ÏÂè 3 ¥Þ¥¦¥¹¥Ü¥¿¥ó¤Î¥¯¥ê¥Ã¥¯¤ËÁêÅö¤·¤Þ¤¹¡£ +¤¢¤Ê¤¿¤Ï¡¤´Ä¶­ÀßÄê¤Ç¥Ü¥¿¥ó 2 ¤È 3 ¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë½¤¾þ¥­¡¼¤ÎÁȹ礻¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +Ãí¡§½¤¾þ¥­¡¼¤ò xmodmap ¤Ç¾¤Î¥­¡¼¤Ë³ä¤êÅö¤Æ¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¡¤Ê£¿ô¥Ü¥¿¥ó¥Þ¥¦¥¹¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó¤Ç¤ÏËÜÍè¤Î¥³¥Þ¥ó¥É¥­¡¼¤ä¥ª¥×¥·¥ç¥ó¥­¡¼¤ò»È¤ï¤Ê¤±¤ì¤Ð¤Ê¤ê¤Þ¤»¤ó¡£

+ +

¥Ñ¥¹¤ÎÀßÄê

+

¥Ñ¥¹¤Ï¡¤ ¼Â¹Ô²Äǽ¤Ê¥³¥Þ¥ó¥É¤ò¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤Ç¤¹¡£ +X11 ¥Ð¥¤¥Ê¥ê¤Ï¡¤/usr/X11R6/bin ¤ËÃÖ¤«¤ì¤Þ¤¹¡£¤¢¤Ê¤¿¤Ï¤½¤ì¤ò¥Ñ¥¹¤Ë²Ã¤¨¤ëɬÍפ¬¤¢¤ê¤Þ¤¹¡£ +XDarwin ¤Ï¡¤¤³¤ì¤ò¥Ç¥Õ¥©¥ë¥È¤Ç¹Ô¤¤¤Þ¤¹¡£¤Þ¤¿¡¤¤¢¤Ê¤¿¤¬¥³¥Þ¥ó¥É¥é¥¤¥ó¡¦¥¢¥×¥ê¥±¡¼¥·¥ç¥ó¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤¿ÄɲäΥǥ£¥ì¥¯¥È¥ê¤ò²Ã¤¨¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£

+ +

·Ð¸³Ë­¤«¤Ê¥æ¡¼¥¶¡¼¤Ï¡¤¤¹¤Ç¤Ë¼«¤é¤Î¥·¥§¥ë¤Î¤¿¤á¤Ë½é´ü²½¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Æ¥Ñ¥¹¤òÀßÄꤷ¤Æ¤¤¤ë¤Ç¤·¤ç¤¦¡£ +¤³¤Î¾ì¹ç¡¤¤¢¤Ê¤¿¤Ï´Ä¶­ÀßÄê¤Ç XDarwin ¤¬¤¢¤Ê¤¿¤Î¥Ñ¥¹¤òÊѹ¹¤·¤Ê¤¤¤è¤¦¤ËÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +XDarwin ¤Ï¡¤¥æ¡¼¥¶¡¼¤Î¥Ç¥Õ¥©¥ë¥È¤Î¥í¥°¥¤¥ó¥·¥§¥ë¤ÇºÇ½é¤Î X11 ¥¯¥é¥¤¥¢¥ó¥È¤ò³«»Ï¤·¤Þ¤¹¡£ +¡Ê´Ä¶­ÀßÄê¤ÇÂå¤ï¤ê¤Î¥·¥§¥ë¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¡Ë +¥Ñ¥¹¤òÀßÄꤹ¤ëÊýË¡¤Ï¡¤¤¢¤Ê¤¿¤¬»ÈÍѤ·¤Æ¤¤¤ë¥·¥§¥ë¤Ë°Í¸¤·¤Þ¤¹¡£ +¤³¤ì¤Ï¡¤¥·¥§¥ë¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¥É¥­¥å¥á¥ó¥È¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤Þ¤¹¡£ + +

¤Þ¤¿¡¤¤¢¤Ê¤¿¤Ï¥É¥­¥å¥á¥ó¥È¤òõ¤·¤Æ¤¤¤ë»þ¡¤XFree86 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤ò¸¡º÷¤µ¤ì¤ë¥Ú¡¼¥¸¤Î¥ê¥¹¥È¤ËÄɲä·¤¿¤¤¤È»×¤¦¤«¤â¤·¤ì¤Þ¤»¤ó¡£ +X11 ¤Î¥Þ¥Ë¥å¥¢¥ë¥Ú¡¼¥¸¤Ï /usr/X11R6/man ¤ËÃÖ¤«¤ì¤Þ¤¹¡£¤½¤·¤Æ MANPATH ´Ä¶­ÊÑ¿ô¤Ï¸¡º÷¤¹¤ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹¡£

+ +

´Ä¶­ÀßÄê

+

¡ÖXDarwin¡×¥á¥Ë¥å¡¼¤Î¡Ö´Ä¶­ÀßÄê...¡×¥á¥Ë¥å¡¼¹àÌܤ«¤é¥¢¥¯¥»¥¹¤Ç¤­¤ë´Ä¶­ÀßÄê¥Ñ¥Í¥ë¤Ç¡¤¤¤¤¯¤Ä¤«¤Î¥ª¥×¥·¥ç¥ó¤òÀßÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ +¡Öµ¯Æ°¥ª¥×¥·¥ç¥ó¡×¤ÎÆâÍƤϡ¤XDarwin ¤òºÆµ¯Æ°¤¹¤ë¤Þ¤ÇÍ­¸ú¤È¤Ê¤ê¤Þ¤»¤ó¡£ +¾¤ÎÁ´¤Æ¤Î¥ª¥×¥·¥ç¥ó¤ÎÆâÍƤϡ¤Ä¾¤Á¤ËÍ­¸ú¤È¤Ê¤ê¤Þ¤¹¡£ +°Ê²¼¡¤¤½¤ì¤¾¤ì¤Î¥ª¥×¥·¥ç¥ó¤Ë¤Ä¤¤¤ÆÀâÌÀ¤·¤Þ¤¹:

+ +

°ìÈÌÀßÄê

+
    +
  • X11 ¤Ç¥·¥¹¥Æ¥à¤Î¥Ó¡¼¥×²»¤ò»ÈÍѤ¹¤ë: ¥ª¥ó¤Î¾ì¹ç¡¤Mac OS X ¤Î¥Ó¡¼¥×²»¤¬ X11 ¤Î¥Ù¥ë¤È¤·¤Æ»ÈÍѤµ¤ì¤Þ¤¹¡£¥ª¥Õ¤Î¾ì¹ç¡Ê¥Ç¥Õ¥©¥ë¥È¡Ë¡¤¥·¥ó¥×¥ë ¥È¡¼¥ó¤¬»È¤ï¤ì¤Þ¤¹¡£
  • +
  • X11 ¤Î¥Þ¥¦¥¹¥¢¥¯¥»¥é¥ì¡¼¥·¥ç¥ó¤òÍ­¸ú¤Ë¤¹¤ë: ɸ½àŪ¤Ê X Window System ¤Î¼ÂÁõ¤Ç¤Ï¡¤¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã¡¼¤Ï¥Þ¥¦¥¹¤Î²Ã®ÅÙ¤òÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£ + ¥Þ¥¦¥¹¤Î²Ã®ÅÙ¤Ë Mac OS X ¤Î¥·¥¹¥Æ¥à´Ä¶­ÀßÄê¤È X ¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã¡¼¤¬°Û¤Ê¤ëÃͤòÀßÄꤷ¤¿¾ì¹ç¡¤¤³¤ì¤Ïº®Íð¤ò¾·¤­¤Þ¤¹¡£ + ¤³¤ÎÌäÂê¤òÈò¤±¤ë¤¿¤á¡¤¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï X11 ¤Î¥Þ¥¦¥¹¥¢¥¯¥»¥é¥ì¡¼¥·¥ç¥ó¤òÍ­¸ú¤È¤·¤Þ¤»¤ó¡£
  • +
  • Ê£¿ô¥Ü¥¿¥ó¥Þ¥¦¥¹¤Î¥¨¥ß¥å¥ì¡¼¥·¥ç¥ó: »ÈÍÑË¡¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£¥ª¥ó¤Î¾ì¹ç¡¤¥Þ¥¦¥¹¥Ü¥¿¥ó¤¬Âè 2 ¤Þ¤¿¤ÏÂè 3 ¤Î¥Þ¥¦¥¹¥Ü¥¿¥ó¤ò¥¨¥ß¥å¥ì¡¼¥È¤¹¤ë»þ¤Ë¡¤ÁªÂò¤·¤¿½¤¾þ¥­¡¼¤òƱ»þ¤Ë²¡¤·¤Þ¤¹¡£
  • +
+ +

µ¯Æ°¥ª¥×¥·¥ç¥ó

+
    +
  • ²èÌ̥⡼¥É: ¥æ¡¼¥¶¡¼¤¬¥Õ¥ë¥¹¥¯¥ê¡¼¥ó¥â¡¼¥É¤Þ¤¿¤Ï¥ë¡¼¥È¥ì¥¹¥â¡¼¥É¤Î¤É¤Á¤é¤ò»ÈÍѤ¹¤ë¤«¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¡¤¤³¤³¤Ç»ØÄꤵ¤ì¤¿¥â¡¼¥É¤¬»È¤ï¤ì¤Þ¤¹¡£
  • +
  • µ¯Æ°»þ¤Ë¥â¡¼¥ÉÁªÂò¥Ñ¥Í¥ë¤òɽ¼¨¤¹¤ë: ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¡¤XDarwin ¤Îµ¯Æ°»þ¤Ë¥æ¡¼¥¶¡¼¤¬¥Õ¥ë¥¹¥¯¥ê¡¼¥ó¥â¡¼¥É¤Þ¤¿¤Ï¥ë¡¼¥È¥ì¥¹¥â¡¼¥É¤Î¤É¤Á¤é¤ò»ÈÍѤ¹¤ë¤«¤òÁªÂò¤¹¤ë¥Ñ¥Í¥ë¤òɽ¼¨¤·¤Þ¤¹¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤¬¥ª¥Õ¤Î¾ì¹ç¡¤²èÌ̥⡼¥É¤Ç»ØÄꤷ¤¿¥â¡¼¥É¤Çµ¯Æ°¤·¤Þ¤¹¡£
  • +
  • X11 ¥Ç¥£¥¹¥×¥ì¥¤ÈÖ¹æ: X11¤Ï¡¤°ì¤Ä¤Î¥³¥ó¥Ô¥å¡¼¥¿¾å¤ÇÊÌ¡¹¤Î X ¥µ¡¼¥Ð¡¼¤¬´ÉÍý¤¹¤ëÊ£¿ô¤Î¥Ç¥£¥¹¥×¥ì¥¤¤¬Â¸ºß¤¹¤ë¤³¤È¤òµö¤·¤Þ¤¹¡£Ê£¿ô¤Î X ¥µ¡¼¥Ð¡¼¤¬Æ±»þ¤Ë¼Â¹Ô¤·¤Æ¤¤¤ë»þ¡¤XDarwin ¤¬»ÈÍѤ¹¤ë¥Ç¥£¥¹¥×¥ì¥¤¤ÎÈÖ¹æ¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
  • +
  • Xinerama ¥Þ¥ë¥Á¥â¥Ë¥¿¥µ¥Ý¡¼¥È¤òÍ­¸ú¤Ë¤¹¤ë: XDarwin ¤Ï¡¤Xinerama ¥Þ¥ë¥Á¥â¥Ë¥¿¤ò¥µ¥Ý¡¼¥È¤·¤Þ¤¹¡£¤½¤ì¤ÏÁ´¤Æ¤Î¥â¥Ë¥¿¤ò°ì¤Ä¤ÎÂ礭¤Ê²èÌ̤ΰìÉô¤È¤ß¤Ê¤·¤Þ¤¹¡£¤¢¤Ê¤¿¤Ï¤³¤Î¥ª¥×¥·¥ç¥ó¤Ç Xinerama ¤ò̵¸ú¤Ë¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¤¿¤À¤·¡¤¸½ºß XDarwin ¤Ï¤½¤ì̵¤·¤ÇÀµ¤·¤¯Ê£¿ô¤Î¥â¥Ë¥¿¤ò°·¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£¤â¤·¡¤¤¢¤Ê¤¿¤¬°ì¤Ä¤Î¥â¥Ë¥¿¤ò»È¤¦¤À¤±¤Ê¤é¤Ð¡¤Xinerama ¤Ï¼«Æ°Åª¤Ë̵¸ú¤È¤Ê¤ê¤Þ¤¹¡£
  • +
  • ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°¥Õ¥¡¥¤¥ë: ¥­¡¼¥Þ¥Ã¥Ô¥ó¥°¥Õ¥¡¥¤¥ë¤Ïµ¯Æ°»þ¤ËÆɤ߹þ¤Þ¤ì¡¤X11 ¥­¡¼¥Þ¥Ã¥×¤ËÊÑ´¹¤µ¤ì¤Þ¤¹¡£Â¾¸À¸ì¤ËÂбþ¤·¤¿¥­¡¼¥Þ¥Ã¥Ô¥ó¥°¥Õ¥¡¥¤¥ë¤Ï /System/Library/Keyboards ¤Ë¤¢¤ê¤Þ¤¹¡£¡ÊÌõÃí¡§¥­¡¼¥Þ¥Ã¥Ô¥ó¥°¤Ç Japanese ¤òÁªÂò¤¹¤ë¤È¡¤°ìÉô¤Î¥­¡¼¤¬¸ú¤«¤Ê¤¤Åù¤ÎÉÔ¶ñ¹ç¤¬È¯À¸¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£¤³¤Î¾ì¹ç¤Ï USA ¤òÁªÂò¤·¤¿¾å¤Ç ~/.Xmodmap ¤òŬÍѤ·¤Æ²¼¤µ¤¤¡£¡Ë
  • +
  • ºÇ½é¤Î X11 ¥¯¥é¥¤¥¢¥ó¥È¤Îµ¯Æ°: XDarwin ¤¬ Finder¤«¤éµ¯Æ°¤¹¤ë»þ¡¤X ¥¦¥£¥ó¥É¥¦¥Þ¥Í¡¼¥¸¥ã¡¼¤È X ¥¯¥é¥¤¥¢¥ó¥È¤Îµ¯Æ°¤Ï xinit ¤ò¼Â¹Ô¤·¤Þ¤¹¡£¡Ê¾ÜºÙ¤Ï "man xinit" ¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£¡ËXDarwin ¤Ï xinit ¤ò¼Â¹Ô¤¹¤ëÁ°¤Ë¡¤»ØÄꤵ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò¥æ¡¼¥¶¡¼¤Î¥Ñ¥¹¤ËÄɲä·¤Þ¤¹¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï /usr/X11R6/bin ¤À¤±¤òÄɲä·¤Þ¤¹¡£Â¾¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲä·¤¿¤¤¾ì¹ç¤Ï¡¤¥³¥í¥ó¤Ç¶èÀڤäƻØÄꤷ¤Þ¤¹¡£¥æ¡¼¥¶¡¼¤Î¥·¥§¥ë½é´ü²½¥Õ¥¡¥¤¥ë¤òÆɤ߹þ¤à¤¿¤á¤Ë¡¤X ¥¯¥é¥¤¥¢¥ó¥È¤Ï¥æ¡¼¥¶¡¼¤Î¥Ç¥Õ¥©¥ë¥È¥í¥°¥¤¥ó¥·¥§¥ë¤Çµ¯Æ°¤µ¤ì¤Þ¤¹¡£É¬ÍפǤ¢¤ì¤Ð¡¤Âå¤ï¤ê¤Î¥·¥§¥ë¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
  • +
+ +

¥Õ¥ë¥¹¥¯¥ê¡¼¥ó

+
    +
  • ¥­¡¼ÀßÄê¥Ü¥¿¥ó: X11 ¤È Aqua ¤òÀÚ¤êÂؤ¨¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë¥Ü¥¿¥ó¤ÎÁȤ߹ç¤ï¤»¤ò»ØÄꤷ¤Þ¤¹¡£ + ¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¤Ç¤°Õ¤Î¿ô¤Î½¤¾þ¥­¡¼¤Ë³¤¤¤ÆÄ̾ï¤Î¥­¡¼¤ò²¡¤·¤Þ¤¹¡£
  • +
  • ¥É¥Ã¥¯¤Î¥¢¥¤¥³¥ó¤Î¥¯¥ê¥Ã¥¯¤Ç X11 ¤ËÌá¤ë: ¥ª¥ó¤Î¾ì¹ç¡¤¥É¥Ã¥¯¤Ëɽ¼¨¤µ¤ì¤¿ XDarwin ¥¢¥¤¥³¥ó¤Î¥¯¥ê¥Ã¥¯¤Ç X11 ¤Ø¤ÎÀڤ괹¤¨¤¬²Äǽ¤È¤Ê¤ê¤Þ¤¹¡£Mac OS X ¤Î¤¤¤¯¤Ä¤«¤Î¥Ð¡¼¥¸¥ç¥ó¤Ç¤Ï¡¤¥É¥Ã¥¯¤Î¥¢¥¤¥³¥ó¤Î¥¯¥ê¥Ã¥¯¤Ç Aqua ¤ËÌá¤Ã¤¿»þ¡¤¥«¡¼¥½¥ë¤¬¾Ã¼º¤¹¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
  • +
  • µ¯Æ°»þ¤Ë¥Ø¥ë¥×¤òɽ¼¨¤¹¤ë: XDarwin ¤¬¥Õ¥ë¥¹¥¯¥ê¡¼¥ó¥â¡¼¥É¤Çµ¯Æ°¤¹¤ë»þ¡¤¥¹¥×¥é¥Ã¥·¥å¥¹¥¯¥ê¡¼¥ó¤òɽ¼¨¤·¤Þ¤¹¡£
  • +
  • ¿§¿¼ÅÙ: ¥Õ¥ë¥¹¥¯¥ê¡¼¥ó¥â¡¼¥É¤Ç¤Ï¡¤X11 ¥Ç¥£¥¹¥×¥ì¥¤¤¬ Aqua ¤È°Û¤Ê¤ë¿§¿¼ÅÙ¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£¡ÖÊѹ¹¤Ê¤·¡×¤¬»ØÄꤵ¤ì¤¿¾ì¹ç¡¤XDarwin ¤Ï Aqua ¤Ë¤è¤Ã¤Æ»ÈÍѤµ¤ì¤ë¿§¿¼ÅÙ¤ò»È¤¤¤Þ¤¹¡£¤³¤ì°Ê³°¤Ë 8¡¤15 ¤Þ¤¿¤Ï24 ¥Ó¥Ã¥È¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£
  • +
+ +

+¥é¥¤¥»¥ó¥¹ +

+XFree86 Project ¤Ï¡¤¼«Í³¤ËºÆÇÛÉÛ²Äǽ¤Ê¥Ð¥¤¥Ê¥ê¤È¥½¡¼¥¹¥³¡¼¥É¤òÄ󶡤¹¤ë¤³¤È¤Ë¥³¥ß¥Ã¥È¤·¤Æ¤¤¤Þ¤¹¡£ +»ä¤¿¤Á¤¬»ÈÍѤ¹¤ë¼ç¤Ê¥é¥¤¥»¥ó¥¹¤Ï¡¤ÅÁÅýŪ¤Ê MIT X11/X Consortium License ¤Ë´ð¤Å¤¯¤â¤Î¤Ç¤¹¡£ +¤½¤·¤Æ¡¤¤½¤ì¤Ï½¤Àµ¤Þ¤¿¤ÏºÆÇÛÉÛ¤µ¤ì¤ë¥½¡¼¥¹¥³¡¼¥É¤Þ¤¿¤Ï¥Ð¥¤¥Ê¥ê¤Ë¡¤¤½¤Î Copyright/¥é¥¤¥»¥ó¥¹¹ð¼¨¤¬¤½¤Î¤Þ¤Þ»Ä¤µ¤ì¤ë¤³¤È¤òÍ׵᤹¤ë°Ê³°¤Î¾ò·ï¤ò¶¯À©¤·¤Þ¤»¤ó¡£ +¤è¤ê¿¤¯¤Î¾ðÊó¤È¡¤¥³¡¼¥É¤Î°ìÉô¤ò¥«¥Ð¡¼¤¹¤ëÄɲäΠCopyright/¥é¥¤¥»¥ó¥¹¹ð¼¨¤Î¤¿¤á¤Ë¡¤XFree86 ¤Î License ¥Ú¡¼¥¸¤ò»²¾È¤·¤Æ²¼¤µ¤¤¡£ +

+ +X Consortium License

+

Copyright (C) 1996 X Consortium

+

Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without +limitation the rights to use, copy, modify, merge, publish, distribute, +sublicense, and/or sell copies of the Software, and to permit persons to +whom the Software is furnished to do so, subject to the following conditions:

+

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 X CONSORTIUM 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 X Consortium 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 X Consortium.

+

X Window System is a trademark of X Consortium, Inc.

+ + Index: xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/Credits.rtf diff -u xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/Credits.rtf:1.4 xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/Credits.rtf:1.6 --- xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/Credits.rtf:1.4 Wed Feb 25 14:36:23 2004 +++ xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/Credits.rtf Mon Apr 2 20:21:08 2007 @@ -5,10 +5,20 @@ \vieww5140\viewh4980\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ +\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc +\f1\b \cf0 Contributors to XFree86 4.7: +\f0\b0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural +\cf0 Kaleb KEITHLEY\ + +\f2\i Working left and right Ctrl, Alt (Option), Meta (Command) and Shift keys. +\f0\i0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural + +\f1\b \cf0 \ \f1\b \cf0 Contributors to XFree86 4.4: \f0\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural @@ -158,4 +168,4 @@ \f0\i0 \ Torrey T. Lyons\ -\f2\i Integra\'8d\'8bo dentro do Projeto XFree86 na vers\'8bo 4.0.2} \ No newline at end of file +\f2\i Integra\'8d\'8bo dentro do Projeto XFree86 na vers\'8bo 4.0.2} Index: xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/Imakefile diff -u xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/Imakefile:1.2 xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/Imakefile:1.3 --- xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/Imakefile:1.2 Tue Jul 16 21:24:58 2002 +++ xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/Imakefile Sat Apr 21 20:37:19 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/Imakefile,v 1.2 2002/07/17 01:24:58 torrey Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/Imakefile,v 1.3 2007/04/22 00:37:19 tsi Exp $ #include @@ -23,3 +23,9 @@ clean:: RemoveFiles(InfoPlist.strings) + +SYMLINKDIR = ../../symlinks/Portuguese.lproj + +BundleSymbolicLink($(SYMLINKDIR),.,Localizable.strings) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/classes.nib) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/objects.nib) Index: xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/XDarwinHelp.html.cpp diff -u xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/XDarwinHelp.html.cpp:1.1 xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/XDarwinHelp.html.cpp:1.2 --- xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/XDarwinHelp.html.cpp:1.1 Fri Jan 25 01:46:46 2002 +++ xc/programs/Xserver/hw/darwin/bundle/Portuguese.lproj/XDarwinHelp.html.cpp Tue Feb 27 11:57:42 2007 @@ -1,4 +1,4 @@ - + #include "xf86Version.h" #ifndef PRE_RELEASE @@ -28,17 +28,22 @@

Notas importantes

-
#if PRE_RELEASE Essa é uma versão pré-lancamento +
+#if PRE_RELEASE + Essa é uma versão pré-lancamento do XFree86, e ela não é suportada de nenhuma forma. Bugs podem ser reportados e correções podem ser enviadas para Página do projeto XonX no SourceForge. Antes de informar bugs em versões pré-lancamento, por favor verifique a þltima versão em XonX or no Repositório CVS do XFree86. - #else Se o servidor é mais velho que 6-12 semanas, ou seu hardware é +#else + Se o servidor é mais velho que 6-12 semanas, ou seu hardware é mais novo que a data acima, procure por uma nova versão antes de informar problemas. Bugs podem ser reportados e correções podem ser enviadas para a Página do projeto - XonX na SourceForge. #endif
+ XonX na SourceForge. +#endif +
Este software é distribuído sob os termos da licença MIT X11 / X Consortium e é provido, sem nenhuma garantia. Por favor leia a Licença antes de começar a usar Index: xc/programs/Xserver/hw/darwin/bundle/Spanish.lproj/Credits.rtf diff -u xc/programs/Xserver/hw/darwin/bundle/Spanish.lproj/Credits.rtf:1.6 xc/programs/Xserver/hw/darwin/bundle/Spanish.lproj/Credits.rtf:1.8 --- xc/programs/Xserver/hw/darwin/bundle/Spanish.lproj/Credits.rtf:1.6 Wed Feb 25 14:36:23 2004 +++ xc/programs/Xserver/hw/darwin/bundle/Spanish.lproj/Credits.rtf Mon Apr 2 20:21:08 2007 @@ -5,10 +5,20 @@ \vieww5160\viewh6300\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ +\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc +\f1\b \cf0 Contributors to XFree86 4.7: +\f0\b0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural +\cf0 Kaleb KEITHLEY\ + +\f2\i Working left and right Ctrl, Alt (Option), Meta (Command) and Shift keys. +\f0\i0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural + +\f1\b \cf0 \ \f1\b \cf0 Contributors to XFree86 4.4: \f0\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural @@ -155,4 +165,4 @@ \f0\i0 \ Torrey T. Lyons\ -\f2\i Integration into XFree86 Project for 4.0.2} \ No newline at end of file +\f2\i Integration into XFree86 Project for 4.0.2} Index: xc/programs/Xserver/hw/darwin/bundle/Spanish.lproj/Imakefile diff -u xc/programs/Xserver/hw/darwin/bundle/Spanish.lproj/Imakefile:1.2 xc/programs/Xserver/hw/darwin/bundle/Spanish.lproj/Imakefile:1.3 --- xc/programs/Xserver/hw/darwin/bundle/Spanish.lproj/Imakefile:1.2 Tue Jul 16 21:24:58 2002 +++ xc/programs/Xserver/hw/darwin/bundle/Spanish.lproj/Imakefile Sat Apr 21 20:37:19 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/Spanish.lproj/Imakefile,v 1.2 2002/07/17 01:24:58 torrey Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/Spanish.lproj/Imakefile,v 1.3 2007/04/22 00:37:19 tsi Exp $ #include @@ -23,3 +23,9 @@ clean:: RemoveFiles(InfoPlist.strings) + +SYMLINKDIR = ../../symlinks/Spanish.lproj + +BundleSymbolicLink($(SYMLINKDIR),.,Localizable.strings) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/classes.nib) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/objects.nib) Index: xc/programs/Xserver/hw/darwin/bundle/Swedish.lproj/Credits.rtf diff -u xc/programs/Xserver/hw/darwin/bundle/Swedish.lproj/Credits.rtf:1.6 xc/programs/Xserver/hw/darwin/bundle/Swedish.lproj/Credits.rtf:1.8 --- xc/programs/Xserver/hw/darwin/bundle/Swedish.lproj/Credits.rtf:1.6 Wed Feb 25 14:36:23 2004 +++ xc/programs/Xserver/hw/darwin/bundle/Swedish.lproj/Credits.rtf Mon Apr 2 20:21:08 2007 @@ -5,10 +5,20 @@ \vieww5160\viewh6300\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ +\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc +\f1\b \cf0 Contributors to XFree86 4.7: +\f0\b0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural +\cf0 Kaleb KEITHLEY\ + +\f2\i Working left and right Ctrl, Alt (Option), Meta (Command) and Shift keys. +\f0\i0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural + +\f1\b \cf0 \ \f1\b \cf0 Contributors to XFree86 4.4: \f0\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural @@ -155,4 +165,4 @@ \f0\i0 \ Torrey T. Lyons\ -\f2\i Integration into XFree86 Project for 4.0.2} \ No newline at end of file +\f2\i Integration into XFree86 Project for 4.0.2} Index: xc/programs/Xserver/hw/darwin/bundle/Swedish.lproj/Imakefile diff -u xc/programs/Xserver/hw/darwin/bundle/Swedish.lproj/Imakefile:1.3 xc/programs/Xserver/hw/darwin/bundle/Swedish.lproj/Imakefile:1.4 --- xc/programs/Xserver/hw/darwin/bundle/Swedish.lproj/Imakefile:1.3 Tue Jul 16 21:24:59 2002 +++ xc/programs/Xserver/hw/darwin/bundle/Swedish.lproj/Imakefile Sat Apr 21 20:37:19 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/Swedish.lproj/Imakefile,v 1.3 2002/07/17 01:24:59 torrey Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/Swedish.lproj/Imakefile,v 1.4 2007/04/22 00:37:19 tsi Exp $ #include @@ -23,3 +23,9 @@ clean:: RemoveFiles(InfoPlist.strings) + +SYMLINKDIR = ../../symlinks/Swedish.lproj + +BundleSymbolicLink($(SYMLINKDIR),.,Localizable.strings) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/classes.nib) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/objects.nib) Index: xc/programs/Xserver/hw/darwin/bundle/ko.lproj/Credits.rtf diff -u xc/programs/Xserver/hw/darwin/bundle/ko.lproj/Credits.rtf:1.6 xc/programs/Xserver/hw/darwin/bundle/ko.lproj/Credits.rtf:1.8 --- xc/programs/Xserver/hw/darwin/bundle/ko.lproj/Credits.rtf:1.6 Wed Feb 25 14:36:24 2004 +++ xc/programs/Xserver/hw/darwin/bundle/ko.lproj/Credits.rtf Mon Apr 2 20:21:08 2007 @@ -5,10 +5,20 @@ \vieww5160\viewh6300\viewkind0 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural -\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ +\f0\fs24 \cf0 This product includes software developed by The XFree86 Project, Inc (http://www.xfree86.org/) and its contributors. The following people contributed to Darwin/Mac OS X support.\ \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc +\f1\b \cf0 Contributors to XFree86 4.7: +\f0\b0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural +\cf0 Kaleb KEITHLEY\ + +\f2\i Working left and right Ctrl, Alt (Option), Meta (Command) and Shift keys. +\f0\i0 \ +\pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural + +\f1\b \cf0 \ \f1\b \cf0 Contributors to XFree86 4.4: \f0\b0 \ \pard\tx1440\tx2880\tx4320\tx5760\tx7200\ql\qnatural @@ -155,4 +165,4 @@ \f0\i0 \ Torrey T. Lyons\ -\f2\i Integration into XFree86 Project for 4.0.2} \ No newline at end of file +\f2\i Integration into XFree86 Project for 4.0.2} Index: xc/programs/Xserver/hw/darwin/bundle/ko.lproj/Imakefile diff -u xc/programs/Xserver/hw/darwin/bundle/ko.lproj/Imakefile:1.2 xc/programs/Xserver/hw/darwin/bundle/ko.lproj/Imakefile:1.3 --- xc/programs/Xserver/hw/darwin/bundle/ko.lproj/Imakefile:1.2 Tue Jul 16 21:25:00 2002 +++ xc/programs/Xserver/hw/darwin/bundle/ko.lproj/Imakefile Sat Apr 21 20:37:19 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/ko.lproj/Imakefile,v 1.2 2002/07/17 01:25:00 torrey Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/bundle/ko.lproj/Imakefile,v 1.3 2007/04/22 00:37:19 tsi Exp $ #include @@ -23,3 +23,9 @@ clean:: RemoveFiles(InfoPlist.strings) + +SYMLINKDIR = ../../symlinks/ko.lproj + +BundleSymbolicLink($(SYMLINKDIR),.,Localizable.strings) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/classes.nib) +BundleSymbolicLink($(SYMLINKDIR),MainMenu.nib,MainMenu.nib/objects.nib) Index: xc/programs/Xserver/hw/darwin/iokit/xfIOKit.c diff -u xc/programs/Xserver/hw/darwin/iokit/xfIOKit.c:1.5 xc/programs/Xserver/hw/darwin/iokit/xfIOKit.c:1.7 --- xc/programs/Xserver/hw/darwin/iokit/xfIOKit.c:1.5 Fri Oct 14 11:16:23 2005 +++ xc/programs/Xserver/hw/darwin/iokit/xfIOKit.c Mon Apr 2 20:21:08 2007 @@ -33,7 +33,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/iokit/xfIOKit.c,v 1.5 2005/10/14 15:16:23 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/iokit/xfIOKit.c,v 1.7 2007/04/03 00:21:08 tsi Exp $ */ #include #include @@ -59,7 +59,7 @@ #include #include #include -#include +#include // Define this to work around bugs in the display drivers for // older PowerBook G3's. If the X server starts without this @@ -651,7 +651,7 @@ */ void DarwinModeInitOutput( int argc, - char **argv) + const char **argv) { static unsigned long generation = 0; kern_return_t kr; @@ -740,7 +740,7 @@ */ void DarwinModeInitInput( int argc, - char **argv) + const char **argv) { kern_return_t kr; int fd[2]; Index: xc/programs/Xserver/hw/darwin/iokit/xfIOKit.h diff -u xc/programs/Xserver/hw/darwin/iokit/xfIOKit.h:1.1 xc/programs/Xserver/hw/darwin/iokit/xfIOKit.h:1.3 --- xc/programs/Xserver/hw/darwin/iokit/xfIOKit.h:1.1 Wed May 14 01:27:56 2003 +++ xc/programs/Xserver/hw/darwin/iokit/xfIOKit.h Mon Apr 2 20:21:08 2007 @@ -28,14 +28,14 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/iokit/xfIOKit.h,v 1.1 2003/05/14 05:27:56 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/iokit/xfIOKit.h,v 1.3 2007/04/03 00:21:08 tsi Exp $ */ #ifndef _XFIOKIT_H #define _XFIOKIT_H #include #include -#include "X11/Xproto.h" +#include #include "screenint.h" #include "darwin.h" @@ -47,7 +47,7 @@ } XFIOKitScreenRec, *XFIOKitScreenPtr; #define XFIOKIT_SCREEN_PRIV(pScreen) \ - ((XFIOKitScreenPtr)pScreen->devPrivates[xfIOKitScreenIndex].ptr) + pScreen->devPrivates[xfIOKitScreenIndex].ptr extern int xfIOKitScreenIndex; // index into pScreen.devPrivates extern io_connect_t xfIOKitInputConnect; Index: xc/programs/Xserver/hw/darwin/iokit/xfIOKitCursor.c diff -u xc/programs/Xserver/hw/darwin/iokit/xfIOKitCursor.c:1.1 xc/programs/Xserver/hw/darwin/iokit/xfIOKitCursor.c:1.2 --- xc/programs/Xserver/hw/darwin/iokit/xfIOKitCursor.c:1.1 Wed May 14 01:27:56 2003 +++ xc/programs/Xserver/hw/darwin/iokit/xfIOKitCursor.c Mon Apr 2 20:21:08 2007 @@ -57,7 +57,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/iokit/xfIOKitCursor.c,v 1.1 2003/05/14 05:27:56 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/iokit/xfIOKitCursor.c,v 1.2 2007/04/03 00:21:08 tsi Exp $ */ #include "scrnintstr.h" #include "cursorstr.h" @@ -477,19 +477,19 @@ if (dfb->bitsPerPixel == 8) { cursorPrivPtr newCursor = (cursorPrivPtr) pCursor->devPriv[pScreen->myNum]; - memcpy(cshmem->cursor.bw8.image[0], newCursor->image, + memcpy((void *)cshmem->cursor.bw8.image[0], newCursor->image, CURSORWIDTH*CURSORHEIGHT); - memcpy(cshmem->cursor.bw8.mask[0], newCursor->mask, + memcpy((void *)cshmem->cursor.bw8.mask[0], newCursor->mask, CURSORWIDTH*CURSORHEIGHT); } else if (dfb->bitsPerPixel == 16) { unsigned short *newCursor = (unsigned short *) pCursor->devPriv[pScreen->myNum]; - memcpy(cshmem->cursor.rgb.image[0], newCursor, + memcpy((void *)cshmem->cursor.rgb.image[0], newCursor, 2*CURSORWIDTH*CURSORHEIGHT); } else { unsigned int *newCursor = (unsigned int *) pCursor->devPriv[pScreen->myNum]; - memcpy(cshmem->cursor.rgb24.image[0], newCursor, + memcpy((void *)cshmem->cursor.rgb24.image[0], newCursor, 4*CURSORWIDTH*CURSORHEIGHT); } Index: xc/programs/Xserver/hw/darwin/iokit/xfIOKitStartup.c diff -u xc/programs/Xserver/hw/darwin/iokit/xfIOKitStartup.c:1.2 xc/programs/Xserver/hw/darwin/iokit/xfIOKitStartup.c:1.4 --- xc/programs/Xserver/hw/darwin/iokit/xfIOKitStartup.c:1.2 Sat Nov 1 03:13:08 2003 +++ xc/programs/Xserver/hw/darwin/iokit/xfIOKitStartup.c Mon Apr 2 20:21:08 2007 @@ -4,7 +4,7 @@ * **************************************************************/ /* - * Copyright (c) 2001-2003 Torrey T. Lyons. All Rights Reserved. + * Copyright (c) 2001-2004 Torrey T. Lyons. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -28,13 +28,13 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/iokit/xfIOKitStartup.c,v 1.2 2003/11/01 08:13:08 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/iokit/xfIOKitStartup.c,v 1.4 2007/04/03 00:21:08 tsi Exp $ */ #include "darwin.h" #include "darwinKeyboard.h" #include "micmap.h" -void GlxExtensionInit(void); +void GlxExtensionInit(INITARGS); void GlxWrapInitVisuals(miInitVisualsProcPtr *procPtr); @@ -45,7 +45,7 @@ */ void DarwinHandleGUI( int argc, - char *argv[], + const char *argv[], char *envp[] ) { } @@ -56,7 +56,7 @@ * Initialize the GLX extension. * Mesa is linked into the IOKit mode X server so we just call directly. */ -void DarwinGlxExtensionInit(void) +void DarwinGlxExtensionInit(INITARGS) { GlxExtensionInit(); } @@ -78,7 +78,7 @@ */ int DarwinModeProcessArgument( int argc, - char *argv[], + const char *argv[], int i) { #ifdef DARWIN_WITH_QUARTZ @@ -105,6 +105,17 @@ /* + * DarwinModeSystemKeymapSeed + * Changes to NXKeyMapping are not tracked. + */ +unsigned int +DarwinModeSystemKeymapSeed(void) +{ + return 0; +} + + +/* * DarwinModeReadSystemKeymap * IOKit has no alternative to NXKeyMapping API. */ Index: xc/programs/Xserver/hw/darwin/quartz/Imakefile diff -u xc/programs/Xserver/hw/darwin/quartz/Imakefile:1.14 xc/programs/Xserver/hw/darwin/quartz/Imakefile:1.18 --- xc/programs/Xserver/hw/darwin/quartz/Imakefile:1.14 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/Imakefile Tue May 22 13:01:29 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/quartz/Imakefile,v 1.14 2005/10/14 15:16:24 tsi Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/quartz/Imakefile,v 1.18 2007/05/22 17:01:29 tsi Exp $ #include #define IHaveSubdirs @@ -38,18 +38,16 @@ CUSTOMVERDEF = -DXF86_CUSTOM_VERSION='$(CUSTOMVERSION)' #endif +CONFIGURATION=`if [ "\`$(PROJ_BUILD) -help 2>&1 | grep buildstyle\`" ]; then echo buildstyle; else echo configuration; fi` + #if XFree86Devel -BUILDSTYLE = -buildstyle Development +BUILDSTYLE = -$(CONFIGURATION) Development DEBUGDEFINES = -DROOTLESSDEBUG #else -BUILDSTYLE = -buildstyle Deployment +BUILDSTYLE = -$(CONFIGURATION) Deployment #endif -#if OSMajorVersion >= 7 -PROJ_TARGET = -project XDarwin.pbproj -target XDarwin -#else PROJ_TARGET = -target XDarwin -#endif #if (OSMajorVersion == 1 && OSMinorVersion >= 4) || OSMajorVersion >= 5 QUARTZDEFINES = -DHAS_CG_MACH_PORT @@ -90,12 +88,25 @@ -(cd $(DESTDIR)$(BINDIR); $(RM) X; $(LN) XDarwinStartup X) AllTarget(XDarwin) + +/* + * $(PROJ_BUILD) doesn't follow all symbolic links. + */ XDarwin: + cd ../bundle && $(MAKE) unsymlink $(PROJ_BUILD) $(PROJ_TARGET) $(BUILDSTYLE) + cd ../bundle && $(MAKE) resymlink + $(RM) -r ../symlinks +/* + * $(PROJ_BUILD) doesn't follow all symbolic links. + */ install:: + cd ../bundle && $(MAKE) unsymlink $(PROJ_BUILD) install $(PROJ_TARGET) $(BUILDSTYLE) \ DSTROOT=$(DESTDIR)$(XDARWINROOT) + cd ../bundle && $(MAKE) resymlink + $(RM) -r ../symlinks InstallManPage(XDarwinStartup,$(MANDIR)) Index: xc/programs/Xserver/hw/darwin/quartz/XServer.m diff -u xc/programs/Xserver/hw/darwin/quartz/XServer.m:1.25 xc/programs/Xserver/hw/darwin/quartz/XServer.m:1.26 --- xc/programs/Xserver/hw/darwin/quartz/XServer.m:1.25 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/XServer.m Mon Apr 2 20:21:09 2007 @@ -8,7 +8,7 @@ // /* * Copyright (c) 2001 Andreas Monitzer. All Rights Reserved. - * Copyright (c) 2002-2003 Torrey T. Lyons. All Rights Reserved. + * Copyright (c) 2002-2005 Torrey T. Lyons. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the @@ -34,7 +34,7 @@ * sale, use or other dealings in this Software without prior written * authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/XServer.m,v 1.25 2005/10/14 15:16:24 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/XServer.m,v 1.26 2007/04/03 00:21:09 tsi Exp $ */ #include "quartzCommon.h" @@ -90,8 +90,6 @@ { NULL, shell_Unknown } }; -extern int argcGlobal; -extern char **argvGlobal; extern char **envpGlobal; extern int main(int argc, char *argv[], char *envp[]); extern void HideMenuBar(void); @@ -257,18 +255,17 @@ switch (type) { case NSLeftMouseUp: - [self getMousePosition:&xe fromEvent:anEvent]; if (quartzRootless && !mouse1Pressed) { // MouseUp after MouseDown in menu - ignore return NO; } mouse1Pressed = NO; + [self getMousePosition:&xe fromEvent:anEvent]; xe.u.u.type = ButtonRelease; xe.u.u.detail = 1; break; case NSLeftMouseDown: - [self getMousePosition:&xe fromEvent:anEvent]; if (quartzRootless) { // Check that event is in X11 window if (!quartzProcs->IsX11Window([anEvent window], @@ -283,35 +280,51 @@ } } mouse1Pressed = YES; + [self getMousePosition:&xe fromEvent:anEvent]; xe.u.u.type = ButtonPress; xe.u.u.detail = 1; break; - case NSMouseMoved: - case NSLeftMouseDragged: - case NSRightMouseDragged: - case NSOtherMouseDragged: + case NSRightMouseUp: [self getMousePosition:&xe fromEvent:anEvent]; - xe.u.u.type = MotionNotify; + xe.u.u.type = ButtonRelease; + xe.u.u.detail = 3; break; - case NSSystemDefined: + case NSRightMouseDown: + [self getMousePosition:&xe fromEvent:anEvent]; + xe.u.u.type = ButtonPress; + xe.u.u.detail = 3; + break; + + case NSOtherMouseUp: { - long hwButtons = [anEvent data2]; + int hwButton = [anEvent buttonNumber]; - if (![anEvent subtype]==7) - return NO; // we only use multibutton mouse events - if (mouseState == hwButtons) - return NO; // ignore double events - mouseState = hwButtons; + [self getMousePosition:&xe fromEvent:anEvent]; + xe.u.u.type = ButtonRelease; + xe.u.u.detail = (hwButton == 2) ? hwButton : hwButton + 1; + break; + } + + case NSOtherMouseDown: + { + int hwButton = [anEvent buttonNumber]; [self getMousePosition:&xe fromEvent:anEvent]; - xe.u.u.type = kXDarwinUpdateButtons; - xe.u.clientMessage.u.l.longs0 = [anEvent data1]; - xe.u.clientMessage.u.l.longs1 =[anEvent data2]; + xe.u.u.type = ButtonPress; + xe.u.u.detail = (hwButton == 2) ? hwButton : hwButton + 1; break; } + case NSMouseMoved: + case NSLeftMouseDragged: + case NSRightMouseDragged: + case NSOtherMouseDragged: + [self getMousePosition:&xe fromEvent:anEvent]; + xe.u.u.type = MotionNotify; + break; + case NSScrollWheel: [self getMousePosition:&xe fromEvent:anEvent]; xe.u.u.type = kXDarwinScrollWheel; @@ -817,7 +830,7 @@ snprintf(buf, sizeof(buf), ":%s", display); setenv("DISPLAY", buf, TRUE); tem = getenv("PATH"); - if (tem != NULL && tem[0] != NULL) + if (tem != NULL && tem[0] != '\0') snprintf(buf, sizeof(buf), "%s:/usr/X11R6/bin", tem); else snprintf(buf, sizeof(buf), "/bin:/usr/bin:/usr/X11R6/bin"); @@ -843,7 +856,7 @@ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; [serverLock lock]; - main(argcGlobal, argvGlobal, envpGlobal); + main(argcGlobal, (char **)argvGlobal, envpGlobal); serverVisible = NO; [pool release]; [serverLock unlock]; Index: xc/programs/Xserver/hw/darwin/quartz/applewm.c diff -u xc/programs/Xserver/hw/darwin/quartz/applewm.c:1.4 xc/programs/Xserver/hw/darwin/quartz/applewm.c:1.5 --- xc/programs/Xserver/hw/darwin/quartz/applewm.c:1.4 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/applewm.c Mon Apr 2 20:21:09 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/applewm.c,v 1.4 2005/10/14 15:16:24 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/applewm.c,v 1.5 2007/04/03 00:21:09 tsi Exp $ */ /************************************************************************** Copyright (c) 2002 Apple Computer, Inc. All Rights Reserved. @@ -40,6 +40,7 @@ #include "windowstr.h" #include "servermd.h" #include "swaprep.h" +#include "propertyst.h" #include #include "darwin.h" #define _APPLEWM_SERVER_ @@ -58,6 +59,7 @@ } DEFINE_ATOM_HELPER(xa_native_screen_origin, "_NATIVE_SCREEN_ORIGIN") +DEFINE_ATOM_HELPER(xa_apple_no_order_in, "_APPLE_NO_ORDER_IN") static AppleWMProcsPtr appleWMProcs; @@ -152,6 +154,29 @@ 32, PropModeReplace, 2, data, TRUE); } +/* Window managers can set the _APPLE_NO_ORDER_IN property on windows + that are being genie-restored from the Dock. We want them to + be mapped but remain ordered-out until the animation + completes (when the Dock will order them in). */ +Bool +AppleWMDoReorderWindow( + WindowPtr pWin +) +{ + Atom atom; + PropertyPtr prop; + + atom = xa_apple_no_order_in(); + for (prop = wUserProps(pWin); prop != NULL; prop = prop->next) + { + if (prop->propertyName == atom && prop->type == atom) + return FALSE; + } + + return TRUE; +} + + static int ProcAppleWMQueryVersion( register ClientPtr client @@ -572,7 +597,7 @@ { BoxRec ir, or; unsigned int title_length, title_max; - unsigned char *title_bytes; + char *title_bytes; REQUEST(xAppleWMFrameDrawReq); WindowPtr pWin; @@ -593,7 +618,7 @@ if (title_max < title_length) return BadValue; - title_bytes = (unsigned char *) &stuff[1]; + title_bytes = (char *) &stuff[1]; errno = appleWMProcs->FrameDraw(pWin, stuff->frame_class, stuff->frame_attr, &or, &ir, Index: xc/programs/Xserver/hw/darwin/quartz/applewmExt.h diff -u xc/programs/Xserver/hw/darwin/quartz/applewmExt.h:1.4 xc/programs/Xserver/hw/darwin/quartz/applewmExt.h:1.5 --- xc/programs/Xserver/hw/darwin/quartz/applewmExt.h:1.4 Tue Apr 12 19:20:01 2005 +++ xc/programs/Xserver/hw/darwin/quartz/applewmExt.h Mon Apr 2 20:21:09 2007 @@ -4,7 +4,7 @@ /************************************************************************** Copyright (c) 2002 Apple Computer, Inc. All Rights Reserved. -Copyright (c) 2003 Torrey T. Lyons. All Rights Reserved. +Copyright (c) 2003-2004 Torrey T. Lyons. All Rights Reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -27,7 +27,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. **************************************************************************/ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/applewmExt.h,v 1.4 2005/04/12 23:20:01 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/applewmExt.h,v 1.5 2007/04/03 00:21:09 tsi Exp $ */ #ifndef _APPLEWMEXT_H_ #define _APPLEWMEXT_H_ @@ -44,8 +44,7 @@ const BoxRec *inner, int *ret); typedef int (*FrameDrawProc)(WindowPtr pWin, int class, unsigned int attr, const BoxRec *outer, const BoxRec *inner, - unsigned int title_len, - const unsigned char *title_bytes); + unsigned int title_len, const char *title_bytes); /* * AppleWM implementation function list @@ -67,6 +66,10 @@ WindowPtr pWin ); +Bool AppleWMDoReorderWindow( + WindowPtr pWin +); + void AppleWMSendEvent( int /* type */, unsigned int /* mask */, Index: xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.c diff -u xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.c:1.5 xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.c:1.6 --- xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.c:1.5 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.c Wed Jan 3 21:48:12 2007 @@ -32,7 +32,7 @@ dealings in this Software without prior written authorization from Digital Equipment Corporation. ******************************************************************/ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.c,v 1.5 2005/10/14 15:16:24 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.c,v 1.6 2007/01/04 02:48:12 tsi Exp $ */ #include "pseudoramiX.h" @@ -104,7 +104,7 @@ // Initialize PseudoramiX. // Copied from PanoramiXExtensionInit -void PseudoramiXExtensionInit(int argc, char *argv[]) +void PseudoramiXExtensionInit(INITARGS) { Bool success = FALSE; ExtensionEntry *extEntry; Index: xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.h diff -u xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.h:1.3 xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.h:1.4 --- xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.h:1.3 Thu Jul 1 21:30:33 2004 +++ xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.h Wed Jan 3 21:48:12 2007 @@ -1,10 +1,17 @@ /* * Minimal implementation of PanoramiX/Xinerama */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.h,v 1.3 2004/07/02 01:30:33 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/pseudoramiX.h,v 1.4 2007/01/04 02:48:12 tsi Exp $ */ + +#ifndef _PSEUDORAMIX_H_ +#define _PSEUDORAMIX_H_ 1 + +#include "extnsionst.h" extern int noPseudoramiXExtension; void PseudoramiXAddScreen(int x, int y, int w, int h); -void PseudoramiXExtensionInit(int argc, char *argv[]); +void PseudoramiXExtensionInit(INITARGS); void PseudoramiXResetScreens(void); + +#endif Index: xc/programs/Xserver/hw/darwin/quartz/quartz.c diff -u xc/programs/Xserver/hw/darwin/quartz/quartz.c:1.17 xc/programs/Xserver/hw/darwin/quartz/quartz.c:1.18 --- xc/programs/Xserver/hw/darwin/quartz/quartz.c:1.17 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/quartz.c Wed Jan 3 21:48:12 2007 @@ -29,7 +29,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartz.c,v 1.17 2005/10/14 15:16:24 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartz.c,v 1.18 2007/01/04 02:48:12 tsi Exp $ */ #include "quartzCommon.h" #include "quartz.h" @@ -118,7 +118,7 @@ */ void DarwinModeInitOutput( int argc, - char **argv ) + const char **argv ) { static unsigned long generation = 0; @@ -146,7 +146,7 @@ // This should be in InitExtensions, but that causes link errors // for servers that don't link in pseudoramiX.c. if (!noPseudoramiXExtension) { - PseudoramiXExtensionInit(argc, argv); + PseudoramiXExtensionInit(); } } @@ -157,7 +157,7 @@ */ void DarwinModeInitInput( int argc, - char **argv ) + const char **argv ) { QuartzMessageMainThread(kQuartzServerStarted, NULL, 0); Index: xc/programs/Xserver/hw/darwin/quartz/quartz.h diff -u xc/programs/Xserver/hw/darwin/quartz/quartz.h:1.10 xc/programs/Xserver/hw/darwin/quartz/quartz.h:1.11 --- xc/programs/Xserver/hw/darwin/quartz/quartz.h:1.10 Thu Jul 15 14:53:25 2004 +++ xc/programs/Xserver/hw/darwin/quartz/quartz.h Wed Jan 3 21:48:12 2007 @@ -30,7 +30,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartz.h,v 1.10 2004/07/15 18:53:25 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartz.h,v 1.11 2007/01/04 02:48:12 tsi Exp $ */ #ifndef _QUARTZ_H #define _QUARTZ_H @@ -50,7 +50,7 @@ typedef void (*DisplayInitProc)(void); typedef Bool (*AddScreenProc)(int index, ScreenPtr pScreen); typedef Bool (*SetupScreenProc)(int index, ScreenPtr pScreen); -typedef void (*InitInputProc)(int argc, char **argv); +typedef void (*InitInputProc)(int argc, const char **argv); /* * Cursor functions Index: xc/programs/Xserver/hw/darwin/quartz/quartzAudio.c diff -u xc/programs/Xserver/hw/darwin/quartz/quartzAudio.c:1.3 xc/programs/Xserver/hw/darwin/quartz/quartzAudio.c:1.4 --- xc/programs/Xserver/hw/darwin/quartz/quartzAudio.c:1.3 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/quartzAudio.c Tue Feb 27 11:51:25 2007 @@ -35,7 +35,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzAudio.c,v 1.3 2005/10/14 15:16:24 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzAudio.c,v 1.4 2007/02/27 16:51:25 tsi Exp $ */ #include "quartzCommon.h" #include "quartzAudio.h" @@ -232,7 +232,7 @@ OSStatus status; status = AudioDeviceStart(quartzAudioDevice, QuartzAudioIOProc); if (status) { - ErrorF("QuartzAudioBell: AudioDeviceStart returned %d\n", status); + ErrorF("QuartzAudioBell: AudioDeviceStart returned %ld\n", status); } else { data.playing = TRUE; } @@ -292,7 +292,7 @@ kAudioHardwarePropertyDefaultOutputDevice, &propertySize, &outputDevice); if (status) { - ErrorF("QuartzAudioInit: AudioHardwareGetProperty returned %d\n", + ErrorF("QuartzAudioInit: AudioHardwareGetProperty returned %ld\n", status); return; } @@ -307,7 +307,7 @@ kAudioDevicePropertyStreamFormat, &propertySize, &outputStreamDescription); if (status) { - ErrorF("QuartzAudioInit: GetProperty(stream format) returned %d\n", + ErrorF("QuartzAudioInit: GetProperty(stream format) returned %ld\n", status); return; } @@ -333,7 +333,7 @@ // Prepare for playback status = AudioDeviceAddIOProc(outputDevice, QuartzAudioIOProc, &data); if (status) { - ErrorF("QuartzAudioInit: AddIOProc returned %d\n", status); + ErrorF("QuartzAudioInit: AddIOProc returned %ld\n", status); return; } Index: xc/programs/Xserver/hw/darwin/quartz/quartzCocoa.m diff -u xc/programs/Xserver/hw/darwin/quartz/quartzCocoa.m:1.5 xc/programs/Xserver/hw/darwin/quartz/quartzCocoa.m:1.6 --- xc/programs/Xserver/hw/darwin/quartz/quartzCocoa.m:1.5 Tue Jun 8 18:58:10 2004 +++ xc/programs/Xserver/hw/darwin/quartz/quartzCocoa.m Mon Apr 2 20:21:09 2007 @@ -33,7 +33,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzCocoa.m,v 1.5 2004/06/08 22:58:10 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzCocoa.m,v 1.6 2007/04/03 00:21:09 tsi Exp $ */ #include "quartzCommon.h" @@ -181,9 +181,9 @@ * Clean out any autoreleased objects. */ void QuartzBlockHandler( - void *blockData, - void *pTimeout, - void *pReadmask) + void *blockData, + OSTimePtr pTimeout, + void *pReadmask) { static NSAutoreleasePool *aPool = nil; Index: xc/programs/Xserver/hw/darwin/quartz/quartzCommon.h diff -u xc/programs/Xserver/hw/darwin/quartz/quartzCommon.h:1.15 xc/programs/Xserver/hw/darwin/quartz/quartzCommon.h:1.16 --- xc/programs/Xserver/hw/darwin/quartz/quartzCommon.h:1.15 Tue Jun 8 18:58:10 2004 +++ xc/programs/Xserver/hw/darwin/quartz/quartzCommon.h Mon Apr 2 20:21:09 2007 @@ -31,11 +31,13 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzCommon.h,v 1.15 2004/06/08 22:58:10 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzCommon.h,v 1.16 2007/04/03 00:21:09 tsi Exp $ */ #ifndef _QUARTZCOMMON_H #define _QUARTZCOMMON_H +#include + // QuickDraw in ApplicationServices has the following conflicts with // the basic X server headers. Use QD_ to use the QuickDraw // definition of any of these symbols, or the normal name for the @@ -58,8 +60,7 @@ CGDirectDisplayID *displayIDs; } QuartzScreenRec, *QuartzScreenPtr; -#define QUARTZ_PRIV(pScreen) \ - ((QuartzScreenPtr)pScreen->devPrivates[quartzScreenIndex].ptr) +#define QUARTZ_PRIV(pScreen) pScreen->devPrivates[quartzScreenIndex].ptr // Data stored at startup for Cocoa front end extern int quartzEventWriteFD; @@ -88,7 +89,7 @@ void QuartzFSCapture(void); void QuartzFSRelease(void); int QuartzFSUseQDCursor(int depth); -void QuartzBlockHandler(void *blockData, void *pTimeout, void *pReadmask); +void QuartzBlockHandler(void *blockData, OSTimePtr pTimeout, void *pReadmask); void QuartzWakeupHandler(void *blockData, int result, void *pReadmask); // Messages that can be sent to the main thread. Index: xc/programs/Xserver/hw/darwin/quartz/quartzCursor.c diff -u xc/programs/Xserver/hw/darwin/quartz/quartzCursor.c:1.5 xc/programs/Xserver/hw/darwin/quartz/quartzCursor.c:1.6 --- xc/programs/Xserver/hw/darwin/quartz/quartzCursor.c:1.5 Wed Jan 22 19:34:26 2003 +++ xc/programs/Xserver/hw/darwin/quartz/quartzCursor.c Mon Apr 2 20:21:09 2007 @@ -29,7 +29,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzCursor.c,v 1.5 2003/01/23 00:34:26 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzCursor.c,v 1.6 2007/04/03 00:21:09 tsi Exp $ */ #include "quartzCommon.h" #include "quartzCursor.h" @@ -65,23 +65,24 @@ static pthread_mutex_t cursorMutex; static pthread_cond_t cursorCondition; -#define CURSOR_PRIV(pScreen) \ - ((QuartzCursorScreenPtr)pScreen->devPrivates[darwinCursorScreenIndex].ptr) +#define CURSOR_PRIV(pScreen) pScreen->devPrivates[darwinCursorScreenIndex].ptr #define HIDE_QD_CURSOR(pScreen, visible) \ if (visible) { \ + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); \ int ix; \ - for (ix = 0; ix < QUARTZ_PRIV(pScreen)->displayCount; ix++) { \ - CGDisplayHideCursor(QUARTZ_PRIV(pScreen)->displayIDs[ix]); \ + for (ix = 0; ix < pQuartzScreen->displayCount; ix++) { \ + CGDisplayHideCursor(pQuartzScreen->displayIDs[ix]); \ } \ visible = FALSE; \ } ((void)0) #define SHOW_QD_CURSOR(pScreen, visible) \ { \ + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); \ int ix; \ - for (ix = 0; ix < QUARTZ_PRIV(pScreen)->displayCount; ix++) { \ - CGDisplayShowCursor(QUARTZ_PRIV(pScreen)->displayIDs[ix]); \ + for (ix = 0; ix < pQuartzScreen->displayCount; ix++) { \ + CGDisplayShowCursor(pQuartzScreen->displayIDs[ix]); \ } \ visible = TRUE; \ } ((void)0) @@ -503,10 +504,11 @@ } if (quartzServerVisible) { + QuartzScreenPtr pQuartzScreen = QUARTZ_PRIV(pScreen); CGDisplayErr cgErr; CGPoint cgPoint; // Only need to do this for one display. Any display will do. - CGDirectDisplayID cgID = QUARTZ_PRIV(pScreen)->displayIDs[0]; + CGDirectDisplayID cgID = pQuartzScreen->displayIDs[0]; CGRect cgRect = CGDisplayBounds(cgID); // Convert (x,y) to CoreGraphics screen-local CG coordinates. Index: xc/programs/Xserver/hw/darwin/quartz/quartzCursor.h diff -u xc/programs/Xserver/hw/darwin/quartz/quartzCursor.h:1.1 xc/programs/Xserver/hw/darwin/quartz/quartzCursor.h:1.2 --- xc/programs/Xserver/hw/darwin/quartz/quartzCursor.h:1.1 Wed Mar 27 21:21:19 2002 +++ xc/programs/Xserver/hw/darwin/quartz/quartzCursor.h Mon Apr 2 20:21:09 2007 @@ -29,7 +29,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzCursor.h,v 1.1 2002/03/28 02:21:19 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzCursor.h,v 1.2 2007/04/03 00:21:09 tsi Exp $ */ #ifndef QUARTZCURSOR_H #define QUARTZCURSOR_H @@ -37,6 +37,7 @@ #include "screenint.h" Bool QuartzInitCursor(ScreenPtr pScreen); +void QuartzReallySetCursor(void); void QuartzSuspendXCursor(ScreenPtr pScreen); void QuartzResumeXCursor(ScreenPtr pScreen, int x, int y); Index: xc/programs/Xserver/hw/darwin/quartz/quartzKeyboard.c diff -u xc/programs/Xserver/hw/darwin/quartz/quartzKeyboard.c:1.5 xc/programs/Xserver/hw/darwin/quartz/quartzKeyboard.c:1.6 --- xc/programs/Xserver/hw/darwin/quartz/quartzKeyboard.c:1.5 Mon Jan 9 09:59:48 2006 +++ xc/programs/Xserver/hw/darwin/quartz/quartzKeyboard.c Mon Apr 2 20:21:09 2007 @@ -31,7 +31,7 @@ promote the sale, use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzKeyboard.c,v 1.5 2006/01/09 14:59:48 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzKeyboard.c,v 1.6 2007/04/03 00:21:09 tsi Exp $ */ #include "quartzCommon.h" @@ -146,7 +146,7 @@ }; unsigned int -DarwinSystemKeymapSeed (void) +DarwinModeSystemKeymapSeed (void) { static unsigned int seed; @@ -371,6 +371,12 @@ #else /* !HAS_KL_API */ +unsigned int +DarwinModeSystemKeymapSeed (void) +{ + return 0; +} + Bool DarwinModeReadSystemKeymap (darwinKeyboardInfo *info) { Index: xc/programs/Xserver/hw/darwin/quartz/quartzStartup.c diff -u xc/programs/Xserver/hw/darwin/quartz/quartzStartup.c:1.9 xc/programs/Xserver/hw/darwin/quartz/quartzStartup.c:1.12 --- xc/programs/Xserver/hw/darwin/quartz/quartzStartup.c:1.9 Fri Nov 14 19:07:09 2003 +++ xc/programs/Xserver/hw/darwin/quartz/quartzStartup.c Mon Apr 2 20:21:09 2007 @@ -4,7 +4,7 @@ * **************************************************************/ /* - * Copyright (c) 2001-2003 Torrey T. Lyons. All Rights Reserved. + * Copyright (c) 2001-2004 Torrey T. Lyons. All Rights Reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -28,7 +28,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzStartup.c,v 1.9 2003/11/15 00:07:09 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzStartup.c,v 1.12 2007/04/03 00:21:09 tsi Exp $ */ #include #include @@ -45,7 +45,7 @@ // are from dix/globals.c // GLX bundle function pointers -typedef void (*GlxExtensionInitPtr)(void); +typedef void (*GlxExtensionInitPtr)(INITARGS); static GlxExtensionInitPtr GlxExtensionInit = NULL; typedef void (*GlxWrapInitVisualsPtr)(miInitVisualsProcPtr *); @@ -64,7 +64,7 @@ */ void DarwinHandleGUI( int argc, - char *argv[], + const char *argv[], char *envp[] ) { static Bool been_here = FALSE; @@ -107,7 +107,7 @@ } } - main_exit = NSApplicationMain(argc, argv); + main_exit = NSApplicationMain(argc, (char **)argv); exit(main_exit); } @@ -234,7 +234,7 @@ * DarwinGlxExtensionInit * Initialize the GLX extension. */ -void DarwinGlxExtensionInit(void) +void DarwinGlxExtensionInit(INITARGS) { if (!GlxExtensionInit) LoadGlxBundle(); @@ -256,7 +256,7 @@ } -int DarwinModeProcessArgument( int argc, char *argv[], int i ) +int DarwinModeProcessArgument( int argc, const char *argv[], int i ) { // fullscreen: CoreGraphics full-screen mode // rootless: Cocoa rootless mode @@ -264,28 +264,16 @@ if ( !strcmp( argv[i], "-fullscreen" ) ) { ErrorF( "Running full screen in parallel with Mac OS X Quartz window server.\n" ); -#ifdef QUARTZ_SAFETY_DELAY - ErrorF( "Quitting in %d seconds if no controller is found.\n", - QUARTZ_SAFETY_DELAY ); -#endif return 1; } if ( !strcmp( argv[i], "-rootless" ) ) { ErrorF( "Running rootless inside Mac OS X window server.\n" ); -#ifdef QUARTZ_SAFETY_DELAY - ErrorF( "Quitting in %d seconds if no controller is found.\n", - QUARTZ_SAFETY_DELAY ); -#endif return 1; } if ( !strcmp( argv[i], "-quartz" ) ) { ErrorF( "Running in parallel with Mac OS X Quartz window server.\n" ); -#ifdef QUARTZ_SAFETY_DELAY - ErrorF( "Quitting in %d seconds if no controller is found.\n", - QUARTZ_SAFETY_DELAY ); -#endif return 1; } @@ -300,4 +288,4 @@ } return 0; -} \ No newline at end of file +} Index: xc/programs/Xserver/hw/darwin/quartz/XDarwin.pbproj/project.pbxproj diff -u xc/programs/Xserver/hw/darwin/quartz/XDarwin.pbproj/project.pbxproj:1.24 xc/programs/Xserver/hw/darwin/quartz/XDarwin.pbproj/project.pbxproj:1.26 --- xc/programs/Xserver/hw/darwin/quartz/XDarwin.pbproj/project.pbxproj:1.24 Tue Jun 8 18:51:23 2004 +++ xc/programs/Xserver/hw/darwin/quartz/XDarwin.pbproj/project.pbxproj Tue May 22 17:13:09 2007 @@ -63,8 +63,7 @@ sourceTree = ""; }; 015EDCEA004203A8CE6F79C2 = { - fallbackIsa = PBXFileReference; - isa = PBXFrameworkReference; + isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; @@ -197,7 +196,7 @@ 02E03CA100348209CE6F79C2 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.html; name = English; path = English.lproj/XDarwinHelp.html; refType = 4; @@ -291,7 +290,7 @@ 089C165DFE840E0CC02AAC07 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; refType = 4; @@ -309,8 +308,7 @@ //0A4 0A79E19E004499A1CE6F79C2 = { explicitFileType = wrapper.application; - fallbackIsa = PBXFileReference; - isa = PBXApplicationReference; + isa = PBXFileReference; path = XDarwin.app; refType = 3; sourceTree = BUILT_PRODUCTS_DIR; @@ -385,7 +383,7 @@ CFBundleExecutable XDarwin CFBundleGetInfoString - XDarwin 1.4a1, ©2001-2004 XFree86 Project, Inc. + XDarwin 1.5, ©2001-2007 XFree86 Project, Inc. CFBundleIconFile XDarwin.icns CFBundleIdentifier @@ -508,8 +506,7 @@ sourceTree = ""; }; 1058C7A1FEA54F0111CA2CBB = { - fallbackIsa = PBXFileReference; - isa = PBXFrameworkReference; + isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; @@ -699,7 +696,7 @@ 1BD8DE4700B8A3C77F000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = sourcecode.cpp.cpp; name = Japanese; path = Japanese.lproj/InfoPlist.strings.cpp; refType = 4; @@ -715,8 +712,7 @@ sourceTree = ""; }; 1BE4F84D0006C9890A000002 = { - fallbackIsa = PBXFileReference; - isa = PBXFrameworkReference; + isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; @@ -760,8 +756,6 @@ sourceTree = ""; }; 237A34C20076E37E7F000001 = { - buildRules = ( - ); buildSettings = { COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; @@ -775,8 +769,6 @@ name = Development; }; 237A34C30076E37E7F000001 = { - buildRules = ( - ); buildSettings = { COPY_PHASE_STRIP = YES; GCC_ENABLE_FIX_AND_CONTINUE = NO; @@ -922,8 +914,7 @@ sourceTree = ""; }; 29B97324FDCFA39411CA2CEA = { - fallbackIsa = PBXFileReference; - isa = PBXFrameworkReference; + isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; @@ -931,8 +922,7 @@ sourceTree = ""; }; 29B97325FDCFA39411CA2CEA = { - fallbackIsa = PBXFileReference; - isa = PBXFrameworkReference; + isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; @@ -1064,7 +1054,7 @@ 43B962E100617B49416877C2 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/InfoPlist.strings; refType = 4; @@ -1081,7 +1071,7 @@ 43B962E300617B93416877C2 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.html; name = Japanese; path = Japanese.lproj/XDarwinHelp.html; refType = 4; @@ -1188,8 +1178,7 @@ }; 6E11A985048BDFEE006877C2 = { explicitFileType = wrapper.cfbundle; - fallbackIsa = PBXFileReference; - isa = PBXBundleReference; + isa = PBXFileReference; path = glxCGL.bundle; refType = 3; sourceTree = BUILT_PRODUCTS_DIR; @@ -1197,7 +1186,35 @@ 6E11A986048BDFFB006877C2 = { isa = PBXTargetDependency; target = 6E11A984048BDFEE006877C2; - targetProxy = 6EF7158A0676791C00556977; + targetProxy = 6E4CAF650702464F001A7398; + }; + 6E4CAF630702464F001A7398 = { + containerPortal = 29B97313FDCFA39411CA2CEA; + isa = PBXContainerItemProxy; + proxyType = 1; + remoteGlobalIDString = 6EF7C58603D3BC6D00000104; + remoteInfo = glxAGL; + }; + 6E4CAF640702464F001A7398 = { + containerPortal = 29B97313FDCFA39411CA2CEA; + isa = PBXContainerItemProxy; + proxyType = 1; + remoteGlobalIDString = 6E79040F0500F05600EEC080; + remoteInfo = xpr; + }; + 6E4CAF650702464F001A7398 = { + containerPortal = 29B97313FDCFA39411CA2CEA; + isa = PBXContainerItemProxy; + proxyType = 1; + remoteGlobalIDString = 6E11A984048BDFEE006877C2; + remoteInfo = glxCGL; + }; + 6E4CAF660702464F001A7398 = { + containerPortal = 29B97313FDCFA39411CA2CEA; + isa = PBXContainerItemProxy; + proxyType = 1; + remoteGlobalIDString = 6EF065C503D4EE19006877C2; + remoteInfo = glxMesa; }; 6E5F5F0005537A1A008FEAD7 = { fileEncoding = 30; @@ -1406,8 +1423,7 @@ }; 6E7904100500F05600EEC080 = { explicitFileType = wrapper.cfbundle; - fallbackIsa = PBXFileReference; - isa = PBXBundleReference; + isa = PBXFileReference; path = xpr.bundle; refType = 3; sourceTree = BUILT_PRODUCTS_DIR; @@ -1415,7 +1431,7 @@ 6E7904110500F33B00EEC080 = { isa = PBXTargetDependency; target = 6E79040F0500F05600EEC080; - targetProxy = 6EF715890676791C00556977; + targetProxy = 6E4CAF640702464F001A7398; }; 6E97A0F2050798B100B8294C = { fileEncoding = 4; @@ -1815,8 +1831,7 @@ }; 6EF065C603D4EE19006877C2 = { explicitFileType = wrapper.cfbundle; - fallbackIsa = PBXFileReference; - isa = PBXBundleReference; + isa = PBXFileReference; path = glxMesa.bundle; refType = 3; sourceTree = BUILT_PRODUCTS_DIR; @@ -1824,12 +1839,12 @@ 6EF065C703D4EE19006877C2 = { isa = PBXTargetDependency; target = 6EF065C503D4EE19006877C2; - targetProxy = 6EF7158B0676791C00556977; + targetProxy = 6E4CAF660702464F001A7398; }; 6EF065C903D4F0CA006877C2 = { isa = PBXTargetDependency; target = 6EF7C58603D3BC6D00000104; - targetProxy = 6EF715880676791C00556977; + targetProxy = 6E4CAF630702464F001A7398; }; 6EF4719E04478B08006877C2 = { fileEncoding = 4; @@ -1879,34 +1894,6 @@ refType = 4; sourceTree = ""; }; - 6EF715880676791C00556977 = { - containerPortal = 29B97313FDCFA39411CA2CEA; - isa = PBXContainerItemProxy; - proxyType = 1; - remoteGlobalIDString = 6EF7C58603D3BC6D00000104; - remoteInfo = glxAGL; - }; - 6EF715890676791C00556977 = { - containerPortal = 29B97313FDCFA39411CA2CEA; - isa = PBXContainerItemProxy; - proxyType = 1; - remoteGlobalIDString = 6E79040F0500F05600EEC080; - remoteInfo = xpr; - }; - 6EF7158A0676791C00556977 = { - containerPortal = 29B97313FDCFA39411CA2CEA; - isa = PBXContainerItemProxy; - proxyType = 1; - remoteGlobalIDString = 6E11A984048BDFEE006877C2; - remoteInfo = glxCGL; - }; - 6EF7158B0676791C00556977 = { - containerPortal = 29B97313FDCFA39411CA2CEA; - isa = PBXContainerItemProxy; - proxyType = 1; - remoteGlobalIDString = 6EF065C503D4EE19006877C2; - remoteInfo = glxMesa; - }; 6EF7C58103D3BC6D00000104 = { buildActionMask = 2147483647; files = ( @@ -1997,8 +1984,7 @@ }; 6EF7C58703D3BC6D00000104 = { explicitFileType = wrapper.cfbundle; - fallbackIsa = PBXFileReference; - isa = PBXBundleReference; + isa = PBXFileReference; path = glxAGL.bundle; refType = 3; sourceTree = BUILT_PRODUCTS_DIR; @@ -2024,7 +2010,7 @@ F51BF62B02026DDA01000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.plist.strings; name = Portuguese; path = Portuguese.lproj/InfoPlist.strings; refType = 4; @@ -2033,7 +2019,7 @@ F51BF62C02026E0601000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = sourcecode.cpp.cpp; name = Portuguese; path = Portuguese.lproj/InfoPlist.strings.cpp; refType = 4; @@ -2059,7 +2045,7 @@ F51BF62F02026E5C01000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.html; name = Portuguese; path = Portuguese.lproj/XDarwinHelp.html; refType = 4; @@ -2101,7 +2087,7 @@ F533213A0193CBA201000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.plist.strings; name = German; path = German.lproj/InfoPlist.strings; refType = 4; @@ -2110,7 +2096,7 @@ F533213B0193CBB401000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = sourcecode.cpp.cpp; name = German; path = German.lproj/InfoPlist.strings.cpp; refType = 4; @@ -2136,7 +2122,7 @@ F533213E0193CBF401000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.html; name = German; path = German.lproj/XDarwinHelp.html; refType = 4; @@ -2152,8 +2138,7 @@ sourceTree = ""; }; F53321400193CCF001000001 = { - fallbackIsa = PBXFileReference; - isa = PBXFrameworkReference; + isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; @@ -2161,8 +2146,7 @@ sourceTree = ""; }; F53321410193CCF001000001 = { - fallbackIsa = PBXFileReference; - isa = PBXFrameworkReference; + isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; @@ -2180,7 +2164,7 @@ F533214301A4B3F001000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.plist.strings; name = Dutch; path = Dutch.lproj/InfoPlist.strings; refType = 4; @@ -2189,7 +2173,7 @@ F533214401A4B40F01000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = sourcecode.cpp.cpp; name = Dutch; path = Dutch.lproj/InfoPlist.strings.cpp; refType = 4; @@ -2215,7 +2199,7 @@ F533214701A4B48301000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.html; name = Dutch; path = Dutch.lproj/XDarwinHelp.html; refType = 4; @@ -2240,7 +2224,7 @@ }; F54BF6EC017D506E01000001 = { isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.script.sh; path = startXClients; refType = 4; sourceTree = ""; @@ -2289,7 +2273,7 @@ F587E16101924C2F01000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.plist.strings; name = Swedish; path = Swedish.lproj/InfoPlist.strings; refType = 4; @@ -2298,7 +2282,7 @@ F587E16201924C5301000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = sourcecode.cpp.cpp; name = Swedish; path = Swedish.lproj/InfoPlist.strings.cpp; refType = 4; @@ -2324,7 +2308,7 @@ F587E16501924C7401000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.html; name = Swedish; path = Swedish.lproj/XDarwinHelp.html; refType = 4; @@ -2350,7 +2334,7 @@ F58D65DC018F794D01000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = sourcecode.cpp.cpp; name = French; path = French.lproj/InfoPlist.strings.cpp; refType = 4; @@ -2359,7 +2343,7 @@ F58D65DD018F798F01000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.plist.strings; name = French; path = French.lproj/InfoPlist.strings; refType = 4; @@ -2385,7 +2369,7 @@ F58D65E0018F79C001000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.html; name = French; path = French.lproj/XDarwinHelp.html; refType = 4; @@ -2419,7 +2403,7 @@ F5ACD25DC5B5E97701000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = sourcecode.cpp.cpp; name = Spanish; path = Spanish.lproj/InfoPlist.strings.cpp; refType = 4; @@ -2454,7 +2438,7 @@ F5ACD261C5B5EA2001000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.html; name = Spanish; path = Spanish.lproj/XDarwinHelp.html; refType = 4; @@ -2463,7 +2447,7 @@ F5ACD262C5B5EA4D01000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.plist.strings; name = Spanish; path = Spanish.lproj/InfoPlist.strings; refType = 4; @@ -2480,7 +2464,7 @@ F5ACD264C5BE035B01000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = sourcecode.cpp.cpp; name = ko; path = ko.lproj/InfoPlist.strings.cpp; refType = 4; @@ -2515,7 +2499,7 @@ F5ACD268C5BE046401000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.html; name = ko; path = ko.lproj/XDarwinHelp.html; refType = 4; @@ -2524,7 +2508,7 @@ F5ACD269C5BE049301000001 = { fileEncoding = 30; isa = PBXFileReference; - lastKnownFileType = file; + lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; refType = 4; Index: xc/programs/Xserver/hw/darwin/quartz/XDarwin.xcodeproj/project.pbxproj diff -u /dev/null xc/programs/Xserver/hw/darwin/quartz/XDarwin.xcodeproj/project.pbxproj:1.2 --- /dev/null Sun Aug 12 22:01:36 2007 +++ xc/programs/Xserver/hw/darwin/quartz/XDarwin.xcodeproj/project.pbxproj Tue May 22 17:13:10 2007 @@ -0,0 +1,1494 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 42; + objects = { + +/* Begin PBXApplicationTarget section */ + 0A79E19F004499A1CE6F79C2 /* XDarwin */ = { + isa = PBXApplicationTarget; + buildConfigurationList = 010DB7440BB8A8DB003F8968 /* Build configuration list for PBXApplicationTarget "XDarwin" */; + buildPhases = ( + 0A79E1A0004499A1CE6F79C2 /* Headers */, + 0A79E1A1004499A1CE6F79C2 /* Resources */, + 0A79E1A2004499A1CE6F79C2 /* Sources */, + 0A79E1A3004499A1CE6F79C2 /* Frameworks */, + 0A79E1A4004499A1CE6F79C2 /* Rez */, + ); + dependencies = ( + 6EF065C903D4F0CA006877C2 /* PBXTargetDependency */, + 6EF065C703D4EE19006877C2 /* PBXTargetDependency */, + 6E11A986048BDFFB006877C2 /* PBXTargetDependency */, + 6E7904110500F33B00EEC080 /* PBXTargetDependency */, + ); + name = XDarwin; + productInstallPath = /; + productName = XDarwin; + productReference = 0A79E19E004499A1CE6F79C2 /* XDarwin.app */; + productSettingsXML = " + + + + CFBundleDevelopmentRegion + English + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + x11app + + CFBundleTypeName + X11 Application + CFBundleTypeOSTypes + + **** + + CFBundleTypeRole + Viewer + + + CFBundleTypeExtensions + + tool + * + + CFBundleTypeName + UNIX Application + CFBundleTypeOSTypes + + **** + + CFBundleTypeRole + Viewer + + + CFBundleExecutable + XDarwin + CFBundleGetInfoString + XDarwin 1.5, ©2001-2007 XFree86 Project, Inc. + CFBundleIconFile + XDarwin.icns + CFBundleIdentifier + org.xfree86.XDarwin + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + XDarwin + CFBundlePackageType + APPL + CFBundleShortVersionString + XDarwin 1.4a1 + CFBundleSignature + ???? + CFBundleVersion + + NSHelpFile + XDarwinHelp.html + NSMainNibFile + MainMenu + NSPrincipalClass + XApplication + + +"; + }; +/* End PBXApplicationTarget section */ + +/* Begin PBXBuildFile section */ + 0A79E1A600449EB2CE6F79C2 /* MainMenu.nib in Resources */ = {isa = PBXBuildFile; fileRef = 29B97318FDCFA39411CA2CEA /* MainMenu.nib */; }; + 0A79E1A700449EB2CE6F79C2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; + 0A79E1A800449EB2CE6F79C2 /* Credits.rtf in Resources */ = {isa = PBXBuildFile; fileRef = 0157A37D002CF6D7CE6F79C2 /* Credits.rtf */; }; + 0A79E1A900449EB2CE6F79C2 /* XDarwinHelp.html in Resources */ = {isa = PBXBuildFile; fileRef = 02E03CA000348209CE6F79C2 /* XDarwinHelp.html */; }; + 0A79E1AA00449EB2CE6F79C2 /* XDarwin.icns in Resources */ = {isa = PBXBuildFile; fileRef = 015698ED003DF345CE6F79C2 /* XDarwin.icns */; }; + 1220774500712D2D416877C2 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 1220774300712D2D416877C2 /* Localizable.strings */; }; + F54BF6ED017D506E01000001 /* startXClients in Resources */ = {isa = PBXBuildFile; fileRef = F54BF6EC017D506E01000001 /* startXClients */; }; +/* End PBXBuildFile section */ + +/* Begin PBXBundleTarget section */ + 6E11A984048BDFEE006877C2 /* glxCGL */ = { + isa = PBXBundleTarget; + buildConfigurationList = 010DB73C0BB8A8DB003F8968 /* Build configuration list for PBXBundleTarget "glxCGL" */; + buildPhases = ( + 6E11A97F048BDFEE006877C2 /* Headers */, + 6E11A980048BDFEE006877C2 /* Resources */, + 6E11A981048BDFEE006877C2 /* Sources */, + 6E11A982048BDFEE006877C2 /* Frameworks */, + 6E11A983048BDFEE006877C2 /* Rez */, + ); + dependencies = ( + ); + name = glxCGL; + productInstallPath = "$(USER_LIBRARY_DIR)/Bundles"; + productName = glxCGL; + productReference = 6E11A985048BDFEE006877C2 /* glxCGL.bundle */; + productSettingsXML = " + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + glxCGL + CFBundleGetInfoString + + CFBundleIconFile + + CFBundleIdentifier + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + GLX bundle using Apple's OpenGL + CFBundlePackageType + BNDL + CFBundleShortVersionString + 0.1 + CFBundleSignature + ???? + CFBundleVersion + 0.1 + + +"; + }; + 6E79040F0500F05600EEC080 /* xpr */ = { + isa = PBXBundleTarget; + buildConfigurationList = 010DB7400BB8A8DB003F8968 /* Build configuration list for PBXBundleTarget "xpr" */; + buildPhases = ( + 6E79040A0500F05600EEC080 /* Headers */, + 6E79040B0500F05600EEC080 /* Resources */, + 6E79040C0500F05600EEC080 /* Sources */, + 6E79040D0500F05600EEC080 /* Frameworks */, + 6E79040E0500F05600EEC080 /* Rez */, + ); + dependencies = ( + ); + name = xpr; + productInstallPath = "$(USER_LIBRARY_DIR)/Bundles"; + productName = xpr; + productReference = 6E7904100500F05600EEC080 /* xpr.bundle */; + productSettingsXML = " + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + xpr + CFBundleGetInfoString + + CFBundleIconFile + + CFBundleIdentifier + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Xplugin rootless implementation + CFBundlePackageType + BNDL + CFBundleShortVersionString + 0.1 + CFBundleSignature + ???? + CFBundleVersion + 0.1 + + +"; + }; + 6EF065C503D4EE19006877C2 /* glxMesa */ = { + isa = PBXBundleTarget; + buildConfigurationList = 010DB7380BB8A8DB003F8968 /* Build configuration list for PBXBundleTarget "glxMesa" */; + buildPhases = ( + 6EF065C003D4EE19006877C2 /* Headers */, + 6EF065C103D4EE19006877C2 /* Resources */, + 6EF065C203D4EE19006877C2 /* Sources */, + 6EF065C303D4EE19006877C2 /* Frameworks */, + 6EF065C403D4EE19006877C2 /* Rez */, + ); + dependencies = ( + ); + name = glxMesa; + productInstallPath = "$(USER_LIBRARY_DIR)/Bundles"; + productName = glxMesa; + productReference = 6EF065C603D4EE19006877C2 /* glxMesa.bundle */; + productSettingsXML = " + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + glxMesa + CFBundleGetInfoString + + CFBundleIconFile + + CFBundleIdentifier + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + GLX bundle with Mesa + CFBundlePackageType + BNDL + CFBundleShortVersionString + 0.1 + CFBundleSignature + ???? + CFBundleVersion + 0.1 + + +"; + }; + 6EF7C58603D3BC6D00000104 /* glxAGL */ = { + isa = PBXBundleTarget; + buildConfigurationList = 010DB7340BB8A8DB003F8968 /* Build configuration list for PBXBundleTarget "glxAGL" */; + buildPhases = ( + 6EF7C58103D3BC6D00000104 /* Headers */, + 6EF7C58203D3BC6D00000104 /* Resources */, + 6EF7C58303D3BC6D00000104 /* Sources */, + 6EF7C58403D3BC6D00000104 /* Frameworks */, + 6EF7C58503D3BC6D00000104 /* Rez */, + ); + dependencies = ( + ); + name = glxAGL; + productName = glxAGL; + productReference = 6EF7C58703D3BC6D00000104 /* glxAGL.bundle */; + productSettingsXML = " + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + glxAGL + CFBundleGetInfoString + + CFBundleIconFile + + CFBundleIdentifier + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + GLX bundle using AGL framework + CFBundlePackageType + BNDL + CFBundleShortVersionString + 0.1 + CFBundleSignature + ???? + CFBundleVersion + 0.1 + + +"; + }; +/* End PBXBundleTarget section */ + +/* Begin PBXContainerItemProxy section */ + 6E4CAF630702464F001A7398 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6EF7C58603D3BC6D00000104; + remoteInfo = glxAGL; + }; + 6E4CAF640702464F001A7398 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6E79040F0500F05600EEC080; + remoteInfo = xpr; + }; + 6E4CAF650702464F001A7398 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6E11A984048BDFEE006877C2; + remoteInfo = glxCGL; + }; + 6E4CAF660702464F001A7398 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; + proxyType = 1; + remoteGlobalIDString = 6EF065C503D4EE19006877C2; + remoteInfo = glxMesa; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 01279092000747AA0A000002 /* XServer.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = XServer.m; sourceTree = ""; }; + 0127909600074AF60A000002 /* XApplication.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = XApplication.m; sourceTree = ""; }; + 0127909800074B1A0A000002 /* XApplication.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XApplication.h; sourceTree = ""; }; + 015698ED003DF345CE6F79C2 /* XDarwin.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = XDarwin.icns; sourceTree = ""; }; + 0157A37E002CF6D7CE6F79C2 /* English */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = English; path = English.lproj/Credits.rtf; sourceTree = ""; }; + 015EDCEA004203A8CE6F79C2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = ""; }; + 018F40F3003E1916CE6F79C2 /* darwin.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = darwin.c; sourceTree = ""; }; + 018F40F6003E1974CE6F79C2 /* darwinKeyboard.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = darwinKeyboard.c; sourceTree = ""; }; + 018F40F8003E1979CE6F79C2 /* quartz.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = quartz.c; sourceTree = ""; }; + 018F40FA003E197ECE6F79C2 /* quartz.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = quartz.h; sourceTree = ""; }; + 018F40FC003E1983CE6F79C2 /* xfIOKit.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = xfIOKit.c; sourceTree = ""; }; + 018F40FE003E1988CE6F79C2 /* xfIOKit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = xfIOKit.h; sourceTree = ""; }; + 018F4100003E19E4CE6F79C2 /* xfIOKitCursor.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = xfIOKitCursor.c; sourceTree = ""; }; + 021D6BA9003E1BACCE6F79C2 /* darwin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = darwin.h; sourceTree = ""; }; + 02A1FEA6006D34BE416877C2 /* xfIOKitStartup.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = xfIOKitStartup.c; sourceTree = ""; }; + 02A1FEA8006D38F0416877C2 /* quartzStartup.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = quartzStartup.c; sourceTree = ""; }; + 02E03CA100348209CE6F79C2 /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = English; path = English.lproj/XDarwinHelp.html; sourceTree = ""; }; + 0338412F0083BFE57F000001 /* quartzCursor.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = quartzCursor.h; sourceTree = ""; }; + 04329610000763920A000002 /* Preferences.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = Preferences.m; sourceTree = ""; }; + 04329611000763920A000002 /* Preferences.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Preferences.h; sourceTree = ""; }; + 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + 0A79E19E004499A1CE6F79C2 /* XDarwin.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; path = XDarwin.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 1220774400712D2D416877C2 /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/Localizable.strings; sourceTree = ""; }; + 1220774600712D75416877C2 /* Japanese */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/Localizable.strings; sourceTree = ""; }; + 170DFAFF00729A35416877C2 /* XDarwinStartup.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = XDarwinStartup.c; sourceTree = ""; }; + 1BD8DE4300B8A3567F000001 /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = English; path = English.lproj/InfoPlist.strings.cpp; sourceTree = ""; }; + 1BD8DE4500B8A38E7F000001 /* English */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = English; path = English.lproj/XDarwinHelp.html.cpp; sourceTree = ""; }; + 1BD8DE4700B8A3C77F000001 /* Japanese */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Japanese; path = Japanese.lproj/InfoPlist.strings.cpp; sourceTree = ""; }; + 1BD8DE4800B8A4167F000001 /* Japanese */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Japanese; path = Japanese.lproj/XDarwinHelp.html.cpp; sourceTree = ""; }; + 1BE4F84D0006C9890A000002 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = ""; }; + 1C4A3109004D8F24CE6F79C2 /* XServer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XServer.h; sourceTree = ""; }; + 237A34C10076E37E7F000001 /* quartzAudio.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = quartzAudio.c; sourceTree = ""; }; + 237A34C40076F4F07F000001 /* quartzAudio.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = quartzAudio.h; sourceTree = ""; }; + 29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = ""; }; + 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 3576829A0077B8F17F000001 /* quartzCursor.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = quartzCursor.c; sourceTree = ""; }; + 3E74E03600863F047F000001 /* darwinClut8.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = darwinClut8.h; sourceTree = ""; }; + 43B962CF00617089416877C2 /* quartzCocoa.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = quartzCocoa.m; sourceTree = ""; }; + 43B962D000617089416877C2 /* quartzPasteboard.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = quartzPasteboard.c; sourceTree = ""; }; + 43B962D100617089416877C2 /* quartzPasteboard.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = quartzPasteboard.h; sourceTree = ""; }; + 43B962E000617B49416877C2 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Japanese; path = Japanese.lproj/MainMenu.nib; sourceTree = ""; }; + 43B962E100617B49416877C2 /* Japanese */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = Japanese; path = Japanese.lproj/InfoPlist.strings; sourceTree = ""; }; + 43B962E200617B93416877C2 /* Japanese */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Japanese; path = Japanese.lproj/Credits.rtf; sourceTree = ""; }; + 43B962E300617B93416877C2 /* Japanese */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = Japanese; path = Japanese.lproj/XDarwinHelp.html; sourceTree = ""; }; + 6E11A985048BDFEE006877C2 /* glxCGL.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = glxCGL.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 6E5F5F0005537A1A008FEAD7 /* darwinKeyboard.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = darwinKeyboard.h; sourceTree = ""; }; + 6E5F5F0105537A5F008FEAD7 /* quartzKeyboard.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = quartzKeyboard.c; sourceTree = ""; }; + 6E5F5F030553815A008FEAD7 /* keysym2ucs.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = keysym2ucs.c; sourceTree = ""; }; + 6E5F5F040553815A008FEAD7 /* keysym2ucs.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = keysym2ucs.h; sourceTree = ""; }; + 6E6656EC048832CF006877C2 /* x-hook.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = "x-hook.c"; sourceTree = ""; }; + 6E6656ED048832CF006877C2 /* x-hook.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "x-hook.h"; sourceTree = ""; }; + 6E6656F0048832EC006877C2 /* dri.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = dri.c; sourceTree = ""; }; + 6E6656F1048832EC006877C2 /* dri.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = dri.h; sourceTree = ""; }; + 6E6656F2048832EC006877C2 /* dristruct.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = dristruct.h; sourceTree = ""; }; + 6E6656F3048832F9006877C2 /* appledri.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = appledri.c; sourceTree = ""; }; + 6E79040204FD5EDA00EEC080 /* safeAlpha.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = safeAlpha.h; sourceTree = ""; }; + 6E79040304FD5EDA00EEC080 /* safeAlphaPicture.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = safeAlphaPicture.c; sourceTree = ""; }; + 6E79040404FD5EDA00EEC080 /* safeAlphaWindow.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = safeAlphaWindow.c; sourceTree = ""; }; + 6E7904100500F05600EEC080 /* xpr.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = xpr.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 6E97A0F2050798B100B8294C /* xprAppleWM.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xprAppleWM.c; sourceTree = ""; }; + 6E97A0F305079B6500B8294C /* crAppleWM.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = crAppleWM.m; sourceTree = ""; }; + 6E97A0F505079F9100B8294C /* applewmExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = applewmExt.h; sourceTree = ""; }; + 6EA0B3B00544A9CC006877C2 /* rlAccel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = rlAccel.h; sourceTree = ""; }; + 6EA0B3B10544A9CC006877C2 /* rlBlt.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = rlBlt.c; sourceTree = ""; }; + 6EA0B3B20544A9CC006877C2 /* rlCopy.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = rlCopy.c; sourceTree = ""; }; + 6EA0B3B30544A9CC006877C2 /* rlFill.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = rlFill.c; sourceTree = ""; }; + 6EA0B3B40544A9CC006877C2 /* rlFillRect.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = rlFillRect.c; sourceTree = ""; }; + 6EA0B3B50544A9CC006877C2 /* rlFillSpans.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = rlFillSpans.c; sourceTree = ""; }; + 6EA0B3B60544A9CC006877C2 /* rlGlyph.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = rlGlyph.c; sourceTree = ""; }; + 6EA0B3B70544A9CC006877C2 /* rlSolid.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = rlSolid.c; sourceTree = ""; }; + 6EA8EEC80445E25C006877C2 /* rootlessConfig.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = rootlessConfig.h; sourceTree = ""; }; + 6EC4A65D042A9654006877C2 /* rootless.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = rootless.h; sourceTree = ""; }; + 6EC4A65E042A9654006877C2 /* rootlessCommon.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = rootlessCommon.c; sourceTree = ""; }; + 6EC4A65F042A9654006877C2 /* rootlessCommon.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = rootlessCommon.h; sourceTree = ""; }; + 6EC4A660042A9654006877C2 /* rootlessWindow.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = rootlessWindow.h; sourceTree = ""; }; + 6EC4A661042A9654006877C2 /* rootlessScreen.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = rootlessScreen.c; sourceTree = ""; }; + 6EC4A662042A9654006877C2 /* rootlessWindow.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = rootlessWindow.c; sourceTree = ""; }; + 6EC4A663042A9654006877C2 /* rootlessGC.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = rootlessGC.c; sourceTree = ""; }; + 6EC4A664042A9654006877C2 /* rootlessValTree.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = rootlessValTree.c; sourceTree = ""; }; + 6ECF218404589E4D006877C2 /* xpr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xpr.h; sourceTree = ""; }; + 6ECF218604589F40006877C2 /* xprCursor.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = xprCursor.c; sourceTree = ""; }; + 6EDDB2DF04508B2C006877C2 /* xprScreen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xprScreen.c; sourceTree = ""; }; + 6EE1214204968692006877C2 /* cr.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = cr.h; sourceTree = ""; }; + 6EE1214304968692006877C2 /* XView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = XView.m; sourceTree = ""; }; + 6EE1214404968692006877C2 /* XView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = XView.h; sourceTree = ""; }; + 6EE1214504968692006877C2 /* crFrame.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = crFrame.m; sourceTree = ""; }; + 6EE1214604968692006877C2 /* crScreen.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = crScreen.m; sourceTree = ""; }; + 6EE9B21604E859C200CA7FEA /* applewm.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = applewm.c; sourceTree = ""; }; + 6EF065C603D4EE19006877C2 /* glxMesa.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = glxMesa.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + 6EF4719E04478B08006877C2 /* xprFrame.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = xprFrame.c; sourceTree = ""; }; + 6EF471A004478DE0006877C2 /* Xplugin.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Xplugin.h; sourceTree = ""; }; + 6EF471A204479263006877C2 /* x-hash.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = "x-hash.c"; sourceTree = ""; }; + 6EF471A304479263006877C2 /* x-list.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "x-list.h"; sourceTree = ""; }; + 6EF471A404479263006877C2 /* x-hash.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = "x-hash.h"; sourceTree = ""; }; + 6EF471A504479263006877C2 /* x-list.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = "x-list.c"; sourceTree = ""; }; + 6EF7C58703D3BC6D00000104 /* glxAGL.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = glxAGL.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + F51BF62A02026DAF01000001 /* Portuguese */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Portuguese; path = Portuguese.lproj/MainMenu.nib; sourceTree = ""; }; + F51BF62B02026DDA01000001 /* Portuguese */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = Portuguese; path = Portuguese.lproj/InfoPlist.strings; sourceTree = ""; }; + F51BF62C02026E0601000001 /* Portuguese */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Portuguese; path = Portuguese.lproj/InfoPlist.strings.cpp; sourceTree = ""; }; + F51BF62D02026E1C01000001 /* Portuguese */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = Portuguese; path = Portuguese.lproj/Localizable.strings; sourceTree = ""; }; + F51BF62E02026E3501000001 /* Portuguese */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Portuguese; path = Portuguese.lproj/Credits.rtf; sourceTree = ""; }; + F51BF62F02026E5C01000001 /* Portuguese */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = Portuguese; path = Portuguese.lproj/XDarwinHelp.html; sourceTree = ""; }; + F51BF63002026E8D01000001 /* Portuguese */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Portuguese; path = Portuguese.lproj/XDarwinHelp.html.cpp; sourceTree = ""; }; + F5269C2D01D5BC3501000001 /* pseudoramiX.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = pseudoramiX.c; sourceTree = ""; }; + F5269C2E01D5BC3501000001 /* pseudoramiX.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = pseudoramiX.h; sourceTree = ""; }; + F53321390193CB6A01000001 /* German */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = German; path = German.lproj/MainMenu.nib; sourceTree = ""; }; + F533213A0193CBA201000001 /* German */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = German; path = German.lproj/InfoPlist.strings; sourceTree = ""; }; + F533213B0193CBB401000001 /* German */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = German; path = German.lproj/InfoPlist.strings.cpp; sourceTree = ""; }; + F533213C0193CBC901000001 /* German */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = German; path = German.lproj/Localizable.strings; sourceTree = ""; }; + F533213D0193CBE001000001 /* German */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = German; path = German.lproj/Credits.rtf; sourceTree = ""; }; + F533213E0193CBF401000001 /* German */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = German; path = German.lproj/XDarwinHelp.html; sourceTree = ""; }; + F533213F0193CC2501000001 /* German */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = German; path = German.lproj/XDarwinHelp.html.cpp; sourceTree = ""; }; + F53321400193CCF001000001 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = ""; }; + F53321410193CCF001000001 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = ""; }; + F533214201A4B3CE01000001 /* Dutch */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Dutch; path = Dutch.lproj/MainMenu.nib; sourceTree = ""; }; + F533214301A4B3F001000001 /* Dutch */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = Dutch; path = Dutch.lproj/InfoPlist.strings; sourceTree = ""; }; + F533214401A4B40F01000001 /* Dutch */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Dutch; path = Dutch.lproj/InfoPlist.strings.cpp; sourceTree = ""; }; + F533214501A4B42501000001 /* Dutch */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = Dutch; path = Dutch.lproj/Localizable.strings; sourceTree = ""; }; + F533214601A4B45401000001 /* Dutch */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Dutch; path = Dutch.lproj/Credits.rtf; sourceTree = ""; }; + F533214701A4B48301000001 /* Dutch */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = Dutch; path = Dutch.lproj/XDarwinHelp.html; sourceTree = ""; }; + F533214801A4B4D701000001 /* Dutch */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Dutch; path = Dutch.lproj/XDarwinHelp.html.cpp; sourceTree = ""; }; + F54BF6EA017D500901000001 /* startXClients.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = startXClients.cpp; sourceTree = ""; }; + F54BF6EC017D506E01000001 /* startXClients */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = startXClients; sourceTree = ""; }; + F5582948015DAD3B01000001 /* quartzCommon.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = quartzCommon.h; sourceTree = ""; }; + F5614B3B0251124C01000114 /* fullscreen.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = fullscreen.c; sourceTree = ""; }; + F587E16001924C1D01000001 /* Swedish */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Swedish; path = Swedish.lproj/MainMenu.nib; sourceTree = ""; }; + F587E16101924C2F01000001 /* Swedish */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = Swedish; path = Swedish.lproj/InfoPlist.strings; sourceTree = ""; }; + F587E16201924C5301000001 /* Swedish */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Swedish; path = Swedish.lproj/InfoPlist.strings.cpp; sourceTree = ""; }; + F587E16301924C5E01000001 /* Swedish */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = Swedish; path = Swedish.lproj/Localizable.strings; sourceTree = ""; }; + F587E16401924C6901000001 /* Swedish */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Swedish; path = Swedish.lproj/Credits.rtf; sourceTree = ""; }; + F587E16501924C7401000001 /* Swedish */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = Swedish; path = Swedish.lproj/XDarwinHelp.html; sourceTree = ""; }; + F587E16601924C9D01000001 /* Swedish */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Swedish; path = Swedish.lproj/XDarwinHelp.html.cpp; sourceTree = ""; }; + F58D65DB018F793801000001 /* French */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = French; path = French.lproj/MainMenu.nib; sourceTree = ""; }; + F58D65DC018F794D01000001 /* French */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = French; path = French.lproj/InfoPlist.strings.cpp; sourceTree = ""; }; + F58D65DD018F798F01000001 /* French */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = French; path = French.lproj/InfoPlist.strings; sourceTree = ""; }; + F58D65DE018F79A001000001 /* French */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = French; path = French.lproj/Localizable.strings; sourceTree = ""; }; + F58D65DF018F79B101000001 /* French */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = French; path = French.lproj/Credits.rtf; sourceTree = ""; }; + F58D65E0018F79C001000001 /* French */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = French; path = French.lproj/XDarwinHelp.html; sourceTree = ""; }; + F58D65E1018F79E001000001 /* French */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = French; path = French.lproj/XDarwinHelp.html.cpp; sourceTree = ""; }; + F5A94EF10314BAC70100011B /* darwinEvents.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = darwinEvents.c; sourceTree = ""; }; + F5ACD25CC5B5E96601000001 /* Spanish */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = Spanish; path = Spanish.lproj/Credits.rtf; sourceTree = ""; }; + F5ACD25DC5B5E97701000001 /* Spanish */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Spanish; path = Spanish.lproj/InfoPlist.strings.cpp; sourceTree = ""; }; + F5ACD25EC5B5E98D01000001 /* Spanish */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = Spanish; path = Spanish.lproj/MainMenu.nib; sourceTree = ""; }; + F5ACD25FC5B5E9AA01000001 /* Spanish */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = Spanish; path = Spanish.lproj/Localizable.strings; sourceTree = ""; }; + F5ACD260C5B5E9DF01000001 /* Spanish */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Spanish; path = Spanish.lproj/XDarwinHelp.html.cpp; sourceTree = ""; }; + F5ACD261C5B5EA2001000001 /* Spanish */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = Spanish; path = Spanish.lproj/XDarwinHelp.html; sourceTree = ""; }; + F5ACD262C5B5EA4D01000001 /* Spanish */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = Spanish; path = Spanish.lproj/InfoPlist.strings; sourceTree = ""; }; + F5ACD263C5BE031F01000001 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = ko; path = ko.lproj/Credits.rtf; sourceTree = ""; }; + F5ACD264C5BE035B01000001 /* ko */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ko; path = ko.lproj/InfoPlist.strings.cpp; sourceTree = ""; }; + F5ACD265C5BE038601000001 /* ko */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = ko; path = ko.lproj/MainMenu.nib; sourceTree = ""; }; + F5ACD266C5BE03C501000001 /* ko */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = ""; }; + F5ACD267C5BE03FC01000001 /* ko */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = ko; path = ko.lproj/XDarwinHelp.html.cpp; sourceTree = ""; }; + F5ACD268C5BE046401000001 /* ko */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.html; name = ko; path = ko.lproj/XDarwinHelp.html; sourceTree = ""; }; + F5ACD269C5BE049301000001 /* ko */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 0A79E1A3004499A1CE6F79C2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E11A982048BDFEE006877C2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E79040D0500F05600EEC080 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6EF065C303D4EE19006877C2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6EF7C58403D3BC6D00000104 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 018F40F2003E1902CE6F79C2 /* X Server */ = { + isa = PBXGroup; + children = ( + 018F40F3003E1916CE6F79C2 /* darwin.c */, + 021D6BA9003E1BACCE6F79C2 /* darwin.h */, + 3E74E03600863F047F000001 /* darwinClut8.h */, + F5A94EF10314BAC70100011B /* darwinEvents.c */, + 018F40F6003E1974CE6F79C2 /* darwinKeyboard.c */, + 6E5F5F0005537A1A008FEAD7 /* darwinKeyboard.h */, + ); + name = "X Server"; + path = ..; + sourceTree = ""; + }; + 080E96DDFE201D6D7F000001 /* Classes */ = { + isa = PBXGroup; + children = ( + 04329610000763920A000002 /* Preferences.m */, + 04329611000763920A000002 /* Preferences.h */, + 0127909600074AF60A000002 /* XApplication.m */, + 0127909800074B1A0A000002 /* XApplication.h */, + 01279092000747AA0A000002 /* XServer.m */, + 1C4A3109004D8F24CE6F79C2 /* XServer.h */, + ); + name = Classes; + sourceTree = ""; + }; + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + F53321400193CCF001000001 /* ApplicationServices.framework */, + 1BE4F84D0006C9890A000002 /* Carbon.framework */, + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, + F53321410193CCF001000001 /* CoreAudio.framework */, + 015EDCEA004203A8CE6F79C2 /* IOKit.framework */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 29B97325FDCFA39411CA2CEA /* Foundation.framework */, + 29B97324FDCFA39411CA2CEA /* AppKit.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 170DFB0000729C86416877C2 /* IOKit */ = { + isa = PBXGroup; + children = ( + 018F40FC003E1983CE6F79C2 /* xfIOKit.c */, + 018F40FE003E1988CE6F79C2 /* xfIOKit.h */, + 018F4100003E19E4CE6F79C2 /* xfIOKitCursor.c */, + 02A1FEA6006D34BE416877C2 /* xfIOKitStartup.c */, + ); + name = IOKit; + path = ../iokit; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 0A79E19E004499A1CE6F79C2 /* XDarwin.app */, + 6EF7C58703D3BC6D00000104 /* glxAGL.bundle */, + 6EF065C603D4EE19006877C2 /* glxMesa.bundle */, + 6E11A985048BDFEE006877C2 /* glxCGL.bundle */, + 6E7904100500F05600EEC080 /* xpr.bundle */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* Xmaster-Cocoa */ = { + isa = PBXGroup; + children = ( + 080E96DDFE201D6D7F000001 /* Classes */, + 018F40F2003E1902CE6F79C2 /* X Server */, + 170DFB0000729C86416877C2 /* IOKit */, + 43B962CE00617089416877C2 /* Quartz */, + F5614B3D025112D901000114 /* fullscreen */, + 6EC4A64C042A9597006877C2 /* Rootless */, + 32FEE13C00E07C3E7F000001 /* Old Cocoa Imp */, + 6EE1214104968658006877C2 /* cr */, + 6EC4A66D042A97FC006877C2 /* xpr */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = "Xmaster-Cocoa"; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 170DFAFF00729A35416877C2 /* XDarwinStartup.c */, + ); + name = "Other Sources"; + sourceTree = SOURCE_ROOT; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 29B97318FDCFA39411CA2CEA /* MainMenu.nib */, + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, + 1BD8DE4200B8A3567F000001 /* InfoPlist.strings.cpp */, + 1220774300712D2D416877C2 /* Localizable.strings */, + 0157A37D002CF6D7CE6F79C2 /* Credits.rtf */, + 02E03CA000348209CE6F79C2 /* XDarwinHelp.html */, + 1BD8DE4400B8A38E7F000001 /* XDarwinHelp.html.cpp */, + 015698ED003DF345CE6F79C2 /* XDarwin.icns */, + F54BF6EA017D500901000001 /* startXClients.cpp */, + F54BF6EC017D506E01000001 /* startXClients */, + ); + name = Resources; + path = ../bundle; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + 32FEE13C00E07C3E7F000001 /* Old Cocoa Imp */ = { + isa = PBXGroup; + children = ( + F5269C2D01D5BC3501000001 /* pseudoramiX.c */, + F5269C2E01D5BC3501000001 /* pseudoramiX.h */, + ); + name = "Old Cocoa Imp"; + sourceTree = ""; + }; + 43B962CE00617089416877C2 /* Quartz */ = { + isa = PBXGroup; + children = ( + 6EE9B21604E859C200CA7FEA /* applewm.c */, + 6E97A0F505079F9100B8294C /* applewmExt.h */, + 6E5F5F030553815A008FEAD7 /* keysym2ucs.c */, + 6E5F5F040553815A008FEAD7 /* keysym2ucs.h */, + 018F40F8003E1979CE6F79C2 /* quartz.c */, + 018F40FA003E197ECE6F79C2 /* quartz.h */, + 237A34C10076E37E7F000001 /* quartzAudio.c */, + 237A34C40076F4F07F000001 /* quartzAudio.h */, + 43B962CF00617089416877C2 /* quartzCocoa.m */, + F5582948015DAD3B01000001 /* quartzCommon.h */, + 6E5F5F0105537A5F008FEAD7 /* quartzKeyboard.c */, + 43B962D000617089416877C2 /* quartzPasteboard.c */, + 43B962D100617089416877C2 /* quartzPasteboard.h */, + 02A1FEA8006D38F0416877C2 /* quartzStartup.c */, + ); + name = Quartz; + sourceTree = ""; + }; + 6E79040104FD5ED900EEC080 /* Safe Alpha */ = { + isa = PBXGroup; + children = ( + 6E79040204FD5EDA00EEC080 /* safeAlpha.h */, + 6E79040304FD5EDA00EEC080 /* safeAlphaPicture.c */, + 6E79040404FD5EDA00EEC080 /* safeAlphaWindow.c */, + ); + name = "Safe Alpha"; + path = safeAlpha; + sourceTree = ""; + }; + 6EA0B3AF0544A9CC006877C2 /* Acceleration */ = { + isa = PBXGroup; + children = ( + 6EA0B3B00544A9CC006877C2 /* rlAccel.h */, + 6EA0B3B10544A9CC006877C2 /* rlBlt.c */, + 6EA0B3B20544A9CC006877C2 /* rlCopy.c */, + 6EA0B3B30544A9CC006877C2 /* rlFill.c */, + 6EA0B3B40544A9CC006877C2 /* rlFillRect.c */, + 6EA0B3B50544A9CC006877C2 /* rlFillSpans.c */, + 6EA0B3B60544A9CC006877C2 /* rlGlyph.c */, + 6EA0B3B70544A9CC006877C2 /* rlSolid.c */, + ); + name = Acceleration; + path = accel; + sourceTree = ""; + }; + 6EC4A64C042A9597006877C2 /* Rootless */ = { + isa = PBXGroup; + children = ( + 6EC4A65D042A9654006877C2 /* rootless.h */, + 6EC4A65E042A9654006877C2 /* rootlessCommon.c */, + 6EC4A65F042A9654006877C2 /* rootlessCommon.h */, + 6EA8EEC80445E25C006877C2 /* rootlessConfig.h */, + 6EC4A661042A9654006877C2 /* rootlessScreen.c */, + 6EC4A662042A9654006877C2 /* rootlessWindow.c */, + 6EC4A660042A9654006877C2 /* rootlessWindow.h */, + 6EC4A663042A9654006877C2 /* rootlessGC.c */, + 6EC4A664042A9654006877C2 /* rootlessValTree.c */, + 6EA0B3AF0544A9CC006877C2 /* Acceleration */, + 6E79040104FD5ED900EEC080 /* Safe Alpha */, + ); + name = Rootless; + path = ../../../miext/rootless; + sourceTree = SOURCE_ROOT; + }; + 6EC4A66D042A97FC006877C2 /* xpr */ = { + isa = PBXGroup; + children = ( + 6EF471A004478DE0006877C2 /* Xplugin.h */, + 6E6656F3048832F9006877C2 /* appledri.c */, + 6E6656F0048832EC006877C2 /* dri.c */, + 6E6656F1048832EC006877C2 /* dri.h */, + 6E6656F2048832EC006877C2 /* dristruct.h */, + 6ECF218404589E4D006877C2 /* xpr.h */, + 6E97A0F2050798B100B8294C /* xprAppleWM.c */, + 6ECF218604589F40006877C2 /* xprCursor.c */, + 6EF4719E04478B08006877C2 /* xprFrame.c */, + 6EDDB2DF04508B2C006877C2 /* xprScreen.c */, + 6EF471A204479263006877C2 /* x-hash.c */, + 6EF471A404479263006877C2 /* x-hash.h */, + 6E6656EC048832CF006877C2 /* x-hook.c */, + 6E6656ED048832CF006877C2 /* x-hook.h */, + 6EF471A504479263006877C2 /* x-list.c */, + 6EF471A304479263006877C2 /* x-list.h */, + ); + path = xpr; + sourceTree = ""; + }; + 6EE1214104968658006877C2 /* cr */ = { + isa = PBXGroup; + children = ( + 6EE1214304968692006877C2 /* XView.m */, + 6EE1214404968692006877C2 /* XView.h */, + 6EE1214204968692006877C2 /* cr.h */, + 6E97A0F305079B6500B8294C /* crAppleWM.m */, + 6EE1214504968692006877C2 /* crFrame.m */, + 6EE1214604968692006877C2 /* crScreen.m */, + ); + path = cr; + sourceTree = ""; + }; + F5614B3D025112D901000114 /* fullscreen */ = { + isa = PBXGroup; + children = ( + F5614B3B0251124C01000114 /* fullscreen.c */, + 3576829A0077B8F17F000001 /* quartzCursor.c */, + 0338412F0083BFE57F000001 /* quartzCursor.h */, + ); + path = fullscreen; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 0A79E1A0004499A1CE6F79C2 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E11A97F048BDFEE006877C2 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E79040A0500F05600EEC080 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6EF065C003D4EE19006877C2 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6EF7C58103D3BC6D00000104 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + buildConfigurationList = 010DB7480BB8A8DB003F8968 /* Build configuration list for PBXProject "XDarwin" */; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + Swedish, + Dutch, + Spanish, + ko, + Portuguese, + ); + mainGroup = 29B97314FDCFA39411CA2CEA /* Xmaster-Cocoa */; + projectDirPath = ""; + targets = ( + 0A79E19F004499A1CE6F79C2 /* XDarwin */, + 6EF7C58603D3BC6D00000104 /* glxAGL */, + 6E11A984048BDFEE006877C2 /* glxCGL */, + 6EF065C503D4EE19006877C2 /* glxMesa */, + 6E79040F0500F05600EEC080 /* xpr */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 0A79E1A1004499A1CE6F79C2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 0A79E1A600449EB2CE6F79C2 /* MainMenu.nib in Resources */, + 0A79E1A700449EB2CE6F79C2 /* InfoPlist.strings in Resources */, + 0A79E1A800449EB2CE6F79C2 /* Credits.rtf in Resources */, + 0A79E1A900449EB2CE6F79C2 /* XDarwinHelp.html in Resources */, + 0A79E1AA00449EB2CE6F79C2 /* XDarwin.icns in Resources */, + 1220774500712D2D416877C2 /* Localizable.strings in Resources */, + F54BF6ED017D506E01000001 /* startXClients in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E11A980048BDFEE006877C2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E79040B0500F05600EEC080 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6EF065C103D4EE19006877C2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6EF7C58203D3BC6D00000104 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXRezBuildPhase section */ + 0A79E1A4004499A1CE6F79C2 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E11A983048BDFEE006877C2 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E79040E0500F05600EEC080 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6EF065C403D4EE19006877C2 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6EF7C58503D3BC6D00000104 /* Rez */ = { + isa = PBXRezBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXRezBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0A79E1A2004499A1CE6F79C2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E11A981048BDFEE006877C2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6E79040C0500F05600EEC080 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6EF065C203D4EE19006877C2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 6EF7C58303D3BC6D00000104 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 6E11A986048BDFFB006877C2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 6E11A984048BDFEE006877C2 /* glxCGL */; + targetProxy = 6E4CAF650702464F001A7398 /* PBXContainerItemProxy */; + }; + 6E7904110500F33B00EEC080 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 6E79040F0500F05600EEC080 /* xpr */; + targetProxy = 6E4CAF640702464F001A7398 /* PBXContainerItemProxy */; + }; + 6EF065C703D4EE19006877C2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 6EF065C503D4EE19006877C2 /* glxMesa */; + targetProxy = 6E4CAF660702464F001A7398 /* PBXContainerItemProxy */; + }; + 6EF065C903D4F0CA006877C2 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 6EF7C58603D3BC6D00000104 /* glxAGL */; + targetProxy = 6E4CAF630702464F001A7398 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 0157A37D002CF6D7CE6F79C2 /* Credits.rtf */ = { + isa = PBXVariantGroup; + children = ( + F533214601A4B45401000001 /* Dutch */, + 0157A37E002CF6D7CE6F79C2 /* English */, + F58D65DF018F79B101000001 /* French */, + F533213D0193CBE001000001 /* German */, + 43B962E200617B93416877C2 /* Japanese */, + F5ACD263C5BE031F01000001 /* ko */, + F51BF62E02026E3501000001 /* Portuguese */, + F5ACD25CC5B5E96601000001 /* Spanish */, + F587E16401924C6901000001 /* Swedish */, + ); + name = Credits.rtf; + sourceTree = ""; + }; + 02E03CA000348209CE6F79C2 /* XDarwinHelp.html */ = { + isa = PBXVariantGroup; + children = ( + F533214701A4B48301000001 /* Dutch */, + 02E03CA100348209CE6F79C2 /* English */, + F58D65E0018F79C001000001 /* French */, + F533213E0193CBF401000001 /* German */, + 43B962E300617B93416877C2 /* Japanese */, + F5ACD268C5BE046401000001 /* ko */, + F51BF62F02026E5C01000001 /* Portuguese */, + F5ACD261C5B5EA2001000001 /* Spanish */, + F587E16501924C7401000001 /* Swedish */, + ); + name = XDarwinHelp.html; + sourceTree = ""; + }; + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + F533214301A4B3F001000001 /* Dutch */, + 089C165DFE840E0CC02AAC07 /* English */, + F58D65DD018F798F01000001 /* French */, + F533213A0193CBA201000001 /* German */, + 43B962E100617B49416877C2 /* Japanese */, + F5ACD269C5BE049301000001 /* ko */, + F51BF62B02026DDA01000001 /* Portuguese */, + F5ACD262C5B5EA4D01000001 /* Spanish */, + F587E16101924C2F01000001 /* Swedish */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 1220774300712D2D416877C2 /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + F533214501A4B42501000001 /* Dutch */, + 1220774400712D2D416877C2 /* English */, + F58D65DE018F79A001000001 /* French */, + F533213C0193CBC901000001 /* German */, + 1220774600712D75416877C2 /* Japanese */, + F5ACD266C5BE03C501000001 /* ko */, + F51BF62D02026E1C01000001 /* Portuguese */, + F5ACD25FC5B5E9AA01000001 /* Spanish */, + F587E16301924C5E01000001 /* Swedish */, + ); + name = Localizable.strings; + sourceTree = ""; + }; + 1BD8DE4200B8A3567F000001 /* InfoPlist.strings.cpp */ = { + isa = PBXVariantGroup; + children = ( + F533214401A4B40F01000001 /* Dutch */, + 1BD8DE4300B8A3567F000001 /* English */, + F58D65DC018F794D01000001 /* French */, + F533213B0193CBB401000001 /* German */, + 1BD8DE4700B8A3C77F000001 /* Japanese */, + F5ACD264C5BE035B01000001 /* ko */, + F51BF62C02026E0601000001 /* Portuguese */, + F5ACD25DC5B5E97701000001 /* Spanish */, + F587E16201924C5301000001 /* Swedish */, + ); + name = InfoPlist.strings.cpp; + sourceTree = ""; + }; + 1BD8DE4400B8A38E7F000001 /* XDarwinHelp.html.cpp */ = { + isa = PBXVariantGroup; + children = ( + F533214801A4B4D701000001 /* Dutch */, + 1BD8DE4500B8A38E7F000001 /* English */, + F58D65E1018F79E001000001 /* French */, + F533213F0193CC2501000001 /* German */, + 1BD8DE4800B8A4167F000001 /* Japanese */, + F5ACD267C5BE03FC01000001 /* ko */, + F51BF63002026E8D01000001 /* Portuguese */, + F5ACD260C5B5E9DF01000001 /* Spanish */, + F587E16601924C9D01000001 /* Swedish */, + ); + name = XDarwinHelp.html.cpp; + sourceTree = ""; + }; + 29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = { + isa = PBXVariantGroup; + children = ( + F533214201A4B3CE01000001 /* Dutch */, + 29B97319FDCFA39411CA2CEA /* English */, + F58D65DB018F793801000001 /* French */, + F53321390193CB6A01000001 /* German */, + 43B962E000617B49416877C2 /* Japanese */, + F5ACD265C5BE038601000001 /* ko */, + F51BF62A02026DAF01000001 /* Portuguese */, + F5ACD25EC5B5E98D01000001 /* Spanish */, + F587E16001924C1D01000001 /* Swedish */, + ); + name = MainMenu.nib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 010DB7350BB8A8DB003F8968 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + OPTIMIZATION_CFLAGS = "-O0"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = glxAGL; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = bundle; + ZERO_LINK = YES; + }; + name = Development; + }; + 010DB7360BB8A8DB003F8968 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = glxAGL; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = bundle; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 010DB7370BB8A8DB003F8968 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = glxAGL; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = bundle; + }; + name = Default; + }; + 010DB7390BB8A8DB003F8968 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + OPTIMIZATION_CFLAGS = "-O0"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = glxMesa; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = bundle; + ZERO_LINK = YES; + }; + name = Development; + }; + 010DB73A0BB8A8DB003F8968 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = glxMesa; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = bundle; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 010DB73B0BB8A8DB003F8968 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = glxMesa; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = bundle; + }; + name = Default; + }; + 010DB73D0BB8A8DB003F8968 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + OPTIMIZATION_CFLAGS = "-O0"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = glxCGL; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = bundle; + ZERO_LINK = YES; + }; + name = Development; + }; + 010DB73E0BB8A8DB003F8968 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = glxCGL; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = bundle; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 010DB73F0BB8A8DB003F8968 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = glxCGL; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = bundle; + }; + name = Default; + }; + 010DB7410BB8A8DB003F8968 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + OPTIMIZATION_CFLAGS = "-O0"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = xpr; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = bundle; + ZERO_LINK = YES; + }; + name = Development; + }; + 010DB7420BB8A8DB003F8968 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = xpr; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = bundle; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 010DB7430BB8A8DB003F8968 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = xpr; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = bundle; + }; + name = Default; + }; + 010DB7450BB8A8DB003F8968 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + INSTALL_PATH = /; + OPTIMIZATION_CFLAGS = "-O0"; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = XDarwin; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = app; + ZERO_LINK = YES; + }; + name = Development; + }; + 010DB7460BB8A8DB003F8968 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = YES; + GCC_ENABLE_FIX_AND_CONTINUE = NO; + INSTALL_PATH = /; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = XDarwin; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = app; + ZERO_LINK = NO; + }; + name = Deployment; + }; + 010DB7470BB8A8DB003F8968 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + INSTALL_PATH = /; + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ""; + OTHER_REZFLAGS = ""; + PRODUCT_NAME = XDarwin; + SECTORDER_FLAGS = ""; + WARNING_CFLAGS = ( + "-Wmost", + "-Wno-four-char-constants", + "-Wno-unknown-pragmas", + ); + WRAPPER_EXTENSION = app; + }; + name = Default; + }; + 010DB7490BB8A8DB003F8968 /* Development */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Development; + }; + 010DB74A0BB8A8DB003F8968 /* Deployment */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Deployment; + }; + 010DB74B0BB8A8DB003F8968 /* Default */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Default; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 010DB7340BB8A8DB003F8968 /* Build configuration list for PBXBundleTarget "glxAGL" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 010DB7350BB8A8DB003F8968 /* Development */, + 010DB7360BB8A8DB003F8968 /* Deployment */, + 010DB7370BB8A8DB003F8968 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 010DB7380BB8A8DB003F8968 /* Build configuration list for PBXBundleTarget "glxMesa" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 010DB7390BB8A8DB003F8968 /* Development */, + 010DB73A0BB8A8DB003F8968 /* Deployment */, + 010DB73B0BB8A8DB003F8968 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 010DB73C0BB8A8DB003F8968 /* Build configuration list for PBXBundleTarget "glxCGL" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 010DB73D0BB8A8DB003F8968 /* Development */, + 010DB73E0BB8A8DB003F8968 /* Deployment */, + 010DB73F0BB8A8DB003F8968 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 010DB7400BB8A8DB003F8968 /* Build configuration list for PBXBundleTarget "xpr" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 010DB7410BB8A8DB003F8968 /* Development */, + 010DB7420BB8A8DB003F8968 /* Deployment */, + 010DB7430BB8A8DB003F8968 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 010DB7440BB8A8DB003F8968 /* Build configuration list for PBXApplicationTarget "XDarwin" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 010DB7450BB8A8DB003F8968 /* Development */, + 010DB7460BB8A8DB003F8968 /* Deployment */, + 010DB7470BB8A8DB003F8968 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; + 010DB7480BB8A8DB003F8968 /* Build configuration list for PBXProject "XDarwin" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 010DB7490BB8A8DB003F8968 /* Development */, + 010DB74A0BB8A8DB003F8968 /* Deployment */, + 010DB74B0BB8A8DB003F8968 /* Default */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Default; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} Index: xc/programs/Xserver/hw/darwin/quartz/cr/Imakefile diff -u xc/programs/Xserver/hw/darwin/quartz/cr/Imakefile:1.4 xc/programs/Xserver/hw/darwin/quartz/cr/Imakefile:1.5 --- xc/programs/Xserver/hw/darwin/quartz/cr/Imakefile:1.4 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/cr/Imakefile Mon Apr 2 20:21:10 2007 @@ -1,9 +1,13 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/Imakefile,v 1.4 2005/10/14 15:16:24 tsi Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/Imakefile,v 1.5 2007/04/03 00:21:10 tsi Exp $ #include -LinkSourceFile(quartzCursor.c,../fullscreen) -LinkSourceFile(quartzCursor.h,../fullscreen) +XCOMM Ensure any old/duplicate copy is removed +Makefiles:: + -RemoveFiles(quartzCursor.c quartzCursor.h) + +LinkSourceFile(quartzCursor.c,..) +LinkSourceFile(quartzCursor.h,..) SRCS = crAppleWM.m \ crFrame.m \ Index: xc/programs/Xserver/hw/darwin/quartz/cr/crAppleWM.m diff -u xc/programs/Xserver/hw/darwin/quartz/cr/crAppleWM.m:1.2 xc/programs/Xserver/hw/darwin/quartz/cr/crAppleWM.m:1.3 --- xc/programs/Xserver/hw/darwin/quartz/cr/crAppleWM.m:1.2 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/cr/crAppleWM.m Mon Apr 2 20:21:10 2007 @@ -26,7 +26,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/crAppleWM.m,v 1.2 2005/10/14 15:16:24 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/crAppleWM.m,v 1.3 2007/04/03 00:21:10 tsi Exp $ */ #include "quartzCommon.h" #include "cr.h" @@ -107,7 +107,7 @@ const BoxRec *outer, const BoxRec *inner, unsigned int title_len, - const unsigned char *title_bytes) + const char *title_bytes) { CRWindowPtr crWinPtr; NSWindow *window; Index: xc/programs/Xserver/hw/darwin/quartz/cr/crFrame.m diff -u xc/programs/Xserver/hw/darwin/quartz/cr/crFrame.m:1.9 xc/programs/Xserver/hw/darwin/quartz/cr/crFrame.m:1.10 --- xc/programs/Xserver/hw/darwin/quartz/cr/crFrame.m:1.9 Thu Mar 18 21:05:29 2004 +++ xc/programs/Xserver/hw/darwin/quartz/cr/crFrame.m Mon Apr 2 20:21:10 2007 @@ -27,7 +27,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/crFrame.m,v 1.9 2004/03/19 02:05:29 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/crFrame.m,v 1.10 2007/04/03 00:21:10 tsi Exp $ */ #include "quartzCommon.h" #include "cr.h" @@ -35,6 +35,7 @@ #undef BOOL #define BOOL xBOOL #include "rootless.h" +#include "applewmExt.h" #include "windowstr.h" #undef BOOL @@ -388,6 +389,17 @@ } +/* + * Called to check if the frame should be reordered when it is restacked. + */ +Bool CRDoReorderWindow(RootlessWindowPtr pFrame) +{ + WindowPtr pWin = pFrame->win; + + return AppleWMDoReorderWindow(pWin); +} + + static RootlessFrameProcsRec CRRootlessProcs = { CRCreateFrame, CRDestroyFrame, @@ -401,6 +413,8 @@ CRUpdateRegion, CRDamageRects, NULL, + CRDoReorderWindow, + NULL, NULL, NULL, NULL Index: xc/programs/Xserver/hw/darwin/quartz/cr/crScreen.m diff -u xc/programs/Xserver/hw/darwin/quartz/cr/crScreen.m:1.8 xc/programs/Xserver/hw/darwin/quartz/cr/crScreen.m:1.9 --- xc/programs/Xserver/hw/darwin/quartz/cr/crScreen.m:1.8 Thu Jul 15 14:53:25 2004 +++ xc/programs/Xserver/hw/darwin/quartz/cr/crScreen.m Wed Jan 3 21:48:12 2007 @@ -27,7 +27,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/crScreen.m,v 1.8 2004/07/15 18:53:25 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/cr/crScreen.m,v 1.9 2007/01/04 02:48:12 tsi Exp $ */ #include "quartzCommon.h" #include "cr.h" @@ -295,7 +295,7 @@ * Finalize CR specific setup. */ static void -CRInitInput(int argc, char **argv) +CRInitInput(int argc, const char **argv) { int i; Index: xc/programs/Xserver/hw/darwin/quartz/fullscreen/Imakefile diff -u xc/programs/Xserver/hw/darwin/quartz/fullscreen/Imakefile:1.2 xc/programs/Xserver/hw/darwin/quartz/fullscreen/Imakefile:1.3 --- xc/programs/Xserver/hw/darwin/quartz/fullscreen/Imakefile:1.2 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/fullscreen/Imakefile Mon Apr 2 20:21:10 2007 @@ -1,7 +1,14 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/quartz/fullscreen/Imakefile,v 1.2 2005/10/14 15:16:24 tsi Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/quartz/fullscreen/Imakefile,v 1.3 2007/04/03 00:21:10 tsi Exp $ #include +XCOMM Ensure any old/duplicate copy is removed +Makefiles:: + -RemoveFiles(quartzCursor.c quartzCursor.h) + +LinkSourceFile(quartzCursor.c,..) +LinkSourceFile(quartzCursor.h,..) + SRCS = fullscreen.c \ quartzCursor.c Index: xc/programs/Xserver/hw/darwin/quartz/fullscreen/fullscreen.c diff -u xc/programs/Xserver/hw/darwin/quartz/fullscreen/fullscreen.c:1.6 xc/programs/Xserver/hw/darwin/quartz/fullscreen/fullscreen.c:1.7 --- xc/programs/Xserver/hw/darwin/quartz/fullscreen/fullscreen.c:1.6 Thu Jul 15 14:53:25 2004 +++ xc/programs/Xserver/hw/darwin/quartz/fullscreen/fullscreen.c Mon Apr 2 20:21:10 2007 @@ -25,7 +25,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/fullscreen/fullscreen.c,v 1.6 2004/07/15 18:53:25 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/fullscreen/fullscreen.c,v 1.7 2007/04/03 00:21:10 tsi Exp $ */ #include "quartzCommon.h" #include "darwin.h" @@ -47,8 +47,7 @@ unsigned char *shadowPtr; } FSScreenRec, *FSScreenPtr; -#define FULLSCREEN_PRIV(pScreen) \ - ((FSScreenPtr)pScreen->devPrivates[fsScreenIndex].ptr) +#define FULLSCREEN_PRIV(pScreen) pScreen->devPrivates[fsScreenIndex].ptr static int fsScreenIndex; static CGDirectDisplayID *quartzDisplayList = NULL; @@ -58,8 +57,7 @@ static int darwinCmapPrivateIndex = -1; static unsigned long darwinCmapGeneration = 0; -#define CMAP_PRIV(pCmap) \ - ((CGDirectPaletteRef) (pCmap)->devPrivates[darwinCmapPrivateIndex].ptr) +#define CMAP_PRIV(pCmap) (pCmap)->devPrivates[darwinCmapPrivateIndex].ptr /* ============================================================================= Index: xc/programs/Xserver/hw/darwin/quartz/fullscreen/quartzCursor.c diff -u xc/programs/Xserver/hw/darwin/quartz/fullscreen/quartzCursor.c:1.1 xc/programs/Xserver/hw/darwin/quartz/fullscreen/quartzCursor.c:removed --- xc/programs/Xserver/hw/darwin/quartz/fullscreen/quartzCursor.c:1.1 Mon Sep 15 20:36:15 2003 +++ xc/programs/Xserver/hw/darwin/quartz/fullscreen/quartzCursor.c Sun Aug 12 22:01:37 2007 @@ -1,653 +0,0 @@ -/************************************************************** - * - * Support for using the Quartz Window Manager cursor - * - **************************************************************/ -/* - * Copyright (c) 2001-2003 Torrey T. Lyons and Greg Parker. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * 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 ABOVE LISTED COPYRIGHT HOLDER(S) 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(s) of the above copyright - * holders shall not be used in advertising or otherwise to promote the sale, - * use or other dealings in this Software without prior written authorization. - */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/fullscreen/quartzCursor.c,v 1.1 2003/09/16 00:36:15 torrey Exp $ */ - -#include "quartzCommon.h" -#include "quartzCursor.h" -#include "darwin.h" - -#include - -#include "mi.h" -#include "scrnintstr.h" -#include "cursorstr.h" -#include "mipointrst.h" -#include "globals.h" - -// Size of the QuickDraw cursor -#define CURSORWIDTH 16 -#define CURSORHEIGHT 16 - -typedef struct { - int qdCursorMode; - int qdCursorVisible; - int useQDCursor; - QueryBestSizeProcPtr QueryBestSize; - miPointerSpriteFuncPtr spriteFuncs; -} QuartzCursorScreenRec, *QuartzCursorScreenPtr; - -static int darwinCursorScreenIndex = -1; -static unsigned long darwinCursorGeneration = 0; -static CursorPtr quartzLatentCursor = NULL; -static QD_Cursor gQDArrow; // QuickDraw arrow cursor - -// Cursor for the main thread to set (NULL = arrow cursor). -static CCrsrHandle currentCursor = NULL; -static pthread_mutex_t cursorMutex; -static pthread_cond_t cursorCondition; - -#define CURSOR_PRIV(pScreen) \ - ((QuartzCursorScreenPtr)pScreen->devPrivates[darwinCursorScreenIndex].ptr) - -#define HIDE_QD_CURSOR(pScreen, visible) \ - if (visible) { \ - int ix; \ - for (ix = 0; ix < QUARTZ_PRIV(pScreen)->displayCount; ix++) { \ - CGDisplayHideCursor(QUARTZ_PRIV(pScreen)->displayIDs[ix]); \ - } \ - visible = FALSE; \ - } ((void)0) - -#define SHOW_QD_CURSOR(pScreen, visible) \ - { \ - int ix; \ - for (ix = 0; ix < QUARTZ_PRIV(pScreen)->displayCount; ix++) { \ - CGDisplayShowCursor(QUARTZ_PRIV(pScreen)->displayIDs[ix]); \ - } \ - visible = TRUE; \ - } ((void)0) - -#define CHANGE_QD_CURSOR(cursorH) \ - if (!quartzServerQuitting) { \ - /* Acquire lock and tell the main thread to change cursor */ \ - pthread_mutex_lock(&cursorMutex); \ - currentCursor = (CCrsrHandle) (cursorH); \ - QuartzMessageMainThread(kQuartzCursorUpdate, NULL, 0); \ - \ - /* Wait for the main thread to change the cursor */ \ - pthread_cond_wait(&cursorCondition, &cursorMutex); \ - pthread_mutex_unlock(&cursorMutex); \ - } ((void)0) - - -/* - * MakeQDCursor helpers: CTAB_ENTER, interleave - */ - -// Add a color entry to a ctab -#define CTAB_ENTER(ctab, index, r, g, b) \ - ctab->ctTable[index].value = index; \ - ctab->ctTable[index].rgb.red = r; \ - ctab->ctTable[index].rgb.green = g; \ - ctab->ctTable[index].rgb.blue = b - -// Make an unsigned short by interleaving the bits of bytes c1 and c2. -// High bit of c1 is first; low bit of c2 is last. -// Interleave is a built-in INTERCAL operator. -static unsigned short -interleave( - unsigned char c1, - unsigned char c2 ) -{ - return - ((c1 & 0x80) << 8) | ((c2 & 0x80) << 7) | - ((c1 & 0x40) << 7) | ((c2 & 0x40) << 6) | - ((c1 & 0x20) << 6) | ((c2 & 0x20) << 5) | - ((c1 & 0x10) << 5) | ((c2 & 0x10) << 4) | - ((c1 & 0x08) << 4) | ((c2 & 0x08) << 3) | - ((c1 & 0x04) << 3) | ((c2 & 0x04) << 2) | - ((c1 & 0x02) << 2) | ((c2 & 0x02) << 1) | - ((c1 & 0x01) << 1) | ((c2 & 0x01) << 0) ; -} - -/* - * MakeQDCursor - * Make a QuickDraw color cursor from the given X11 cursor. - * Warning: This code is nasty. Color cursors were meant to be read - * from resources; constructing the structures programmatically is messy. - */ -/* - QuickDraw cursor representation: - Our color cursor is a 2 bit per pixel pixmap. - Each pixel's bits are (source<<1 | mask) from the original X cursor pixel. - The cursor's color table maps the colors like this: - (2-bit value | X result | colortable | Mac result) - 00 | transparent | white | transparent (white outside mask) - 01 | back color | back color | back color - 10 | undefined | black | invert background (just for fun) - 11 | fore color | fore color | fore color -*/ -static CCrsrHandle -MakeQDCursor( - CursorPtr pCursor ) -{ - CCrsrHandle result; - CCrsrPtr curs; - int i, w, h; - unsigned short rowMask; - PixMap *pix; - ColorTable *ctab; - unsigned short *image; - - result = (CCrsrHandle) NewHandleClear(sizeof(CCrsr)); - if (!result) return NULL; - HLock((Handle)result); - curs = *result; - - // Initialize CCrsr - curs->crsrType = 0x8001; // 0x8000 = b&w, 0x8001 = color - curs->crsrMap = (PixMapHandle) NewHandleClear(sizeof(PixMap)); - if (!curs->crsrMap) goto pixAllocFailed; - HLock((Handle)curs->crsrMap); - pix = *curs->crsrMap; - curs->crsrData = NULL; // raw cursor image data (set below) - curs->crsrXData = NULL; // QD's processed data - curs->crsrXValid = 0; // zero means QD must re-process cursor data - curs->crsrXHandle = NULL; // reserved - memset(curs->crsr1Data, 0, CURSORWIDTH*CURSORHEIGHT/8); // b&w data - memset(curs->crsrMask, 0, CURSORWIDTH*CURSORHEIGHT/8); // b&w & color mask - curs->crsrHotSpot.h = min(CURSORWIDTH, pCursor->bits->xhot); // hot spot - curs->crsrHotSpot.v = min(CURSORHEIGHT, pCursor->bits->yhot); // hot spot - curs->crsrXTable = 0; // reserved - curs->crsrID = GetCTSeed(); // unique ID from Color Manager - - // Set the b&w data and mask - w = min(pCursor->bits->width, CURSORWIDTH); - h = min(pCursor->bits->height, CURSORHEIGHT); - rowMask = ~((1 << (CURSORWIDTH - w)) - 1); - for (i = 0; i < h; i++) { - curs->crsr1Data[i] = rowMask & - ((pCursor->bits->source[i*4]<<8) | pCursor->bits->source[i*4+1]); - curs->crsrMask[i] = rowMask & - ((pCursor->bits->mask[i*4]<<8) | pCursor->bits->mask[i*4+1]); - } - - // Set the color data and mask - // crsrMap: defines bit depth and size and colortable only - pix->rowBytes = (CURSORWIDTH * 2 / 8) | 0x8000; // last bit on means PixMap - SetRect(&pix->bounds, 0, 0, CURSORWIDTH, CURSORHEIGHT); // see TN 1020 - pix->pixelSize = 2; - pix->cmpCount = 1; - pix->cmpSize = 2; - // pix->pmTable set below - - // crsrData is the pixel data. crsrMap's baseAddr is not used. - curs->crsrData = NewHandleClear(CURSORWIDTH*CURSORHEIGHT * 2 / 8); - if (!curs->crsrData) goto imageAllocFailed; - HLock((Handle)curs->crsrData); - image = (unsigned short *) *curs->crsrData; - // Pixel data is just 1-bit data and mask interleaved (see above) - for (i = 0; i < h; i++) { - unsigned char s, m; - s = pCursor->bits->source[i*4] & (rowMask >> 8); - m = pCursor->bits->mask[i*4] & (rowMask >> 8); - image[2*i] = interleave(s, m); - s = pCursor->bits->source[i*4+1] & (rowMask & 0x00ff); - m = pCursor->bits->mask[i*4+1] & (rowMask & 0x00ff); - image[2*i+1] = interleave(s, m); - } - - // Build the color table (entries described above) - // NewPixMap allocates a color table handle. - pix->pmTable = (CTabHandle) NewHandleClear(sizeof(ColorTable) + 3 - * sizeof(ColorSpec)); - if (!pix->pmTable) goto ctabAllocFailed; - HLock((Handle)pix->pmTable); - ctab = *pix->pmTable; - ctab->ctSeed = GetCTSeed(); - ctab->ctFlags = 0; - ctab->ctSize = 3; // color count - 1 - CTAB_ENTER(ctab, 0, 0xffff, 0xffff, 0xffff); - CTAB_ENTER(ctab, 1, pCursor->backRed, pCursor->backGreen, - pCursor->backBlue); - CTAB_ENTER(ctab, 2, 0x0000, 0x0000, 0x0000); - CTAB_ENTER(ctab, 3, pCursor->foreRed, pCursor->foreGreen, - pCursor->foreBlue); - - HUnlock((Handle)pix->pmTable); // ctab - HUnlock((Handle)curs->crsrData); // image data - HUnlock((Handle)curs->crsrMap); // pix - HUnlock((Handle)result); // cursor - - return result; - - // "What we have here is a failure to allocate" -ctabAllocFailed: - HUnlock((Handle)curs->crsrData); - DisposeHandle((Handle)curs->crsrData); -imageAllocFailed: - HUnlock((Handle)curs->crsrMap); - DisposeHandle((Handle)curs->crsrMap); -pixAllocFailed: - HUnlock((Handle)result); - DisposeHandle((Handle)result); - return NULL; -} - - -/* - * FreeQDCursor - * Destroy a QuickDraw color cursor created with MakeQDCursor(). - * The cursor must not currently be on screen. - */ -static void FreeQDCursor(CCrsrHandle cursHandle) -{ - CCrsrPtr curs; - PixMap *pix; - - HLock((Handle)cursHandle); - curs = *cursHandle; - HLock((Handle)curs->crsrMap); - pix = *curs->crsrMap; - DisposeHandle((Handle)pix->pmTable); - HUnlock((Handle)curs->crsrMap); - DisposeHandle((Handle)curs->crsrMap); - DisposeHandle((Handle)curs->crsrData); - HUnlock((Handle)cursHandle); - DisposeHandle((Handle)cursHandle); -} - - -/* -=========================================================================== - - Pointer sprite functions - -=========================================================================== -*/ - -/* - * QuartzRealizeCursor - * Convert the X cursor representation to QuickDraw format if possible. - */ -Bool -QuartzRealizeCursor( - ScreenPtr pScreen, - CursorPtr pCursor ) -{ - CCrsrHandle qdCursor; - QuartzCursorScreenPtr ScreenPriv = CURSOR_PRIV(pScreen); - - if(!pCursor || !pCursor->bits) - return FALSE; - - // if the cursor is too big we use a software cursor - if ((pCursor->bits->height > CURSORHEIGHT) || - (pCursor->bits->width > CURSORWIDTH) || !ScreenPriv->useQDCursor) - { - if (quartzRootless) { - // rootless can't use a software cursor - return TRUE; - } else { - return (*ScreenPriv->spriteFuncs->RealizeCursor) - (pScreen, pCursor); - } - } - - // make new cursor image - qdCursor = MakeQDCursor(pCursor); - if (!qdCursor) return FALSE; - - // save the result - pCursor->devPriv[pScreen->myNum] = (pointer) qdCursor; - - return TRUE; -} - - -/* - * QuartzUnrealizeCursor - * Free the storage space associated with a realized cursor. - */ -Bool -QuartzUnrealizeCursor( - ScreenPtr pScreen, - CursorPtr pCursor ) -{ - QuartzCursorScreenPtr ScreenPriv = CURSOR_PRIV(pScreen); - - if ((pCursor->bits->height > CURSORHEIGHT) || - (pCursor->bits->width > CURSORWIDTH) || !ScreenPriv->useQDCursor) - { - if (quartzRootless) { - return TRUE; - } else { - return (*ScreenPriv->spriteFuncs->UnrealizeCursor) - (pScreen, pCursor); - } - } else { - CCrsrHandle oldCursor = (CCrsrHandle) pCursor->devPriv[pScreen->myNum]; - - if (currentCursor != oldCursor) { - // This should only fail when quitting, in which case we just leak. - FreeQDCursor(oldCursor); - } - pCursor->devPriv[pScreen->myNum] = NULL; - return TRUE; - } -} - - -/* - * QuartzSetCursor - * Set the cursor sprite and position. - * Use QuickDraw cursor if possible. - */ -static void -QuartzSetCursor( - ScreenPtr pScreen, - CursorPtr pCursor, - int x, - int y) -{ - QuartzCursorScreenPtr ScreenPriv = CURSOR_PRIV(pScreen); - - quartzLatentCursor = pCursor; - - // Don't touch Mac OS cursor if X is hidden! - if (!quartzServerVisible) - return; - - if (!pCursor) { - // Remove the cursor completely. - HIDE_QD_CURSOR(pScreen, ScreenPriv->qdCursorVisible); - if (! ScreenPriv->qdCursorMode) - (*ScreenPriv->spriteFuncs->SetCursor)(pScreen, 0, x, y); - } - else if ((pCursor->bits->height <= CURSORHEIGHT) && - (pCursor->bits->width <= CURSORWIDTH) && ScreenPriv->useQDCursor) - { - // Cursor is small enough to use QuickDraw directly. - if (! ScreenPriv->qdCursorMode) // remove the X cursor - (*ScreenPriv->spriteFuncs->SetCursor)(pScreen, 0, x, y); - ScreenPriv->qdCursorMode = TRUE; - - CHANGE_QD_CURSOR(pCursor->devPriv[pScreen->myNum]); - SHOW_QD_CURSOR(pScreen, ScreenPriv->qdCursorVisible); - } - else if (quartzRootless) { - // Rootless can't use a software cursor, so we just use Mac OS arrow. - CHANGE_QD_CURSOR(NULL); - SHOW_QD_CURSOR(pScreen, ScreenPriv->qdCursorVisible); - } - else { - // Cursor is too big for QuickDraw. Use X software cursor. - HIDE_QD_CURSOR(pScreen, ScreenPriv->qdCursorVisible); - ScreenPriv->qdCursorMode = FALSE; - (*ScreenPriv->spriteFuncs->SetCursor)(pScreen, pCursor, x, y); - } -} - - -/* - * QuartzReallySetCursor - * Set the QuickDraw cursor. Called from the main thread since changing the - * cursor with QuickDraw is not thread safe on dual processor machines. - */ -void -QuartzReallySetCursor() -{ - pthread_mutex_lock(&cursorMutex); - - if (currentCursor) { - SetCCursor(currentCursor); - } else { - SetCursor(&gQDArrow); - } - - pthread_cond_signal(&cursorCondition); - pthread_mutex_unlock(&cursorMutex); -} - - -/* - * QuartzMoveCursor - * Move the cursor. This is a noop for QuickDraw. - */ -static void -QuartzMoveCursor( - ScreenPtr pScreen, - int x, - int y) -{ - QuartzCursorScreenPtr ScreenPriv = CURSOR_PRIV(pScreen); - - // only the X cursor needs to be explicitly moved - if (!ScreenPriv->qdCursorMode) - (*ScreenPriv->spriteFuncs->MoveCursor)(pScreen, x, y); -} - - -static miPointerSpriteFuncRec quartzSpriteFuncsRec = { - QuartzRealizeCursor, - QuartzUnrealizeCursor, - QuartzSetCursor, - QuartzMoveCursor -}; - - -/* -=========================================================================== - - Pointer screen functions - -=========================================================================== -*/ - -/* - * QuartzCursorOffScreen - */ -static Bool QuartzCursorOffScreen(ScreenPtr *pScreen, int *x, int *y) -{ - return FALSE; -} - - -/* - * QuartzCrossScreen - */ -static void QuartzCrossScreen(ScreenPtr pScreen, Bool entering) -{ - return; -} - - -/* - * QuartzWarpCursor - * Change the cursor position without generating an event or motion history. - * The input coordinates (x,y) are in pScreen-local X11 coordinates. - * - */ -static void -QuartzWarpCursor( - ScreenPtr pScreen, - int x, - int y) -{ - static int neverMoved = TRUE; - - if (neverMoved) { - // Don't move the cursor the first time. This is the jump-to-center - // initialization, and it's annoying because we may still be in MacOS. - neverMoved = FALSE; - return; - } - - if (quartzServerVisible) { - CGDisplayErr cgErr; - CGPoint cgPoint; - // Only need to do this for one display. Any display will do. - CGDirectDisplayID cgID = QUARTZ_PRIV(pScreen)->displayIDs[0]; - CGRect cgRect = CGDisplayBounds(cgID); - - // Convert (x,y) to CoreGraphics screen-local CG coordinates. - // This is necessary because the X11 screen and CG screen may not - // coincide. (e.g. X11 screen may be moved to dodge the menu bar) - - // Make point in X11 global coordinates - cgPoint = CGPointMake(x + dixScreenOrigins[pScreen->myNum].x, - y + dixScreenOrigins[pScreen->myNum].y); - // Shift to CoreGraphics global screen coordinates - cgPoint.x += darwinMainScreenX; - cgPoint.y += darwinMainScreenY; - // Shift to CoreGraphics screen-local coordinates - cgPoint.x -= cgRect.origin.x; - cgPoint.y -= cgRect.origin.y; - - cgErr = CGDisplayMoveCursorToPoint(cgID, cgPoint); - if (cgErr != CGDisplayNoErr) { - ErrorF("Could not set cursor position with error code 0x%x.\n", - cgErr); - } - } - - miPointerWarpCursor(pScreen, x, y); - miPointerUpdate(); -} - - -static miPointerScreenFuncRec quartzScreenFuncsRec = { - QuartzCursorOffScreen, - QuartzCrossScreen, - QuartzWarpCursor, - DarwinEQPointerPost, - DarwinEQSwitchScreen -}; - - -/* -=========================================================================== - - Other screen functions - -=========================================================================== -*/ - -/* - * QuartzCursorQueryBestSize - * Handle queries for best cursor size - */ -static void -QuartzCursorQueryBestSize( - int class, - unsigned short *width, - unsigned short *height, - ScreenPtr pScreen) -{ - QuartzCursorScreenPtr ScreenPriv = CURSOR_PRIV(pScreen); - - if (class == CursorShape) { - *width = CURSORWIDTH; - *height = CURSORHEIGHT; - } else { - (*ScreenPriv->QueryBestSize)(class, width, height, pScreen); - } -} - - -/* - * QuartzInitCursor - * Initialize cursor support - */ -Bool -QuartzInitCursor( - ScreenPtr pScreen ) -{ - QuartzCursorScreenPtr ScreenPriv; - miPointerScreenPtr PointPriv; - DarwinFramebufferPtr dfb = SCREEN_PRIV(pScreen); - - // initialize software cursor handling (always needed as backup) - if (!miDCInitialize(pScreen, &quartzScreenFuncsRec)) { - return FALSE; - } - - // allocate private storage for this screen's QuickDraw cursor info - if (darwinCursorGeneration != serverGeneration) { - if ((darwinCursorScreenIndex = AllocateScreenPrivateIndex()) < 0) - return FALSE; - darwinCursorGeneration = serverGeneration; - } - - ScreenPriv = xcalloc( 1, sizeof(QuartzCursorScreenRec) ); - if (!ScreenPriv) return FALSE; - - CURSOR_PRIV(pScreen) = ScreenPriv; - - // override some screen procedures - ScreenPriv->QueryBestSize = pScreen->QueryBestSize; - pScreen->QueryBestSize = QuartzCursorQueryBestSize; - - // initialize QuickDraw cursor handling - GetQDGlobalsArrow(&gQDArrow); - PointPriv = (miPointerScreenPtr) - pScreen->devPrivates[miPointerScreenIndex].ptr; - - ScreenPriv->spriteFuncs = PointPriv->spriteFuncs; - PointPriv->spriteFuncs = &quartzSpriteFuncsRec; - - if (!quartzRootless) - ScreenPriv->useQDCursor = QuartzFSUseQDCursor(dfb->colorBitsPerPixel); - else - ScreenPriv->useQDCursor = TRUE; - ScreenPriv->qdCursorMode = TRUE; - ScreenPriv->qdCursorVisible = TRUE; - - // initialize cursor mutex lock - pthread_mutex_init(&cursorMutex, NULL); - - // initialize condition for waiting - pthread_cond_init(&cursorCondition, NULL); - - return TRUE; -} - - -// X server is hiding. Restore the Aqua cursor. -void QuartzSuspendXCursor( - ScreenPtr pScreen ) -{ - QuartzCursorScreenPtr ScreenPriv = CURSOR_PRIV(pScreen); - - CHANGE_QD_CURSOR(NULL); - SHOW_QD_CURSOR(pScreen, ScreenPriv->qdCursorVisible); -} - - -// X server is showing. Restore the X cursor. -void QuartzResumeXCursor( - ScreenPtr pScreen, - int x, - int y ) -{ - QuartzSetCursor(pScreen, quartzLatentCursor, x, y); -} Index: xc/programs/Xserver/hw/darwin/quartz/fullscreen/quartzCursor.h diff -u xc/programs/Xserver/hw/darwin/quartz/fullscreen/quartzCursor.h:1.1 xc/programs/Xserver/hw/darwin/quartz/fullscreen/quartzCursor.h:removed --- xc/programs/Xserver/hw/darwin/quartz/fullscreen/quartzCursor.h:1.1 Mon Sep 15 20:36:15 2003 +++ xc/programs/Xserver/hw/darwin/quartz/fullscreen/quartzCursor.h Sun Aug 12 22:01:37 2007 @@ -1,44 +0,0 @@ -/* - * quartzCursor.h - * - * External interface for Quartz hardware cursor - */ -/* - * Copyright (c) 2001 Torrey T. Lyons and Greg Parker. - * All Rights Reserved. - * - * Permission is hereby granted, free of charge, to any person obtaining a - * copy of this software and associated documentation files (the "Software"), - * to deal in the Software without restriction, including without limitation - * the rights to use, copy, modify, merge, publish, distribute, sublicense, - * and/or sell copies of the Software, and to permit persons to whom the - * Software is furnished to do so, subject to the following conditions: - * - * 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 ABOVE LISTED COPYRIGHT HOLDER(S) 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(s) of the above copyright - * holders shall not be used in advertising or otherwise to promote the sale, - * use or other dealings in this Software without prior written authorization. - */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/fullscreen/quartzCursor.h,v 1.1 2003/09/16 00:36:15 torrey Exp $ */ - -#ifndef QUARTZCURSOR_H -#define QUARTZCURSOR_H - -#include "screenint.h" - -Bool QuartzInitCursor(ScreenPtr pScreen); -void QuartzReallySetCursor(void); -void QuartzSuspendXCursor(ScreenPtr pScreen); -void QuartzResumeXCursor(ScreenPtr pScreen, int x, int y); - -#endif Index: xc/programs/Xserver/hw/darwin/quartz/xpr/Imakefile diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/Imakefile:1.5 xc/programs/Xserver/hw/darwin/quartz/xpr/Imakefile:1.6 --- xc/programs/Xserver/hw/darwin/quartz/xpr/Imakefile:1.5 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/Imakefile Mon Apr 2 20:21:10 2007 @@ -1,8 +1,8 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/Imakefile,v 1.5 2005/10/14 15:16:24 tsi Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/Imakefile,v 1.6 2007/04/03 00:21:10 tsi Exp $ #include -SRCS = appledir.c \ +SRCS = appledri.c \ dri.c \ xprAppleWM.c \ xprCursor.c \ Index: xc/programs/Xserver/hw/darwin/quartz/xpr/Xplugin.h diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/Xplugin.h:1.4 xc/programs/Xserver/hw/darwin/quartz/xpr/Xplugin.h:1.5 --- xc/programs/Xserver/hw/darwin/quartz/xpr/Xplugin.h:1.4 Mon Jan 9 09:59:48 2006 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/Xplugin.h Mon Apr 2 20:21:10 2007 @@ -29,7 +29,7 @@ Note that these interfaces are provided solely for the use of the X11 server. Any other uses are unsupported and strongly discouraged. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/Xplugin.h,v 1.4 2006/01/09 14:59:48 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/Xplugin.h,v 1.5 2007/04/03 00:21:10 tsi Exp $ */ #ifndef XPLUGIN_H #define XPLUGIN_H 1 @@ -525,7 +525,7 @@ extern xp_error xp_frame_draw (xp_window_id wid, int class, unsigned int attr, const xp_box *outer, const xp_box *inner, unsigned int title_len, - const unsigned char *title_bytes); + const char *title_bytes); Index: xc/programs/Xserver/hw/darwin/quartz/xpr/appledri.c diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/appledri.c:1.2 xc/programs/Xserver/hw/darwin/quartz/xpr/appledri.c:1.4 --- xc/programs/Xserver/hw/darwin/quartz/xpr/appledri.c:1.2 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/appledri.c Mon Apr 2 20:21:10 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/appledri.c,v 1.2 2005/10/14 15:16:24 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/appledri.c,v 1.4 2007/04/03 00:21:10 tsi Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -75,7 +75,7 @@ void -AppleDRIExtensionInit(void) +AppleDRIExtensionInit(INITARGS) { ExtensionEntry* extEntry; @@ -173,7 +173,7 @@ rep.authenticated = 1; if (!DRIAuthConnection( screenInfo.screens[stuff->screen], stuff->magic)) { - ErrorF("Failed to authenticate %u\n", stuff->magic); + ErrorF("Failed to authenticate %u\n", (unsigned int)stuff->magic); rep.authenticated = 0; } WriteToClient(client, sizeof(xAppleDRIAuthConnectionReply), (char *)&rep); Index: xc/programs/Xserver/hw/darwin/quartz/xpr/dri.c diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/dri.c:1.2 xc/programs/Xserver/hw/darwin/quartz/xpr/dri.c:1.3 --- xc/programs/Xserver/hw/darwin/quartz/xpr/dri.c:1.2 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/dri.c Mon Apr 2 20:21:11 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/dri.c,v 1.2 2005/10/14 15:16:24 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/dri.c,v 1.3 2007/04/03 00:21:11 tsi Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -66,8 +66,11 @@ #include "x-hash.h" #include "x-hook.h" +#include + static int DRIScreenPrivIndex = -1; static int DRIWindowPrivIndex = -1; +static int DRIPixmapPrivIndex = -1; static RESTYPE DRIDrawablePrivResType; @@ -264,12 +267,15 @@ DRIGeneration = serverGeneration; } - /* Allocate a window private index with a zero sized private area for + /* + * Allocate a window private index with a zero sized private area for * each window, then should a window become a DRI window, we'll hang - * a DRIWindowPrivateRec off of this private index. + * a DRIWindowPrivateRec off of this private index. Do same for pixmaps. */ if ((DRIWindowPrivIndex = AllocateWindowPrivateIndex()) < 0) return FALSE; + if ((DRIPixmapPrivIndex = AllocatePixmapPrivateIndex()) < 0) + return FALSE; DRIDrawablePrivResType = CreateNewResourceType(DRIDrawablePrivDelete); @@ -315,15 +321,24 @@ } static void -DRIUpdateSurface(DRIDrawablePrivPtr pDRIDrawablePriv, WindowPtr pWin) +DRIUpdateSurface(DRIDrawablePrivPtr pDRIDrawablePriv, DrawablePtr pDraw) { - WindowPtr pTopWin; xp_window_changes wc; + unsigned int flags = 0; if (pDRIDrawablePriv->sid == 0) return; - pTopWin = TopLevelParent(pWin); +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 + wc.depth = (pDraw->bitsPerPixel == 32 ? XP_DEPTH_ARGB8888 + : pDraw->bitsPerPixel == 16 ? XP_DEPTH_RGB555 : XP_DEPTH_NIL); + if (wc.depth != XP_DEPTH_NIL) + flags |= XP_DEPTH; +#endif + + if (pDraw->type == DRAWABLE_WINDOW) { + WindowPtr pWin = (WindowPtr) pDraw; + WindowPtr pTopWin = TopLevelParent(pWin); wc.x = pWin->drawable.x - (pTopWin->drawable.x - pTopWin->borderWidth); wc.y = pWin->drawable.y - (pTopWin->drawable.y - pTopWin->borderWidth); @@ -336,7 +351,18 @@ wc.shape_tx = - (pTopWin->drawable.x - pTopWin->borderWidth); wc.shape_ty = - (pTopWin->drawable.y - pTopWin->borderWidth); - xp_configure_surface(pDRIDrawablePriv->sid, XP_BOUNDS | XP_SHAPE, &wc); + flags |= XP_BOUNDS | XP_SHAPE; + + } else if (pDraw->type == DRAWABLE_PIXMAP) { + wc.x = 0; + wc.y = 0; + wc.width = pDraw->width; + wc.height = pDraw->height; + wc.bit_gravity = XP_GRAVITY_NONE; + flags |= XP_BOUNDS; + } + + xp_configure_surface(pDRIDrawablePriv->sid, flags, &wc); } Bool @@ -347,18 +373,14 @@ { DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen); DRIDrawablePrivPtr pDRIDrawablePriv; - WindowPtr pWin; + xp_window_id wid = 0; if (pDrawable->type == DRAWABLE_WINDOW) { - pWin = (WindowPtr)pDrawable; - if ((pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_WINDOW(pWin))) { - pDRIDrawablePriv->refCount++; - } - else { - xp_window_id wid; - xp_surface_id sid; + WindowPtr pWin = (WindowPtr)pDrawable; + + pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_WINDOW(pWin); + if (pDRIDrawablePriv == NULL) { xp_error err; - unsigned int key[2]; xp_window_changes wc; /* allocate a DRI Window Private record */ @@ -366,6 +388,12 @@ return FALSE; } + pDRIDrawablePriv->pDraw = pDrawable; + pDRIDrawablePriv->pScreen = pScreen; + pDRIDrawablePriv->refCount = 0; + pDRIDrawablePriv->drawableIndex = -1; + pDRIDrawablePriv->notifiers = NULL; + /* find the physical window */ wid = (xp_window_id) RootlessFrameForWindow (pWin, TRUE); if (wid == 0) { @@ -374,79 +402,114 @@ } /* allocate the physical surface */ - err = xp_create_surface (wid, &sid); + err = xp_create_surface(wid, &pDRIDrawablePriv->sid); if (err != Success) { xfree (pDRIDrawablePriv); return FALSE; } - /* try to give the client access to the surface */ - if (client_id != 0) - { - err = xp_export_surface (wid, sid, client_id, key); - if (err != Success) { - xp_destroy_surface (sid); - xfree (pDRIDrawablePriv); - return FALSE; - } - } - /* Make it visible */ wc.stack_mode = XP_MAPPED_ABOVE; wc.sibling = 0; - err = xp_configure_surface (sid, XP_STACKING, &wc); + err = xp_configure_surface(pDRIDrawablePriv->sid, XP_STACKING, &wc); if (err != Success) { - xp_destroy_surface (sid); + xp_destroy_surface(pDRIDrawablePriv->sid); xfree (pDRIDrawablePriv); return FALSE; } - /* add it to the list of DRI drawables for this screen */ - pDRIDrawablePriv->sid = sid; + /* save private off of preallocated index */ + pWin->devPrivates[DRIWindowPrivIndex].ptr = (pointer)pDRIDrawablePriv; + } + } + +#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 + else if (pDrawable->type == DRAWABLE_PIXMAP) { + PixmapPtr pPix = (PixmapPtr)pDrawable; + + pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_PIXMAP(pPix); + if (pDRIDrawablePriv == NULL) { + xp_error err; + + /* allocate a DRI Window Private record */ + if (!(pDRIDrawablePriv = xcalloc(1, sizeof(DRIDrawablePrivRec)))) { + return FALSE; + } + pDRIDrawablePriv->pDraw = pDrawable; pDRIDrawablePriv->pScreen = pScreen; - pDRIDrawablePriv->refCount = 1; + pDRIDrawablePriv->refCount = 0; pDRIDrawablePriv->drawableIndex = -1; - pDRIDrawablePriv->key[0] = key[0]; - pDRIDrawablePriv->key[1] = key[1]; pDRIDrawablePriv->notifiers = NULL; + /* Passing a null window id to Xplugin in 10.3+ asks for + an accelerated offscreen surface. */ + + err = xp_create_surface(0, &pDRIDrawablePriv->sid); + if (err != Success) { + xfree(pDRIDrawablePriv); + return FALSE; + } + /* save private off of preallocated index */ - pWin->devPrivates[DRIWindowPrivIndex].ptr = - (pointer)pDRIDrawablePriv; + pPix->devPrivates[DRIPixmapPrivIndex].ptr = (pointer)pDRIDrawablePriv; + } + } +#endif + + else { /* for GLX 1.3, a PBuffer */ + /* NOT_DONE */ + return FALSE; + } + + /* Finish initialization of new surfaces */ + if (pDRIDrawablePriv->refCount == 0) { + unsigned int key[2] = {0}; + xp_error err; + + /* try to give the client access to the surface */ + if (client_id != 0 && wid != 0) + { + err = xp_export_surface(wid, pDRIDrawablePriv->sid, + client_id, key); + if (err != Success) { + xp_destroy_surface(pDRIDrawablePriv->sid); + xfree(pDRIDrawablePriv); + return FALSE; + } + } + + pDRIDrawablePriv->key[0] = key[0]; + pDRIDrawablePriv->key[1] = key[1]; ++pDRIPriv->nrWindows; /* and stash it by surface id */ if (surface_hash == NULL) surface_hash = x_hash_table_new (NULL, NULL, NULL, NULL); - x_hash_table_insert (surface_hash, (void *) sid, pDRIDrawablePriv); + x_hash_table_insert(surface_hash, + (void *) pDRIDrawablePriv->sid, pDRIDrawablePriv); /* track this in case this window is destroyed */ - AddResource(id, DRIDrawablePrivResType, (pointer)pWin); + AddResource(id, DRIDrawablePrivResType, (pointer)pDrawable); /* Initialize shape */ - DRIUpdateSurface (pDRIDrawablePriv, pWin); + DRIUpdateSurface(pDRIDrawablePriv, pDrawable); } - if (notify != NULL) { - pDRIDrawablePriv->notifiers - = x_hook_add (pDRIDrawablePriv->notifiers, - notify, notify_data); - } + pDRIDrawablePriv->refCount++; *surface_id = pDRIDrawablePriv->sid; - if (ret_key != NULL) - { + if (ret_key != NULL) { ret_key[0] = pDRIDrawablePriv->key[0]; ret_key[1] = pDRIDrawablePriv->key[1]; } - } - else { /* pixmap (or for GLX 1.3, a PBuffer) */ - /* NOT_DONE */ - return FALSE; + + if (notify != NULL) { + pDRIDrawablePriv->notifiers = x_hook_add(pDRIDrawablePriv->notifiers, + notify, notify_data); } return TRUE; @@ -457,16 +520,18 @@ void (*notify) (void *, void *), void *notify_data) { DRIDrawablePrivPtr pDRIDrawablePriv; - WindowPtr pWin; if (pDrawable->type == DRAWABLE_WINDOW) { - pWin = (WindowPtr)pDrawable; - pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_WINDOW(pWin); + pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_WINDOW((WindowPtr)pDrawable); + } else if (pDrawable->type == DRAWABLE_PIXMAP) { + pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_PIXMAP((PixmapPtr)pDrawable); + } else { + return FALSE; + } + if (pDRIDrawablePriv != NULL) { - if (notify != NULL) - { - pDRIDrawablePriv->notifiers - = x_hook_remove (pDRIDrawablePriv->notifiers, + if (notify != NULL) { + pDRIDrawablePriv->notifiers = x_hook_remove(pDRIDrawablePriv->notifiers, notify, notify_data); } if (--pDRIDrawablePriv->refCount <= 0) { @@ -475,11 +540,6 @@ FreeResourceByType(id, DRIDrawablePrivResType, FALSE); } } - } - else { /* pixmap (or for GLX 1.3, a PBuffer) */ - /* NOT_DONE */ - return FALSE; - } return TRUE; } @@ -489,12 +549,20 @@ { DrawablePtr pDrawable = (DrawablePtr)pResource; DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pDrawable->pScreen); - DRIDrawablePrivPtr pDRIDrawablePriv; - WindowPtr pWin; + DRIDrawablePrivPtr pDRIDrawablePriv = NULL; + WindowPtr pWin = NULL; + PixmapPtr pPix = NULL; if (pDrawable->type == DRAWABLE_WINDOW) { pWin = (WindowPtr)pDrawable; pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_WINDOW(pWin); + } else if (pDrawable->type == DRAWABLE_PIXMAP) { + pPix = (PixmapPtr)pDrawable; + pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_PIXMAP(pPix); + } + + if (pDRIDrawablePriv == NULL) + return FALSE; if (pDRIDrawablePriv->drawableIndex != -1) { /* release drawable table entry */ @@ -510,14 +578,14 @@ x_hook_free (pDRIDrawablePriv->notifiers); xfree(pDRIDrawablePriv); + + if (pDrawable->type == DRAWABLE_WINDOW) { pWin->devPrivates[DRIWindowPrivIndex].ptr = NULL; + } else if (pDrawable->type == DRAWABLE_PIXMAP) { + pPix->devPrivates[DRIPixmapPrivIndex].ptr = NULL; + } --pDRIPriv->nrWindows; - } - else { /* pixmap (or for GLX 1.3, a PBuffer) */ - /* NOT_DONE */ - return FALSE; - } return TRUE; } @@ -552,7 +620,7 @@ if (pDRIPriv->nrWindows > 0) { pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_WINDOW (pWin); if (pDRIDrawablePriv != NULL) { - DRIUpdateSurface (pDRIDrawablePriv, pWin); + DRIUpdateSurface(pDRIDrawablePriv, &pWin->drawable); } } @@ -621,7 +689,7 @@ DRIDrawablePrivPtr pDRIDrawablePriv; if ((pDRIDrawablePriv = DRI_DRAWABLE_PRIV_FROM_WINDOW(pWin))) { - DRIUpdateSurface (pDRIDrawablePriv, pWin); + DRIUpdateSurface(pDRIDrawablePriv, &pWin->drawable); } if(pDRIPriv->wrap.ClipNotify) { Index: xc/programs/Xserver/hw/darwin/quartz/xpr/dri.h diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/dri.h:1.2 xc/programs/Xserver/hw/darwin/quartz/xpr/dri.h:1.3 --- xc/programs/Xserver/hw/darwin/quartz/xpr/dri.h:1.2 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/dri.h Tue Feb 27 11:51:25 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/dri.h,v 1.2 2005/10/14 15:16:24 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/dri.h,v 1.3 2007/02/27 16:51:25 tsi Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -36,6 +36,7 @@ /* Prototypes for AppleDRI functions */ #ifndef _DRI_H_ +#define _DRI_H_ #include #include "scrnintstr.h" @@ -125,6 +126,4 @@ int *minorVersion, int *patchVersion); -#define _DRI_H_ - #endif Index: xc/programs/Xserver/hw/darwin/quartz/xpr/dristruct.h diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/dristruct.h:1.1 xc/programs/Xserver/hw/darwin/quartz/xpr/dristruct.h:1.2 --- xc/programs/Xserver/hw/darwin/quartz/xpr/dristruct.h:1.1 Sun Jun 29 21:45:13 2003 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/dristruct.h Mon Apr 2 20:21:11 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/dristruct.h,v 1.1 2003/06/30 01:45:13 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/dristruct.h,v 1.2 2007/04/03 00:21:11 tsi Exp $ */ /************************************************************************** Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas. @@ -49,7 +49,7 @@ #define DRI_DRAWABLE_PRIV_FROM_PIXMAP(pPix) \ ((DRIPixmapPrivIndex < 0) ? \ NULL : \ - ((DRIDrawablePrivPtr)((pPix)->devPrivates[DRIWindowPrivIndex].ptr))) + ((DRIDrawablePrivPtr)((pPix)->devPrivates[DRIPixmapPrivIndex].ptr))) typedef struct _DRIDrawablePrivRec { Index: xc/programs/Xserver/hw/darwin/quartz/xpr/x-hash.c diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/x-hash.c:1.3 xc/programs/Xserver/hw/darwin/quartz/xpr/x-hash.c:1.4 --- xc/programs/Xserver/hw/darwin/quartz/xpr/x-hash.c:1.3 Mon Jan 9 09:59:48 2006 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/x-hash.c Mon Apr 2 20:21:11 2007 @@ -26,7 +26,7 @@ copyright holders shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/x-hash.c,v 1.3 2006/01/09 14:59:48 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/x-hash.c,v 1.4 2007/04/03 00:21:11 tsi Exp $ */ #include "x-hash.h" #include "x-list.h" @@ -34,8 +34,8 @@ #include struct x_hash_table_struct { - int bucket_index; - int total_keys; + unsigned int bucket_index; + unsigned int total_keys; x_list **buckets; x_hash_fun *hash_key; @@ -222,7 +222,7 @@ { hash_table_destroy_item (h, ITEM_KEY (item), ITEM_VALUE (item)); - ITEM_KEY (item) = k; + item->next = k; ITEM_VALUE (item) = v; } else Index: xc/programs/Xserver/hw/darwin/quartz/xpr/x-hook.c diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/x-hook.c:1.2 xc/programs/Xserver/hw/darwin/quartz/xpr/x-hook.c:1.3 --- xc/programs/Xserver/hw/darwin/quartz/xpr/x-hook.c:1.2 Mon Jan 9 09:59:48 2006 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/x-hook.c Mon Apr 2 20:21:11 2007 @@ -26,7 +26,7 @@ copyright holders shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/x-hook.c,v 1.2 2006/01/09 14:59:48 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/x-hook.c,v 1.3 2007/04/03 00:21:11 tsi Exp $ */ #include "x-hook.h" #include @@ -64,6 +64,8 @@ } X_PFX (list_free) (to_delete); + + return lst; } X_EXTERN void Index: xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.c diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.c:1.3 xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.c:1.4 --- xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.c:1.3 Mon Jan 9 09:59:48 2006 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.c Mon Apr 2 20:21:11 2007 @@ -26,7 +26,7 @@ copyright holders shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.c,v 1.3 2006/01/09 14:59:48 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.c,v 1.4 2007/04/03 00:21:11 tsi Exp $ */ #include "x-list.h" #include @@ -167,6 +167,25 @@ } X_EXTERN x_list * +X_PFX (list_pop) (x_list *lst, void **data_ret) +{ + void *data = NULL; + + if (lst != NULL) + { + x_list *tem = lst; + data = lst->data; + lst = lst->next; + X_PFX (list_free_1) (tem); + } + + if (data_ret != NULL) + *data_ret = data; + + return lst; +} + +X_EXTERN x_list * X_PFX (list_filter) (x_list *lst, int (*pred) (void *item, void *data), void *data) { Index: xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.h diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.h:1.3 xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.h:1.4 --- xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.h:1.3 Mon Jan 9 09:59:48 2006 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.h Mon Apr 2 20:21:11 2007 @@ -26,7 +26,7 @@ copyright holders shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.h,v 1.3 2006/01/09 14:59:48 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/x-list.h,v 1.4 2007/04/03 00:21:11 tsi Exp $ */ #ifndef X_LIST_H #define X_LIST_H 1 @@ -54,6 +54,7 @@ X_EXTERN x_list *X_PFX (list_append) (x_list *lst, void *data); X_EXTERN x_list *X_PFX (list_remove) (x_list *lst, void *data); X_EXTERN void X_PFX (list_free) (x_list *lst); +X_EXTERN x_list *X_PFX (list_pop) (x_list *lst, void **data_ret); X_EXTERN x_list *X_PFX (list_copy) (x_list *lst); X_EXTERN x_list *X_PFX (list_reverse) (x_list *lst); Index: xc/programs/Xserver/hw/darwin/quartz/xpr/xpr.h diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/xpr.h:1.5 xc/programs/Xserver/hw/darwin/quartz/xpr/xpr.h:1.6 --- xc/programs/Xserver/hw/darwin/quartz/xpr/xpr.h:1.5 Wed Nov 26 20:59:53 2003 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/xpr.h Wed Jan 3 21:48:12 2007 @@ -26,16 +26,17 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xpr.h,v 1.5 2003/11/27 01:59:53 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xpr.h,v 1.6 2007/01/04 02:48:12 tsi Exp $ */ #ifndef XPR_H #define XPR_H #include "screenint.h" +#include "extnsionst.h" extern Bool QuartzModeBundleInit(void); -void AppleDRIExtensionInit(void); +void AppleDRIExtensionInit(INITARGS); void xprAppleWMInit(void); Bool xprInit(ScreenPtr pScreen); Bool xprIsX11Window(void *nsWindow, int windowNumber); Index: xc/programs/Xserver/hw/darwin/quartz/xpr/xprAppleWM.c diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/xprAppleWM.c:1.2 xc/programs/Xserver/hw/darwin/quartz/xpr/xprAppleWM.c:1.3 --- xc/programs/Xserver/hw/darwin/quartz/xpr/xprAppleWM.c:1.2 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/xprAppleWM.c Mon Apr 2 20:21:11 2007 @@ -27,7 +27,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprAppleWM.c,v 1.2 2005/10/14 15:16:24 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprAppleWM.c,v 1.3 2007/04/03 00:21:11 tsi Exp $ */ #include "xpr.h" #include "applewmExt.h" @@ -65,7 +65,7 @@ const BoxRec *outer, const BoxRec *inner, unsigned int title_len, - const unsigned char *title_bytes) + const char *title_bytes) { xp_window_id wid; Index: xc/programs/Xserver/hw/darwin/quartz/xpr/xprCursor.c diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/xprCursor.c:1.2 xc/programs/Xserver/hw/darwin/quartz/xpr/xprCursor.c:1.3 --- xc/programs/Xserver/hw/darwin/quartz/xpr/xprCursor.c:1.2 Mon Sep 15 20:36:15 2003 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/xprCursor.c Mon Apr 2 20:21:11 2007 @@ -30,7 +30,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprCursor.c,v 1.2 2003/09/16 00:36:15 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprCursor.c,v 1.3 2007/04/03 00:21:11 tsi Exp $ */ #include "quartzCommon.h" #include "xpr.h" @@ -55,9 +55,7 @@ static int darwinCursorScreenIndex = -1; static unsigned long darwinCursorGeneration = 0; -#define CURSOR_PRIV(pScreen) \ - ((QuartzCursorScreenPtr)pScreen->devPrivates[darwinCursorScreenIndex].ptr) - +#define CURSOR_PRIV(pScreen) pScreen->devPrivates[darwinCursorScreenIndex].ptr static Bool load_cursor(CursorPtr src, int screen) Index: xc/programs/Xserver/hw/darwin/quartz/xpr/xprFrame.c diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/xprFrame.c:1.6 xc/programs/Xserver/hw/darwin/quartz/xpr/xprFrame.c:1.7 --- xc/programs/Xserver/hw/darwin/quartz/xpr/xprFrame.c:1.6 Fri Oct 14 11:16:24 2005 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/xprFrame.c Mon Apr 2 20:21:11 2007 @@ -27,13 +27,14 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprFrame.c,v 1.6 2005/10/14 15:16:24 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprFrame.c,v 1.7 2007/04/03 00:21:11 tsi Exp $ */ #include "xpr.h" #include "rootlessCommon.h" #include "Xplugin.h" #include "x-hash.h" #include "x-list.h" +#include "applewmExt.h" #include "propertyst.h" #include "dix.h" @@ -342,6 +343,17 @@ /* + * Called to check if the frame should be reordered when it is restacked. + */ +Bool xprDoReorderWindow(RootlessWindowPtr pFrame) +{ + WindowPtr pWin = pFrame->win; + + return AppleWMDoReorderWindow(pWin); +} + + +/* * Copy area in frame to another part of frame. * Used to accelerate scrolling. */ @@ -367,6 +379,7 @@ xprUpdateRegion, xprDamageRects, xprSwitchWindow, + xprDoReorderWindow, xp_copy_bytes, xp_fill_bytes, xp_composite_pixels, Index: xc/programs/Xserver/hw/darwin/quartz/xpr/xprScreen.c diff -u xc/programs/Xserver/hw/darwin/quartz/xpr/xprScreen.c:1.11 xc/programs/Xserver/hw/darwin/quartz/xpr/xprScreen.c:1.12 --- xc/programs/Xserver/hw/darwin/quartz/xpr/xprScreen.c:1.11 Thu Jul 15 14:53:25 2004 +++ xc/programs/Xserver/hw/darwin/quartz/xpr/xprScreen.c Wed Jan 3 21:48:12 2007 @@ -27,7 +27,7 @@ * holders shall not be used in advertising or otherwise to promote the sale, * use or other dealings in this Software without prior written authorization. */ -/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprScreen.c,v 1.11 2004/07/15 18:53:25 torrey Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/xpr/xprScreen.c,v 1.12 2007/01/04 02:48:12 tsi Exp $ */ #include "quartzCommon.h" #include "quartz.h" @@ -350,7 +350,7 @@ * Finalize xpr specific setup. */ static void -xprInitInput(int argc, char **argv) +xprInitInput(int argc, const char **argv) { int i; Index: xc/programs/Xserver/hw/darwin/utils/dumpkeymap.c diff -u xc/programs/Xserver/hw/darwin/utils/dumpkeymap.c:1.4 xc/programs/Xserver/hw/darwin/utils/dumpkeymap.c:1.5 --- xc/programs/Xserver/hw/darwin/utils/dumpkeymap.c:1.4 Sun Apr 13 10:52:51 2003 +++ xc/programs/Xserver/hw/darwin/utils/dumpkeymap.c Mon Apr 2 20:21:11 2007 @@ -1,4 +1,4 @@ -// $XFree86: xc/programs/Xserver/hw/darwin/utils/dumpkeymap.c,v 1.4 2003/04/13 14:52:51 herrb Exp $ +// $XFree86: xc/programs/Xserver/hw/darwin/utils/dumpkeymap.c,v 1.5 2007/04/03 00:21:11 tsi Exp $ //============================================================================= // // Copyright (C) 1999,2000 by Eric Sunshine @@ -144,7 +144,7 @@ #include #include #if !defined(DUMPKEYMAP_FILE_ONLY) -#include +#include #endif #define PROG_NAME "dumpkeymap" Index: xc/programs/Xserver/hw/dmx/dmxinit.c diff -u xc/programs/Xserver/hw/dmx/dmxinit.c:1.9 xc/programs/Xserver/hw/dmx/dmxinit.c:1.13 --- xc/programs/Xserver/hw/dmx/dmxinit.c:1.9 Fri Oct 14 11:16:25 2005 +++ xc/programs/Xserver/hw/dmx/dmxinit.c Mon Apr 2 20:21:12 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/dmx/dmxinit.c,v 1.9 2005/10/14 15:16:25 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/dmx/dmxinit.c,v 1.13 2007/04/03 00:21:12 tsi Exp $ */ /* * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina. * @@ -519,9 +519,9 @@ if (!initialized++) { memset(buffer, 0, sizeof(buffer)); - uname(&u); - XmuSnprintf(buffer, sizeof(buffer)-1, "%s %s %s", - u.sysname, u.release, u.version); + if (uname(&u) >= 0) + XmuSnprintf(buffer, sizeof(buffer)-1, "%s %s %s", + u.sysname, u.release, u.version); } return buffer; } @@ -563,7 +563,7 @@ } /** This routine is called in Xserver/dix/main.c from \a main(). */ -void InitOutput(ScreenInfo *pScreenInfo, int argc, char *argv[]) +void InitOutput(ScreenInfo *pScreenInfo, const int argc, const char *argv[]) { int i; static unsigned long dmxGeneration = 0; @@ -816,7 +816,7 @@ /* RATS: Assuming the fp string (which comes from the command-line argv vector) is NULL-terminated, the buffer is large enough for the strcpy. */ -static void dmxSetDefaultFontPath(char *fp) +static void dmxSetDefaultFontPath(const char *fp) { int fplen = strlen(fp) + 1; @@ -887,7 +887,7 @@ #endif /** Process our command line arguments. */ -int ddxProcessArgument(int argc, char *argv[], int i) +int ddxProcessArgument(int argc, const char *argv[], int i) { int retval = 0; @@ -1065,7 +1065,7 @@ #ifdef __DARWIN__ void -DarwinHandleGUI(int argc, char *argv[]) +DarwinHandleGUI(int argc, const char *argv[], char *envp[]) { } #endif Index: xc/programs/Xserver/hw/dmx/dmxinput.c diff -u xc/programs/Xserver/hw/dmx/dmxinput.c:1.1 xc/programs/Xserver/hw/dmx/dmxinput.c:1.3 --- xc/programs/Xserver/hw/dmx/dmxinput.c:1.1 Wed Jun 30 16:21:39 2004 +++ xc/programs/Xserver/hw/dmx/dmxinput.c Tue Jan 23 13:02:57 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/dmx/dmxinput.c,v 1.1 2004/06/30 20:21:39 martin Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/dmx/dmxinput.c,v 1.3 2007/01/23 18:02:57 tsi Exp $ */ /* * Copyright 2001,2002 Red Hat Inc., Durham, North Carolina. * @@ -57,7 +57,7 @@ /** Called from dix/main.c on each server generation to initialize * inputs. All the work is done in dmxInputInit. \see * dmxInputInit() */ -void InitInput(int argc, char **argv) +void InitInput(const int argc, const char **argv) { int i; DMXInputInfo *dmxInput; Index: xc/programs/Xserver/hw/dmx/dmxpixmap.c diff -u xc/programs/Xserver/hw/dmx/dmxpixmap.c:1.1 xc/programs/Xserver/hw/dmx/dmxpixmap.c:1.2 --- xc/programs/Xserver/hw/dmx/dmxpixmap.c:1.1 Wed Jun 30 16:21:39 2004 +++ xc/programs/Xserver/hw/dmx/dmxpixmap.c Mon Apr 9 11:37:14 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/dmx/dmxpixmap.c,v 1.1 2004/06/30 20:21:39 martin Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/dmx/dmxpixmap.c,v 1.2 2007/04/09 15:37:14 tsi Exp $ */ /* * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina. * @@ -211,6 +211,7 @@ pTmpReg = REGION_CREATE(pScreen, NullBox, 1); if(!pReg || !pTmpReg) return NullRegion; + Box.x1 = 0; for (y = 0; y < pPixmap->drawable.height; y++) { Box.y1 = y; Box.y2 = y + 1; Index: xc/programs/Xserver/hw/dmx/dmxscrinit.c diff -u xc/programs/Xserver/hw/dmx/dmxscrinit.c:1.2 xc/programs/Xserver/hw/dmx/dmxscrinit.c:1.4 --- xc/programs/Xserver/hw/dmx/dmxscrinit.c:1.2 Sat Jan 22 11:01:01 2005 +++ xc/programs/Xserver/hw/dmx/dmxscrinit.c Tue Jan 23 13:02:57 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/dmx/dmxscrinit.c,v 1.2 2005/01/22 16:01:01 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/dmx/dmxscrinit.c,v 1.4 2007/01/23 18:02:57 tsi Exp $ */ /* * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina. * @@ -201,7 +201,7 @@ } /** Initialize screen number \a idx. */ -Bool dmxScreenInit(int idx, ScreenPtr pScreen, int argc, char *argv[]) +Bool dmxScreenInit(int idx, ScreenPtr pScreen, const int argc, const char *argv[]) { DMXScreenInfo *dmxScreen = &dmxScreens[idx]; int i, j; Index: xc/programs/Xserver/hw/dmx/dmxscrinit.h diff -u xc/programs/Xserver/hw/dmx/dmxscrinit.h:1.1 xc/programs/Xserver/hw/dmx/dmxscrinit.h:1.3 --- xc/programs/Xserver/hw/dmx/dmxscrinit.h:1.1 Wed Jun 30 16:21:39 2004 +++ xc/programs/Xserver/hw/dmx/dmxscrinit.h Tue Jan 23 13:02:57 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/dmx/dmxscrinit.h,v 1.1 2004/06/30 20:21:39 martin Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/dmx/dmxscrinit.h,v 1.3 2007/01/23 18:02:57 tsi Exp $ */ /* * Copyright 2001-2004 Red Hat Inc., Durham, North Carolina. * @@ -44,7 +44,7 @@ /** Private index. \see dmxscrrinit.c \see input/dmxconcole.c */ extern int dmxScreenPrivateIndex; -extern Bool dmxScreenInit(int idx, ScreenPtr pScreen, int argc, char *argv[]); +extern Bool dmxScreenInit(int idx, ScreenPtr pScreen, const int argc, const char *argv[]); extern void dmxBEScreenInit(int idx, ScreenPtr pScreen); extern void dmxBECloseScreen(ScreenPtr pScreen); Index: xc/programs/Xserver/hw/dmx/config/dmxconfig.c diff -u xc/programs/Xserver/hw/dmx/config/dmxconfig.c:1.3 xc/programs/Xserver/hw/dmx/config/dmxconfig.c:1.5 --- xc/programs/Xserver/hw/dmx/config/dmxconfig.c:1.3 Thu Mar 24 21:22:56 2005 +++ xc/programs/Xserver/hw/dmx/config/dmxconfig.c Tue Jan 23 13:02:57 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/dmx/config/dmxconfig.c,v 1.3 2005/03/25 02:22:56 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/dmx/config/dmxconfig.c,v 1.5 2007/01/23 18:02:57 tsi Exp $ */ /* * Copyright 2002-2003 Red Hat Inc., Durham, North Carolina. * @@ -296,7 +296,7 @@ { DMXConfigStringPtr pt; int argc = 0; - char **argv = NULL; + char const **argv = NULL; if (serverGeneration != 1) return; /* FIXME: only do once, for now */ if (!o || !o->string) return; @@ -307,8 +307,9 @@ argv[argc] = (char *)pt->string; } } - argv[0] = NULL; - ProcessCommandLine(argc+1, argv); + argc++; + argv[0] = argv[argc] = NULL; + ProcessCommandLine(argc, argv); free(argv); } Index: xc/programs/Xserver/hw/dmx/config/xdmxconfig.c diff -u xc/programs/Xserver/hw/dmx/config/xdmxconfig.c:1.4 xc/programs/Xserver/hw/dmx/config/xdmxconfig.c:1.5 --- xc/programs/Xserver/hw/dmx/config/xdmxconfig.c:1.4 Mon Jan 9 09:59:48 2006 +++ xc/programs/Xserver/hw/dmx/config/xdmxconfig.c Mon Apr 9 11:37:14 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/dmx/config/xdmxconfig.c,v 1.4 2006/01/09 14:59:48 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/dmx/config/xdmxconfig.c,v 1.5 2007/04/09 15:37:14 tsi Exp $ */ /* * Copyright 2002 Red Hat Inc., Durham, North Carolina. * @@ -55,7 +55,7 @@ extern FILE *yyin; -#define DMX_INFO "xdmxconfig v0.9\nCopyright 2002 Red Hat Inc.\n$XFree86: xc/programs/Xserver/hw/dmx/config/xdmxconfig.c,v 1.4 2006/01/09 14:59:48 dawes Exp $" +#define DMX_INFO "xdmxconfig v0.9\nCopyright 2002 Red Hat Inc.\n$XFree86: xc/programs/Xserver/hw/dmx/config/xdmxconfig.c,v 1.5 2007/04/09 15:37:14 tsi Exp $" #define DMX_MAIN_WIDTH 800 #define DMX_MAIN_HEIGHT 600 @@ -137,7 +137,7 @@ DMXConfigEntryPtr e; *maxWidth = dmxConfigWallWidth = 0; - *maxWidth = dmxConfigWallHeight = 0; + *maxHeight = dmxConfigWallHeight = 0; if (!dmxConfigCurrent) return; dmxConfigWallWidth = dmxConfigCurrent->width; Index: xc/programs/Xserver/hw/dmx/glxProxy/glxext.c diff -u xc/programs/Xserver/hw/dmx/glxProxy/glxext.c:1.2 xc/programs/Xserver/hw/dmx/glxProxy/glxext.c:1.4 --- xc/programs/Xserver/hw/dmx/glxProxy/glxext.c:1.2 Tue Feb 7 21:34:10 2006 +++ xc/programs/Xserver/hw/dmx/glxProxy/glxext.c Sat Apr 21 20:37:19 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/dmx/glxProxy/glxext.c,v 1.2 2006/02/08 02:34:10 dawes Exp $ +/* $XFree86: xc/programs/Xserver/hw/dmx/glxProxy/glxext.c,v 1.4 2007/04/22 00:37:19 tsi Exp $ ** The contents of this file are subject to the GLX Public License Version 1.0 ** (the "License"). You may not use this file except in compliance with the ** License. You may obtain a copy of the License at Silicon Graphics, Inc., @@ -259,7 +259,7 @@ /* ** Initialize the GLX extension. */ -void GlxExtensionInit(void) +void GlxExtensionInit(INITARGS) { ExtensionEntry *extEntry; int i; @@ -518,3 +518,17 @@ return; } +#ifdef __DARWIN__ +void +DarwinGlxExtensionInit(INITARGS) +{ + GlxExtensionInit(); +} + +void +DarwinGlxWrapInitVisuals( + void *procPtr) +{ + GlxWrapInitVisuals(procPtr); +} +#endif Index: xc/programs/Xserver/hw/dmx/glxProxy/glxext.h diff -u xc/programs/Xserver/hw/dmx/glxProxy/glxext.h:1.3 xc/programs/Xserver/hw/dmx/glxProxy/glxext.h:1.4 --- xc/programs/Xserver/hw/dmx/glxProxy/glxext.h:1.3 Tue Feb 7 21:34:10 2006 +++ xc/programs/Xserver/hw/dmx/glxProxy/glxext.h Wed Jan 3 21:48:13 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/dmx/glxProxy/glxext.h,v 1.3 2006/02/08 02:34:10 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/dmx/glxProxy/glxext.h,v 1.4 2007/01/04 02:48:13 tsi Exp $ */ #ifndef _glxext_h_ #define _glxext_h_ @@ -89,7 +89,7 @@ extern int __glXSwapBindSwapBarrierSGIX(__GLXclientState *cl, GLbyte *pc); extern int __glXSwapJoinSwapGroupSGIX(__GLXclientState *cl, GLbyte *pc); -extern void GlxExtensionInit(void); +extern void GlxExtensionInit(INITARGS); extern Bool __glXCoreType(void); Index: xc/programs/Xserver/hw/sun/constype.c diff -u xc/programs/Xserver/hw/sun/constype.c:3.11 xc/programs/Xserver/hw/sun/constype.c:3.12 --- xc/programs/Xserver/hw/sun/constype.c:3.11 Mon Jan 9 09:59:49 2006 +++ xc/programs/Xserver/hw/sun/constype.c Tue Dec 26 23:20:25 2006 @@ -15,7 +15,7 @@ * * Author: Doug Moran, SRI */ -/* $XFree86: xc/programs/Xserver/hw/sun/constype.c,v 3.11 2006/01/09 14:59:49 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sun/constype.c,v 3.12 2006/12/27 04:20:25 tsi Exp $ */ /* SUN-SPOTS DIGEST Thursday, 17 March 1988 Volume 6 : Issue 31 @@ -65,7 +65,11 @@ # ifndef CSRG_BASED # include # else -# include +# ifdef __NetBSD__ +# include +# else +# include +# endif # endif #endif Index: xc/programs/Xserver/hw/sun/sun.h diff -u xc/programs/Xserver/hw/sun/sun.h:3.14 xc/programs/Xserver/hw/sun/sun.h:3.16 --- xc/programs/Xserver/hw/sun/sun.h:3.14 Fri Oct 14 11:16:26 2005 +++ xc/programs/Xserver/hw/sun/sun.h Mon Jan 1 20:24:12 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/sun/sun.h,v 3.14 2005/10/14 15:16:26 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sun/sun.h,v 3.16 2007/01/02 01:24:12 tsi Exp $ */ /* * Copyright (c) 1987 by the Regents of the University of California * @@ -96,7 +96,7 @@ extern int setrlimit(); extern int getpagesize(); # else -# if defined(CSRG_BASED) && !defined(__bsdi__) +# if defined(CSRG_BASED) && !defined(__bsdi__) && !defined(__NetBSD__) # include # include # include @@ -108,6 +108,12 @@ # include # include # endif +# ifdef __NetBSD__ +# include +# include +# include +# include +# endif # endif #endif @@ -264,7 +270,7 @@ int /* screen */, ScreenPtr /* pScreen */, int /* argc */, - char** /* argv */ + const char** /* argv */ ); typedef struct { Index: xc/programs/Xserver/hw/sun/sunCfb.c diff -u xc/programs/Xserver/hw/sun/sunCfb.c:3.16 xc/programs/Xserver/hw/sun/sunCfb.c:3.18 --- xc/programs/Xserver/hw/sun/sunCfb.c:3.16 Mon Jan 9 09:59:49 2006 +++ xc/programs/Xserver/hw/sun/sunCfb.c Mon Jan 1 20:24:12 2007 @@ -51,7 +51,7 @@ ********************************************************/ -/* $XFree86: xc/programs/Xserver/hw/sun/sunCfb.c,v 3.16 2006/01/09 14:59:49 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sun/sunCfb.c,v 3.18 2007/01/02 01:24:12 tsi Exp $ */ /* * Copyright 1987 by the Regents of the University of California @@ -256,7 +256,7 @@ static void checkMono (argc, argv) int argc; - char** argv; + const char** argv; { int i; @@ -279,7 +279,7 @@ int screen; /* what screen am I going to be */ ScreenPtr pScreen; /* The Screen to initialize */ int argc; /* The number of the Server's arguments. */ - char **argv; /* The arguments themselves. Don't change! */ + const char **argv; /* The arguments themselves. Don't change! */ { checkMono (argc, argv); sunFbs[screen].EnterLeave = (void (*)())NoopDDA; @@ -292,7 +292,7 @@ int screen; /* what screen am I going to be */ ScreenPtr pScreen; /* The Screen to initialize */ int argc; /* The number of the Server's arguments. */ - char **argv; /* The arguments themselves. Don't change! */ + const char **argv; /* The arguments themselves. Don't change! */ { checkMono (argc, argv); sunFbs[screen].EnterLeave = (void (*)())NoopDDA; @@ -321,7 +321,7 @@ #endif /* } */ #endif /* } */ -#ifdef INCLUDE_CG2_HEADER +#if defined(INCLUDE_CG2_HEADER) || !defined(SVR4) typedef struct { struct cg2memfb mem; struct cg2fb regs; @@ -386,7 +386,7 @@ int screen; /* what screen am I going to be */ ScreenPtr pScreen; /* The Screen to initialize */ int argc; /* The number of the Server's arguments. */ - char** argv; /* The arguments themselves. Don't change! */ + const char**argv; /* The arguments themselves. Don't change! */ { int i; Bool ret; @@ -418,7 +418,7 @@ #endif /* ifndef LOWMEMFTPT */ return ret; } -#endif /* INCLUDE_CG2_HEADER */ +#endif /* INCLUDE_CG2_HEADER || !SVR4 */ #define CG4_HEIGHT 900 #define CG4_WIDTH 1152 @@ -444,7 +444,7 @@ int screen; /* what screen am I going to be */ ScreenPtr pScreen; /* The Screen to initialize */ int argc; /* The number of the Server's arguments. */ - char** argv; /* The arguments themselves. Don't change! */ + const char**argv; /* The arguments themselves. Don't change! */ { checkMono (argc, argv); if (sunCG4Frob) @@ -465,7 +465,7 @@ int screen; /* The index of pScreen in the ScreenInfo */ ScreenPtr pScreen; /* The Screen to initialize */ int argc; /* The number of the Server's arguments. */ - char** argv; /* The arguments themselves. Don't change! */ + const char**argv; /* The arguments themselves. Don't change! */ { pointer fb; Index: xc/programs/Xserver/hw/sun/sunCfb24.c diff -u xc/programs/Xserver/hw/sun/sunCfb24.c:1.4 xc/programs/Xserver/hw/sun/sunCfb24.c:1.5 --- xc/programs/Xserver/hw/sun/sunCfb24.c:1.4 Mon Jan 9 09:59:49 2006 +++ xc/programs/Xserver/hw/sun/sunCfb24.c Mon Jan 1 20:24:12 2007 @@ -23,7 +23,7 @@ this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/programs/Xserver/hw/sun/sunCfb24.c,v 1.4 2006/01/09 14:59:49 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sun/sunCfb24.c,v 1.5 2007/01/02 01:24:12 tsi Exp $ */ /* * The CG8 is similar to the CG4 in that it has a mono plane, an enable @@ -127,7 +127,7 @@ int screen; /* what screen am I going to be */ ScreenPtr pScreen; /* The Screen to initialize */ int argc; /* The number of the Server's arguments. */ - char **argv; /* The arguments themselves. Don't change! */ + const char **argv; /* The arguments themselves. Don't change! */ { sunFbs[screen].EnterLeave = (void (*)())NoopDDA; return sunInitCommon (screen, pScreen, (off_t) 0, Index: xc/programs/Xserver/hw/sun/sunGX.c diff -u xc/programs/Xserver/hw/sun/sunGX.c:1.10 xc/programs/Xserver/hw/sun/sunGX.c:1.12 --- xc/programs/Xserver/hw/sun/sunGX.c:1.10 Fri Oct 14 11:16:26 2005 +++ xc/programs/Xserver/hw/sun/sunGX.c Mon Jan 1 20:24:12 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/sun/sunGX.c,v 1.10 2005/10/14 15:16:26 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sun/sunGX.c,v 1.12 2007/01/02 01:24:12 tsi Exp $ */ /* Copyright 1991, 1998 The Open Group @@ -282,7 +282,7 @@ unsigned long planemask; { register sunGXPtr gx = sunGXGetScreenPrivate (pSrc->pScreen); - register long r; + register int r; register BoxPtr pboxTmp; register DDXPointPtr pptTmp; register int nbox; @@ -424,7 +424,7 @@ pGC, srcx, srcy, width, height, dstx, dsty, sunGXDoBitblt, 0); } -static unsigned long copyPlaneFG, copyPlaneBG; +static unsigned long copyPlaneFG, copyPlaneBG; static void sunGXCopyPlane1to8 (pSrcDrawable, pDstDrawable, rop, prgnDst, pptSrc, planemask, bitPlane) @@ -441,8 +441,8 @@ int dstLastx, dstRightx; int xoffSrc, widthSrc, widthRest; int widthLast; - unsigned long *psrcBase, *psrc; - unsigned long bits, tmp; + CfbBits *psrcBase, *psrc; + CfbBits bits, tmp; register int leftShift, rightShift; register int nl, nlMiddle; int nbox; @@ -459,7 +459,7 @@ nbox = REGION_NUM_RECTS(prgnDst); pbox = REGION_RECTS(prgnDst); - gx->incx = 32; + gx->incx = BITMAP_SCANLINE_UNIT; gx->incy = 0; while (nbox--) { @@ -474,14 +474,14 @@ pptSrc++; if (!width) continue; - psrc = psrcBase + srcy * widthSrc + (srcx >> 5); + psrc = psrcBase + srcy * widthSrc + (srcx >> LOG2_BITMAP_PAD); dstLastx--; - dstRightx = dstx + 31; - nlMiddle = (width + 31) >> 5; - widthLast = width & 31; - xoffSrc = srcx & 0x1f; + dstRightx = dstx + BITMAP_SCANLINE_UNIT - 1; + nlMiddle = (width + BITMAP_SCANLINE_UNIT - 1) >> 5; + widthLast = width & (BITMAP_SCANLINE_UNIT - 1); + xoffSrc = srcx & ((1 << LOG2_BITMAP_PAD) - 1); leftShift = xoffSrc; - rightShift = 32 - leftShift; + rightShift = BITMAP_SCANLINE_UNIT - leftShift; widthRest = widthSrc - nlMiddle; if (widthLast) nlMiddle--; @@ -1528,7 +1528,7 @@ int h; int w; CharInfoPtr pci; - unsigned long *bits; + unsigned int *bits; register int r; RegionPtr clip; BoxPtr extents; @@ -1585,7 +1585,7 @@ gx->x1 = (x + pci->metrics.rightSideBearing) - 1; gx->y0 = y - pci->metrics.ascent; h = pci->metrics.ascent + pci->metrics.descent; - bits = (unsigned long *) pci->bits; + bits = (unsigned int *) pci->bits; while (h--) { gx->font = *bits++; } @@ -1609,12 +1609,12 @@ int h, hTmp; FontPtr pfont = pGC->font; register int r; - unsigned long *char1, *char2, *char3, *char4; + unsigned int *char1, *char2, *char3, *char4; int widthGlyphs, widthGlyph; BoxRec bbox; BoxPtr extents; RegionPtr clip; - unsigned long rop; + unsigned int rop; widthGlyph = FONTMAXBOUNDS(pfont,characterWidth); h = FONTASCENT(pfont) + FONTDESCENT(pfont); @@ -1673,10 +1673,10 @@ { widthGlyphs = widthGlyph << 2; LoopIt(4, widthGlyphs, - char1 = (unsigned long *) (*ppci++)->bits; - char2 = (unsigned long *) (*ppci++)->bits; - char3 = (unsigned long *) (*ppci++)->bits; - char4 = (unsigned long *) (*ppci++)->bits;, + char1 = (unsigned int *) (*ppci++)->bits; + char2 = (unsigned int *) (*ppci++)->bits; + char3 = (unsigned int *) (*ppci++)->bits; + char4 = (unsigned int *) (*ppci++)->bits;, (*char1++ | ((*char2++ | ((*char3++ | (*char4++ >> widthGlyph)) >> widthGlyph)) @@ -1686,17 +1686,17 @@ { widthGlyphs = (widthGlyph << 1) + widthGlyph; LoopIt(3, widthGlyphs, - char1 = (unsigned long *) (*ppci++)->bits; - char2 = (unsigned long *) (*ppci++)->bits; - char3 = (unsigned long *) (*ppci++)->bits;, + char1 = (unsigned int *) (*ppci++)->bits; + char2 = (unsigned int *) (*ppci++)->bits; + char3 = (unsigned int *) (*ppci++)->bits;, (*char1++ | ((*char2++ | (*char3++ >> widthGlyph)) >> widthGlyph))) } else if (widthGlyph <= 16) { widthGlyphs = widthGlyph << 1; LoopIt(2, widthGlyphs, - char1 = (unsigned long *) (*ppci++)->bits; - char2 = (unsigned long *) (*ppci++)->bits;, + char1 = (unsigned int *) (*ppci++)->bits; + char2 = (unsigned int *) (*ppci++)->bits;, (*char1++ | (*char2++ >> widthGlyph))) } while (nglyph--) { @@ -1705,7 +1705,7 @@ gx->x0 = x; gx->x1 = (x += widthGlyph) - 1; gx->y0 = y; - char1 = (unsigned long *) (*ppci++)->bits; + char1 = (unsigned int *) (*ppci++)->bits; hTmp = h; while (hTmp--) gx->font = *char1++; @@ -1845,7 +1845,7 @@ sunGXStipplePtr stipple; { unsigned short *sbits; - unsigned long *stippleBits; + unsigned int *stippleBits; unsigned long sbit, mask; int h, w; int y; @@ -1858,7 +1858,7 @@ if (w > 16 || (w & (w - 1))) return FALSE; sbits = (unsigned short *) stipple->bits; - stippleBits = (unsigned long *) pPixmap->devPrivate.ptr; + stippleBits = (unsigned int *) pPixmap->devPrivate.ptr; mask = ((1 << w) - 1) << (16 - w); for (y = 0; y < h; y++) { sbit = (*stippleBits++ >> 16) & mask; @@ -2646,7 +2646,7 @@ xfree (stipple); sunGXSetWindowPrivate(pWin,0); } - if (((width = (pWin->background.pixmap->drawable.width * PSZ)) <= 32) && + if (((width = (pWin->background.pixmap->drawable.width * PSZ)) <= BITMAP_SCANLINE_UNIT) && !(width & (width - 1))) { cfbCopyRotatePixmap(pWin->background.pixmap, @@ -2674,7 +2674,7 @@ case CWBorderPixmap: /* don't bother with accelerator for border tiles (just lazy) */ - if (((width = (pWin->border.pixmap->drawable.width * PSZ)) <= 32) && + if (((width = (pWin->border.pixmap->drawable.width * PSZ)) <= BITMAP_SCANLINE_UNIT) && !(width & (width - 1))) { for (pBgWin = pWin; @@ -2848,7 +2848,7 @@ { sunGXPtr gx; Uint mode; - register long r; + register int r; if (serverGeneration != sunGXGeneration) { Index: xc/programs/Xserver/hw/sun/sunInit.c diff -u xc/programs/Xserver/hw/sun/sunInit.c:3.17 xc/programs/Xserver/hw/sun/sunInit.c:3.20 --- xc/programs/Xserver/hw/sun/sunInit.c:3.17 Mon Feb 20 12:02:02 2006 +++ xc/programs/Xserver/hw/sun/sunInit.c Tue Jan 23 13:02:57 2007 @@ -14,7 +14,7 @@ * * */ -/* $XFree86: xc/programs/Xserver/hw/sun/sunInit.c,v 3.17 2006/02/20 17:02:02 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sun/sunInit.c,v 3.20 2007/01/23 18:02:57 tsi Exp $ */ /************************************************************ Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. @@ -65,7 +65,7 @@ int /* screen */, ScreenPtr /* pScreen */, int /* argc */, - char** /* argv */ + const char** /* argv */ ); #define BW2I sunBW2Init #endif /* } */ @@ -86,27 +86,27 @@ int /* screen */, ScreenPtr /* pScreen */, int /* argc */, - char** /* argv */ + const char** /* argv */ ); #define CG3I sunCG3Init #if defined(i386) || defined(__bsdi__) /* { */ #define CG2I NULL #define CG4I NULL #else /* }{ */ -#ifdef INCLUDE_CG2_HEADER +#if defined(INCLUDE_CG2_HEADER) || !defined(SVR4) extern Bool sunCG2Init( int /* screen */, ScreenPtr /* pScreen */, int /* argc */, - char** /* argv */ + const char** /* argv */ ); #define CG2I sunCG2Init -#endif /* INCLUDE_CG2_HEADER */ +#endif /* INCLUDE_CG2_HEADER || !SVR4 */ extern Bool sunCG4Init( int /* screen */, ScreenPtr /* pScreen */, int /* argc */, - char** /* argv */ + const char** /* argv */ ); #define CG4I sunCG4Init #endif /* } */ @@ -115,7 +115,7 @@ int /* screen */, ScreenPtr /* pScreen */, int /* argc */, - char** /* argv */ + const char** /* argv */ ); #define CG6I sunCG6Init #else /* }{ */ @@ -126,7 +126,7 @@ int /* screen */, ScreenPtr /* pScreen */, int /* argc */, - char** /* argv */ + const char** /* argv */ ); #define TCXI sunTCXInit #else /* }{ */ @@ -138,7 +138,7 @@ int /* screen */, ScreenPtr /* pScreen */, int /* argc */, - char** /* argv */ + const char** /* argv */ ); #define CG8I sunCG8Init #else /* }{ */ @@ -186,9 +186,11 @@ { NULL, "SUN1BW (bw1)" }, { NULL, "SUN1COLOR (cg1)" }, { BW2I, "SUN2BW (bw2)" }, -#ifdef INCLUDE_CG2_HEADER +#if defined(INCLUDE_CG2_HEADER) || !defined(SVR4) { CG2I, "SUN2COLOR (cg2)" }, -#endif /* INCLUDE_CG2_HEADER */ +#else + { NULL, "SUN2COLOR (cg2)" }, +#endif /* INCLUDE_CG2_HEADER || !defined(SVR4) */ { NULL, "SUN2GP (gp1/gp2)" }, { NULL, "SUN5COLOR (cg5/386i accel)" }, { CG3I, "SUN3COLOR (cg3)" }, @@ -203,21 +205,11 @@ { NULL, "SUNFB_VIDEO" }, { NULL, "SUNGIFB" }, { NULL, "SUNPLAS" }, -#ifdef FBTYPE_SUNGP3 { NULL, "SUNGP3 (cg12/gs)" }, -#endif -#ifdef FBTYPE_SUNGT { NULL, "SUNGT (gt)" }, -#endif -#ifdef FBTYPE_SUNLEO { NULL, "SUNLEO (zx)" }, -#endif -#ifdef FBTYPE_MDICOLOR { NULL, "MDICOLOR (cgfourteen)" }, -#endif -#ifdef XFBTYPE_TCX { TCXI, "TCX (tcx)" }, -#endif #endif /* } */ }; @@ -419,7 +411,7 @@ static char** GetDeviceList (argc, argv) int argc; - char **argv; + const char **argv; { int i; char *envList = NULL; @@ -428,7 +420,7 @@ for (i = 1; i < argc; i++) if (strcmp (argv[i], "-dev") == 0 && i+1 < argc) { - cmdList = argv[i + 1]; + cmdList = (char *)argv[i + 1]; break; } if (!cmdList) @@ -578,8 +570,8 @@ void InitOutput(pScreenInfo, argc, argv) ScreenInfo *pScreenInfo; - int argc; - char **argv; + const int argc; + const char **argv; { int i, scr; int nonBlockConsole = 0; @@ -666,8 +658,8 @@ *----------------------------------------------------------------------- */ void InitInput(argc, argv) - int argc; - char **argv; + const int argc; + const char **argv; { pointer p, k; extern Bool mieqInit(); Index: xc/programs/Xserver/hw/sun/sunIo.c diff -u xc/programs/Xserver/hw/sun/sunIo.c:3.12 xc/programs/Xserver/hw/sun/sunIo.c:3.13 --- xc/programs/Xserver/hw/sun/sunIo.c:3.12 Sun Feb 19 10:51:20 2006 +++ xc/programs/Xserver/hw/sun/sunIo.c Mon Jan 1 20:24:12 2007 @@ -14,7 +14,7 @@ * * */ -/* $XFree86: xc/programs/Xserver/hw/sun/sunIo.c,v 3.12 2006/02/19 15:51:20 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sun/sunIo.c,v 3.13 2007/01/02 01:24:12 tsi Exp $ */ /************************************************************ Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. @@ -195,7 +195,7 @@ int ddxProcessArgument (argc, argv, i) int argc; - char *argv[]; + const char *argv[]; int i; { extern void UseMsg(); Index: xc/programs/Xserver/hw/sun/sunKbd.c diff -u xc/programs/Xserver/hw/sun/sunKbd.c:1.11 xc/programs/Xserver/hw/sun/sunKbd.c:1.12 --- xc/programs/Xserver/hw/sun/sunKbd.c:1.11 Fri Oct 14 11:16:26 2005 +++ xc/programs/Xserver/hw/sun/sunKbd.c Tue Dec 26 23:20:25 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/sun/sunKbd.c,v 1.11 2005/10/14 15:16:26 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sun/sunKbd.c,v 1.12 2006/12/27 04:20:25 tsi Exp $ */ /* * Copyright 1987 by the Regents of the University of California * @@ -483,19 +483,20 @@ else (void) strcat (names->symbols, "sun/us(sun4)"); } else { - (void) strcat (names->keycodes, "sun(type5)"); - switch (pKbd->layout) { case 33: case 80: /* U.S. */ case 47: case 94: /* Korea */ case 48: case 95: /* Taiwan */ case 49: case 96: /* Japan */ + (void) strcat (names->keycodes, "sun(type5)"); (void) strcat (names->geometry, "sun(type5)"); break; case 34: case 81: /* U.S. Unix */ + (void) strcat (names->keycodes, "sun(type5)"); (void) strcat (names->geometry, "sun(type5unix)"); break; default: + (void) strcat (names->keycodes, "sun(type5_euro)"); (void) strcat (names->geometry, "sun(type5euro)"); } Index: xc/programs/Xserver/hw/sun/sunMfb.c diff -u xc/programs/Xserver/hw/sun/sunMfb.c:3.5 xc/programs/Xserver/hw/sun/sunMfb.c:3.6 --- xc/programs/Xserver/hw/sun/sunMfb.c:3.5 Mon Jan 9 09:59:49 2006 +++ xc/programs/Xserver/hw/sun/sunMfb.c Mon Jan 1 20:24:12 2007 @@ -21,7 +21,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/programs/Xserver/hw/sun/sunMfb.c,v 3.5 2006/01/09 14:59:49 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sun/sunMfb.c,v 3.6 2007/01/02 01:24:12 tsi Exp $ */ /************************************************************ Copyright 1987 by Sun Microsystems, Inc. Mountain View, CA. @@ -88,7 +88,7 @@ int screen; /* what screen am I going to be */ ScreenPtr pScreen; /* The Screen to initialize */ int argc; /* The number of the Server's arguments. */ - char **argv; /* The arguments themselves. Don't change! */ + const char **argv; /* The arguments themselves. Don't change! */ { sunFbs[screen].EnterLeave = (void (*)())NoopDDA; if (sunFlipPixels) { Index: xc/programs/Xserver/hw/sunLynx/sun.h diff -u xc/programs/Xserver/hw/sunLynx/sun.h:3.9 xc/programs/Xserver/hw/sunLynx/sun.h:3.10 --- xc/programs/Xserver/hw/sunLynx/sun.h:3.9 Fri Oct 14 11:16:27 2005 +++ xc/programs/Xserver/hw/sunLynx/sun.h Mon Jan 1 20:24:12 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/sunLynx/sun.h,v 3.9 2005/10/14 15:16:27 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sunLynx/sun.h,v 3.10 2007/01/02 01:24:12 tsi Exp $ */ /* This is sun.h modified for LynxOS */ @@ -295,7 +295,7 @@ int /* screen */, ScreenPtr /* pScreen */, int /* argc */, - char** /* argv */ + const char** /* argv */ ); typedef struct { Index: xc/programs/Xserver/hw/sunLynx/sunLyCfb.c diff -u xc/programs/Xserver/hw/sunLynx/sunLyCfb.c:3.6 xc/programs/Xserver/hw/sunLynx/sunLyCfb.c:3.7 --- xc/programs/Xserver/hw/sunLynx/sunLyCfb.c:3.6 Mon Jan 9 09:59:50 2006 +++ xc/programs/Xserver/hw/sunLynx/sunLyCfb.c Mon Jan 1 20:24:12 2007 @@ -21,7 +21,7 @@ * PERFORMANCE OF THIS SOFTWARE. * */ -/* $XFree86: xc/programs/Xserver/hw/sunLynx/sunLyCfb.c,v 3.6 2006/01/09 14:59:50 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sunLynx/sunLyCfb.c,v 3.7 2007/01/02 01:24:12 tsi Exp $ */ /* Copyright 1990, 1998 The Open Group @@ -258,7 +258,7 @@ static void checkMono (argc, argv) int argc; - char** argv; + const char** argv; { int i; @@ -271,7 +271,7 @@ int screen; /* what screen am I going to be */ ScreenPtr pScreen; /* The Screen to initialize */ int argc; /* The number of the Server's arguments. */ - char **argv; /* The arguments themselves. Don't change! */ + const char **argv; /* The arguments themselves. Don't change! */ { unsigned long addr; @@ -291,7 +291,7 @@ int screen; /* The index of pScreen in the ScreenInfo */ ScreenPtr pScreen; /* The Screen to initialize */ int argc; /* The number of the Server's arguments. */ - char** argv; /* The arguments themselves. Don't change! */ + const char**argv; /* The arguments themselves. Don't change! */ { unsigned long dacoffset; unsigned long addr; Index: xc/programs/Xserver/hw/sunLynx/sunLyInit.c diff -u xc/programs/Xserver/hw/sunLynx/sunLyInit.c:3.12 xc/programs/Xserver/hw/sunLynx/sunLyInit.c:3.14 --- xc/programs/Xserver/hw/sunLynx/sunLyInit.c:3.12 Sun Feb 19 10:51:21 2006 +++ xc/programs/Xserver/hw/sunLynx/sunLyInit.c Tue Jan 23 13:02:57 2007 @@ -21,7 +21,7 @@ * PERFORMANCE OF THIS SOFTWARE. * */ -/* $XFree86: xc/programs/Xserver/hw/sunLynx/sunLyInit.c,v 3.12 2006/02/19 15:51:21 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sunLynx/sunLyInit.c,v 3.14 2007/01/23 18:02:57 tsi Exp $ */ /* * Copyright 1987 by the Regents of the University of California @@ -83,7 +83,7 @@ int /* screen */, ScreenPtr /* pScreen */, int /* argc */, - char** /* argv */ + const char** /* argv */ ); #define BW2I sunBW2Init #if SUNMAXDEPTH == 1 /* { */ @@ -94,7 +94,7 @@ int /* screen */, ScreenPtr /* pScreen */, int /* argc */, - char** /* argv */ + const char** /* argv */ ); #define CG3I sunCG3Init #ifdef FBTYPE_SUNFAST_COLOR /* { */ @@ -102,7 +102,7 @@ int /* screen */, ScreenPtr /* pScreen */, int /* argc */, - char** /* argv */ + const char** /* argv */ ); #define CG6I sunCG6Init #else /* }{ */ @@ -357,7 +357,7 @@ static char** GetDeviceList (argc, argv) int argc; - char **argv; + const char **argv; { int i; char *envList = NULL; @@ -366,7 +366,7 @@ for (i = 1; i < argc; i++) if (strcmp (argv[i], "-dev") == 0 && i+1 < argc) { - cmdList = argv[i + 1]; + cmdList = (char *)argv[i + 1]; break; } if (!cmdList) @@ -489,8 +489,8 @@ void InitOutput(pScreenInfo, argc, argv) ScreenInfo *pScreenInfo; - int argc; - char **argv; + const int argc; + const char **argv; { int i, scr; char **devList; @@ -546,8 +546,8 @@ *----------------------------------------------------------------------- */ void InitInput(argc, argv) - int argc; - char **argv; + const int argc; + const char **argv; { DevicePtr p, k; extern Bool mieqInit(); Index: xc/programs/Xserver/hw/sunLynx/sunLyIo.c diff -u xc/programs/Xserver/hw/sunLynx/sunLyIo.c:3.7 xc/programs/Xserver/hw/sunLynx/sunLyIo.c:3.8 --- xc/programs/Xserver/hw/sunLynx/sunLyIo.c:3.7 Mon Jan 9 09:59:50 2006 +++ xc/programs/Xserver/hw/sunLynx/sunLyIo.c Mon Jan 1 20:24:12 2007 @@ -21,7 +21,7 @@ * PERFORMANCE OF THIS SOFTWARE. * */ -/* $XFree86: xc/programs/Xserver/hw/sunLynx/sunLyIo.c,v 3.7 2006/01/09 14:59:50 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/sunLynx/sunLyIo.c,v 3.8 2007/01/02 01:24:12 tsi Exp $ */ /* * @@ -297,7 +297,7 @@ int ddxProcessArgument (argc, argv, i) int argc; - char *argv[]; + const char *argv[]; int i; { extern void UseMsg(); Index: xc/programs/Xserver/hw/tinyx/Imakefile diff -u xc/programs/Xserver/hw/tinyx/Imakefile:1.9 xc/programs/Xserver/hw/tinyx/Imakefile:1.10 --- xc/programs/Xserver/hw/tinyx/Imakefile:1.9 Fri Mar 3 11:43:14 2006 +++ xc/programs/Xserver/hw/tinyx/Imakefile Wed Aug 30 21:31:44 2006 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/tinyx/Imakefile,v 1.9 2006/03/03 16:43:14 tsi Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/tinyx/Imakefile,v 1.10 2006/08/31 01:31:44 dawes Exp $ /* * Copyright (c) 2004-2006 by The XFree86 Project, Inc. * All rights reserved. @@ -83,7 +83,67 @@ MTRR_DEFINES = -DHAS_MTRR #endif -SUBDIRS = sys dix os Xext $(RENDERSUBDIRS) $(RANDRSUBDIRS) +#if defined(LinuxArchitecture) +OSDIRS = linux +#elif defined(VXWORKS) +OSDIRS = vxworks +#endif + +#if defined(XfbdevServer) && XfbdevServer +FBDEVDIR = fbdev +#endif +#if defined(XSavageServer) && XSavageServer +SAVAGEDIR = savage +#endif +#if defined(XIgsServer) && XIgsServer +IGSDIR = igs +#endif +#if defined(XTridentServer) && XTridentServer +FBDEVDIR = fbdev +VESADIR = vesa +TRIDENTDIR = trident +#endif +#if defined(XchipsServer) && XchipsServer +VESADIR = vesa +CHIPSDIR = chips +#endif +#if defined(Xmach64Server) && Xmach64Server +VESADIR = vesa +MACH64DIR = mach64 +#endif +#if defined(Xi810Server) && Xi810Server +FBDEVDIR = fbdev +VESADIR = vesa +I810DIR = i810 +#endif +#if defined(XSis530Server) && XSis530Server +SIS530DIR = sis530 +#endif +#if defined(XTrioServer) && XTrioServer +TRIODIR = trio +#endif +#if defined(XipaqServer) && XipaqServer +FBDEVDIR = fbdev +PCMCIADIR = pcmcia +IPAQDIR = ipaq +#endif +#if defined(XTS300Server) && XTS300Server +TRIODIR = trio +SIS530DIR = sis530 +TS300DIR = ts300 +#endif +#if defined(XItsyServer) && XItsyServer +ITSYDIR = itsy +#endif +#if defined(XvesaServer) && XvesaServer +VESADIR = vesa +#endif + + +SUBDIRS = sys dix os Xext $(RENDERSUBDIRS) $(RANDRSUBDIRS) $(OSDIRS) \ + $(CHIPSDIR) $(FBDEVDIR) $(I810DIR) $(IGSDIR) $(IPAQDIR) $(ITSYDIR) \ + $(MACH64DIR) $(PCMCIADIR) $(SAVAGEDIR) $(SIS530DIR) $(TRIDENTDIR) \ + $(TRIODIR) $(TS300DIR) $(VESADIR) DEFINES = $(EXT_DEFINES) $(IPAQ_DEFINES) $(TINY_DEFINES) $(MTRR_DEFINES) Index: xc/programs/Xserver/hw/tinyx/TinyX.man diff -u xc/programs/Xserver/hw/tinyx/TinyX.man:1.2 xc/programs/Xserver/hw/tinyx/TinyX.man:1.3 --- xc/programs/Xserver/hw/tinyx/TinyX.man:1.2 Sat Mar 12 18:36:27 2005 +++ xc/programs/Xserver/hw/tinyx/TinyX.man Thu Nov 2 16:55:25 2006 @@ -1,4 +1,4 @@ -.\" $XFree86: xc/programs/Xserver/hw/tinyx/TinyX.man,v 1.2 2005/03/12 23:36:27 dawes Exp $ +.\" $XFree86: xc/programs/Xserver/hw/tinyx/TinyX.man,v 1.3 2006/11/02 21:55:25 tsi Exp $ .\" .TH TinyX 1 __vendorversion__ .SH NAME @@ -71,35 +71,39 @@ servers accept the following options: .TP 8 .B \-card \fIpcmcia\fP -use pcmcia card as additional screen. +Use pcmcia card as additional screen. .TP 8 .B \-dumb -disable hardware acceleration. +Disable hardware acceleration. .TP 8 .B \-origin \fIX\fP,\fIY\fP Locates the next screen in the Xinerama virtual screen. .TP 8 .B \-screen \fIwidth\fBx\fIheight\fR[\fBx\fIdepth\fR[\fBx\fIfreq\fR]]\fR[\fB@\fIrotation\fR]\fB -use a screen of the specified \fIwidth\fP, \fIheight\fP, screen \fIdepth\fP, \fIfrequency\fP, and \fIrotation\fP (0, 90, 180 and 270 are legal values). +Use a screen of the specified \fIwidth\fP, \fIheight\fP, screen \fIdepth\fP, \fIfrequency\fP, and \fIrotation\fP (0, 90, 180 and 270 are legal values). .TP 8 .B \-softCursor -disable the hardware cursor. +Disable the hardware cursor. .TP 8 .B \-videoTest -start the server, pause momentarily, and exit. +Start the server, pause momentarily, and exit. .TP 8 .B \-zaphod -disable switching screens by moving the pointer across a screen boundary. +Disable switching screens by moving the pointer across a screen boundary. .TP 8 .B \-2button -enable emulation of a middle mouse button by chording. +Enable emulation of a middle mouse button by chording. .TP 8 .B \-3button -disable emulation of a middle mouse button by chording. +Disable emulation of a middle mouse button by chording. +.TP 8 +.B \-noserialmouse +Do not probe for a serial mouse. .SH SEE ALSO X(__miscmansuffix__), Xserver(1), xdm(1), xinit(1), Xvesa(1), Xfbdev(1), XFree86(1). .SH AUTHORS The TinyX common core was written by Keith Packard, based on XFree86 -which. It was integrated into the XFree86 build process by David Dawes -and X-Oz Technologies. +which, in turn, is loosely based on the X11R6 Sample Implementation. +It was integrated into the XFree86 build process by David Dawes and +X-Oz Technologies. Index: xc/programs/Xserver/hw/tinyx/tinyx.c diff -u xc/programs/Xserver/hw/tinyx/tinyx.c:1.2 xc/programs/Xserver/hw/tinyx/tinyx.c:1.4 --- xc/programs/Xserver/hw/tinyx/tinyx.c:1.2 Sun Feb 19 10:51:21 2006 +++ xc/programs/Xserver/hw/tinyx/tinyx.c Thu Nov 2 16:55:25 2006 @@ -1,5 +1,5 @@ /* - * $XFree86: xc/programs/Xserver/hw/tinyx/tinyx.c,v 1.2 2006/02/19 15:51:21 tsi Exp $ + * $XFree86: xc/programs/Xserver/hw/tinyx/tinyx.c,v 1.4 2006/11/02 21:55:25 tsi Exp $ * * Copyright © 1999 Keith Packard * @@ -98,6 +98,7 @@ int kdVirtualTerminal = -1; Bool kdSwitchPending; DDXPointRec kdOrigin; +Bool kdNoSerialMouse = FALSE; /* * Carry arguments from InitOutput through driver initialization @@ -381,6 +382,7 @@ ErrorF("-videoTest Start the server, pause momentarily and exit\n"); ErrorF("-origin X,Y Locates the next screen in the the virtual screen (Xinerama)\n"); ErrorF("-mouse path[,n] Filename of mouse device, n is number of buttons\n"); + ErrorF("-noserialmouse Don't probe for a serial mouse\n"); ErrorF("vtxx Use virtual terminal xx instead of the next available\n"); ErrorF("\n"); } @@ -394,8 +396,8 @@ Bool kdDumbDriver; Bool kdSoftCursor; -static char * -KdParseFindNext (char *cur, char *delim, char *save, char *last) +static const char * +KdParseFindNext (const char *cur, const char *delim, char *save, char *last) { while (*cur && !strchr (delim, *cur)) { @@ -432,7 +434,7 @@ void KdParseScreen (KdScreenInfo *screen, - char *arg) + const char *arg) { char delim; char save[1024]; @@ -586,7 +588,7 @@ */ void -KdParseMouse (char *arg) +KdParseMouse (const char *arg) { char save[1024]; char delim; @@ -662,7 +664,7 @@ } static void -KdParseRgba (char *rgba) +KdParseRgba (const char *rgba) { if (!strcmp (rgba, "rgb")) kdSubpixelOrder = SubPixelHorizontalRGB; @@ -679,7 +681,7 @@ } int -KdProcessArgument (int argc, char **argv, int i) +KdProcessArgument (int argc, const char **argv, int i) { KdCardInfo *card; KdScreenInfo *screen; @@ -746,7 +748,7 @@ { if ((i+1) < argc) { - char *x = argv[i+1]; + const char *x = argv[i+1]; char *y = strchr (x, ','); if (x) kdOrigin.x = atoi (x); @@ -769,6 +771,11 @@ UseMsg (); return 2; } + if (!strcmp (argv[i], "-noserialmouse")) + { + kdNoSerialMouse = TRUE; + return 1; + } if (!strcmp (argv[i], "-rgba")) { if ((i+1) < argc) @@ -997,7 +1004,7 @@ static KdScreenInfo *kdCurrentScreen; Bool -KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) +KdScreenInit(int index, ScreenPtr pScreen, int argc, const char **argv) { KdScreenInfo *screen = kdCurrentScreen; KdCardInfo *card = screen->card; @@ -1192,7 +1199,7 @@ KdInitScreen (ScreenInfo *pScreenInfo, KdScreenInfo *screen, int argc, - char **argv) + const char **argv) { KdCardInfo *card = screen->card; @@ -1274,7 +1281,7 @@ KdAddScreen (ScreenInfo *pScreenInfo, KdScreenInfo *screen, int argc, - char **argv) + const char **argv) { int i; /* @@ -1328,7 +1335,7 @@ void KdInitOutput (ScreenInfo *pScreenInfo, int argc, - char **argv) + const char **argv) { KdCardInfo *card; KdScreenInfo *screen; Index: xc/programs/Xserver/hw/tinyx/tinyx.h diff -u xc/programs/Xserver/hw/tinyx/tinyx.h:1.2 xc/programs/Xserver/hw/tinyx/tinyx.h:1.4 --- xc/programs/Xserver/hw/tinyx/tinyx.h:1.2 Fri Oct 14 11:16:27 2005 +++ xc/programs/Xserver/hw/tinyx/tinyx.h Thu Nov 2 16:55:25 2006 @@ -19,7 +19,7 @@ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/tinyx.h,v 1.2 2005/10/14 15:16:27 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/tinyx.h,v 1.4 2006/11/02 21:55:25 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -249,6 +249,7 @@ } KdMouseInfo; extern KdMouseInfo *kdMouseInfo; +extern Bool kdNoSerialMouse; #ifdef TOUCHSCREEN /* @@ -261,7 +262,7 @@ #endif KdMouseInfo *KdMouseInfoAdd (void); -void KdParseMouse (char *); +void KdParseMouse (const char *); typedef struct _KdMouseFuncs { int (*Init) (void); @@ -580,7 +581,7 @@ void KdParseScreen (KdScreenInfo *screen, - char *arg); + const char *arg); char * KdSaveString (char *str); @@ -598,24 +599,24 @@ KdSaveScreen (ScreenPtr pScreen, int on); Bool -KdScreenInit(int index, ScreenPtr pScreen, int argc, char **argv); +KdScreenInit(int index, ScreenPtr pScreen, int argc, const char **argv); void KdInitScreen (ScreenInfo *pScreenInfo, KdScreenInfo *screen, int argc, - char **argv); + const char **argv); void KdInitCard (ScreenInfo *pScreenInfo, KdCardInfo *card, int argc, - char **argv); + const char **argv); void KdInitOutput (ScreenInfo *pScreenInfo, int argc, - char **argv); + const char **argv); void KdSetSubpixelOrder (ScreenPtr pScreen, Rotation randr); @@ -624,7 +625,7 @@ KdCreateWindow (WindowPtr pWin); int -KdProcessArgument (int argc, char **argv, int i); +KdProcessArgument (int argc, const char **argv, int i); void KdUseMsg (void); @@ -808,4 +809,4 @@ /* function prototypes to be imlpemented by the drivers */ void -InitCard (char *name); +InitCard (const char *name); Index: xc/programs/Xserver/hw/tinyx/chips/chipsstub.c diff -u xc/programs/Xserver/hw/tinyx/chips/chipsstub.c:1.1 xc/programs/Xserver/hw/tinyx/chips/chipsstub.c:1.3 --- xc/programs/Xserver/hw/tinyx/chips/chipsstub.c:1.1 Wed Jun 2 18:43:01 2004 +++ xc/programs/Xserver/hw/tinyx/chips/chipsstub.c Tue Jan 23 13:02:57 2007 @@ -20,7 +20,7 @@ * * Author: Keith Packard, SuSE, Inc. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/chips/chipsstub.c,v 1.1 2004/06/02 22:43:01 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/chips/chipsstub.c,v 1.3 2007/01/23 18:02:57 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -73,7 +73,7 @@ extern int chips_clk, chips_mclk; void -InitCard (char *name) +InitCard (const char *name) { KdCardAttr attr; @@ -81,19 +81,19 @@ } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs); } int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { int ret; Index: xc/programs/Xserver/hw/tinyx/fbdev/fbinit.c diff -u xc/programs/Xserver/hw/tinyx/fbdev/fbinit.c:1.1 xc/programs/Xserver/hw/tinyx/fbdev/fbinit.c:1.3 --- xc/programs/Xserver/hw/tinyx/fbdev/fbinit.c:1.1 Wed Jun 2 18:43:01 2004 +++ xc/programs/Xserver/hw/tinyx/fbdev/fbinit.c Tue Jan 23 13:02:57 2007 @@ -19,7 +19,7 @@ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/fbdev/fbinit.c,v 1.1 2004/06/02 22:43:01 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/fbdev/fbinit.c,v 1.3 2007/01/23 18:02:57 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -70,7 +70,7 @@ #include void -InitCard (char *name) +InitCard (const char *name) { KdCardAttr attr; @@ -78,13 +78,13 @@ } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs); #ifdef TOUCHSCREEN @@ -93,7 +93,7 @@ } int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { return KdProcessArgument (argc, argv, i); } Index: xc/programs/Xserver/hw/tinyx/i810/i810stub.c diff -u xc/programs/Xserver/hw/tinyx/i810/i810stub.c:1.1 xc/programs/Xserver/hw/tinyx/i810/i810stub.c:1.3 --- xc/programs/Xserver/hw/tinyx/i810/i810stub.c:1.1 Wed Jun 2 18:43:01 2004 +++ xc/programs/Xserver/hw/tinyx/i810/i810stub.c Tue Jan 23 13:02:58 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/tinyx/i810/i810stub.c,v 1.1 2004/06/02 22:43:01 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/i810/i810stub.c,v 1.3 2007/01/23 18:02:58 tsi Exp $ */ /* COPYRIGHT AND PERMISSION NOTICE Copyright (c) 2000, 2001 Nokia Home Communications @@ -92,7 +92,7 @@ #define numI810Cards (sizeof(i810Cards) / sizeof(i810Cards[0])) void -InitCard (char *name) +InitCard (const char *name) { KdCardAttr attr; int i; @@ -104,19 +104,19 @@ void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs); } int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { return KdProcessArgument(argc, argv, i); } Index: xc/programs/Xserver/hw/tinyx/igs/igsstub.c diff -u xc/programs/Xserver/hw/tinyx/igs/igsstub.c:1.1 xc/programs/Xserver/hw/tinyx/igs/igsstub.c:1.3 --- xc/programs/Xserver/hw/tinyx/igs/igsstub.c:1.1 Wed Jun 2 18:43:01 2004 +++ xc/programs/Xserver/hw/tinyx/igs/igsstub.c Tue Jan 23 13:02:58 2007 @@ -1,5 +1,5 @@ /* - * $XFree86: xc/programs/Xserver/hw/tinyx/igs/igsstub.c,v 1.1 2004/06/02 22:43:01 dawes Exp $ + * $XFree86: xc/programs/Xserver/hw/tinyx/igs/igsstub.c,v 1.3 2007/01/23 18:02:58 tsi Exp $ * * Copyright © 2000 Keith Packard * @@ -72,7 +72,7 @@ #include "linux.h" void -InitCard (char *name) +InitCard (const char *name) { KdCardAttr attr; CARD32 count; @@ -92,19 +92,19 @@ } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs); } int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { return KdProcessArgument (argc, argv, i); } Index: xc/programs/Xserver/hw/tinyx/ipaq/ipaq.c diff -u xc/programs/Xserver/hw/tinyx/ipaq/ipaq.c:1.1 xc/programs/Xserver/hw/tinyx/ipaq/ipaq.c:1.3 --- xc/programs/Xserver/hw/tinyx/ipaq/ipaq.c:1.1 Wed Jun 2 18:43:01 2004 +++ xc/programs/Xserver/hw/tinyx/ipaq/ipaq.c Tue Jan 23 13:02:58 2007 @@ -22,7 +22,7 @@ * Adapted from ts300.c by Alan Hourihane * For the Compaq IPAQ handheld, with the HP VGA Out Card (F1252A). */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/ipaq/ipaq.c,v 1.1 2004/06/02 22:43:01 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/ipaq/ipaq.c,v 1.3 2007/01/23 18:02:58 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -73,7 +73,7 @@ #include "pcmcia.h" void -InitCard (char *name) +InitCard (const char *name) { KdCardAttr attr; if (name && !strcmp(name, "pcmcia")) @@ -83,13 +83,13 @@ } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs); #ifdef TOUCHSCREEN @@ -100,7 +100,7 @@ extern pcmciaDisplayModeRec pcmciaDefaultModes[]; int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { return KdProcessArgument (argc, argv, i); } Index: xc/programs/Xserver/hw/tinyx/itsy/itsy.c diff -u xc/programs/Xserver/hw/tinyx/itsy/itsy.c:1.1 xc/programs/Xserver/hw/tinyx/itsy/itsy.c:1.2 --- xc/programs/Xserver/hw/tinyx/itsy/itsy.c:1.1 Wed Jun 2 18:43:01 2004 +++ xc/programs/Xserver/hw/tinyx/itsy/itsy.c Tue Jan 23 13:02:58 2007 @@ -19,7 +19,7 @@ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/itsy/itsy.c,v 1.1 2004/06/02 22:43:01 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/itsy/itsy.c,v 1.2 2007/01/23 18:02:58 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -267,13 +267,13 @@ } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput (&itsyTsMouseFuncs, &itsyKeyboardFuncs); } @@ -361,7 +361,7 @@ } int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { return KdProcessArgument (argc, argv, i); } Index: xc/programs/Xserver/hw/tinyx/linux/mouse.c diff -u xc/programs/Xserver/hw/tinyx/linux/mouse.c:1.2 xc/programs/Xserver/hw/tinyx/linux/mouse.c:1.3 --- xc/programs/Xserver/hw/tinyx/linux/mouse.c:1.2 Fri Oct 14 11:16:28 2005 +++ xc/programs/Xserver/hw/tinyx/linux/mouse.c Thu Nov 2 16:55:26 2006 @@ -1,5 +1,5 @@ /* - * $XFree86: xc/programs/Xserver/hw/tinyx/linux/mouse.c,v 1.2 2005/10/14 15:16:28 tsi Exp $ + * $XFree86: xc/programs/Xserver/hw/tinyx/linux/mouse.c,v 1.3 2006/11/02 21:55:26 tsi Exp $ * * Copyright © 2001 Keith Packard, member of The XFree86 Project, Inc. * @@ -977,6 +977,8 @@ { for (i = 0; i < NUM_DEFAULT_MOUSE; i++) { + if (kdNoSerialMouse && strstr(kdefaultMouse[i], "/dev/ttyS")) + continue; fd = open (kdefaultMouse[i], 2); if (fd >= 0) { Index: xc/programs/Xserver/hw/tinyx/mach64/mach64stub.c diff -u xc/programs/Xserver/hw/tinyx/mach64/mach64stub.c:1.1 xc/programs/Xserver/hw/tinyx/mach64/mach64stub.c:1.3 --- xc/programs/Xserver/hw/tinyx/mach64/mach64stub.c:1.1 Wed Jun 2 18:43:02 2004 +++ xc/programs/Xserver/hw/tinyx/mach64/mach64stub.c Tue Jan 23 13:02:58 2007 @@ -20,7 +20,7 @@ * * Author: Keith Packard, SuSE, Inc. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/mach64/mach64stub.c,v 1.1 2004/06/02 22:43:02 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/mach64/mach64stub.c,v 1.3 2007/01/23 18:02:58 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -72,7 +72,7 @@ #include "linux.h" void -InitCard (char *name) +InitCard (const char *name) { KdCardAttr attr; @@ -85,19 +85,19 @@ } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs); } int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { int ret; Index: xc/programs/Xserver/hw/tinyx/pcmcia/pcmciastub.c diff -u xc/programs/Xserver/hw/tinyx/pcmcia/pcmciastub.c:1.1 xc/programs/Xserver/hw/tinyx/pcmcia/pcmciastub.c:1.3 --- xc/programs/Xserver/hw/tinyx/pcmcia/pcmciastub.c:1.1 Wed Jun 2 18:43:02 2004 +++ xc/programs/Xserver/hw/tinyx/pcmcia/pcmciastub.c Tue Jan 23 13:02:58 2007 @@ -21,7 +21,7 @@ * * Authors: Alan Hourihane, */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/pcmcia/pcmciastub.c,v 1.1 2004/06/02 22:43:02 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/pcmcia/pcmciastub.c,v 1.3 2007/01/23 18:02:58 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -72,7 +72,7 @@ #include "pcmcia.h" void -InitCard (char *name) +InitCard (const char *name) { KdCardAttr attr; @@ -80,13 +80,13 @@ } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs); } @@ -94,7 +94,7 @@ extern pcmciaDisplayModeRec pcmciaDefaultModes[]; int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { return KdProcessArgument (argc, argv, i); } Index: xc/programs/Xserver/hw/tinyx/savage/s3stub.c diff -u xc/programs/Xserver/hw/tinyx/savage/s3stub.c:1.1 xc/programs/Xserver/hw/tinyx/savage/s3stub.c:1.3 --- xc/programs/Xserver/hw/tinyx/savage/s3stub.c:1.1 Wed Jun 2 18:43:02 2004 +++ xc/programs/Xserver/hw/tinyx/savage/s3stub.c Tue Jan 23 13:02:58 2007 @@ -20,7 +20,7 @@ * * Author: Keith Packard, SuSE, Inc. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/savage/s3stub.c,v 1.1 2004/06/02 22:43:02 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/savage/s3stub.c,v 1.3 2007/01/23 18:02:58 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -72,7 +72,7 @@ #include "linux.h" void -InitCard (char *name) +InitCard (const char *name) { KdCardAttr attr; #ifdef VXWORKS @@ -94,13 +94,13 @@ } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { #ifdef VXWORKS KdInitInput (&VxWorksMouseFuncs, &VxWorksKeyboardFuncs); @@ -111,7 +111,7 @@ } int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { if (!strcmp (argv[i], "-cpu")) { Index: xc/programs/Xserver/hw/tinyx/sis530/sisstub.c diff -u xc/programs/Xserver/hw/tinyx/sis530/sisstub.c:1.2 xc/programs/Xserver/hw/tinyx/sis530/sisstub.c:1.4 --- xc/programs/Xserver/hw/tinyx/sis530/sisstub.c:1.2 Fri Feb 17 22:31:37 2006 +++ xc/programs/Xserver/hw/tinyx/sis530/sisstub.c Tue Jan 23 13:02:58 2007 @@ -20,7 +20,7 @@ * * Author: Keith Packard, SuSE, Inc. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/sis530/sisstub.c,v 1.2 2006/02/18 03:31:37 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/sis530/sisstub.c,v 1.4 2007/01/23 18:02:58 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -76,7 +76,7 @@ #define numSisCards (sizeof (sisCards) / sizeof (sisCards[0])) void -InitCard (char *name) +InitCard (const char *name) { KdCardAttr attr; int i; @@ -88,19 +88,19 @@ } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs); } int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { return KdProcessArgument (argc, argv, i); } Index: xc/programs/Xserver/hw/tinyx/trident/tridentstub.c diff -u xc/programs/Xserver/hw/tinyx/trident/tridentstub.c:1.1 xc/programs/Xserver/hw/tinyx/trident/tridentstub.c:1.3 --- xc/programs/Xserver/hw/tinyx/trident/tridentstub.c:1.1 Wed Jun 2 18:43:02 2004 +++ xc/programs/Xserver/hw/tinyx/trident/tridentstub.c Tue Jan 23 13:02:58 2007 @@ -20,7 +20,7 @@ * * Author: Keith Packard, SuSE, Inc. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/trident/tridentstub.c,v 1.1 2004/06/02 22:43:02 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/trident/tridentstub.c,v 1.3 2007/01/23 18:02:58 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -74,7 +74,7 @@ extern int trident_clk, trident_mclk; void -InitCard (char *name) +InitCard (const char *name) { KdCardAttr attr; @@ -83,19 +83,19 @@ } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs); } int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { int ret; Index: xc/programs/Xserver/hw/tinyx/trio/s3stub.c diff -u xc/programs/Xserver/hw/tinyx/trio/s3stub.c:1.1 xc/programs/Xserver/hw/tinyx/trio/s3stub.c:1.3 --- xc/programs/Xserver/hw/tinyx/trio/s3stub.c:1.1 Wed Jun 2 18:43:03 2004 +++ xc/programs/Xserver/hw/tinyx/trio/s3stub.c Tue Jan 23 13:02:58 2007 @@ -20,7 +20,7 @@ * * Author: Keith Packard, SuSE, Inc. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/trio/s3stub.c,v 1.1 2004/06/02 22:43:03 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/trio/s3stub.c,v 1.3 2007/01/23 18:02:58 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -72,7 +72,7 @@ #include "linux.h" void -InitCard (char *name) +InitCard (const char *name) { KdCardAttr attr; CARD32 count; @@ -86,19 +86,19 @@ } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs); } int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { return KdProcessArgument (argc, argv, i); } Index: xc/programs/Xserver/hw/tinyx/ts300/ts300.c diff -u xc/programs/Xserver/hw/tinyx/ts300/ts300.c:1.1 xc/programs/Xserver/hw/tinyx/ts300/ts300.c:1.3 --- xc/programs/Xserver/hw/tinyx/ts300/ts300.c:1.1 Wed Jun 2 18:43:03 2004 +++ xc/programs/Xserver/hw/tinyx/ts300/ts300.c Tue Jan 23 13:02:58 2007 @@ -19,7 +19,7 @@ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/ts300/ts300.c,v 1.1 2004/06/02 22:43:03 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/ts300/ts300.c,v 1.3 2007/01/23 18:02:58 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -135,7 +135,7 @@ #define NUM_PCI_CARDS (sizeof (PCICards) / sizeof (PCICards[0])) void -InitCard (char *name) +InitCard (const char *name) { int i; KdCardAttr attr; @@ -154,19 +154,19 @@ } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput (&LinuxMouseFuncs, &LinuxKeyboardFuncs); } int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { return KdProcessArgument (argc, argv, i); } Index: xc/programs/Xserver/hw/tinyx/vesa/vesa.c diff -u xc/programs/Xserver/hw/tinyx/vesa/vesa.c:1.2 xc/programs/Xserver/hw/tinyx/vesa/vesa.c:1.3 --- xc/programs/Xserver/hw/tinyx/vesa/vesa.c:1.2 Mon Oct 4 17:58:08 2004 +++ xc/programs/Xserver/hw/tinyx/vesa/vesa.c Sat Sep 2 12:44:06 2006 @@ -19,7 +19,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/vesa/vesa.c,v 1.2 2004/10/04 21:58:08 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/vesa/vesa.c,v 1.3 2006/09/02 16:44:06 dawes Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -1787,7 +1787,7 @@ } int -vesaProcessArgument (int argc, char **argv, int i) +vesaProcessArgument (int argc, const char **argv, int i) { if(!strcmp(argv[i], "-mode")) { if(i+1 < argc) { Index: xc/programs/Xserver/hw/tinyx/vesa/vesa.h diff -u xc/programs/Xserver/hw/tinyx/vesa/vesa.h:1.1 xc/programs/Xserver/hw/tinyx/vesa/vesa.h:1.2 --- xc/programs/Xserver/hw/tinyx/vesa/vesa.h:1.1 Wed Jun 2 18:43:03 2004 +++ xc/programs/Xserver/hw/tinyx/vesa/vesa.h Sat Sep 2 12:44:06 2006 @@ -19,7 +19,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/vesa/vesa.h,v 1.1 2004/06/02 22:43:03 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/vesa/vesa.h,v 1.2 2006/09/02 16:44:06 dawes Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -206,7 +206,7 @@ vesaGetColors (ScreenPtr pScreen, int fb, int n, xColorItem *pdefs); int -vesaProcessArgument (int argc, char **argv, int i); +vesaProcessArgument (int argc, const char **argv, int i); void vesaUseMsg (void); Index: xc/programs/Xserver/hw/tinyx/vesa/vesainit.c diff -u xc/programs/Xserver/hw/tinyx/vesa/vesainit.c:1.1 xc/programs/Xserver/hw/tinyx/vesa/vesainit.c:1.3 --- xc/programs/Xserver/hw/tinyx/vesa/vesainit.c:1.1 Wed Jun 2 18:43:03 2004 +++ xc/programs/Xserver/hw/tinyx/vesa/vesainit.c Tue Jan 23 13:02:58 2007 @@ -19,7 +19,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/tinyx/vesa/vesainit.c,v 1.1 2004/06/02 22:43:03 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/tinyx/vesa/vesainit.c,v 1.3 2007/01/23 18:02:58 tsi Exp $ */ /* * Copyright (c) 2004 by The XFree86 Project, Inc. * All rights reserved. @@ -100,26 +100,26 @@ }; void -InitCard(char *name) +InitCard(const char *name) { KdCardAttr attr; KdCardInfoAdd((KdCardFuncs *) &vesaFuncs, &attr, 0); } void -InitOutput (ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput (ScreenInfo *pScreenInfo, const int argc, const char **argv) { KdInitOutput (pScreenInfo, argc, argv); } void -InitInput (int argc, char **argv) +InitInput (const int argc, const char **argv) { KdInitInput(&LinuxMouseFuncs, &LinuxKeyboardFuncs); } int -ddxProcessArgument (int argc, char **argv, int i) +ddxProcessArgument (int argc, const char **argv, int i) { int ret; Index: xc/programs/Xserver/hw/vfb/InitInput.c diff -u xc/programs/Xserver/hw/vfb/InitInput.c:3.12 xc/programs/Xserver/hw/vfb/InitInput.c:3.14 --- xc/programs/Xserver/hw/vfb/InitInput.c:3.12 Sun Feb 19 10:51:22 2006 +++ xc/programs/Xserver/hw/vfb/InitInput.c Tue Jan 23 13:02:59 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/vfb/InitInput.c,v 3.12 2006/02/19 15:51:22 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/vfb/InitInput.c,v 3.14 2007/01/23 18:02:59 tsi Exp $ */ /* Copyright 1993, 1998 The Open Group @@ -308,7 +308,7 @@ } void -InitInput(int argc, char *argv[]) +InitInput(const int argc, const char *argv[]) { DeviceIntPtr p, k; p = AddInputDevice(vfbMouseProc, TRUE); Index: xc/programs/Xserver/hw/vfb/InitOutput.c diff -u xc/programs/Xserver/hw/vfb/InitOutput.c:3.32 xc/programs/Xserver/hw/vfb/InitOutput.c:3.37 --- xc/programs/Xserver/hw/vfb/InitOutput.c:3.32 Sat Jan 28 20:32:43 2006 +++ xc/programs/Xserver/hw/vfb/InitOutput.c Mon Apr 2 20:21:12 2007 @@ -81,7 +81,7 @@ * */ -/* $XFree86: xc/programs/Xserver/hw/vfb/InitOutput.c,v 3.32 2006/01/29 01:32:43 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/vfb/InitOutput.c,v 3.37 2007/04/03 00:21:12 tsi Exp $ */ #if defined(WIN32) #include @@ -165,7 +165,7 @@ static vfbScreenInfo vfbScreens[MAXSCREENS]; static Bool vfbPixmapDepths[33]; #ifdef HAS_MMAP -static char *pfbdir = NULL; +static const char *pfbdir = NULL; #endif typedef enum { NORMAL_MEMORY_FB, SHARED_MEMORY_FB, MMAPPED_FILE_FB } fbMemType; static fbMemType fbmemtype = NORMAL_MEMORY_FB; @@ -278,15 +278,15 @@ #ifdef __DARWIN__ void -DarwinHandleGUI(int argc, char *argv[]) +DarwinHandleGUI(int argc, const char *argv[], char *envp[]) { } -void GlxExtensionInit(); +void GlxExtensionInit(INITARGS); void GlxWrapInitVisuals(void *procPtr); void -DarwinGlxExtensionInit() +DarwinGlxExtensionInit(INITARGS) { GlxExtensionInit(); } @@ -335,7 +335,7 @@ } int -ddxProcessArgument(int argc, char *argv[], int i) +ddxProcessArgument(int argc, const char *argv[], int i) { static Bool firstTime = TRUE; @@ -349,22 +349,29 @@ if (strcmp (argv[i], "-screen") == 0) /* -screen n WxHxD */ { int screenNum; + char *arg2; char *s; - if (i + 2 >= argc) UseMsg(); + if (i + 2 >= argc) return 0; screenNum = atoi(argv[i+1]); if (screenNum < 0 || screenNum >= MAXSCREENS) { ErrorF("Invalid screen number %d\n", screenNum); - UseMsg(); + return 0; } - s = strtok(argv[i+2], "@"); + arg2 = xstrdup(argv[i+2]); + if (!arg2) { + ErrorF("Memory allocation error\n"); + return 0; + } + s = strtok(arg2, "@"); if (3 != sscanf(s, "%dx%dx%d", &vfbScreens[screenNum].width, &vfbScreens[screenNum].height, &vfbScreens[screenNum].depth)) { + xfree(arg2); ErrorF("Invalid screen configuration %s\n", s); - UseMsg(); + return 0; } s = strtok(NULL, "@"); if (s) @@ -373,8 +380,9 @@ &vfbScreens[screenNum].xOrigin, &vfbScreens[screenNum].yOrigin)) { + xfree(arg2); ErrorF("Invalid screen position %s\n", s); - UseMsg(); + return 0; } } else @@ -386,6 +394,7 @@ if (screenNum >= vfbNumScreens) vfbNumScreens = screenNum + 1; lastScreen = screenNum; + xfree(arg2); return 3; } @@ -393,13 +402,13 @@ { int depth, ret = 1; - if (++i >= argc) UseMsg(); + if (++i >= argc) return 0; while ((i < argc) && (depth = atoi(argv[i++])) != 0) { if (depth < 0 || depth > 32) { ErrorF("Invalid pixmap depth %d\n", depth); - UseMsg(); + return 0; } vfbPixmapDepths[depth] = TRUE; ret++; @@ -422,7 +431,7 @@ if (strcmp (argv[i], "-blackpixel") == 0) /* -blackpixel n */ { Pixel pix; - if (++i >= argc) UseMsg(); + if (++i >= argc) return 0; pix = atoi(argv[i]); if (-1 == lastScreen) { @@ -442,7 +451,7 @@ if (strcmp (argv[i], "-whitepixel") == 0) /* -whitepixel n */ { Pixel pix; - if (++i >= argc) UseMsg(); + if (++i >= argc) return 0; pix = atoi(argv[i]); if (-1 == lastScreen) { @@ -462,7 +471,7 @@ if (strcmp (argv[i], "-linebias") == 0) /* -linebias n */ { unsigned int linebias; - if (++i >= argc) UseMsg(); + if (++i >= argc) return 0; linebias = atoi(argv[i]); if (-1 == lastScreen) { @@ -482,7 +491,7 @@ #ifdef HAS_MMAP if (strcmp (argv[i], "-fbdir") == 0) /* -fbdir directory */ { - if (++i >= argc) UseMsg(); + if (++i >= argc) return 0; pfbdir = argv[i]; fbmemtype = MMAPPED_FILE_FB; return 2; @@ -973,7 +982,7 @@ } static Bool -vfbScreenInit(int index, ScreenPtr pScreen, int argc, char **argv) +vfbScreenInit(int index, ScreenPtr pScreen, const int argc, const char **argv) { vfbScreenInfoPtr pvfb = &vfbScreens[index]; int dpix = 100, dpiy = 100; @@ -1057,7 +1066,7 @@ void -InitOutput(ScreenInfo *screenInfo, int argc, char **argv) +InitOutput(ScreenInfo *screenInfo, const int argc, const char **argv) { int i; int NumFormats = 0; Index: xc/programs/Xserver/hw/xfree86/Imakefile diff -u xc/programs/Xserver/hw/xfree86/Imakefile:3.92 xc/programs/Xserver/hw/xfree86/Imakefile:3.93 --- xc/programs/Xserver/hw/xfree86/Imakefile:3.92 Wed Mar 1 22:00:35 2006 +++ xc/programs/Xserver/hw/xfree86/Imakefile Tue Jun 27 23:20:27 2006 @@ -1,6 +1,6 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/Imakefile,v 3.92 2006/03/02 03:00:35 dawes Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/Imakefile,v 3.93 2006/06/28 03:20:27 dawes Exp $ /* - * Copyright (c) 1994-2004 by The XFree86 Project, Inc. + * Copyright (c) 1994-2006 by The XFree86 Project, Inc. * All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining @@ -152,7 +152,16 @@ all:: $(SAMPLE_CONFIG_FILES) xf86Build.h +#ifdef ChangelogFile +CHANGELOGFILE = ChangelogFile +#else CHANGELOGFILE = CHANGELOG +#endif +#ifdef ChangelogId +CHANGELOGID = ChangelogId +#else +CHANGELOGID = XFree86 +#endif #if defined(BuildDate) BUILD_DATE = BuildDate Index: xc/programs/Xserver/hw/xfree86/xf86Date.h diff -u xc/programs/Xserver/hw/xfree86/xf86Date.h:1.114 xc/programs/Xserver/hw/xfree86/xf86Date.h:1.144 --- xc/programs/Xserver/hw/xfree86/xf86Date.h:1.114 Tue May 9 20:25:37 2006 +++ xc/programs/Xserver/hw/xfree86/xf86Date.h Sun Aug 12 20:57:47 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Date.h,v 1.114 2006/05/10 00:25:37 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Date.h,v 1.144 2007/08/13 00:57:47 dawes Exp $ */ /* - * Copyright (c) 2004-2006 by The XFree86 Project, Inc. + * Copyright (c) 2004-2007 by The XFree86 Project, Inc. * All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining @@ -48,6 +48,6 @@ #ifndef XF86_DATE -#define XF86_DATE "10 May 2006" +#define XF86_DATE "12 August 2007" #endif Index: xc/programs/Xserver/hw/xfree86/xf86Version.h diff -u xc/programs/Xserver/hw/xfree86/xf86Version.h:3.628 xc/programs/Xserver/hw/xfree86/xf86Version.h:3.658 --- xc/programs/Xserver/hw/xfree86/xf86Version.h:3.628 Tue May 9 20:25:38 2006 +++ xc/programs/Xserver/hw/xfree86/xf86Version.h Sun Aug 12 20:57:47 2007 @@ -1,7 +1,7 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Version.h,v 3.628 2006/05/10 00:25:38 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Version.h,v 3.658 2007/08/13 00:57:47 dawes Exp $ */ /* - * Copyright (c) 1994-2006 by The XFree86 Project, Inc. + * Copyright (c) 1994-2007 by The XFree86 Project, Inc. * All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining @@ -50,7 +50,7 @@ #ifndef XF86_VERSION_NUMERIC #define XF86_VERSION_MAJOR 4 -#define XF86_VERSION_MINOR 6 +#define XF86_VERSION_MINOR 7 #define XF86_VERSION_PATCH 0 #define XF86_VERSION_SNAP 0 Index: xc/programs/Xserver/hw/xfree86/common/Imakefile diff -u xc/programs/Xserver/hw/xfree86/common/Imakefile:3.166 xc/programs/Xserver/hw/xfree86/common/Imakefile:3.168 --- xc/programs/Xserver/hw/xfree86/common/Imakefile:3.166 Tue Apr 18 11:57:25 2006 +++ xc/programs/Xserver/hw/xfree86/common/Imakefile Tue Jun 27 23:20:27 2006 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/common/Imakefile,v 3.166 2006/04/18 15:57:25 tsi Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/common/Imakefile,v 3.168 2006/06/28 03:20:27 dawes Exp $ #include @@ -23,11 +23,9 @@ #endif #if defined(SparcArchitecture) || defined(Sparc64Architecture) -#if !defined(OpenBSDArchitecture) SBUSSRC = xf86sbusBus.c SBUSOBJ = xf86sbusBus.o #endif -#endif #if BuildXKB XKBDDXSRC = xf86XKB.c @@ -185,6 +183,14 @@ CUSTOMVERSION = XFree86CustomVersion CUSTOMVERDEF = -DXF86_CUSTOM_VERSION='$(CUSTOMVERSION)' #endif +#if defined(XFree86CustomBanner) +CUSTOMBANNER = XFree86CustomBanner +CUSTOMBANNERDEF = -DXF86_CUSTOM_BANNER='$(CUSTOMBANNER)' +#endif +#if defined(XFree86ProblemString) +PROBLEMSTRING = XFree86ProblemString +PROBLEMSTRINGDEF = -DXF86_PROBLEM_STRING='$(PROBLEMSTRING)' +#endif #if defined(BuilderString) BUILDERSTRING = BuilderString BUILDERMSG = -DBUILDERSTRING='$(BUILDERSTRING)' @@ -206,7 +212,7 @@ AllTarget($(OFILES)) SpecialCObjectRule(xf86Bus,NullParameter,$(BUGMSG) $(VGAINCLUDES)) -SpecialCObjectRule(xf86Init,$(ICONFIGFILES),$(OSNAMEDEF) $(BUILDERMSG) $(BUGMSG) $(CUSTOMVERDEF) $(MDEBUGDEFS) $(LOADERTESTDEFS)) +SpecialCObjectRule(xf86Init,$(ICONFIGFILES),$(OSNAMEDEF) $(BUILDERMSG) $(BUGMSG) $(CUSTOMVERDEF) $(CUSTOMBANNERDEF) $(PROBLEMSTRINGDEF) $(MDEBUGDEFS) $(LOADERTESTDEFS)) SpecialCObjectRule(xf86Events,$(ICONFIGFILES),$(MDEBUGDEFS)) SpecialCObjectRule(xf86Globals,$(ICONFIGFILES),$(MODPATHDEFINES) $(LOGDEFINES)) SpecialCObjectRule(xf86AutoConfig,$(ICONFIGFILES),$(XCONFIGDEFINES)) Index: xc/programs/Xserver/hw/xfree86/common/xf86AutoConfig.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86AutoConfig.c:1.11 xc/programs/Xserver/hw/xfree86/common/xf86AutoConfig.c:1.12 --- xc/programs/Xserver/hw/xfree86/common/xf86AutoConfig.c:1.11 Thu Mar 16 11:49:55 2006 +++ xc/programs/Xserver/hw/xfree86/common/xf86AutoConfig.c Wed Jun 21 00:03:17 2006 @@ -45,7 +45,7 @@ * Author: David Dawes . */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86AutoConfig.c,v 1.11 2006/03/16 16:49:55 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86AutoConfig.c,v 1.12 2006/06/21 04:03:17 tsi Exp $ */ #include "xf86.h" #include "xf86Parser.h" @@ -55,7 +55,7 @@ #include "xf86_OSlib.h" #include "xf86Bus.h" -#if defined(__sparc__) && !defined(__OpenBSD__) +#if defined(__sparc__) #define SBUS_SUPPORT #endif Index: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Bus.c:1.93 xc/programs/Xserver/hw/xfree86/common/xf86Bus.c:1.99 --- xc/programs/Xserver/hw/xfree86/common/xf86Bus.c:1.93 Fri Oct 14 11:16:32 2005 +++ xc/programs/Xserver/hw/xfree86/common/xf86Bus.c Mon Apr 9 11:37:14 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.93 2005/10/14 15:16:32 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.99 2007/04/09 15:37:14 tsi Exp $ */ /* - * Copyright (c) 1997-2005 by The XFree86 Project, Inc. + * Copyright (c) 1997-2007 by The XFree86 Project, Inc. * All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining @@ -130,7 +130,7 @@ xf86BusProbe(void) { xf86PciProbe(); -#if defined(__sparc__) && !defined(__OpenBSD__) +#if defined(__sparc__) xf86SbusProbe(); #endif } @@ -1865,11 +1865,11 @@ *acc_io = &(*ppaccp)->ioAccess; *acc_mem = &(*ppaccp)->memAccess; *acc_mem_io = &(*ppaccp)->io_memAccess; - break; + return; } ppaccp++; } - break; + /* Fall through */ default: *acc_mem = *acc_io = *acc_mem_io = NULL; break; @@ -1904,7 +1904,11 @@ } } - prop = pEnt->entityProp; + if (state == OPERATING) + prop = pEnt->entityProp; + else + prop = NEED_SHARED | NEED_MEM | NEED_IO; + switch (prop & NEED_SHARED) { case NEED_SHARED: pEnt->access->rt = MEM_IO; @@ -1920,7 +1924,7 @@ break; default: /* no conflicts at all */ pEnt->access->rt = NONE; - pEnt->access->pAccess = NULL; /* remove from RAC */ + pEnt->access->pAccess = NULL; /* remove from RAC */ break; } @@ -2358,7 +2362,7 @@ if (fbSlotClaimed) { if (pciSlotClaimed || isaSlotClaimed -#if defined(__sparc__) && !defined(__OpenBSD__) +#if defined(__sparc__) || sbusSlotClaimed #endif ) { @@ -2426,14 +2430,7 @@ } xf86FreeResList(acc); -#if !(defined(__alpha__) && defined(linux)) && \ - !(defined(__sparc64__) && defined(__OpenBSD__)) - /* - * No need to validate on Alpha Linux or OpenBSD/sparc64, - * trust the kernel. - */ ValidatePci(); -#endif xf86MsgVerb(X_INFO, 3, "resource ranges after probing:\n"); xf86PrintResList(3, Acc); @@ -2560,7 +2557,7 @@ } #endif #ifdef DEBUG - ErrorF("PostScreenInit generation: %i\n",serverGeneration); + ErrorF("PostScreenInit generation: %li\n",serverGeneration); #endif if (serverGeneration == 1) { checkRoutingForScreens(OPERATING); @@ -2711,7 +2708,8 @@ if (range.rBegin >= list->block_begin && range.rEnd <= list->block_end) return TRUE; - else if (range.rBegin < list->block_begin + + if (range.rBegin < list->block_begin && range.rEnd > list->block_end) { RANGE(range1, range.rBegin, list->block_begin - 1, range.type); @@ -2720,12 +2718,15 @@ return (x_isSubsetOf(range1,list->next,list2) && x_isSubsetOf(range2,list->next,list2)); } - else if (range.rBegin >= list->block_begin + + if (range.rBegin >= list->block_begin && range.rBegin <= list->block_end) { RANGE(range1, list->block_end + 1, range.rEnd, range.type); return (x_isSubsetOf(range1,list->next,list2)); - } else if (range.rEnd >= list->block_begin + } + + if (range.rEnd >= list->block_begin && range.rEnd <= list->block_end) { RANGE(range1,range.rBegin, list->block_begin - 1, range.type); @@ -2733,6 +2734,7 @@ } } break; + case ResSparse: if ((list->res_type & ResExtMask) == ResSparse) { memType test; @@ -2762,14 +2764,17 @@ test = list->sparse_mask & ~range.rMask; if (test == 0) return TRUE; - for (i = 0; i < sizeof(memType); i++) { + for (i = 0; i < sizeof(memType) * 8; i++) { if ((test >> i) & 0x1) { - RANGE(range1, ((range.rBase & list->sparse_base) - | (range.rBase & ~list->sparse_mask) - | ((~list->sparse_base & list->sparse_mask) - & ~range.rMask)) & range1.rMask, - ((range.rMask | list->sparse_mask) & ~test) - | (1 << i), range.type); + RANGE( + range1, + ((range.rBase & list->sparse_base) | + (range.rBase & ~list->sparse_mask) | + ((~list->sparse_base & list->sparse_mask) & + ~range.rMask)) & range.rMask, + ((range.rMask | list->sparse_mask) & ~test) | + (1 << i), + range.type); return (x_isSubsetOf(range1,list->next,list2)); } } @@ -2777,32 +2782,40 @@ break; } } + return (x_isSubsetOf(range,list->next,list2)); - } else if (list2) { + } + + if (list2) { resPtr tmpList = NULL; + switch (range.type & ResExtMask) { case ResBlock: - tmpList = decomposeSparse(range); + list = tmpList = decomposeSparse(range); + while (tmpList) { if (!x_isSubsetOf(tmpList->val,list2,NULL)) { - xf86FreeResList(tmpList); + xf86FreeResList(list); return FALSE; } + tmpList = tmpList->next; } - xf86FreeResList(tmpList); + + xf86FreeResList(list); return TRUE; + case ResSparse: while (list2) { tmpList = xf86JoinResLists(tmpList,decomposeSparse(list2->val)); list2 = list2->next; } - ret = x_isSubsetOf(range,tmpList,NULL); + + ret = x_isSubsetOf(range, tmpList, NULL); xf86FreeResList(tmpList); return ret; } - } else - return FALSE; + } return FALSE; } @@ -2880,26 +2893,31 @@ } break; case ResSparse: - new = xf86JoinResLists(new,xf86FindIntersectOfLists(new,decomposeSparse(list->val))); + new = xf86JoinResLists(new, + xf86FindIntersectOfLists(new, + decomposeSparse(list->val))); break; } break; case ResSparse: switch (list->res_type & ResExtMask) { case ResSparse: - if (!((~(range.rBase ^ list->sparse_base) - & (range.rMask & list->sparse_mask)))) { - RANGE(range, (range.rBase & list->sparse_base) - | (~range.rMask & list->sparse_base) - | (~list->sparse_mask & range.rBase), - range.rMask | list->sparse_mask, - Range.type); - new = xf86AddResToList(new,&range,-1); + if (!((~(Range.rBase ^ list->sparse_base) + & (Range.rMask & list->sparse_mask)))) { + RANGE( + range, + (Range.rBase & list->sparse_base) | + (~Range.rMask & list->sparse_base) | + (~list->sparse_mask & Range.rBase), + Range.rMask | list->sparse_mask, + Range.type); + new = xf86AddResToList(new, &range, -1); } break; case ResBlock: - new = xf86JoinResLists(new,xf86FindIntersectOfLists( - decomposeSparse(range),list)); + new = xf86JoinResLists(new, + xf86FindIntersectOfLists( + decomposeSparse(Range), list)); break; } } @@ -3286,7 +3304,7 @@ pEntity->pciBusId.func), devName, devOffset, fbSize, fbOffset, flags); -#if defined(__sparc__) && !defined(__OpenBSD__) +#if defined(__sparc__) case BUS_SBUS: return xf86LocateSbusMemoryArea(xf86GetSbusInfoForEntity(entityIndex), devName, devOffset, Index: xc/programs/Xserver/hw/xfree86/common/xf86Config.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Config.c:3.292 xc/programs/Xserver/hw/xfree86/common/xf86Config.c:3.295 --- xc/programs/Xserver/hw/xfree86/common/xf86Config.c:3.292 Thu Mar 16 11:49:55 2006 +++ xc/programs/Xserver/hw/xfree86/common/xf86Config.c Sun Mar 11 13:38:02 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 3.292 2006/03/16 16:49:55 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 3.295 2007/03/11 17:38:02 tsi Exp $ */ /* @@ -1455,7 +1455,8 @@ fp = xf86ValidateFontPath(xf86FilePaths->fontPath); xfree(xf86FilePaths->fontPath); if (fp && *fp) { - xf86FilePaths->fontPath = defaultFontPath = fp; + xf86FilePaths->fontPath = fp; + defaultFontPath = fp; } else { xf86Msg(X_WARNING, "FontPath is completely invalid. " "Using compiled-in default.\n"); @@ -1981,12 +1982,10 @@ xf86Info.randRFrom = X_CONFIG; } #endif - i = -1; - xf86GetOptValInteger(FlagOptions, FLAG_ESTIMATE_SIZES_AGGRESSIVELY, &i); - if (i >= 0) - xf86Info.estimateSizesAggressively = i; - else - xf86Info.estimateSizesAggressively = 0; + + /* Allow negative values */ + xf86GetOptValInteger(FlagOptions, FLAG_ESTIMATE_SIZES_AGGRESSIVELY, + &xf86Info.estimateSizesAggressively); i = -1; xf86GetOptValInteger(FlagOptions, FLAG_SAVER_BLANKTIME, &i); @@ -2176,10 +2175,8 @@ break; #endif default: - xf86ConfigError("Unsupported wskbd type \"%d\"", - xf86Info.wsKbdType); - close(xf86Info.kbdFd); - return FALSE; + xf86Msg(X_PROBED, "Keyboard type: unknown (%d)\n", + xf86Info.wsKbdType); } #endif } else { Index: xc/programs/Xserver/hw/xfree86/common/xf86Configure.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Configure.c:3.89 xc/programs/Xserver/hw/xfree86/common/xf86Configure.c:3.94 --- xc/programs/Xserver/hw/xfree86/common/xf86Configure.c:3.89 Fri Oct 14 11:16:32 2005 +++ xc/programs/Xserver/hw/xfree86/common/xf86Configure.c Sun Mar 11 13:38:02 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Configure.c,v 3.89 2005/10/14 15:16:32 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Configure.c,v 3.94 2007/03/11 17:38:02 tsi Exp $ */ /* * Copyright 2000-2002 by Alan Hourihane, Flint Mountain, North Wales. * @@ -90,7 +90,7 @@ #include "xf86Parser.h" #include "xf86tokens.h" #include "xf86DDC.h" -#if defined(__sparc__) && !defined(__OpenBSD__) +#if defined(__sparc__) #include "xf86Bus.h" #include "xf86Sbus.h" #endif @@ -99,7 +99,7 @@ typedef struct _DevToConfig { GDevRec GDev; pciVideoPtr pVideo; -#if defined(__sparc__) && !defined(__OpenBSD__) +#if defined(__sparc__) sbusDevicePtr sVideo; #endif int iDriver; @@ -170,7 +170,7 @@ if (!DevToConfig[i].pVideo) return NULL; break; -#if defined(__sparc__) && !defined(__OpenBSD__) +#if defined(__sparc__) case BUS_SBUS: for (i = 0; i < nDevToConfig; i++) if (DevToConfig[i].sVideo && @@ -249,7 +249,7 @@ NewDevice.GDev.identifier = "ISA Adapter"; NewDevice.GDev.busID = "ISA"; break; -#if defined(__sparc__) && !defined(__OpenBSD__) +#if defined(__sparc__) case BUS_SBUS: { char *promPath = NULL; NewDevice.sVideo = (sbusDevicePtr) busData; @@ -306,17 +306,22 @@ configPrologue(XF86ConfInputPtr) ptr->inp_identifier = "Keyboard0"; -#if defined(WSCONS_SUPPORT) && defined(__NetBSD__) +#if defined(WSCONS_SUPPORT) /* check for /dev/wskbd */ { - int fd = open("/dev/wskbd", 0); +#if defined(__NetBSD__) +# define WSKBD "/dev/wskbd" +#elif defined(__OpenBSD__) +# define WSKBD "/dev/wskbd0" +#endif + int fd = open(WSKBD, 0); if (fd > 0) { close(fd); ptr->inp_driver = "kbd"; ptr->inp_option_lst = xf86addNewOption(ptr->inp_option_lst, "Protocol", "wskbd"); ptr->inp_option_lst = - xf86addNewOption(ptr->inp_option_lst, "Device", "/dev/wskbd"); + xf86addNewOption(ptr->inp_option_lst, "Device", WSKBD); } else { /* no /dev/wskbd - fall back to legacy driver */ ptr->inp_driver = "keyboard"; @@ -895,7 +900,7 @@ #ifdef __UNIXOS2__ #define PATH_MAX 2048 #endif -#if defined(__SCO__) +#ifndef PATH_MAX #define PATH_MAX 1024 #endif const char* configfile = XF86CONFIGFILE".new"; @@ -928,26 +933,26 @@ goto bail; } - xf86DoConfigurePass1 = FALSE; - - dev2screen = xnfcalloc(1,xf86NumDrivers*sizeof(int)); + dev2screen = xnfcalloc(1, nDevToConfig * sizeof(int)); { - Bool *driverProbed = xnfcalloc(1,xf86NumDrivers*sizeof(Bool)); + Bool *driverProbed = xnfcalloc(1, xf86NumDrivers * sizeof(Bool)); + int nextPrimary = 0; + for (screennum = 0; screennum < nDevToConfig; screennum++) { - int k,l,n,oldNumScreens; + int k, l, n, oldNumScreens; i = DevToConfig[screennum].iDriver; - if (driverProbed[i]) continue; + if (driverProbed[i]) + continue; driverProbed[i] = TRUE; oldNumScreens = xf86NumScreens; (*xf86DriverList[i]->Probe)(xf86DriverList[i], 0); - /* reorder */ - k = screennum > 0 ? screennum : 1; + /* Possibly reorder */ for (l = oldNumScreens; l < xf86NumScreens; l++) { /* is screen primary? */ Bool primary = FALSE; @@ -958,22 +963,19 @@ break; } } - if (primary) continue; - /* not primary: assign it to next device of same driver */ - /* - * NOTE: we assume that devices in DevToConfig - * and xf86Screens[] have the same order except - * for the primary device which always comes first. - */ - for (; k < nDevToConfig; k++) { - if (DevToConfig[k].iDriver == i) { - dev2screen[k++] = l; - break; - } + + if (primary) { + for (k = l; --k >= nextPrimary; ) + dev2screen[k + 1] = dev2screen[k]; + dev2screen[nextPrimary++] = l; + } else { + dev2screen[l] = l; } } - xf86SetPciVideo(NULL,NONE); + + xf86SetPciVideo(NULL, NONE); } + xfree(driverProbed); } @@ -1046,6 +1048,7 @@ ErrorF("To test the server, run 'XFree86 -xf86config %s'\n\n", filename); bail: + CloseWellKnownConnections(); OsCleanup(TRUE); AbortDDX(); fflush(stderr); Index: xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c:1.19 xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c:1.21 --- xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c:1.19 Fri Oct 14 11:16:32 2005 +++ xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c Mon Feb 5 10:03:46 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c,v 1.19 2005/10/14 15:16:32 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c,v 1.21 2007/02/05 15:03:46 tsi Exp $ */ /* * Copyright (c) 1999-2005 by The XFree86 Project, Inc. * All rights reserved. @@ -66,7 +66,7 @@ #endif /* XFree86LOADER */ void -DoProbeArgs(int argc, char **argv, int i) +DoProbeArgs(int argc, const char **argv, int i) { } @@ -120,6 +120,7 @@ } } + CloseWellKnownConnections(); OsCleanup(TRUE); AbortDDX(); fflush(stderr); Index: xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c:1.19 xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c:1.20 --- xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c:1.19 Wed Mar 1 22:00:36 2006 +++ xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c Sat Sep 2 12:44:08 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c,v 1.19 2006/03/02 03:00:36 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c,v 1.20 2006/09/02 16:44:08 dawes Exp $ */ /* * Copyright (c) 1999-2005 by The XFree86 Project, Inc. * All rights reserved. @@ -65,7 +65,7 @@ #include "xf86ScanPci.h" -void DoScanPci(int argc, char **argv, int i) +void DoScanPci(int argc, const char **argv, int i) { int j,skip,globalVerbose,scanpciVerbose; ScanPciSetupProcPtr PciSetup; Index: xc/programs/Xserver/hw/xfree86/common/xf86Events.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Events.c:3.174 xc/programs/Xserver/hw/xfree86/common/xf86Events.c:3.175 --- xc/programs/Xserver/hw/xfree86/common/xf86Events.c:3.174 Sat Apr 8 13:53:39 2006 +++ xc/programs/Xserver/hw/xfree86/common/xf86Events.c Sun Dec 10 10:58:27 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Events.c,v 3.174 2006/04/08 17:53:39 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Events.c,v 3.175 2006/12/10 15:58:27 tsi Exp $ */ /* * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. * @@ -318,7 +318,7 @@ xf86ProcessActionEvent(ActionEvent action, void *arg) { #ifdef DEBUG - ErrorF("ProcessActionEvent(%d,%x)\n", (int) action, arg); + ErrorF("ProcessActionEvent(%d,%lx)\n", (int)action, (unsigned long)arg); #endif switch (action) { case ACTION_TERMINATE: Index: xc/programs/Xserver/hw/xfree86/common/xf86Globals.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Globals.c:1.47 xc/programs/Xserver/hw/xfree86/common/xf86Globals.c:1.49 --- xc/programs/Xserver/hw/xfree86/common/xf86Globals.c:1.47 Wed Mar 1 22:00:36 2006 +++ xc/programs/Xserver/hw/xfree86/common/xf86Globals.c Sat Sep 2 12:44:08 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Globals.c,v 1.47 2006/03/02 03:00:36 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Globals.c,v 1.49 2006/09/02 16:44:08 dawes Exp $ */ /* * Copyright (c) 1997-2005 by The XFree86 Project, Inc. @@ -236,9 +236,9 @@ { FALSE, NULL, FALSE, FALSE, }, /* grabInfo */ NULL, /* config */ NULL, /* serverLayout */ - NULL, /* configFiles */ - NULL, /* configFlags */ - NULL /* configModules */ + NULL, /* confFiles */ + NULL, /* confFlags */ + NULL /* confModules */ }; const char *xf86ConfigFile = NULL; Bool xf86LogFileWasOpened = FALSE; @@ -287,15 +287,15 @@ }; /* Parameters set only from the command line */ -char *xf86ServerName = "no-name"; +const char *xf86ServerName = "no-name"; Bool xf86sFlag = FALSE; Bool xf86bsEnableFlag = FALSE; Bool xf86bsDisableFlag = FALSE; Bool xf86silkenMouseDisableFlag = FALSE; -char *xf86LayoutName = NULL; -char *xf86ScreenName = NULL; -char *xf86PointerName = NULL; -char *xf86KeyboardName = NULL; +const char *xf86LayoutName = NULL; +const char *xf86ScreenName = NULL; +const char *xf86PointerName = NULL; +const char *xf86KeyboardName = NULL; Bool xf86ProbeOnly = FALSE; int xf86Verbose = DEFAULT_VERBOSE; int xf86LogVerbose = DEFAULT_LOG_VERBOSE; Index: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Helper.c:1.156 xc/programs/Xserver/hw/xfree86/common/xf86Helper.c:1.158 --- xc/programs/Xserver/hw/xfree86/common/xf86Helper.c:1.156 Thu Mar 16 21:25:02 2006 +++ xc/programs/Xserver/hw/xfree86/common/xf86Helper.c Sun Dec 10 10:58:27 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c,v 1.156 2006/03/17 02:25:02 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c,v 1.158 2006/12/10 15:58:27 tsi Exp $ */ /* * Copyright (c) 1997-2006 by The XFree86 Project, Inc. @@ -1411,14 +1411,12 @@ xf86FileCmdline.logFile = (char *)LogInit(lf, LOGOLDSUFFIX); } else { /* Append the display number and ".log" */ - lf = malloc(strlen(xf86FileDefaults.logFile) + strlen("%s") + - strlen(LOGSUFFIX) + 1); + xasprintf(&lf, "%s%%s" LOGSUFFIX, xf86FileDefaults.logFile); if (!lf) - FatalError("Cannot allocate space for the log file name\n"); - sprintf(lf, "%s%%s" LOGSUFFIX, xf86FileDefaults.logFile); + FatalError("Cannot allocate space for the log file name.\n"); xf86FileDefaults.logFile = (char *)LogInit(lf, LOGOLDSUFFIX); } - free(lf); + xfree(lf); xf86LogFileWasOpened = TRUE; xf86SetVerbosity(xf86Verbose); @@ -3009,7 +3007,8 @@ #ifdef DEBUG ErrorF("xf86RegisterRootWindowProperty(%d, %ld, %ld, %d, %ld, %p)\n", - ScrnIndex, property, type, format, len, value); + ScrnIndex, (unsigned long)property, (unsigned long)type, + format, len, value); #endif if (ScrnIndex<0 || ScrnIndex>=xf86NumScreens) { Index: xc/programs/Xserver/hw/xfree86/common/xf86Init.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Init.c:3.240 xc/programs/Xserver/hw/xfree86/common/xf86Init.c:3.249 --- xc/programs/Xserver/hw/xfree86/common/xf86Init.c:3.240 Sat Apr 8 14:30:26 2006 +++ xc/programs/Xserver/hw/xfree86/common/xf86Init.c Mon Feb 5 10:03:46 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.240 2006/04/08 18:30:26 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.249 2007/02/05 15:03:46 tsi Exp $ */ /* * Loosely based on code bearing the following copyright: @@ -63,7 +63,7 @@ * the rights to use, copy, modify, merge, publish, distribute, sublicense, * and/or sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following conditions: - * + * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions, and the following disclaimer. * @@ -71,7 +71,7 @@ * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials provided * with the distribution. - * + * * 3. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: "This product * includes software developed by X-Oz Technologies @@ -95,7 +95,7 @@ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * + * */ @@ -172,9 +172,9 @@ /* forward declarations */ -static void xf86PrintBanner(void); -static void xf86PrintMarkers(void); -static void xf86RunVtInit(void); +static void PrintBanner(void); +static void PrintMarkers(void); +static void RunVtInit(void); static Bool autoconfig = FALSE; static Bool appendauto = FALSE; @@ -200,100 +200,101 @@ /* Common pixmap formats */ static PixmapFormatRec formats[MAXFORMATS] = { - { 1, 1, BITMAP_SCANLINE_PAD }, - { 4, 8, BITMAP_SCANLINE_PAD }, - { 8, 8, BITMAP_SCANLINE_PAD }, - { 15, 16, BITMAP_SCANLINE_PAD }, - { 16, 16, BITMAP_SCANLINE_PAD }, - { 24, 32, BITMAP_SCANLINE_PAD }, + { 1, 1, BITMAP_SCANLINE_PAD }, + { 4, 8, BITMAP_SCANLINE_PAD }, + { 8, 8, BITMAP_SCANLINE_PAD }, + { 15, 16, BITMAP_SCANLINE_PAD }, + { 16, 16, BITMAP_SCANLINE_PAD }, + { 24, 32, BITMAP_SCANLINE_PAD }, #ifdef RENDER - { 32, 32, BITMAP_SCANLINE_PAD }, + { 32, 32, BITMAP_SCANLINE_PAD }, #endif }; + #ifdef RENDER -static int numFormats = 7; +#define NUMDEFFORMATS 7 #else -static int numFormats = 6; +#define NUMDEFFORMATS 6 #endif + +static int numFormats = NUMDEFFORMATS; + static Bool formatsDone = FALSE; InputDriverRec xf86KEYBOARD = { - 1, - "keyboard", - NULL, - NULL, - NULL, - NULL, - 0 + 1, + "keyboard", + NULL, + NULL, + NULL, + NULL, + 0 }; static Bool xf86CreateRootWindow(WindowPtr pWin) { - int ret = TRUE; - int err = Success; - ScreenPtr pScreen = pWin->drawable.pScreen; - RootWinPropPtr pProp; - CreateWindowProcPtr CreateWindow = - (CreateWindowProcPtr)(pScreen->devPrivates[xf86CreateRootWindowIndex].ptr); + int ret = TRUE; + int err = Success; + ScreenPtr pScreen = pWin->drawable.pScreen; + RootWinPropPtr pProp; + CreateWindowProcPtr CreateWindow = + (CreateWindowProcPtr)(pScreen-> + devPrivates[xf86CreateRootWindowIndex]. + ptr); #ifdef DEBUG - ErrorF("xf86CreateRootWindow(%p)\n", pWin); + ErrorF("xf86CreateRootWindow(%p)\n", pWin); #endif - if ( pScreen->CreateWindow != xf86CreateRootWindow ) { - /* Can't find hook we are hung on */ - xf86DrvMsg(pScreen->myNum, X_WARNING /* X_ERROR */, - "xf86CreateRootWindow %p called when not in pScreen->CreateWindow %p n", + if (pScreen->CreateWindow != xf86CreateRootWindow) { + /* Can't find hook we are hung on */ + xf86DrvMsg(pScreen->myNum, X_WARNING /* X_ERROR */ , + "xf86CreateRootWindow %p called when not in " + "pScreen->CreateWindow %p n", (void *)xf86CreateRootWindow, - (void *)pScreen->CreateWindow ); - } + (void *)pScreen->CreateWindow); + } - /* Unhook this function ... */ - pScreen->CreateWindow = CreateWindow; - pScreen->devPrivates[xf86CreateRootWindowIndex].ptr = NULL; - - /* ... and call the previous CreateWindow fuction, if any */ - if (NULL!=pScreen->CreateWindow) { - ret = (*pScreen->CreateWindow)(pWin); - } - - /* Now do our stuff */ - if (xf86RegisteredPropertiesTable != NULL) { - if (pWin->parent == NULL && xf86RegisteredPropertiesTable != NULL) { - for (pProp = xf86RegisteredPropertiesTable[pScreen->myNum]; - pProp != NULL && err==Success; - pProp = pProp->next ) - { - Atom prop; + /* Unhook this function ... */ + pScreen->CreateWindow = CreateWindow; + pScreen->devPrivates[xf86CreateRootWindowIndex].ptr = NULL; + + /* ... and call the previous CreateWindow fuction, if any */ + if (NULL != pScreen->CreateWindow) { + ret = (*pScreen->CreateWindow)(pWin); + } + + /* Now do our stuff */ + if (xf86RegisteredPropertiesTable != NULL) { + if (pWin->parent == NULL && xf86RegisteredPropertiesTable != NULL) { + for (pProp = xf86RegisteredPropertiesTable[pScreen->myNum]; + pProp != NULL && err == Success; pProp = pProp->next) { + Atom prop; + + prop = MakeAtom(pProp->name, strlen(pProp->name), TRUE); + err = ChangeWindowProperty(pWin, + prop, pProp->type, + pProp->format, PropModeReplace, + pProp->size, pProp->data, FALSE); + } - prop = MakeAtom(pProp->name, strlen(pProp->name), TRUE); - err = ChangeWindowProperty(pWin, - prop, pProp->type, - pProp->format, PropModeReplace, - pProp->size, pProp->data, - FALSE - ); - } - - /* Look at err */ - ret &= (err==Success); - - } else { - xf86Msg(X_ERROR, "xf86CreateRootWindow unexpectedly called with " - "non-root window %p (parent %p)\n", - (void *)pWin, (void *)pWin->parent); - ret = FALSE; - } - } + /* Look at err */ + ret &= (err == Success); + } else { + xf86Msg(X_ERROR, "xf86CreateRootWindow unexpectedly called with " + "non-root window %p (parent %p)\n", + (void *)pWin, (void *)pWin->parent); + ret = FALSE; + } + } #ifdef DEBUG - ErrorF("xf86CreateRootWindow() returns %d\n", ret); + ErrorF("xf86CreateRootWindow() returns %d\n", ret); #endif - return (ret); + return (ret); } - /* * InitOutput -- * Initialize screenInfo for all actually accessible framebuffers. @@ -312,10 +313,10 @@ done = TRUE; xf86OSPMClose = xf86OSPMOpen(); - + if (!noVT) { /* Run an external VT Init program if specified in the config file */ - xf86RunVtInit(); + RunVtInit(); } /* Do this after XF86Config is read (it's normally in OsInit()) */ @@ -323,807 +324,843 @@ } void -InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv) +InitOutput(ScreenInfo * pScreenInfo, const int argc, const char **argv) { - int i, j, k, scr_index; - static unsigned long generation = 0; + int i, j, k, scr_index; + static unsigned long generation = 0; + #ifdef XFree86LOADER - const char **modulelist; - pointer *optionlist; - Bool haveScreens = FALSE; -#endif - const char **driverlist; - screenLayoutPtr layout; - Pix24Flags screenpix24, pix24; - MessageType pix24From = X_DEFAULT; - Bool pix24Fail = FALSE; - Bool autoretry = FALSE; - int found = 0; + const char **modulelist; + pointer *optionlist; + Bool haveScreens = FALSE; +#endif + const char **driverlist; + screenLayoutPtr layout; + Pix24Flags screenpix24, pix24; + MessageType pix24From = X_DEFAULT; + Bool pix24Fail = FALSE; + Bool autoretry = FALSE; + int found = 0; #ifdef __UNIXOS2__ - os2ServerVideoAccess(); /* See if we have access to the screen before doing anything */ + os2ServerVideoAccess(); /* + * See if we have access to the screen + * before doing anything. + */ #endif - xf86Initialising = TRUE; - - /* Do this early? */ - if (generation != serverGeneration) { - xf86ScreenIndex = AllocateScreenPrivateIndex(); - xf86CreateRootWindowIndex = AllocateScreenPrivateIndex(); - xf86PixmapIndex = AllocatePixmapPrivateIndex(); - generation = serverGeneration; - } + xf86Initialising = TRUE; + + /* Do this early? */ + if (generation != serverGeneration) { + xf86ScreenIndex = AllocateScreenPrivateIndex(); + xf86CreateRootWindowIndex = AllocateScreenPrivateIndex(); + xf86PixmapIndex = AllocatePixmapPrivateIndex(); + generation = serverGeneration; + } - if (serverGeneration == 1) { + if (serverGeneration == 1) { - pScreenInfo->numScreens = 0; + pScreenInfo->numScreens = 0; - if ((xf86ServerName = strrchr(argv[0], '/')) != 0) - xf86ServerName++; - else - xf86ServerName = argv[0]; + if ((xf86ServerName = strrchr(argv[0], '/')) != 0) + xf86ServerName++; + else + xf86ServerName = argv[0]; - /* Set default paths. */ - xf86FileCmdline.handle = &xf86FileCmdline; - xf86FileDefaults.handle = &xf86FileDefaults; - xf86FileDefaults.fontPath = xnfstrdup(defaultFontPath); - xf86FileDefaults.fontPathFrom = X_DEFAULT; - xf86FileDefaults.rgbPath = xnfstrdup(rgbPath); - xf86FileDefaults.rgbPathFrom = X_DEFAULT; - /* Combine the defaults with the command line data. */ - xf86FilePaths = xf86ConfCombineFilesData(&xf86FileCmdline, X_CMDLINE, - &xf86FileDefaults, X_DEFAULT); - if (!xf86FilePaths) - FatalError("File path initialisation failed.\n"); - - xf86FilePaths->identifier = xstrdup(""); - - xf86PrintBanner(); - xf86PrintMarkers(); - if (xf86FilePaths->logFile) { - time_t t; - const char *ct; - t = time(NULL); - ct = ctime(&t); - xf86MsgVerb(xf86FilePaths->logFileFrom, 0, - "Log file: \"%s\", Time: %s", xf86FilePaths->logFile, ct); - } - - /* Read and parse the config file */ - if (!autoconfig && !xf86DoProbe && !xf86DoConfigure) { - switch (xf86LoadConfigFile(NULL, FALSE)) { - case CONFIG_OK: - if (!noAppendauto && !xf86CheckForLayoutOrScreen(DEFAULT_CONFIG) && - !noHardware) { - xf86MsgVerb(X_INFO, 0, - "No Screen or Layout sections in the config file.\n" - "\tAppending default built-in configuration.\n"); - appendauto = TRUE; - } else if (appendauto) { - xf86MsgVerb(X_CMDLINE, 0, - "Appending default built-in configuration.\n"); - } - break; - case CONFIG_PARSE_ERROR: - xf86Msg(X_ERROR, "Error parsing the config file.\n"); - return; - case CONFIG_NOFILE: - /* For now, don't enable autoconfig when -nohw is enabled. */ - if (!noHardware) - autoconfig = TRUE; - break; - } - } else { - appendauto = FALSE; - } + /* Set default paths. */ + xf86FileCmdline.handle = &xf86FileCmdline; + xf86FileDefaults.handle = &xf86FileDefaults; + xf86FileDefaults.fontPath = xnfstrdup(defaultFontPath); + xf86FileDefaults.fontPathFrom = X_DEFAULT; + xf86FileDefaults.rgbPath = xnfstrdup(rgbPath); + xf86FileDefaults.rgbPathFrom = X_DEFAULT; + /* Combine the defaults with the command line data. */ + xf86FilePaths = xf86ConfCombineFilesData(&xf86FileCmdline, X_CMDLINE, + &xf86FileDefaults, + X_DEFAULT); + if (!xf86FilePaths) + FatalError("File path initialisation failed.\n"); + + xf86FilePaths->identifier = xstrdup(""); + + PrintBanner(); + PrintMarkers(); + if (xf86FilePaths->logFile) { + time_t t; + const char *ct; + + t = time(NULL); + ct = ctime(&t); + xf86MsgVerb(xf86FilePaths->logFileFrom, 0, + "Log file: \"%s\", Time: %s", xf86FilePaths->logFile, + ct); + } + + /* Read and parse the config file */ + if (!autoconfig && !xf86DoProbe && !xf86DoConfigure) { + switch (xf86LoadConfigFile(NULL, FALSE)) { + case CONFIG_OK: + if (!noAppendauto + && !xf86CheckForLayoutOrScreen(DEFAULT_CONFIG) + && !noHardware) { + xf86MsgVerb(X_INFO, 0, + "No Screen or Layout sections in the " + "config file.\n" + "\tAppending default built-in " + "configuration.\n"); + appendauto = TRUE; + } else if (appendauto) { + xf86MsgVerb(X_CMDLINE, 0, + "Appending default built-in configuration.\n"); + } + break; + case CONFIG_PARSE_ERROR: + xf86Msg(X_ERROR, "Error parsing the config file.\n"); + return; + case CONFIG_NOFILE: + /* For now, don't enable autoconfig when -nohw is enabled. */ + if (!noHardware) + autoconfig = TRUE; + break; + } + } else { + appendauto = FALSE; + } - /* - * Install signal handlers earlier to catch hardware problems. Perhaps - * there should be a command line flag to control xf86Info.notrapSignals. - */ - xf86Info.caughtSignal=FALSE; - if (!xf86Info.notrapSignals) { - signal(SIGSEGV,xf86SigHandler); - signal(SIGILL,xf86SigHandler); + /* + * Install signal handlers earlier to catch hardware problems. + * Perhaps there should be a command line flag to control + * xf86Info.notrapSignals. + */ + xf86Info.caughtSignal = FALSE; + if (!xf86Info.notrapSignals) { + signal(SIGSEGV, xf86SigHandler); + signal(SIGILL, xf86SigHandler); #ifdef SIGEMT - signal(SIGEMT,xf86SigHandler); + signal(SIGEMT, xf86SigHandler); #endif - signal(SIGFPE,xf86SigHandler); + signal(SIGFPE, xf86SigHandler); #ifdef SIGBUS - signal(SIGBUS,xf86SigHandler); + signal(SIGBUS, xf86SigHandler); #endif #ifdef SIGSYS - signal(SIGSYS,xf86SigHandler); + signal(SIGSYS, xf86SigHandler); #endif #ifdef SIGXCPU - signal(SIGXCPU,xf86SigHandler); + signal(SIGXCPU, xf86SigHandler); #endif #ifdef SIGXFSZ - signal(SIGXFSZ,xf86SigHandler); + signal(SIGXFSZ, xf86SigHandler); #endif #ifdef MEMDEBUG - signal(SIGUSR2,xf86SigMemDebug); + signal(SIGUSR2, xf86SigMemDebug); #endif - } - + } #ifdef XFree86LOADER - /* Initialise the loader */ - LoaderInit(); - - /* Setup probe and base module lists. */ - LoaderSetPath(xf86FilePaths->modulePath); - /* Load modules required for hardware probing. */ - if (!noHardware) { - numProbeModules = 1; - probeModules = xnfalloc(sizeof(*probeModules) * (numProbeModules + 1)); - probeModules[0] = "pcidata"; - probeModules[numProbeModules] = NULL; - } - numBaseModules = 1; - baseModules = xnfalloc(sizeof(*baseModules) * (numBaseModules + 1)); - baseModules[0] = "bitmap"; - baseModules[numBaseModules] = NULL; -#endif - - if (autoconfig || appendauto) { - if (!noVT) - xf86OpenConsole(); + /* Initialise the loader */ + LoaderInit(); + /* Setup probe and base module lists. */ + LoaderSetPath(xf86FilePaths->modulePath); + /* Load modules required for hardware probing. */ if (!noHardware) { + numProbeModules = 1; + probeModules = + xnfalloc(sizeof(*probeModules) * (numProbeModules + 1)); + probeModules[0] = "pcidata"; + probeModules[numProbeModules] = NULL; + } + numBaseModules = 1; + baseModules = xnfalloc(sizeof(*baseModules) * (numBaseModules + 1)); + baseModules[0] = "bitmap"; + baseModules[numBaseModules] = NULL; +#endif + + if (autoconfig || appendauto) { + if (!noVT) + xf86OpenConsole(); + + if (!noHardware) { #ifdef XFree86LOADER - /* Load modules required for hardware probing. */ - if (probeModules) { - if (!xf86LoadModules(probeModules, NULL)) { - FatalError( - "Unable to load required probe modules, Exiting...\n"); + /* Load modules required for hardware probing. */ + if (probeModules) { + if (!xf86LoadModules(probeModules, NULL)) { + FatalError + ("Unable to load required probe modules, " + "Exiting...\n"); + } + xfree(probeModules); + probeModules = NULL; } - xfree(probeModules); - probeModules = NULL; - } #endif - /* Enable full I/O access */ - xf86EnableIO(); + /* Enable full I/O access */ + xf86EnableIO(); - /* - * Do a general bus probe. - * This will be a PCI probe for x86 platforms. - */ - xf86BusProbe(); - } - if (!xf86AutoConfig()) { - xf86Msg(X_ERROR, "Auto configuration failed.\n"); - return; + /* + * Do a general bus probe. + * This will be a PCI probe for x86 platforms. + */ + xf86BusProbe(); + } + if (!xf86AutoConfig()) { + xf86Msg(X_ERROR, "Auto configuration failed.\n"); + return; + } } - } - if (!xf86DoProbe && !xf86DoConfigure) { - if (xf86ProcessConfiguration() != CONFIG_OK) { - xf86Msg(X_ERROR, "Error processing configuration data.\n"); - return; + if (!xf86DoProbe && !xf86DoConfigure) { + if (xf86ProcessConfiguration() != CONFIG_OK) { + xf86Msg(X_ERROR, "Error processing configuration data.\n"); + return; + } } - } - #ifdef XFree86LOADER - LoaderSetPath(xf86FilePaths->modulePath); + LoaderSetPath(xf86FilePaths->modulePath); #ifdef TESTING - { - char **list, **l; - const char *subdirs[] = { + { + char **list, **l; + const char *subdirs[] = { "drivers", NULL - }; - const char *patlist[] = { + }; + const char *patlist[] = { "(.*)_drv\\.so", "(.*)_drv\\.o", NULL - }; - ErrorF("Getting module listing...\n"); - list = LoaderListDirs(NULL, NULL); - if (list) - for (l = list; *l; l++) - ErrorF("module: %s\n", *l); - LoaderFreeDirList(list); - ErrorF("Getting video driver listing...\n"); - list = LoaderListDirs(subdirs, NULL); - if (list) - for (l = list; *l; l++) - ErrorF("video driver: %s\n", *l); - LoaderFreeDirList(list); - ErrorF("Getting driver listing...\n"); - list = LoaderListDirs(NULL, patlist); - if (list) - for (l = list; *l; l++) - ErrorF("video driver: %s\n", *l); - LoaderFreeDirList(list); - } + }; + ErrorF("Getting module listing...\n"); + list = LoaderListDirs(NULL, NULL); + if (list) + for (l = list; *l; l++) + ErrorF("module: %s\n", *l); + LoaderFreeDirList(list); + ErrorF("Getting video driver listing...\n"); + list = LoaderListDirs(subdirs, NULL); + if (list) + for (l = list; *l; l++) + ErrorF("video driver: %s\n", *l); + LoaderFreeDirList(list); + ErrorF("Getting driver listing...\n"); + list = LoaderListDirs(NULL, patlist); + if (list) + for (l = list; *l; l++) + ErrorF("video driver: %s\n", *l); + LoaderFreeDirList(list); + } #endif #if LOADERTEST - if (doLoaderTest) - LoaderTest(); + if (doLoaderTest) + LoaderTest(); #endif - /* Load mandatory probe and base modules. */ - if (probeModules) { - if (!xf86LoadModules(probeModules, NULL)) - FatalError("Unable to load required probe modules, Exiting...\n"); - xfree(probeModules); - probeModules = NULL; - } - if (baseModules) { - if (!xf86LoadModules(baseModules, NULL)) - FatalError("Unable to load required base modules, Exiting...\n"); - xfree(baseModules); - baseModules = NULL; - } + /* Load mandatory probe and base modules. */ + if (probeModules) { + if (!xf86LoadModules(probeModules, NULL)) + FatalError + ("Unable to load required probe modules, Exiting...\n"); + xfree(probeModules); + probeModules = NULL; + } + if (baseModules) { + if (!xf86LoadModules(baseModules, NULL)) + FatalError + ("Unable to load required base modules, Exiting...\n"); + xfree(baseModules); + baseModules = NULL; + } #endif - if (!autoconfig && !appendauto) { - if (!noVT) - xf86OpenConsole(); + if (!autoconfig && !appendauto) { + if (!noVT) + xf86OpenConsole(); + + if (!noHardware) { + /* Enable full I/O access */ + xf86EnableIO(); + + /* + * Do a general bus probe. + * This will be a PCI probe for x86 platforms. + */ + xf86BusProbe(); - if (!noHardware) { - /* Enable full I/O access */ - xf86EnableIO(); + if (xf86DoProbe) + DoProbe(); - /* - * Do a general bus probe. - * This will be a PCI probe for x86 platforms. - */ - xf86BusProbe(); + if (xf86DoConfigure) + DoConfigure(); + } + } - if (xf86DoProbe) - DoProbe(); + PostConfigInit(); - if (xf86DoConfigure) - DoConfigure(); + retry: + + if (!noHardware) { + /* Initialise the resource broker */ + xf86ResourceBrokerInit(); } - } - PostConfigInit(); + /* + * Do whatever is needed to setup the initial driver list. Don't + * redo this again when doing an autoconfig retry. + */ -retry: + if (!autoretry) { +#ifdef XFree86LOADER + /* Load all modules specified explicitly in the config file */ + if ((modulelist = xf86ModulelistFromConfig(&optionlist))) { + xf86LoadModules(modulelist, optionlist); + xf86ModulelistFree(modulelist, optionlist); + } - if (!noHardware) { - /* Initialise the resource broker */ - xf86ResourceBrokerInit(); - } + /* Load all driver modules specified in the config file */ + if ((driverlist = xf86DriverlistFromConfig())) { + xf86LoadModules(driverlist, NULL); + xfree(driverlist); + } - /* - * Do whatever is needed to setup the initial driver list. Don't - * redo this again when doing an autoconfig retry. - */ + /* Setup the builtin input drivers */ + xf86AddInputDriver(&xf86KEYBOARD, NULL, 0); + /* Load all input driver modules specified in the config file. */ + if ((modulelist = xf86InputDriverlistFromConfig())) { + xf86LoadModules(modulelist, NULL); + xfree(modulelist); + } - if (!autoretry) { -#ifdef XFree86LOADER - /* Load all modules specified explicitly in the config file */ - if ((modulelist = xf86ModulelistFromConfig(&optionlist))) { - xf86LoadModules(modulelist, optionlist); - xf86ModulelistFree(modulelist, optionlist); - } - - /* Load all driver modules specified in the config file */ - if ((driverlist = xf86DriverlistFromConfig())) { - xf86LoadModules(driverlist, NULL); - xfree(driverlist); - } - - /* Setup the builtin input drivers */ - xf86AddInputDriver(&xf86KEYBOARD, NULL, 0); - /* Load all input driver modules specified in the config file. */ - if ((modulelist = xf86InputDriverlistFromConfig())) { - xf86LoadModules(modulelist, NULL); - xfree(modulelist); - } - - /* - * It is expected that xf86AddDriver()/xf86AddInputDriver will be - * called for each driver as it is loaded. Those functions save the - * module pointers for drivers. - * XXX Nothing keeps track of them for other modules. - */ - /* XXX What do we do if not all of these could be loaded? */ + /* + * It is expected that xf86AddDriver()/xf86AddInputDriver will be + * called for each driver as it is loaded. Those functions + * save the module pointers for drivers. + * XXX Nothing keeps track of them for other modules. + */ + /* XXX What do we do if not all of these could be loaded? */ #else - /* Re-order the driver list for the benefit of autoconfiguration. */ - if (autoconfig && (driverlist = xf86DriverlistFromConfig())) { - DriverPtr *newList = xnfcalloc(1, xf86NumDrivers * sizeof(DriverPtr)); - int numNew; - - for (i = 0; driverlist[i]; i++) { - for (j = 0; j < xf86NumDrivers; j++) { - if (xf86DriverList[j] && xf86DriverList[j]->driverName && - xf86NameCmp(xf86DriverList[j]->driverName, - driverlist[i]) == 0) { - newList[i] = xf86DriverList[j]; - xf86DriverList[j] = NULL; - break; + /* Re-order the driver list for the benefit of autoconfiguration. */ + if (autoconfig && (driverlist = xf86DriverlistFromConfig())) { + DriverPtr *newList = + xnfcalloc(1, xf86NumDrivers * sizeof(DriverPtr)); + int numNew; + + for (i = 0; driverlist[i]; i++) { + for (j = 0; j < xf86NumDrivers; j++) { + if (xf86DriverList[j] && xf86DriverList[j]->driverName + && xf86NameCmp(xf86DriverList[j]->driverName, + driverlist[i]) == 0) { + newList[i] = xf86DriverList[j]; + xf86DriverList[j] = NULL; + break; + } + } + } + numNew = i; + /* Write the new list out. */ + for (i = 0; i < xf86NumDrivers; i++) { + if (i < numNew) + xf86DriverList[i] = newList[i]; + else + xf86DriverList[i] = NULL; + } + xf86NumDrivers = numNew; + xfree(newList); + xfree(driverlist); } - } - } - numNew = i; - /* Write the new list out. */ - for (i = 0; i < xf86NumDrivers; i++) { - if (i < numNew) - xf86DriverList[i] = newList[i]; - else - xf86DriverList[i] = NULL; - } - xf86NumDrivers = numNew; - xfree(newList); - xfree(driverlist); - } #endif - } - - /* - * At this point, xf86DriverList[] is all filled in with entries for - * each of the drivers to try and xf86NumDrivers has the number of - * drivers. If there are none, return now. - */ - - if (xf86NumDrivers == 0) { - xf86Msg(X_ERROR, "No drivers available.\n"); - return; - } + } - /* - * Call each of the Identify functions. The Identify functions print - * out some identifying information, and anything else that might be - * needed at this early stage. - */ + /* + * At this point, xf86DriverList[] is all filled in with entries for + * each of the drivers to try and xf86NumDrivers has the number of + * drivers. If there are none, return now. + */ - for (i = 0; i < xf86NumDrivers; i++) { - if (xf86DriverList[i]) { - /* The Identify function is mandatory, but if it isn't there continue */ - if (xf86DriverList[i]->Identify != NULL) - xf86DriverList[i]->Identify(0); - else { - xf86Msg(X_WARNING, "Driver `%s' has no Identify function\n", - xf86DriverList[i]->driverName ? xf86DriverList[i]->driverName - : "noname"); + if (xf86NumDrivers == 0) { + xf86Msg(X_ERROR, "No drivers available.\n"); + return; } - } - } - if (!noHardware) { /* - * Locate bus slot that had register IO enabled at server startup + * Call each of the Identify functions. The Identify functions print + * out some identifying information, and anything else that might be + * needed at this early stage. */ - xf86AccessInit(); - xf86FindPrimaryDevice(); - } + for (i = 0; i < xf86NumDrivers; i++) { + if (xf86DriverList[i]) { + /* + * The Identify function is mandatory, but if it isn't there + * continue. + */ + if (xf86DriverList[i]->Identify != NULL) + xf86DriverList[i]->Identify(0); + else { + xf86Msg(X_WARNING, + "Driver `%s' has no Identify function\n", + xf86DriverList[i]-> + driverName ? xf86DriverList[i]-> + driverName : "noname"); + } + } + } - /* - * Now call each of the Probe functions. Each successful probe will - * result in an extra entry added to the xf86Screens[] list for each - * instance of the hardware found. - */ + if (!noHardware) { + /* + * Locate bus slot that had register IO enabled at server startup + */ - /* - * For autoconfiguration, where several drivers will be tried in - * sequence, we need to make sure that those with a failing Probe() up - * until the first successful Probe() are deleted here. This is - * important for the autoconfiguration retry mechanism. Also, stop - * probing at the first successful probe. The remaining fallback - * drivers will be retried on preinit failure. - */ + xf86AccessInit(); + xf86FindPrimaryDevice(); + } - found = 0; - for (i = 0; i < xf86NumDrivers; i++) { - if (xf86DriverList[i]) { - if (xf86DriverList[i]->Probe != NULL) { - if (xf86DriverList[i]->Probe(xf86DriverList[i], PROBE_DEFAULT)) - found++; - if (!found) { - xf86DeleteDriver(i); - } - } else { - xf86MsgVerb(X_WARNING, 0, - "Driver `%s' has no Probe function (ignoring)\n", - xf86DriverList[i]->driverName ? - xf86DriverList[i]->driverName : "noname"); - } - xf86SetPciVideo(NULL,NONE); - if (found && autoconfig) - break; - } - } + /* + * Now call each of the Probe functions. Each successful probe will + * result in an extra entry added to the xf86Screens[] list for each + * instance of the hardware found. + */ - /* - * If nothing was detected, return now. - */ + /* + * For autoconfiguration, where several drivers will be tried in + * sequence, we need to make sure that those with a failing Probe() up + * until the first successful Probe() are deleted here. This is + * important for the autoconfiguration retry mechanism. Also, stop + * probing at the first successful probe. The remaining fallback + * drivers will be retried on preinit failure. + */ - if (xf86NumScreens == 0) { - xf86Msg(X_ERROR, "No devices detected.\n"); - return; - } + found = 0; + for (i = 0; i < xf86NumDrivers; i++) { + if (xf86DriverList[i]) { + if (xf86DriverList[i]->Probe != NULL) { + if (xf86DriverList[i]-> + Probe(xf86DriverList[i], PROBE_DEFAULT)) + found++; + if (!found) { + xf86DeleteDriver(i); + } + } else { + xf86MsgVerb(X_WARNING, 0, + "Driver `%s' has no Probe function " + "(ignoring)\n", + xf86DriverList[i]->driverName ? + xf86DriverList[i]->driverName : "noname"); + } + xf86SetPciVideo(NULL, NONE); + if (found && autoconfig) + break; + } + } - /* - * Match up the screens found by the probes against those specified - * in the config file. Remove the ones that won't be used. Sort - * them in the order specified. - */ + /* + * If nothing was detected, return now. + */ - /* - * What is the best way to do this? - * - * For now, go through the screens allocated by the probes, and - * look for screen config entry which refers to the same device - * section as picked out by the probe. - * - */ + if (xf86NumScreens == 0) { + xf86Msg(X_ERROR, "No devices detected.\n"); + return; + } - for (i = 0; i < xf86NumScreens; i++) { - for (k = 0; k < xf86Info.serverLayout->numScreens; k++) { - layout = xf86Info.serverLayout->screenLayouts[k]; - if (!layout || !layout->screen) - continue; - found = FALSE; - for (j = 0; j < xf86Screens[i]->numEntities; j++) { - - GDevPtr dev = - xf86GetDevFromEntity(xf86Screens[i]->entityList[j], - xf86Screens[i]->entityInstanceList[j]); - - if (dev == layout->screen->device) { - /* A match has been found */ - xf86Screens[i]->confScreen = layout->screen; - found = TRUE; - break; + /* + * Match up the screens found by the probes against those specified + * in the config file. Remove the ones that won't be used. Sort + * them in the order specified. + */ + + /* + * What is the best way to do this? + * + * For now, go through the screens allocated by the probes, and + * look for screen config entry which refers to the same device + * section as picked out by the probe. + * + */ + + for (i = 0; i < xf86NumScreens; i++) { + for (k = 0; k < xf86Info.serverLayout->numScreens; k++) { + layout = xf86Info.serverLayout->screenLayouts[k]; + if (!layout || !layout->screen) + continue; + found = FALSE; + for (j = 0; j < xf86Screens[i]->numEntities; j++) { + + GDevPtr dev = + xf86GetDevFromEntity(xf86Screens[i]-> + entityList[j], + xf86Screens[i]-> + entityInstanceList[j]); + + if (dev == layout->screen->device) { + /* A match has been found */ + xf86Screens[i]->confScreen = layout->screen; + found = TRUE; + break; + } } + if (found) + break; + } + if (k == xf86Info.serverLayout->numScreens) { + /* No match found */ + xf86Msg(X_ERROR, + "Screen %d deleted because of no matching " + "config section.\n", i); + xf86DeleteScreen(i--, 0); } - if (found) - break; } - if (k == xf86Info.serverLayout->numScreens) { - /* No match found */ + + /* + * If no screens left, return now. + */ + + if (xf86NumScreens == 0) { xf86Msg(X_ERROR, - "Screen %d deleted because of no matching config section.\n", - i); - xf86DeleteScreen(i--, 0); + "Device(s) detected, but none match those in the " + "config file.\n"); + return; } - } - - /* - * If no screens left, return now. - */ - if (xf86NumScreens == 0) { - xf86Msg(X_ERROR, - "Device(s) detected, but none match those in the config file.\n"); - return; - } + if (!noHardware) { + xf86PostProbe(); + xf86EntityInit(); + } - if (!noHardware) { - xf86PostProbe(); - xf86EntityInit(); - } + /* + * Sort the drivers to match the requested ordering. Using a slow + * bubble sort. + */ + for (j = 0; j < xf86NumScreens - 1; j++) { + for (i = 0; i < xf86NumScreens - j - 1; i++) { + if (xf86Screens[i + 1]->confScreen->screennum < + xf86Screens[i]->confScreen->screennum) { + ScrnInfoPtr tmpScrn = xf86Screens[i + 1]; - /* - * Sort the drivers to match the requested ordering. Using a slow - * bubble sort. - */ - for (j = 0; j < xf86NumScreens - 1; j++) { - for (i = 0; i < xf86NumScreens - j - 1; i++) { - if (xf86Screens[i + 1]->confScreen->screennum < - xf86Screens[i]->confScreen->screennum) { - ScrnInfoPtr tmpScrn = xf86Screens[i + 1]; - xf86Screens[i + 1] = xf86Screens[i]; - xf86Screens[i] = tmpScrn; + xf86Screens[i + 1] = xf86Screens[i]; + xf86Screens[i] = tmpScrn; + } } } - } - /* Fix up the indexes */ - for (i = 0; i < xf86NumScreens; i++) { - xf86Screens[i]->scrnIndex = i; - } + /* Fix up the indexes */ + for (i = 0; i < xf86NumScreens; i++) { + xf86Screens[i]->scrnIndex = i; + } - /* - * Call the driver's PreInit()'s to complete initialisation for the first - * generation. - */ - - for (i = 0; i < xf86NumScreens; i++) { - xf86EnableAccess(xf86Screens[i]); - if (xf86Screens[i]->PreInit && - xf86Screens[i]->PreInit(xf86Screens[i], 0)) { - xf86Screens[i]->configured = TRUE; + /* + * Call the driver's PreInit()'s to complete initialisation for the + * first generation. + */ + + for (i = 0; i < xf86NumScreens; i++) { + xf86EnableAccess(xf86Screens[i]); + if (xf86Screens[i]->PreInit && + xf86Screens[i]->PreInit(xf86Screens[i], 0)) { + xf86Screens[i]->configured = TRUE; #ifdef XFree86LOADER - haveScreens = TRUE; + haveScreens = TRUE; #endif + } } - } #ifdef XFree86LOADER - if (!haveScreens) - LoaderCheckUnresolved(0); + if (!haveScreens) + LoaderCheckUnresolved(0); #endif - for (i = 0; i < xf86NumScreens; i++) - if (!xf86Screens[i]->configured) - xf86DeleteScreen(i--, 0); - - /* - * If autoconfig, try again. The first driver remaining in the list - * must be the one that had a successful Probe() but an unsuccessful - * PreInit(). Remove that driver before trying again. - */ - if (xf86NumScreens == 0 && autoconfig) { - for (i = 0; i < xf86NumDrivers; i++) { - if (xf86DriverList[i]) { - xf86DeleteDriver(i); - autoretry = TRUE; - /* Clear claimed config sections. */ - for (j = 0; j < xf86Info.serverLayout->numScreens; j++) { - layout = xf86Info.serverLayout->screenLayouts[j]; - if (layout && layout->screen) - layout->screen->device->claimed = FALSE; + for (i = 0; i < xf86NumScreens; i++) + if (!xf86Screens[i]->configured) + xf86DeleteScreen(i--, 0); + + /* + * If autoconfig, try again. The first driver remaining in the list + * must be the one that had a successful Probe() but an unsuccessful + * PreInit(). Remove that driver before trying again. + */ + if (xf86NumScreens == 0 && autoconfig) { + for (i = 0; i < xf86NumDrivers; i++) { + if (xf86DriverList[i]) { + xf86DeleteDriver(i); + autoretry = TRUE; + /* Clear claimed config sections. */ + for (j = 0; j < xf86Info.serverLayout->numScreens; j++) { + layout = xf86Info.serverLayout->screenLayouts[j]; + if (layout && layout->screen) + layout->screen->device->claimed = FALSE; + } + goto retry; } - goto retry; } + xf86Msg(X_ERROR, + "Auto configuration failed. No drivers left to try.\n"); + return; } - xf86Msg(X_ERROR, - "Auto configuration failed. No drivers left to try.\n"); - return; - } - if (xf86NumScreens == 0) { - xf86Msg(X_ERROR, - "Screen(s) found, but none have a usable configuration.\n"); - return; - } + if (xf86NumScreens == 0) { + xf86Msg(X_ERROR, + "Screen(s) found, but none have a usable configuration.\n"); + return; + } - /* This could be moved into a separate function */ + /* This could be moved into a separate function */ - /* - * Check that all screens have initialised the mandatory function - * entry points. Delete those which have not. - */ + /* + * Check that all screens have initialised the mandatory function + * entry points. Delete those which have not. + */ #define WARN_SCREEN(func) \ xf86Msg(X_ERROR, "Driver `%s' has no %s function, deleting.\n", \ xf86Screens[i]->name, (warned++, func)) - for (i = 0; i < xf86NumScreens; i++) { - int warned = 0; - if (xf86Screens[i]->name == NULL) { - xf86Screens[i]->name = xnfalloc(strlen("screen") + 1 + 1); - if (i < 10) - sprintf(xf86Screens[i]->name, "screen%c", i + '0'); - else - sprintf(xf86Screens[i]->name, "screen%c", i - 10 + 'A'); - xf86MsgVerb(X_WARNING, 0, - "Screen driver %d has no name set, using `%s'.\n", - i, xf86Screens[i]->name); - } - if (xf86Screens[i]->ScreenInit == NULL) - WARN_SCREEN("ScreenInit"); - if (xf86Screens[i]->EnterVT == NULL) - WARN_SCREEN("EnterVT"); - if (xf86Screens[i]->LeaveVT == NULL) - WARN_SCREEN("LeaveVT"); - if (warned) - xf86DeleteScreen(i--, 0); - } + for (i = 0; i < xf86NumScreens; i++) { + int warned = 0; - /* - * If no screens left, return now. - */ + if (!xf86Screens[i]->name) { + char c; + if (i < 10) + c = i + '0'; + else + c = i - 10 + 'A'; + xasprintf(&xf86Screens[i]->name, "screen%c", c); + if (!xf86Screens[i]->name) + FatalAlloc(); + xf86MsgVerb(X_WARNING, 0, + "Screen driver %d has no name set, using `%s'.\n", + i, xf86Screens[i]->name); + } + if (xf86Screens[i]->ScreenInit == NULL) + WARN_SCREEN("ScreenInit"); + if (xf86Screens[i]->EnterVT == NULL) + WARN_SCREEN("EnterVT"); + if (xf86Screens[i]->LeaveVT == NULL) + WARN_SCREEN("LeaveVT"); + if (warned) + xf86DeleteScreen(i--, 0); + } - if (xf86NumScreens == 0) { - xf86Msg(X_ERROR, "Screen(s) found, but drivers were unusable.\n"); - return; - } + /* + * If no screens left, return now. + */ - /* XXX Should this be before or after loading dependent modules? */ - if (xf86ProbeOnly) - { - OsCleanup(TRUE); - AbortDDX(); - fflush(stderr); - exit(0); - } + if (xf86NumScreens == 0) { + xf86Msg(X_ERROR, "Screen(s) found, but drivers were unusable.\n"); + return; + } + /* XXX Should this be before or after loading dependent modules? */ + if (xf86ProbeOnly) { + CloseWellKnownConnections(); + OsCleanup(TRUE); + AbortDDX(); + fflush(stderr); + exit(0); + } #ifdef XFree86LOADER - /* Remove (unload) drivers that are not required. */ - for (i = 0; i < xf86NumDrivers; i++) - if (xf86DriverList[i] && xf86DriverList[i]->refCount <= 0) { - xf86DeleteDriver(i); -} + /* Remove (unload) drivers that are not required. */ + for (i = 0; i < xf86NumDrivers; i++) + if (xf86DriverList[i] && xf86DriverList[i]->refCount <= 0) { + xf86DeleteDriver(i); + } #endif - /* - * At this stage we know how many screens there are. - */ + /* + * At this stage we know how many screens there are. + */ - for (i = 0; i < xf86NumScreens; i++) - xf86InitViewport(xf86Screens[i]); + for (i = 0; i < xf86NumScreens; i++) + xf86InitViewport(xf86Screens[i]); - /* - * Collect all pixmap formats and check for conflicts at the display - * level. Should we die here? Or just delete the offending screens? - * Also, should this be done for -probeonly? - */ - screenpix24 = Pix24DontCare; - for (i = 0; i < xf86NumScreens; i++) { - if (xf86Screens[i]->imageByteOrder != - xf86Screens[0]->imageByteOrder) - FatalError("Inconsistent display bitmapBitOrder. Exiting\n"); - if (xf86Screens[i]->bitmapScanlinePad != - xf86Screens[0]->bitmapScanlinePad) - FatalError("Inconsistent display bitmapScanlinePad. Exiting\n"); - if (xf86Screens[i]->bitmapScanlineUnit != - xf86Screens[0]->bitmapScanlineUnit) - FatalError("Inconsistent display bitmapScanlineUnit. Exiting\n"); - if (xf86Screens[i]->bitmapBitOrder != - xf86Screens[0]->bitmapBitOrder) - FatalError("Inconsistent display bitmapBitOrder. Exiting\n"); - - /* Determine the depth 24 pixmap format the screens would like */ - if (xf86Screens[i]->pixmap24 != Pix24DontCare) { - if (screenpix24 == Pix24DontCare) - screenpix24 = xf86Screens[i]->pixmap24; - else if (screenpix24 != xf86Screens[i]->pixmap24) - FatalError("Inconsistent depth 24 pixmap format. Exiting\n"); - } - } - /* check if screenpix24 is consistent with the config/cmdline */ - if (xf86Info.pixmap24 != Pix24DontCare) { - pix24 = xf86Info.pixmap24; - pix24From = xf86Info.pix24From; - if (screenpix24 != Pix24DontCare && screenpix24 != xf86Info.pixmap24) - pix24Fail = TRUE; - } else if (screenpix24 != Pix24DontCare) { - pix24 = screenpix24; - pix24From = X_PROBED; - } else - pix24 = Pix24Use32; - - if (pix24Fail) - FatalError("Screen(s) can't use the required depth 24 pixmap format" - " (%d). Exiting\n", PIX24TOBPP(pix24)); - - /* Initialise the depth 24 format */ - for (j = 0; j < numFormats && formats[j].depth != 24; j++) - ; - formats[j].bitsPerPixel = PIX24TOBPP(pix24); - - /* Collect additional formats */ - for (i = 0; i < xf86NumScreens; i++) { - for (j = 0; j < xf86Screens[i]->numFormats; j++) { - for (k = 0; ; k++) { - if (k >= numFormats) { - if (k >= MAXFORMATS) - FatalError("Too many pixmap formats! Exiting\n"); - formats[k] = xf86Screens[i]->formats[j]; - numFormats++; - break; - } - if (formats[k].depth == xf86Screens[i]->formats[j].depth) { - if ((formats[k].bitsPerPixel == - xf86Screens[i]->formats[j].bitsPerPixel) && - (formats[k].scanlinePad == - xf86Screens[i]->formats[j].scanlinePad)) + /* + * Collect all pixmap formats and check for conflicts at the display + * level. Should we die here? Or just delete the offending screens? + * Also, should this be done for -probeonly? + */ + screenpix24 = Pix24DontCare; + for (i = 0; i < xf86NumScreens; i++) { + if (xf86Screens[i]->imageByteOrder != + xf86Screens[0]->imageByteOrder) + FatalError("Inconsistent display bitmapBitOrder. Exiting\n"); + if (xf86Screens[i]->bitmapScanlinePad != + xf86Screens[0]->bitmapScanlinePad) + FatalError + ("Inconsistent display bitmapScanlinePad. Exiting\n"); + if (xf86Screens[i]->bitmapScanlineUnit != + xf86Screens[0]->bitmapScanlineUnit) + FatalError + ("Inconsistent display bitmapScanlineUnit. Exiting\n"); + if (xf86Screens[i]->bitmapBitOrder != + xf86Screens[0]->bitmapBitOrder) + FatalError("Inconsistent display bitmapBitOrder. Exiting\n"); + + /* Determine the depth 24 pixmap format the screens would like */ + if (xf86Screens[i]->pixmap24 != Pix24DontCare) { + if (screenpix24 == Pix24DontCare) + screenpix24 = xf86Screens[i]->pixmap24; + else if (screenpix24 != xf86Screens[i]->pixmap24) + FatalError + ("Inconsistent depth 24 pixmap format. Exiting\n"); + } + } + /* check if screenpix24 is consistent with the config/cmdline */ + if (xf86Info.pixmap24 != Pix24DontCare) { + pix24 = xf86Info.pixmap24; + pix24From = xf86Info.pix24From; + if (screenpix24 != Pix24DontCare + && screenpix24 != xf86Info.pixmap24) + pix24Fail = TRUE; + } else if (screenpix24 != Pix24DontCare) { + pix24 = screenpix24; + pix24From = X_PROBED; + } else + pix24 = Pix24Use32; + + if (pix24Fail) + FatalError + ("Screen(s) can't use the required depth 24 pixmap format" + " (%d). Exiting\n", PIX24TOBPP(pix24)); + + /* Initialise the depth 24 format */ + for (j = 0; j < numFormats && formats[j].depth != 24; j++) ; + formats[j].bitsPerPixel = PIX24TOBPP(pix24); + + /* Collect additional formats */ + for (i = 0; i < xf86NumScreens; i++) { + for (j = 0; j < xf86Screens[i]->numFormats; j++) { + for (k = 0;; k++) { + if (k >= numFormats) { + if (k >= MAXFORMATS) + FatalError("Too many pixmap formats! Exiting\n"); + formats[k] = xf86Screens[i]->formats[j]; + numFormats++; break; - FatalError("Inconsistent pixmap format for depth %d." - " Exiting\n", formats[k].depth); + } + if (formats[k].depth == xf86Screens[i]->formats[j].depth) { + if ((formats[k].bitsPerPixel == + xf86Screens[i]->formats[j].bitsPerPixel) && + (formats[k].scanlinePad == + xf86Screens[i]->formats[j].scanlinePad)) + break; + FatalError("Inconsistent pixmap format for depth %d." + " Exiting\n", formats[k].depth); + } } } } - } - formatsDone = TRUE; + formatsDone = TRUE; - if (xf86Info.vtno >= 0 ) { + if (xf86Info.vtno >= 0) { #define VT_ATOM_NAME "XFree86_VT" - Atom VTAtom; - CARD32 *VT = NULL; - int ret; - - /* This memory needs to stay available until the screen has been - initialized, and we can create the property for real. - */ - if ( (VT = xalloc(sizeof(CARD32)))==NULL ) { - FatalError("Unable to make VT property - out of memory. Exiting...\n"); - } - *VT = xf86Info.vtno; - - VTAtom = MakeAtom(VT_ATOM_NAME, sizeof(VT_ATOM_NAME), TRUE); - - for (i = 0, ret = Success; i < xf86NumScreens && ret == Success; i++) { - ret = xf86RegisterRootWindowProperty(xf86Screens[i]->scrnIndex, - VTAtom, XA_INTEGER, 32, - 1, VT ); - if (ret != Success) - xf86DrvMsg(xf86Screens[i]->scrnIndex, X_WARNING, - "Failed to register VT property\n"); - } - } + Atom VTAtom; + CARD32 *VT = NULL; + int ret; - /* If a screen uses depth 24, show what the pixmap format is */ - for (i = 0; i < xf86NumScreens; i++) { - if (xf86Screens[i]->depth == 24) { - xf86Msg(pix24From, "Depth 24 pixmap format is %d bpp\n", - PIX24TOBPP(pix24)); - break; + /* This memory needs to stay available until the screen has been + * initialized, and we can create the property for real. + */ + if ((VT = xalloc(sizeof(CARD32))) == NULL) { + FatalError + ("Unable to make VT property - out of memory. " + "Exiting...\n"); + } + *VT = xf86Info.vtno; + + VTAtom = MakeAtom(VT_ATOM_NAME, sizeof(VT_ATOM_NAME), TRUE); + + for (i = 0, ret = Success; i < xf86NumScreens && ret == Success; + i++) { + ret = xf86RegisterRootWindowProperty(xf86Screens[i]-> + scrnIndex, VTAtom, + XA_INTEGER, 32, 1, VT); + if (ret != Success) + xf86DrvMsg(xf86Screens[i]->scrnIndex, X_WARNING, + "Failed to register VT property\n"); + } + } + + /* If a screen uses depth 24, show what the pixmap format is */ + for (i = 0; i < xf86NumScreens; i++) { + if (xf86Screens[i]->depth == 24) { + xf86Msg(pix24From, "Depth 24 pixmap format is %d bpp\n", + PIX24TOBPP(pix24)); + break; + } } - } #ifdef XKB - xf86InitXkb(); + xf86InitXkb(); #endif - /* set up the proper access funcs */ - xf86PostPreInit(); + /* set up the proper access funcs */ + xf86PostPreInit(); + + AddCallback(&ServerGrabCallback, xf86GrabServerCallback, NULL); + + } else { + /* + * serverGeneration != 1; some OSs have to do things here, too. + */ + xf86OpenConsole(); + + /* + * should we reopen it here? We need to deal with an already opened + * device. We could leave this to the OS layer. For now we simply + * close it here + */ + if (xf86OSPMClose) + xf86OSPMClose(); + if ((xf86OSPMClose = xf86OSPMOpen()) != NULL) + xf86MsgVerb(X_INFO, 3, "APM registered successfully\n"); + + /* Make sure full I/O access is enabled */ + xf86EnableIO(); + } - AddCallback(&ServerGrabCallback, xf86GrabServerCallback, NULL); - - } else { /* - * serverGeneration != 1; some OSs have to do things here, too. + * Use the previously collected parts to setup pScreenInfo */ - xf86OpenConsole(); - /* - should we reopen it here? We need to deal with an already opened - device. We could leave this to the OS layer. For now we simply - close it here - */ - if (xf86OSPMClose) - xf86OSPMClose(); - if ((xf86OSPMClose = xf86OSPMOpen()) != NULL) - xf86MsgVerb(X_INFO, 3, "APM registered successfully\n"); - - /* Make sure full I/O access is enabled */ - xf86EnableIO(); - } - - /* - * Use the previously collected parts to setup pScreenInfo - */ - - pScreenInfo->imageByteOrder = xf86Screens[0]->imageByteOrder; - pScreenInfo->bitmapScanlinePad = xf86Screens[0]->bitmapScanlinePad; - pScreenInfo->bitmapScanlineUnit = xf86Screens[0]->bitmapScanlineUnit; - pScreenInfo->bitmapBitOrder = xf86Screens[0]->bitmapBitOrder; - pScreenInfo->numPixmapFormats = numFormats; - for (i = 0; i < numFormats; i++) - pScreenInfo->formats[i] = formats[i]; - - /* Make sure the server's VT is active */ - - if (serverGeneration != 1) { - xf86Resetting = TRUE; - /* All screens are in the same state, so just check the first */ - if (!noVT && !xf86Screens[0]->vtSema) { + pScreenInfo->imageByteOrder = xf86Screens[0]->imageByteOrder; + pScreenInfo->bitmapScanlinePad = xf86Screens[0]->bitmapScanlinePad; + pScreenInfo->bitmapScanlineUnit = xf86Screens[0]->bitmapScanlineUnit; + pScreenInfo->bitmapBitOrder = xf86Screens[0]->bitmapBitOrder; + pScreenInfo->numPixmapFormats = numFormats; + for (i = 0; i < numFormats; i++) + pScreenInfo->formats[i] = formats[i]; + + /* Make sure the server's VT is active */ + + if (serverGeneration != 1) { + xf86Resetting = TRUE; + /* All screens are in the same state, so just check the first */ + if (!noVT && !xf86Screens[0]->vtSema) { #ifdef HAS_USL_VTS - ioctl(xf86Info.consoleFd, VT_RELDISP, VT_ACKACQ); + ioctl(xf86Info.consoleFd, VT_RELDISP, VT_ACKACQ); #endif - xf86AccessEnter(); - xf86EnterServerState(SETUP); - } - } + xf86AccessEnter(); + xf86EnterServerState(SETUP); + } + } #ifdef __SCO__ - else { - /* - * Under SCO we must ack that we got the console at startup, - * I think this is the safest way to assure it. - */ - static int once = 1; - if (once) { - once = 0; - if (ioctl(xf86Info.consoleFd, VT_RELDISP, VT_ACKACQ) < 0) - xf86Msg(X_WARNING, "VT_ACKACQ failed"); + else { + /* + * Under SCO we must ack that we got the console at startup, + * I think this is the safest way to assure it. + */ + static int once = 1; + + if (once) { + once = 0; + if (ioctl(xf86Info.consoleFd, VT_RELDISP, VT_ACKACQ) < 0) + xf86Msg(X_WARNING, "VT_ACKACQ failed"); + } } - } #endif /* __SCO__ */ - for (i = 0; i < xf86NumScreens; i++) { - xf86EnableAccess(xf86Screens[i]); + for (i = 0; i < xf86NumScreens; i++) { + xf86EnableAccess(xf86Screens[i]); /* * Almost everything uses these defaults, and many of those that * don't, will wrap them. @@ -1131,61 +1168,63 @@ xf86Screens[i]->EnableDisableFBAccess = xf86EnableDisableFBAccess; xf86Screens[i]->SetDGAMode = xf86SetDGAMode; xf86Screens[i]->DPMSSet = NULL; - xf86Screens[i]->LoadPalette = NULL; + xf86Screens[i]->LoadPalette = NULL; xf86Screens[i]->SetOverscan = NULL; scr_index = AddScreen(xf86Screens[i]->ScreenInit, argc, argv); - if (scr_index == i) { - /* - * Hook in our ScrnInfoRec, and initialise some other pScreen - * fields. - */ - screenInfo.screens[scr_index]->devPrivates[xf86ScreenIndex].ptr - = (pointer)xf86Screens[i]; - xf86Screens[i]->pScreen = screenInfo.screens[scr_index]; - /* The driver should set this, but make sure it is set anyway */ - xf86Screens[i]->vtSema = TRUE; - } else { - /* This shouldn't normally happen */ - FatalError("AddScreen/ScreenInit failed for driver %d\n", i); - } + if (scr_index == i) { + /* + * Hook in our ScrnInfoRec, and initialise some other pScreen + * fields. + */ + screenInfo.screens[scr_index]->devPrivates[xf86ScreenIndex].ptr + = (pointer) xf86Screens[i]; + xf86Screens[i]->pScreen = screenInfo.screens[scr_index]; + /* The driver should set this, but make sure it is set anyway */ + xf86Screens[i]->vtSema = TRUE; + } else { + /* This shouldn't normally happen */ + FatalError("AddScreen/ScreenInit failed for driver %d\n", i); + } #ifdef DEBUG - ErrorF("InitOutput - xf86Screens[%d]->pScreen = %p\n", - i, xf86Screens[i]->pScreen ); - ErrorF("xf86Screens[%d]->pScreen->CreateWindow = %p\n", - i, xf86Screens[i]->pScreen->CreateWindow ); + ErrorF("InitOutput - xf86Screens[%d]->pScreen = %p\n", + i, xf86Screens[i]->pScreen); + ErrorF("xf86Screens[%d]->pScreen->CreateWindow = %p\n", + i, xf86Screens[i]->pScreen->CreateWindow); #endif - screenInfo.screens[scr_index]->devPrivates[xf86CreateRootWindowIndex].ptr - = (void*)(xf86Screens[i]->pScreen->CreateWindow); - xf86Screens[i]->pScreen->CreateWindow = xf86CreateRootWindow; + screenInfo.screens[scr_index]->devPrivates[xf86CreateRootWindowIndex]. + ptr = (void *)(xf86Screens[i]->pScreen->CreateWindow); + xf86Screens[i]->pScreen->CreateWindow = xf86CreateRootWindow; #ifdef RENDER - if (PictureGetSubpixelOrder (xf86Screens[i]->pScreen) == SubPixelUnknown) - { - xf86MonPtr DDC = (xf86MonPtr)(xf86Screens[i]->monitor->DDC); - PictureSetSubpixelOrder (xf86Screens[i]->pScreen, - DDC ? - (DDC->features.input_type ? - SubPixelHorizontalRGB : SubPixelNone) : - SubPixelUnknown); - } + if (PictureGetSubpixelOrder(xf86Screens[i]->pScreen) == + SubPixelUnknown) { + xf86MonPtr DDC = (xf86MonPtr)(xf86Screens[i]->monitor->DDC); + + PictureSetSubpixelOrder(xf86Screens[i]->pScreen, + DDC ? + (DDC->features.input_type ? + SubPixelHorizontalRGB : SubPixelNone) : + SubPixelUnknown); + } #endif #ifdef RANDR - if (!xf86Info.disableRandR) - xf86RandRInit (screenInfo.screens[scr_index]); - xf86Msg(xf86Info.randRFrom, "RandR %s\n", - xf86Info.disableRandR ? "disabled" : "enabled"); + if (!xf86Info.disableRandR) + xf86RandRInit(screenInfo.screens[scr_index]); + xf86Msg(xf86Info.randRFrom, "RandR %s\n", + xf86Info.disableRandR ? "disabled" : "enabled"); #endif #ifdef NOT_USED - /* - * Here we have to let the driver getting access of the VT. Note that - * this doesn't mean that the graphics board may access automatically - * the monitor. If the monitor is shared this is done in xf86CrossScreen! - */ - if (!xf86Info.sharedMonitor) (xf86Screens[i]->EnterLeaveMonitor)(ENTER); + /* + * Here we have to let the driver getting access of the VT. Note that + * this doesn't mean that the graphics board may access automatically + * the monitor. If the monitor is shared this is done in xf86CrossScreen! + */ + if (!xf86Info.sharedMonitor) + xf86Screens[i]->EnterLeaveMonitor(ENTER); #endif - } + } #ifdef XFree86LOADER if ((serverGeneration == 1) && LoaderCheckUnresolved(0)) { @@ -1194,18 +1233,17 @@ } #endif - xf86PostScreenInit(); + xf86PostScreenInit(); - xf86InitOrigins(); + xf86InitOrigins(); - xf86Resetting = FALSE; - xf86Initialising = FALSE; + xf86Resetting = FALSE; + xf86Initialising = FALSE; - RegisterBlockAndWakeupHandlers((BlockHandlerProcPtr)NoopDDA, xf86Wakeup, - NULL); + RegisterBlockAndWakeupHandlers((BlockHandlerProcPtr) NoopDDA, xf86Wakeup, + NULL); } - static InputDriverPtr MatchInput(IDevPtr pDev) { @@ -1213,20 +1251,20 @@ for (i = 0; i < xf86NumInputDrivers; i++) { if (xf86InputDriverList[i] && xf86InputDriverList[i]->driverName && - xf86NameCmp(pDev->driver, xf86InputDriverList[i]->driverName) == 0) + xf86NameCmp(pDev->driver, + xf86InputDriverList[i]->driverName) == 0) return xf86InputDriverList[i]; } return NULL; } - /* * InitInput -- * Initialize all supported input devices. */ void -InitInput(int argc, char **argv) +InitInput(const int argc, const char **argv) { int i; IDevPtr pDev; @@ -1253,14 +1291,15 @@ continue; } if ((pDrv = MatchInput(pDev)) == NULL) { - xf86Msg(X_ERROR, "No Input driver matching `%s'\n", pDev->driver); + xf86Msg(X_ERROR, "No Input driver matching `%s'\n", + pDev->driver); /* XXX For now, just continue. */ continue; } if (!pDrv->PreInit) { xf86MsgVerb(X_WARNING, 0, - "Input driver `%s' has no PreInit function (ignoring)\n", - pDrv->driverName); + "Input driver `%s' has no PreInit function " + "(ignoring)\n", pDrv->driverName); continue; } pInfo = pDrv->PreInit(pDrv, pDev, 0); @@ -1277,15 +1316,15 @@ if (pInfo->flags & XI86_CORE_KEYBOARD) { if (coreKeyboard) { xf86Msg(X_ERROR, - "Attempt to register more than one core keyboard (%s)\n", - pInfo->name); + "Attempt to register more than one core keyboard " + "(%s)\n", pInfo->name); pInfo->flags &= ~XI86_CORE_KEYBOARD; } else { if (!(pInfo->flags & XI86_KEYBOARD_CAPABLE)) { /* XXX just a warning for now */ xf86Msg(X_WARNING, - "%s: does not have core keyboard capabilities\n", - pInfo->name); + "%s: does not have core keyboard " + "capabilities\n", pInfo->name); } coreKeyboard = pInfo; } @@ -1293,15 +1332,15 @@ if (pInfo->flags & XI86_CORE_POINTER) { if (corePointer) { xf86Msg(X_ERROR, - "Attempt to register more than one core pointer (%s)\n", - pInfo->name); + "Attempt to register more than one core pointer " + "(%s)\n", pInfo->name); pInfo->flags &= ~XI86_CORE_POINTER; } else { if (!(pInfo->flags & XI86_POINTER_CAPABLE)) { /* XXX just a warning for now */ xf86Msg(X_WARNING, - "%s: does not have core pointer capabilities\n", - pInfo->name); + "%s: does not have core pointer capabilities\n", + pInfo->name); } corePointer = pInfo; } @@ -1330,19 +1369,18 @@ xf86Info.pKeyboard = coreKeyboard->dev; /* Clear kbdEvents to prevent internal keybord driver usage. */ xf86Info.kbdEvents = NULL; - } - else { + } else { xf86Info.pKeyboard = AddInputDevice(xf86Info.kbdProc, TRUE); } if (corePointer) xf86Info.pMouse = corePointer->dev; - RegisterKeyboardDevice(xf86Info.pKeyboard); + RegisterKeyboardDevice(xf86Info.pKeyboard); miRegisterPointerDevice(screenInfo.screens[0], xf86Info.pMouse); #ifdef XINPUT - xf86eqInit ((DevicePtr)xf86Info.pKeyboard, (DevicePtr)xf86Info.pMouse); + xf86eqInit((DevicePtr) xf86Info.pKeyboard, (DevicePtr) xf86Info.pMouse); #else - mieqInit ((DevicePtr)xf86Info.pKeyboard, (DevicePtr)xf86Info.pMouse); + mieqInit((DevicePtr) xf86Info.pKeyboard, (DevicePtr) xf86Info.pMouse); #endif } @@ -1358,14 +1396,14 @@ void OsVendorPreInit(void) { - static Bool beenHere = FALSE; + static Bool beenHere = FALSE; - if (!beenHere) { + if (!beenHere) { #ifdef XFree86LOADER - xf86WrapperInit(); + xf86WrapperInit(); #endif - beenHere = TRUE; - } + beenHere = TRUE; + } } /* @@ -1373,25 +1411,25 @@ * OS/Vendor-specific initialisations. Called from OsInit(), which * is called by dix before establishing the well known sockets. */ - + void OsVendorInit() { - static Bool beenHere = FALSE; + static Bool beenHere = FALSE; #ifdef SIGCHLD - signal(SIGCHLD, SIG_DFL); /* Need to wait for child processes */ + signal(SIGCHLD, SIG_DFL); /* Need to wait for child processes */ #endif - OsDelayInitColors = TRUE; + OsDelayInitColors = TRUE; #ifdef XFree86LOADER - loadableFonts = TRUE; + loadableFonts = TRUE; #endif - if (!beenHere) - xf86LogInit(); + if (!beenHere) + xf86LogInit(); #if SET_STDERR_NONBLOCKING - /* Set stderr to non-blocking. */ + /* Set stderr to non-blocking. */ #ifndef O_NONBLOCK #if defined(FNDELAY) #define O_NONBLOCK FNDELAY @@ -1401,23 +1439,23 @@ #endif #ifdef O_NONBLOCK - if (!beenHere) { + if (!beenHere) { #if !defined(__EMX__) - if (PRIVS_ELEVATED) + if (PRIVS_ELEVATED) #endif - { - int status; + { + int status; - status = fcntl(fileno(stderr), F_GETFL, 0); - if (status != -1) { - fcntl(fileno(stderr), F_SETFL, status | O_NONBLOCK); - } + status = fcntl(fileno(stderr), F_GETFL, 0); + if (status != -1) { + fcntl(fileno(stderr), F_SETFL, status | O_NONBLOCK); + } + } } - } #endif #endif - beenHere = TRUE; + beenHere = TRUE; } /* @@ -1463,8 +1501,6 @@ } } - - /* * AbortDDX -- * DDX - specific abort routine. Called by AbortServer(). The attempt is @@ -1475,60 +1511,61 @@ void AbortDDX() { - int i; + int i; + + /* + * Try to deinitialize all input devices. + */ + if (xf86Info.pKeyboard) + xf86Info.kbdProc(xf86Info.pKeyboard, DEVICE_CLOSE); - /* - * Try to deinitialize all input devices. - */ - if (xf86Info.pKeyboard) - (xf86Info.kbdProc)(xf86Info.pKeyboard, DEVICE_CLOSE); - - /* - * Try to restore the original video state. - */ + /* + * Try to restore the original video state. + */ #ifdef HAS_USL_VTS - /* Need the sleep when starting X from within another X session. */ - if (!noVT) - sleep(1); + /* Need the sleep when starting X from within another X session. */ + if (!noVT) + sleep(1); #endif - if (xf86Screens && !noVT) { + if (xf86Screens && !noVT) { #ifdef XFreeXDGA - DGAShutdown(); + DGAShutdown(); #endif - if (xf86Screens[0]->vtSema) - xf86EnterServerState(SETUP); - for (i = 0; i < xf86NumScreens; i++) { - if (xf86Screens[i]->vtSema) { - /* - * If we are aborting before ScreenInit() has finished - * we might not have been wrapped yet. Therefore enable - * screen explicitly. - */ - xf86EnableAccess(xf86Screens[i]); - (xf86Screens[i]->LeaveVT)(i, 0); - } + if (xf86Screens[0]->vtSema) + xf86EnterServerState(SETUP); + for (i = 0; i < xf86NumScreens; i++) { + if (xf86Screens[i]->vtSema) { + /* + * If we are aborting before ScreenInit() has finished + * we might not have been wrapped yet. Therefore enable + * screen explicitly. + */ + xf86EnableAccess(xf86Screens[i]); + xf86Screens[i]->LeaveVT(i, 0); + } + } } - } - - xf86AccessLeave(); - - /* - * This is needed for an abnormal server exit, since the normal exit stuff - * MUST also be performed (i.e. the vt must be left in a defined state). - */ - ddxGiveUp(); + + xf86AccessLeave(); + + /* + * This is needed for an abnormal server exit, since the normal exit stuff + * MUST also be performed (i.e. the vt must be left in a defined state). + */ + ddxGiveUp(); } void OsVendorFatalError() { - ErrorF("\nWhen reporting a problem related to a server crash, please send\n" - "the full server output, not just the last messages.\n"); - if (xf86FilePaths && xf86FilePaths->logFile && xf86LogFileWasOpened) - ErrorF("This can be found in the log file \"%s\".\n", - xf86FilePaths->logFile); - ErrorF("Please report problems to %s.\n", BUILDERADDR); - ErrorF("\n"); + ErrorF("\nWhen reporting a problem related to a server crash, " + "please send\n" + "the full server output, not just the last messages.\n"); + if (xf86FilePaths && xf86FilePaths->logFile && xf86LogFileWasOpened) + ErrorF("This can be found in the log file \"%s\".\n", + xf86FilePaths->logFile); + ErrorF("Please report problems to %s.\n", BUILDERADDR); + ErrorF("\n"); } int @@ -1561,396 +1598,355 @@ /* ARGSUSED */ int -ddxProcessArgument(int argc, char **argv, int i) +ddxProcessArgument(int argc, const char **argv, int i) { - /* - * Note: can't use xalloc/xfree here because OsInit() hasn't been called - * yet. Use malloc/free instead. - */ - - /* Make a copy of the command line to log later. */ - if (!cmdline) { - int j, len; - - for (j = 0; j < argc; j++) { - if (cmdline) { - len = strlen(argv[j]) + 1 + strlen(cmdline) + 1; - cmdline = realloc(cmdline, len); - if (!cmdline) - FatalError("Cannot allocate memory for the command line.\n"); - strlcat(cmdline, " ", len); - strlcat(cmdline, argv[j], len); - } else { - len = strlen(argv[j]) + 1; - cmdline = malloc(len); - if (!cmdline) - FatalError("Cannot allocate memory for the command line.\n"); - strlcpy(cmdline, argv[j], len); - } - } - } - - /* First the options that are only allowed for root */ - if (!PRIVS_ELEVATED) - { - if (!strcmp(argv[i], "-modulepath")) { - if (!argv[++i]) - return 0; - xf86FileCmdline.modulePath = strdup(argv[i]); - if (!xf86FileCmdline.modulePath) - FatalError("Cannot allocate memory for the module path name.\n"); - xf86FileCmdline.modulePathFrom = X_CMDLINE; - return 2; + /* Make a copy of the command line to log later. */ + if (!cmdline) { + int j, len; + + for (j = 0; j < argc; j++) { + if (cmdline) { + len = strlen(argv[j]) + 1 + strlen(cmdline) + 1; + cmdline = xrealloc(cmdline, len); + if (!cmdline) + FatalError + ("Cannot allocate memory for the command line.\n"); + strlcat(cmdline, " ", len); + strlcat(cmdline, argv[j], len); + } else { + len = strlen(argv[j]) + 1; + cmdline = xalloc(len); + if (!cmdline) + FatalError + ("Cannot allocate memory for the command line.\n"); + strlcpy(cmdline, argv[j], len); + } + } + } + + /* First the options that are only allowed for root */ + if (!PRIVS_ELEVATED) { + if (!strcmp(argv[i], "-modulepath")) { + if (!argv[++i]) + return 0; + xfree(xf86FileCmdline.modulePath); + xf86FileCmdline.modulePath = xstrdup(argv[i]); + if (!xf86FileCmdline.modulePath) + FatalError + ("Cannot allocate memory for the module path name.\n"); + xf86FileCmdline.modulePathFrom = X_CMDLINE; + return 2; + } else if (!strcmp(argv[i], "-logfile")) { + if (!argv[++i]) + return 0; + xfree(xf86FileCmdline.logFile); + xf86FileCmdline.logFile = xstrdup(argv[i]); + if (!xf86FileCmdline.logFile) + FatalError("Cannot allocate memory for the log file name.\n"); + xf86FileCmdline.logFileFrom = X_CMDLINE; + return 2; + } + } + if (!strcmp(argv[i], "-xf86config")) { + if (!argv[++i]) + return 0; + if (PRIVS_ELEVATED && !xf86PathIsSafe(argv[i])) { + FatalError("\nInvalid argument for -xf86config\n" + "\tFor non-root users, the file specified with " + "-xf86config must be\n" + "\ta relative path and must not contain any \"..\" " + "elements.\n" + "\tUsing default XF86Config search path.\n\n"); + } + xf86ConfigFile = argv[i]; + return 2; + } + if (!strcmp(argv[i], "-showunresolved")) { + xf86ShowUnresolved = TRUE; + return 1; + } + if (!strcmp(argv[i], "-autoconfig")) { + autoconfig = TRUE; + return 1; + } + if (!strcmp(argv[i], "-appendauto")) { + appendauto = TRUE; + return 1; + } + if (!strcmp(argv[i], "-noappendauto")) { + noAppendauto = TRUE; + return 1; + } + if (!strcmp(argv[i], "-probeonly")) { + xf86ProbeOnly = TRUE; + return 1; + } + if (!strcmp(argv[i], "-flipPixels")) { + xf86FlipPixels = TRUE; + return 1; } - else if (!strcmp(argv[i], "-logfile")) - { - if (!argv[++i]) - return 0; - xf86FileCmdline.logFile = strdup(argv[i]); - if (!xf86FileCmdline.logFile) - FatalError("Cannot allocate memory for the log file name.\n"); - xf86FileCmdline.logFileFrom = X_CMDLINE; - return 2; - } - } - if (!strcmp(argv[i], "-xf86config")) - { - if (!argv[++i]) - return 0; - if (PRIVS_ELEVATED && !xf86PathIsSafe(argv[i])) { - FatalError("\nInvalid argument for -xf86config\n" - "\tFor non-root users, the file specified with -xf86config must be\n" - "\ta relative path and must not contain any \"..\" elements.\n" - "\tUsing default XF86Config search path.\n\n"); - } - xf86ConfigFile = argv[i]; - return 2; - } - if (!strcmp(argv[i],"-showunresolved")) - { - xf86ShowUnresolved = TRUE; - return 1; - } - if (!strcmp(argv[i],"-autoconfig")) - { - autoconfig = TRUE; - return 1; - } - if (!strcmp(argv[i],"-appendauto")) - { - appendauto = TRUE; - return 1; - } - if (!strcmp(argv[i],"-noappendauto")) - { - noAppendauto = TRUE; - return 1; - } - if (!strcmp(argv[i],"-probeonly")) - { - xf86ProbeOnly = TRUE; - return 1; - } - if (!strcmp(argv[i],"-flipPixels")) - { - xf86FlipPixels = TRUE; - return 1; - } #ifdef XF86VIDMODE - if (!strcmp(argv[i],"-disableVidMode")) - { - xf86VidModeDisabled = TRUE; - return 1; - } - if (!strcmp(argv[i],"-allowNonLocalXvidtune")) - { - xf86VidModeAllowNonLocal = TRUE; - return 1; - } + if (!strcmp(argv[i], "-disableVidMode")) { + xf86VidModeDisabled = TRUE; + return 1; + } + if (!strcmp(argv[i], "-allowNonLocalXvidtune")) { + xf86VidModeAllowNonLocal = TRUE; + return 1; + } #endif #ifdef XF86MISC - if (!strcmp(argv[i],"-disableModInDev")) - { - xf86MiscModInDevDisabled = TRUE; - return 1; - } - if (!strcmp(argv[i],"-allowNonLocalModInDev")) - { - xf86MiscModInDevAllowNonLocal = TRUE; - return 1; - } -#endif - if (!strcmp(argv[i],"-allowMouseOpenFail")) - { - xf86AllowMouseOpenFail = TRUE; - return 1; - } - if (!strcmp(argv[i],"-bestRefresh")) - { - xf86BestRefresh = TRUE; - return 1; - } - if (!strcmp(argv[i],"-ignoreABI")) - { + if (!strcmp(argv[i], "-disableModInDev")) { + xf86MiscModInDevDisabled = TRUE; + return 1; + } + if (!strcmp(argv[i], "-allowNonLocalModInDev")) { + xf86MiscModInDevAllowNonLocal = TRUE; + return 1; + } +#endif + if (!strcmp(argv[i], "-allowMouseOpenFail")) { + xf86AllowMouseOpenFail = TRUE; + return 1; + } + if (!strcmp(argv[i], "-bestRefresh")) { + xf86BestRefresh = TRUE; + return 1; + } + if (!strcmp(argv[i], "-ignoreABI")) { #ifdef XFree86LOADER - LoaderSetOptions(LDR_OPT_ABI_MISMATCH_NONFATAL); + LoaderSetOptions(LDR_OPT_ABI_MISMATCH_NONFATAL); #endif - return 1; - } + return 1; + } #ifdef XFree86LOADER #if LOADERTEST - if (!strcmp(argv[i],"-loadertest")) - { - doLoaderTest = TRUE; - return 1; - } -#endif - if (!strcmp(argv[i],"-loaderdebug")) - { - if (++i >= argc) - return 0; - LoaderSetDebug(atoi(argv[i])); - return 2; - } -#endif - if (!strcmp(argv[i],"-verbose")) - { - if (++i < argc && argv[i]) - { - char *end; - long val; - val = strtol(argv[i], &end, 0); - if (*end == '\0') - { - xf86SetVerbosity(val); + if (!strcmp(argv[i], "-loadertest")) { + doLoaderTest = TRUE; + return 1; + } +#endif + if (!strcmp(argv[i], "-loaderdebug")) { + if (++i >= argc) + return 0; + LoaderSetDebug(atoi(argv[i])); return 2; - } } - xf86SetVerbosity(++xf86Verbose); - return 1; - } - if (!strcmp(argv[i],"-logverbose")) - { - if (++i < argc && argv[i]) - { - char *end; - long val; - val = strtol(argv[i], &end, 0); - if (*end == '\0') - { - xf86SetLogVerbosity(val); + if (!strcmp(argv[i], "-loaderdebugmod")) { + if (++i >= argc) + return 0; + LoaderDebugAddModule(argv[i]); return 2; - } } - xf86SetLogVerbosity(++xf86LogVerbose); - return 1; - } - if (!strcmp(argv[i],"-quiet")) - { - xf86SetVerbosity(0); - return 1; - } - if (!strcmp(argv[i],"-showconfig") || !strcmp(argv[i],"-version")) - { - xf86PrintBanner(); - exit(0); - } - /* Snoop the -fp flag, still allowing it to pass to the dix layer. */ - if (!strcmp(argv[i], "-fp")) - { - if (++i < argc && argv[i]) { - xf86FileCmdline.fontPath = strdup(argv[i]); - if (!xf86FileCmdline.fontPath) - FatalError("Cannot allocate memory for the font path.\n"); - xf86FileCmdline.fontPathFrom = X_CMDLINE; - } - return 0; - } - /* Snoop the -co flag, still allowing it to pass to the dix layer. */ - if (!strcmp(argv[i], "-co")) - { - if (++i < argc && argv[i]) { - xf86FileCmdline.rgbPath = strdup(argv[i]); - if (!xf86FileCmdline.rgbPath) - FatalError("Cannot allocate memory for RGBPath.\n"); - xf86FileCmdline.rgbPathFrom = X_CMDLINE; - } - return 0; - } - /* Notice the -bs flag, but allow it to pass to the dix layer */ - if (!strcmp(argv[i], "-bs")) - { - xf86bsDisableFlag = TRUE; - return 0; - } - /* Notice the +bs flag, but allow it to pass to the dix layer */ - if (!strcmp(argv[i], "+bs")) - { - xf86bsEnableFlag = TRUE; - return 0; - } - /* Notice the -s flag, but allow it to pass to the dix layer */ - if (!strcmp(argv[i], "-s")) - { - xf86sFlag = TRUE; - return 0; - } - if (!strcmp(argv[i], "-bpp")) - { - if (++i >= argc) - return 0; - ErrorF("The -bpp option is no longer supported.\n" - "\tUse -depth to set the color depth, and use -fbbpp if you really\n" - "\tneed to force a non-default framebuffer (hardware) pixel format.\n"); - return 2; - } - if (!strcmp(argv[i], "-pixmap24")) - { - xf86Pix24 = Pix24Use24; - return 1; - } - if (!strcmp(argv[i], "-pixmap32")) - { - xf86Pix24 = Pix24Use32; - return 1; - } - if (!strcmp(argv[i], "-fbbpp")) - { - int bpp; - if (++i >= argc) - return 0; - if (sscanf(argv[i], "%d", &bpp) == 1) - { - xf86FbBpp = bpp; - return 2; +#endif + if (!strcmp(argv[i], "-verbose")) { + if (++i < argc && argv[i]) { + char *end; + long val; + + val = strtol(argv[i], &end, 0); + if (*end == '\0') { + xf86SetVerbosity(val); + return 2; + } + } + xf86SetVerbosity(++xf86Verbose); + return 1; } - else - { - ErrorF("Invalid fbbpp\n"); - return 0; + if (!strcmp(argv[i], "-logverbose")) { + if (++i < argc && argv[i]) { + char *end; + long val; + + val = strtol(argv[i], &end, 0); + if (*end == '\0') { + xf86SetLogVerbosity(val); + return 2; + } + } + xf86SetLogVerbosity(++xf86LogVerbose); + return 1; } - } - if (!strcmp(argv[i], "-depth")) - { - int depth; - if (++i >= argc) - return 0; - if (sscanf(argv[i], "%d", &depth) == 1) - { - xf86Depth = depth; - return 2; + if (!strcmp(argv[i], "-quiet")) { + xf86SetVerbosity(0); + return 1; + } + if (!strcmp(argv[i], "-showconfig") || !strcmp(argv[i], "-version")) { + PrintBanner(); + exit(0); + } + /* Snoop the -fp flag, still allowing it to pass to the dix layer. */ + if (!strcmp(argv[i], "-fp")) { + if (++i < argc && argv[i]) { + xf86FileCmdline.fontPath = strdup(argv[i]); + if (!xf86FileCmdline.fontPath) + FatalError("Cannot allocate memory for the font path.\n"); + xf86FileCmdline.fontPathFrom = X_CMDLINE; + } + return 0; } - else - { - ErrorF("Invalid depth\n"); - return 0; + /* Snoop the -co flag, still allowing it to pass to the dix layer. */ + if (!strcmp(argv[i], "-co")) { + if (++i < argc && argv[i]) { + xfree(xf86FileCmdline.rgbPath); + xf86FileCmdline.rgbPath = xstrdup(argv[i]); + if (!xf86FileCmdline.rgbPath) + FatalError("Cannot allocate memory for RGBPath.\n"); + xf86FileCmdline.rgbPathFrom = X_CMDLINE; + } + return 0; } - } - if (!strcmp(argv[i], "-weight")) - { - int red, green, blue; - if (++i >= argc) - return 0; - if (sscanf(argv[i], "%1d%1d%1d", &red, &green, &blue) == 3) - { - xf86Weight.red = red; - xf86Weight.green = green; - xf86Weight.blue = blue; - return 2; + /* Notice the -bs flag, but allow it to pass to the dix layer. */ + if (!strcmp(argv[i], "-bs")) { + xf86bsDisableFlag = TRUE; + return 0; } - else - { - ErrorF("Invalid weighting\n"); - return 0; + /* Notice the +bs flag, but allow it to pass to the dix layer. */ + if (!strcmp(argv[i], "+bs")) { + xf86bsEnableFlag = TRUE; + return 0; + } + /* Notice the -s flag, but allow it to pass to the dix layer. */ + if (!strcmp(argv[i], "-s")) { + xf86sFlag = TRUE; + return 0; + } + if (!strcmp(argv[i], "-bpp")) { + if (++i >= argc) + return 0; + ErrorF("The -bpp option is no longer supported.\n" + "\tUse -depth to set the color depth, and use -fbbpp if " + "you really\n" + "\tneed to force a non-default framebuffer (hardware) " + "pixel format.\n"); + return 2; + } + if (!strcmp(argv[i], "-pixmap24")) { + xf86Pix24 = Pix24Use24; + return 1; + } + if (!strcmp(argv[i], "-pixmap32")) { + xf86Pix24 = Pix24Use32; + return 1; + } + if (!strcmp(argv[i], "-fbbpp")) { + int bpp; + + if (++i >= argc) + return 0; + if (sscanf(argv[i], "%d", &bpp) == 1) { + xf86FbBpp = bpp; + return 2; + } else { + ErrorF("Invalid fbbpp\n"); + return 0; + } + } + if (!strcmp(argv[i], "-depth")) { + int depth; + + if (++i >= argc) + return 0; + if (sscanf(argv[i], "%d", &depth) == 1) { + xf86Depth = depth; + return 2; + } else { + ErrorF("Invalid depth\n"); + return 0; + } + } + if (!strcmp(argv[i], "-weight")) { + int red, green, blue; + + if (++i >= argc) + return 0; + if (sscanf(argv[i], "%1d%1d%1d", &red, &green, &blue) == 3) { + xf86Weight.red = red; + xf86Weight.green = green; + xf86Weight.blue = blue; + return 2; + } else { + ErrorF("Invalid weighting\n"); + return 0; + } } - } - if (!strcmp(argv[i], "-gamma") || !strcmp(argv[i], "-rgamma") || - !strcmp(argv[i], "-ggamma") || !strcmp(argv[i], "-bgamma")) - { - double gamma; - if (++i >= argc) - return 0; - if (sscanf(argv[i], "%lf", &gamma) == 1) { - if (gamma < GAMMA_MIN || gamma > GAMMA_MAX) { - ErrorF("gamma out of range, only %.2f <= gamma_value <= %.1f" - " is valid\n", GAMMA_MIN, GAMMA_MAX); - return 0; - } - if (!strcmp(argv[i-1], "-gamma")) - xf86Gamma.red = xf86Gamma.green = xf86Gamma.blue = gamma; - else if (!strcmp(argv[i-1], "-rgamma")) xf86Gamma.red = gamma; - else if (!strcmp(argv[i-1], "-ggamma")) xf86Gamma.green = gamma; - else if (!strcmp(argv[i-1], "-bgamma")) xf86Gamma.blue = gamma; - return 2; - } - } - if (!strcmp(argv[i], "-layout")) - { - if (++i >= argc) - return 0; - xf86LayoutName = argv[i]; - return 2; - } - if (!strcmp(argv[i], "-screen")) - { - if (++i >= argc) - return 0; - xf86ScreenName = argv[i]; - return 2; - } - if (!strcmp(argv[i], "-pointer")) - { - if (++i >= argc) - return 0; - xf86PointerName = argv[i]; - return 2; - } - if (!strcmp(argv[i], "-keyboard")) - { - if (++i >= argc) - return 0; - xf86KeyboardName = argv[i]; - return 2; - } - if (!strcmp(argv[i], "-nosilk")) - { - xf86silkenMouseDisableFlag = TRUE; - return 1; - } - if (!strcmp(argv[i], "-scanpci")) - { - DoScanPci(argc, argv, i); - } - if (!strcmp(argv[i], "-nohw")) - { - noHardware = TRUE; - return 1; - } - if (!strcmp(argv[i], "-novt")) - { - noVT = TRUE; - return 1; - } - if (!strcmp(argv[i], "-probe")) - { - xf86DoProbe = TRUE; -#if 0 - DoProbe(argc, argv, i); -#endif - return 1; - } - if (!strcmp(argv[i], "-configure")) - { - if (PRIVS_ELEVATED) { - ErrorF("The '-configure' option can only be used by root.\n"); - exit(1); - } - xf86DoConfigure = TRUE; - xf86AllowMouseOpenFail = TRUE; - return 1; - } - /* OS-specific processing */ - return xf86ProcessArgument(argc, argv, i); + if (!strcmp(argv[i], "-gamma") || !strcmp(argv[i], "-rgamma") || + !strcmp(argv[i], "-ggamma") || !strcmp(argv[i], "-bgamma")) { + double gamma; + + if (++i >= argc) + return 0; + if (sscanf(argv[i], "%lf", &gamma) == 1) { + if (gamma < GAMMA_MIN || gamma > GAMMA_MAX) { + ErrorF("gamma out of range, only %.2f <= gamma_value <= %.1f" + " is valid\n", GAMMA_MIN, GAMMA_MAX); + return 0; + } + if (!strcmp(argv[i - 1], "-gamma")) + xf86Gamma.red = xf86Gamma.green = xf86Gamma.blue = gamma; + else if (!strcmp(argv[i - 1], "-rgamma")) + xf86Gamma.red = gamma; + else if (!strcmp(argv[i - 1], "-ggamma")) + xf86Gamma.green = gamma; + else if (!strcmp(argv[i - 1], "-bgamma")) + xf86Gamma.blue = gamma; + return 2; + } + } + if (!strcmp(argv[i], "-layout")) { + if (++i >= argc) + return 0; + xf86LayoutName = argv[i]; + return 2; + } + if (!strcmp(argv[i], "-screen")) { + if (++i >= argc) + return 0; + xf86ScreenName = argv[i]; + return 2; + } + if (!strcmp(argv[i], "-pointer")) { + if (++i >= argc) + return 0; + xf86PointerName = argv[i]; + return 2; + } + if (!strcmp(argv[i], "-keyboard")) { + if (++i >= argc) + return 0; + xf86KeyboardName = argv[i]; + return 2; + } + if (!strcmp(argv[i], "-nosilk")) { + xf86silkenMouseDisableFlag = TRUE; + return 1; + } + if (!strcmp(argv[i], "-scanpci")) { + DoScanPci(argc, argv, i); + } + if (!strcmp(argv[i], "-nohw")) { + noHardware = TRUE; + return 1; + } + if (!strcmp(argv[i], "-novt")) { + noVT = TRUE; + return 1; + } + if (!strcmp(argv[i], "-probe")) { + xf86DoProbe = TRUE; + return 1; + } + if (!strcmp(argv[i], "-configure")) { + if (PRIVS_ELEVATED) { + ErrorF("The '-configure' option can only be used by root.\n"); + exit(1); + } + xf86DoConfigure = TRUE; + xf86AllowMouseOpenFail = TRUE; + return 1; + } + /* OS-specific processing */ + return xf86ProcessArgument(argc, argv, i); } /* @@ -1962,65 +1958,75 @@ void ddxUseMsg() { - ErrorF("\n"); - ErrorF("\n"); - ErrorF("Device Dependent Usage\n"); - if (!PRIVS_ELEVATED) - { - ErrorF("-xf86config file specify a configuration file\n"); - ErrorF("-modulepath paths specify the module search path\n"); - ErrorF("-logfile file specify a log file name\n"); - ErrorF("-configure probe for devices and write an XF86Config\n"); - } - else - { - ErrorF("-xf86config file specify a configuration file, relative to the\n"); - ErrorF(" XF86Config search path, only root can use absolute\n"); - } - ErrorF("-autoconfig automatic configuration, even when a config file exits\n"); - ErrorF("-appendauto append automatic config to existing config file\n"); - ErrorF("-noappendauto do not append automatic config\n"); - ErrorF("-probeonly probe for devices, then exit\n"); - ErrorF("-scanpci execute the scanpci module and exit\n"); - ErrorF("-nohw disable video hardware and hardware probing\n"); - ErrorF("-novt disable console/VT use\n"); - ErrorF("-verbose [n] verbose startup messages\n"); - ErrorF("-logverbose [n] verbose log messages\n"); - ErrorF("-quiet minimal startup messages\n"); - ErrorF("-pixmap24 use 24bpp pixmaps for depth 24\n"); - ErrorF("-pixmap32 use 32bpp pixmaps for depth 24\n"); - ErrorF("-fbbpp n set bpp for the framebuffer. Default: 8\n"); - ErrorF("-depth n set colour depth. Default: 8\n"); - ErrorF("-gamma f set gamma value (0.1 < f < 10.0) Default: 1.0\n"); - ErrorF("-rgamma f set gamma value for red phase\n"); - ErrorF("-ggamma f set gamma value for green phase\n"); - ErrorF("-bgamma f set gamma value for blue phase\n"); - ErrorF("-weight nnn set RGB weighting at 16 bpp. Default: 565\n"); - ErrorF("-layout name specify the ServerLayout section name\n"); - ErrorF("-screen name specify the Screen section name\n"); - ErrorF("-keyboard name specify the core keyboard InputDevice name\n"); - ErrorF("-pointer name specify the core pointer InputDevice name\n"); - ErrorF("-nosilk disable Silken Mouse\n"); - ErrorF("-flipPixels swap default black/white Pixel values\n"); + ErrorF("\n"); + ErrorF("\n"); + ErrorF("Device Dependent Usage\n"); + if (!PRIVS_ELEVATED) { + ErrorF("-xf86config file specify a configuration file\n"); + ErrorF("-modulepath paths specify the module search path\n"); + ErrorF("-logfile file specify a log file name\n"); + ErrorF("-configure probe for devices and write an " + "XF86Config\n"); + } else { + ErrorF("-xf86config file specify a configuration file, " + "relative to the\n"); + ErrorF(" XF86Config search path, only root " + "can use absolute\n"); + } + ErrorF("-autoconfig automatic configuration, even when a " + "config file exits\n"); + ErrorF("-appendauto append automatic config to existing " + "config file\n"); + ErrorF("-noappendauto do not append automatic config\n"); + ErrorF("-probeonly probe for devices, then exit\n"); + ErrorF("-scanpci execute the scanpci module and exit\n"); + ErrorF("-nohw disable video hardware and hardware " + "probing\n"); + ErrorF("-novt disable console/VT use\n"); + ErrorF("-verbose [n] verbose startup messages\n"); + ErrorF("-logverbose [n] verbose log messages\n"); + ErrorF("-quiet minimal startup messages\n"); + ErrorF("-pixmap24 use 24bpp pixmaps for depth 24\n"); + ErrorF("-pixmap32 use 32bpp pixmaps for depth 24\n"); + ErrorF("-fbbpp n set bpp for the framebuffer. Default: 8\n"); + ErrorF("-depth n set colour depth. Default: 8\n"); + ErrorF("-gamma f set gamma value (0.1 < f < 10.0) " + "Default: 1.0\n"); + ErrorF("-rgamma f set gamma value for red phase\n"); + ErrorF("-ggamma f set gamma value for green phase\n"); + ErrorF("-bgamma f set gamma value for blue phase\n"); + ErrorF("-weight nnn set RGB weighting at 16 bpp. " + "Default: 565\n"); + ErrorF("-layout name specify the ServerLayout section name\n"); + ErrorF("-screen name specify the Screen section name\n"); + ErrorF("-keyboard name specify the core keyboard InputDevice " + "name\n"); + ErrorF("-pointer name specify the core pointer InputDevice " + "name\n"); + ErrorF("-nosilk disable Silken Mouse\n"); + ErrorF("-flipPixels swap default black/white Pixel values\n"); #ifdef XF86VIDMODE - ErrorF("-disableVidMode disable mode adjustments with xvidtune\n"); - ErrorF("-allowNonLocalXvidtune allow xvidtune to be run as a non-local client\n"); + ErrorF("-disableVidMode disable mode adjustments with xvidtune\n"); + ErrorF("-allowNonLocalXvidtune allow xvidtune to be run as a non-local " + "client\n"); #endif #ifdef XF86MISC - ErrorF("-disableModInDev disable dynamic modification of input device settings\n"); - ErrorF("-allowNonLocalModInDev allow changes to keyboard and mouse settings\n"); - ErrorF(" from non-local clients\n"); - ErrorF("-allowMouseOpenFail start server even if the mouse can't be initialized\n"); -#endif - ErrorF("-bestRefresh choose modes with the best refresh rate\n"); - ErrorF("-ignoreABI make module ABI mismatches non-fatal\n"); - ErrorF("-version show the server version\n"); - /* OS-specific usage */ - xf86UseMsg(); - ErrorF("\n"); + ErrorF("-disableModInDev disable dynamic modification of input " + "device settings\n"); + ErrorF("-allowNonLocalModInDev allow changes to keyboard and mouse " + "settings\n"); + ErrorF(" from non-local clients\n"); + ErrorF("-allowMouseOpenFail start server even if the mouse can't be " + "initialized\n"); +#endif + ErrorF("-bestRefresh choose modes with the best refresh rate\n"); + ErrorF("-ignoreABI make module ABI mismatches non-fatal\n"); + ErrorF("-version show the server version\n"); + /* OS-specific usage */ + xf86UseMsg(); + ErrorF("\n"); } - #ifndef OSNAME #define OSNAME " unknown" #endif @@ -2032,92 +2038,101 @@ #endif static void -xf86PrintBanner() +PrintBanner() { +#if defined(XF86_CUSTOM_BANNER) + ErrorF("%s", XF86_CUSTOM_BANNER); +#else #if PRE_RELEASE - ErrorF("\n" - "This is a pre-release version of XFree86, and is not supported in any\n" - "way. Bugs may be reported to XFree86@XFree86.Org and patches submitted\n" - "to fixes@XFree86.Org. Before reporting bugs in pre-release versions,\n" - "please check the latest version in the XFree86 CVS repository\n" - "(http://www.XFree86.Org/cvs).\n"); + ErrorF("\n" + "This is a pre-release version of XFree86, and is not supported in any\n" + "way. Bugs may be reported to XFree86@XFree86.Org and patches submitted\n" + "to fixes@XFree86.Org. Before reporting bugs in pre-release versions,\n" + "please check the latest version in the XFree86 CVS repository\n" + "(http://www.XFree86.Org/cvs).\n"); +#endif #endif - ErrorF("\nXFree86 Version %d.%d.%d", XF86_VERSION_MAJOR, XF86_VERSION_MINOR, - XF86_VERSION_PATCH); + ErrorF("\nXFree86 Version %d.%d.%d", XF86_VERSION_MAJOR, + XF86_VERSION_MINOR, XF86_VERSION_PATCH); #if XF86_VERSION_SNAP > 0 - ErrorF(".%d", XF86_VERSION_SNAP); + ErrorF(".%d", XF86_VERSION_SNAP); #endif #if XF86_VERSION_SNAP >= 900 - ErrorF(" (%d.%d.0 RC %d)", XF86_VERSION_MAJOR, XF86_VERSION_MINOR + 1, - XF86_VERSION_SNAP - 900); + ErrorF(" (%d.%d.0 RC %d)", XF86_VERSION_MAJOR, XF86_VERSION_MINOR + 1, + XF86_VERSION_SNAP - 900); #endif #ifdef XF86_CUSTOM_VERSION - ErrorF(" (%s)", XF86_CUSTOM_VERSION); + ErrorF(" (%s)", XF86_CUSTOM_VERSION); #endif - ErrorF("\nRelease Date: %s\n", XF86_DATE); - ErrorF("X Protocol Version %d, Revision %d\n", - X_PROTOCOL, X_PROTOCOL_REVISION); - ErrorF("Build Operating System:%s%s\n", OSNAME, OSVENDOR); + ErrorF("\nRelease Date: %s\n", XF86_DATE); + ErrorF("X Protocol Version %d, Revision %d\n", + X_PROTOCOL, X_PROTOCOL_REVISION); + ErrorF("Build Operating System:%s%s\n", OSNAME, OSVENDOR); #ifdef HAS_UTSNAME - { - struct utsname name; + { + struct utsname name; - if (uname(&name) == 0) { - ErrorF("Current Operating System: %s %s %s %s %s\n", - name.sysname, name.nodename, name.release, name.version, name.machine); + if (uname(&name) >= 0) { + ErrorF("Current Operating System: %s %s %s %s %s\n", + name.sysname, name.nodename, name.release, name.version, + name.machine); + } } - } #endif #if defined(BUILD_DATE) && (BUILD_DATE > 19000000) - { - struct tm t; - char buf[100]; - - bzero(&t, sizeof(t)); - bzero(buf, sizeof(buf)); - t.tm_mday = BUILD_DATE % 100; - t.tm_mon = (BUILD_DATE / 100) % 100 - 1; - t.tm_year = BUILD_DATE / 10000 - 1900; - if (strftime(buf, sizeof(buf), "%d %B %Y", &t)) - ErrorF("Build Date: %s\n", buf[0] == '0' ? buf + 1 : buf); - } + { + struct tm t; + char buf[100]; + + bzero(&t, sizeof(t)); + bzero(buf, sizeof(buf)); + t.tm_mday = BUILD_DATE % 100; + t.tm_mon = (BUILD_DATE / 100) % 100 - 1; + t.tm_year = BUILD_DATE / 10000 - 1900; + if (strftime(buf, sizeof(buf), "%d %B %Y", &t)) + ErrorF("Build Date: %s\n", buf[0] == '0' ? buf + 1 : buf); + } #endif #if defined(CLOG_DATE) && (CLOG_DATE > 19000000) - { - struct tm t; - char buf[100]; - - bzero(&t, sizeof(t)); - bzero(buf, sizeof(buf)); - t.tm_mday = CLOG_DATE % 100; - t.tm_mon = (CLOG_DATE / 100) % 100 - 1; - t.tm_year = CLOG_DATE / 10000 - 1900; - if (strftime(buf, sizeof(buf), "%d %B %Y", &t)) - ErrorF("Changelog Date: %s\n", buf[0] == '0' ? buf + 1 : buf); - } + { + struct tm t; + char buf[100]; + + bzero(&t, sizeof(t)); + bzero(buf, sizeof(buf)); + t.tm_mday = CLOG_DATE % 100; + t.tm_mon = (CLOG_DATE / 100) % 100 - 1; + t.tm_year = CLOG_DATE / 10000 - 1900; + if (strftime(buf, sizeof(buf), "%d %B %Y", &t)) + ErrorF("Changelog Date: %s\n", buf[0] == '0' ? buf + 1 : buf); + } #endif #if defined(BUILDERSTRING) - ErrorF("%s \n",BUILDERSTRING); + ErrorF("%s\n", BUILDERSTRING); +#endif +#if defined(XF86_PROBLEM_STRING) + ErrorF("%s", XF86_PROBLEM_STRING); +#else + ErrorF("\tBefore reporting problems, check http://www.XFree86.Org/\n" + "\tto make sure that you have the latest version.\n"); #endif - ErrorF("\tBefore reporting problems, check http://www.XFree86.Org/\n" - "\tto make sure that you have the latest version.\n"); #ifdef XFree86LOADER - ErrorF("Module Loader present\n"); + ErrorF("Module Loader present\n"); #endif - if (cmdline) - ErrorF("Command line: %s\n", cmdline); + if (cmdline) + ErrorF("Command line: %s\n", cmdline); } static void -xf86PrintMarkers() +PrintMarkers() { - LogPrintMarkers(); + LogPrintMarkers(); } static void -xf86RunVtInit(void) +RunVtInit(void) { int i; @@ -2126,36 +2141,36 @@ */ if (xf86Info.vtinit) { - switch(fork()) { - case -1: - FatalError("xf86RunVtInit: fork failed (%s)\n", strerror(errno)); - break; - case 0: /* child */ - setuid(getuid()); - /* set stdin, stdout to the consoleFd */ - for (i = 0; i < 2; i++) { - if (xf86Info.consoleFd != i) { - close(i); - dup(xf86Info.consoleFd); - } - } - execl("/bin/sh", "sh", "-c", xf86Info.vtinit, (void *)NULL); - xf86Msg(X_WARNING, "exec of /bin/sh failed for VTInit (%s)\n", - strerror(errno)); - exit(255); - break; - default: /* parent */ - wait(NULL); - } + switch (fork()) { + case -1: + FatalError("RunVtInit: fork failed (%s)\n", strerror(errno)); + break; + case 0: /* child */ + setuid(getuid()); + /* set stdin, stdout to the consoleFd */ + for (i = 0; i < 2; i++) { + if (xf86Info.consoleFd != i) { + close(i); + dup(xf86Info.consoleFd); + } + } + execl("/bin/sh", "sh", "-c", xf86Info.vtinit, (void *)NULL); + xf86Msg(X_WARNING, "exec of /bin/sh failed for VTInit (%s)\n", + strerror(errno)); + exit(255); + break; + default: /* parent */ + wait(NULL); + } } } #ifdef XFree86LOADER /* * xf86LoadModules iterates over a list that is being passed in. - */ + */ Bool -xf86LoadModules(const char **list, pointer *optlist) +xf86LoadModules(const char **list, pointer * optlist) { int errmaj, errmin; pointer opt; @@ -2184,7 +2199,7 @@ else opt = NULL; - if (!LoadModule(name, NULL, NULL, NULL, opt, NULL, &errmaj, &errmin)) { + if (!LoadModule(name, NULL, NULL, NULL, opt, NULL, &errmaj, &errmin)) { LoaderErrorMsg(NULL, name, errmaj, errmin); failed = TRUE; } @@ -2225,10 +2240,10 @@ return &format; } } - + for (i = 0; i < numFormats; i++) if (formats[i].depth == depth) - break; + break; if (i != numFormats) return &formats[i]; else if (!formatsDone) { @@ -2247,11 +2262,9 @@ { PixmapFormatPtr format; - format = xf86GetPixFormat(pScrn, depth); if (format) return format->bitsPerPixel; else return 0; } - Index: xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c:3.25 xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c:3.26 --- xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c:3.25 Mon Jan 9 09:59:52 2006 +++ xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c Sun Mar 11 13:38:02 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c,v 3.25 2006/01/09 14:59:52 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c,v 3.26 2007/03/11 17:38:02 tsi Exp $ */ /* * Derived from xf86Kbd.c by S_ren Schmidt (sos@login.dkuug.dk) * which is Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. @@ -1272,8 +1272,7 @@ return wsSunMap[keycode]; #endif default: - ErrorF("Unknown wskbd type %d\n", xf86Info.wsKbdType); - return KEY_UNKNOWN; + return keycode; } } Index: xc/programs/Xserver/hw/xfree86/common/xf86Module.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86Module.h:1.46 xc/programs/Xserver/hw/xfree86/common/xf86Module.h:1.48 --- xc/programs/Xserver/hw/xfree86/common/xf86Module.h:1.46 Thu Mar 16 11:49:56 2006 +++ xc/programs/Xserver/hw/xfree86/common/xf86Module.h Thu Mar 15 10:38:36 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Module.h,v 1.46 2006/03/16 16:49:56 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Module.h,v 1.48 2007/03/15 14:38:36 tsi Exp $ */ /* * Copyright (c) 1997-2006 by The XFree86 Project, Inc. @@ -107,8 +107,8 @@ * changed. The minor revision mask is 0x0000FFFF and the major revision * mask is 0xFFFF0000. */ -#define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 3) -#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(0, 10) +#define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4) +#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(0, 11) #define ABI_XINPUT_VERSION SET_ABI_VERSION(0, 5) #define ABI_EXTENSION_VERSION SET_ABI_VERSION(0, 4) #define ABI_FONT_VERSION SET_ABI_VERSION(0, 5) Index: xc/programs/Xserver/hw/xfree86/common/xf86Option.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Option.c:1.37 xc/programs/Xserver/hw/xfree86/common/xf86Option.c:1.38 --- xc/programs/Xserver/hw/xfree86/common/xf86Option.c:1.37 Fri Oct 14 11:16:33 2005 +++ xc/programs/Xserver/hw/xfree86/common/xf86Option.c Wed Aug 9 16:53:15 2006 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Option.c,v 1.37 2005/10/14 15:16:33 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Option.c,v 1.38 2006/08/09 20:53:15 dawes Exp $ */ /* - * Copyright (c) 1998-2005 by The XFree86 Project, Inc. + * Copyright (c) 1998-2006 by The XFree86 Project, Inc. * All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining @@ -142,7 +142,7 @@ if (device && device->options) { tmp = xf86optionListDup(device->options); if (pScrn->options) - xf86optionListMerge(pScrn->options,tmp); + xf86optionListMerge(pScrn->options, tmp); else pScrn->options = tmp; } @@ -351,11 +351,14 @@ xf86ReplaceIntOption(pointer optlist, const char *name, const int val) { char *tmp; + pointer ret; xasprintf(&tmp, "%i", val); - if (tmp) - return xf86AddNewOption(optlist, name, tmp); - else + if (tmp) { + ret = xf86AddNewOption(optlist, name, tmp); + xfree(tmp); + return ret; + } else return NULL; } @@ -363,34 +366,33 @@ xf86ReplaceRealOption(pointer optlist, const char *name, const double val) { char *tmp; + pointer ret; xasprintf(&tmp, "%f", val); - if (tmp) - return xf86AddNewOption(optlist, name, tmp); - else + if (tmp) { + ret = xf86AddNewOption(optlist, name, tmp); + xfree(tmp); + return ret; + } else return NULL; } pointer xf86ReplaceBoolOption(pointer optlist, const char *name, const Bool val) { - return xf86AddNewOption(optlist,name,val?"True":"False"); + return xf86AddNewOption(optlist, name, val ? "True" : "False"); } pointer xf86ReplaceStrOption(pointer optlist, const char *name, const char* val) { - return xf86AddNewOption(optlist,name,val); + return xf86AddNewOption(optlist, name, val); } pointer xf86AddNewOption(pointer head, const char *name, const char *val) { - /* XXX These should actually be allocated in the parser library. */ - char *tmp = strdup(val); - char *tmp_name = strdup(name); - - return xf86addNewOption(head, tmp_name, tmp); + return xf86addNewOption(head, name, val); } Index: xc/programs/Xserver/hw/xfree86/common/xf86PM.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86PM.c:3.11 xc/programs/Xserver/hw/xfree86/common/xf86PM.c:3.12 --- xc/programs/Xserver/hw/xfree86/common/xf86PM.c:3.11 Fri Oct 14 11:16:33 2005 +++ xc/programs/Xserver/hw/xfree86/common/xf86PM.c Tue Jun 27 23:20:27 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86PM.c,v 3.11 2005/10/14 15:16:33 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86PM.c,v 3.12 2006/06/28 03:20:27 dawes Exp $ */ /* * Copyright (c) 2000-2002 by The XFree86 Project, Inc. * All rights reserved. @@ -84,7 +84,7 @@ int i; InputInfoPtr pInfo; - xf86inSuspend = TRUE; + xf86inSuspend = TRUE; for (i = 0; i < xf86NumScreens; i++) { xf86EnableAccess(xf86Screens[i]); Index: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86Priv.h:3.93 xc/programs/Xserver/hw/xfree86/common/xf86Priv.h:3.94 --- xc/programs/Xserver/hw/xfree86/common/xf86Priv.h:3.93 Mon Mar 6 20:03:40 2006 +++ xc/programs/Xserver/hw/xfree86/common/xf86Priv.h Sat Sep 2 12:44:08 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h,v 3.93 2006/03/07 01:03:40 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h,v 3.94 2006/09/02 16:44:08 dawes Exp $ */ /* * Copyright (c) 1997-2005 by The XFree86 Project, Inc. @@ -125,10 +125,10 @@ extern Bool xf86bsEnableFlag; extern Bool xf86bsDisableFlag; extern Bool xf86silkenMouseDisableFlag; -extern char *xf86LayoutName; -extern char *xf86ScreenName; -extern char *xf86PointerName; -extern char *xf86KeyboardName; +extern const char *xf86LayoutName; +extern const char *xf86ScreenName; +extern const char *xf86PointerName; +extern const char *xf86KeyboardName; #ifdef KEEPBPP extern int xf86Bpp; #endif @@ -139,7 +139,7 @@ extern Bool xf86FlipPixels; extern Bool xf86BestRefresh; extern Gamma xf86Gamma; -extern char *xf86ServerName; +extern const char *xf86ServerName; extern Bool xf86ShowUnresolved; /* Other parameters */ @@ -234,10 +234,10 @@ /* xf86DoScanPci.c */ -void DoScanPci(int argc, char **argv, int i); +void DoScanPci(int argc, const char **argv, int i); /* xf86DoProbe.c */ -void DoProbeArgs(int argc, char **argv, int i); +void DoProbeArgs(int argc, const char **argv, int i); void DoProbe(void); void DoConfigure(void); Index: xc/programs/Xserver/hw/xfree86/common/xf86fbman.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86fbman.c:1.32 xc/programs/Xserver/hw/xfree86/common/xf86fbman.c:1.34 --- xc/programs/Xserver/hw/xfree86/common/xf86fbman.c:1.32 Fri Oct 14 11:16:34 2005 +++ xc/programs/Xserver/hw/xfree86/common/xf86fbman.c Thu Nov 2 12:37:00 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86fbman.c,v 1.32 2005/10/14 15:16:34 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86fbman.c,v 1.34 2006/11/02 17:37:00 tsi Exp $ */ /* * Copyright (c) 1998-2001 by The XFree86 Project, Inc. @@ -385,10 +385,8 @@ /* look through the free boxes */ for(i = 0; i < num; i++, boxp++) { x = boxp->x1; - if(granularity) { - int tmp = x % granularity; - if(tmp) x += (granularity - tmp); - } + if (granularity > 1) + x = ((x + granularity - 1) / granularity) * granularity; if(((boxp->y2 - boxp->y1) < h) || ((boxp->x2 - x) < w)) continue; @@ -415,10 +413,8 @@ boxp = &(link->area.box); x = boxp->x1; - if(granularity) { - int tmp = x % granularity; - if(tmp) x += (granularity - tmp); - } + if (granularity > 1) + x = ((x + granularity - 1) / granularity) * granularity; if(((boxp->y2 - boxp->y1) < h) || ((boxp->x2 - x) < w)) { link = link->next; @@ -702,10 +698,8 @@ while(nbox--) { x = pbox->x1; - if(granularity) { - int tmp = x % granularity; - if(tmp) x += (granularity - tmp); - } + if (granularity > 1) + x = ((x + granularity - 1) / granularity) * granularity; w = pbox->x2 - x; h = pbox->y2 - pbox->y1; @@ -862,7 +856,9 @@ while (linear) { /* Make sure we get a free area that's not an XY fallback case */ if (!linear->area && linear->free) { - offset = (linear->linear.offset + granularity) & ~granularity; + offset = linear->linear.offset; + if (granularity > 1) + offset = ((offset + granularity - 1) / granularity) * granularity; end = offset+size; if (end <= (linear->linear.offset + linear->linear.size)) break; @@ -952,10 +948,20 @@ extents = REGION_EXTENTS(pScreen, offman->InitialBoxes); pitch = extents->x2 - extents->x1; - if(gran && ((gran > pitch) || (pitch % gran))) { - /* we can't match the specified alignment with XY allocations */ - xfree(link); - return NULL; + if (gran > 1) { + if (gran > pitch) { + /* we can't match the specified alignment with XY allocations */ + xfree(link); + return NULL; + } + + if (pitch % gran) { + /* + * pitch and granularity aren't a perfect match, allocate a bit + * more and align later. + */ + length += gran - 1; + } } if(length < pitch) { /* special case */ @@ -979,6 +985,8 @@ linear->pScreen = pScreen; linear->size = h * w; linear->offset = (pitch * area->box.y1) + area->box.x1; + if (gran > 1) + linear->offset = ((linear->offset + gran - 1) / gran) * gran; linear->granularity = gran; linear->MoveLinearCallback = moveCB; linear->RemoveLinearCallback = removeCB; @@ -1033,7 +1041,7 @@ FBLinearLinkPtr p = pLink->next; pLink->linear.size += p->linear.size; pLink->next = p->next; - free(p); + xfree(p); } if(pLinkPrev) { @@ -1041,7 +1049,7 @@ FBLinearLinkPtr p = pLinkPrev->next; pLinkPrev->linear.size += p->linear.size; pLinkPrev->next = p->next; - free(p); + xfree(p); } } @@ -1444,9 +1452,12 @@ extents = REGION_EXTENTS(pScreen, offman->InitialBoxes); w = extents->x2 - extents->x1; - if(gran && ((gran > w) || (w % gran))) { - /* we can't match the specified alignment with XY allocations */ - return NULL; + if (gran > 1) { + if (gran > w) + return NULL; + + if (w % gran) + length += gran - 1; } if(length <= w) { /* special case */ Index: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c:3.88 xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c:3.92 --- xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c:3.88 Fri Oct 14 11:16:34 2005 +++ xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c Thu Feb 15 14:31:49 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c,v 3.88 2005/10/14 15:16:34 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c,v 3.92 2007/02/15 19:31:49 tsi Exp $ */ /* - * Copyright (c) 1997-2004 by The XFree86 Project, Inc. + * Copyright (c) 1997-2007 by The XFree86 Project, Inc. * All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining @@ -235,7 +235,6 @@ sizeof(pciVideoPtr) * (num + 1)); xf86PciVideoInfo[num] = NULL; info = xf86PciVideoInfo[num - 1] = xnfalloc(sizeof(pciVideoRec)); - info->validSize = FALSE; info->vendor = pcrp->pci_vendor; info->chipType = pcrp->pci_device; info->chipRev = pcrp->pci_rev_id; @@ -248,7 +247,8 @@ info->subclass = pcrp->pci_sub_class; info->interface = pcrp->pci_prog_if; info->biosBase = PCIGETROM(pcrp->pci_baserom); - info->biosSize = pciGetBaseSize(pcrp->tag, 6, TRUE, NULL); + info->biosSize = pciGetBaseSize(pcrp, 6, TRUE, &pcrp->minBasesize); + info->validSize = pcrp->minBasesize; info->thisCard = pcrp; info->validate = FALSE; #ifdef INCLUDE_XF86_NO_DOMAIN @@ -292,7 +292,7 @@ info->ioBase[j] = 0; if (PCINONSYSTEMCLASSES(baseclass, subclass)) { info->size[j] = - pciGetBaseSize(pcrp->tag, j, TRUE, &info->validSize); + pciGetBaseSize(pcrp, j, TRUE, &info->validSize); pcrp->minBasesize = info->validSize; } else { info->size[j] = pcrp->basesize[j]; @@ -469,18 +469,19 @@ int j; if (! (pvp = xf86GetPciInfoForEntity(entityIndex))) return; - if (pvp->validSize) return; tag = pciTag(pvp->bus,pvp->device,pvp->func); for (j = 0; j < 6; j++) { + if (pvp->validSize & (2 << j)) + continue; pAcc = Acc; if (pvp->memBase[j]) while (pAcc) { if (((pAcc->res_type & (ResPhysMask | ResBlock)) == (ResMem | ResBlock)) - && (pAcc->block_begin == B2M(TAG(pvp),pvp->memBase[j])) - && (pAcc->block_end == B2M(TAG(pvp),pvp->memBase[j] + && (pAcc->block_begin == B2M(tag, pvp->memBase[j])) + && (pAcc->block_end == B2M(tag, pvp->memBase[j] + SIZE(pvp->size[j])))) break; pAcc = pAcc->next; } @@ -488,34 +489,34 @@ while (pAcc) { if (((pAcc->res_type & (ResPhysMask | ResBlock)) == (ResIo | ResBlock)) - && (pAcc->block_begin == B2I(TAG(pvp),pvp->ioBase[j])) - && (pAcc->block_end == B2I(TAG(pvp),pvp->ioBase[j] + && (pAcc->block_begin == B2I(tag, pvp->ioBase[j])) + && (pAcc->block_end == B2I(tag, pvp->ioBase[j] + SIZE(pvp->size[j])))) break; pAcc = pAcc->next; } else continue; - pvp->size[j] = pciGetBaseSize(tag, j, TRUE, &pvp->validSize); + pvp->size[j] = pciGetBaseSize(pvp->thisCard, j, TRUE, &pvp->validSize); if (pAcc) { pAcc->block_end = pvp->memBase[j] ? - B2M(TAG(pvp),pvp->memBase[j] + SIZE(pvp->size[j])) - : B2I(TAG(pvp),pvp->ioBase[j] + SIZE(pvp->size[j])); + B2M(tag, pvp->memBase[j] + SIZE(pvp->size[j])) + : B2I(tag ,pvp->ioBase[j] + SIZE(pvp->size[j])); pAcc->res_type &= ~ResEstimated; pAcc->res_type |= ResBios; } } - if (pvp->biosBase) { + if (pvp->biosBase && !(pvp->validSize & (2 << 6))) { pAcc = Acc; while (pAcc) { if (((pAcc->res_type & (ResPhysMask | ResBlock)) == (ResMem | ResBlock)) - && (pAcc->block_begin == B2M(TAG(pvp),pvp->biosBase)) - && (pAcc->block_end == B2M(TAG(pvp),pvp->biosBase + && (pAcc->block_begin == B2M(tag, pvp->biosBase)) + && (pAcc->block_end == B2M(tag, pvp->biosBase + SIZE(pvp->biosSize)))) break; pAcc = pAcc->next; } - pvp->biosSize = pciGetBaseSize(tag, 6, TRUE, &pvp->validSize); + pvp->biosSize = pciGetBaseSize(pvp->thisCard, 6, TRUE, &pvp->validSize); if (pAcc) { - pAcc->block_end = B2M(TAG(pvp),pvp->biosBase+SIZE(pvp->biosSize)); + pAcc->block_end = B2M(tag, pvp->biosBase+SIZE(pvp->biosSize)); pAcc->res_type &= ~ResEstimated; pAcc->res_type |= ResBios; } @@ -785,7 +786,7 @@ pciConfigPtr pcrp, *pcrpp; pciVideoPtr pvp, *pvpp; CARD32 *basep; - int i; + int i, numbars; int old_bits = 0, new_bits = 0; if (oldsize + 1) while (oldsize & 1) { @@ -800,18 +801,32 @@ for (pcrpp = xf86PciInfo, pcrp = *pcrpp; pcrp; pcrp = *++(pcrpp)) { /* Only process devices with type 0 headers */ - if ((pcrp->pci_header_type & 0x7f) != 0) + switch (pcrp->pci_header_type & 0x7f) { + case 0: + numbars = 6; + break; + + case 1: + numbars = 2; + break; + + case 2: + numbars = 1; + break; + + default: continue; + } basep = &pcrp->pci_base0; - for (i = 0; i < 6; i++) { + for (i = 0; i < numbars; i++) { if (basep[i] && (pcrp->basesize[i] == old_bits)) { if ((((type & ResPhysMask) == ResIo) && PCI_MAP_IS_IO(basep[i]) && B2I(pcrp->tag,PCIGETIO(basep[i]) == base)) || (((type & ResPhysMask) == ResMem) && PCI_MAP_IS_MEM(basep[i]) && - (((!PCI_MAP_IS64BITMEM(basep[i])) && + (((!PCI_MAP_IS64BITMEM(basep[i]) || i == (numbars - 1)) && (B2M(pcrp->tag,PCIGETMEMORY(basep[i])) == base)) #if defined(LONG64) || defined(WORD64) || @@ -898,7 +913,7 @@ int i; resPtr pRes, tmp; resRange range; - long resMisc; + long resMisc, resMisc2; if (activeRes) *activeRes = NULL; @@ -923,22 +938,29 @@ else res = inactiveRes; - if (!pvp->validSize) - resMisc |= ResEstimated; - for (i = 0; i < 6; i++) { + if (pvp->size[i] == 0) + continue; + + if (pvp->validSize & (2 << i)) + resMisc2 = 0; + else + resMisc2 = ResEstimated; + if (pvp->ioBase[i] && (pvp->ioBase[i] < (memType)(-1 << pvp->size[i]))) { - PV_I_RANGE(range,pvp,i,ResExcIoBlock | resMisc); + PV_I_RANGE(range, pvp, i, + ResExcIoBlock | resMisc | resMisc2); tmp = xf86AddResToList(NULL, &range, -1); - removeOverlapsWithBridges(pvp->bus,tmp); - *res = xf86JoinResLists(tmp,*res); + removeOverlapsWithBridges(pvp->bus, tmp); + *res = xf86JoinResLists(tmp, *res); } else if (pvp->memBase[i] && (pvp->memBase[i] < (memType)(-1 << pvp->size[i]))) { - PV_M_RANGE(range, pvp,i, ResExcMemBlock | resMisc); + PV_M_RANGE(range, pvp, i, + ResExcMemBlock | resMisc | resMisc); tmp = xf86AddResToList(NULL, &range, -1); - removeOverlapsWithBridges(pvp->bus,tmp); - *res = xf86JoinResLists(tmp,*res); + removeOverlapsWithBridges(pvp->bus, tmp); + *res = xf86JoinResLists(tmp, *res); } } /* FIXME!!!: Don't use BIOS resources for overlap @@ -946,16 +968,23 @@ */ if (pvp->biosBase && (pvp->biosBase < (memType)(-1 << pvp->biosSize))) { - PV_B_RANGE(range, pvp, ResExcMemBlock | resMisc); + if (pvp->validSize & (2 << 6)) + resMisc2 = 0; + else + resMisc2 = ResEstimated; + PV_B_RANGE(range, pvp, ResExcMemBlock | resMisc | resMisc2); tmp = xf86AddResToList(NULL, &range, -1); - removeOverlapsWithBridges(pvp->bus,tmp); - *res = xf86JoinResLists(tmp,*res); + removeOverlapsWithBridges(pvp->bus, tmp); + *res = xf86JoinResLists(tmp, *res); } } for (pcrpp = xf86PciInfo, pcrp = *pcrpp; pcrp; pcrp = *++(pcrpp)) { resPtr *res; - CARD8 baseclass, subclass; + CARD8 baseclass, subclass, header_type, numbars; + + if (!(pcrp->pci_command & (PCI_CMD_IO_ENABLE | PCI_CMD_MEM_ENABLE))) + continue; if (pcrp->listed_class & 0x0ffff) { baseclass = pcrp->listed_class >> 8; @@ -968,14 +997,23 @@ if (PCIINFOCLASSES(baseclass, subclass)) continue; - /* Only process devices with type 0 headers */ - if ((pcrp->pci_header_type & 0x7f) != 0) - continue; + header_type = pcrp->pci_header_type & 0x7f; + switch (header_type) { + case 0: + numbars = 6; + break; - if (!pcrp->minBasesize) - resMisc = ResEstimated; - else - resMisc = 0; + case 1: + numbars = 2; + break; + + case 2: + numbars = 1; + break; + + default: + continue; + } /* * Allow resources allocated to host bridges to overlap. Perhaps, this @@ -984,35 +1022,47 @@ */ if ((baseclass == PCI_CLASS_BRIDGE) && (subclass == PCI_SUBCLASS_BRIDGE_HOST)) - resMisc |= ResOverlap; + resMisc = ResOverlap; + else + resMisc = 0; basep = &pcrp->pci_base0; - for (i = 0; i < 6; i++) { - if (basep[i]) { + for (i = 0; i < numbars; i++) { + if (pcrp->basesize[i]) { + if (pcrp->minBasesize & (2 << i)) + resMisc2 = 0; + else + resMisc2 = ResEstimated; if (PCI_MAP_IS_IO(basep[i])) { if (pcrp->pci_command & PCI_CMD_IO_ENABLE) res = activeRes; else res = inactiveRes; P_I_RANGE(range, pcrp->tag, PCIGETIO(basep[i]), - pcrp->basesize[i], ResExcIoBlock | resMisc) + pcrp->basesize[i], + ResExcIoBlock | resMisc | resMisc2) } else if (!PCI_MAP_IS64BITMEM(basep[i])) { if (pcrp->pci_command & PCI_CMD_MEM_ENABLE) res = activeRes; else res = inactiveRes; P_M_RANGE(range, pcrp->tag, PCIGETMEMORY(basep[i]), - pcrp->basesize[i], ResExcMemBlock | resMisc) + pcrp->basesize[i], + ResExcMemBlock | resMisc | resMisc2) } else { i++; + if (i >= numbars) + break; #if defined(LONG64) || defined(WORD64) P_M_RANGE(range,pcrp->tag,PCIGETMEMORY64(basep[i - 1]), - pcrp->basesize[i - 1], ResExcMemBlock | resMisc) + pcrp->basesize[i - 1], + ResExcMemBlock | resMisc | resMisc2) #else if (basep[i]) continue; P_M_RANGE(range, pcrp->tag, PCIGETMEMORY(basep[i - 1]), - pcrp->basesize[i - 1], ResExcMemBlock | resMisc) + pcrp->basesize[i - 1], + ResExcMemBlock | resMisc | resMisc2) #endif if (pcrp->pci_command & PCI_CMD_MEM_ENABLE) res = activeRes; @@ -1021,21 +1071,50 @@ } if (range.rBegin) { /* catch cases where PCI base is unset */ tmp = xf86AddResToList(NULL, &range, -1); - removeOverlapsWithBridges(pcrp->busnum,tmp); - *res = xf86JoinResLists(tmp,*res); + removeOverlapsWithBridges(pcrp->busnum, tmp); + *res = xf86JoinResLists(tmp, *res); } } } /* Ignore disabled non-video ROMs */ if ((pcrp->pci_command & PCI_CMD_MEM_ENABLE) && - (pcrp->pci_baserom & PCI_MAP_ROM_DECODE_ENABLE)) { - P_M_RANGE(range,pcrp->tag,PCIGETROM(pcrp->pci_baserom), - pcrp->basesize[6], ResExcMemBlock | resMisc); - if (range.rBegin) { + (pcrp->basesize[6] > 0)) { + switch (header_type) { + case 0: + if (!(pcrp->pci_baserom & PCI_MAP_ROM_DECODE_ENABLE)) + break; + + if (pcrp->minBasesize & (2 << 6)) + resMisc2 = 0; + else + resMisc2 = ResEstimated; + P_M_RANGE(range, pcrp->tag, PCIGETROM(pcrp->pci_baserom), + pcrp->basesize[6], + ResExcMemBlock | resMisc | resMisc2); tmp = xf86AddResToList(NULL, &range, -1); removeOverlapsWithBridges(pcrp->busnum, tmp); *activeRes = xf86JoinResLists(tmp, *activeRes); + break; + + case 1: + if (!(pcrp->pci_br_rom & PCI_MAP_ROM_DECODE_ENABLE)) + break; + + if (pcrp->minBasesize & (2 << 6)) + resMisc2 = 0; + else + resMisc2 = ResEstimated; + P_M_RANGE(range, pcrp->tag, PCIGETROM(pcrp->pci_br_rom), + pcrp->basesize[6], + ResExcMemBlock | resMisc | resMisc2); + tmp = xf86AddResToList(NULL, &range, -1); + removeOverlapsWithBridges(pcrp->busnum, tmp); + *activeRes = xf86JoinResLists(tmp, *activeRes); + break; + + default: + break; } } } @@ -1414,7 +1493,7 @@ (*p_base) = H2B(tag,range.rBegin,type); #ifdef DEBUG ErrorF("New PCI res %i base: 0x%lx, size: 0x%lx, type %s\n", - res_n,(*p_base),(1 << (*p_size)), + res_n, *p_base, (1UL << *p_size), ((type & ResPhysMask) == ResMem) ? "Mem" : "Io"); #endif if (res_n != 0xff) { @@ -1426,7 +1505,7 @@ (CARD32)(*p_base) | (CARD32)(p_type); pciWriteLong(tag, PCI_MAP_REG_START + (res_n * sizeof(CARD32)), ((CARD32 *)(&(pcp->pci_base0)))[res_n]); - if (PCI_MAP_IS64BITMEM(p_type)) { + if (PCI_MAP_IS64BITMEM(p_type) && (res_n < 5)) { #if defined(LONG64) || defined(WORD64) ((CARD32 *)(&(pcp->pci_base0)))[res_n + 1] = (CARD32)(*p_base >> 32); @@ -2373,18 +2452,36 @@ } } for (pcrpp = xf86PciInfo, pcrp = *pcrpp; pcrp; pcrp = *++(pcrpp)) { + CARD8 header_type, numbars; /* These were handled above */ if (PCIINFOCLASSES(pcrp->pci_base_class, pcrp->pci_sub_class)) continue; - if ((pcrp->pci_header_type & 0x7f) || - !(pcrp->pci_command & (PCI_CMD_IO_ENABLE | PCI_CMD_MEM_ENABLE))) + if (!(pcrp->pci_command & (PCI_CMD_IO_ENABLE | PCI_CMD_MEM_ENABLE))) + continue; + + header_type = pcrp->pci_header_type & 0x7f; + switch (header_type) { + case 0: + numbars = 6; + break; + + case 1: + numbars = 2; + break; + + case 2: + numbars = 1; + break; + + default: continue; + } basep = &pcrp->pci_base0; - for (i = 0; i < 6; i++) { - if (basep[i]) { + for (i = 0; i < numbars; i++) { + if (pcrp->basesize[i]) { if (PCI_MAP_IS_IO(basep[i])) { if (!(pcrp->pci_command & PCI_CMD_IO_ENABLE)) continue; @@ -2397,6 +2494,8 @@ pcrp->basesize[i], ResExcMemBlock) } else { i++; + if (i >= numbars) + break; if (!(pcrp->pci_command & PCI_CMD_MEM_ENABLE)) continue; #if defined(LONG64) || defined(WORD64) @@ -2412,14 +2511,32 @@ Sys = xf86AddResToList(Sys, &range, -1); } } - if ((pcrp->pci_baserom) && - (pcrp->pci_command & PCI_CMD_MEM_ENABLE) && - (pcrp->pci_baserom & PCI_MAP_ROM_DECODE_ENABLE)) { - P_M_RANGE(range,pcrp->tag,PCIGETROM(pcrp->pci_baserom), - pcrp->basesize[6],ResExcMemBlock); - Sys = xf86AddResToList(Sys, &range, -1); + + if ((pcrp->pci_command & PCI_CMD_MEM_ENABLE) && + (pcrp->basesize[6] > 0)) { + switch (header_type) { + case 0: + if (!(pcrp->pci_baserom & PCI_MAP_ROM_DECODE_ENABLE)) + break; + P_M_RANGE(range, pcrp->tag, PCIGETROM(pcrp->pci_baserom), + pcrp->basesize[6], ResExcMemBlock); + Sys = xf86AddResToList(Sys, &range, -1); + break; + + case 1: + if (!(pcrp->pci_br_rom & PCI_MAP_ROM_DECODE_ENABLE)) + break; + P_M_RANGE(range, pcrp->tag, PCIGETROM(pcrp->pci_br_rom), + pcrp->basesize[6], ResExcMemBlock); + Sys = xf86AddResToList(Sys, &range, -1); + break; + + default: + break; + } } } + #ifdef DEBUG xf86MsgVerb(X_INFO, 3,"Sys:\n"); xf86PrintResList(3,Sys); @@ -3516,17 +3633,17 @@ && pPci->func == pcp->funcnum) { if (pcp->pci_base_class == PCI_CLASS_PREHISTORIC && pcp->pci_sub_class == PCI_SUBCLASS_PREHISTORIC_VGA) - return PCI_CHIP_VGA ; + return PCI_CHIP_VGA; if (pcp->pci_base_class == PCI_CLASS_DISPLAY && pcp->pci_sub_class == PCI_SUBCLASS_DISPLAY_VGA) { - if (pcp->pci_prog_if == 0) - return PCI_CHIP_VGA ; - if (pcp->pci_prog_if == 1) + if (pcp->pci_prog_if == PCI_IF_DISPLAY_VGA) + return PCI_CHIP_VGA; + if (pcp->pci_prog_if == PCI_IF_DISPLAY_8514) return PCI_CHIP_8514; } return -1; } - i++; + i++; } return -1; } @@ -3746,7 +3863,7 @@ * to implement func 0 we catch all devices on the bus when * i = 0 */ - if (pcrp->pci_header_type &0x80) + if (pcrp->pci_header_type & 0x80) multifunc = TRUE; j = 0; Index: xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c:3.10 xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c:3.14 --- xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c:3.10 Fri Oct 14 11:16:34 2005 +++ xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c Thu Mar 15 10:38:36 2007 @@ -20,7 +20,7 @@ * 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. */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c,v 3.10 2005/10/14 15:16:34 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c,v 3.14 2007/03/15 14:38:36 tsi Exp $ */ #include #include @@ -56,20 +56,32 @@ static int xf86nSbusInfo; static void +#ifdef __OpenBSD__ +CheckSbusDevice(const char *device) +#else CheckSbusDevice(const char *device, int fbNum) +#endif { int fd, i; - struct fbgattr fbattr; sbusDevicePtr psdp; #ifdef sun struct vis_identifier vid; #endif +#ifdef __OpenBSD__ + struct wsdisplay_fbinfo fbinfo; +#else + struct fbgattr fbattr; +#endif fd = open(device, O_RDONLY, 0); if (fd < 0) return; +#ifdef __OpenBSD__ + memset(&fbinfo, 0, sizeof(fbinfo)); +#else memset(&fbattr, 0, sizeof(fbattr)); +#endif #ifdef sun if (ioctl(fd, VIS_GETIDENTIFIER, &vid) >= 0) @@ -87,6 +99,25 @@ } else #endif +#ifdef __OpenBSD__ + { + int fbtype; + + if (ioctl(fd, WSDISPLAYIO_GTYPE, &fbtype) < 0) { + close(fd); + return; + } + + if (ioctl(fd, WSDISPLAYIO_GINFO, &fbinfo) < 0) { + close(fd); + return; + } + + for (i = 0; sbusDeviceTable[i].devId; i++) + if (sbusDeviceTable[i].fbType == fbtype) + break; + } +#else { if (ioctl(fd, FBIOGATTR, &fbattr) < 0) { if (ioctl(fd, FBIOGTYPE, &fbattr.fbtype) < 0) { @@ -99,6 +130,7 @@ if (sbusDeviceTable[i].fbType == fbattr.fbtype.fb_type) break; } +#endif close(fd); @@ -110,28 +142,51 @@ xf86SbusInfo[xf86nSbusInfo] = NULL; xf86SbusInfo[xf86nSbusInfo - 1] = psdp = xnfcalloc(sizeof(sbusDevice), 1); psdp->devId = sbusDeviceTable[i].devId; - psdp->fbNum = fbNum; psdp->device = xnfstrdup(device); psdp->descr = sbusDeviceTable[i].descr; +#ifdef __OpenBSD__ + psdp->fbNum = xf86nSbusInfo - 1; + psdp->width = fbinfo.width; + psdp->height = fbinfo.height; +#else + psdp->fbNum = fbNum; psdp->width = fbattr.fbtype.fb_width; psdp->height = fbattr.fbtype.fb_height; +#endif psdp->fd = -1; } void xf86SbusProbe(void) { - int i, useProm = 0; + int useProm = 0; char fbDevName[32]; sbusDevicePtr psdp, *psdpp; xf86SbusInfo = xalloc(sizeof(psdp)); *xf86SbusInfo = NULL; - for (i = 0; i < 32; i++) { - sprintf(fbDevName, "/dev/fb%d", i); - CheckSbusDevice(fbDevName, i); +#ifdef __OpenBSD__ + { + const char *c1, *c2; + + for (c1 = "CDEFGHIJ"; *c1; c1++) { + for (c2 = "0123456789ab"; *c2; c2++) { + sprintf(fbDevName, "/dev/tty%c%c", *c1, *c2); + CheckSbusDevice(fbDevName); + } + } + } +#else + { + int i; + + for (i = 0; i < 32; i++) { + sprintf(fbDevName, "/dev/fb%d", i); + CheckSbusDevice(fbDevName, i); + } } +#endif if (sparcPromInit() >= 0) { useProm = 1; @@ -331,54 +386,57 @@ { /* * The format is assumed to be one of: - * "fbN", e.g. "fb1", which means the device corresponding to /dev/fbN + * the name of the device (with or without the "/dev/" part) * "nameN", e.g. "cgsix0", which means Nth instance of card NAME * "/prompath", e.g. "/sbus@0,10001000/cgsix@3,0" which is PROM pathname * to the device. */ + sbusDevicePtr *psdpp; const char *id; - int i, len; + int i, len, devId; if (StringToBusType(busID, &id) != BUS_SBUS) return FALSE; - if (*id != '/') { - if (!strncmp(id, "fb", 2)) { - if (!isdigit(id[2])) - return FALSE; - - *fbNum = atoi(id + 2); + for (psdpp = xf86SbusInfo; *psdpp; ++psdpp) { + if (!strcmp((*psdpp)->device, id)) { + *fbNum = (*psdpp)->fbNum; return TRUE; + } + } - } else { - sbusDevicePtr *psdpp; - int devId; - - len = 0; - for (i = 0; sbusDeviceTable[i].devId; i++) { - len = strlen(sbusDeviceTable[i].promName); - if (!strncmp(sbusDeviceTable[i].promName, id, len) && - isdigit(id[len])) - break; + if (*id != '/') { + for (psdpp = xf86SbusInfo; *psdpp; ++psdpp) { + if (!strcmp((*psdpp)->device + 5, id)) { + *fbNum = (*psdpp)->fbNum; + return TRUE; } + } - devId = sbusDeviceTable[i].devId; - if (!devId) - return FALSE; + len = 0; + for (i = 0; sbusDeviceTable[i].devId; i++) { + len = strlen(sbusDeviceTable[i].promName); + if (!strncmp(sbusDeviceTable[i].promName, id, len) && + isdigit(id[len])) + break; + } - i = atoi(id + len); - for (psdpp = xf86SbusInfo; *psdpp; ++psdpp) { - if ((*psdpp)->devId != devId) - continue; + devId = sbusDeviceTable[i].devId; + if (!devId) + return FALSE; - if (!i) { - *fbNum = (*psdpp)->fbNum; - return TRUE; - } + i = atoi(id + len); + for (psdpp = xf86SbusInfo; *psdpp; ++psdpp) { + if ((*psdpp)->devId != devId) + continue; - i--; + if (!i) { + *fbNum = (*psdpp)->fbNum; + return TRUE; } + + i--; } return FALSE; @@ -726,6 +784,10 @@ pScrn->virtualY = psdp->height; } +/* + * Colourmap control. + */ + static int sbusPaletteIndex = -1; static unsigned long sbusPaletteGeneration = 0; typedef struct _sbusCmap { @@ -737,8 +799,7 @@ unsigned char origBlue[16]; } sbusCmapRec, *sbusCmapPtr; -#define SBUSCMAPPTR(pScreen) \ - ((sbusCmapPtr)((pScreen)->devPrivates[sbusPaletteIndex].ptr)) +#define SBUSCMAPPTR(pScreen) (pScreen)->devPrivates[sbusPaletteIndex].ptr static void xf86SbusCmapLoadPalette(ScrnInfoPtr pScrn, int numColors, int *indices, @@ -813,7 +874,7 @@ } cmap = xnfcalloc(1, sizeof(sbusCmapRec)); - pScreen->devPrivates[sbusPaletteIndex].ptr = cmap; + SBUSCMAPPTR(pScreen) = cmap; cmap->psdp = psdp; fbcmap.index = 0; fbcmap.count = 16; @@ -844,3 +905,129 @@ return xf86HandleColormaps(pScreen, 256, 8, xf86SbusCmapLoadPalette, NULL, 0); } + +/* + * Cursor control. + */ + +/* Tell OS that we are driving the HW cursor ourselves */ +void +xf86SbusHideOsHwCursor(sbusDevicePtr psdp) +{ + struct fbcursor fbcursor; + unsigned char zeros[8]; + + memset(&fbcursor, 0, sizeof(fbcursor)); + memset(&zeros, 0, sizeof(zeros)); + fbcursor.cmap.count = 2; + fbcursor.cmap.red = zeros; + fbcursor.cmap.green = zeros; + fbcursor.cmap.blue = zeros; + fbcursor.image = (char *)zeros; + fbcursor.mask = (char *)zeros; + fbcursor.size.x = 32; + fbcursor.size.y = 1; + fbcursor.set = FB_CUR_SETALL; + ioctl(psdp->fd, FBIOSCURSOR, &fbcursor); +} + +/* Set HW cursor colormap */ +void +xf86SbusSetOsHwCursorCmap(sbusDevicePtr psdp, int bg, int fg) +{ + struct fbcursor fbcursor; + unsigned char red[2], green[2], blue[2]; + + memset(&fbcursor, 0, sizeof(fbcursor)); + red[0] = bg >> 16; + green[0] = bg >> 8; + blue[0] = bg; + red[1] = fg >> 16; + green[1] = fg >> 8; + blue[1] = fg; + fbcursor.cmap.count = 2; + fbcursor.cmap.red = red; + fbcursor.cmap.green = green; + fbcursor.cmap.blue = blue; + fbcursor.set = FB_CUR_SETCMAP; + ioctl(psdp->fd, FBIOSCURSOR, &fbcursor); +} + +/* Set HW cursor image & mask */ +void +xf86SbusSetOsHwCursorImage(sbusDevicePtr psdp, pointer image, pointer mask) +{ + struct fbcursor fbcursor; + + memset(&fbcursor, 0, sizeof(fbcursor)); + fbcursor.image = image; + fbcursor.mask = mask; + fbcursor.set = FB_CUR_SETSHAPE; + ioctl(psdp->fd, FBIOSCURSOR, &fbcursor); +} + +/* Set hide/un-hide HW cursor */ +void +xf86SbusSetOsHwCursor(sbusDevicePtr psdp, Bool onoff) +{ + struct fbcursor fbcursor; + + memset(&fbcursor, 0, sizeof(fbcursor)); + if (onoff) + fbcursor.enable = 1; + fbcursor.set = FB_CUR_SETCUR; + ioctl(psdp->fd, FBIOSCURSOR, &fbcursor); +} + +/* Set HW cursor position */ +void +xf86SbusSetOsHwCursorPosition(sbusDevicePtr psdp, int x, int y) +{ + struct fbcursor fbcursor; + + memset(&fbcursor, 0, sizeof(fbcursor)); + fbcursor.pos.x = x; + fbcursor.pos.y = y; + fbcursor.set = FB_CUR_SETPOS; + ioctl(psdp->fd, FBIOSCURSOR, &fbcursor); +} + +/* Set HW cursor hot spot */ +void +xf86SbusSetOsHwCursorHotSpot(sbusDevicePtr psdp, int hotx, int hoty) +{ + struct fbcursor fbcursor; + + memset(&fbcursor, 0, sizeof(fbcursor)); + fbcursor.hot.x = hotx; + fbcursor.hot.y = hoty; + fbcursor.set = FB_CUR_SETHOT; + ioctl(psdp->fd, FBIOSCURSOR, &fbcursor); +} + +/* + * Screen on/off + */ + +Bool +xf86SbusSaveScreen(sbusDevicePtr psdp, int mode) +{ + int state; + + switch (mode) { + case SCREEN_SAVER_ON: + case SCREEN_SAVER_CYCLE: + state = 0; + break; + + case SCREEN_SAVER_OFF: + case SCREEN_SAVER_FORCER: + state = 1; + break; + + default: + return FALSE; + } + + return (ioctl(psdp->fd, FBIOSVIDEO, &state) >= 0); +} Index: xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.h:3.8 xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.h:3.10 --- xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.h:3.8 Fri Feb 17 22:31:38 2006 +++ xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.h Wed Mar 14 22:11:36 2007 @@ -20,7 +20,7 @@ * 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. */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.h,v 3.8 2006/02/18 03:31:38 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.h,v 3.10 2007/03/15 02:11:36 tsi Exp $ */ #ifndef _XF86_SBUSBUS_H #define _XF86_SBUSBUS_H @@ -40,6 +40,7 @@ #define SBUS_DEVICE_FFB 0x000b #define SBUS_DEVICE_GT 0x000c #define SBUS_DEVICE_MGX 0x000d +#define SBUS_DEVICE_P9100 0x000e typedef struct sbus_prom_node { int node; @@ -62,6 +63,7 @@ char *device; sbusPromParentPtr parent; void *OSprivate; + int mmapCount; } sbusDevice, *sbusDevicePtr; extern struct sbus_devtable { @@ -92,10 +94,19 @@ pointer xf86MapSbusMem(sbusDevicePtr psdp, unsigned long offset, unsigned long size); void xf86UnmapSbusMem(sbusDevicePtr psdp, pointer addr, unsigned long size); + void xf86SbusHideOsHwCursor(sbusDevicePtr psdp); void xf86SbusSetOsHwCursorCmap(sbusDevicePtr psdp, int bg, int fg); +void xf86SbusSetOsHwCursorImage(sbusDevicePtr psdp, pointer image, + pointer mask); +void xf86SbusSetOsHwCursor(sbusDevicePtr psdp, Bool onoff); +void xf86SbusSetOsHwCursorPosition(sbusDevicePtr psdp, int x, int y); +void xf86SbusSetOsHwCursorHotSpot(sbusDevicePtr psdp, int hotx, int hoty); + Bool xf86SbusHandleColormaps(ScreenPtr pScreen, sbusDevicePtr psdp); +Bool xf86SbusSaveScreen(sbusDevicePtr, int mode); + extern int promRootNode; int promGetSibling(int node); Index: xc/programs/Xserver/hw/xfree86/common/xf86str.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86str.h:1.109 xc/programs/Xserver/hw/xfree86/common/xf86str.h:1.111 --- xc/programs/Xserver/hw/xfree86/common/xf86str.h:1.109 Thu Mar 16 11:49:56 2006 +++ xc/programs/Xserver/hw/xfree86/common/xf86str.h Tue Feb 13 13:30:09 2007 @@ -1,7 +1,7 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86str.h,v 1.109 2006/03/16 16:49:56 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86str.h,v 1.111 2007/02/13 18:30:09 tsi Exp $ */ /* - * Copyright (c) 1997-2006 by The XFree86 Project, Inc. + * Copyright (c) 1997-2007 by The XFree86 Project, Inc. * All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining @@ -480,7 +480,7 @@ memType biosBase; int biosSize; pointer thisCard; - Bool validSize; + int validSize; /* was Bool, now a bit mask */ Bool validate; CARD32 listed_class; } pciVideoRec, *pciVideoPtr; @@ -939,7 +939,8 @@ typedef Bool xf86ProbeProc (DriverPtr, int); typedef Bool xf86PreInitProc (ScrnInfoPtr, int); -typedef Bool xf86ScreenInitProc (int, ScreenPtr, int, char**); +typedef Bool xf86ScreenInitProc (int, ScreenPtr, const int, + const char**); typedef Bool xf86SwitchModeProc (int, DisplayModePtr, int); typedef void xf86AdjustFrameProc (int, int, int, int); typedef Bool xf86EnterVTProc (int, int); Index: xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c diff -u xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c:1.12 xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c:1.13 --- xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c:1.12 Fri Oct 14 11:16:35 2005 +++ xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c Sun Dec 10 10:58:28 2006 @@ -3,7 +3,7 @@ * * Copyright 1999 by Andrew C Aitchison */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c,v 1.12 2005/10/14 15:16:35 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c,v 1.13 2006/12/10 15:58:28 tsi Exp $ */ #include "misc.h" #include "xf86.h" @@ -134,7 +134,7 @@ xf86RegisterRootWindowProperty, pScrnInfo->scrnIndex, VDIFAtom, XA_STRING, 8, - strlen(VDIF_DUMMY_STRING), VDIF_DUMMY_STRING + (int)strlen(VDIF_DUMMY_STRING), VDIF_DUMMY_STRING ); #endif Index: xc/programs/Xserver/hw/xfree86/doc/BUILD diff -u xc/programs/Xserver/hw/xfree86/doc/BUILD:3.35 xc/programs/Xserver/hw/xfree86/doc/BUILD:3.36 --- xc/programs/Xserver/hw/xfree86/doc/BUILD:3.35 Tue Apr 11 21:50:31 2006 +++ xc/programs/Xserver/hw/xfree86/doc/BUILD Fri Aug 3 22:16:06 2007 @@ -17,69 +17,69 @@ We recommend using gcc to build XFree86, but XFree86 generally builds with the native compiler for each OS platform. -1. How to get the XFree86 4.6.0 source +1. How to get the XFree86 4.7.0 source -The recommended way of getting the XFree86 4.6.0 source is to obtain it +The recommended way of getting the XFree86 4.7.0 source is to obtain it directly from the XFree86 CVS repository. There are several ways of doing that, and they are described at our CVS web page . -The CVS tag for this release is "xf-4_6_0". The tag for the maintenance -branch for this release is "xf-4_6-branch". +The CVS tag for this release is "xf-4_7_0". The tag for the maintenance +branch for this release is "xf-4_7-branch". -Another method of getting the XFree86 4.6.0 source is to either download the -4.6.0 source tarballs from the XFree86 ftp site. The procedure for this is +Another method of getting the XFree86 4.7.0 source is to either download the +4.7.0 source tarballs from the XFree86 ftp site. The procedure for this is as follows: - o The XFree86 4.6.0 source is contained in the files: + o The XFree86 4.7.0 source is contained in the files: - XFree86-4.6.0-src-1.tgz + XFree86-4.7.0-src-1.tgz - XFree86-4.6.0-src-2.tgz + XFree86-4.7.0-src-2.tgz - XFree86-4.6.0-src-3.tgz + XFree86-4.7.0-src-3.tgz - XFree86-4.6.0-src-4.tgz + XFree86-4.7.0-src-4.tgz - XFree86-4.6.0-src-5.tgz + XFree86-4.7.0-src-5.tgz - XFree86-4.6.0-src-6.tgz + XFree86-4.7.0-src-6.tgz - XFree86-4.6.0-src-7.tgz + XFree86-4.7.0-src-7.tgz - These can be found at ftp://ftp.xfree86.org/pub/XFree86/4.6.0/source/. - XFree86-4.6.0-src-4.tgz and XFree86-4.6.0-src-5.tgz contains the fonts. - XFree86-4.6.0-src-6.tgz contains the documentation source. - XFree86-4.6.0-src-7.tgz contains the hardcopy documentation. - XFree86-4.6.0-src-1.tgz, XFree86-4.6.0-src-2.tgz and - XFree86-4.6.0-src-3.tgz contains everything else. + These can be found at ftp://ftp.xfree86.org/pub/XFree86/4.7.0/source/. + XFree86-4.7.0-src-4.tgz and XFree86-4.7.0-src-5.tgz contains the fonts. + XFree86-4.7.0-src-6.tgz contains the documentation source. + XFree86-4.7.0-src-7.tgz contains the hardcopy documentation. + XFree86-4.7.0-src-1.tgz, XFree86-4.7.0-src-2.tgz and + XFree86-4.7.0-src-3.tgz contains everything else. If you do not need either the documentation or the fonts, then you need - only XFree86-4.6.0-src-1.tgz, XFree86-4.6.0-src-2.tgz and - XFree86-4.6.0-src-3.tgz. + only XFree86-4.7.0-src-1.tgz, XFree86-4.7.0-src-2.tgz and + XFree86-4.7.0-src-3.tgz. o Extract each of these files by running the following from a directory on a filesystem containing enough space (the full source requires around 270MB, with a similar amount being required for the compiled binaries): - gzip -d < XFree86-4.6.0-src-1.tgz | tar vxf - + gzip -d < XFree86-4.7.0-src-1.tgz | tar vxf - - gzip -d < XFree86-4.6.0-src-2.tgz | tar vxf - + gzip -d < XFree86-4.7.0-src-2.tgz | tar vxf - - gzip -d < XFree86-4.6.0-src-3.tgz | tar vxf - + gzip -d < XFree86-4.7.0-src-3.tgz | tar vxf - - gzip -d < XFree86-4.6.0-src-4.tgz | tar vxf - + gzip -d < XFree86-4.7.0-src-4.tgz | tar vxf - - gzip -d < XFree86-4.6.0-src-5.tgz | tar vxf - + gzip -d < XFree86-4.7.0-src-5.tgz | tar vxf - - gzip -d < XFree86-4.6.0-src-6.tgz | tar vxf - + gzip -d < XFree86-4.7.0-src-6.tgz | tar vxf - - gzip -d < XFree86-4.6.0-src-7.tgz | tar vxf - + gzip -d < XFree86-4.7.0-src-7.tgz | tar vxf - -Alternatively, if you already have a pristine copy of the XFree86 4.5.0 +Alternatively, if you already have a pristine copy of the XFree86 4.6.0 source, you can download patches from -ftp://ftp.xfree86.org/pub/XFree86/4.6.0/patches/ that will allow you to con- -vert it to 4.6.0. Information about which patch files to download and how to +ftp://ftp.xfree86.org/pub/XFree86/4.7.0/patches/ that will allow you to con- +vert it to 4.7.0. Information about which patch files to download and how to apply them can be found in the "How to get XFree86" section of the README for this release. @@ -102,8 +102,8 @@ sarily. Before making too many modifications, check the configuration param- eters specified in the xc/config/cf/README file. -If you are using just the XFree86-4.6.0-src-1.tgz, XFree86-4.6.0-src-2.tgz -and XFree86-4.6.0-src-3.tgz parts of the source dist, you will need to define +If you are using just the XFree86-4.7.0-src-1.tgz, XFree86-4.7.0-src-2.tgz +and XFree86-4.7.0-src-3.tgz parts of the source dist, you will need to define BuildFonts to NO. 3. Using a shadow directory of symbolic links for the build @@ -284,4 +284,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/BUILD.sgml,v 3.20 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/BUILD,v 3.35 2006/04/12 01:50:31 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/BUILD,v 3.36 2007/08/04 02:16:06 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/Install diff -u xc/programs/Xserver/hw/xfree86/doc/Install:1.39 xc/programs/Xserver/hw/xfree86/doc/Install:1.40 --- xc/programs/Xserver/hw/xfree86/doc/Install:1.39 Tue Apr 11 21:50:31 2006 +++ xc/programs/Xserver/hw/xfree86/doc/Install Fri Aug 3 22:16:07 2007 @@ -1,4 +1,4 @@ - Installation Details for XFree86® 4.6.0 + Installation Details for XFree86® 4.7.0 The XFree86 Project, Inc @@ -22,11 +22,11 @@ XFree86 CVS repository's "utils" module, and from our ftp site .) -2. Downloading the XFree86 4.6.0 binaries +2. Downloading the XFree86 4.7.0 binaries -We provide XFree86 4.6.0 binaries for a range of operating systems at our ftp -site and our web site -. Often during +We provide XFree86 4.7.0 binaries for a range of operating systems at our ftp +site and our web site +. Often during releases our site is heavily loaded. Instead of downloading directly from us we recommend that instead you use one of our mirror sites. @@ -71,9 +71,9 @@ that your target will not be be available for this release. This is likeliest possibility if you are looking more than about two weeks after the release date. Check here - for information about + for information about updates to our binary distributions, and here - for errata related to + for errata related to this release. Assuming that you have run the Xinstall.sh script and found the binary dis- @@ -138,9 +138,9 @@ If you miss some and want to install them later, go to the Manual Installa- tion (section 4., page 1) section. -3. Installing XFree86 4.6.0 using the Xinstall.sh script +3. Installing XFree86 4.7.0 using the Xinstall.sh script -We strongly recommend that our XFree86 4.6.0 binaries be installed using the +We strongly recommend that our XFree86 4.7.0 binaries be installed using the Xinstall.sh script we provide. There are a lot of steps in the manual installation process, and those steps can vary according to the platform and hardware setup. There is a description of the manual installation process @@ -284,9 +284,9 @@ After the X server configuration is done, it may be advisable to reboot, especially if you run xdm (or equivalent) or the font server (xfs). -4. Installing XFree86 4.6.0 manually +4. Installing XFree86 4.7.0 manually -This section contains information about manually installing the XFree86 4.6.0 +This section contains information about manually installing the XFree86 4.7.0 binary distributions. You should only use this method if you know what you're doing. The information here covers some common cases, but not every possible case. It also may not be complete or up to date. Use at your own @@ -396,4 +396,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml,v 1.22 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/Install,v 1.39 2006/04/12 01:50:31 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/Install,v 1.40 2007/08/04 02:16:07 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/LICENSE diff -u xc/programs/Xserver/hw/xfree86/doc/LICENSE:1.49 xc/programs/Xserver/hw/xfree86/doc/LICENSE:1.52 --- xc/programs/Xserver/hw/xfree86/doc/LICENSE:1.49 Tue Apr 18 13:16:36 2006 +++ xc/programs/Xserver/hw/xfree86/doc/LICENSE Fri Aug 3 22:16:07 2007 @@ -49,14 +49,14 @@ 3.1 Open Source -We believe that all of the code in this release (4.6.0) of XFree86 meet the +We believe that all of the code in this release (4.7.0) of XFree86 meet the requirements of the Open Source Definition , as maintained by the Open Source Initiative (OSI) . 3.2 Free Software -We believe that most of the code in this release (4.6.0) of XFree86 meets the +We believe that most of the code in this release (4.7.0) of XFree86 meets the requirements of the Free Software definition as defined by the Free Software Foundation (FSF) . @@ -188,7 +188,7 @@ Copyright (C) 1999-2003 by Peter Kunzmann, Citron GmbH, Germany. -Copyright (C) 1994 through 2006 by Marc Aurele La France (TSI @ UQV), +Copyright (C) 1994 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org Copyright (C) 1996 by Steven Lang @@ -769,9 +769,6 @@ Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved. -This code is derived from software contributed to The NetBSD Foundation by -Ben Collver - Redistribution and use in source and binary forms, with or without modifica- tion, are permitted provided that the following conditions are met: @@ -782,11 +779,7 @@ notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - 3. All advertising materials mentioning features or use of this software - must display the following acknowledgement: This product includes soft- - ware developed by the NetBSD Foundation, Inc. and its contributors. - - 4. Neither the name of The NetBSD Foundation nor the names of its con- + 3. Neither the name of The NetBSD Foundation nor the names of its con- tributors may be used to endorse or promote products derived from this software without specific prior written permission. @@ -1638,7 +1631,7 @@ authorization from the Gnome Foundation or Bitstream Inc., respectively. For further information, contact: fonts at gnome dot org. - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.43 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.45 tsi Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/LICENSE,v 1.49 2006/04/18 17:16:36 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/LICENSE,v 1.52 2007/08/04 02:16:07 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README diff -u xc/programs/Xserver/hw/xfree86/doc/README:3.152 xc/programs/Xserver/hw/xfree86/doc/README:3.153 --- xc/programs/Xserver/hw/xfree86/doc/README:3.152 Tue Apr 11 21:50:31 2006 +++ xc/programs/Xserver/hw/xfree86/doc/README Fri Aug 3 22:16:07 2007 @@ -1,4 +1,4 @@ - README for XFree86® 4.6.0 + README for XFree86® 4.7.0 The XFree86 Project, Inc @@ -11,20 +11,20 @@ Linux, FreeBSD, NetBSD, OpenBSD and Solaris) on Intel and other platforms. This version is compatible with X11R6.6. -1. What is XFree86 4.6.0? +1. What is XFree86 4.7.0? -XFree86 4.6.0 is the ninth full release in the XFree86 4.x series. +XFree86 4.7.0 is the tenth full release in the XFree86 4.x series. XFree86 4.x is the current XFree86 release series. The first release in this series was in early 2000. The core of XFree86 4.x is a modular X server. -The 4.6.0 version is a new release that includes additional hardware support, +The 4.7.0 version is a new release that includes additional hardware support, functional enhancements and bug fixes. Specific release enhancements can be viewed in the Release Notes. -Most modern PC video hardware is supported in XFree86 4.6.0, and most PC +Most modern PC video hardware is supported in XFree86 4.7.0, and most PC video hardware that isn't supported explicitly can be used with the "vesa" driver. The Release Notes has a table showing the drivers provided with -XFree86 4.6.0, and links to related documentation. +XFree86 4.7.0, and links to related documentation. XFree86® is produced by The XFree86 Project, Inc through the work of a group of volunteer independent developers. The XFree86 Project is a non-commercial @@ -61,7 +61,7 @@ 3. Pointers to additional information The documentation for this release can be found online at the XFree86 web -site . Documentation for the latest +site . Documentation for the latest release version can always be found here , and documentation for the latest pre-release snapshot can be found here . @@ -116,23 +116,23 @@ Current information about the XFree86 development process can be found at our web site . -6. How to get XFree86 4.6.0 +6. How to get XFree86 4.7.0 -XFree86 4.6.0 can be found at the XFree86 ftp server -. Information about obtaining +XFree86 4.7.0 can be found at the XFree86 ftp server +. Information about obtaining and installing binary distributions of this release can be found in the Installation Document. Information about obtaining the release in source form is given below. -The source for version 4.6.0 is split into seven tarballs: +The source for version 4.7.0 is split into seven tarballs: - XFree86-4.6.0-src-1.tgz - XFree86-4.6.0-src-2.tgz - XFree86-4.6.0-src-3.tgz - XFree86-4.6.0-src-4.tgz - XFree86-4.6.0-src-5.tgz - XFree86-4.6.0-src-6.tgz - XFree86-4.6.0-src-7.tgz + XFree86-4.7.0-src-1.tgz + XFree86-4.7.0-src-2.tgz + XFree86-4.7.0-src-3.tgz + XFree86-4.7.0-src-4.tgz + XFree86-4.7.0-src-5.tgz + XFree86-4.7.0-src-6.tgz + XFree86-4.7.0-src-7.tgz The first three contain everything except the fonts and general X11 documen- tation. Those three are sufficient for building XFree86 if you already have @@ -140,31 +140,31 @@ the source for the general X11 documentation. The seventh contains the gen- eral X11 documentation in hardcopy format. -A source patch relative to version 4.5.0 is also available. Because of its +A source patch relative to version 4.6.0 is also available. Because of its size, it is split into four parts. The patch files are: - XFree86-4.5.0-4.6.0.diff1.gz - XFree86-4.5.0-4.6.0.diff2.gz - XFree86-4.5.0-4.6.0.diff3.gz - XFree86-4.5.0-4.6.0.diff4.gz + XFree86-4.6.0-4.7.0.diff1.gz + XFree86-4.6.0-4.7.0.diff2.gz + XFree86-4.6.0-4.7.0.diff3.gz + XFree86-4.6.0-4.7.0.diff4.gz There is also a tarball and a cleanup script that handle files that have com- ponents that can't be included in a diff. These are: - XFree86-4.5.0-4.6.0-diff0.tgz - XFree86-4.5.0-4.6.0-cleanup.sh + XFree86-4.6.0-4.7.0-diff0.tgz + XFree86-4.6.0-4.7.0-cleanup.sh -These patches should be applied to a clean 4.5.0 source tree, working from +These patches should be applied to a clean 4.6.0 source tree, working from the directory containing the xc/ directory. The patches should be applied by running: - gzip -d < XFree86-4.5.0-4.6.0.diff1.gz | patch -p0 -E - gzip -d < XFree86-4.5.0-4.6.0.diff2.gz | patch -p0 -E - gzip -d < XFree86-4.5.0-4.6.0.diff3.gz | patch -p0 -E - gzip -d < XFree86-4.5.0-4.6.0.diff4.gz | patch -p0 -E + gzip -d < XFree86-4.6.0-4.7.0.diff1.gz | patch -p0 -E + gzip -d < XFree86-4.6.0-4.7.0.diff2.gz | patch -p0 -E + gzip -d < XFree86-4.6.0-4.7.0.diff3.gz | patch -p0 -E + gzip -d < XFree86-4.6.0-4.7.0.diff4.gz | patch -p0 -E - sh XFree86-4.5.0-4.6.0-cleanup.sh - gzip -d < XFree86-4.5.0-4.6.0-diff0.tgz | tar vxf - + sh XFree86-4.6.0-4.7.0-cleanup.sh + gzip -d < XFree86-4.6.0-4.7.0-diff0.tgz | tar vxf - To format the XFree86 documentation use the latest version of our doctools package available from the XFree86 CVS repository's "doctools" module, and @@ -177,8 +177,8 @@ on our web site. It's also possible to browse the XFree86 CVS repository at our CVSWeb server . The CVS tag for this version is -"xf-4_6_0". The CVS tag for the stable branch for this release is -"xf-4_6-branch". To check out the latest development version, don't specify +"xf-4_7_0". The CVS tag for the stable branch for this release is +"xf-4_7-branch". To check out the latest development version, don't specify any tag. 7. Reporting Bugs @@ -203,4 +203,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.149 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README,v 3.152 2006/04/12 01:50:31 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README,v 3.153 2007/08/04 02:16:07 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.DECtga diff -u xc/programs/Xserver/hw/xfree86/doc/README.DECtga:3.37 xc/programs/Xserver/hw/xfree86/doc/README.DECtga:3.38 --- xc/programs/Xserver/hw/xfree86/doc/README.DECtga:3.37 Tue Apr 11 21:50:32 2006 +++ xc/programs/Xserver/hw/xfree86/doc/README.DECtga Fri Aug 3 22:16:07 2007 @@ -6,7 +6,7 @@ 1. DEC 21030 - o The DEC 21030 is supported by XFree86 4.6.0. The driver is now par- + o The DEC 21030 is supported by XFree86 4.7.0. The driver is now par- tially accelerated. The built-in graphics on the Multia is supported in 8-plane mode, and PCI cards with 8 or 16 MB framebuffers are supported in 24-plane mode. TGA2 (aka PowerStorm 3D30/4D20) cards are not cur- @@ -65,4 +65,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml,v 3.9 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DECtga,v 3.37 2006/04/12 01:50:32 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DECtga,v 3.38 2007/08/04 02:16:07 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.Darwin diff -u xc/programs/Xserver/hw/xfree86/doc/README.Darwin:1.27 xc/programs/Xserver/hw/xfree86/doc/README.Darwin:1.28 --- xc/programs/Xserver/hw/xfree86/doc/README.Darwin:1.27 Tue Apr 11 21:50:32 2006 +++ xc/programs/Xserver/hw/xfree86/doc/README.Darwin Fri Aug 3 22:16:07 2007 @@ -66,7 +66,7 @@ If you don't feel the need to live on the cutting edge, you can save some time and effort by using the precompiled binaries available on the XFree86 -FTP server at . Fol- +FTP server at . Fol- low the instructions in the Install document to install it. This will create three new directory trees, /usr/X11R6, /etc/X11 and /etc/fonts. On Mac OS X the Xquartz.tgz tarball is required in addition to the other tarballs @@ -211,4 +211,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Darwin.sgml,v 1.11 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Darwin,v 1.27 2006/04/12 01:50:32 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Darwin,v 1.28 2007/08/04 02:16:07 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.LynxOS diff -u xc/programs/Xserver/hw/xfree86/doc/README.LynxOS:3.49 xc/programs/Xserver/hw/xfree86/doc/README.LynxOS:3.50 --- xc/programs/Xserver/hw/xfree86/doc/README.LynxOS:3.49 Tue Apr 11 21:50:32 2006 +++ xc/programs/Xserver/hw/xfree86/doc/README.LynxOS Fri Aug 3 22:16:07 2007 @@ -1,4 +1,4 @@ - README for XFree86® 4.6.0 on LynxOS + README for XFree86® 4.7.0 on LynxOS Thomas Mueller @@ -13,16 +13,16 @@ See the Copyright Notice. -The sources for XFree86 4.6.0 are available by anonymous ftp from: +The sources for XFree86 4.7.0 are available by anonymous ftp from: -ftp://ftp.XFree86.org/pub/XFree86/4.6.0 +ftp://ftp.XFree86.org/pub/XFree86/4.7.0 Binaries of XFree86 for LynxOS x86 are available from: -ftp://ftp.XFree86.org/pub/XFree86/4.6.0/binaries/LynxOS +ftp://ftp.XFree86.org/pub/XFree86/4.7.0/binaries/LynxOS The binaries on the FTP site were built on the latest released LynxOS version -at the time XFree86 4.6.0 was released. In this case it is `LynxOS x86 +at the time XFree86 4.7.0 was released. In this case it is `LynxOS x86 3.0.1'. Because of changes made to the object format they don't run on LynxOS versions earlier than 3.0.0. @@ -34,7 +34,7 @@ 3.1.0' support has to be considered to be in `alpha state'. Initial tests were performed on LynxOS x86 only! -XFree86 4.6.0 supports LynxOS on the x86 and on the PowerPC platform. X +XFree86 4.7.0 supports LynxOS on the x86 and on the PowerPC platform. X servers are currently available only on the x86 platform. The X server may work with some PowerPC platforms supported by LynxOS though this has not (yet) been thoroughly tested. @@ -160,7 +160,7 @@ 3.5 X Server debug diagnostics output and other VT peculiarities Output made by the XFree86 X on its stdout or stderr will be lost after the -server switches to graphics mode. The XFree86 4.6.0 server stores its output +server switches to graphics mode. The XFree86 4.7.0 server stores its output in /usr/adm/XFree86.n.log (where n is the screen number). When the X server is running output made to other consoles will be lost. @@ -263,4 +263,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml,v 3.22 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.LynxOS,v 3.49 2006/04/12 01:50:32 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.LynxOS,v 3.50 2007/08/04 02:16:07 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.NetBSD diff -u xc/programs/Xserver/hw/xfree86/doc/README.NetBSD:3.101 xc/programs/Xserver/hw/xfree86/doc/README.NetBSD:3.102 --- xc/programs/Xserver/hw/xfree86/doc/README.NetBSD:3.101 Tue Apr 11 21:50:32 2006 +++ xc/programs/Xserver/hw/xfree86/doc/README.NetBSD Fri Aug 3 22:16:07 2007 @@ -1,4 +1,4 @@ - README for XFree86® 4.6.0 on NetBSD + README for XFree86® 4.7.0 on NetBSD Rich Murphey, David Dawes, Marc Wandschneider, Mark Weaver, Matthieu Herrb @@ -15,10 +15,10 @@ The sources for XFree86 are available by anonymous ftp from: -ftp://ftp.XFree86.org/pub/XFree86/4.6.0 +ftp://ftp.XFree86.org/pub/XFree86/4.7.0 Binaries for NetBSD 1.5 and later are available from: -ftp://ftp.XFree86.org/pub/XFree86/4.6.0/binaries/NetBSD +ftp://ftp.XFree86.org/pub/XFree86/4.7.0/binaries/NetBSD XFree86 also builds on other NetBSD architectures. See section Building on other architectures (section 8.4, page 1) for details. @@ -32,7 +32,7 @@ 3. New OS dependent features -See the Release Notes for non-OS dependent new features in XFree86 4.6.0. +See the Release Notes for non-OS dependent new features in XFree86 4.7.0. 3.1 New OS dependent features in 4.2.0 @@ -110,7 +110,7 @@ 5.1 About mouse configuration -XFree86 4.6.0 has support for the mouse driver included in the wscons console +XFree86 4.7.0 has support for the mouse driver included in the wscons console driver introduced by NetBSD 1.4. Specify ``wsmouse'' as the protocol and ``/dev/wsmouse0'' as the device in /etc/X11/XF86Config if you're using NetBSD 1.4 or later with a PS/2 mouse. @@ -228,14 +228,14 @@ access to the /dev/mem device when in multi-users mode. But XFree86 servers can take advantage (or require) linear access to the display memory. -Most XFree86 4.6.0 card drivers require linear memory access. There are two +Most XFree86 4.7.0 card drivers require linear memory access. There are two ways to allow XFree86 to access linear memory: The first way is to disable the kernel security feature by adding ``option INSECURE'' in the kernel configuration file and build a new kernel. The second way is to install the aperture driver, included in source form in -xc/programs/Xserver/hw/xfree86/etc/apNetBSD.shar in the XFree86 4.6.0 source +xc/programs/Xserver/hw/xfree86/etc/apNetBSD.shar in the XFree86 4.7.0 source distribution. Unpack it in a new directory of your choice by running: sh apNetBSD.shar @@ -380,4 +380,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml,v 3.70 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.NetBSD,v 3.101 2006/04/12 01:50:32 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.NetBSD,v 3.102 2007/08/04 02:16:07 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD diff -u xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD:1.56 xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD:1.57 --- xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD:1.56 Tue Apr 11 21:50:32 2006 +++ xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD Fri Aug 3 22:16:07 2007 @@ -1,4 +1,4 @@ - README for XFree86® 4.6.0 on OpenBSD + README for XFree86® 4.7.0 on OpenBSD Matthieu Herrb @@ -13,13 +13,13 @@ See the Copyright Notice. -The sources for XFree86 4.6.0 are available by anonymous ftp from: +The sources for XFree86 4.7.0 are available by anonymous ftp from: -ftp://ftp.XFree86.org/pub/XFree86/4.6.0 +ftp://ftp.XFree86.org/pub/XFree86/4.7.0 Binaries for OpenBSD/i386 3.4 and later are available from: -ftp://ftp.XFree86.org/pub/XFree86/4.6.0/binaries/OpenBSD +ftp://ftp.XFree86.org/pub/XFree86/4.7.0/binaries/OpenBSD XFree86 also builds on other OpenBSD architectures. See section Building on other architectures (section 8., page 1) for details. @@ -31,7 +31,7 @@ 3. New OS dependent features -See the Release Notes for non-OS dependent new features in XFree86 4.6.0. +See the Release Notes for non-OS dependent new features in XFree86 4.7.0. 3.1 New OS related features in 4.4 @@ -144,7 +144,7 @@ 5.1 About mouse configuration -XFree86 4.6.0 has support for the mouse driver included in the new wscons +XFree86 4.7.0 has support for the mouse driver included in the new wscons console driver introduced by OpenBSD-2.9. Specify ``wsmouse'' as the proto- col and ``/dev/wsmouse0'' as the device in /etc/X11/XF86Config if you're using OpenBSD-2.9 or later with a PS/2 or USB mouse. @@ -307,4 +307,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml,v 1.36 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD,v 1.56 2006/04/12 01:50:32 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD,v 1.57 2007/08/04 02:16:07 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.chips diff -u xc/programs/Xserver/hw/xfree86/doc/README.chips:3.59 xc/programs/Xserver/hw/xfree86/doc/README.chips:3.60 --- xc/programs/Xserver/hw/xfree86/doc/README.chips:3.59 Tue Apr 11 21:50:32 2006 +++ xc/programs/Xserver/hw/xfree86/doc/README.chips Fri Aug 3 22:16:07 2007 @@ -6,7 +6,7 @@ 1. Introduction -With the release of XFree86 version 4.6.0, the Chips and Technologies driver +With the release of XFree86 version 4.7.0, the Chips and Technologies driver has been extensively rewritten and contains many new features. This driver must be considered work in progress, and those users wanting stability are encouraged to use the older XFree86 3.3.x versions. However this version of @@ -976,7 +976,7 @@ startx -- -depth 24 -fbbpp 32 8-8-8 RGB truecolor - however as XFree86 version 4.6.0 allows 32bpp pixmaps to be used + however as XFree86 version 4.7.0 allows 32bpp pixmaps to be used with framebuffers operating in 24bpp, this mode of operating will cost performance for no gain in functionality. @@ -1050,4 +1050,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml,v 3.39 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.chips,v 3.59 2006/04/12 01:50:32 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.chips,v 3.60 2007/08/04 02:16:07 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.mouse diff -u xc/programs/Xserver/hw/xfree86/doc/README.mouse:1.35 xc/programs/Xserver/hw/xfree86/doc/README.mouse:1.36 --- xc/programs/Xserver/hw/xfree86/doc/README.mouse:1.35 Tue Apr 11 21:50:32 2006 +++ xc/programs/Xserver/hw/xfree86/doc/README.mouse Fri Aug 3 22:16:07 2007 @@ -6,7 +6,7 @@ 1. Introduction -This document describes mouse support in XFree86 4.6.0. +This document describes mouse support in XFree86 4.7.0. Mouse configuration has often been a mysterious task for novice users. With XFree86 4.5.0 and later, mouse configuration is automatic for most common @@ -1001,4 +1001,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml,v 1.16 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.mouse,v 1.35 2006/04/12 01:50:32 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.mouse,v 1.36 2007/08/04 02:16:07 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.s3virge diff -u xc/programs/Xserver/hw/xfree86/doc/README.s3virge:1.28 xc/programs/Xserver/hw/xfree86/doc/README.s3virge:1.29 --- xc/programs/Xserver/hw/xfree86/doc/README.s3virge:1.28 Tue Apr 11 21:50:32 2006 +++ xc/programs/Xserver/hw/xfree86/doc/README.s3virge Fri Aug 3 22:16:07 2007 @@ -6,7 +6,7 @@ 1. Supported hardware -The s3virge driver in XFree86 4.6.0 supports the S3 ViRGE, ViRGE DX, GX, GX2, +The s3virge driver in XFree86 4.7.0 supports the S3 ViRGE, ViRGE DX, GX, GX2, MX, MX+, and VX chipsets. It also supports Trio3D and Trio3D/2x chips. A majority of testing is done on ViRGE DX chips, making them the most stable to date. This release has added support for doublescan modes on DX. @@ -63,4 +63,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/s3virge.sgml,v 1.7 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.s3virge,v 1.28 2006/04/12 01:50:32 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.s3virge,v 1.29 2007/08/04 02:16:07 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/RELNOTES diff -u xc/programs/Xserver/hw/xfree86/doc/RELNOTES:3.152 xc/programs/Xserver/hw/xfree86/doc/RELNOTES:3.155 --- xc/programs/Xserver/hw/xfree86/doc/RELNOTES:3.152 Fri Apr 28 23:38:00 2006 +++ xc/programs/Xserver/hw/xfree86/doc/RELNOTES Sun Aug 12 20:57:47 2007 @@ -1,18 +1,18 @@ - Release Notes for XFree86® 4.6.0 + Release Notes for XFree86® 4.7.0 The XFree86 Project, Inc - April 2006 + August 2007 Abstract This document contains information about the various features and - their current status in the XFree86 4.6.0 release. + their current status in the XFree86 4.7.0 release. 1. Introduction to the 4.x Release Series XFree86 4.0 was the first official release of the XFree86 4 series. The cur- -rent release (4.6.0) is the latest in that series. The XFree86 4.x series +rent release (4.7.0) is the latest in that series. The XFree86 4.x series represents a significant redesign of the XFree86 X server, with a strong focus on modularity and configurability. @@ -20,14 +20,14 @@ Automatic configuration was introduced with XFree86 4.4.0 which makes it pos- sible to start XFree86 without first creating a configuration file. This has -been further improved in XFree86 4.5.0 and 4.6.0. If you experienced any -problems with automatic configuration in a previous release, it is worth try- -ing it again with this release. - -While the initial automatic configuration support was originally targeted ust -for Linux and the FreeBSD variants, as of 4.5.0 it also includes Solaris, -NetBSD and OpenBSD support. Full support for automatic configuration is -planned for other platforms in future releases. +been further improved in subsequent releases. If you experienced any prob- +lems with automatic configuration in a previous release, it is worth trying +it again with this release. + +While the initial automatic configuration support was originally targeted +just for Linux and the FreeBSD variants, as of 4.5.0 it also includes +Solaris, NetBSD and OpenBSD support. Full support for automatic configura- +tion is planned for other platforms in future releases. If you are running Linux, FreeBSD, NetBSD, OpenBSD, or Solaris, try Auto Con- figuration by running: @@ -43,8 +43,8 @@ XFree86 -appendauto -If you using a platform that is not currently supported, then you must try -one of the older methods for getting started like xf86cfg", which is our +If you are using a platform that is not currently supported, then you must +try one of the older methods for getting started like "xf86cfg", which is our graphical configuration tool. It also has a text mode interface that an be used to create an initial configuration file and customise existing configu- rations. @@ -72,13 +72,13 @@ through the Installation Document as it can point out which particular binary you should download. -The next section describes what is new in the latest version (4.6.0) compared -with the previous full release (4.5.0). There are many new features in this +The next section describes what is new in the latest version (4.7.0) compared +with the previous full release (4.6.0). There are many new features in this release and we unfortunately do not have enough space to cover them all here. -3. Summary of new features in 4.6.0. +3. Summary of new features in 4.7.0. -This is a sampling of the new features in XFree86 4.6.0. A more complete +This is a sampling of the new features in XFree86 4.7.0. A more complete list of changes can be found in the CHANGELOG that is part of the XFree86 source tree. It can also be viewed online at our CVSweb server , CAN-2005-2495 - ). + o CVE-2006-0747. -3.2 Video Driver Enhancements - - o Remove cfb support from the i740, nsc, s3virge, siliconmotion and via - drivers. - -3.2.1 aspeed - - o A new driver for ASPEED Technologies' AST2000 graphics chips. - -3.2.2 ati - - o Reinstate support for all ATI adapters on all architectures supported by - the XFree86 common layer. - - o Restore accuracy of atimisc's clock probe despite certain I/O errors. - - o Change the atimisc driver on big-endian systems to allow depth 24 even - if the big-endian aperture is not available, by swapping RGB masks. - - o Fix an ATI driver probe crash. - - o Workaround for screen-to-screen copy corruption in second-generation - integrated controllers. - - o Improve accuracy of atmisc's calculations that are based on a 29.5 MHz - reference clock. - - o Chrontel 8398 related changes to the Mach64 support. - - o Fix one cause of video memory corruption when using XAA with second gen- - eration integrated Mach64 controllers. - -3.2.3 glint - - o Fix the size of the DAC registers storage for pm2v and pm3 chipsets. + o CVE-2006-1861. -3.2.4 i740 + o CVE-2006-2661. - o Save and restore more of the mode on server entry. + o CVE-2006-6101. -3.2.5 i810 + o CVE-2006-6102. - o Make sure the DDC-probed parameters are applied before modes are - selected. + o CVE-2006-6103. - o Fix some bad alignment problems when allocating memory from the end of - AGP space. + o CVE-2007-1003. - o Adjust the display width according to the VESA BIOS scanline require- - ments. + o CVE-2007-1351. - o Add support for the Intel E7221 server chipset. + o CVE-2007-1352. - o Improve display switching support for mobile chipsets using the Fn+F? - combination keys. + o CVE-2007-1667. - o Add DirectColor support for the i830 and later. + o CVE-2007-2754. - o Add gamma correction support for the i830 and later. +In addition, a number of potential integer overflow problems in the Type 1 +font rendering code have been corrected. - o Add rotation support for the i830 and later. - - o Improve refresh rate selection for custom modelines. - - o Add support for the 945G and 945GM. - - o Support custom video modes in the video BIOS, when available. - - o Fix some offset, pitch, and overlay scaler size problems with the video - overlay. This solves various spontaneous lockups. - - o Fix text restoration when display switching has been activated. - - o Add support to check the built-in VESA mode list. - - o Fix XVideo when operating in one line mode and video is pushed off the - top of the screen, and fix some XVideo skew problems at certain resolu- - tions. +3.2 Video Driver Enhancements - o Sync the accelerator before calling AdjustFrame to avoid lockups. +3.2.1 ati, atimisc, r128 and radeon - o Fix a lockup when spend and resume when playing video (shutdown the - overlay on LeaveVT). + o Fix bug that caused the version check between the ati and atimisc mod- + ules to fail. - o Support 1920x1088 for HDTV movies using a new option (LinearAlloc) to - add more memory for the video overlay. + o The atimisc module's saving and restoring of the mode on server entry + has been made more reliable on 64-bit systems. - o Add ACPI hotkey switching support. + o Fix bug that prevented detection of non-PCI adapters on systems that do + not provide accurate PCI resource sizes. -3.2.6 mga + o Fix the radeon driver's saving and restoring of the mode on server + entry. - o Reduce the Mystique's SYSCLK from 197 MHz to 166 MHz, allowing the - higher clock to still be used when the "OverclockMem" option is acti- - vated. This fixes the instability seen on some Mystique cards, and - removes the need for the workaround in previous releases. +3.2.2 chips - o Revert the HALlib MGASetDisplayStart interface back to HALSetDis- - playStart. + o Fix some of this driver's endianness problems. - o Make 8+24 mode honour the default visual. +3.2.3 i128 -3.2.7 nv + o Resurrect support for Ti3026 RAMDACs found on the original I128 + adapters. Note that there are still issues with depth 8 visuals and + hardware cursors. - o Some of the panel DPMS support in 4.5.0 only works for TMDS, and caused - some panel blooming on some LVDS panels, so skip the DPMS panel code - when the panel is LVDS. +3.2.4 mga - o Add DPMS support for GeForce4 and newer laptops. + o Add support for Matrox MGA G200e SE adapters. - o Fix some console restore code for the NV11. + o Fix determination of the mode on server entry. Also, save and restore + it on VC switches. - o Workaround for 512MB video cards (can only map 256MB of it). +3.2.5 newport - o Fix a graphics acceleration hang that occurred on some NVIDIA GeForce - 6xxx cards. + o Add support for the DPMS extension. - o Fix a potential problem with pixmap cache corruption on GeForce 6xxx and - 7xxx parts. +3.2.6 nv o Add support for new hardware. -3.2.8 siliconmotion +3.2.7 pnozz - o Merge in support for SiliconMotion's SM501 controller. + o This accelerated driver supports the Weitek POWER 9100 SBUS adapters + found in some SPARC laptops. -3.2.9 suncg6 +3.2.8 sunbw2, suncg14, suncg3, sunleo, suntcx - o Add screen-to-screen copy, solid fill, and CPU-to-screen colour expan- - sion acceleration. + o These drivers, intended for various SPARC SBUS and UPA adapters, can now + blank and unblank the screen correctly. - o Map more of a Sun CG6's video memory for use by the pixmap cache. +3.2.9 sunffb -3.2.10 sunffb + o Prevent turning off the FPU on OpenBSD. - o Prevent turning off the FPU on NetBSD. - - o Fix build problems on NetBSD (global register usage declaration, and - increase stack usage). + o Fix bug that prevented use of this driver on SunOS and Solaris. o Workaround for VRAM corruption when unblanking FFB1 adapters. -3.2.11 tdfx - - o Add DDC2 support. - -3.2.12 trident - - o Do not wait for vertical retrace on PC98 systems. - - o Fix an offset problem in Xv for the Cyber9397 and later chipsets. - - o Add XGI (Trident) Volari XP5 support to the trident driver. - -3.2.13 via +3.2.10 trident - o Add a "ConnectedDevice" option to the via driver to force selection of - output devices. - -3.2.14 vmware - - o Implement a workaround in the generic int10 module to allow unaligned - I/O access specific to VMWare's second generation emulated adapter. - -3.2.15 xgi - - o A new driver for the Volari V3XT, V5, V8, Z7 chipsets. + o Resave the mode on server entry when switching back to the server's vir- + tual console. 3.3 Input Driver Enhancements -3.3.1 keyboard - - o Ignore KEY_UNUSED scancodes. - -3.3.2 mouse - - o Fix auto-detection of Sun mice on Linux/SPARC. - -3.3.3 magictouch +3.3.1 mouse - o Port of the magictouch driver to XFree86 4.x. + o Do not disable 3-button mouse emulation even when the mouse is found to + actually have a third button. This helps laptops, and the like, running + systems that combine a touchpad and an external mouse into one device. 3.4 XKB updates - o Replace the macintosh/fr map with the "fr_new" map, release 4. + o Add an XKB geometry for Dell Inspiron 8000 notebook keyboard. - o Fix a bug in XKB group adjustment. + o Add an XKB geometry for Enermax Aurora keyboards. - o Fix off-by-one errors in XKBMalloc.c. + o Add XKB keycodes for MacIntosh USB keyboards. - o Shrink tables instead of only growing them. + o Add XKB definitions for X860x0 keyboards. - o Fix various vmodmap vs modmap cut and paste bugs. + o Update Macintosh french keymap. - o Improve synthesized core X events for reporting XKB changes to XKB- - unaware clients. - - o Fix a setxkbmap segfault. - - o Add Eszett (ssharp) to the us_intl map. - - o Add dvorak_intl map. - - o Add a Khmer layout. - - o Add multimedia keysyms for the Inspiron 6000 laptop to the "inspiron" - set. + o Allow signed coordinates in XKB shape definitions. 3.5 X Server and Extension Updates - o Updates to the handling of the X server RGB database: - - o Ignore white space, dash, and underscore characters, as well as - case when matching colour names, and remove the unnecessary dupli- - cates in rgb.txt. - - o Allow a copy of the RGB database to be included into the X servers - as a fallback for when the rgb.txt file cannot be found. - - o Remove the (unused) support for DBM-compiled RGB database files. - - o Make the AMD64/x86_64 platform tests consistent throughout. - - o Rework the way that extension support is built into the servers to allow - for servers with different sets of extensions in the same build. This - includes minimising the number of pervasive extensions, and adding DIX - helpers for extensions such as Xinerama and XCSECURITY. - - o Modify the X server handling of SIGINT to provide a faster exit path - than SIGTERM, while ensuring that all hardware state gets restored. - This change is used by xinit as a cleaner alternative to using SIGKILL - for a slowly exiting server. - 3.5.1 Loader - o Add support for relocation type 10 for Alpha to the ELF loader. - - o Fix issues with Linux/SPARC 2.6 kernels. - - o Add loader infrastructure to implement inter-module version checks. - - o Use mprotect on NetBSD. - - o Fix support for NetBSD/arm. - - o Add support for R_SPARC_OLO10 relocations. - - o Make error messages for unsupported relocations more useful. - - o Improve the loader server's emulation of shmctl() calls. - - o Fix some problems with the a.out header macros used by the loader, which - was causing incorrect header interpretation for some a.out object types. - - o Major loader enhancements, including: - - o Per-module export symbol lists. + o Fixed support for R_ALPHA_GPRELHIGH relocations. - o Improved symbol hash. + o Added support for R_ALPHA_BRSGP relocations. - o A mechanism for specifying the scope of symbols. + o Fixed handling of archives on non-Linux SPARC. - o Keep track of relocations, and undo them when they become unre- - solved on module unload, and recalculate them when they change on - module load. + o Fixed support for R_SPARC_LO10 and R_SPARC_OLO10 relocations. - o Check relocations on each module load/unload, ensuring that func- - tion references that are unresolved at any time are always mapped - to the catch-all function, preventing calls into nowhere. + o Added support for most ELF SPARC relocation types. - o Efficient handling of invariant relocations. - - o Cleanup/update the memleak stack trace code, and print a stack - trace when an unresolved function is called or when XFree86 aborts. - - o Update the catch-all function to identify the unresolved function - that was called. - - o Read the XFree86 executable's symbol table in order to get the most - useful stack traces, and use dladdr() where available for identify- - ing shared library references. - - o Cleanup and unify debug messages for the loader components. - - o Use module-instance-specific referenced and required symbol lists. - - o Update drivers to make use of some of the new loader functionality, - including the instance-specific ref/req lists, and some unloading - of modules when they are no longer needed. - - o Don't build the coff loader on platforms that it doesn't support. - - o Use stronger typing of the module-visible instance-specific module - descriptor. - - o No longer disable xf86UnloadSubModule() since the loader now han- - dles unloads and reloads cleanly. - - o Do not defer unloading drivers when using autoconfig, since that is - not necessary with the loader updates. + o Added an emulation of rand(3) calls. 3.5.2 XFree86 core server and modules - o Modify the handling of preferred EDID modes to allow user-specified - modes that are larger than the preferred mode. - - o Refine VGA routing emulation through Sun's Simba P2P bridges. - - o Allow a static server's -configure to generate an XF86Config for the - loader server. - - o Fix a bug relating to the forwarding of 64-bit memory addresses by PCI- - to-PCI bridges on 32-bit systems. - - o Fix a bug in the decoding of I/O forwarding by Cardbus bridges. - o Update -configure to detect when wscons support should be used for the - keyboard on NetBSD. + keyboard on OpenBSD. - o Fix an endianness bug in the xf4bpp module. + o Added preliminary support for PCI domains on OpenBSD/sparc64. This cur- + rently requires a kernel change. - o Fix some of the endianness bugs in the vbe module. + o On the *BSD's, added support for absolute mouse position events and hor- + izontal scroll wheels. - o Remove obsolete VBE functions that have not been compiled-in for some - time. + o Fixed a bug that caused an entire batch of mouse events to be rejected + when one of an unknown type was encountered. - o Fix VBE's reporting of video memory size. + o Don't error out on unknown wskbd types on the *BSD's. - o Re-implement Alpha kludge in x86emu's ops.c to be more portable. + o Fixed memory leaks in option processing. - o Intercept "raw" requests for PCI configuration space from video BIOSes - on all architectures. + o Fixed area granularity handling in the framebuffer manager. - o Handle unaligned I/O requests more gracefully and be more tolerant of - spurious I/O errors in the int10 module. + o Reworked the sizing of PCI resources. More specifically, reduced the X + server's reliance on the OS to provide such information. - o Make sparse I/O masks more portable throughout the server. + o Added support for SBUS and UPA adapters on NetBSD and OpenBSD. - o Fix a long-standing off-by-one bug in the setting of RGB offsets when - the driver supplies RGB masks. + o Added support for Solaris/amd64. - o Make I/O error handling more reliable on SPARC. + o Added support for UltraSPARC IV systems, including support for PCI + Express. - o Change the OS-specific module subdirectory name for all SunOS variants - from "solaris" to "sunos". + o Added support for DrangonFly, a variant of FreeBSD. - o Port of SBUS drivers to SunOS variants. This also allows for multihead - using a mix of SBUS and PCI devices. + o Added support for x86_64 architectures on the *BSD's. - o Fix text mode restore on x86/Solaris 8 and later. + o Fixed page size determination in various server-related utilities. - o Change autoconfiguration to include PCI and SBUS BusIDs in generated - device sections. This fixes some problems when fbdev is active. - - o Prevent the sharing of a PCI entity by more than one driver. - - o Insulate various common layer functions against out-of-bounds entity - indices. - - o Fix XAA's support for TRIPLE_BITS_24BPP on big-endian systems. - - o Fix unaligned access in XAA's handling of 24bpp. - - o The xf24_32bpp module is no longer used by any of our drivers, so don't - include it in static builds. - - o The xf8_32wid module is only used by the sunffb driver, so don't include - it in non-SPARC static builds. - - o Fix generic int10 memory accesses on little-endian systems. - - o Fix a SEGV that can occur under certain builds of glibc 2.3.4 and up, - when linux/int10 attempts to determine kernel support for the vm86() - system call. - - o Add an xf86DeallocateGARTMemory() function. - - o Make autoconfig stop at the first successful probe on each retry, min- - imising unnecessary probes. + o Made the mmapr and mmapw utilities understand wscons mapping modes on + the *BSD's. 3.5.3 TinyX - o Allow build-time selection of which font renderers get built in to the - TinyX servers. - - o Fix a problem where VT switching back to TinyX servers was failing due - to blocking on keyboard read. - - o Fix a TinyX build issue under !XserverStaticFontLib. - - o Move Xserver/*/tiny directories under Xserver/hw/tinyx. - - o TinyX build fixes. - -3.5.4 Xnest + o Added an option to the TinyX servers to prevent them from probing serial + ports on Linux. - o Add a "-noinput" option that allows Xnest to be run in a view-only mode. +3.5.4 Xsun -3.5.5 Xsun + o Changes to port the various Xsun servers to NetBSD/sparc have been + merged in. - o Fix incorrect bitsPerPixel for depth 12 in pixmap formats advertised by - the Xsun24 server. +3.5.5 XDarwin -3.5.6 cfb + o This X server has been heavily upgraded by integrating a wide selection + of changes from its now defunct X.Org implementation. - o Fix a bug that occurs when using cfb to tile 32-bit rectangles on SPARC. +3.5.6 Xvfb - o cfb24 is no longer needed. Keep the loadable module, but no longer - statically link it into servers. + o Fixed segfaults in Xvfb's command line parsing. -3.5.7 shadow +3.5.7 cfb - o Rewrite shadowUpdateRotatePacked() to reduce cache misses. + o Fix a number of bugs in cfb24, even though it is no longer used by any + driver provided in the distribution. -3.5.8 Xinerama + o Fix stipple handling on sparc64. - o Cause the server to FatalError() when Xinerama attempts to create a - screen whose root depth has no visuals, causing Xlib to segfault. +3.5.8 fb - o Allow Xinerama to initialise even when there is only one screen to com- - bine. + o A problem that prevented the use of the GLX extension in some cases has + been corrected. - o Make loadable modules and MI independent of Xinerama: + o Fix fbCompose() for ABGR framebuffers. - o Add a DIX helper to determine whether Xinerama is active and use it - instead of #ifdef's code in all loadable modules. +3.5.9 Render - o Re-implement, as a screen wrapper, Xinerama's PaintWindow*() hacks. - - o Move down to DIX Xinerama's only MI hook. - -3.5.9 XFree86-DGA - - o Do not call a screen's PointerMoved entry if a DGA mode is active on - that screen. - - o Fix client-side framebuffer mapping on NetBSD. - - o Make sure that DGAShutdown() is always called before HW state is - restored on exit and reset, and make sure that it is not called after - the HW state has been restored. - -3.5.10 Render - - o Fix unaligned access in RenderCompositeGlyphs request. - -3.5.11 RandR - - o Use xf86SetViewport as well as SetCursorPosition during RandR rotation, - as xf86SetViewport will call AdjustFrame to reposition the window if - necessary and avoid the cursor ending up off screen. - - o Add a new function xf86GetRotation() to allow third party modules to - obtain the current rotation. - - o Fix up error case when rotation fails and the framebuffer needs to be - re-enabled. + o Endianness fix for RenderSetPictureClipRectangles request. 3.6 Library, Client and Utility Updates -3.6.1 Xlib - - o Fix typos in XErrorDB that were preventing descriptive messages for some - extension errors. - -3.6.2 Xt - - o Fix an uninitialised pointer dereference in Xt/Initialize.c on WIN32 - platforms that happens if $HOME is set in the environment. - - o Add support to Xt's string to float converter to read resources in frac- - tional notation. - - o Add some XChar2b string manipulation functions to Xt. - - o Bump the minor revision of the Xt shared library to reflect the fact - that some new interfaces have been added. - -3.6.3 Xaw - - o Extend the tool tip resource for Xaw's simpleWidgetClass to allow a - function to be called - - o Fix problems with Xaw's label widget when using XChar2b strings. - - o Add a new connectionType property to Xaw's tree widget. - - o Make Xaw Form widgets inherit dimensions from their parent at widget - initialisation time. - - o Add mouse wheel support for Scrollbars in Xaw's Viewport widget. - - o Fix a performance issue with Xaw's Tree widget caused by useless relay- - outs. - - o Fix i18n for Xaw's tooltip widget. - - o Add two new functions that can be used to scroll the content of an Xaw - viewport from outside the viewportWidgetClass. - - o Fix the cursor in Xaw textWidget when the input field has focus. - - o Bump the minor revision of the Xaw shared library to reflect the fact - that some new interfaces have been added. - - o Add user_data field to Xaw's simpleWidgetClass. - - o Fix Xaw viewport scrollbar flickering problem. +3.6.1 restest -3.6.4 pswrap + o This XRes extension client, originally written by Mark Vojkovich, has + been integrated, after rewriting it to prevent deadlocks that could + occur when displaying its results in an X session. - o Fix a problem where pswrap generates a bogus .c file when the -h option - is not used. +3.6.2 xclock - o Document pswrap's -f option. + o Make an analog xclock, when using Render, update the minute hand at most + every minute instead of every update interval. This makes it consistent + with non-Render mode. -3.6.5 mmapr, mmapw +3.6.3 xdm - o Extend mmapr and mmapw on Linux to allow specification of which PCI - address space (I/O or memory) to mmap. + o Fixed a number of memory leaks. - o Add options to mmapr and mmapw to allow unaligned accesses for testing - purposes + o Fixed bug that prevented an IPv6-aware xdm from accepting chooser con- + nections. -3.6.6 cpconfig +3.6.4 xwd - o Use the same default XF86Config search path as the XFree86 server. + o This utility has been extended to allow selection of a rectangular + region to dump. -3.6.7 xterm +3.6.5 xterm -These changes correspond to xterm patches #200 through #212. + o Xterm patches upto and including #215 have been integrated. - o Improved behavior - - o add a new selection feature: regular expressions, and new - resources which specify what happens on multiple mouse clicks: - on2Clicks, on3Clicks, on4Clicks and on5Clicks. - - o improve initialization of toolbar so that individual pulldown menus - are initialized on demand, as they are in the scenario where they - are invoked as popup menus. - - o improve error-reporting when chown/chmod of the pseudo-terminal - fails, e.g., if a copy of xterm which was designed to work with - old-style pseudo-terminals is not installed setuid or setgid. - - o add support for interpreting the underline attribute as an italic - font in Xft mode. - - o modify configure script --disable-imake to use the script's defini- - tions anyway if it cannot detect imake. - - o improve resource files to show how the menubar and popup menus can - be colored. - - o modify initialization of allowSendEvents and allowWindowOps to pre- - vent modification with the editres protocol. - - o improved some of the built-in line-drawing glyphs. - - o set the _NET_WM_PID property. - - o update table for mk_width() from UnicodeData 4.1.0. - - o implement the remaining pieces to make xterm allocate cells for - wide-characters when the "UTF-8" menu entry is selected. Also, - load the UTF-8 font when that menu entry is selected, or the escape - sequence for UTF-8 mode is received : - - o improve behavior when switching to UTF-8 mode after startup so - xterm will check if the current fonts are already wide - (ISO-10646-1). If they are not, xterm will use the utf8Fonts sub- - resource to load appropriate fonts. - - o modify initialization for wide-bold fontname, to search for one if - none is given. - - o modify interaction between +u8 and locale resource to allow the - command-line option to override the resource. - - o modify initialization to decide whether to default to built-in - wcwidth() versus system's version based on the starting locale and - whether the system's version is poor quality. - - o make paste of UTF-8 faster for Western character sets by checking - range of incoming data. - - o improve initialization due to utf8 resource by loading the - utf8Fonts resource in the case where locale resource is false. - Also in this case, do not disable switching UTF-8 mode on/off. - - o Modified behavior - - o modify parsing of OSC (and SOS, etc), strings so their contents are - not interpreted as UTF-8. This allows non-ASCII title strings to - be set, provided that the window manager complies. - - o modify parsing of control sequence CSI T to allow scroll-down to be - sent while mouse tracking is enabled. - - o modify command-processing to accept an optional parameter that - tells xterm which shell program to use. - - o change xterm manpage to show the actual color resource names XtDe- - faultForeground and XtDefaultBackground rather than black and - white. - - o modify xterm-new terminfo entry to use capabilities for shifted - scroll forward/reverse as shifted cursor up/down. - - o remove menu entry for "Enable Curses Emulation" (to make room for - "Select To Clipboard"). - - o modify resource files to make the font-resources a little more spe- - cific, e.g., changing "*VT100*" to "*VT100.", to make the distinc- - tion between VT100.font and VT100.utf8Fonts.font sharper, in case a - packager modifies one of those. - - o allow cursor to have the same color as foreground (text), since it - is rendered as reverse. - - o modify Imakefile to use setgid mode for installing with Linux, - OpenBSD and FreeBSD. - - o New resource settings - - o add utf8Title resource and menu entry, allowing the user to control - whether title strings are interpreted as ISO-8859-1 or UTF-8 encod- - ing. - - o add scrollBarBorder resource. - - o add resource selectToClipboard, action set-select and a menu entry - to allow users to switch between PRIMARY and CLIPBOARD for - select/paste. - - o add resource mkWidth and command-line option -mk_width to control - whether xterm uses the built-in version of wcwidth(). - - o add resource settings for minimum/maximum input buffer size, and - call to sched_yield to improve performance with newer Linux kernels - - o add simpler resource keyboardType which, when set, overrides the - individual keyboard-type resources and eliminates the possibility - of conflict between them. - - o New configure script options - - o the --with-utmp-setgid allows the packager to configure xterm to - use setgid permissions for utmp. - - o add configure option --enable-readline-mouse, which turns on the - experimental OPT_READLINE code. - - o add --enable-narrowproto configure option to accommodate X.org - "modular" build. - - o add configure --with-app-defaults option to allow app-defaults - directory for install-rules to be customized. - - o add configure option --with-tty-group to help work around deficien- - cies in packager's build environment. - - o add configure --with-setuid and --with-reference options to allow - packagers more flexibility in customizing install permissions. - - o add configure --with-symlink option to make it simpler to install - successive versions of xterm renamed using the --program-prefix, - etc., options with a symbolic link pointing to the most recent. - - o add a configure check for the actual path of luit, to work around - broken imake configurations. - - o add a configure check for pkg-config. - - o modify install rule for uxterm to account for the --program-prefix, - etc., options by invoking the transformed name of xterm rather than - simply "xterm". - - o modify configure --with-app-defaults option to allow --without-app- - defaults. - - o add configure option --disable-leaks. - - o add experimental option to allow applications to get or set the - selection data as a BASE64 string. - - o Other new features - - o add select-cursor-extend() action. - - o add environment variables $XTERM_SHELL and $XTERM_VERSION. - - o add menu entry (alt-esc) and corresponding action (alt-sends-esc) - to toggle the eightBitInput resource setting. - - o add command-line options (-tb, +tb) and resource toolBar to allow - menu/toolbar to disabled or enabled at startup. - - o add extended shift- and control-modifier cursor keys to - "xterm+pcfkeys" terminfo entry to correspond to ncurses 20050430 - patch. - - o enable lastlogx support for NetBSD (was added, but not enabled in - patch #186). - - o Bug-fixes (see http://invisible-island.net/xterm/xterm.log.html for a - more complete list): - - o correct typo in configure script's --enable-dec-locator option - - o correct a typo in CF_FUNC_TGETENT introduced in patch #198 fix - - o fix an off-by-one error parsing -S/nn option. - - o add a check in Bell to ensure that the VT100 widget is realized, - since it may be called by xtermLoadFont given an incorrect font - resource. - - o correct treatment of iconBorderWidth for resizing an active-icon, - and its description in manpage. - - o add a limit check for scrolling margins in a one-line screen, over- - looked in fixes for patch #198. - - o correct computation of width for wide characters with the invisible - attribute. - - o improve fix from patch #198 for Cleanup() by ensuring it is not - called from the SIGCHLD handler. - - o fixes to make -geom option work properly with the toolbar configu- - ration. - - o fix logic in find_utmp, which did not reset result in getutid(), - causing an infinite loop in some conditions. - - o fix a rare case where text would be written with the wrong colors - because output of scrolled text would reset the colors and the new - text would be written with the same colors. - - o implement logic in termcap query to process multiple parameters as - documented in ctlseqs.ms - - o fix buffer size used for termcap query, which was not long enough - for the terminfo "colors" name. - - o initialize the saved-cursor data so a restore-cursor operation - without a preceding save-cursor operation will not modify the fore- - ground color. - - o modify Imakefile to work around old problems in imake configuration - to allow test-builds using xmkmf on Linux. (This was not noticed - since several releases had broken definitions relating to Xft which - were harder to work around). - - o remove default translations for dabbrev-expand() due to conflicts - with existing keyboard arrangements. - - o set icon border width explicitly to work around fvwm problem with - active icon resizing. - - o eliminate a retry for a better-matching bold font, to work around - recent font server changes. - - o modify prefix/suffix transformation in makefile to make uxterm - install properly on Cygwin. - - o correct termcap "me" (mode-end) string so it does not modify the - alternate character set. - - o modify computation of rows/columns on resize to avoid extending - beyond the given limits, e.g., if resizing in response to a "maxi- - mize" in Gnome or KDE which do not use the window manager hints for - this case. - - o make a special case of resizing work like vt100: a hard reset also - resets the 132/80 mode. The code to support this was present since - X11R5, but not used because the corresponding initial state of the - -132 option was not saved. - -3.6.8 GLX/DRI - - o Mesa build fixes for NetBSD/sparc64. - - o Solaris/SPARC 64-bit libGL fixes. - -3.6.9 dbedizzy - - o Resurrect this DBE extension test utility. - -3.6.10 xclock - - o Use the Xaw tooltip to display the date in xclock. - -3.6.11 twm - - o Add a new function to allow the window text title to be changed interac- - tively. - - o Allow environment variables to be used in menu names. - - o Add a new "f.totalzoom" function that zooms windows to cover the whole - area of a screen with no window decoration visible. - - o Don't highlight "f.nop" menu items in menus. - -3.6.12 xbiff - - o Add a tooltip to xbiff that shows the number of messages in a mail - folder. - -3.6.13 xdm - - o Fix a potential infinite loop when the "willing" command fails to pro- - duce any output. - -3.6.14 xfd - - o Fix a bug that prevents properly paging through xft fonts beyond 0xFFFF. - -3.6.15 xfs - - o Modify the font server transport messages to go through xfs's logging - mechanism. - - o Fix a bug introduced when syslog support was added that prevents exit on - fatal errors. - -3.6.16 xinit - - o Send SIGINT to slowing exiting X servers instead of SIGKILL. This works - together with the new SIGINT handling in the X servers, and results in a - clean exit. Sending SIGKILL only results in the hardware state not - being restored, often requiring a reboot to recover from. - -3.6.17 xmessage - - o Fix a bug in the handling of escapes in button labels. - -3.6.18 xvidtune - - o Fix the -timeout option. + o Change xterm, on various platforms, to not require that the OS define a + utmp group. 3.7 I18n and Fonts - o Update mkfontscale's handling of font weights. + o Eliminated a number of issues related to the use of external fontconfig + and freetype2 libraries. - o Replace lib/font/fontfile/decompress.c with a version derived from BSD's - src/usr.bin/compress/zopen.c. - - o Modify the fontconfig library to use getpwnam/getpwuid to find the home - directory when $HOME is not set. - - o Fix a bug in fontconfig's pattern matching that can cause FcFontMatch() - to fail when it shouldn't. - - o Fix a double-free problem in fontconfig. - - o Rework printf format specifiers used in XLFD code to make them more por- - table and avoid infinite loops in some glibc versions. - - o Update the Serbian locale naming to reflect the country's name change - from "Yugoslavia" to "Serbia and Montenegro". + o Updated the Serbian locale naming to reflect the country's name change + from "Yugoslavia" to "Serbia and MonteNegro". 3.8 OS Support Updates - o Fix some cases in the Darwin build where a variable is declared static - and later as extern. - - o Avoid /tmp files in NetBSD.cf's man page creation. - - o Install man page source as well as formatted man pages on NetBSD. + o Added support for PAM on Solaris and Darwin. - o Fix a problem where builds would continue past errors on NetBSD. + o Added support for OpenPAM on FreeBSD and NetBSD. 4. Drivers 4.1 Video Drivers -XFree86 4.6.0 includes the following video drivers: +XFree86 4.7.0 includes the following video drivers: +--------------+--------------------------+--------------------------------+ |Driver Name | Description | Further Information | @@ -996,6 +368,7 @@ |newport (-) | SGI Newport | README.newport, newport(4) | |nsc | National Semiconductor | nsc(4) | |nv | NVIDIA | nv(4) | + |pnozz (+) | Weitek P9100 | pnozz(4) | |rendition | Rendition | README.rendition, rendition(4) | |s3 | S3 (not ViRGE or Savage) | | |s3virge | S3 ViRGE | README.s3virge, s3virge(4) | @@ -1023,7 +396,7 @@ Drivers marked with (*) are present in a preliminary form in this release, but are not complete and/or stable yet. -Drivers marked with (+) are for Linux/SPARC only. +Drivers marked with (+) are for SPARC only. Drivers marked with (-) are for Linux/mips only. @@ -1032,7 +405,7 @@ 4.2 Input Drivers -XFree86 4.6.0 includes the following input drivers: +XFree86 4.7.0 includes the following input drivers: +------------+----------------------------------+---------------------+ |Driver Name | Description | Further Information | @@ -1077,7 +450,7 @@ usually, dynamically, and in that manner load the video drivers, input driv- ers, and other modules that are needed. -XFree86 4.6.0 has X server support for most UNIX® and UNIX-like operating +XFree86 4.7.0 has X server support for most UNIX® and UNIX-like operating systems on Intel/x86 platforms, plus support for Linux and some BSD OSs on Alpha, PowerPC, IA-64, AMD64, SPARC, and Mips platforms, and for Darwin on PowerPC. Support for additional architectures and operating systems is in @@ -1173,7 +546,7 @@ 6.7 DGA version 2 -DGA 2.0 is included in 4.6.0. Documentation for the client libraries can be +DGA 2.0 is included in 4.7.0. Documentation for the client libraries can be found in the XDGA(3) man page. A good degree of backwards compatibility with version 1.0 is provided. @@ -1194,9 +567,9 @@ 6.8.1 Changed behavior caused by DDC. -Several drivers uses DDC information to set the screen size and pitch. This -can be overridden by explicitly resetting it to the and non-DDC default value -75 with the -dpi 75 command line option for the X server, or by specifying +Several drivers use DDC information to set the screen size and pitch. This +can be overridden by explicitly resetting it to the non-DDC default value 75 +with the -dpi 75 command line option for the X server, or by specifying appropriate screen dimensions with the "DisplaySize" keyword in the "Monitor" section of the config file. @@ -1228,7 +601,7 @@ overlays and other image operations not possible with the core X rendering system. -XFree86 4.6.0 provides a partial implementation of Render sufficient for +XFree86 4.7.0 provides a partial implementation of Render sufficient for drawing anti-aliased text and image composition. Still to be implemented are geometric primitives and affine transformation of images. @@ -1263,7 +636,7 @@ 6.11.2 FreeType support in Xft -XFree86 4.6.0 includes sources for FreeType version 2.1.8, and, by default, +XFree86 4.7.0 includes sources for FreeType version 2.1.8, and, by default, it is built and installed automatically. 6.11.3 Application Support For Anti-Aliased Text @@ -1452,7 +825,7 @@ 7. Credits -This section lists the credits for the XFree86 4.6.0 release. For a more +This section lists the credits for the XFree86 4.7.0 release. For a more detailed breakdown, refer to the CHANGELOG file in the XFree86 source tree, the cvs-commit archives , or the 'cvs log' information for individual @@ -1461,34 +834,20 @@ New Features, Enhancements and Updates: Security Updates: - Marc La France. - - ASPEED Technologies driver: - Y. C. Chen, ASPEED Technologies. - - Xabre Graphics driver: - Jong Lin, XGI. - - X server extension rework: - Marc La France. - - Loader Enhancements: - David H. Dawes, X-Oz Technologies. - - Intel i945G/i945GM support and other driver enhancements: - Alan Hourihane, Tungsten Graphics. + Josh Bressens, Chris Evans, Matthieu Herrb, Marc La + France, Sean Larsson, Victor Stinner, iDefense. NVIDIA driver updates and new hardware support: Mark Vojkovich - Improved SunOS/SPARC and SBUS support: + Improved SPARC support: Marc La France. Xterm enhancements and updates: Thomas Dickey. - Xaw enhancements: - Alexander Pohoyda. + DragonFly support: + David H. Dawes. Integration: @@ -1499,22 +858,18 @@ David H. Dawes. Patches and other submissions (in alphabetical order): - ASPEED Technologies, Andrew Aitchison, James Ascroft-Leigh, - Étienne Bersac, Peter Breitenlohner, Terry Chang, Y. C. Chen, - Jeff Chua, James Cloos, Alan Coopersmith, Miguel González - Cuadrado, David Dawes, Thomas Dickey, Stefan Dirsch, Bernd - Ernesti, Jordan Frank, Will L G, Frank Giessler, Thorsten Glaser, - Damian Janusz Gruszka, Lukas Hejtmanek, Evil Mr Henry, Jens Her- - den, Alan Hourihane, Nicolas Joly, Bang Jun-Young, Alexander - Kabaev, Satoshi Kimura, Milos Komarcevic, Marc La France, Dejan - Lesjak, Khong Jye Liew, Jong Lin, Michael Lorenz, Michael - Macallan, Michal Maruska, Luke Mewburn, Timothy Musson, Newsh, - Takaaki Nomura, Ivan Pascal, Bob Peterson, Pierre, Aaron Plat- - tner, Alexander Pohoyda, Jeremy C. Reed, Conrad Schuler, Bruno - Schwander, Olaf Seibert, Aaron Solochek, Helmar Spangenberg, Ken - Stailey, Tobias Stoeckmann, Tungsten Graphics, James Richard - Tyrer, Staffan Ulfberg, Denis Vlasenko, Mark Vojkovich, Tom - Williams, Dave Williss, X-Oz Technologies, XGI, Christos Zoulas. + Andrew Aitchison, Marc Balmer, Etienne Bersac, Martin Bochnig, + Peter Breitenlohner, Josh Bressers, James Chacon, Yves de Cham- + plain, Alan Coopersmith, David Dawes, Eike Dehling, Thomas + Dickey, Matthias Drochner, Jay Estabrook, Chris Evans, Will L G, + Andriy Gapon, Charles M. Hannum, Frank J. R. Hanstick, Ben Har- + ris, Matthieu Herrb, Iain Hibbert, Martin Husemann, iDefense, + Milos Komarcevic, Marc La France, Sean Larrson, Michael Lorenz, + Jie Luo, Loic Mahe, Minoura Makoto, Martin Mares, Luke Mewburn, + NetBSD, Dmitry Pervushin, Alexander Pohoyda, Ty Sarna, SciFi, + Christopher Sekiya, Jamey Sharp, Victor Stinner, Frank van der + Linden, Shin Takemura, Mark Vojkovich, Nathan J. Williams, X.Org, + Christos Zoulos. Webmaster: Georgina O. Economou @@ -1541,7 +896,7 @@ This product includes software developed by X-Oz Technologies (http://www.x- oz.com/). - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.142 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.143 tsi Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/RELNOTES,v 3.152 2006/04/29 03:38:00 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/RELNOTES,v 3.155 2007/08/13 00:57:47 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/Versions diff -u xc/programs/Xserver/hw/xfree86/doc/Versions:1.21 xc/programs/Xserver/hw/xfree86/doc/Versions:1.22 --- xc/programs/Xserver/hw/xfree86/doc/Versions:1.21 Tue Apr 11 21:50:32 2006 +++ xc/programs/Xserver/hw/xfree86/doc/Versions Fri Aug 3 22:16:07 2007 @@ -19,8 +19,8 @@ XFree86 release cycles occur approximately every 12 months and coincide with the calendar year. For example 4.0 was released in 2000; 4.1 in 2001; 4.2 in -2002; 4.3 in 2003; 4.4 in 2004 and 4.5 in 2005. So it is safe to say that -4.6 will be released early in 2006. +2002; 4.3 in 2003; 4.4 in 2004; 4.5 in 2005; 4.6 in 2006 and 4.7 in 2007. So +it is safe to say that 4.8 will be released late in 2008. The development phase typically ends 1-3 months before the release date and is marked by the start of a feature freeze . The timing of releases and the @@ -33,8 +33,8 @@ update releases typically consist of source code patches plus binary updates that may be layered on top of the previous release. -The current release is 4.6.0, and the next release will be 4.7.0. No update -release is scheduled, but if one is needed it will be version 4.6.1. +The current release is 4.7.0, and the next release will be 4.8.0. No update +release is scheduled, but if one is needed it will be version 4.7.1. Aside from releases, snapshots of the development trunk are tagged in the CVS repository at regular intervals, normally every two weeks. Each snapshot has @@ -97,11 +97,11 @@ 2.2 Maintenance Branch -After a full release, the maintenance branch for the release will be be cre- -ated to hold important bug fixes and updates. Snapshots and release candi- -dates may be tagged on maintenance branches from time to time. When an -update release is cut, the patch level value (P) is incremented and the snap- -shot number dropped. +After a full release, the maintenance branch for the release will be created +to hold important bug fixes and updates. Snapshots and release candidates +may be tagged on maintenance branches from time to time. When an update +release is cut, the patch level value (P) is incremented and the snapshot +number dropped. Here is an example which shows the version number sequence for the 4.2.x maintenance branch. @@ -312,7 +312,7 @@ } } - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Versions.sgml,v 1.8 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Versions.sgml,v 1.9 tsi Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/Versions,v 1.21 2006/04/12 01:50:32 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/Versions,v 1.22 2007/08/04 02:16:07 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile:3.92 xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile:3.93 --- xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile:3.92 Sun Apr 23 13:03:51 2006 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile Fri Aug 3 13:20:50 2007 @@ -1,4 +1,4 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile,v 3.92 2006/04/23 17:03:51 dawes Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile,v 3.93 2007/08/03 17:20:50 tsi Exp $ #include #include @@ -28,6 +28,7 @@ apm.sgml ati.sgml chips.sgml cyrix.sgml DECtga.sgml \ I128.sgml i740.sgml i810.sgml newport.sgml \ r128.sgml rendition.sgml s3virge.sgml SiS.sgml +FORMATTEDDIR = .. LinuxDocReadmeTarget(Darwin) LinuxDocReadmeTarget(isc) @@ -124,9 +125,6 @@ #endif - -FORMATTEDDIR = .. - /* Update top level docs. */ UpdateFormattedDocLong(README,$(TOP),README.txt) UpdateFormattedDocLong(Install,$(TOP),Install.txt) Index: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml:1.43 xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml:1.45 --- xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml:1.43 Tue Apr 18 13:07:24 2006 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml Mon Jan 1 11:08:15 2007 @@ -8,7 +8,7 @@ April 2006 -$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.43 2006/04/18 17:07:24 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.45 2007/01/01 16:08:15 tsi Exp $ Introduction @@ -176,7 +176,7 @@ Copyright (C) 2000, 2001 Ani Joshi Copyright (C) 2000 by Rainer Keller Copyright (C) 1999-2003 by Peter Kunzmann, Citron GmbH, Germany. -Copyright (C) 1994 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org +Copyright (C) 1994 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org Copyright (C) 1996 by Steven Lang Copyright (C) 1995, 1999 by Patrick Lecoanet, France. Copyright (C) 2001 by Patrick LERDA @@ -710,9 +710,6 @@ Copyright (c) 2003 The NetBSD Foundation, Inc. All rights reserved. -This code is derived from software contributed to The NetBSD Foundation -by Ben Collver <collver1@attbi.com> - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -722,10 +719,6 @@ Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - All advertising materials mentioning features or use of this software - must display the following acknowledgement: - This product includes software developed by the NetBSD - Foundation, Inc. and its contributors. Neither the name of The NetBSD Foundation nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. Index: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:1.142 xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:1.143 --- xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml:1.142 Fri Apr 28 23:35:46 2006 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml Fri Aug 3 22:16:08 2007 @@ -6,10 +6,10 @@ Release Notes for XFree86® &relvers; <author>The XFree86 Project, Inc -<date>April 2006 +<date>August 2007 <ident> -$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.142 2006/04/29 03:35:46 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.143 2007/08/04 02:16:08 tsi Exp $ </ident> <abstract> @@ -33,9 +33,8 @@ <![ %fullrel [ The current release (&relvers;) is the latest in that series. ]]> -The XFree86 4.x series represents a significant redesign of the XFree86 X server, -with a strong focus on modularity -and configurability. +The XFree86 4.x series represents a significant redesign of the XFree86 X +server, with a strong focus on modularity and configurability. <![ %relcandidate [ <sect1>&fullrelvers; RC&rcnum; @@ -52,16 +51,17 @@ <sect>Configuration: a Quick Synopsis <p> -Automatic configuration was introduced with XFree86 4.4.0 -which makes it possible to start XFree86 without first creating a -configuration file. This has been further improved in XFree86 -4.5.0 and 4.6.0. If you experienced any problems with automatic configuration -in a previous release, it is worth trying it again with this release. - -While the initial automatic configuration support was originally targeted -ust for Linux and the FreeBSD variants, as of 4.5.0 it also includes -Solaris, NetBSD and OpenBSD support. Full support for automatic -configuration is planned for other platforms in future releases. +Automatic configuration was introduced with XFree86 4.4.0 which makes it +possible to start XFree86 without first creating a configuration file. +This has been further improved in subsequent releases. +If you experienced any problems with automatic configuration in a previous +release, it is worth trying it again with this release. + +While the initial automatic configuration support was originally targeted just +for Linux and the FreeBSD variants, as of 4.5.0 it also includes Solaris, +NetBSD and OpenBSD support. +Full support for automatic configuration is planned for other platforms in +future releases. If you are running Linux, FreeBSD, NetBSD, OpenBSD, or Solaris, try Auto Configuration by running: @@ -72,24 +72,25 @@ If you want to customise some things afterwards, you can cut and paste the automatically generated configuration from the -<tt>/var/log/XFree86.0.log</tt> file into an <tt>XF86Config</tt> file -and make your customisations there. If you need to customise some parts -of the configuration while leaving others to be automatically detected, -you can combine a partial static configuration with the automatically -detected one by running: +<tt>/var/log/XFree86.0.log</tt> file into an <tt>XF86Config</tt> file and make +your customisations there. +If you need to customise some parts of the configuration while leaving others +to be automatically detected, you can combine a partial static configuration +with the automatically detected one by running: <tscreen><verb> XFree86 -appendauto </verb></tscreen> -If you using a platform that is not currently supported, then you must try one -of the older methods for getting started like <tt>xf86cfg</tt>", -which is our graphical configuration tool. It also has a text mode -interface that an be used to create an initial configuration file and -customise existing configurations. - -After that, you can use XFree86 server's ability to create a -starting configuration file. To do so you must login as root, and run: +If you are using a platform that is not currently supported, then you must try +one of the older methods for getting started like "<tt>xf86cfg</tt>", which is +our graphical configuration tool. +It also has a text mode interface that an be used to create an initial +configuration file and customise existing configurations. + +After that, you can use XFree86 server's ability to create a starting +configuration file. +To do so you must login as root, and run: <tscreen><verb> XFree86 -configure @@ -98,36 +99,31 @@ and then follow the instructions. Finally, if all else fails, the trusty old standby text-based tool -"<tt>xf86config</tt>" can also be used for generating X server config -files. +"<tt>xf86config</tt>" can also be used for generating X server config files. Hopefully, at least one, and perhaps all of these various configuration options -will give you a reasonable starting point for a suitable configuration -file but we think that with the automatic mechanism you will probably not -need any. +will give you a reasonable starting point for a suitable configuration file but +we think that with the automatic mechanism you will probably not need any. If you would like to customise the configuration file, see the <htmlurl -name="XF86Config manual page" url="XF86Config.5.html">. You should also -check the driver-specific manual pages and the related documentation, which -is found at <ref id="drivertables" name="tables below">. - -Before downloading any of the binary distributions for this release, -read through the <htmlurl name="Installation Document" -url="Install.html"> as it can point out which particular binary you should -download. +name="XF86Config manual page" url="XF86Config.5.html">. You should also check +the driver-specific manual pages and the related documentation, which is found +at <ref id="drivertables" name="tables below">. + +Before downloading any of the binary distributions for this release, read +through the <htmlurl name="Installation Document" url="Install.html"> as it can +point out which particular binary you should download. <![ %updaterel [ -The following sections describe what has changed in the update release(s) -as well as what is <bf>new</bf> in the latest full release (&fullrelvers;). +The following sections describe what has changed in the update release(s) as +well as what is <bf>new</bf> in the latest full release (&fullrelvers;). ]]> <![ %fullrel [ -The next section describes what is <bf>new</bf> in the latest version (&relvers;) -compared with the previous full release (&prevfullrelvers). +The next section describes what is <bf>new</bf> in the latest version +(&relvers;) compared with the previous full release (&prevfullrelvers;). ]]> There are many new features in this release and we unfortunately do not have -enough space -to cover -them all here. +enough space to cover them all here. </sect> @@ -141,150 +137,100 @@ <sect>Summary of new features in &fullrelvers;. <p> -This is a sampling of the new features in XFree86 &fullrelvers;. A more -complete list of changes can be found in the CHANGELOG that is part of -the XFree86 source tree. It can also be viewed online at our <url -name="CVSweb server" +This is a sampling of the new features in XFree86 &fullrelvers;. +A more complete list of changes can be found in the CHANGELOG that is part of +the XFree86 source tree. +It can also be viewed online at our <url name="CVSweb server" url="http://cvsweb.xfree86.org/cvsweb/xc/programs/Xserver/hw/xfree86/CHANGELOG?rev=HEAD">. <sect1>Security Updates <p> -The following security issue has been fixed in this release: +A number of reported security issues have been addressed in this release. +They include: <itemize> -<item>X server pixmap allocation flaw (<url name="CERT Vulnerability -Note VU#102441" url="http://www.kb.cert.org/vuls/id/102441">, <url -name="CAN-2005-2495" -url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CAN-2005-2495">). +<item><htmlurl name="CVE-2006-0747" +url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-0747">. +<item><htmlurl name="CVE-2006-1861" +url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-1861">. +<item><htmlurl name="CVE-2006-2661" +url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-2661">. +<item><htmlurl name="CVE-2006-6101" +url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6101">. +<item><htmlurl name="CVE-2006-6102" +url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6102">. +<item><htmlurl name="CVE-2006-6103" +url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-6103">. +<item><htmlurl name="CVE-2007-1003" +url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1003">. +<item><htmlurl name="CVE-2007-1351" +url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1351">. +<item><htmlurl name="CVE-2007-1352" +url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1352">. +<item><htmlurl name="CVE-2007-1667" +url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-1667">. +<item><htmlurl name="CVE-2007-2754" +url="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-2754">. </itemize> - -<sect1>Video Driver Enhancements <p> +In addition, a number of potential integer overflow problems in the Type 1 +font rendering code have been corrected. -<itemize> -<item>Remove cfb support from the i740, nsc, s3virge, siliconmotion and via -drivers. - -</itemize> - -<sect2>aspeed +<sect1>Video Driver Enhancements <p> -<itemize> -<item>A new driver for ASPEED Technologies' AST2000 graphics chips. - -</itemize> - -<sect2>ati +<sect2>ati, atimisc, r128 and radeon <p> <itemize> -<item>Reinstate support for all ATI adapters on all architectures supported -by the XFree86 common layer. +<item>Fix bug that caused the version check between the ati and atimisc modules +to fail. -<item>Restore accuracy of atimisc's clock probe despite certain I/O errors. +<item>The atimisc module's saving and restoring of the mode on server entry has +been made more reliable on 64-bit systems. -<item>Change the atimisc driver on big-endian systems to allow depth 24 -even if the big-endian aperture is not available, by swapping RGB masks. +<item>Fix bug that prevented detection of non-PCI adapters on systems that do +not provide accurate PCI resource sizes. -<item>Fix an ATI driver probe crash. - -<item>Workaround for screen-to-screen copy corruption in second-generation -integrated controllers. - -<item>Improve accuracy of atmisc's calculations that are based on a -29.5 MHz reference clock. - -<item>Chrontel 8398 related changes to the Mach64 support. - -<item>Fix one cause of video memory corruption when using XAA with second -generation integrated Mach64 controllers. +<item>Fix the radeon driver's saving and restoring of the mode on server entry. </itemize> -<sect2>glint +<sect2>chips <p> <itemize> -<item>Fix the size of the DAC registers storage for pm2v and pm3 chipsets. +<item>Fix some of this driver's endianness problems. </itemize> -<sect2>i740 +<sect2>i128 <p> <itemize> -<item>Save and restore more of the mode on server entry. +<item>Resurrect support for Ti3026 RAMDACs found on the original I128 adapters. +Note that there are still issues with depth 8 visuals and hardware cursors. </itemize> -<sect2>i810 +<sect2>mga <p> <itemize> -<item>Make sure the DDC-probed parameters are applied before modes are -selected. - -<item>Fix some bad alignment problems when allocating memory from the end of -AGP space. - -<item>Adjust the display width according to the VESA BIOS scanline -requirements. - -<item>Add support for the Intel E7221 server chipset. - -<item>Improve display switching support for mobile chipsets using the -Fn+F? combination keys. - -<item>Add DirectColor support for the i830 and later. - -<item>Add gamma correction support for the i830 and later. +<item>Add support for Matrox MGA G200e SE adapters. -<item>Add rotation support for the i830 and later. - -<item>Improve refresh rate selection for custom modelines. - -<item>Add support for the 945G and 945GM. - -<item>Support custom video modes in the video BIOS, when available. - -<item>Fix some offset, pitch, and overlay scaler size problems with the -video overlay. This solves various spontaneous lockups. - -<item>Fix text restoration when display switching has been activated. - -<item>Add support to check the built-in VESA mode list. - -<item>Fix XVideo when operating in one line mode and video is pushed off the -top of the screen, and fix some XVideo skew problems at certain resolutions. - -<item>Sync the accelerator before calling AdjustFrame to avoid lockups. - -<item>Fix a lockup when spend and resume when playing video (shutdown the -overlay on LeaveVT). - -<item>Support 1920x1088 for HDTV movies using a new option (LinearAlloc) to add -more memory for the video overlay. - -<item>Add ACPI hotkey switching support. +<item>Fix determination of the mode on server entry. +Also, save and restore it on VC switches. </itemize> -<sect2>mga +<sect2>newport <p> <itemize> -<item>Reduce the Mystique's SYSCLK from 197 MHz to 166 MHz, -allowing the higher clock to still be used when the "OverclockMem" option -is activated. This fixes the instability seen on some Mystique cards, -and removes the need for the workaround in previous releases. - -<item>Revert the HALlib MGASetDisplayStart interface back to -HALSetDisplayStart. - -<item>Make 8+24 mode honour the default visual. +<item>Add support for the DPMS extension. </itemize> @@ -292,42 +238,25 @@ <p> <itemize> -<item>Some of the panel DPMS support in 4.5.0 only works for TMDS, and -caused some panel blooming on some LVDS panels, so skip the DPMS panel code -when the panel is LVDS. - -<item>Add DPMS support for GeForce4 and newer laptops. - -<item>Fix some console restore code for the NV11. - -<item>Workaround for 512MB video cards (can only map 256MB of it). - -<item>Fix a graphics acceleration hang that occurred on some NVIDIA GeForce -6xxx cards. - -<item>Fix a potential problem with pixmap cache corruption on GeForce 6xxx -and 7xxx parts. - <item>Add support for new hardware. </itemize> -<sect2>siliconmotion +<sect2>pnozz <p> <itemize> -<item>Merge in support for SiliconMotion's SM501 controller. +<item>This accelerated driver supports the Weitek POWER 9100 SBUS adapters +found in some SPARC laptops. </itemize> -<sect2>suncg6 +<sect2>sunbw2, suncg14, suncg3, sunleo, suntcx <p> <itemize> -<item>Add screen-to-screen copy, solid fill, and CPU-to-screen colour -expansion acceleration. - -<item>Map more of a Sun CG6's video memory for use by the pixmap cache. +<item>These drivers, intended for various SPARC SBUS and UPA adapters, can now +blank and unblank the screen correctly. </itemize> @@ -335,86 +264,34 @@ <p> <itemize> -<item>Prevent turning off the FPU on NetBSD. +<item>Prevent turning off the FPU on OpenBSD. -<item>Fix build problems on NetBSD (global register usage declaration, -and increase stack usage). +<item>Fix bug that prevented use of this driver on SunOS and Solaris. <item>Workaround for VRAM corruption when unblanking FFB1 adapters. - -</itemize> - -<sect2>tdfx -<p> - -<itemize> -<item>Add DDC2 support. - </itemize> <sect2>trident <p> <itemize> -<item>Do not wait for vertical retrace on PC98 systems. - -<item>Fix an offset problem in Xv for the Cyber9397 and later chipsets. - -<item>Add XGI (Trident) Volari XP5 support to the trident driver. - -</itemize> - -<sect2>via -<p> - -<itemize> -<item>Add a "ConnectedDevice" option to the via driver to force selection -of output devices. - -</itemize> - -<sect2>vmware -<p> - -<itemize> -<item>Implement a workaround in the generic int10 module to allow unaligned -I/O access specific to VMWare's second generation emulated adapter. - -</itemize> - -<sect2>xgi -<p> - -<itemize> -<item>A new driver for the Volari V3XT, V5, V8, Z7 chipsets. +<item>Resave the mode on server entry when switching back to the server's +virtual console. </itemize> <sect1>Input Driver Enhancements <p> -<sect2>keyboard -<p> - -<itemize> -<item>Ignore <tt>KEY_UNUSED</tt> scancodes. - -</itemize> - <sect2>mouse <p> <itemize> -<item>Fix auto-detection of Sun mice on Linux/SPARC. - -</itemize> - -<sect2>magictouch -<p> - -<itemize> -<item>Port of the magictouch driver to XFree86 4.x. +<item>Do not disable 3-button mouse emulation even when the mouse is found to +actually have a third button. +This helps laptops, and the like, running systems that combine a touchpad and +an external mouse into one device. </itemize> @@ -422,138 +299,40 @@ <p> <itemize> -<item>Replace the macintosh/fr map with the "fr_new" map, release 4. - -<item>Fix a bug in XKB group adjustment. - -<item>Fix off-by-one errors in XKBMalloc.c. - -<item>Shrink tables instead of only growing them. +<item>Add an XKB geometry for Dell Inspiron 8000 notebook keyboard. -<item>Fix various vmodmap vs modmap cut and paste bugs. +<item>Add an XKB geometry for Enermax Aurora keyboards. -<item>Improve synthesized core X events for reporting XKB changes to -XKB-unaware clients. +<item>Add XKB keycodes for MacIntosh USB keyboards. -<item>Fix a setxkbmap segfault. +<item>Add XKB definitions for X860x0 keyboards. -<item>Add Eszett (ssharp) to the us_intl map. +<item>Update Macintosh french keymap. -<item>Add dvorak_intl map. - -<item>Add a Khmer layout. - -<item>Add multimedia keysyms for the Inspiron 6000 laptop to the "inspiron" -set. +<item>Allow signed coordinates in XKB shape definitions. </itemize> - <sect1>X Server and Extension Updates <p> -<itemize> -<item>Updates to the handling of the X server RGB database: - - <itemize> - <item>Ignore white space, dash, and underscore characters, as well as - case when matching colour names, and remove the unnecessary duplicates - in rgb.txt. - - <item>Allow a copy of the RGB database to be included into the X servers - as a fallback for when the rgb.txt file cannot be found. - - <item>Remove the (unused) support for DBM-compiled RGB database files. - - </itemize> - -<item>Make the AMD64/x86_64 platform tests consistent throughout. - -<item>Rework the way that extension support is built into the servers to -allow for servers with different sets of extensions in the same build. This -includes minimising the number of pervasive extensions, and adding DIX helpers -for extensions such as Xinerama and XCSECURITY. - -<item>Modify the X server handling of SIGINT to provide a faster exit path -than SIGTERM, while ensuring that all hardware state gets restored. This -change is used by xinit as a cleaner alternative to using SIGKILL for a -slowly exiting server. - -</itemize> - <sect2>Loader <p> <itemize> -<item>Add support for relocation type 10 for Alpha to the ELF loader. - -<item>Fix issues with Linux/SPARC 2.6 kernels. - -<item>Add loader infrastructure to implement inter-module version checks. - -<item>Use mprotect on NetBSD. - -<item>Fix support for NetBSD/arm. - -<item>Add support for <tt>R_SPARC_OLO10</tt> relocations. - -<item>Make error messages for unsupported relocations more useful. - -<item>Improve the loader server's emulation of shmctl() calls. - -<item>Fix some problems with the a.out header macros used by the loader, -which was causing incorrect header interpretation for some a.out object -types. - -<item>Major loader enhancements, including: - - <itemize> - <item>Per-module export symbol lists. - - <item>Improved symbol hash. - - <item>A mechanism for specifying the scope of symbols. - - <item>Keep track of relocations, and undo them when they become unresolved - on module unload, and recalculate them when they change on module load. - - <item>Check relocations on each module load/unload, ensuring that function - references that are unresolved at any time are always mapped to the - catch-all function, preventing calls into nowhere. +<item>Fixed support for <tt>R_ALPHA_GPRELHIGH</tt> relocations. - <item>Efficient handling of invariant relocations. +<item>Added support for <tt>R_ALPHA_BRSGP</tt> relocations. - <item>Cleanup/update the memleak stack trace code, and print a stack trace - when an unresolved function is called or when XFree86 aborts. +<item>Fixed handling of archives on non-Linux SPARC. - <item>Update the catch-all function to identify the unresolved function that - was called. +<item>Fixed support for <tt>R_SPARC_LO10</tt> and <tt>R_SPARC_OLO10</tt> +relocations. - <item>Read the XFree86 executable's symbol table in order to get the most - useful stack traces, and use dladdr() where available for identifying shared - library references. +<item>Added support for most ELF SPARC relocation types. - <item>Cleanup and unify debug messages for the loader components. - - <item>Use module-instance-specific referenced and required symbol lists. - - <item>Update drivers to make use of some of the new loader functionality, - including the instance-specific ref/req lists, and some unloading of - modules when they are no longer needed. - - <item>Don't build the coff loader on platforms that it doesn't support. - - <item>Use stronger typing of the module-visible instance-specific module - descriptor. - - <item>No longer disable xf86UnloadSubModule() since the loader now handles - unloads and reloads cleanly. - - <item>Do not defer unloading drivers when using autoconfig, since that is - not necessary with the loader updates. - - </itemize> +<item>Added an emulation of rand(3) calls. </itemize> @@ -561,82 +340,42 @@ <p> <itemize> -<item>Modify the handling of preferred EDID modes to allow user-specified -modes that are larger than the preferred mode. - -<item>Refine VGA routing emulation through Sun's Simba P2P bridges. - -<item>Allow a static server's -configure to generate an XF86Config for the -loader server. - -<item>Fix a bug relating to the forwarding of 64-bit memory addresses by -PCI-to-PCI bridges on 32-bit systems. - -<item>Fix a bug in the decoding of I/O forwarding by Cardbus bridges. - <item>Update -configure to detect when wscons support should be used for the -keyboard on NetBSD. +keyboard on OpenBSD. -<item>Fix an endianness bug in the xf4bpp module. +<item>Added preliminary support for PCI domains on OpenBSD/sparc64. This +currently requires a kernel change. -<item>Fix some of the endianness bugs in the vbe module. +<item>On the *BSD's, added support for absolute mouse position events and +horizontal scroll wheels. -<item>Remove obsolete VBE functions that have not been compiled-in for some -time. +<item>Fixed a bug that caused an entire batch of mouse events to be rejected +when one of an unknown type was encountered. -<item>Fix VBE's reporting of video memory size. +<item>Don't error out on unknown wskbd types on the *BSD's. -<item>Re-implement Alpha kludge in x86emu's ops.c to be more portable. +<item>Fixed memory leaks in option processing. -<item>Intercept "raw" requests for PCI configuration space from video -BIOSes on all architectures. +<item>Fixed area granularity handling in the framebuffer manager. -<item>Handle unaligned I/O requests more gracefully and be more tolerant -of spurious I/O errors in the int10 module. +<item>Reworked the sizing of PCI resources. More specifically, reduced the X +server's reliance on the OS to provide such information. -<item>Make sparse I/O masks more portable throughout the server. +<item>Added support for SBUS and UPA adapters on NetBSD and OpenBSD. -<item>Fix a long-standing off-by-one bug in the setting of RGB offsets -when the driver supplies RGB masks. +<item>Added support for Solaris/amd64. -<item>Make I/O error handling more reliable on SPARC. +<item>Added support for UltraSPARC IV systems, including support for PCI +Express. -<item>Change the OS-specific module subdirectory name for all SunOS variants -from "solaris" to "sunos". +<item>Added support for DrangonFly, a variant of FreeBSD. -<item>Port of SBUS drivers to SunOS variants. This also allows for multihead -using a mix of SBUS and PCI devices. +<item>Added support for x86_64 architectures on the *BSD's. -<item>Fix text mode restore on x86/Solaris 8 and later. +<item>Fixed page size determination in various server-related utilities. -<item>Change autoconfiguration to include PCI and SBUS BusIDs in generated -device sections. This fixes some problems when fbdev is active. - -<item>Prevent the sharing of a PCI entity by more than one driver. - -<item>Insulate various common layer functions against out-of-bounds entity -indices. - -<item>Fix XAA's support for <tt>TRIPLE_BITS_24BPP</tt> on big-endian systems. - -<item>Fix unaligned access in XAA's handling of 24bpp. - -<item>The xf24_32bpp module is no longer used by any of our drivers, so don't -include it in static builds. - -<item>The xf8_32wid module is only used by the sunffb driver, so don't include -it in non-SPARC static builds. - -<item>Fix generic int10 memory accesses on little-endian systems. - -<item>Fix a SEGV that can occur under certain builds of glibc 2.3.4 and -up, when linux/int10 attempts to determine kernel support for the vm86() -system call. - -<item>Add an xf86DeallocateGARTMemory() function. - -<item>Make autoconfig stop at the first successful probe on each retry, -minimising unnecessary probes. +<item>Made the mmapr and mmapw utilities understand wscons mapping modes on +the *BSD's. </itemize> @@ -644,25 +383,8 @@ <p> <itemize> -<item>Allow build-time selection of which font renderers get built in to -the TinyX servers. - -<item>Fix a problem where VT switching back to TinyX servers was failing -due to blocking on keyboard read. - -<item>Fix a TinyX build issue under <tt>!XserverStaticFontLib</tt>. - -<item>Move Xserver/*/tiny directories under Xserver/hw/tinyx. - -<item>TinyX build fixes. - -</itemize> - -<sect2>Xnest -<p> - -<itemize> -<item>Add a "-noinput" option that allows Xnest to be run in a view-only mode. +<item>Added an option to the TinyX servers to prevent them from probing +serial ports on Linux. </itemize> @@ -670,66 +392,47 @@ <p> <itemize> -<item>Fix incorrect bitsPerPixel for depth 12 in pixmap formats advertised by -the Xsun24 server. +<item>Changes to port the various Xsun servers to NetBSD/sparc have been merged +in. </itemize> -<sect2>cfb +<sect2>XDarwin <p> <itemize> -<item>Fix a bug that occurs when using cfb to tile 32-bit rectangles on SPARC. - -<item>cfb24 is no longer needed. Keep the loadable module, but no longer -statically link it into servers. +<item>This X server has been heavily upgraded by integrating a wide selection +of changes from its now defunct X.Org implementation. </itemize> -<sect2>shadow +<sect2>Xvfb <p> <itemize> -<item>Rewrite shadowUpdateRotatePacked() to reduce cache misses. +<item>Fixed segfaults in Xvfb's command line parsing. </itemize> -<sect2>Xinerama +<sect2>cfb <p> <itemize> -<item>Cause the server to FatalError() when Xinerama attempts to create -a screen whose root depth has no visuals, causing Xlib to segfault. +<item>Fix a number of bugs in cfb24, even though it is no longer used by any +driver provided in the distribution. -<item>Allow Xinerama to initialise even when there is only one screen -to combine. - -<item>Make loadable modules and MI independent of Xinerama: - - <itemize> - <item>Add a DIX helper to determine whether Xinerama is active and use it - instead of #ifdef's code in all loadable modules. - - <item>Re-implement, as a screen wrapper, Xinerama's PaintWindow*() hacks. - - <item>Move down to DIX Xinerama's only MI hook. - - </itemize> +<item>Fix stipple handling on sparc64. </itemize> -<sect2>XFree86-DGA +<sect2>fb <p> <itemize> -<item>Do not call a screen's PointerMoved entry if a DGA mode is active on that -screen. - -<item>Fix client-side framebuffer mapping on NetBSD. +<item>A problem that prevented the use of the GLX extension in some cases has +been corrected. -<item>Make sure that DGAShutdown() is always called before HW state is restored -on exit and reset, and make sure that it is not called after the HW state has -been restored. +<item>Fix fbCompose() for ABGR framebuffers. </itemize> @@ -737,414 +440,19 @@ <p> <itemize> -<item>Fix unaligned access in RenderCompositeGlyphs request. - -</itemize> - -<sect2>RandR -<p> - -<itemize> -<item>Use xf86SetViewport as well as SetCursorPosition during RandR -rotation, as xf86SetViewport will call AdjustFrame to reposition the -window if necessary and avoid the cursor ending up off screen. - -<item>Add a new function xf86GetRotation() to allow third party modules -to obtain the current rotation. - -<item>Fix up error case when rotation fails and the framebuffer needs to -be re-enabled. +<item>Endianness fix for RenderSetPictureClipRectangles request. </itemize> <sect1>Library, Client and Utility Updates - -<p> - -<sect2>Xlib -<p> -<itemize> -<item>Fix typos in XErrorDB that were preventing descriptive messages -for some extension errors. - -</itemize> - -<sect2>Xt -<p> - -<itemize> -<item>Fix an uninitialised pointer dereference in Xt/Initialize.c on WIN32 -platforms that happens if <tt>$HOME</tt> is set in the environment. - -<item>Add support to Xt's string to float converter to read resources in -fractional notation. - -<item>Add some XChar2b string manipulation functions to Xt. - -<item>Bump the minor revision of the Xt shared library to reflect -the fact that some new interfaces have been added. - -</itemize> - -<sect2>Xaw -<p> - -<itemize> - -<item>Extend the tool tip resource for Xaw's simpleWidgetClass to allow -a function to be called - -<item>Fix problems with Xaw's label widget when using XChar2b strings. - -<item>Add a new connectionType property to Xaw's tree widget. - -<item>Make Xaw Form widgets inherit dimensions from their parent at widget -initialisation time. - -<item>Add mouse wheel support for Scrollbars in Xaw's Viewport widget. - -<item>Fix a performance issue with Xaw's Tree widget caused by useless -relayouts. - -<item>Fix i18n for Xaw's tooltip widget. - -<item>Add two new functions that can be used to scroll the content of an -Xaw viewport from outside the viewportWidgetClass. - -<item>Fix the cursor in Xaw textWidget when the input field has focus. - -<item>Bump the minor revision of the Xaw shared library to reflect -the fact that some new interfaces have been added. - -<item>Add user_data field to Xaw's simpleWidgetClass. - -<item>Fix Xaw viewport scrollbar flickering problem. - -</itemize> - -<sect2>pswrap -<p> - -<itemize> -<item>Fix a problem where pswrap generates a bogus .c file when the -h option -is not used. - -<item>Document pswrap's -f option. - -</itemize> - -<sect2>mmapr, mmapw -<p> - -<itemize> -<item>Extend mmapr and mmapw on Linux to allow specification of which -PCI address space (I/O or memory) to mmap. - -<item>Add options to mmapr and mmapw to allow unaligned accesses for testing -purposes - -</itemize> - -<sect2>cpconfig -<p> - -<itemize> -<item>Use the same default XF86Config search path as the XFree86 server. - -</itemize> - -<sect2>xterm -<p> -These changes correspond to xterm patches #200 through #212. - -<itemize> -<item>Improved behavior - - <itemize> - <item>add a new selection feature: regular expressions, and new resources - which specify what happens on multiple mouse clicks: on2Clicks, - on3Clicks, on4Clicks and on5Clicks. - - <item>improve initialization of toolbar so that individual pulldown menus - are initialized on demand, as they are in the scenario where they - are invoked as popup menus. - - <item>improve error-reporting when chown/chmod of the pseudo-terminal - fails, e.g., if a copy of xterm which was designed to work with - old-style pseudo-terminals is not installed setuid or setgid. - - <item>add support for interpreting the underline attribute as an italic - font in Xft mode. - - <item>modify configure script --disable-imake to use the script's - definitions anyway if it cannot detect imake. - - <item>improve resource files to show how the menubar and popup menus can - be colored. - - <item>modify initialization of allowSendEvents and allowWindowOps to - prevent modification with the editres protocol. - - <item>improved some of the built-in line-drawing glyphs. - - <item>set the _NET_WM_PID property. - - <item>update table for mk_width() from UnicodeData 4.1.0. - - <item>implement the remaining pieces to make xterm allocate cells for - wide-characters when the "UTF-8" menu entry is selected. Also, load - the UTF-8 font when that menu entry is selected, or the escape - sequence for UTF-8 mode is received : - - <item>improve behavior when switching to UTF-8 mode after startup so - xterm will check if the current fonts are already wide - (ISO-10646-1). If they are not, xterm will use the utf8Fonts - subresource to load appropriate fonts. - - <item>modify initialization for wide-bold fontname, to search for one if - none is given. - - <item>modify interaction between +u8 and locale resource to allow the - command-line option to override the resource. - - <item>modify initialization to decide whether to default to built-in - wcwidth() versus system's version based on the starting locale and - whether the system's version is poor quality. - - <item>make paste of UTF-8 faster for Western character sets by checking - range of incoming data. - - <item>improve initialization due to utf8 resource by loading the - utf8Fonts resource in the case where locale resource is false. Also - in this case, do not disable switching UTF-8 mode on/off. - - </itemize> - -<item>Modified behavior - - <itemize> - <item>modify parsing of OSC (and SOS, etc), strings so their contents are - not interpreted as UTF-8. This allows non-ASCII title strings to be - set, provided that the window manager complies. - - <item>modify parsing of control sequence CSI T to allow scroll-down to be - sent while mouse tracking is enabled. - - <item>modify command-processing to accept an optional parameter that - tells xterm which shell program to use. - - <item>change xterm manpage to show the actual color resource names - XtDefaultForeground and XtDefaultBackground rather than black and - white. - - <item>modify xterm-new terminfo entry to use capabilities for shifted - scroll forward/reverse as shifted cursor up/down. - - <item>remove menu entry for "Enable Curses Emulation" (to make room for - "Select To Clipboard"). - - <item>modify resource files to make the font-resources a little more - specific, e.g., changing "*VT100*" to "*VT100.", to make the - distinction between VT100.font and VT100.utf8Fonts.font sharper, in - case a packager modifies one of those. - - <item>allow cursor to have the same color as foreground (text), since it - is rendered as reverse. - - <item>modify Imakefile to use setgid mode for installing with Linux, - OpenBSD and FreeBSD. - - </itemize> - -<item>New resource settings - - <itemize> - - <item>add utf8Title resource and menu entry, allowing the user to control - whether title strings are interpreted as ISO-8859-1 or UTF-8 - encoding. - - <item>add scrollBarBorder resource. - - <item>add resource selectToClipboard, action set-select and a menu entry - to allow users to switch between PRIMARY and CLIPBOARD for - select/paste. - - <item>add resource mkWidth and command-line option -mk_width to control - whether xterm uses the built-in version of wcwidth(). - - <item>add resource settings for minimum/maximum input buffer size, and - call to sched_yield to improve performance with newer Linux kernels - - <item>add simpler resource keyboardType which, when set, overrides the - individual keyboard-type resources and eliminates the possibility - of conflict between them. - - </itemize> - -<item>New configure script options - - <itemize> - - <item>the --with-utmp-setgid allows the packager to configure xterm to - use setgid permissions for utmp. - - <item>add configure option --enable-readline-mouse, which turns on the - experimental OPT_READLINE code. - - <item>add --enable-narrowproto configure option to accommodate X.org - "modular" build. - - <item>add configure --with-app-defaults option to allow app-defaults - directory for install-rules to be customized. - - <item>add configure option --with-tty-group to help work around - deficiencies in packager's build environment. - - <item>add configure --with-setuid and --with-reference options to allow - packagers more flexibility in customizing install permissions. - - <item>add configure --with-symlink option to make it simpler to install - successive versions of xterm renamed using the --program-prefix, - etc., options with a symbolic link pointing to the most recent. - - <item>add a configure check for the actual path of luit, to work around - broken imake configurations. - - <item>add a configure check for pkg-config. - - <item>modify install rule for uxterm to account for the --program-prefix, - etc., options by invoking the transformed name of xterm rather than - simply "xterm". - - <item>modify configure --with-app-defaults option to allow - --without-app-defaults. - - <item>add configure option --disable-leaks. - - <item>add experimental option to allow applications to get or set the - selection data as a BASE64 string. - - </itemize> - -<item>Other new features - - <itemize> - - <item>add select-cursor-extend() action. - - <item>add environment variables $XTERM_SHELL and $XTERM_VERSION. - - <item>add menu entry (alt-esc) and corresponding action (alt-sends-esc) - to toggle the eightBitInput resource setting. - - <item>add command-line options (-tb, +tb) and resource toolBar to allow - menu/toolbar to disabled or enabled at startup. - - <item>add extended shift- and control-modifier cursor keys to - "xterm+pcfkeys" terminfo entry to correspond to ncurses 20050430 - patch. - - <item>enable lastlogx support for NetBSD (was added, but not enabled in - patch #186). - - </itemize> - -<item>Bug-fixes (see http://invisible-island.net/xterm/xterm.log.html for a -more complete list): - - <itemize> - - <item>correct typo in configure script's --enable-dec-locator option - - <item>correct a typo in CF_FUNC_TGETENT introduced in patch #198 fix - - <item>fix an off-by-one error parsing -S/nn option. - - <item>add a check in Bell to ensure that the VT100 widget is realized, - since it may be called by xtermLoadFont given an incorrect font - resource. - - <item>correct treatment of iconBorderWidth for resizing an active-icon, - and its description in manpage. - - <item>add a limit check for scrolling margins in a one-line screen, - overlooked in fixes for patch #198. - - <item>correct computation of width for wide characters with the invisible - attribute. - - <item>improve fix from patch #198 for Cleanup() by ensuring it is - not called from the SIGCHLD handler. - - <item>fixes to make -geom option work properly with the toolbar - configuration. - - <item>fix logic in find_utmp, which did not reset result in getutid(), - causing an infinite loop in some conditions. - - <item>fix a rare case where text would be written with the wrong colors - because output of scrolled text would reset the colors and the new - text would be written with the same colors. - - <item>implement logic in termcap query to process multiple parameters as - documented in ctlseqs.ms - - <item>fix buffer size used for termcap query, which was not long enough - for the terminfo "colors" name. - - <item>initialize the saved-cursor data so a restore-cursor operation - without a preceding save-cursor operation will not modify the - foreground color. - - <item>modify Imakefile to work around old problems in imake configuration - to allow test-builds using xmkmf on Linux. (This was not noticed - since several releases had broken definitions relating to Xft which - were harder to work around). - - <item>remove default translations for dabbrev-expand() due to conflicts - with existing keyboard arrangements. - - <item>set icon border width explicitly to work around fvwm problem with - active icon resizing. - - <item>eliminate a retry for a better-matching bold font, to work around - recent font server changes. - - <item>modify prefix/suffix transformation in makefile to make uxterm - install properly on Cygwin. - - <item>correct termcap "me" (mode-end) string so it does not modify the - alternate character set. - - <item>modify computation of rows/columns on resize to avoid extending - beyond the given limits, e.g., if resizing in response to a - "maximize" in Gnome or KDE which do not use the window manager - hints for this case. - - <item>make a special case of resizing work like vt100: a hard reset also - resets the 132/80 mode. The code to support this was present since - X11R5, but not used because the corresponding initial state of the - -132 option was not saved. - - </itemize> - -</itemize> - -<sect2>GLX/DRI <p> -<itemize> -<item>Mesa build fixes for NetBSD/sparc64. - -<item>Solaris/SPARC 64-bit libGL fixes. - -</itemize> - -<sect2>dbedizzy +<sect2>restest <p> <itemize> -<item>Resurrect this DBE extension test utility. +<item>This XRes extension client, originally written by Mark Vojkovich, has +been integrated, after rewriting it to prevent deadlocks that could occur when +displaying its results in an X session. </itemize> @@ -1152,32 +460,9 @@ <p> <itemize> -<item>Use the Xaw tooltip to display the date in xclock. - -</itemize> - -<sect2>twm -<p> - -<itemize> -<item>Add a new function to allow the window text title to be changed -interactively. - -<item>Allow environment variables to be used in menu names. - -<item>Add a new "f.totalzoom" function that zooms windows to cover the whole -area of a screen with no window decoration visible. - -<item>Don't highlight "f.nop" menu items in menus. - -</itemize> - -<sect2>xbiff -<p> - -<itemize> -<item>Add a tooltip to xbiff that shows the number of messages in a mail -folder. +<item>Make an analog xclock, when using Render, update the minute hand at most +every minute instead of every update interval. +This makes it consistent with non-Render mode. </itemize> @@ -1185,81 +470,41 @@ <p> <itemize> -<item>Fix a potential infinite loop when the "willing" command fails to produce -any output. - -</itemize> +<item>Fixed a number of memory leaks. -<sect2>xfd -<p> - -<itemize> -<item>Fix a bug that prevents properly paging through xft fonts beyond -0xFFFF. +<item>Fixed bug that prevented an IPv6-aware xdm from accepting chooser +connections. </itemize> -<sect2>xfs +<sect2>xwd <p> <itemize> -<item>Modify the font server transport messages to go through xfs's -logging mechanism. - -<item>Fix a bug introduced when syslog support was added that prevents -exit on fatal errors. +<item>This utility has been extended to allow selection of a rectangular region +to dump. </itemize> -<sect2>xinit -<p> - -<itemize> -<item>Send SIGINT to slowing exiting X servers instead of SIGKILL. This -works together with the new SIGINT handling in the X servers, and results -in a clean exit. Sending SIGKILL only results in the hardware state not -being restored, often requiring a reboot to recover from. - -</itemize> - -<sect2>xmessage +<sect2>xterm <p> <itemize> -<item>Fix a bug in the handling of escapes in button labels. +<item>Xterm patches upto and including #215 have been integrated. -</itemize> - -<sect2>xvidtune -<p> - -<itemize> -<item>Fix the -timeout <n> option. +<item>Change xterm, on various platforms, to not require that the OS define a +utmp group. </itemize> - <sect1>I18n and Fonts <p> <itemize> -<item>Update mkfontscale's handling of font weights. - -<item>Replace lib/font/fontfile/decompress.c with a version derived from -BSD's src/usr.bin/compress/zopen.c. +<item>Eliminated a number of issues related to the use of external fontconfig +and freetype2 libraries. -<item>Modify the fontconfig library to use getpwnam/getpwuid to find the -home directory when <tt>$HOME</tt> is not set. - -<item>Fix a bug in fontconfig's pattern matching that can cause FcFontMatch() -to fail when it shouldn't. - -<item>Fix a double-free problem in fontconfig. - -<item>Rework printf format specifiers used in XLFD code to make them more -portable and avoid infinite loops in some glibc versions. - -<item>Update the Serbian locale naming to reflect the country's name change -from "Yugoslavia" to "Serbia and Montenegro". +<item>Updated the Serbian locale naming to reflect the country's name change +from "Yugoslavia" to "Serbia and MonteNegro". </itemize> @@ -1267,14 +512,9 @@ <p> <itemize> -<item>Fix some cases in the Darwin build where a variable is declared -static and later as extern. - -<item>Avoid /tmp files in NetBSD.cf's man page creation. - -<item>Install man page source as well as formatted man pages on NetBSD. +<item>Added support for PAM on Solaris and Darwin. -<item>Fix a problem where builds would continue past errors on NetBSD. +<item>Added support for OpenPAM on FreeBSD and NetBSD. </itemize> @@ -1332,6 +572,8 @@ name="nsc(4)" url="nsc.4.html"></tabrow> <tabrow><tt>nv</tt><colsep>NVIDIA<colsep><htmlurl name="nv(4)" url="nv.4.html"></tabrow> + <tabrow><tt>pnozz</tt> (+)<colsep>Weitek P9100<colsep><htmlurl + name="pnozz(4)" url="pnozz.4.html"></tabrow> <tabrow><tt>rendition</tt><colsep>Rendition<colsep><htmlurl name="README.rendition" url="rendition.html">, <htmlurl name="rendition(4)" url="rendition.4.html"></tabrow> @@ -1377,7 +619,7 @@ but are not complete and/or stable yet. <p> -Drivers marked with (+) are for Linux/SPARC only. +Drivers marked with (+) are for SPARC only. <p> Drivers marked with (-) are for Linux/mips only. @@ -1592,9 +834,9 @@ <sect2>Changed behavior caused by DDC. <p> -Several drivers uses DDC information to +Several drivers use DDC information to set the screen size and pitch. This can be overridden by explicitly -resetting it to the and non-DDC default value 75 with the <tt>-dpi +resetting it to the non-DDC default value 75 with the <tt>-dpi 75</tt> command line option for the X server, or by specifying appropriate screen dimensions with the "DisplaySize" keyword in the "Monitor" section of the config file. @@ -1930,26 +1172,16 @@ <descrip> <tag>New Features, Enhancements and Updates:</tag> <descrip> - <tag>Security Updates:</tag> Marc La France. - - <tag>ASPEED Technologies driver:</tag>Y. C. Chen, ASPEED Technologies. - - <tag>Xabre Graphics driver:</tag>Jong Lin, XGI. - - <tag>X server extension rework:</tag> Marc La France. - - <tag>Loader Enhancements:</tag>David H. Dawes, X-Oz Technologies. - - <tag>Intel i945G/i945GM support and other driver enhancements:</tag>Alan - Hourihane, Tungsten Graphics. + <tag>Security Updates:</tag> Josh Bressens, Chris Evans, Matthieu Herrb, + Marc La France, Sean Larsson, Victor Stinner, iDefense. <tag>NVIDIA driver updates and new hardware support:</tag>Mark Vojkovich - <tag>Improved SunOS/SPARC and SBUS support:</tag> Marc La France. + <tag>Improved SPARC support:</tag> Marc La France. <tag>Xterm enhancements and updates:</tag>Thomas Dickey. - <tag>Xaw enhancements:</tag>Alexander Pohoyda. + <tag>DragonFly support:</tag>David H. Dawes. </descrip> <tag>Integration:</tag> @@ -1959,69 +1191,53 @@ <tag>Release Engineering:</tag>David H. Dawes. <tag>Patches and other submissions (in alphabetical order):</tag> -ASPEED Technologies, Andrew Aitchison, -James Ascroft-Leigh, -Étienne Bersac, +Marc Balmer, +Etienne Bersac, +Martin Bochnig, Peter Breitenlohner, -Terry Chang, -Y. C. Chen, -Jeff Chua, -James Cloos, +Josh Bressers, +James Chacon, +Yves de Champlain, Alan Coopersmith, -Miguel González Cuadrado, David Dawes, +Eike Dehling, Thomas Dickey, -Stefan Dirsch, -Bernd Ernesti, -Jordan Frank, +Matthias Drochner, +Jay Estabrook, +Chris Evans, Will L G, -Frank Giessler, -Thorsten Glaser, -Damian Janusz Gruszka, -Lukas Hejtmanek, -Evil Mr Henry, -Jens Herden, -Alan Hourihane, -Nicolas Joly, -Bang Jun-Young, -Alexander Kabaev, -Satoshi Kimura, +Andriy Gapon, +Charles M. Hannum, +Frank J. R. Hanstick, +Ben Harris, +Matthieu Herrb, +Iain Hibbert, +Martin Husemann, +iDefense, Milos Komarcevic, Marc La France, -Dejan Lesjak, -Khong Jye Liew, -Jong Lin, +Sean Larrson, Michael Lorenz, -Michael Macallan, -Michal Maruska, +Jie Luo, +Loic Mahe, +Minoura Makoto, +Martin Mares, Luke Mewburn, -Timothy Musson, -Newsh, -Takaaki Nomura, -Ivan Pascal, -Bob Peterson, -Pierre, -Aaron Plattner, +NetBSD, +Dmitry Pervushin, Alexander Pohoyda, -Jeremy C. Reed, -Conrad Schuler, -Bruno Schwander, -Olaf Seibert, -Aaron Solochek, -Helmar Spangenberg, -Ken Stailey, -Tobias Stoeckmann, -Tungsten Graphics, -James Richard Tyrer, -Staffan Ulfberg, -Denis Vlasenko, +Ty Sarna, +SciFi, +Christopher Sekiya, +Jamey Sharp, +Victor Stinner, +Frank van der Linden, +Shin Takemura, Mark Vojkovich, -Tom Williams, -Dave Williss, -X-Oz Technologies, -XGI, -Christos Zoulas. +Nathan J. Williams, +X.Org, +Christos Zoulos. <tag>Webmaster:</tag>Georgina O. Economou Index: xc/programs/Xserver/hw/xfree86/doc/sgml/Versions.sgml diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/Versions.sgml:1.8 xc/programs/Xserver/hw/xfree86/doc/sgml/Versions.sgml:1.9 --- xc/programs/Xserver/hw/xfree86/doc/sgml/Versions.sgml:1.8 Wed Mar 9 21:35:08 2005 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/Versions.sgml Fri Aug 3 22:16:08 2007 @@ -10,7 +10,7 @@ <date>6 February 2005 <ident> -$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Versions.sgml,v 1.8 2005/03/10 02:35:08 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Versions.sgml,v 1.9 2007/08/04 02:16:08 tsi Exp $ </ident> <abstract> @@ -32,8 +32,8 @@ XFree86 release cycles occur approximately every 12 months and coincide with the calendar year. For example 4.0 was released in 2000; 4.1 in -2001; 4.2 in 2002; 4.3 in 2003; 4.4 in 2004 and 4.5 in 2005. So it is -safe to say that 4.6 will be released early in 2006. +2001; 4.2 in 2002; 4.3 in 2003; 4.4 in 2004; 4.5 in 2005; 4.6 in 2006 and 4.7 +in 2007. So it is safe to say that 4.8 will be released late in 2008. The development phase typically ends 1-3 months before the release date and is marked by the start of a <bf>feature freeze </bf>. The timing of @@ -127,7 +127,7 @@ <sect1>Maintenance Branch <p> -After a full release, the maintenance branch for the release will be be +After a full release, the maintenance branch for the release will be created to hold important bug fixes and updates. Snapshots and release candidates may be tagged on maintenance branches from time to time. When an update release is cut, the patch level value (<tt>P</tt>) is Index: xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent:1.50 xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent:1.51 --- xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent:1.50 Sun Apr 23 13:03:51 2006 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent Fri Aug 3 22:16:08 2007 @@ -1,23 +1,23 @@ -<!-- $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent,v 1.50 2006/04/23 17:03:51 dawes Exp $ --> +<!-- $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent,v 1.51 2007/08/04 02:16:08 tsi Exp $ --> <!-- shared entity definitions for the XFree86 documentation --> <!-- XFree86 version string --> -<!ENTITY relvers CDATA "4.6.0"> -<!ENTITY prevrelvers CDATA "4.5.0"> -<!ENTITY fullrelvers CDATA "4.6.0"> -<!ENTITY prevfullrelvers CDATA "4.5.0"> -<!ENTITY nextfullrelvers CDATA "4.7.0"> +<!ENTITY relvers CDATA "4.7.0"> +<!ENTITY prevrelvers CDATA "4.6.0"> +<!ENTITY fullrelvers CDATA "4.7.0"> +<!ENTITY prevfullrelvers CDATA "4.6.0"> +<!ENTITY nextfullrelvers CDATA "4.8.0"> <!ENTITY nextfullreldate CDATA "not scheduled"> -<!ENTITY nextupdrelvers CDATA "4.6.1"> -<!ENTITY srcvers CDATA "460"> -<!ENTITY prevsrcvers CDATA "450"> -<!ENTITY fullsrcvers CDATA "460"> -<!ENTITY prevfullsrcvers CDATA "450"> -<!ENTITY whichfullrel CDATA "ninth"> +<!ENTITY nextupdrelvers CDATA "4.7.1"> +<!ENTITY srcvers CDATA "470"> +<!ENTITY prevsrcvers CDATA "460"> +<!ENTITY fullsrcvers CDATA "470"> +<!ENTITY prevfullsrcvers CDATA "460"> +<!ENTITY whichfullrel CDATA "tenth"> <!ENTITY whichupdaterel CDATA "none"> -<!ENTITY reltag CDATA "xf-4_6_0"> -<!ENTITY relbranchtag CDATA "xf-4_6-branch"> +<!ENTITY reltag CDATA "xf-4_7_0"> +<!ENTITY relbranchtag CDATA "xf-4_7-branch"> <!ENTITY rcnum CDATA "none"> <!-- Version of the most recent 3.3.x release --> Index: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c diff -u xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c:1.71 xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c:1.73 --- xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c:1.71 Thu Mar 16 11:49:57 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c Tue Jan 23 13:02:59 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c,v 1.71 2006/03/16 16:49:57 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c,v 1.73 2007/01/23 18:02:59 tsi Exp $ */ #include "apm.h" #include "xf86cmap.h" @@ -30,8 +30,8 @@ static void ApmIdentify(int flags); static Bool ApmProbe(DriverPtr drv, int flags); static Bool ApmPreInit(ScrnInfoPtr pScrn, int flags); -static Bool ApmScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); +static Bool ApmScreenInit(int Index, ScreenPtr pScreen, + const int argc, const char **argv); static Bool ApmEnterVT(int scrnIndex, int flags); static void ApmLeaveVT(int scrnIndex, int flags); static Bool ApmCloseScreen(int scrnIndex, ScreenPtr pScreen); @@ -1847,7 +1847,7 @@ /* This gets called at the start of each server generation */ static Bool -ApmScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +ApmScreenInit(int scrnIndex, ScreenPtr pScreen, const int argc, const char **argv) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; APMDECL(pScrn); Index: xc/programs/Xserver/hw/xfree86/drivers/ark/ark_driver.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ark/ark_driver.c:1.25 xc/programs/Xserver/hw/xfree86/drivers/ark/ark_driver.c:1.27 --- xc/programs/Xserver/hw/xfree86/drivers/ark/ark_driver.c:1.25 Thu Mar 16 11:49:58 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ark/ark_driver.c Tue Jan 23 13:02:59 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ark/ark_driver.c,v 1.25 2006/03/16 16:49:58 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ark/ark_driver.c,v 1.27 2007/01/23 18:02:59 tsi Exp $ */ /* * Copyright 2000 Ani Joshi <ajoshi@unixbox.com> * @@ -56,8 +56,8 @@ static Bool ARKEnterVT(int scrnIndex, int flags); static void ARKLeaveVT(int scrnIndex, int flags); static void ARKSave(ScrnInfoPtr pScrn); -static Bool ARKScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, - char **argv); +static Bool ARKScreenInit(int scrnIndex, ScreenPtr pScreen, + const int argc, const char **argv); static Bool ARKMapMem(ScrnInfoPtr pScrn); static void ARKUnmapMem(ScrnInfoPtr pScrn); static Bool ARKModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode); @@ -503,8 +503,8 @@ return TRUE; } -static Bool ARKScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, - char **argv) +static Bool ARKScreenInit(int scrnIndex, ScreenPtr pScreen, + const int argc, const char **argv) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; ARKPtr pARK = ARKPTR(pScrn); Index: xc/programs/Xserver/hw/xfree86/drivers/aspeed/ast_driver.c diff -u xc/programs/Xserver/hw/xfree86/drivers/aspeed/ast_driver.c:1.1 xc/programs/Xserver/hw/xfree86/drivers/aspeed/ast_driver.c:1.3 --- xc/programs/Xserver/hw/xfree86/drivers/aspeed/ast_driver.c:1.1 Thu Apr 13 20:50:38 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/aspeed/ast_driver.c Tue Jan 23 13:02:59 2007 @@ -19,7 +19,7 @@ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/aspeed/ast_driver.c,v 1.1 2006/04/14 00:50:38 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/aspeed/ast_driver.c,v 1.3 2007/01/23 18:02:59 tsi Exp $ */ #include "xf86.h" #include "xf86_ansic.h" @@ -46,7 +46,7 @@ const OptionInfoRec *ASTAvailableOptions(int chipid, int busid); static Bool ASTProbe(DriverPtr drv, int flags); static Bool ASTPreInit(ScrnInfoPtr pScrn, int flags); -static Bool ASTScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv); +static Bool ASTScreenInit(int Index, ScreenPtr pScreen, const int argc, const char **argv); static Bool ASTSwitchMode(int scrnIndex, DisplayModePtr mode, int flags); static void ASTAdjustFrame(int scrnIndex, int x, int y, int flags); static Bool ASTEnterVT(int scrnIndex, int flags); @@ -660,7 +660,7 @@ static Bool -ASTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +ASTScreenInit(int scrnIndex, ScreenPtr pScreen, const int argc, const char **argv) { ScrnInfoPtr pScrn; ASTRecPtr pAST; Index: xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile:1.61 xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile:1.62 --- xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile:1.61 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile,v 1.61 2006/01/05 18:55:29 tsi Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile,v 1.62 2007/01/01 16:08:15 tsi Exp $ XCOMM -XCOMM Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org +XCOMM Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org XCOMM XCOMM Permission to use, copy, modify, distribute, and sell this software and XCOMM its documentation for any purpose is hereby granted without fee, provided Index: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/ati.c:1.27 xc/programs/Xserver/hw/xfree86/drivers/ati/ati.c:1.29 --- xc/programs/Xserver/hw/xfree86/drivers/ati/ati.c:1.27 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/ati.c Thu Jun 28 09:17:14 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.c,v 1.27 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.c,v 1.29 2007/06/28 13:17:14 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -46,9 +46,9 @@ * ... and, many, many others from around the world. * * In addition, this work would not have been possible without the active - * support, both moral and otherwise, of the staff and management of Computing - * and Network Services at the University of Alberta, in Edmonton, Alberta, - * Canada. + * support, both moral and otherwise, of the staff and management of Academic + * Information and Communications Technologies at the University of Alberta, in + * Edmonton, Alberta, Canada. * * The driver is intended to support all ATI adapters since their VGA Wonder * V3, including OEM counterparts. Index: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/ati.h:1.12 xc/programs/Xserver/hw/xfree86/drivers/ati/ati.h:1.13 --- xc/programs/Xserver/hw/xfree86/drivers/ati/ati.h:1.12 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/ati.h Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.h,v 1.12 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.h,v 1.13 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1999 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1999 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.c:1.17 xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.c:1.18 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.c:1.17 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.c Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.c,v 1.17 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.c,v 1.18 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 2001 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2001 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.h:1.8 xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.h:1.9 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.h:1.8 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.h Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.h,v 1.8 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaccel.h,v 1.9 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 2001 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2001 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.c:1.21 xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.c:1.22 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.c:1.21 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.c Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.c,v 1.21 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.c,v 1.22 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.h:1.14 xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.h:1.15 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.h:1.14 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.h Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.h,v 1.14 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadapter.h,v 1.15 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.c:1.19 xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.c:1.20 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.c:1.19 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.c Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.c,v 1.19 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.c,v 1.20 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.h:1.11 xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.h:1.12 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.h:1.11 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.h Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.h,v 1.11 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiadjust.h,v 1.12 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.c:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.c:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.c:1.4 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.c Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.c,v 1.4 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.c,v 1.5 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.h:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.h:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.h:1.4 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.h Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.h,v 1.4 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiaudio.h,v 1.5 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.c:1.16 xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.c:1.17 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.c:1.16 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.c Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.c,v 1.16 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.c,v 1.17 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.h:1.12 xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.h:1.13 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.h:1.12 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.h Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.h,v 1.12 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atibank.h,v 1.13 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.c:1.22 xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.c:1.23 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.c:1.22 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.c Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.c,v 1.22 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.c,v 1.23 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.h:1.14 xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.h:1.15 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.h:1.14 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.h Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.h,v 1.14 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atibus.h,v 1.15 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c:1.42 xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c:1.43 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c:1.42 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c,v 1.42 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.c,v 1.43 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.h:1.31 xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.h:1.32 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.h:1.31 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.h Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.h,v 1.31 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atichip.h,v 1.32 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.c:1.29 xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.c:1.30 --- xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.c:1.29 Sat Jan 28 20:45:05 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.c Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.c,v 1.29 2006/01/29 01:45:05 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.c,v 1.30 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.h:1.11 xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.h:1.12 --- xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.h:1.11 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.h Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.h,v 1.11 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticlock.h,v 1.12 2007/01/01 16:08:15 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c:1.20 xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c:1.21 --- xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c:1.20 Fri Feb 24 10:31:31 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c Mon Jan 1 11:08:15 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c,v 1.20 2006/02/24 15:31:31 tsi Exp $*/ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.c,v 1.21 2007/01/01 16:08:15 tsi Exp $*/ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.h:1.8 xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.h:1.9 --- xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.h:1.8 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.h,v 1.8 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonfig.h,v 1.9 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c:1.27 xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c:1.28 --- xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c:1.27 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c,v 1.27 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.c,v 1.28 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.h:1.12 xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.h:1.13 --- xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.h:1.12 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.h,v 1.12 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticonsole.h,v 1.13 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/aticrtc.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/aticrtc.h:1.12 xc/programs/Xserver/hw/xfree86/drivers/ati/aticrtc.h:1.13 --- xc/programs/Xserver/hw/xfree86/drivers/ati/aticrtc.h:1.12 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/aticrtc.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticrtc.h,v 1.12 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticrtc.h,v 1.13 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.c:1.7 xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.c:1.8 --- xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.c:1.7 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.c,v 1.7 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.c,v 1.8 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2001 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2001 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.h:1.6 xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.h:1.7 --- xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.h:1.6 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.h,v 1.6 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/aticursor.h,v 1.7 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2001 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2001 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.c:1.24 xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.c:1.25 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.c:1.24 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.c,v 1.24 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.c,v 1.25 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.h:1.19 xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.h:1.20 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.h:1.19 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.h,v 1.19 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidac.h,v 1.20 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.c:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.c:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.c:1.4 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.c,v 1.4 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.c,v 1.5 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.h:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.h:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.h:1.4 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.h,v 1.4 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidecoder.h,v 1.5 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.c:1.16 xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.c:1.17 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.c:1.16 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.c,v 1.16 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.c,v 1.17 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.h:1.11 xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.h:1.12 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.h:1.11 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.h,v 1.11 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidga.h,v 1.12 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.c:1.26 xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.c:1.27 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.c:1.26 Fri Feb 17 12:01:39 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.c,v 1.26 2006/02/17 17:01:39 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.c,v 1.27 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.h:1.13 xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.h:1.14 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.h:1.13 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.h,v 1.13 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atidsp.h,v 1.14 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.c:1.5 xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.c:1.6 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.c:1.5 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.c,v 1.5 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.c,v 1.6 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2005 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2005 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.h:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.h:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.h:1.4 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.h,v 1.4 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiendian.h,v 1.5 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2005 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2005 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.c:1.7 xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.c:1.8 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.c:1.7 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.c,v 1.7 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.c,v 1.8 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.h:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.h:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.h:1.4 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.h,v 1.4 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atii2c.h,v 1.5 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.c:1.15 xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.c:1.16 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.c:1.15 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.c,v 1.15 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.c,v 1.16 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.h:1.14 xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.h:1.15 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.h:1.14 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.h,v 1.14 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiident.h,v 1.15 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h:1.18 xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h:1.19 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h:1.18 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h,v 1.18 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h,v 1.19 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.c:1.23 xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.c:1.25 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.c:1.23 Thu Mar 16 11:49:58 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.c,v 1.23 2006/03/16 16:49:58 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.c,v 1.25 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -46,7 +46,7 @@ const char *ATIddcSymbols[] = { "xf86PrintEDID", - "xf86SetDDCProperties", + "xf86SetDDCproperties", NULL }; Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.h:1.13 xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.h:1.14 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.h:1.13 Sun Mar 19 14:06:34 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.h,v 1.13 2006/03/19 19:06:34 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiload.h,v 1.14 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c:1.25 xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c:1.26 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c:1.25 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c,v 1.25 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c,v 1.26 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1999 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1999 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.h:1.8 xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.h:1.9 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.h:1.8 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.h,v 1.8 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.h,v 1.9 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1999 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1999 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c:1.59 xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c:1.60 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c:1.59 Fri Feb 17 12:01:39 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c,v 1.59 2006/02/17 17:01:39 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c,v 1.60 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.h:1.20 xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.h:1.21 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.h:1.20 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.h,v 1.20 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.h,v 1.21 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.c:1.10 xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.c:1.12 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.c:1.10 Fri Feb 17 12:01:39 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.c,v 1.10 2006/02/17 17:01:39 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.c,v 1.12 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -341,7 +341,7 @@ * operation to commit its results to video memory before starting the next * one. The probability of such occurrences increases with GUI_WB_FLUSH * (or GUI_WB_FLUSH_P) setting, bitsPerPixel and/or CRTC clock. This - * would point to some kind of video memory bandwidth problem were it noti + * would point to some kind of video memory bandwidth problem were it not * for the fact that the problem occurs less often (but still occurs) when * copying larger rectangles. */ Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.h:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.h:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.h:1.4 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.h,v 1.4 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64accel.h,v 1.5 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.c:1.6 xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.c:1.7 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.c:1.6 Thu Jan 5 13:55:29 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.c,v 1.6 2006/01/05 18:55:29 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.c,v 1.7 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.h:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.h:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.h:1.4 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.h,v 1.4 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64cursor.h,v 1.5 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.c:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.c:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.c:1.4 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.c,v 1.4 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.c,v 1.5 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.h:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.h:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.h:1.4 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.h,v 1.4 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64i2c.h,v 1.5 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.c:1.10 xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.c:1.11 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.c:1.10 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.c,v 1.10 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.c,v 1.11 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.h:1.19 xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.h:1.20 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.h:1.19 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.h,v 1.19 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64io.h,v 1.20 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.c:1.11 xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.c:1.12 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.c:1.11 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.c,v 1.11 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.c,v 1.12 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.h:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.h:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.h:1.4 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.h,v 1.4 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64xv.h,v 1.5 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimisc.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimisc.c:1.15 xc/programs/Xserver/hw/xfree86/drivers/ati/atimisc.c:1.16 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimisc.c:1.15 Sun Mar 19 14:06:34 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimisc.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimisc.c,v 1.15 2006/03/19 19:06:34 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimisc.c,v 1.16 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.c:1.25 xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.c:1.27 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.c:1.25 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.c,v 1.25 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.c,v 1.27 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -54,8 +54,14 @@ for (iBank = 0; iBank < pATIHW->nBank; iBank++) { + int i = 0x00010000; + volatile CARD8 *t = *to, *f = *from; + (*pATIHW->SetBank)(pATI, iBank); - (void)memcpy(*to, *from, 0x00010000U); + + while (--i >= 0) + *(t++) = *(f++); + *saveptr = (char *)(*saveptr) + 0x00010000U; } } Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.h:1.8 xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.h:1.9 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.h:1.8 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.h,v 1.8 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimode.h,v 1.9 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.c:1.22 xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.c:1.24 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.c:1.22 Sun Mar 19 14:06:34 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.c,v 1.22 2006/03/19 19:06:34 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.c,v 1.24 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -148,6 +148,7 @@ "ATIUnmapApertures", "R128Chipsets", "RADEONChipsets", + "atiModuleData", "gRADEONEntityIndex", NULL }; Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.h:1.12 xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.h:1.13 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.h:1.12 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.h,v 1.12 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimodule.h,v 1.13 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atimono.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atimono.h:1.10 xc/programs/Xserver/hw/xfree86/drivers/ati/atimono.h:1.11 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atimono.h:1.10 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atimono.h Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimono.h,v 1.10 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimono.h,v 1.11 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.c:1.26 xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.c:1.27 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.c:1.26 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.c Mon Jan 1 11:08:16 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.c,v 1.26 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.c,v 1.27 2007/01/01 16:08:16 tsi Exp $ */ /* - * Copyright 1999 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1999 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.h:1.16 xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.h:1.17 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.h:1.16 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.h,v 1.16 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atioption.h,v 1.17 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1999 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1999 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c:1.91 xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c:1.92 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c:1.91 Fri Feb 24 10:31:31 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c,v 1.91 2006/02/24 15:31:31 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c,v 1.92 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1999 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1999 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.h:1.9 xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.h:1.10 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.h:1.9 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.h,v 1.9 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.h,v 1.10 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1999 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1999 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c:1.38 xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c:1.39 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c:1.38 Tue Apr 18 11:52:57 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c,v 1.38 2006/04/18 15:52:57 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c,v 1.39 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.h:1.14 xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.h:1.15 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.h:1.14 Fri Feb 17 12:01:39 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.h,v 1.14 2006/02/17 17:01:39 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.h,v 1.15 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atipriv.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atipriv.h:1.8 xc/programs/Xserver/hw/xfree86/drivers/ati/atipriv.h:1.9 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atipriv.h:1.8 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atipriv.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atipriv.h,v 1.8 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atipriv.h,v 1.9 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1999 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1999 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c:1.73 xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c:1.77 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c:1.73 Sun Mar 19 14:06:35 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c Tue Feb 13 13:30:09 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c,v 1.73 2006/03/19 19:06:35 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c,v 1.77 2007/02/13 18:30:09 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -115,6 +115,8 @@ CARD16 Base; CARD8 Size; CARD8 Flag; + CARD8 Flag2; + CARD8 Pad[7]; } PortRec, *PortPtr; /* BIOS definitions */ @@ -140,16 +142,21 @@ ( PortPtr *PCIPorts, int *nPCIPort, - const int Domain, + const int Domain, const CARD32 *pBase, const int *pSize, + int nBARs, + int minMask, const CARD8 ProbeFlag ) { CARD16 Base; - int i, j; + int i; + + if (minMask == TRUE) + minMask = -1; - for (i = 6; --i >= 0; pBase++, pSize++) + for (; minMask >>= 1, --nBARs >= 0; pBase++, pSize++) { if (*pBase & PCI_MAP_IO) { @@ -157,22 +164,26 @@ continue; Base = *pBase & ~IO_BYTE_SELECT; - for (j = 0; ; j++) + for (i = 0; ; i++) { - if (j >= *nPCIPort) + if (i >= *nPCIPort) { (*nPCIPort)++; *PCIPorts = (PortPtr)xnfrealloc(*PCIPorts, *nPCIPort * SizeOf(PortRec)); - (*PCIPorts)[j].Domain = Domain; - (*PCIPorts)[j].Base = Base; - (*PCIPorts)[j].Size = (CARD8)*pSize; - (*PCIPorts)[j].Flag = ProbeFlag; + (*PCIPorts)[i].Domain = Domain; + (*PCIPorts)[i].Base = Base; + (*PCIPorts)[i].Size = (CARD8)*pSize; + (*PCIPorts)[i].Flag = ProbeFlag; + if (minMask & 1) + (*PCIPorts)[i].Flag2 = ProbeFlag; + else + (*PCIPorts)[i].Flag2 = Allowed; break; } - if ((Domain == (*PCIPorts)[j].Domain) && - (Base == (*PCIPorts)[j].Base)) + if ((Domain == (*PCIPorts)[i].Domain) && + (Base == (*PCIPorts)[i].Base)) break; } @@ -183,7 +194,7 @@ if (!PCI_MAP_IS64BITMEM(*pBase)) continue; - i--; + nBARs--; pBase++; pSize++; } @@ -1132,7 +1143,7 @@ IOADDRESS *pDomainIOBase = NULL; PortPtr PCIPorts = NULL; CARD8 *ProbeFlags = NULL; - int ProbeSize; + int ProbeSize, nBARs; int nPCIPort = 0; int Domain, MaxDomain = 0; int i, j, k; @@ -1147,7 +1158,7 @@ static const CARD16 Mach64SparseIOBases[] = {0x02ECU, 0x01CCU, 0x01C8U}; CARD16 Mach64SparseIOBase; CARD8 fChipsets[ATI_CHIPSET_MAX]; - CARD8 ProbeFlag; + CARD8 ProbeFlag, ProbeFlag2; unsigned long BIOSBase; CARD8 BIOS[PrefixSize]; @@ -1257,10 +1268,15 @@ if ((pVideo->vendor == PCI_VENDOR_ATI)) continue; + if (!(pciReadLong(pPCI->tag, PCI_CMD_STAT_REG) & + PCI_CMD_IO_ENABLE)) + ProbeFlag = Allowed; + else + ProbeFlag = 0; + ATIScanPCIBases(&PCIPorts, &nPCIPort, Domain, &pPCI->pci_base0, pVideo->size, - (pciReadLong(pPCI->tag, PCI_CMD_STAT_REG) & - PCI_CMD_IO_ENABLE) ? 0 : Allowed); + 6, pPCI->minBasesize, ProbeFlag); } } @@ -1273,16 +1289,37 @@ if (Domain > MaxDomain) MaxDomain = Domain; - if ((pPCI->pci_vendor == PCI_VENDOR_ATI) || - (pPCI->pci_base_class == PCI_CLASS_BRIDGE) || - (pPCI->pci_header_type & - ~GetByte(PCI_HEADER_MULTIFUNCTION, 2))) + if (pPCI->pci_vendor == PCI_VENDOR_ATI) continue; + switch (pPCI->pci_header_type & + ~GetByte(PCI_HEADER_MULTIFUNCTION, 2)) + { + case 0: + nBARs = 6; + break; + + case 1: + nBARs = 2; + break; + + case 2: + nBARs = 1; + break; + + default: + continue; + } + + if (!(pciReadLong(pPCI->tag, PCI_CMD_STAT_REG) & + PCI_CMD_IO_ENABLE)) + ProbeFlag = Allowed; + else + ProbeFlag = Conflict; + ATIScanPCIBases(&PCIPorts, &nPCIPort, Domain, &pPCI->pci_base0, pPCI->basesize, - (pciReadLong(pPCI->tag, PCI_CMD_STAT_REG) & - PCI_CMD_IO_ENABLE) ? Conflict : Allowed); + nBARs, pPCI->minBasesize, ProbeFlag); } } @@ -1299,6 +1336,7 @@ Domain = PCIPorts[i].Domain; ProbeFlag = PCIPorts[i].Flag; + ProbeFlag2 = PCIPorts[i].Flag2; /* * The following reduction of Count is based on the assumption that @@ -1316,7 +1354,12 @@ Base = LongPort(Base) + (PCIPorts[i].Domain * DomainSize); Count = LongPort((Count | IO_BYTE_SELECT) + 1); while (Count--) - ProbeFlags[Base++] &= ProbeFlag; + { + if ((ProbeFlag != Allowed) || (ProbeFlags[Base] & Allowed)) + ProbeFlags[Base] = ProbeFlag; + Base++; + ProbeFlag = ProbeFlag2; + } } xfree(PCIPorts); @@ -1868,7 +1911,8 @@ continue; case PCI_CLASS_DISPLAY: - if (pVideo->subclass == PCI_SUBCLASS_DISPLAY_VGA) + if ((pVideo->subclass == PCI_SUBCLASS_DISPLAY_VGA) && + (pVideo->interface == PCI_IF_DISPLAY_VGA)) break; continue; Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.h:1.11 xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.h:1.12 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.h:1.11 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.h,v 1.11 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.h,v 1.12 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiproto.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiproto.h:1.12 xc/programs/Xserver/hw/xfree86/drivers/ati/atiproto.h:1.13 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiproto.h:1.12 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiproto.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiproto.h,v 1.12 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiproto.h,v 1.13 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiregs.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiregs.h:1.33 xc/programs/Xserver/hw/xfree86/drivers/ati/atiregs.h:1.34 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiregs.h:1.33 Sat Jan 28 20:45:05 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiregs.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiregs.h,v 1.33 2006/01/29 01:45:05 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiregs.h,v 1.34 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1994 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1994 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.c:1.8 xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.c:1.9 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.c:1.8 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.c Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.c,v 1.8 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.c,v 1.9 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 2001 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2001 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.h:1.6 xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.h:1.7 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.h:1.6 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.h,v 1.6 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atirgb514.h,v 1.7 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 2001 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2001 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c:1.36 xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c:1.40 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c:1.36 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c Tue Jan 23 13:02:59 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c,v 1.36 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.c,v 1.40 2007/01/23 18:02:59 tsi Exp $ */ /* - * Copyright 1999 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1999 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -88,10 +88,10 @@ Bool ATIScreenInit ( - int iScreen, - ScreenPtr pScreen, - int argc, - char **argv + int iScreen, + ScreenPtr pScreen, + const int argc, + const char **argv ) { ScrnInfoPtr pScreenInfo = xf86Screens[iScreen]; Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.h:1.9 xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.h:1.13 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.h:1.9 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.h Tue Jan 23 13:02:59 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.h,v 1.9 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiscreen.h,v 1.13 2007/01/23 18:02:59 tsi Exp $ */ /* - * Copyright 1999 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1999 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -28,7 +28,8 @@ #include "screenint.h" -extern Bool ATIScreenInit FunctionPrototype((int, ScreenPtr, int, char **)); +extern Bool ATIScreenInit FunctionPrototype((int, ScreenPtr, const int, + const char **)); extern Bool ATICloseScreen FunctionPrototype((int, ScreenPtr)); #endif /* ___ATISCREEN_H___ */ Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h:1.49 xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h:1.50 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h:1.49 Fri Feb 17 12:01:39 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h,v 1.49 2006/02/17 17:01:39 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h,v 1.50 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1999 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1999 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.c:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.c:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.c:1.4 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.c Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.c,v 1.4 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.c,v 1.5 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.h:1.4 xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.h:1.5 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.h:1.4 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.h,v 1.4 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atituner.h,v 1.5 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 2003 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2003 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.c:1.11 xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.c:1.12 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.c:1.11 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.c Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.c,v 1.11 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.c,v 1.12 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.h:1.11 xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.h:1.12 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.h:1.11 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.h,v 1.11 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiutil.h,v 1.12 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.c:1.21 xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.c:1.22 --- xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.c:1.21 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.c Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.c,v 1.21 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.c,v 1.22 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.h:1.12 xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.h:1.13 --- xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.h:1.12 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.h,v 1.12 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativalid.h,v 1.13 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h:1.85 xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h:1.90 --- xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h:1.85 Sun Mar 19 14:06:35 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h Tue Feb 13 13:30:09 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h,v 1.85 2006/03/19 19:06:35 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h,v 1.90 2007/02/13 18:30:09 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -39,7 +39,7 @@ #define ATI_VERSION_MAJOR 7 #define ATI_VERSION_MINOR 0 -#define ATI_VERSION_PATCH 10 +#define ATI_VERSION_PATCH 14 #ifndef ATI_VERSION_EXTRA #define ATI_VERSION_EXTRA "" Index: xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c:1.27 xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c:1.28 --- xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c:1.27 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c,v 1.27 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.c,v 1.28 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.h:1.14 xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.h:1.15 --- xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.h:1.14 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.h,v 1.14 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativga.h,v 1.15 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.c:1.9 xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.c:1.10 --- xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.c:1.9 Sun Mar 19 14:06:35 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.c Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.c,v 1.9 2006/03/19 19:06:35 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.c,v 1.10 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.h:1.9 xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.h:1.10 --- xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.h:1.9 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.h,v 1.9 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativgaio.h,v 1.10 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.c:1.21 xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.c:1.22 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.c:1.21 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.c Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.c,v 1.21 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.c,v 1.22 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.h:1.12 xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.h:1.13 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.h:1.12 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.h Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.h,v 1.12 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atividmem.h,v 1.13 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.c:1.18 xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.c:1.19 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.c:1.18 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.c Mon Jan 1 11:08:17 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.c,v 1.18 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.c,v 1.19 2007/01/01 16:08:17 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.h:1.13 xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.h:1.14 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.h:1.13 Thu Jan 5 13:55:30 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.h Mon Jan 1 11:08:18 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.h,v 1.13 2006/01/05 18:55:30 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonder.h,v 1.14 2007/01/01 16:08:18 tsi Exp $ */ /* - * Copyright 1997 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 1997 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.c:1.8 xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.c:1.9 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.c:1.8 Thu Jan 5 13:55:31 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.c Mon Jan 1 11:08:18 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.c,v 1.8 2006/01/05 18:55:31 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.c,v 1.9 2007/01/01 16:08:18 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.h:1.8 xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.h:1.9 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.h:1.8 Thu Jan 5 13:55:31 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.h Mon Jan 1 11:08:18 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.h,v 1.8 2006/01/05 18:55:31 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiwonderio.h,v 1.9 2007/01/01 16:08:18 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.c:1.10 xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.c:1.11 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.c:1.10 Thu Jan 5 13:55:31 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.c Mon Jan 1 11:08:18 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.c,v 1.10 2006/01/05 18:55:31 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.c,v 1.11 2007/01/01 16:08:18 tsi Exp $ */ /* - * Copyright 2001 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2001 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.h:1.7 xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.h:1.8 --- xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.h:1.7 Thu Jan 5 13:55:31 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.h Mon Jan 1 11:08:18 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.h,v 1.7 2006/01/05 18:55:31 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atixv.h,v 1.8 2007/01/01 16:08:18 tsi Exp $ */ /* - * Copyright 2001 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2001 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h:1.28 xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h:1.29 --- xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h:1.28 Fri Dec 10 11:07:00 2004 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h Tue Jan 9 12:04:45 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h,v 1.28 2004/12/10 16:07:00 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128.h,v 1.29 2007/01/09 17:04:45 tsi Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and @@ -64,7 +64,6 @@ #define R128_DEBUG 0 /* Turn off debugging output */ #define R128_IDLE_RETRY 32 /* Fall out of idle loops after this count */ #define R128_TIMEOUT 2000000 /* Fall out of wait loops after this count */ -#define R128_MMIOSIZE 0x4000 #define R128_VBIOS_SIZE 0x00010000 Index: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c:1.33 xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c:1.34 --- xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c:1.33 Fri Dec 10 11:07:00 2004 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c Tue Jan 9 12:04:45 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c,v 1.33 2004/12/10 16:07:00 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_dri.c,v 1.34 2007/01/09 17:04:45 tsi Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and @@ -805,7 +805,7 @@ else flags = 0; /* Map registers */ - info->registerSize = R128_MMIOSIZE; + info->registerSize = 1L << info->PciInfo->size[2]; if (drmAddMap(info->drmFD, info->MMIOAddr, info->registerSize, DRM_REGISTERS, flags, &info->registerHandle) < 0) { return FALSE; Index: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:1.94 xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:1.97 --- xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c:1.94 Thu Mar 16 11:49:59 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c Tue Jan 23 13:02:59 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c,v 1.94 2006/03/16 16:49:59 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_driver.c,v 1.97 2007/01/23 18:02:59 tsi Exp $ */ /* * Copyright 1999, 2000 ATI Technologies Inc., Markham, Ontario, * Precision Insight, Inc., Cedar Park, Texas, and @@ -376,7 +376,7 @@ VIDMEM_MMIO | VIDMEM_READSIDEEFFECT, info->PciTag, info->MMIOAddr, - R128_MMIOSIZE); + 1L << info->PciInfo->size[2]); } if (!info->MMIO) return FALSE; @@ -392,7 +392,8 @@ if (info->FBDev) fbdevHWUnmapMMIO(pScrn); else { - xf86UnMapVidMem(pScrn->scrnIndex, info->MMIO, R128_MMIOSIZE); + xf86UnMapVidMem(pScrn->scrnIndex, info->MMIO, + 1L << info->PciInfo->size[2]); } info->MMIO = NULL; return TRUE; @@ -2075,7 +2076,8 @@ } /* Called at the start of each server generation. */ -Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen, + const int argc, const char **argv) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; R128InfoPtr info = R128PTR(pScrn); Index: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_misc.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/r128_misc.c:1.10 xc/programs/Xserver/hw/xfree86/drivers/ati/r128_misc.c:1.11 --- xc/programs/Xserver/hw/xfree86/drivers/ati/r128_misc.c:1.10 Thu Mar 16 11:49:59 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/r128_misc.c Mon Jan 1 11:08:18 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_misc.c,v 1.10 2006/03/16 16:49:59 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_misc.c,v 1.11 2007/01/01 16:08:18 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h:1.9 xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h:1.11 --- xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h:1.9 Thu Mar 16 11:49:59 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h Tue Jan 23 13:02:59 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h,v 1.9 2006/03/16 16:49:59 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_probe.h,v 1.11 2007/01/23 18:02:59 tsi Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and * VA Linux Systems Inc., Fremont, California. @@ -58,7 +58,8 @@ extern Bool R128PreInit FunctionPrototype((ScrnInfoPtr, int)); extern Bool R128ScreenInit - FunctionPrototype((int, ScreenPtr, int, char **)); + FunctionPrototype((int, ScreenPtr, const int, + const char **)); extern Bool R128SwitchMode FunctionPrototype((int, DisplayModePtr, int)); extern void R128AdjustFrame Index: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_version.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/r128_version.h:1.9 xc/programs/Xserver/hw/xfree86/drivers/ati/r128_version.h:1.10 --- xc/programs/Xserver/hw/xfree86/drivers/ati/r128_version.h:1.9 Thu Jan 5 13:55:31 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/r128_version.h Mon Jan 1 11:08:18 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_version.h,v 1.9 2006/01/05 18:55:31 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/r128_version.h,v 1.10 2007/01/01 16:08:18 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h:1.47 xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h:1.48 --- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h:1.47 Thu Mar 16 11:49:59 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h Tue Jan 9 12:04:45 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h,v 1.47 2006/03/16 16:49:59 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon.h,v 1.48 2007/01/09 17:04:45 tsi Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and * VA Linux Systems Inc., Fremont, California. @@ -64,7 +64,6 @@ #define RADEON_DEBUG 0 /* Turn off debugging output */ #define RADEON_IDLE_RETRY 16 /* Fall out of idle loops after this count */ #define RADEON_TIMEOUT 2000000 /* Fall out of wait loops after this count */ -#define RADEON_MMIOSIZE 0x80000 #define RADEON_VBIOS_SIZE 0x00010000 #define RADEON_USE_RMX 0x80000000 /* mode flag for using RMX Index: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:1.41 xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:1.42 --- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c:1.41 Fri Dec 10 11:07:01 2004 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c Tue Jan 9 12:04:45 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c,v 1.41 2004/12/10 16:07:01 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_dri.c,v 1.42 2007/01/09 17:04:45 tsi Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, * VA Linux Systems Inc., Fremont, California. @@ -996,7 +996,7 @@ static Bool RADEONDRIMapInit(RADEONInfoPtr info, ScreenPtr pScreen) { /* Map registers */ - info->registerSize = RADEON_MMIOSIZE; + info->registerSize = 1L << info->PciInfo->size[2]; if (drmAddMap(info->drmFD, info->MMIOAddr, info->registerSize, DRM_REGISTERS, DRM_READ_ONLY, &info->registerHandle) < 0) { return FALSE; Index: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:1.132 xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:1.136 --- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c:1.132 Thu Mar 16 11:49:59 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c Fri Mar 23 22:29:44 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c,v 1.132 2006/03/16 16:49:59 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_driver.c,v 1.136 2007/03/24 02:29:44 tsi Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and * VA Linux Systems Inc., Fremont, California. @@ -530,7 +530,7 @@ VIDMEM_MMIO | VIDMEM_READSIDEEFFECT, info->PciTag, info->MMIOAddr, - RADEON_MMIOSIZE); + 1L << info->PciInfo->size[2]); } if (!info->MMIO) return FALSE; @@ -547,7 +547,8 @@ if (info->FBDev) fbdevHWUnmapMMIO(pScrn); else { - xf86UnMapVidMem(pScrn->scrnIndex, info->MMIO, RADEON_MMIOSIZE); + xf86UnMapVidMem(pScrn->scrnIndex, info->MMIO, + 1L << info->PciInfo->size[2]); } info->MMIO = NULL; return TRUE; @@ -4268,7 +4269,8 @@ } /* Called at the start of each server generation. */ -Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +Bool RADEONScreenInit(int scrnIndex, ScreenPtr pScreen, + const int argc, const char **argv) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; RADEONInfoPtr info = RADEONPTR(pScrn); @@ -5538,7 +5540,7 @@ */ vgaHWSave(pScrn, &hwp->SavedReg, VGA_SR_MODE); /* Save mode only */ #else - vgaHWSave(pScrn, &hwp->SavedReg, VGA_SR_MODE | VGA_SR_FONTS); /* Save mode + vgaHWSave(pScrn, &hwp->SavedReg, VGA_SR_ALL); /* Save mode * & fonts & cmap */ #endif @@ -5606,9 +5608,9 @@ /* Temporary hack to prevent crashing on PowerMacs when trying to * write VGA fonts, will find a better solution in the future */ - vgaHWRestore(pScrn, &hwp->SavedReg, VGA_SR_MODE ); + vgaHWRestore(pScrn, &hwp->SavedReg, VGA_SR_MODE); #else - vgaHWRestore(pScrn, &hwp->SavedReg, VGA_SR_MODE | VGA_SR_FONTS ); + vgaHWRestore(pScrn, &hwp->SavedReg, VGA_SR_ALL); #endif vgaHWLock(hwp); } else { @@ -6955,6 +6957,8 @@ RADEONTRACE(("RADEONEnterVT\n")); + RADEONSave(pScrn); + if (info->FBDev) { unsigned char *RADEONMMIO = info->MMIO; if (!fbdevHWEnterVT(scrnIndex,flags)) return FALSE; Index: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_misc.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_misc.c:1.12 xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_misc.c:1.13 --- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_misc.c:1.12 Thu Mar 16 11:50:00 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_misc.c Mon Jan 1 11:08:18 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_misc.c,v 1.12 2006/03/16 16:50:00 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_misc.c,v 1.13 2007/01/01 16:08:18 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h:1.17 xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h:1.19 --- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h:1.17 Thu Mar 16 11:50:00 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h Tue Jan 23 13:03:00 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h,v 1.17 2006/03/16 16:50:00 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_probe.h,v 1.19 2007/01/23 18:03:00 tsi Exp $ */ /* * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and * VA Linux Systems Inc., Fremont, California. @@ -84,7 +84,8 @@ extern Bool RADEONPreInit FunctionPrototype((ScrnInfoPtr, int)); extern Bool RADEONScreenInit - FunctionPrototype((int, ScreenPtr, int, char **)); + FunctionPrototype((int, ScreenPtr, const int, + const char **)); extern Bool RADEONSwitchMode FunctionPrototype((int, DisplayModePtr, int)); #ifdef X_XF86MiscPassMessage Index: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h:1.13 xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h:1.14 --- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h:1.13 Thu Jan 5 13:55:31 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h Mon Jan 1 11:08:18 2007 @@ -1,6 +1,6 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h,v 1.13 2006/01/05 18:55:31 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_version.h,v 1.14 2007/01/01 16:08:18 tsi Exp $ */ /* - * Copyright 2000 through 2006 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org + * Copyright 2000 through 2007 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that Index: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c diff -u xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:1.32 xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:1.33 --- xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c:1.32 Fri Oct 14 11:16:37 2005 +++ xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c Tue Jun 27 14:42:33 2006 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c,v 1.32 2005/10/14 15:16:37 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/radeon_video.c,v 1.33 2006/06/27 18:42:33 dawes Exp $ */ #include "radeon.h" #include "radeon_macros.h" @@ -165,7 +165,7 @@ } REF_TRANSFORM; /* Parameters for ITU-R BT.601 and ITU-R BT.709 colour spaces */ -REF_TRANSFORM trans[2] = +static REF_TRANSFORM trans[2] = { {1.1678, 0.0, 1.6007, -0.3929, -0.8154, 2.0232, 0.0}, /* BT.601 */ {1.1678, 0.0, 1.7980, -0.2139, -0.5345, 2.1186, 0.0} /* BT.709 */ @@ -181,7 +181,7 @@ } GAMMA_SETTINGS; /* Recommended gamma curve parameters */ -GAMMA_SETTINGS def_gamma[18] = +static GAMMA_SETTINGS def_gamma[18] = { {RADEON_OV0_GAMMA_000_00F, 0x100, 0x0000}, {RADEON_OV0_GAMMA_010_01F, 0x100, 0x0020}, Index: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c diff -u xc/programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c:1.42 xc/programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c:1.44 --- xc/programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c:1.42 Mon Mar 29 11:25:16 2004 +++ xc/programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c Tue Mar 27 13:00:42 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c,v 1.42 2004/03/29 16:25:16 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_accel.c,v 1.44 2007/03/27 17:00:42 tsi Exp $ */ /* * Copyright 1996, 1997, 1998 by David Bateman <dbateman@ee.uts.edu.au> * Modified 1997, 1998 by Nozomi Ytow @@ -280,7 +280,10 @@ #ifdef CHIPS_HIQV infoPtr->CPUToScreenColorExpandFillFlags = - BIT_ORDER_IN_BYTE_MSBFIRST | CPU_TRANSFER_PAD_QWORD | +#if X_BYTE_ORDER == X_LITTLE_ENDIAN + BIT_ORDER_IN_BYTE_MSBFIRST | +#endif + CPU_TRANSFER_PAD_QWORD | LEFT_EDGE_CLIPPING | LEFT_EDGE_CLIPPING_NEGATIVE_X | ROP_NEEDS_SOURCE; #ifdef UNDOCUMENTED_FEATURE @@ -333,7 +336,11 @@ } #endif +#if X_BYTE_ORDER == X_BIG_ENDIAN + infoPtr->ColorExpandBase = (unsigned char *)cAcl->BltDataWindowLE; +#else infoPtr->ColorExpandBase = (unsigned char *)cAcl->BltDataWindow; +#endif infoPtr->ColorExpandRange = 64 * 1024; /* Mono 8x8 pattern fills */ @@ -1556,7 +1563,7 @@ DEBUG_P("WritePixmap"); #ifdef DEBUG - ErrorF("WritePixmap x %d, y %d, w %d, h %d, src 0x%X, srcwidth %d, rop 0x%X, planemask 0x%X, trans 0x%X, bpp %d, depth %d\n", x, y, w, h, src, srcwidth, rop, planemask, trans, bpp, depth); + ErrorF("WritePixmap x %d, y %d, w %d, h %d, src 0x%lX, srcwidth %d, rop 0x%X, planemask 0x%X, trans 0x%X, bpp %d, depth %d\n", x, y, w, h, (unsigned long)src, srcwidth, rop, planemask, trans, bpp, depth); #endif bytesPerLine = w * (bpp >> 3); byteWidthSrc = ((srcwidth * (bpp >> 3) + 3L) & ~0x3L); Index: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c diff -u xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c:1.138 xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c:1.141 --- xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c:1.138 Thu Mar 16 11:50:00 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c Tue Mar 27 13:00:42 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c,v 1.138 2006/03/16 16:50:00 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c,v 1.141 2007/03/27 17:00:42 tsi Exp $ */ /* * Copyright 1993 by Jon Block <block@frc.com> @@ -135,8 +135,8 @@ static void CHIPSIdentify(int flags); static Bool CHIPSProbe(DriverPtr drv, int flags); static Bool CHIPSPreInit(ScrnInfoPtr pScrn, int flags); -static Bool CHIPSScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); +static Bool CHIPSScreenInit(int Index, ScreenPtr pScreen, + const int argc, const char **argv); static Bool CHIPSEnterVT(int scrnIndex, int flags); static void CHIPSLeaveVT(int scrnIndex, int flags); static Bool CHIPSCloseScreen(int scrnIndex, ScreenPtr pScreen); @@ -3806,7 +3806,8 @@ /* Mandatory */ static Bool -CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +CHIPSScreenInit(int scrnIndex, ScreenPtr pScreen, + const int argc, const char **argv) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; vgaHWPtr hwp; @@ -4221,10 +4222,14 @@ cAcl->CacheEnd = 0; } - if (IS_HiQV(cPtr)) + if (IS_HiQV(cPtr)) { +#if X_BYTE_ORDER == X_BIG_ENDIAN + cAcl->BltDataWindowLE = (unsigned char *)cPtr->MMIOBaseLE + + 0x10000L; +#endif cAcl->BltDataWindow = (unsigned char *)cPtr->MMIOBase + 0x10000L; - else + } else cAcl->BltDataWindow = cPtr->FbBase; } @@ -6983,11 +6988,17 @@ if (cPtr->Flags & ChipsLinearSupport) { if (cPtr->UseMMIO) { if (IS_HiQV(cPtr)) { - if (cPtr->Bus == ChipsPCI) + if (cPtr->Bus == ChipsPCI) { cPtr->MMIOBase = xf86MapPciMem(pScrn->scrnIndex, VIDMEM_MMIO_32BIT,cPtr->PciTag, cPtr->IOAddress, 0x20000L); - else +#if X_BYTE_ORDER == X_BIG_ENDIAN + cPtr->MMIOBaseLE = xf86MapPciMem(pScrn->scrnIndex, + VIDMEM_MMIO_32BIT,cPtr->PciTag, + cPtr->PciInfo->memBase[0] + 0x400000, + 0x20000L); +#endif + } else cPtr->MMIOBase = xf86MapVidMem(pScrn->scrnIndex, VIDMEM_MMIO_32BIT, cPtr->IOAddress, 0x20000L); } else { @@ -7073,6 +7084,11 @@ if (cPtr->MMIOBase) xf86UnMapVidMem(pScrn->scrnIndex, (pointer)cPtr->MMIOBase, 0x20000); +#if X_BYTE_ORDER == X_BIG_ENDIAN + if (cPtr->MMIOBaseLE) + xf86UnMapVidMem(pScrn->scrnIndex, (pointer)cPtr->MMIOBaseLE, + 0x20000); +#endif if (cPtr->MMIOBasePipeB) xf86UnMapVidMem(pScrn->scrnIndex, (pointer)cPtr->MMIOBasePipeB, 0x20000); Index: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h diff -u xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h:1.37 xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h:1.38 --- xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h:1.37 Mon Jan 9 09:59:53 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h Tue Mar 27 13:00:43 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h,v 1.37 2006/01/09 14:59:53 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h,v 1.38 2007/03/27 17:00:43 tsi Exp $ */ /* * Modified 1996 by Egbert Eich <eich@xfree86.org> @@ -196,6 +196,9 @@ unsigned int ScratchAddress; /* 64k for color expansion and imagewrites */ unsigned char * BltDataWindow; +#if X_BYTE_ORDER == X_BIG_ENDIAN + unsigned char * BltDataWindowLE; +#endif /* Hardware cursor address */ unsigned int CursorAddress; Bool UseHWCursor; @@ -277,6 +280,9 @@ unsigned int IOBase; unsigned char * FbBase; unsigned char * MMIOBase; +#if X_BYTE_ORDER == X_BIG_ENDIAN + unsigned char * MMIOBaseLE; +#endif unsigned char * MMIOBaseVGA; unsigned char * MMIOBasePipeA; unsigned char * MMIOBasePipeB; Index: xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c diff -u xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c:1.41 xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c:1.43 --- xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c:1.41 Thu Mar 16 11:50:01 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c Tue Jan 23 13:03:00 2007 @@ -11,7 +11,7 @@ * Guy DESBIEF */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c,v 1.41 2006/03/16 16:50:01 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c,v 1.43 2007/01/23 18:03:00 tsi Exp $ */ /* All drivers should typically include these */ #include "xf86.h" @@ -80,7 +80,7 @@ /* Mandatory functions */ Bool AlpPreInit(ScrnInfoPtr pScrn, int flags); -Bool AlpScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv); +Bool AlpScreenInit(int Index, ScreenPtr pScreen, const int argc, const char **argv); Bool AlpEnterVT(int scrnIndex, int flags); void AlpLeaveVT(int scrnIndex, int flags); static Bool AlpCloseScreen(int scrnIndex, ScreenPtr pScreen); @@ -1493,7 +1493,7 @@ /* This gets called at the start of each server generation */ Bool -AlpScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +AlpScreenInit(int scrnIndex, ScreenPtr pScreen, const int argc, const char **argv) { ScrnInfoPtr pScrn; vgaHWPtr hwp; Index: xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c diff -u xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c:1.54 xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c:1.56 --- xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c:1.54 Thu Mar 16 11:50:02 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c Tue Jan 23 13:03:00 2007 @@ -13,7 +13,7 @@ * David Dawes, Andrew E. Mileski, Leonard N. Zubkoff, * Guy DESBIEF, Itai Nahshon. */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c,v 1.54 2006/03/16 16:50:02 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c,v 1.56 2007/01/23 18:03:00 tsi Exp $ */ #define EXPERIMENTAL @@ -71,7 +71,7 @@ /* Mandatory functions */ Bool LgPreInit(ScrnInfoPtr pScrn, int flags); -Bool LgScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv); +Bool LgScreenInit(int Index, ScreenPtr pScreen, const int argc, const char **argv); Bool LgEnterVT(int scrnIndex, int flags); void LgLeaveVT(int scrnIndex, int flags); static Bool LgCloseScreen(int scrnIndex, ScreenPtr pScreen); @@ -1304,7 +1304,7 @@ /* This gets called at the start of each server generation */ Bool -LgScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +LgScreenInit(int scrnIndex, ScreenPtr pScreen, const int argc, const char **argv) { /* The vgaHW references will disappear one day */ ScrnInfoPtr pScrn; Index: xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c diff -u xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c:1.36 xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c:1.38 --- xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c:1.36 Thu Mar 16 11:50:03 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c Tue Jan 23 13:03:01 2007 @@ -50,7 +50,7 @@ * (note that most of the data books have been released by * NatSemi and are downloadable for free as pdf files) */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c,v 1.36 2006/03/16 16:50:03 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c,v 1.38 2007/01/23 18:03:01 tsi Exp $ */ #include "fb.h" #include "mibank.h" @@ -84,8 +84,8 @@ static void CYRIXIdentify(int flags); static Bool CYRIXProbe(DriverPtr drv, int flags); static Bool CYRIXPreInit(ScrnInfoPtr pScrn, int flags); -static Bool CYRIXScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); +static Bool CYRIXScreenInit(int Index, ScreenPtr pScreen, + const int argc, const char **argv); static Bool CYRIXEnterVT(int scrnIndex, int flags); static void CYRIXLeaveVT(int scrnIndex, int flags); static Bool CYRIXCloseScreen(int scrnIndex, ScreenPtr pScreen); @@ -1133,7 +1133,8 @@ /* This gets called at the start of each server generation */ static Bool -CYRIXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +CYRIXScreenInit(int scrnIndex, ScreenPtr pScreen, + const int argc, const char **argv) { /* The vgaHW references will disappear one day */ ScrnInfoPtr pScrn; Index: xc/programs/Xserver/hw/xfree86/drivers/dummy/dummy_driver.c diff -u xc/programs/Xserver/hw/xfree86/drivers/dummy/dummy_driver.c:1.11 xc/programs/Xserver/hw/xfree86/drivers/dummy/dummy_driver.c:1.13 --- xc/programs/Xserver/hw/xfree86/drivers/dummy/dummy_driver.c:1.11 Thu Mar 16 11:50:03 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/dummy/dummy_driver.c Tue Jan 23 13:03:01 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/dummy/dummy_driver.c,v 1.11 2006/03/16 16:50:03 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/dummy/dummy_driver.c,v 1.13 2007/01/23 18:03:01 tsi Exp $ */ /* * Copyright 2002, SuSE Linux AG, Author: Egbert Eich @@ -50,8 +50,8 @@ static void DUMMYIdentify(int flags); static Bool DUMMYProbe(DriverPtr drv, int flags); static Bool DUMMYPreInit(ScrnInfoPtr pScrn, int flags); -static Bool DUMMYScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); +static Bool DUMMYScreenInit(int Index, ScreenPtr pScreen, + const int argc, const char **argv); static Bool DUMMYEnterVT(int scrnIndex, int flags); static void DUMMYLeaveVT(int scrnIndex, int flags); static Bool DUMMYCloseScreen(int scrnIndex, ScreenPtr pScreen); @@ -494,7 +494,8 @@ /* Mandatory */ static Bool -DUMMYScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +DUMMYScreenInit(int scrnIndex, ScreenPtr pScreen, + const int argc, const char **argv) { ScrnInfoPtr pScrn; DUMMYPtr dPtr; Index: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c diff -u xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c:1.50 xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c:1.53 --- xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c:1.50 Thu Mar 16 11:50:04 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c Tue Jan 23 13:03:02 2007 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c,v 1.50 2006/03/16 16:50:04 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c,v 1.53 2007/01/23 18:03:02 tsi Exp $ */ /* * Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk> @@ -31,7 +31,9 @@ #include "xf86xv.h" +#ifndef DEBUG #define DEBUG 0 +#endif #if DEBUG # define TRACE_ENTER(str) ErrorF("fbdev: " str " %d\n",pScrn->scrnIndex) @@ -50,8 +52,8 @@ static void FBDevIdentify(int flags); static Bool FBDevProbe(DriverPtr drv, int flags); static Bool FBDevPreInit(ScrnInfoPtr pScrn, int flags); -static Bool FBDevScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); +static Bool FBDevScreenInit(int Index, ScreenPtr pScreen, + const int argc, const char **argv); static Bool FBDevCloseScreen(int scrnIndex, ScreenPtr pScreen); static void * FBDevWindowLinear(ScreenPtr pScreen, CARD32 row, CARD32 offset, int mode, CARD32 *size, void *closure); @@ -597,7 +599,8 @@ } static Bool -FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, + const int argc, const char **argv) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; FBDevPtr fPtr = FBDEVPTR(pScrn); Index: xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c diff -u xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c:1.32 xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c:1.34 --- xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c:1.32 Thu Mar 16 11:50:04 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c Tue Jan 23 13:03:02 2007 @@ -45,7 +45,7 @@ * Support static loading. */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c,v 1.32 2006/03/16 16:50:04 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c,v 1.34 2007/01/23 18:03:02 tsi Exp $ */ #include "xf86Cursor.h" #include "colormapst.h" @@ -140,7 +140,8 @@ static void GLIDEIdentify(int flags); static Bool GLIDEProbe(DriverPtr drv, int flags); static Bool GLIDEPreInit(ScrnInfoPtr pScrn, int flags); -static Bool GLIDEScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv); +static Bool GLIDEScreenInit(int Index, ScreenPtr pScreen, + const int argc, const char **argv); static Bool GLIDEEnterVT(int scrnIndex, int flags); static void GLIDELeaveVT(int scrnIndex, int flags); static Bool GLIDECloseScreen(int scrnIndex, ScreenPtr pScreen); @@ -649,7 +650,8 @@ /* Mandatory */ /* This gets called at the start of each server generation */ static Bool -GLIDEScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +GLIDEScreenInit(int scrnIndex, ScreenPtr pScreen, + const int argc, const char **argv) { ScrnInfoPtr pScrn; GLIDEPtr pGlide; Index: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c diff -u xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c:1.167 xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c:1.170 --- xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c:1.167 Thu Mar 16 11:50:05 2006 +++ xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c Tue Jan 23 13:03:02 2007 @@ -28,7 +28,7 @@ * this work is sponsored by S.u.S.E. GmbH, Fuerth, Elsa GmbH, Aachen, * Siemens Nixdorf Informationssysteme and Appian Graphics. */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c,v 1.167 2006/03/16 16:50:05 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c,v 1.170 2007/01/23 18:03:02 tsi Exp $ */ #include "fb.h" #include "cfb8_32.h" @@ -66,7 +66,9 @@ #define DPMS_SERVER #include <X11/extensions/dpms.h> +#ifndef DEBUG #define DEBUG 0 +#endif #if DEBUG # define TRACE_ENTER(str) ErrorF("glint: " str " %d\n",pScrn->scrnIndex) @@ -82,8 +84,8 @@ static void GLINTIdentify(int flags); static Bool GLINTProbe(DriverPtr drv, int flags); static Bool GLINTPreInit(ScrnInfoPtr pScrn, int flags); -static Bool GLINTScreenInit(int Index, ScreenPtr pScreen, int argc, - char **argv); +static Bool GLINTScreenInit(int Index, ScreenPtr pScreen, + const int argc, const char **argv); static Bool GLINTEnterVT(int scrnIndex, int flags); static void GLINTLeaveVT(int scrnIndex, int flags); static Bool GLINTCloseScreen(int scrnIndex, ScreenPtr pScreen); @@ -2832,7 +2834,8 @@ /* This gets called at the start of each server generation */ static Bool -GLINTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) +GLINTScreenInit(int scrnIndex, ScreenPtr pScreen, + const int argc, const char **argv) { ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; GLINTPtr pGlint = GLINTPTR(pScrn);