xserver: Branch 'XACE-modular' - 15 commits

Eamon Walsh ewalsh at kemper.freedesktop.org
Fri Sep 15 22:22:57 EEST 2006


 GL/glx/glxdri.c                                               |   36 +
 GL/glx/glxext.c                                               |   90 ++-
 GL/glx/glxext.h                                               |    5 
 GL/glx/glxserver.h                                            |    8 
 GL/glx/glxutil.h                                              |   19 
 GL/glx/indirect_table.c                                       |  249 +++++-----
 Xext/fontcache.c                                              |    4 
 fb/fbimage.c                                                  |    2 
 hw/dmx/Makefile.am                                            |    1 
 hw/dmx/dmx.h                                                  |    4 
 hw/xfree86/common/xf86.h                                      |    6 
 hw/xfree86/os-support/bus/linuxPci.c                          |    6 
 hw/xfree86/parser/Makefile.am                                 |    6 
 hw/xfree86/parser/Monitor.c                                   |    2 
 hw/xnest/Makefile.am                                          |    2 
 hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am |    3 
 hw/xprint/config/C/print/models/PSspooldir/Makefile.am        |    3 
 hw/xprint/config/Makefile.am                                  |    2 
 hw/xprint/doc/Xprt.html                                       |    6 
 hw/xprint/doc/Xprt.man.pre                                    |    6 
 hw/xprint/doc/Xprt.sgml                                       |    6 
 hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh              |    4 
 mi/mieq.c                                                     |    4 
 render/picture.c                                              |   21 
 24 files changed, 297 insertions(+), 198 deletions(-)

New commits:
diff-tree 49a70c8570b03aff8239324a2474918a6fbc52a0 (from parents)
Merge: d1110c5c83a7f439158f369ab2f3ae614fa9d2a5 05231e336db8f959c15dda518641976f061df1a6
Author: Eamon Walsh <ewalsh at tycho.nsa.gov>
Date:   Fri Sep 15 15:26:57 2006 -0400

    Merge branch 'master' into my-XACE-modular

diff-tree 05231e336db8f959c15dda518641976f061df1a6 (from 0a62840e2ce25e5c2554e7e5ab4c9c5b96899e2d)
Author: Ian Romanick <idr at us.ibm.com>
Date:   Thu Sep 14 14:13:39 2006 -0700

    Use correct opcodes for GLX_EXT_texture_from_pixmap.
    
    Regenerate from glX_API.xml 1.3 from Mesa.  The glproto package and libGL
    (from Mesa) must also be updated.

diff --git a/GL/glx/indirect_table.c b/GL/glx/indirect_table.c
index d13e4f8..57712f4 100644
--- a/GL/glx/indirect_table.c
+++ b/GL/glx/indirect_table.c
@@ -1232,12 +1232,12 @@ const struct __glXDispatchInfo Render_di
 
 /*****************************************************************/
 /* tree depth = 13 */
-static const int_fast16_t VendorPriv_dispatch_tree[155] = {
+static const int_fast16_t VendorPriv_dispatch_tree[158] = {
     /* [0] -> opcode range [0, 131072], node depth 1 */
     2,
     5,
     EMPTY_LEAF,
-    119,
+    122,
     EMPTY_LEAF,
 
     /* [5] -> opcode range [0, 32768], node depth 2 */
@@ -1254,7 +1254,7 @@ static const int_fast16_t VendorPriv_dis
     2,
     16,
     EMPTY_LEAF,
-    78,
+    81,
     EMPTY_LEAF,
 
     /* [16] -> opcode range [0, 2048], node depth 5 */
@@ -1299,7 +1299,7 @@ static const int_fast16_t VendorPriv_dis
     44,
     EMPTY_LEAF,
     56,
-    67,
+    70,
 
     /* [44] -> opcode range [1024, 1152], node depth 7 */
     1,
@@ -1327,164 +1327,169 @@ static const int_fast16_t VendorPriv_dis
     EMPTY_LEAF,
 
     /* [59] -> opcode range [1280, 1344], node depth 8 */
-    1,
-    62,
+    2,
+    64,
+    LEAF(16),
     EMPTY_LEAF,
+    67,
 
-    /* [62] -> opcode range [1280, 1312], node depth 9 */
-    2,
+    /* [64] -> opcode range [1280, 1296], node depth 9 */
+    1,
     EMPTY_LEAF,
-    LEAF(16),
-    LEAF(24),
     LEAF(32),
 
-    /* [67] -> opcode range [1408, 1536], node depth 7 */
+    /* [67] -> opcode range [1328, 1344], node depth 9 */
     1,
-    70,
+    LEAF(40),
     EMPTY_LEAF,
 
-    /* [70] -> opcode range [1408, 1472], node depth 8 */
+    /* [70] -> opcode range [1408, 1536], node depth 7 */
     1,
     73,
     EMPTY_LEAF,
 
-    /* [73] -> opcode range [1408, 1440], node depth 9 */
-    2,
-    EMPTY_LEAF,
-    LEAF(40),
-    LEAF(48),
+    /* [73] -> opcode range [1408, 1472], node depth 8 */
+    1,
+    76,
     EMPTY_LEAF,
 
-    /* [78] -> opcode range [4096, 6144], node depth 5 */
+    /* [76] -> opcode range [1408, 1440], node depth 9 */
     2,
-    83,
     EMPTY_LEAF,
-    101,
+    LEAF(48),
+    LEAF(56),
     EMPTY_LEAF,
 
-    /* [83] -> opcode range [4096, 4608], node depth 6 */
-    1,
+    /* [81] -> opcode range [4096, 6144], node depth 5 */
+    2,
     86,
     EMPTY_LEAF,
+    104,
+    EMPTY_LEAF,
 
-    /* [86] -> opcode range [4096, 4352], node depth 7 */
+    /* [86] -> opcode range [4096, 4608], node depth 6 */
     1,
     89,
     EMPTY_LEAF,
 
-    /* [89] -> opcode range [4096, 4224], node depth 8 */
+    /* [89] -> opcode range [4096, 4352], node depth 7 */
     1,
     92,
     EMPTY_LEAF,
 
-    /* [92] -> opcode range [4096, 4160], node depth 9 */
+    /* [92] -> opcode range [4096, 4224], node depth 8 */
     1,
     95,
     EMPTY_LEAF,
 
-    /* [95] -> opcode range [4096, 4128], node depth 10 */
+    /* [95] -> opcode range [4096, 4160], node depth 9 */
     1,
     98,
     EMPTY_LEAF,
 
-    /* [98] -> opcode range [4096, 4112], node depth 11 */
+    /* [98] -> opcode range [4096, 4128], node depth 10 */
     1,
-    LEAF(56),
+    101,
     EMPTY_LEAF,
 
-    /* [101] -> opcode range [5120, 5632], node depth 6 */
+    /* [101] -> opcode range [4096, 4112], node depth 11 */
     1,
-    104,
+    LEAF(64),
     EMPTY_LEAF,
 
-    /* [104] -> opcode range [5120, 5376], node depth 7 */
+    /* [104] -> opcode range [5120, 5632], node depth 6 */
     1,
     107,
     EMPTY_LEAF,
 
-    /* [107] -> opcode range [5120, 5248], node depth 8 */
+    /* [107] -> opcode range [5120, 5376], node depth 7 */
     1,
     110,
     EMPTY_LEAF,
 
-    /* [110] -> opcode range [5120, 5184], node depth 9 */
+    /* [110] -> opcode range [5120, 5248], node depth 8 */
     1,
-    EMPTY_LEAF,
     113,
+    EMPTY_LEAF,
 
-    /* [113] -> opcode range [5152, 5184], node depth 10 */
+    /* [113] -> opcode range [5120, 5184], node depth 9 */
     1,
-    116,
     EMPTY_LEAF,
+    116,
 
-    /* [116] -> opcode range [5152, 5168], node depth 11 */
+    /* [116] -> opcode range [5152, 5184], node depth 10 */
     1,
-    LEAF(64),
+    119,
     EMPTY_LEAF,
 
-    /* [119] -> opcode range [65536, 98304], node depth 2 */
+    /* [119] -> opcode range [5152, 5168], node depth 11 */
     1,
-    122,
+    LEAF(72),
     EMPTY_LEAF,
 
-    /* [122] -> opcode range [65536, 81920], node depth 3 */
+    /* [122] -> opcode range [65536, 98304], node depth 2 */
     1,
     125,
     EMPTY_LEAF,
 
-    /* [125] -> opcode range [65536, 73728], node depth 4 */
+    /* [125] -> opcode range [65536, 81920], node depth 3 */
     1,
     128,
     EMPTY_LEAF,
 
-    /* [128] -> opcode range [65536, 69632], node depth 5 */
+    /* [128] -> opcode range [65536, 73728], node depth 4 */
     1,
     131,
     EMPTY_LEAF,
 
-    /* [131] -> opcode range [65536, 67584], node depth 6 */
+    /* [131] -> opcode range [65536, 69632], node depth 5 */
     1,
     134,
     EMPTY_LEAF,
 
-    /* [134] -> opcode range [65536, 66560], node depth 7 */
+    /* [134] -> opcode range [65536, 67584], node depth 6 */
     1,
     137,
     EMPTY_LEAF,
 
-    /* [137] -> opcode range [65536, 66048], node depth 8 */
+    /* [137] -> opcode range [65536, 66560], node depth 7 */
     1,
     140,
     EMPTY_LEAF,
 
-    /* [140] -> opcode range [65536, 65792], node depth 9 */
+    /* [140] -> opcode range [65536, 66048], node depth 8 */
     1,
     143,
     EMPTY_LEAF,
 
-    /* [143] -> opcode range [65536, 65664], node depth 10 */
+    /* [143] -> opcode range [65536, 65792], node depth 9 */
     1,
     146,
     EMPTY_LEAF,
 
-    /* [146] -> opcode range [65536, 65600], node depth 11 */
+    /* [146] -> opcode range [65536, 65664], node depth 10 */
     1,
     149,
     EMPTY_LEAF,
 
-    /* [149] -> opcode range [65536, 65568], node depth 12 */
+    /* [149] -> opcode range [65536, 65600], node depth 11 */
     1,
     152,
     EMPTY_LEAF,
 
-    /* [152] -> opcode range [65536, 65552], node depth 13 */
+    /* [152] -> opcode range [65536, 65568], node depth 12 */
     1,
-    LEAF(72),
+    155,
+    EMPTY_LEAF,
+
+    /* [155] -> opcode range [65536, 65552], node depth 13 */
+    1,
+    LEAF(80),
     EMPTY_LEAF,
 
 };
 
-static const void *VendorPriv_function_table[80][2] = {
+static const void *VendorPriv_function_table[88][2] = {
     /* [  0] =     8 */ {NULL, NULL},
     /* [  1] =     9 */ {NULL, NULL},
     /* [  2] =    10 */ {NULL, NULL},
@@ -1501,70 +1506,78 @@ static const void *VendorPriv_function_t
     /* [ 13] =  1029 */ {NULL, NULL},
     /* [ 14] =  1030 */ {NULL, NULL},
     /* [ 15] =  1031 */ {NULL, NULL},
-    /* [ 16] =  1288 */ {NULL, NULL},
-    /* [ 17] =  1289 */ {NULL, NULL},
-    /* [ 18] =  1290 */ {NULL, NULL},
-    /* [ 19] =  1291 */ {NULL, NULL},
-    /* [ 20] =  1292 */ {NULL, NULL},
-    /* [ 21] =  1293 */ {__glXDisp_AreProgramsResidentNV, __glXDispSwap_AreProgramsResidentNV},
-    /* [ 22] =  1294 */ {__glXDisp_DeleteProgramsNV, __glXDispSwap_DeleteProgramsNV},
-    /* [ 23] =  1295 */ {__glXDisp_GenProgramsNV, __glXDispSwap_GenProgramsNV},
-    /* [ 24] =  1296 */ {__glXDisp_GetProgramEnvParameterfvARB, __glXDispSwap_GetProgramEnvParameterfvARB},
-    /* [ 25] =  1297 */ {__glXDisp_GetProgramEnvParameterdvARB, __glXDispSwap_GetProgramEnvParameterdvARB},
-    /* [ 26] =  1298 */ {__glXDisp_GetProgramivNV, __glXDispSwap_GetProgramivNV},
-    /* [ 27] =  1299 */ {__glXDisp_GetProgramStringNV, __glXDispSwap_GetProgramStringNV},
-    /* [ 28] =  1300 */ {__glXDisp_GetTrackMatrixivNV, __glXDispSwap_GetTrackMatrixivNV},
-    /* [ 29] =  1301 */ {__glXDisp_GetVertexAttribdvARB, __glXDispSwap_GetVertexAttribdvARB},
-    /* [ 30] =  1302 */ {__glXDisp_GetVertexAttribfvNV, __glXDispSwap_GetVertexAttribfvNV},
-    /* [ 31] =  1303 */ {__glXDisp_GetVertexAttribivNV, __glXDispSwap_GetVertexAttribivNV},
-    /* [ 32] =  1304 */ {__glXDisp_IsProgramNV, __glXDispSwap_IsProgramNV},
-    /* [ 33] =  1305 */ {__glXDisp_GetProgramLocalParameterfvARB, __glXDispSwap_GetProgramLocalParameterfvARB},
-    /* [ 34] =  1306 */ {__glXDisp_GetProgramLocalParameterdvARB, __glXDispSwap_GetProgramLocalParameterdvARB},
-    /* [ 35] =  1307 */ {__glXDisp_GetProgramivARB, __glXDispSwap_GetProgramivARB},
-    /* [ 36] =  1308 */ {__glXDisp_GetProgramStringARB, __glXDispSwap_GetProgramStringARB},
-    /* [ 37] =  1309 */ {NULL, NULL},
-    /* [ 38] =  1310 */ {__glXDisp_GetProgramNamedParameterfvNV, __glXDispSwap_GetProgramNamedParameterfvNV},
-    /* [ 39] =  1311 */ {__glXDisp_GetProgramNamedParameterdvNV, __glXDispSwap_GetProgramNamedParameterdvNV},
-    /* [ 40] =  1416 */ {NULL, NULL},
-    /* [ 41] =  1417 */ {NULL, NULL},
-    /* [ 42] =  1418 */ {NULL, NULL},
-    /* [ 43] =  1419 */ {NULL, NULL},
-    /* [ 44] =  1420 */ {NULL, NULL},
-    /* [ 45] =  1421 */ {NULL, NULL},
-    /* [ 46] =  1422 */ {__glXDisp_IsRenderbufferEXT, __glXDispSwap_IsRenderbufferEXT},
-    /* [ 47] =  1423 */ {__glXDisp_GenRenderbuffersEXT, __glXDispSwap_GenRenderbuffersEXT},
-    /* [ 48] =  1424 */ {__glXDisp_GetRenderbufferParameterivEXT, __glXDispSwap_GetRenderbufferParameterivEXT},
-    /* [ 49] =  1425 */ {__glXDisp_IsFramebufferEXT, __glXDispSwap_IsFramebufferEXT},
-    /* [ 50] =  1426 */ {__glXDisp_GenFramebuffersEXT, __glXDispSwap_GenFramebuffersEXT},
-    /* [ 51] =  1427 */ {__glXDisp_CheckFramebufferStatusEXT, __glXDispSwap_CheckFramebufferStatusEXT},
-    /* [ 52] =  1428 */ {__glXDisp_GetFramebufferAttachmentParameterivEXT, __glXDispSwap_GetFramebufferAttachmentParameterivEXT},
-    /* [ 53] =  1429 */ {NULL, NULL},
-    /* [ 54] =  1430 */ {NULL, NULL},
-    /* [ 55] =  1431 */ {NULL, NULL},
-    /* [ 56] =  4096 */ {NULL, NULL},
-    /* [ 57] =  4097 */ {NULL, NULL},
-    /* [ 58] =  4098 */ {__glXDisp_GetColorTableSGI, __glXDispSwap_GetColorTableSGI},
-    /* [ 59] =  4099 */ {__glXDisp_GetColorTableParameterfvSGI, __glXDispSwap_GetColorTableParameterfvSGI},
-    /* [ 60] =  4100 */ {__glXDisp_GetColorTableParameterivSGI, __glXDispSwap_GetColorTableParameterivSGI},
-    /* [ 61] =  4101 */ {NULL, NULL},
-    /* [ 62] =  4102 */ {NULL, NULL},
-    /* [ 63] =  4103 */ {NULL, NULL},
-    /* [ 64] =  5152 */ {__glXDisp_BindTexImageEXT, __glXDispSwap_BindTexImageEXT},
-    /* [ 65] =  5153 */ {__glXDisp_ReleaseTexImageEXT, __glXDispSwap_ReleaseTexImageEXT},
-    /* [ 66] =  5154 */ {__glXDisp_CopySubBufferMESA, __glXDispSwap_CopySubBufferMESA},
-    /* [ 67] =  5155 */ {NULL, NULL},
-    /* [ 68] =  5156 */ {NULL, NULL},
-    /* [ 69] =  5157 */ {NULL, NULL},
-    /* [ 70] =  5158 */ {NULL, NULL},
-    /* [ 71] =  5159 */ {NULL, NULL},
-    /* [ 72] = 65536 */ {__glXDisp_SwapIntervalSGI, __glXDispSwap_SwapIntervalSGI},
-    /* [ 73] = 65537 */ {__glXDisp_MakeCurrentReadSGI, __glXDispSwap_MakeCurrentReadSGI},
-    /* [ 74] = 65538 */ {NULL, NULL},
-    /* [ 75] = 65539 */ {NULL, NULL},
-    /* [ 76] = 65540 */ {__glXDisp_GetFBConfigsSGIX, __glXDispSwap_GetFBConfigsSGIX},
-    /* [ 77] = 65541 */ {__glXDisp_CreateContextWithConfigSGIX, __glXDispSwap_CreateContextWithConfigSGIX},
-    /* [ 78] = 65542 */ {__glXDisp_CreateGLXPixmapWithConfigSGIX, __glXDispSwap_CreateGLXPixmapWithConfigSGIX},
-    /* [ 79] = 65543 */ {NULL, NULL},
+    /* [ 16] =  1296 */ {__glXDisp_GetProgramEnvParameterfvARB, __glXDispSwap_GetProgramEnvParameterfvARB},
+    /* [ 17] =  1297 */ {__glXDisp_GetProgramEnvParameterdvARB, __glXDispSwap_GetProgramEnvParameterdvARB},
+    /* [ 18] =  1298 */ {__glXDisp_GetProgramivNV, __glXDispSwap_GetProgramivNV},
+    /* [ 19] =  1299 */ {__glXDisp_GetProgramStringNV, __glXDispSwap_GetProgramStringNV},
+    /* [ 20] =  1300 */ {__glXDisp_GetTrackMatrixivNV, __glXDispSwap_GetTrackMatrixivNV},
+    /* [ 21] =  1301 */ {__glXDisp_GetVertexAttribdvARB, __glXDispSwap_GetVertexAttribdvARB},
+    /* [ 22] =  1302 */ {__glXDisp_GetVertexAttribfvNV, __glXDispSwap_GetVertexAttribfvNV},
+    /* [ 23] =  1303 */ {__glXDisp_GetVertexAttribivNV, __glXDispSwap_GetVertexAttribivNV},
+    /* [ 24] =  1304 */ {__glXDisp_IsProgramNV, __glXDispSwap_IsProgramNV},
+    /* [ 25] =  1305 */ {__glXDisp_GetProgramLocalParameterfvARB, __glXDispSwap_GetProgramLocalParameterfvARB},
+    /* [ 26] =  1306 */ {__glXDisp_GetProgramLocalParameterdvARB, __glXDispSwap_GetProgramLocalParameterdvARB},
+    /* [ 27] =  1307 */ {__glXDisp_GetProgramivARB, __glXDispSwap_GetProgramivARB},
+    /* [ 28] =  1308 */ {__glXDisp_GetProgramStringARB, __glXDispSwap_GetProgramStringARB},
+    /* [ 29] =  1309 */ {NULL, NULL},
+    /* [ 30] =  1310 */ {__glXDisp_GetProgramNamedParameterfvNV, __glXDispSwap_GetProgramNamedParameterfvNV},
+    /* [ 31] =  1311 */ {__glXDisp_GetProgramNamedParameterdvNV, __glXDispSwap_GetProgramNamedParameterdvNV},
+    /* [ 32] =  1288 */ {NULL, NULL},
+    /* [ 33] =  1289 */ {NULL, NULL},
+    /* [ 34] =  1290 */ {NULL, NULL},
+    /* [ 35] =  1291 */ {NULL, NULL},
+    /* [ 36] =  1292 */ {NULL, NULL},
+    /* [ 37] =  1293 */ {__glXDisp_AreProgramsResidentNV, __glXDispSwap_AreProgramsResidentNV},
+    /* [ 38] =  1294 */ {__glXDisp_DeleteProgramsNV, __glXDispSwap_DeleteProgramsNV},
+    /* [ 39] =  1295 */ {__glXDisp_GenProgramsNV, __glXDispSwap_GenProgramsNV},
+    /* [ 40] =  1328 */ {NULL, NULL},
+    /* [ 41] =  1329 */ {NULL, NULL},
+    /* [ 42] =  1330 */ {__glXDisp_BindTexImageEXT, __glXDispSwap_BindTexImageEXT},
+    /* [ 43] =  1331 */ {__glXDisp_ReleaseTexImageEXT, __glXDispSwap_ReleaseTexImageEXT},
+    /* [ 44] =  1332 */ {NULL, NULL},
+    /* [ 45] =  1333 */ {NULL, NULL},
+    /* [ 46] =  1334 */ {NULL, NULL},
+    /* [ 47] =  1335 */ {NULL, NULL},
+    /* [ 48] =  1416 */ {NULL, NULL},
+    /* [ 49] =  1417 */ {NULL, NULL},
+    /* [ 50] =  1418 */ {NULL, NULL},
+    /* [ 51] =  1419 */ {NULL, NULL},
+    /* [ 52] =  1420 */ {NULL, NULL},
+    /* [ 53] =  1421 */ {NULL, NULL},
+    /* [ 54] =  1422 */ {__glXDisp_IsRenderbufferEXT, __glXDispSwap_IsRenderbufferEXT},
+    /* [ 55] =  1423 */ {__glXDisp_GenRenderbuffersEXT, __glXDispSwap_GenRenderbuffersEXT},
+    /* [ 56] =  1424 */ {__glXDisp_GetRenderbufferParameterivEXT, __glXDispSwap_GetRenderbufferParameterivEXT},
+    /* [ 57] =  1425 */ {__glXDisp_IsFramebufferEXT, __glXDispSwap_IsFramebufferEXT},
+    /* [ 58] =  1426 */ {__glXDisp_GenFramebuffersEXT, __glXDispSwap_GenFramebuffersEXT},
+    /* [ 59] =  1427 */ {__glXDisp_CheckFramebufferStatusEXT, __glXDispSwap_CheckFramebufferStatusEXT},
+    /* [ 60] =  1428 */ {__glXDisp_GetFramebufferAttachmentParameterivEXT, __glXDispSwap_GetFramebufferAttachmentParameterivEXT},
+    /* [ 61] =  1429 */ {NULL, NULL},
+    /* [ 62] =  1430 */ {NULL, NULL},
+    /* [ 63] =  1431 */ {NULL, NULL},
+    /* [ 64] =  4096 */ {NULL, NULL},
+    /* [ 65] =  4097 */ {NULL, NULL},
+    /* [ 66] =  4098 */ {__glXDisp_GetColorTableSGI, __glXDispSwap_GetColorTableSGI},
+    /* [ 67] =  4099 */ {__glXDisp_GetColorTableParameterfvSGI, __glXDispSwap_GetColorTableParameterfvSGI},
+    /* [ 68] =  4100 */ {__glXDisp_GetColorTableParameterivSGI, __glXDispSwap_GetColorTableParameterivSGI},
+    /* [ 69] =  4101 */ {NULL, NULL},
+    /* [ 70] =  4102 */ {NULL, NULL},
+    /* [ 71] =  4103 */ {NULL, NULL},
+    /* [ 72] =  5152 */ {NULL, NULL},
+    /* [ 73] =  5153 */ {NULL, NULL},
+    /* [ 74] =  5154 */ {__glXDisp_CopySubBufferMESA, __glXDispSwap_CopySubBufferMESA},
+    /* [ 75] =  5155 */ {NULL, NULL},
+    /* [ 76] =  5156 */ {NULL, NULL},
+    /* [ 77] =  5157 */ {NULL, NULL},
+    /* [ 78] =  5158 */ {NULL, NULL},
+    /* [ 79] =  5159 */ {NULL, NULL},
+    /* [ 80] = 65536 */ {__glXDisp_SwapIntervalSGI, __glXDispSwap_SwapIntervalSGI},
+    /* [ 81] = 65537 */ {__glXDisp_MakeCurrentReadSGI, __glXDispSwap_MakeCurrentReadSGI},
+    /* [ 82] = 65538 */ {NULL, NULL},
+    /* [ 83] = 65539 */ {NULL, NULL},
+    /* [ 84] = 65540 */ {__glXDisp_GetFBConfigsSGIX, __glXDispSwap_GetFBConfigsSGIX},
+    /* [ 85] = 65541 */ {__glXDisp_CreateContextWithConfigSGIX, __glXDispSwap_CreateContextWithConfigSGIX},
+    /* [ 86] = 65542 */ {__glXDisp_CreateGLXPixmapWithConfigSGIX, __glXDispSwap_CreateGLXPixmapWithConfigSGIX},
+    /* [ 87] = 65543 */ {NULL, NULL},
 };
 
 const struct __glXDispatchInfo VendorPriv_dispatch_info = {
diff-tree 0a62840e2ce25e5c2554e7e5ab4c9c5b96899e2d (from 182e5e0f4ba4c98a34bc52bdf4032ba315fe80ad)
Author: Bill Nottingham <notting at redhat.com>
Date:   Wed Sep 13 15:40:23 2006 -0700

    Bug 7641: fix comment written to Xorg.conf (s/VertSync/VertRefresh/)
    
    X.Org Bugzilla #7641 <https://bugs.freedesktop.org/show_bug.cgi?id=7641>
    Patch #6349 <https://bugs.freedesktop.org/attachment.cgi?id=6349>

diff --git a/hw/xfree86/parser/Monitor.c b/hw/xfree86/parser/Monitor.c
index 4a85750..9dd0b1b 100644
--- a/hw/xfree86/parser/Monitor.c
+++ b/hw/xfree86/parser/Monitor.c
@@ -675,7 +675,7 @@ xf86printMonitorSection (FILE * cf, XF86
 					 ptr->mon_width,
 					 ptr->mon_height);
 		if ( ptr->mon_n_hsync || ptr->mon_n_vrefresh )
-		    fprintf(cf," ### Comment all HorizSync and VertSync values to use DDC:\n");
+		    fprintf(cf," ### Comment all HorizSync and VertRefresh values to use DDC:\n");
 		for (i = 0; i < ptr->mon_n_hsync; i++)
 		{
 			fprintf (cf, "\tHorizSync    %2.1f - %2.1f\n",
diff-tree 182e5e0f4ba4c98a34bc52bdf4032ba315fe80ad (from 594d4019c613b0f4bf8f48cc074ecc3c8366f1d7)
Author: Drew Parsons <dparsons at debian.org>
Date:   Tue Sep 12 14:30:46 2006 +1000

    Xprint: revert installation of /etc/X11/Xsession.d/cde_xsessiond_xprint.sh
    pending resolution of #8232.

diff --git a/hw/xprint/etc/Xsession.d/Makefile.am b/hw/xprint/etc/Xsession.d/Makefile.am
index 3ef8e05..e0277d9 100644
--- a/hw/xprint/etc/Xsession.d/Makefile.am
+++ b/hw/xprint/etc/Xsession.d/Makefile.am
@@ -1,2 +1 @@
-xpcdir = /etc/X11/Xsession.d
-dist_xpc_DATA = cde_xsessiond_xprint.sh
+EXTRA_DIST = cde_xsessiond_xprint.sh
diff-tree 594d4019c613b0f4bf8f48cc074ecc3c8366f1d7 (from fc30370d14125f86ee1192890a184881fa139546)
Author: Tilman Sauerbeck <tilman at code-monkey.de>
Date:   Tue Sep 12 01:15:40 2006 +0200

    transformIsIdentity() now doesn't accept a zero matrix as the identity.
    
    Added a non-zero test for one of the diagonal values.

diff --git a/render/picture.c b/render/picture.c
index a9910ab..a3443c2 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -1464,6 +1464,7 @@ transformIsIdentity(PictTransform *t)
 {
     return ((t->matrix[0][0] == t->matrix[1][1]) &&
             (t->matrix[0][0] == t->matrix[2][2]) &&
+            (t->matrix[0][0] != 0) &&
             (t->matrix[0][1] == 0) &&
             (t->matrix[0][2] == 0) &&
             (t->matrix[1][0] == 0) &&
diff-tree fc30370d14125f86ee1192890a184881fa139546 (from 2b357e9a2f9038cf9cd07da908e3103a3d0965c9)
Author: Tilman Sauerbeck <tilman at code-monkey.de>
Date:   Mon Sep 11 19:43:09 2006 +0200

    Bug #8226: Fixed SetPictureTransform()'s handling of the argument matrix.
    
    It now recognizes scaled variants of the identity matrix, too.

diff --git a/render/picture.c b/render/picture.c
index 566d91e..a9910ab 100644
--- a/render/picture.c
+++ b/render/picture.c
@@ -1459,18 +1459,24 @@ SetPictureClipRegion (PicturePtr    pPic
     return result;
 }
 
+static Bool
+transformIsIdentity(PictTransform *t)
+{
+    return ((t->matrix[0][0] == t->matrix[1][1]) &&
+            (t->matrix[0][0] == t->matrix[2][2]) &&
+            (t->matrix[0][1] == 0) &&
+            (t->matrix[0][2] == 0) &&
+            (t->matrix[1][0] == 0) &&
+            (t->matrix[1][2] == 0) &&
+            (t->matrix[2][0] == 0) &&
+            (t->matrix[2][1] == 0));
+}
 
 int
 SetPictureTransform (PicturePtr	    pPicture,
 		     PictTransform  *transform)
 {
-    static const PictTransform	identity = { {
-	{ xFixed1, 0x00000, 0x00000 },
-	{ 0x00000, xFixed1, 0x00000 },
-	{ 0x00000, 0x00000, xFixed1 },
-    } };
-
-    if (transform && memcmp (transform, &identity, sizeof (PictTransform)) == 0)
+    if (transform && transformIsIdentity (transform))
 	transform = 0;
     
     if (transform)
diff-tree 2b357e9a2f9038cf9cd07da908e3103a3d0965c9 (from b3a3020fd018df8bc5a8193d36e1a1c7ae8af8ba)
Author: Donnie Berkholz <dberkholz at gentoo.org>
Date:   Sun Sep 10 22:17:20 2006 -0700

    If we're installing libxf86config, install headers needed to build against it.

diff --git a/hw/xfree86/parser/Makefile.am b/hw/xfree86/parser/Makefile.am
index acda83d..46ef790 100644
--- a/hw/xfree86/parser/Makefile.am
+++ b/hw/xfree86/parser/Makefile.am
@@ -1,5 +1,8 @@
 if INSTALL_LIBXF86CONFIG
 lib_LIBRARIES = libxf86config.a
+LIBHEADERS = \
+	xf86Optrec.h \
+	xf86Parser.h
 else
 noinst_LIBRARIES = libxf86config.a
 endif
@@ -32,3 +35,6 @@ EXTRA_DIST = \
 	xf86Parser.h \
 	xf86tokens.h \
 	cpconfig.c
+
+sdk_HEADERS = \
+	$(LIBHEADERS)
diff-tree b3a3020fd018df8bc5a8193d36e1a1c7ae8af8ba (from 65256109bb8f5a26704ed960e1dd113981df5787)
Author: Jesse Barnes <jbarnes at nietzche.virtuousgeek.org>
Date:   Sun Sep 10 11:13:18 2006 -0700

    the new PCI mapping routines are broken on sparc64 (in fact they look
    broken for any 32 bit X server running on a 64 bit kernel) so #ifdef
    them out for now.  the PCI rework tree will make all this crap go away,
    so I think we can tolerate the extra #ifdef for the next release.

diff --git a/hw/xfree86/os-support/bus/linuxPci.c b/hw/xfree86/os-support/bus/linuxPci.c
index a3c07f3..a97e6f0 100644
--- a/hw/xfree86/os-support/bus/linuxPci.c
+++ b/hw/xfree86/os-support/bus/linuxPci.c
@@ -83,7 +83,13 @@ static pciBusFuncs_t linuxFuncs0 = {
 /* pciAddrBusToHost */	linuxPpcBusAddrToHostAddr,
 #else
 /* pciAddrHostToBus */	pciAddrNOOP,
+/* linuxTransAddrBusToHost is busted on sparc64 but the PCI rework tree
+ * makes it all moot, so we kludge it for now */
+#if defined(__sparc64__)
+/* pciAddrBusToHost */  pciAddrNOOP,
+#else
 /* pciAddrBusToHost */	linuxTransAddrBusToHost,
+#endif /* __sparc64__ */
 #endif
 
 /* pciControlBridge */		NULL,
diff-tree 65256109bb8f5a26704ed960e1dd113981df5787 (from 86450998da616e3d00d4d6293acc35eccc2061e7)
Author: Drew Parsons <dparsons at debian.org>
Date:   Sun Sep 10 17:40:37 2006 +1000

    * Define XPSERVERLIST with `/etc/init.d/xprint get_xpserverlist`
      instead of `/bin/sh /etc/init.d/xprint get_xpserverlist`
    	- allows the initscript to set its own different shell under #!
    	- allows disabling of XPSERVERLIST by making the script non-executable
    * Allow files to be installed by using dist_*_DATA instead of EXTRA_DIST.
      Also, use dist_*_SCRIPTS to install scripts.
    * Fix minor typos in man pages.

diff --git a/hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am b/hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am
index 37b57d7..2b73b9d 100644
--- a/hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am
+++ b/hw/xprint/config/C/print/models/PS2PDFspooldir-GS/Makefile.am
@@ -1,3 +1,4 @@
 xpcdir = @xpconfigdir@/C/print/models/PS2PDFspooldir-GS
 
-dist_xpc_DATA = model-config ps2pdf_spooltodir.sh
+dist_xpc_DATA = model-config
+dist_xpc_SCRIPTS = ps2pdf_spooltodir.sh
diff --git a/hw/xprint/config/C/print/models/PSspooldir/Makefile.am b/hw/xprint/config/C/print/models/PSspooldir/Makefile.am
index 52313aa..717cd2c 100644
--- a/hw/xprint/config/C/print/models/PSspooldir/Makefile.am
+++ b/hw/xprint/config/C/print/models/PSspooldir/Makefile.am
@@ -1,3 +1,4 @@
 xpcdir = @xpconfigdir@/C/print/models/PSspooldir
 
-dist_xpc_DATA = model-config spooltodir.sh
+dist_xpc_DATA = model-config
+dist_xpc_SCRIPTS = spooltodir.sh
diff --git a/hw/xprint/config/Makefile.am b/hw/xprint/config/Makefile.am
index a5ea214..197d19d 100644
--- a/hw/xprint/config/Makefile.am
+++ b/hw/xprint/config/Makefile.am
@@ -709,4 +709,4 @@ install-data-local: remove-links
 
 uninstall-hook: remove-links
 
-EXTRA_DIST = README
+dist_xpconfig_DATA = README
diff --git a/hw/xprint/doc/Xprt.html b/hw/xprint/doc/Xprt.html
index f84a3c1..2aa0c9e 100644
--- a/hw/xprint/doc/Xprt.html
+++ b/hw/xprint/doc/Xprt.html
@@ -4,7 +4,7 @@
       applications to use devices like printers, FAX or create
       documents in formats like PostScript, PCL or PDF.  It may be used by
       clients such as <span class="application">mozilla</span>.
-    </p><p>Xprint is a very flexible, extensible, scaleable, client/server
+    </p><p>Xprint is a very flexible, extensible, scalable, client/server
      print system based on ISO 10175 (and some other specs) and the X11        
      rendering protocol.                                                       
      Using Xprint an application can search, query and use devices like        
@@ -44,11 +44,11 @@
                font databases.</p></dd><dt><span class="term"><tt class="option">-pn</tt></span></dt><dd><p>permits the server to continue running if it fails to
                establish all of its well-known sockets (connection
                points for clients), but establishes at least
-               one.</p></dd><dt><span class="term"><tt class="option">-XpFile <i class="replaceable"><tt>file</tt></i></tt></span></dt><dd><p>Sets an altername Xprinters file (see section FILES).</p></dd><dt><span class="term"><tt class="option">-XpSpoolerType <i class="replaceable"><tt>spoolername</tt></i></tt></span></dt><dd xmlns:ns2=""><p>
+               one.</p></dd><dt><span class="term"><tt class="option">-XpFile <i class="replaceable"><tt>file</tt></i></tt></span></dt><dd><p>Sets an alternate Xprinters file (see section FILES).</p></dd><dt><span class="term"><tt class="option">-XpSpoolerType <i class="replaceable"><tt>spoolername</tt></i></tt></span></dt><dd xmlns:ns2=""><p>
             Defines the spooler system to be used for print job spooling.
             Supported values in xprint.mozdev.org release 009 are:
             </p><table class="simplelist" border="0" summary="Simple list"><tr><td>aix</td></tr><tr><td>aix4</td></tr><tr><td>bsd</td></tr><tr><td>osf</td></tr><tr><td>solaris</td></tr><tr><td>sysv</td></tr><tr><td>uxp</td></tr><tr><td>cups</td></tr><tr><td>lprng</td></tr><tr><td>other</td></tr><tr><td>none</td></tr></table><p>
-            (multiple values can be specified, seperated by ':', the first active spooler will be chosen).
+            (multiple values can be specified, separated by ':', the first active spooler will be chosen).
             The default value is platform-specific and can be obtained via
             </p><pre class="programlisting">Xprt -h</pre><p>.
           </p></dd></dl></div></div><div xmlns:ns3="" class="refsect1" lang="en"><a name="id2805336"></a><h2>ENVIRONMENT</h2><p>
diff --git a/hw/xprint/doc/Xprt.man.pre b/hw/xprint/doc/Xprt.man.pre
index 7599a13..837619c 100644
--- a/hw/xprint/doc/Xprt.man.pre
+++ b/hw/xprint/doc/Xprt.man.pre
@@ -20,7 +20,7 @@ applications to use devices like printer
 documents in formats like PostScript, PCL or PDF. It may be used by
 clients such as mozilla.
 .PP
-Xprint is a very flexible, extensible, scaleable, client/server
+Xprint is a very flexible, extensible, scalable, client/server
 print system based on ISO 10175 (and some other specs) and the X11 
 rendering protocol. 
 Using Xprint an application can search, query and use devices like 
@@ -85,7 +85,7 @@ points for clients), but establishes at 
 one.
 .TP 
 \fB\-XpFile \fIfile\fB\fR 
-Sets an altername Xprinters file (see section FILES).
+Sets an alternate Xprinters file (see section FILES).
 .TP 
 \fB\-XpSpoolerType \fIspoolername\fB\fR 
 Defines the spooler system to be used for print job spooling.
@@ -113,7 +113,7 @@ other
 
 none
 
-(multiple values can be specified, seperated by ':', the first active spooler will be chosen).
+(multiple values can be specified, separated by ':', the first active spooler will be chosen).
 The default value is platform-specific and can be obtained via
 
 .nf
diff --git a/hw/xprint/doc/Xprt.sgml b/hw/xprint/doc/Xprt.sgml
index 0ffa39f..a624992 100644
--- a/hw/xprint/doc/Xprt.sgml
+++ b/hw/xprint/doc/Xprt.sgml
@@ -55,7 +55,7 @@ HTML generation can be done like this:
       clients such as <application>mozilla</application>.
     </para>
 
-    <para>Xprint is a very flexible, extensible, scaleable, client/server
+    <para>Xprint is a very flexible, extensible, scalable, client/server
      print system based on ISO 10175 (and some other specs) and the X11        
      rendering protocol.                                                       
      Using Xprint an application can search, query and use devices like        
@@ -155,7 +155,7 @@ HTML generation can be done like this:
         <term><option>-XpFile <replaceable>file</replaceable></option>
         </term>
         <listitem>
-          <para>Sets an altername Xprinters file (see section FILES).</para>
+          <para>Sets an alternate Xprinters file (see section FILES).</para>
         </listitem>
       </varlistentry>
       <varlistentry>
@@ -178,7 +178,7 @@ HTML generation can be done like this:
               <member>other</member>
               <member>none</member>
             </simplelist>
-            (multiple values can be specified, seperated by ':', the first active spooler will be chosen).
+            (multiple values can be specified, separated by ':', the first active spooler will be chosen).
             The default value is platform-specific and can be obtained via
             <programlisting>Xprt -h</programlisting>.
           </para>
diff --git a/hw/xprint/etc/Xsession.d/Makefile.am b/hw/xprint/etc/Xsession.d/Makefile.am
index e0277d9..3ef8e05 100644
--- a/hw/xprint/etc/Xsession.d/Makefile.am
+++ b/hw/xprint/etc/Xsession.d/Makefile.am
@@ -1 +1,2 @@
-EXTRA_DIST = cde_xsessiond_xprint.sh
+xpcdir = /etc/X11/Xsession.d
+dist_xpc_DATA = cde_xsessiond_xprint.sh
diff --git a/hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh b/hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh
index 3fb6bba..54c431d 100644
--- a/hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh
+++ b/hw/xprint/etc/Xsession.d/cde_xsessiond_xprint.sh
@@ -22,8 +22,8 @@
 # Obtain list of Xprint servers
 #
 
-if [ -f "/etc/init.d/xprint" ] ; then
-  XPSERVERLIST="`/bin/sh /etc/init.d/xprint get_xpserverlist`"
+if [ -x "/etc/init.d/xprint" ] ; then
+  XPSERVERLIST="`/etc/init.d/xprint get_xpserverlist`"
   export XPSERVERLIST
 fi
 
diff-tree 86450998da616e3d00d4d6293acc35eccc2061e7 (from 64479fffa22581cc7d753065c33eda5520b7db9a)
Author: Kristian Høgsberg <krh at redhat.com>
Date:   Thu Sep 7 15:35:16 2006 -0400

    Fix AIGLX VT switching.
    
    See https://bugs.freedesktop.org/show_bug.cgi?id=7916
    
    There may be a simpler, less intrusive fix that involves just rearranging
    DRI locking between 2D and 3D drivers around VT switch.

diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
index 41e49e2..b572304 100644
--- a/GL/glx/glxdri.c
+++ b/GL/glx/glxdri.c
@@ -73,6 +73,9 @@ struct __GLXDRIscreen {
     __DRIscreen			 driScreen;
     void			*driver;
 
+    xf86EnterVTProc *enterVT;
+    xf86LeaveVTProc *leaveVT;
+
     unsigned char glx_enable_bits[__GLX_EXT_BYTES];
 };
 
@@ -622,8 +625,7 @@ static __DRIfuncPtr getProcAddress(const
 
 static __DRIscreen *findScreen(__DRInativeDisplay *dpy, int scrn)
 {
-    __GLXDRIscreen *screen =
-	(__GLXDRIscreen *) __glXgetActiveScreen(scrn);
+    __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(scrn);
 
     return &screen->driScreen;
 }
@@ -817,6 +819,30 @@ static const __DRIinterfaceMethods inter
 
 static const char dri_driver_path[] = DRI_DRIVER_PATH;
 
+static Bool
+glxDRIEnterVT (int index, int flags)
+{
+    __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index);
+
+    LogMessage(X_INFO, "AIGLX: Resuming AIGLX clients after VT switch\n");
+
+    glxResumeClients();
+
+    return (*screen->enterVT) (index, flags);
+}
+
+static void
+glxDRILeaveVT (int index, int flags)
+{
+    __GLXDRIscreen *screen = (__GLXDRIscreen *) __glXgetActiveScreen(index);
+
+    LogMessage(X_INFO, "AIGLX: Suspending AIGLX clients for VT switch\n");
+
+    glxSuspendClients();
+
+    return (*screen->leaveVT) (index, flags);
+}
+
 static __GLXscreen *
 __glXDRIscreenProbe(ScreenPtr pScreen)
 {
@@ -842,6 +868,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
     char filename[128];
     Bool isCapable;
     size_t buffer_size;
+    ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
 
     if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable")) {
 	LogMessage(X_ERROR, "AIGLX: DRI module not loaded\n");
@@ -1029,6 +1056,11 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
 
     __glXsetEnterLeaveServerFuncs(__glXDRIenterServer, __glXDRIleaveServer);
 
+    screen->enterVT = pScrn->EnterVT;
+    pScrn->EnterVT = glxDRIEnterVT; 
+    screen->leaveVT = pScrn->LeaveVT;
+    pScrn->LeaveVT = glxDRILeaveVT;
+
     LogMessage(X_INFO,
 	       "AIGLX: Loaded and initialized %s\n", filename);
 
diff --git a/GL/glx/glxext.c b/GL/glx/glxext.c
index fdb8ea2..11fb7fc 100644
--- a/GL/glx/glxext.c
+++ b/GL/glx/glxext.c
@@ -59,10 +59,7 @@ xGLXSingleReply __glXReply;
 ** A set of state for each client.  The 0th one is unused because client
 ** indices start at 1, not 0.
 */
-__GLXclientState *__glXClients[MAXCLIENTS+1];
-
-
-static Bool inDispatch;
+static __GLXclientState *__glXClients[MAXCLIENTS + 1];
 
 /*
 ** Forward declarations.
@@ -219,6 +216,10 @@ static Bool DrawableGone(__GLXdrawable *
     return True;
 }
 
+static __GLXcontext *glxPendingDestroyContexts;
+static int glxServerLeaveCount;
+static int glxBlockClients;
+
 /*
 ** Free a context.
 */
@@ -236,13 +237,14 @@ GLboolean __glXFreeContext(__GLXcontext 
      * __glXDispatch() or as a callback from the resource manager.  In
      * the latter case we need to lift the DRI lock manually. */
 
-    if (!inDispatch)
-      __glXleaveServer();
-
-    cx->destroy(cx);
-
-    if (!inDispatch)
-      __glXenterServer();
+    if (glxBlockClients) {
+	__glXleaveServer();
+	cx->destroy(cx);
+	__glXenterServer();
+    } else {
+	cx->next = glxPendingDestroyContexts;
+	glxPendingDestroyContexts = cx;
+    }
 
     return GL_TRUE;
 }
@@ -338,7 +340,7 @@ void GlxExtensionInit(void)
     /*
     ** Initialize table of client state.  There is never a client 0.
     */
-    for (i=1; i <= MAXCLIENTS; i++) {
+    for (i = 1; i <= MAXCLIENTS; i++) {
 	__glXClients[i] = 0;
     }
 
@@ -409,11 +411,43 @@ __GLXcontext *__glXForceCurrent(__GLXcli
 
 /************************************************************************/
 
-/*
-** Top level dispatcher; all commands are executed from here down.
-*/
+void glxSuspendClients(void)
+{
+    int i;
 
-/* I cried when I wrote this.  Damn you XAA! */
+    for (i = 1; i <= MAXCLIENTS; i++) {
+	if (__glXClients[i] == NULL || !__glXClients[i]->inUse)
+	    continue;
+
+	IgnoreClient(__glXClients[i]->client);
+    }
+
+    glxBlockClients = TRUE;
+}
+
+void glxResumeClients(void)
+{
+    __GLXcontext *cx, *next;
+    int i;
+
+    glxBlockClients = FALSE;
+
+    for (i = 1; i <= MAXCLIENTS; i++) {
+	if (__glXClients[i] == NULL || !__glXClients[i]->inUse)
+	    continue;
+
+	AttendClient(__glXClients[i]->client);
+    }
+
+    __glXleaveServer();
+    for (cx = glxPendingDestroyContexts; cx != NULL; cx = next) {
+	next = cx->next;
+
+	cx->destroy(cx);
+    }
+    glxPendingDestroyContexts = NULL;
+    __glXenterServer();
+}
 
 static void
 __glXnopEnterServer(void)
@@ -438,14 +472,19 @@ void __glXsetEnterLeaveServerFuncs(void 
 
 void __glXenterServer(void)
 {
-  (*__glXenterServerFunc)();
+  glxServerLeaveCount--;
+
+  if (glxServerLeaveCount == 0)
+    (*__glXenterServerFunc)();
 }
 
 void __glXleaveServer(void)
 {
-  (*__glXleaveServerFunc)();
-}
+  if (glxServerLeaveCount == 0)
+    (*__glXleaveServerFunc)();
 
+  glxServerLeaveCount++;
+}
 
 /*
 ** Top level dispatcher; all commands are executed from here down.
@@ -491,6 +530,15 @@ static int __glXDispatch(ClientPtr clien
 	return __glXError(GLXBadLargeRequest);
     }
 
+    /* If we're currently blocking GLX clients, just put this guy to
+     * sleep, reset the request and return. */
+    if (glxBlockClients) {
+	ResetCurrentRequest(client);
+	client->sequence--;
+	IgnoreClient(client);
+	return(client->noClientException);
+    }
+
     /*
     ** Use the opcode to index into the procedure table.
     */
@@ -500,12 +548,8 @@ static int __glXDispatch(ClientPtr clien
     if (proc != NULL) {
 	__glXleaveServer();
 
-	inDispatch = True;
-
 	retval = (*proc)(cl, (GLbyte *) stuff);
 
-	inDispatch = False;
-
 	__glXenterServer();
     }
     else {
diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index 8389737..49cad73 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -136,6 +136,9 @@ void __glXsetEnterLeaveServerFuncs(void 
 void __glXenterServer(void);
 void __glXleaveServer(void);
 
+void glxSuspendClients(void);
+void glxResumeClients(void);
+
 /*
 ** State kept per client.
 */
@@ -176,8 +179,6 @@ struct __GLXclientStateRec {
     char *GLClientextensions;
 };
 
-extern __GLXclientState *__glXClients[];
-
 /************************************************************************/
 
 /*
diff-tree 64479fffa22581cc7d753065c33eda5520b7db9a (from a0179281a6522ec59830e8f2549633741bc56e10)
Author: Ian Romanick <idr at us.ibm.com>
Date:   Wed Sep 6 16:13:21 2006 -0700

    Remove prototypes and externs for non-existant functions and variables.

diff --git a/GL/glx/glxext.h b/GL/glx/glxext.h
index d708208..edd66a8 100644
--- a/GL/glx/glxext.h
+++ b/GL/glx/glxext.h
@@ -71,9 +71,6 @@ extern void __glXClearErrorOccured(void)
 extern GLboolean __glXErrorOccured(void);
 extern void __glXResetLargeCommandStatus(__GLXclientState*);
 
-extern int __glXQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc);
-extern int __glXSwapQueryContextInfoEXT(__GLXclientState *cl, GLbyte *pc);
-
 extern int DoMakeCurrent( __GLXclientState *cl, GLXDrawable drawId,
     GLXDrawable readId, GLXContextID contextId, GLXContextTag tag );
 extern int DoGetVisualConfigs(__GLXclientState *cl, unsigned screen,
@@ -93,8 +90,6 @@ extern int DoRenderLarge(__GLXclientStat
 
 extern void GlxExtensionInit(void);
 
-extern Bool __glXCoreType(void);
-
 extern const char GLServerVersion[];
 extern int DoGetString(__GLXclientState *cl, GLbyte *pc, GLboolean need_swap);
 
diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index a79520e..8389737 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -191,7 +191,6 @@ typedef int (*__GLXdispatchVendorPrivPro
  * Dispatch for GLX commands.
  */
 typedef int (*__GLXprocPtr)(__GLXclientState *, char *pc);
-extern __GLXprocPtr __glXProcTable[];
 
 /*
  * Tables for computing the size of each rendering command.
@@ -252,6 +251,4 @@ extern int __glXImageSize(GLenum format,
     GLint imageHeight, GLint rowLength, GLint skipImages, GLint skipRows,
     GLint alignment);
 
-extern int __glXDrawArraysReqSize(const GLbyte *pc, Bool swap);
-
 #endif /* !__GLX_server_h__ */
diff-tree a0179281a6522ec59830e8f2549633741bc56e10 (from 8356be492c6b46abdffa08b13836571ed872e16f)
Author: Ian Romanick <idr at us.ibm.com>
Date:   Wed Sep 6 15:45:48 2006 -0700

    Remove prototypes for non-existant functions.

diff --git a/GL/glx/glxutil.h b/GL/glx/glxutil.h
index c30a1f9..1937ef2 100644
--- a/GL/glx/glxutil.h
+++ b/GL/glx/glxutil.h
@@ -40,36 +40,18 @@
 **
 */
 
-extern void __glXNop(void);
-
 /* relate contexts with drawables */
 extern void __glXAssociateContext(__GLXcontext *glxc);
 extern void __glXDeassociateContext(__GLXcontext *glxc);
 
-/* drawable operation */
-extern void __glXGetDrawableSize(__GLdrawablePrivate *glPriv, 
-				 GLint *x, GLint *y, 
-				 GLuint *width, GLuint *height);
-extern GLboolean __glXResizeDrawable(__GLdrawablePrivate *glPriv);
-extern GLboolean __glXResizeDrawableBuffers(__GLXdrawable *glxPriv);
-
 /* drawable management */
 extern void __glXRefDrawable(__GLXdrawable *glxPriv);
 extern void __glXUnrefDrawable(__GLXdrawable *glxPriv);
 
-extern __GLXdrawable *__glXCreateDrawable(__GLXscreen *screen,
-					  DrawablePtr pDraw, XID drawId,
-					  __GLcontextModes *modes);
 extern GLboolean __glXDrawableInit(__GLXdrawable *drawable,
 				   __GLXscreen *screen,
 				   DrawablePtr pDraw, XID drawID,
 				   __GLcontextModes *modes);
-extern GLboolean __glXDestroyDrawable(__GLXdrawable *glxPriv);
-extern __GLXdrawable *__glXFindDrawable(XID glxpixmapId);
-extern __GLXdrawable *__glXGetDrawable(__GLXcontext *ctx,
-				       DrawablePtr pDraw, 
-				       XID glxpixmapId);
-extern void __glXCacheDrawableSize(__GLXdrawable *glxPriv);
 
 /* context helper routines */
 extern __GLXcontext *__glXLookupContextByTag(__GLXclientState*, GLXContextTag);
@@ -79,4 +61,3 @@ extern void *__glXglDDXScreenInfo(void);
 extern void *__glXglDDXExtensionInfo(void);
 
 #endif /* _glxcmds_h_ */
-
diff-tree 8356be492c6b46abdffa08b13836571ed872e16f (from f6ce0839ba5b73247097826d28f7388fe248ec0c)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Wed Sep 6 15:20:55 2006 +0200

    Make sure _XSERVER64 is defined when it should be and gets tested.

diff --git a/hw/dmx/Makefile.am b/hw/dmx/Makefile.am
index 81b62f1..d36647b 100644
--- a/hw/dmx/Makefile.am
+++ b/hw/dmx/Makefile.am
@@ -83,6 +83,7 @@ Xdmx_LDADD = $(XORG_CORE_LIBS) \
 
 Xdmx_CFLAGS = \
               -DHAVE_DMX_CONFIG_H \
+              $(DIX_CFLAGS) \
               $(GLX_INCS) \
               $(GLX_DEFS) \
               @DMXMODULES_CFLAGS@
diff --git a/hw/dmx/dmx.h b/hw/dmx/dmx.h
index 18e75de..becb2da 100644
--- a/hw/dmx/dmx.h
+++ b/hw/dmx/dmx.h
@@ -51,6 +51,10 @@
 #ifndef DMX_H
 #define DMX_H
 
+#if HAVE_DMX_CONFIG_H
+#include <dmx-config.h>
+#endif
+
 #include "gcstruct.h"
 
 /* Handle client-side include files in one place. */
diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
index 4903791..4587500 100644
--- a/hw/xfree86/common/xf86.h
+++ b/hw/xfree86/common/xf86.h
@@ -36,6 +36,12 @@
 #ifndef _XF86_H
 #define _XF86_H
 
+#if HAVE_XORG_CONFIG_H
+#include <xorg-config.h>
+#elif HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
 #include "xf86str.h"
 #include "xf86Opt.h"
 #include <X11/Xfuncproto.h>
diff --git a/hw/xnest/Makefile.am b/hw/xnest/Makefile.am
index b237788..d40d122 100644
--- a/hw/xnest/Makefile.am
+++ b/hw/xnest/Makefile.am
@@ -51,7 +51,7 @@ Xnest_LDFLAGS =
 
 AM_CFLAGS = -DHAVE_XNEST_CONFIG_H \
             -DNO_HW_ONLY_EXTS \
- \
+            $(DIX_CFLAGS) \
             $(XNESTMODULES_CFLAGS)
 
 EXTRA_DIST = os2Stub.c \
diff --git a/mi/mieq.c b/mi/mieq.c
index a7c6f9a..a69ce70 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -32,6 +32,10 @@ in this Software without prior written a
  *
  */
 
+#if HAVE_DIX_CONFIG_H
+#include <dix-config.h>
+#endif
+
 # define NEED_EVENTS
 # include   <X11/X.h>
 # include   <X11/Xmd.h>
diff-tree f6ce0839ba5b73247097826d28f7388fe248ec0c (from 410e5b1d738ba47b36778e6cbed44023a27ce259)
Author: Michel Dänzer <michel at tungstengraphics.com>
Date:   Wed Sep 6 13:18:02 2006 +0200

    Fix #include paths for fontcacheproto headers.

diff --git a/Xext/fontcache.c b/Xext/fontcache.c
index 00a45c9..db03481 100644
--- a/Xext/fontcache.c
+++ b/Xext/fontcache.c
@@ -45,8 +45,8 @@
 #include "inputstr.h"
 #include "servermd.h"
 #define _FONTCACHE_SERVER_
-#include "fontcacheP.h"
-#include "fontcachstr.h"
+#include <X11/extensions/fontcacheP.h>
+#include <X11/extensions/fontcachstr.h>
 #include <X11/Xfuncproto.h>
 
 #include "swaprep.h"
diff-tree 410e5b1d738ba47b36778e6cbed44023a27ce259 (from c2813514cf7b1a36caa848cbc2ceef99cf2eb769)
Author: Aaron Plattner <aplattner at nvidia.com>
Date:   Tue Sep 5 15:23:54 2006 -0700

    (unsigned long)(1 << 31) = bad news on x86_64.

diff --git a/fb/fbimage.c b/fb/fbimage.c
index bf5c06b..3b4a07c 100644
--- a/fb/fbimage.c
+++ b/fb/fbimage.c
@@ -68,7 +68,7 @@ fbPutImage (DrawablePtr	pDrawable,
 	break;
     case XYPixmap:
 	srcStride = BitmapBytePad(w + leftPad) / sizeof (FbStip);
-	for (i = 1 << (pDrawable->depth - 1); i; i >>= 1)
+	for (i = (unsigned long)1 << (pDrawable->depth - 1); i; i >>= 1)
 	{
 	    if (i & pGC->planemask)
 	    {



More information about the xorg-commit mailing list