summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaleb Keithley <kaleb@freedesktop.org>2004-02-23 21:37:29 +0000
committerKaleb Keithley <kaleb@freedesktop.org>2004-02-23 21:37:29 +0000
commit03d893bff9bf5d6be9663a21cc983873d8e8d4c7 (patch)
treeb2cf580cde3a8b6025e8f236bede76126d623dce
parent30ac3efde2c3f08b98f31833df4ea7d87f33b092 (diff)
merge most of XFree86 RC3 (4.3.99.903) from vendor branch. bug #214
-rw-r--r--GL/glx/g_disptab.c14
-rw-r--r--GL/glx/g_disptab.h4
-rw-r--r--GL/glx/g_disptab_EXT.c130
-rw-r--r--GL/glx/g_disptab_EXT.h42
-rw-r--r--GL/glx/g_render.c174
-rw-r--r--GL/glx/g_renderswap.c18
-rw-r--r--GL/glx/glxcmds.c14
-rw-r--r--GL/glx/glxcmdsswap.c17
-rw-r--r--GL/glx/glxext.c5
-rw-r--r--GL/glx/glxext.h5
-rw-r--r--GL/glx/glxscreens.c11
-rw-r--r--GL/glx/glxserver.h3
-rw-r--r--GL/glx/impsize.h5
-rw-r--r--GL/glx/render2.c17
-rw-r--r--GL/glx/render2swap.c5
-rw-r--r--GL/glx/rensize.c10
-rw-r--r--GL/glx/rensizetab.c30
-rw-r--r--GL/glx/single2.c38
-rw-r--r--GL/glx/single2swap.c55
-rw-r--r--GL/glx/singlesize.c257
-rw-r--r--Xprint/pcl/PclSFonts.c5
-rw-r--r--dix/events.c29
-rw-r--r--doc/Xserver.man.pre95
-rw-r--r--fb/fbcopy.c54
-rw-r--r--hw/darwin/bundle/Swedish.lproj/MainMenu.nib/objects.nibbin20444 -> 20851 bytes
-rw-r--r--hw/darwin/quartz/quartzKeyboard.c6
-rw-r--r--hw/xfree86/common/compiler.h17
-rw-r--r--hw/xfree86/common/xf86.h3
-rw-r--r--hw/xfree86/common/xf86Bus.c3
-rw-r--r--hw/xfree86/common/xf86Helper.c61
-rw-r--r--hw/xfree86/common/xf86Init.c63
-rw-r--r--hw/xfree86/common/xf86Priv.h4
-rw-r--r--hw/xfree86/common/xf86Privstr.h12
-rw-r--r--hw/xfree86/doc/README.fonts37
-rw-r--r--hw/xfree86/doc/changelogs/CHANGELOG259
-rw-r--r--hw/xfree86/doc/sgml/DESIGN.sgml6
-rw-r--r--hw/xfree86/dri/dri.c7
-rw-r--r--hw/xfree86/int10/helper_exec.c6
-rw-r--r--hw/xfree86/loader/coffloader.c6
-rw-r--r--hw/xfree86/loader/fontsym.c6
-rw-r--r--hw/xfree86/os-support/bsd/alpha_video.c46
-rw-r--r--hw/xfree86/os-support/bsd/bsd_kbd.c4
-rw-r--r--hw/xfree86/os-support/bsd/bsd_mouse.c67
-rw-r--r--hw/xfree86/os-support/bus/Pci.c8
-rw-r--r--hw/xfree86/os-support/bus/Pci.h5
-rw-r--r--hw/xfree86/os-support/bus/zx1PCI.c100
-rw-r--r--hw/xfree86/os-support/linux/int10/linux.c3
-rw-r--r--hw/xfree86/os-support/linux/lnxResource.c15
-rw-r--r--hw/xfree86/os-support/misc/PortIO.S57
-rw-r--r--hw/xfree86/os-support/misc/SlowBcopy.c10
-rw-r--r--hw/xfree86/scanpci/pci.ids159
-rw-r--r--hw/xfree86/utils/ioport/ioport.c4
-rw-r--r--hw/xfree86/utils/xorgcfg/config.h9
-rw-r--r--hw/xfree86/vbe/vbe.h6
-rw-r--r--hw/xfree86/vgahw/vgaHW.c41
-rw-r--r--hw/xfree86/x86emu/ops2.c58
-rw-r--r--hw/xfree86/xaa/xaaPict.c5
-rwxr-xr-xhw/xwin/winmultiwindowshape.c20
-rw-r--r--hw/xwin/winwindow.c6
-rw-r--r--mi/mibank.c4
-rw-r--r--mi/mibank.h4
-rw-r--r--miext/rootless/safeAlpha/safeAlpha.h3
-rw-r--r--miext/rootless/safeAlpha/safeAlphaPicture.c3
-rw-r--r--miext/rootless/safeAlpha/safeAlphaWindow.c5
-rw-r--r--os/access.c59
-rw-r--r--os/utils.c22
-rw-r--r--os/xdmcp.c47
-rw-r--r--xkb/xkb.c5
-rw-r--r--xkb/xkbInit.c4
69 files changed, 1792 insertions, 520 deletions
diff --git a/GL/glx/g_disptab.c b/GL/glx/g_disptab.c
index da05fe290..47988a595 100644
--- a/GL/glx/g_disptab.c
+++ b/GL/glx/g_disptab.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab.c,v 1.4 2003/09/28 20:15:41 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab.c,v 1.6 2004/02/12 02:25:00 torrey Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
/*
** License Applicability. Except to the extent portions of this file are
@@ -425,8 +425,12 @@ __GLXdispatchRenderProcPtr __glXRenderTable[] = {
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
+ __glXDisp_SampleCoverageARB,
+#ifndef MISSING_GL_EXTS
__glXDisp_WindowPos3fARB /* 230 */
+#else
+ __glXNoSuchRenderOpcode
+#endif
};
__GLXdispatchSingleProcPtr __glXSwapSingleTable[__GLX_SINGLE_TABLE_SIZE] = {
@@ -822,6 +826,10 @@ __GLXdispatchRenderProcPtr __glXSwapRenderTable[__GLX_RENDER_TABLE_SIZE] = {
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
+ __glXDispSwap_SampleCoverageARB,
+#ifndef MISSING_GL_EXTS
__glXDispSwap_WindowPos3fARB /* 230 */
+#else
+ __glXNoSuchRenderOpcode
+#endif
};
diff --git a/GL/glx/g_disptab.h b/GL/glx/g_disptab.h
index ceeab5482..e311d98c3 100644
--- a/GL/glx/g_disptab.h
+++ b/GL/glx/g_disptab.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab.h,v 1.4 2003/09/28 20:15:42 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab.h,v 1.5 2004/01/28 18:11:50 alanh Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
#ifndef _GLX_g_disptab_h_
#define _GLX_g_disptab_h_
@@ -325,6 +325,7 @@ extern void __glXDisp_MultiTexCoord4dvARB(GLbyte*);
extern void __glXDisp_MultiTexCoord4fvARB(GLbyte*);
extern void __glXDisp_MultiTexCoord4ivARB(GLbyte*);
extern void __glXDisp_MultiTexCoord4svARB(GLbyte*);
+extern void __glXDisp_SampleCoverageARB(GLbyte *);
extern void __glXDisp_WindowPos3fARB(GLbyte *);
extern int __glXSwapRender(__GLXclientState*, GLbyte*);
@@ -621,6 +622,7 @@ extern void __glXDispSwap_MultiTexCoord4dvARB(GLbyte*);
extern void __glXDispSwap_MultiTexCoord4fvARB(GLbyte*);
extern void __glXDispSwap_MultiTexCoord4ivARB(GLbyte*);
extern void __glXDispSwap_MultiTexCoord4svARB(GLbyte*);
+extern void __glXDispSwap_SampleCoverageARB(GLbyte *);
extern void __glXDispSwap_WindowPos3fARB(GLbyte *);
#define __GLX_MIN_GLXCMD_OPCODE 1
diff --git a/GL/glx/g_disptab_EXT.c b/GL/glx/g_disptab_EXT.c
index 2d8caec92..472a2d443 100644
--- a/GL/glx/g_disptab_EXT.c
+++ b/GL/glx/g_disptab_EXT.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab_EXT.c,v 1.4 2003/09/28 20:15:42 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab_EXT.c,v 1.6 2004/02/12 02:25:00 torrey Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
/*
** License Applicability. Except to the extent portions of this file are
@@ -45,8 +45,13 @@ __GLXdispatchRenderProcPtr __glXRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
+#ifndef MISSING_GL_EXTS
__glXDisp_PointParameterfARB, /* 2065 */
__glXDisp_PointParameterfvARB, /* 2066 */
+#else
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+#endif
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
@@ -2104,22 +2109,36 @@ __GLXdispatchRenderProcPtr __glXRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __
__glXDisp_CopyTexSubImage1D, /* 4121 */
__glXDisp_CopyTexSubImage2D, /* 4122 */
__glXDisp_CopyTexSubImage3D, /* 4123 */
- __glXNoSuchRenderOpcode, /* 4124 */
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode, /* 4130 */
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
+#ifndef MISSING_GL_EXTS
+ __glXDisp_FogCoordfv, /* 4124 */
+ __glXDisp_FogCoorddv, /* 4125 */
+ __glXDisp_SecondaryColor3bv, /* 4126 */
+ __glXDisp_SecondaryColor3sv, /* 4127 */
+ __glXDisp_SecondaryColor3iv, /* 4128 */
+ __glXDisp_SecondaryColor3fv, /* 4129 */
+ __glXDisp_SecondaryColor3dv, /* 4130 */
+ __glXDisp_SecondaryColor3ubv, /* 4131 */
+ __glXDisp_SecondaryColor3usv, /* 4132 */
+ __glXDisp_SecondaryColor3uiv, /* 4133 */
+ __glXDisp_BlendFuncSeparate, /* 4134 */
+#else
+ __glXNoSuchRenderOpcode, /* 4124 */
+ __glXNoSuchRenderOpcode, /* 4125 */
+ __glXNoSuchRenderOpcode, /* 4126 */
+ __glXNoSuchRenderOpcode, /* 4127 */
+ __glXNoSuchRenderOpcode, /* 4128 */
+ __glXNoSuchRenderOpcode, /* 4129 */
+ __glXNoSuchRenderOpcode, /* 4130 */
+ __glXNoSuchRenderOpcode, /* 4131 */
+ __glXNoSuchRenderOpcode, /* 4132 */
+ __glXNoSuchRenderOpcode, /* 4133 */
+ __glXNoSuchRenderOpcode, /* 4134 */
+#endif
+ __glXNoSuchRenderOpcode, /* 4135 */
+ __glXNoSuchRenderOpcode, /* 4136 */
+ __glXNoSuchRenderOpcode, /* 4137 */
+ __glXNoSuchRenderOpcode, /* 4138 */
+ __glXNoSuchRenderOpcode, /* 4139 */
__glXNoSuchRenderOpcode, /* 4140 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
@@ -2200,7 +2219,20 @@ __GLXdispatchRenderProcPtr __glXRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4219 */
+#ifndef MISSING_GL_EXTS
__glXDisp_ActiveStencilFaceEXT, /* 4220 */
+# ifndef __DARWIN__
+ __glXDisp_PointParameteri, /* 4221 */
+ __glXDisp_PointParameteriv, /* 4222 */
+# else
+ __glXDisp_PointParameteriNV, /* 4221 */
+ __glXDisp_PointParameterivNV, /* 4222 */
+# endif
+#else
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+#endif
};
__GLXdispatchVendorPrivProcPtr __glXVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
__glXDisp_AreTexturesResidentEXT, /* 11 */
@@ -2223,8 +2255,13 @@ __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
+#ifndef MISSING_GL_EXTS
__glXDispSwap_PointParameterfARB, /* 2065 */
__glXDispSwap_PointParameterfvARB, /* 2066 */
+#else
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+#endif
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
@@ -4282,22 +4319,36 @@ __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT
__glXDispSwap_CopyTexSubImage1D, /* 4121 */
__glXDispSwap_CopyTexSubImage2D, /* 4122 */
__glXDispSwap_CopyTexSubImage3D, /* 4123 */
- __glXNoSuchRenderOpcode, /* 4124 */
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode, /* 4130 */
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
- __glXNoSuchRenderOpcode,
+#ifndef MISSING_GL_EXTS
+ __glXDispSwap_FogCoordfv, /* 4124 */
+ __glXDispSwap_FogCoorddv, /* 4125 */
+ __glXDispSwap_SecondaryColor3bv, /* 4126 */
+ __glXDispSwap_SecondaryColor3sv, /* 4127 */
+ __glXDispSwap_SecondaryColor3iv, /* 4128 */
+ __glXDispSwap_SecondaryColor3fv, /* 4129 */
+ __glXDispSwap_SecondaryColor3dv, /* 4130 */
+ __glXDispSwap_SecondaryColor3ubv, /* 4131 */
+ __glXDispSwap_SecondaryColor3usv, /* 4132 */
+ __glXDispSwap_SecondaryColor3uiv, /* 4133 */
+ __glXDisp_BlendFuncSeparate, /* 4134 */
+#else
+ __glXNoSuchRenderOpcode, /* 4124 */
+ __glXNoSuchRenderOpcode, /* 4125 */
+ __glXNoSuchRenderOpcode, /* 4126 */
+ __glXNoSuchRenderOpcode, /* 4127 */
+ __glXNoSuchRenderOpcode, /* 4128 */
+ __glXNoSuchRenderOpcode, /* 4129 */
+ __glXNoSuchRenderOpcode, /* 4130 */
+ __glXNoSuchRenderOpcode, /* 4131 */
+ __glXNoSuchRenderOpcode, /* 4132 */
+ __glXNoSuchRenderOpcode, /* 4133 */
+ __glXNoSuchRenderOpcode, /* 4134 */
+#endif
+ __glXNoSuchRenderOpcode, /* 4135 */
+ __glXNoSuchRenderOpcode, /* 4136 */
+ __glXNoSuchRenderOpcode, /* 4137 */
+ __glXNoSuchRenderOpcode, /* 4138 */
+ __glXNoSuchRenderOpcode, /* 4139 */
__glXNoSuchRenderOpcode, /* 4140 */
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
@@ -4378,7 +4429,20 @@ __GLXdispatchRenderProcPtr __glXSwapRenderTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode,
__glXNoSuchRenderOpcode, /* 4219 */
+#ifndef MISSING_GL_EXTS
__glXDispSwap_ActiveStencilFaceEXT, /* 4220 */
+# ifndef __DARWIN__
+ __glXDispSwap_PointParameteri, /* 4221 */
+ __glXDispSwap_PointParameteriv, /* 4222 */
+# else
+ __glXDispSwap_PointParameteriNV, /* 4221 */
+ __glXDispSwap_PointParameterivNV, /* 4222 */
+# endif
+#else
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+ __glXNoSuchRenderOpcode,
+#endif
};
__GLXdispatchVendorPrivProcPtr __glXSwapVendorPrivTable_EXT[__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1] = {
__glXDispSwap_AreTexturesResidentEXT, /* 11 */
diff --git a/GL/glx/g_disptab_EXT.h b/GL/glx/g_disptab_EXT.h
index d5b67745c..3aca9347f 100644
--- a/GL/glx/g_disptab_EXT.h
+++ b/GL/glx/g_disptab_EXT.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab_EXT.h,v 1.4 2003/09/28 20:15:42 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/g_disptab_EXT.h,v 1.6 2004/02/12 02:25:01 torrey Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
#ifndef _GLX_g_disptab_EXT_h_
#define _GLX_g_disptab_EXT_h_
@@ -69,6 +69,44 @@ extern void __glXDisp_CopyTexSubImage2D(GLbyte*);
extern void __glXDisp_CopyTexSubImage3D(GLbyte*);
extern void __glXDisp_PointParameterfARB(GLbyte*);
extern void __glXDisp_PointParameterfvARB(GLbyte*);
+
+extern void __glXDisp_FogCoordfv(GLbyte *);
+extern void __glXDisp_FogCoorddv(GLbyte *);
+extern void __glXDispSwap_FogCoordfv(GLbyte *);
+extern void __glXDispSwap_FogCoorddv(GLbyte *);
+
+extern void __glXDisp_SecondaryColor3bv(GLbyte *);
+extern void __glXDisp_SecondaryColor3sv(GLbyte *);
+extern void __glXDisp_SecondaryColor3iv(GLbyte *);
+extern void __glXDisp_SecondaryColor3ubv(GLbyte *);
+extern void __glXDisp_SecondaryColor3usv(GLbyte *);
+extern void __glXDisp_SecondaryColor3uiv(GLbyte *);
+extern void __glXDisp_SecondaryColor3fv(GLbyte *);
+extern void __glXDisp_SecondaryColor3dv(GLbyte *);
+extern void __glXDispSwap_SecondaryColor3bv(GLbyte *);
+extern void __glXDispSwap_SecondaryColor3sv(GLbyte *);
+extern void __glXDispSwap_SecondaryColor3iv(GLbyte *);
+extern void __glXDispSwap_SecondaryColor3ubv(GLbyte *);
+extern void __glXDispSwap_SecondaryColor3usv(GLbyte *);
+extern void __glXDispSwap_SecondaryColor3uiv(GLbyte *);
+extern void __glXDispSwap_SecondaryColor3fv(GLbyte *);
+extern void __glXDispSwap_SecondaryColor3dv(GLbyte *);
+
+extern void __glXDisp_BlendFuncSeparate(GLbyte *);
+extern void __glXDispSwap_BlendFuncSeparate(GLbyte *);
+
+#ifdef __DARWIN__
+extern void __glXDisp_PointParameteriNV(GLbyte *);
+extern void __glXDisp_PointParameterivNV(GLbyte *);
+extern void __glXDispSwap_PointParameteriNV(GLbyte *);
+extern void __glXDispSwap_PointParameterivNV(GLbyte *);
+#else
+extern void __glXDisp_PointParameteri(GLbyte *);
+extern void __glXDisp_PointParameteriv(GLbyte *);
+extern void __glXDispSwap_PointParameteri(GLbyte *);
+extern void __glXDispSwap_PointParameteriv(GLbyte *);
+#endif
+
extern void __glXDisp_ActiveStencilFaceEXT(GLbyte*);
extern int __glXDispSwap_AreTexturesResidentEXT(__GLXclientState*, GLbyte*);
@@ -112,7 +150,7 @@ extern void __glXDispSwap_PointParameterfvARB(GLbyte*);
extern void __glXDispSwap_ActiveStencilFaceEXT(GLbyte*);
#define __GLX_MIN_RENDER_OPCODE_EXT 2053
-#define __GLX_MAX_RENDER_OPCODE_EXT 4220
+#define __GLX_MAX_RENDER_OPCODE_EXT 4222
#define __GLX_MIN_VENDPRIV_OPCODE_EXT 11
#define __GLX_MAX_VENDPRIV_OPCODE_EXT 14
#define __GLX_VENDPRIV_TABLE_SIZE_EXT (__GLX_MAX_VENDPRIV_OPCODE_EXT - __GLX_MIN_VENDPRIV_OPCODE_EXT + 1)
diff --git a/GL/glx/g_render.c b/GL/glx/g_render.c
index 5e142138e..88834bf39 100644
--- a/GL/glx/g_render.c
+++ b/GL/glx/g_render.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/g_render.c,v 1.6 2003/10/28 22:50:17 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/g_render.c,v 1.9 2004/02/12 02:25:01 torrey Exp $ */
/* DO NOT EDIT - THIS FILE IS AUTOMATICALLY GENERATED */
/*
** License Applicability. Except to the extent portions of this file are
@@ -59,6 +59,157 @@ void __glXDisp_Begin(GLbyte *pc)
);
}
+#define __GLX_SWAP_GLbyte(ptr)
+#define __GLX_SWAP_GLshort(ptr) __GLX_SWAP_SHORT(ptr)
+#define __GLX_SWAP_GLint(ptr) __GLX_SWAP_INT(ptr)
+#define __GLX_SWAP_GLubyte(ptr)
+#define __GLX_SWAP_GLushort(ptr) __GLX_SWAP_SHORT(ptr)
+#define __GLX_SWAP_GLuint(ptr) __GLX_SWAP_INT(ptr)
+#define __GLX_SWAP_GLdouble(ptr) __GLX_SWAP_DOUBLE(ptr)
+#define __GLX_SWAP_GLfloat(ptr) __GLX_SWAP_FLOAT(ptr)
+
+#define __GLX_SWAP_GLbyte_ARRAY(ptr,count) (void) swapEnd; (void) swapPC; (void) sw;
+#define __GLX_SWAP_GLshort_ARRAY(ptr,count) __GLX_SWAP_SHORT_ARRAY(ptr,count)
+#define __GLX_SWAP_GLint_ARRAY(ptr,count) __GLX_SWAP_INT_ARRAY(ptr,count)
+#define __GLX_SWAP_GLenum_ARRAY(ptr,count) __GLX_SWAP_INT_ARRAY(ptr,count)
+#define __GLX_SWAP_GLubyte_ARRAY(ptr,count) (void) swapEnd; (void) swapPC; (void) sw;
+#define __GLX_SWAP_GLushort_ARRAY(ptr,count) __GLX_SWAP_SHORT_ARRAY(ptr,count)
+#define __GLX_SWAP_GLuint_ARRAY(ptr,count) __GLX_SWAP_INT_ARRAY(ptr,count)
+#define __GLX_SWAP_GLdouble_ARRAY(ptr,count) __GLX_SWAP_DOUBLE_ARRAY(ptr,count)
+#define __GLX_SWAP_GLfloat_ARRAY(ptr,count) __GLX_SWAP_FLOAT_ARRAY(ptr,count)
+
+#ifdef __GLX_ALIGN64
+/* If type is not GLdouble, the compiler should optimize this away.
+ */
+# define GLX_DO_ALIGN_MAGIC(count, type) \
+ do { \
+ if ( (sizeof(type) == 8) && ((unsigned long)(pc) & 7)) \
+ { \
+ __GLX_MEM_COPY(pc-4, pc, (count * sizeof( type ) )); \
+ pc -= 4; \
+ } \
+ } while( 0 )
+#else
+# define GLX_DO_ALIGN_MAGIC(count, type)
+#endif
+
+#define dispatch_template_1( name, type ) \
+ void __glXDisp_ ## name ( GLbyte * pc ) \
+ { \
+ GLX_DO_ALIGN_MAGIC( 1, type ); \
+ gl ## name ( (type *) pc ); \
+ } \
+ void __glXDispSwap_ ## name ( GLbyte * pc ) \
+ { \
+ __GLX_DECLARE_SWAP_VARIABLES; \
+ GLX_DO_ALIGN_MAGIC( 1, type ); \
+ __GLX_SWAP_ ## type ( pc ); \
+ gl ## name ( (type *) pc ); \
+ }
+
+#define dispatch_template_3( name, type ) \
+ void __glXDisp_ ## name ( GLbyte * pc ) \
+ { \
+ GLX_DO_ALIGN_MAGIC( 3, type ); \
+ gl ## name ( (type *) pc ); \
+ } \
+ void __glXDispSwap_ ## name ( GLbyte * pc ) \
+ { \
+ __GLX_DECLARE_SWAP_VARIABLES; \
+ __GLX_DECLARE_SWAP_ARRAY_VARIABLES; \
+ GLX_DO_ALIGN_MAGIC( 3, type ); \
+ __GLX_SWAP_ ## type ## _ARRAY(pc, 3); \
+ gl ## name ( (type *) pc ); \
+ }
+
+#define dispatch_template_4( name, type ) \
+ void __glXDisp_ ## name ( GLbyte * pc ) \
+ { \
+ GLX_DO_ALIGN_MAGIC( 4, type ); \
+ gl ## name ( (type *) pc ); \
+ } \
+ void __glXDispSwap_ ## name ( GLbyte * pc ) \
+ { \
+ __GLX_DECLARE_SWAP_VARIABLES; \
+ __GLX_DECLARE_SWAP_ARRAY_VARIABLES; \
+ GLX_DO_ALIGN_MAGIC( 4, type ); \
+ __GLX_SWAP_ ## type ## _ARRAY(pc, 4); \
+ gl ## name ( (type *) pc ); \
+ }
+
+#define dispatch_template_4s( name, type ) \
+ void __glXDisp_ ## name ( GLbyte * pc ) \
+ { \
+ GLX_DO_ALIGN_MAGIC( 4, type ); \
+ gl ## name ( ((type *) pc)[0], ((type *) pc)[1], \
+ ((type *) pc)[2], ((type *) pc)[3] ); \
+ } \
+ void __glXDispSwap_ ## name ( GLbyte * pc ) \
+ { \
+ __GLX_DECLARE_SWAP_VARIABLES; \
+ __GLX_DECLARE_SWAP_ARRAY_VARIABLES; \
+ GLX_DO_ALIGN_MAGIC( 4, type ); \
+ __GLX_SWAP_ ## type ## _ARRAY(pc, 4); \
+ gl ## name ( ((type *) pc)[0], ((type *) pc)[1], \
+ ((type *) pc)[2], ((type *) pc)[3] ); \
+ }
+
+/**
+ * \bug All of the enum1 templates need to be updated to handle the case where
+ * \c type is \c GLdouble. When the type is a double, the data comes before
+ * the enum. This is also the reason the invocation of the
+ * \c GLX_DO_ALIGN_MAGIC macro was removed.
+ */
+#define dispatch_template_enum1_1s( name, type ) \
+ void __glXDisp_ ## name ( GLbyte * pc ) \
+ { \
+ gl ## name ( *(GLenum *) (pc + 0), \
+ *(type *) (pc + 4) ); \
+ } \
+ void __glXDispSwap_ ## name ( GLbyte * pc ) \
+ { \
+ __GLX_DECLARE_SWAP_VARIABLES; \
+ __GLX_SWAP_INT (pc + 0); \
+ __GLX_SWAP_ ## type (pc + 4); \
+ gl ## name ( *(GLenum *) (pc + 0), \
+ *(type *) (pc + 4) ); \
+ }
+
+#define dispatch_template_enum1_Vv( name, type ) \
+ void __glXDisp_ ## name ( GLbyte * pc ) \
+ { \
+ gl ## name ( *(GLenum *) (pc + 0), \
+ (type *) (pc + 4) ); \
+ } \
+ void __glXDispSwap_ ## name ( GLbyte * pc ) \
+ { \
+ GLenum pname; GLint compsize; \
+ __GLX_DECLARE_SWAP_VARIABLES; \
+ __GLX_DECLARE_SWAP_ARRAY_VARIABLES; \
+ __GLX_SWAP_INT(pc + 0); \
+ pname = *(GLenum *)(pc + 0); \
+ compsize = __gl ## name ## _size(pname); \
+ if (compsize < 0) compsize = 0; \
+ __GLX_SWAP_ ## type ## _ARRAY(pc + 4, compsize); \
+ gl ## name ( *(GLenum *) (pc + 0), \
+ (type *) (pc + 4) ); \
+ }
+
+#ifndef MISSING_GL_EXTS
+dispatch_template_1( FogCoordfv, GLfloat )
+dispatch_template_1( FogCoorddv, GLdouble )
+dispatch_template_3( SecondaryColor3bv, GLbyte )
+dispatch_template_3( SecondaryColor3sv, GLshort )
+dispatch_template_3( SecondaryColor3iv, GLint )
+dispatch_template_3( SecondaryColor3ubv, GLubyte )
+dispatch_template_3( SecondaryColor3usv, GLushort )
+dispatch_template_3( SecondaryColor3uiv, GLuint )
+dispatch_template_3( SecondaryColor3fv, GLfloat )
+dispatch_template_3( SecondaryColor3dv, GLdouble )
+
+dispatch_template_4s( BlendFuncSeparate, GLenum )
+#endif /* !MISSING_GL_EXTS */
+
void __glXDisp_Color3bv(GLbyte *pc)
{
glColor3bv(
@@ -2079,6 +2230,8 @@ void __glXDisp_MultiTexCoord4svARB(GLbyte *pc)
* Extensions
*/
+#ifndef MISSING_GL_EXTS
+
void __glXDisp_PointParameterfARB(GLbyte *pc)
{
glPointParameterfARB(
@@ -2096,6 +2249,15 @@ void __glXDisp_PointParameterfvARB(GLbyte *pc)
);
}
+#ifdef __DARWIN__
+#define __glPointParameterivNV_size __glPointParameteriv_size
+dispatch_template_enum1_1s(PointParameteriNV, GLint)
+dispatch_template_enum1_Vv(PointParameterivNV, GLint)
+#else
+dispatch_template_enum1_1s(PointParameteri, GLint)
+dispatch_template_enum1_Vv(PointParameteriv, GLint)
+#endif
+
void __glXDisp_ActiveStencilFaceEXT(GLbyte *pc)
{
glActiveStencilFaceEXT(
@@ -2111,3 +2273,13 @@ void __glXDisp_WindowPos3fARB(GLbyte *pc)
*(GLfloat *)(pc + 8)
);
}
+
+#endif /* !MISSING_GL_EXTS */
+
+void __glXDisp_SampleCoverageARB(GLbyte *pc)
+{
+ glSampleCoverageARB(
+ *(GLfloat *)(pc + 0),
+ *(GLboolean *)(pc + 4)
+ );
+}
diff --git a/GL/glx/g_renderswap.c b/GL/glx/g_renderswap.c
index a03db7599..ac4cb0b73 100644
--- a/GL/glx/g_renderswap.c
+++ b/GL/glx/g_renderswap.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/g_renderswap.c,v 1.7 2003/10/28 22:50:17 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/g_renderswap.c,v 1.9 2004/02/12 02:25:01 torrey Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@@ -3313,6 +3313,8 @@ void __glXDispSwap_MultiTexCoord4svARB(GLbyte *pc)
* Extensions
*/
+#ifndef MISSING_GL_EXTS
+
void __glXDispSwap_PointParameterfARB(GLbyte *pc)
{
__GLX_DECLARE_SWAP_VARIABLES;
@@ -3366,3 +3368,17 @@ void __glXDispSwap_WindowPos3fARB(GLbyte *pc)
*(GLfloat *)(pc + 8)
);
}
+
+#endif /* !MISSING_GL_EXTS */
+
+void __glXDispSwap_SampleCoverageARB(GLbyte *pc)
+{
+ __GLX_DECLARE_SWAP_VARIABLES;
+ __GLX_SWAP_FLOAT(pc + 0);
+ __GLX_SWAP_INT(pc + 4);
+
+ glSampleCoverageARB(
+ *(GLfloat *)(pc + 0),
+ *(GLboolean *)(pc + 4)
+ );
+}
diff --git a/GL/glx/glxcmds.c b/GL/glx/glxcmds.c
index 12e961ee6..57c064d19 100644
--- a/GL/glx/glxcmds.c
+++ b/GL/glx/glxcmds.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/glxcmds.c,v 1.11 2003/10/28 22:50:17 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/glxcmds.c,v 1.13 2004/02/12 02:25:01 torrey Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@@ -1554,6 +1554,18 @@ int __glXVendorPrivate(__GLXclientState *cl, GLbyte *pc)
req = (xGLXVendorPrivateReq *) pc;
vendorcode = req->vendorCode;
+#ifndef __DARWIN__
+ switch( vendorcode ) {
+ case X_GLvop_SampleMaskSGIS:
+ glSampleMaskSGIS(*(GLfloat *)(pc + 4),
+ *(GLboolean *)(pc + 8));
+ return Success;
+ case X_GLvop_SamplePatternSGIS:
+ glSamplePatternSGIS( *(GLenum *)(pc + 4));
+ return Success;
+ }
+#endif
+
if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
(vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT)) {
(*__glXVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])
diff --git a/GL/glx/glxcmdsswap.c b/GL/glx/glxcmdsswap.c
index 5237ecad0..0126b4699 100644
--- a/GL/glx/glxcmdsswap.c
+++ b/GL/glx/glxcmdsswap.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/glxcmdsswap.c,v 1.9 2003/10/28 22:50:17 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/glxcmdsswap.c,v 1.11 2004/02/12 02:25:01 torrey Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@@ -791,6 +791,21 @@ int __glXSwapVendorPrivate(__GLXclientState *cl, GLbyte *pc)
vendorcode = req->vendorCode;
+#ifndef __DARWIN__
+ switch( vendorcode ) {
+ case X_GLvop_SampleMaskSGIS:
+ __GLX_SWAP_FLOAT(pc + 4);
+ __GLX_SWAP_INT(pc + 8);
+ glSampleMaskSGIS(*(GLfloat *)(pc + 4),
+ *(GLboolean *)(pc + 8));
+ return Success;
+ case X_GLvop_SamplePatternSGIS:
+ __GLX_SWAP_INT(pc + 4);
+ glSamplePatternSGIS( *(GLenum *)(pc + 4));
+ return Success;
+ }
+#endif
+
if ((vendorcode >= __GLX_MIN_VENDPRIV_OPCODE_EXT) &&
(vendorcode <= __GLX_MAX_VENDPRIV_OPCODE_EXT)) {
(*__glXSwapVendorPrivTable_EXT[vendorcode-__GLX_MIN_VENDPRIV_OPCODE_EXT])(cl, (GLbyte*)req);
diff --git a/GL/glx/glxext.c b/GL/glx/glxext.c
index 716950953..ac08c3df9 100644
--- a/GL/glx/glxext.c
+++ b/GL/glx/glxext.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/glxext.c,v 1.9 2003/09/28 20:15:43 alanh Exp $
+/* $XFree86: xc/programs/Xserver/GL/glx/glxext.c,v 1.10 2004/01/28 22:36:05 alanh 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.,
@@ -31,6 +31,9 @@
extern __GLXextensionInfo __glDDXExtensionInfo;
+void GlxWrapInitVisuals(miInitVisualsProcPtr *);
+void GlxSetVisualConfigs(int nconfigs,
+ __GLXvisualConfig *configs, void **privates);
__GLXextensionInfo *__glXExt = &__glDDXExtensionInfo;
diff --git a/GL/glx/glxext.h b/GL/glx/glxext.h
index 4ec16d28d..fb0d21b85 100644
--- a/GL/glx/glxext.h
+++ b/GL/glx/glxext.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/glxext.h,v 1.7 2003/11/17 22:20:26 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/glxext.h,v 1.8 2004/02/09 23:46:31 alanh Exp $ */
#ifndef _glxext_h_
#define _glxext_h_
@@ -80,6 +80,9 @@ extern void GlxExtensionInit(void);
extern Bool __glXCoreType(void);
+extern const char GLServerVersion[];
+extern int DoGetString(__GLXclientState *cl, GLbyte *pc, GLboolean need_swap);
+
extern int GlxInitVisuals(
VisualPtr * visualp,
DepthPtr * depthp,
diff --git a/GL/glx/glxscreens.c b/GL/glx/glxscreens.c
index c141d3cea..1a64b0e19 100644
--- a/GL/glx/glxscreens.c
+++ b/GL/glx/glxscreens.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/glxscreens.c,v 1.12 2003/09/28 20:15:43 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/glxscreens.c,v 1.15 2004/02/12 02:25:01 torrey Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@@ -46,11 +46,13 @@
#include "glxserver.h"
#include "glxutil.h"
+const char GLServerVersion[] = "1.2";
static const char GLServerExtensions[] =
"GL_ARB_depth_texture "
"GL_ARB_imaging "
"GL_ARB_multitexture "
"GL_ARB_point_parameters "
+ "GL_ARB_point_sprite "
"GL_ARB_shadow "
"GL_ARB_shadow_ambient "
"GL_ARB_texture_border_clamp "
@@ -108,6 +110,7 @@ static const char GLServerExtensions[] =
"GL_MESA_pack_invert "
"GL_MESA_ycbcr_texture "
"GL_NV_blend_square "
+ "GL_NV_point_sprite "
"GL_NV_texgen_reflection "
"GL_NV_texture_rectangle "
"GL_SGIS_generate_mipmap "
@@ -125,11 +128,15 @@ static const char GLServerExtensions[] =
*/
static char GLXServerVendorName[] = "SGI";
static char GLXServerVersion[] = "1.2";
-static char GLXServerExtensions[] =
+static char GLXServerExtensions[] =
+ "GLX_ARB_multisample "
"GLX_EXT_visual_info "
"GLX_EXT_visual_rating "
"GLX_EXT_import_context "
"GLX_SGI_make_current_read "
+#ifndef __DARWIN__
+ "GLX_SGIS_multisample "
+#endif
;
/*
diff --git a/GL/glx/glxserver.h b/GL/glx/glxserver.h
index a800f0d73..9446aefcc 100644
--- a/GL/glx/glxserver.h
+++ b/GL/glx/glxserver.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/glxserver.h,v 1.5 2003/09/28 20:15:43 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/glxserver.h,v 1.6 2004/01/28 18:11:50 alanh Exp $ */
#ifndef _GLX_server_h_
#define _GLX_server_h_
@@ -280,5 +280,6 @@ extern int __glXColorTableParameterfvSize(GLenum pname);
extern int __glXColorTableParameterivSize(GLenum pname);
extern int __glXPointParameterfvARBReqSize(GLbyte *pc, Bool swap);
+extern int __glXPointParameterivReqSize(GLbyte *pc, Bool swap);
#endif /* !__GLX_server_h__ */
diff --git a/GL/glx/impsize.h b/GL/glx/impsize.h
index c923441c2..322ee18c8 100644
--- a/GL/glx/impsize.h
+++ b/GL/glx/impsize.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/impsize.h,v 1.4 2003/09/28 20:15:43 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/impsize.h,v 1.5 2004/01/28 18:11:50 alanh Exp $ */
#ifndef _impsize_h_
#define _impsize_h_
@@ -67,6 +67,7 @@ extern int __glTexParameterfv_size(GLenum e);
extern int __glTexParameteriv_size(GLenum e);
extern int __glEvalComputeK(GLenum target);
-extern int __glPointParameterfvARB_size(GLenum pname);
+extern int __glPointParameterfvARB_size(GLenum e);
+extern int __glPointParameteriv_size(GLenum e);
#endif /* _impsize_h_ */
diff --git a/GL/glx/render2.c b/GL/glx/render2.c
index 7189f9710..56453ceff 100644
--- a/GL/glx/render2.c
+++ b/GL/glx/render2.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/render2.c,v 1.6 2003/10/28 22:50:18 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/render2.c,v 1.9 2004/02/12 02:25:01 torrey Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@@ -234,6 +234,16 @@ void __glXDisp_DrawArrays(GLbyte *pc)
glEnableClientState(GL_EDGE_FLAG_ARRAY);
glEdgeFlagPointer(stride, (const GLboolean *)pc);
break;
+#ifndef MISSING_GL_EXTS
+ case GL_SECONDARY_COLOR_ARRAY:
+ glEnableClientState(GL_SECONDARY_COLOR_ARRAY);
+ glSecondaryColorPointer(numVals, datatype, stride, pc);
+ break;
+ case GL_FOG_COORDINATE_ARRAY:
+ glEnableClientState(GL_FOG_COORDINATE_ARRAY);
+ glFogCoordPointer(datatype, stride, pc);
+ break;
+#endif
default:
break;
}
@@ -250,10 +260,11 @@ void __glXDisp_DrawArrays(GLbyte *pc)
glDisableClientState(GL_INDEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_EDGE_FLAG_ARRAY);
+ glDisableClientState(GL_SECONDARY_COLOR_ARRAY);
+ glDisableClientState(GL_FOG_COORDINATE_ARRAY);
}
void __glXDisp_DrawArraysEXT(GLbyte *pc)
{
-#ifdef XXX_STUB
-#endif /*XXX_STUB*/
+ __glXDisp_DrawArrays(pc);
}
diff --git a/GL/glx/render2swap.c b/GL/glx/render2swap.c
index e873d88aa..b272c6ba9 100644
--- a/GL/glx/render2swap.c
+++ b/GL/glx/render2swap.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/render2swap.c,v 1.6 2002/01/14 22:47:08 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/render2swap.c,v 1.7 2004/02/03 23:04:08 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@@ -386,6 +386,5 @@ void __glXDispSwap_DrawArrays(GLbyte *pc)
void __glXDispSwap_DrawArraysEXT(GLbyte *pc)
{
-#ifdef XXX_STUB
-#endif /*XXX_STUB*/
+ __glXDispSwap_DrawArrays(pc);
}
diff --git a/GL/glx/rensize.c b/GL/glx/rensize.c
index 0a3e537f8..e73135db3 100644
--- a/GL/glx/rensize.c
+++ b/GL/glx/rensize.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/rensize.c,v 1.6 2003/09/28 20:15:43 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/rensize.c,v 1.7 2004/01/28 18:11:53 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@@ -551,12 +551,14 @@ int __glXDrawArraysSize( GLbyte *pc, Bool swap )
case GL_COLOR_ARRAY:
case GL_TEXTURE_COORD_ARRAY:
break;
+ case GL_SECONDARY_COLOR_ARRAY:
case GL_NORMAL_ARRAY:
if (numVals != 3) {
/* bad size */
return -1;
}
break;
+ case GL_FOG_COORDINATE_ARRAY:
case GL_INDEX_ARRAY:
if (numVals != 1) {
/* bad size */
@@ -918,3 +920,9 @@ int __glXPointParameterfvARBReqSize(GLbyte *pc, Bool swap )
}
return 4 * __glPointParameterfvARB_size( pname );
}
+
+int __glXPointParameterivReqSize(GLbyte *pc, Bool swap )
+{
+ /* no difference between fv and iv versions */
+ return __glXPointParameterfvARBReqSize(pc, swap);
+}
diff --git a/GL/glx/rensizetab.c b/GL/glx/rensizetab.c
index c787366fa..04ffff6bc 100644
--- a/GL/glx/rensizetab.c
+++ b/GL/glx/rensizetab.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/rensizetab.c,v 1.4 2003/09/28 20:15:43 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/rensizetab.c,v 1.6 2004/02/03 23:04:08 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@@ -231,9 +231,9 @@ __GLXrenderSizeData __glXRenderSizeTable[__GLX_MAX_RENDER_OPCODE_EXT - __GLX_MIN
/* Translatef */ { 16, 0 },
/* Viewport */ { 20, 0 },
/* PolygonOffset */ { 12, 0 },
- /* no such opcode */ { 0, 0 },
+ /* DrawArrays */ { 16, __glXDrawArraysSize },
/* Indexubv */ { 8, 0 },
- /* ColorSubTable */ { 44, __glXColorSubTableReqSize },
+ /* ColorSubTable */ { 44, __glXColorSubTableReqSize },
/* CopyColorSubTable */ { 24, 0 },
/* ActiveTextureARB */ { 8, 0 },
/* MultiTexCoord1dvARB */ { 16, 0 },
@@ -2342,17 +2342,17 @@ __GLXrenderSizeData __glXRenderSizeTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __GLX
/* CopyTexSubImage1D */ { 28, 0 },
/* CopyTexSubImage2D */ { 36, 0 },
/* CopyTexSubImage3D 4123 */ { 40, 0 },
- /* no such opcode */ { 0, 0 },
- /* no such opcode */ { 0, 0 },
- /* no such opcode */ { 0, 0 },
- /* no such opcode */ { 0, 0 },
- /* no such opcode */ { 0, 0 },
- /* no such opcode */ { 0, 0 },
- /* no such opcode */ { 0, 0 },
- /* no such opcode */ { 0, 0 },
- /* no such opcode */ { 0, 0 },
- /* no such opcode */ { 0, 0 },
- /* no such opcode */ { 0, 0 },
+ /* FogCoordfv 4124 */ { 8, 0 },
+ /* FogCoorddv 4125 */ { 12, 0 },
+ /* SecondaryColor3bv 4126 */ { 8, 0 },
+ /* SecondaryColor3sv 4127 */ { 12, 0 },
+ /* SecondaryColor3iv 4128 */ { 16, 0 },
+ /* SecondaryColor3fv 4129 */ { 16, 0 },
+ /* SecondaryColor3dv 4130 */ { 28, 0 },
+ /* SecondaryColor3ubv 4131 */ { 8, 0 },
+ /* SecondaryColor3usv 4132 */ { 12, 0 },
+ /* SecondaryColor3uiv 4133 */ { 16, 0 },
+ /* BlendFuncSeparate 4134 */ { 20, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
@@ -2439,4 +2439,6 @@ __GLXrenderSizeData __glXRenderSizeTable_EXT[__GLX_MAX_RENDER_OPCODE_EXT - __GLX
/* no such opcode */ { 0, 0 },
/* no such opcode */ { 0, 0 },
/* ActiveStencilFaceEXT 4220 */ { 8, 0 },
+ /* PointParameteri 4221 */ { 12, 0 },
+ /* PointParameteriv 4222 */ { 8, __glXPointParameterivReqSize },
};
diff --git a/GL/glx/single2.c b/GL/glx/single2.c
index 286f63d70..3120ae171 100644
--- a/GL/glx/single2.c
+++ b/GL/glx/single2.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/single2.c,v 1.6 2001/06/06 19:00:15 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/single2.c,v 1.9 2004/02/11 09:18:15 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@@ -296,16 +296,25 @@ char *__glXcombine_strings(const char *cext_string, const char *sext_string)
return combo_string;
}
-int __glXDisp_GetString(__GLXclientState *cl, GLbyte *pc)
+int DoGetString(__GLXclientState *cl, GLbyte *pc, GLboolean need_swap)
{
ClientPtr client;
__GLXcontext *cx;
GLenum name;
const char *string;
+ __GLX_DECLARE_SWAP_VARIABLES;
int error;
char *buf = NULL, *buf1 = NULL;
GLint length = 0;
+ /* If the client has the opposite byte order, swap the contextTag and
+ * the name.
+ */
+ if ( need_swap ) {
+ __GLX_SWAP_INT(pc + 4);
+ __GLX_SWAP_INT(pc + __GLX_SINGLE_HDR_SIZE);
+ }
+
cx = __glXForceCurrent(cl, __GLX_GET_SINGLE_CONTEXT_TAG(pc), &error);
if (!cx) {
return error;
@@ -331,12 +340,32 @@ int __glXDisp_GetString(__GLXclientState *cl, GLbyte *pc)
}
string = buf;
}
+ else if ( name == GL_VERSION ) {
+ if ( atof( string ) > atof( GLServerVersion ) ) {
+ buf = __glXMalloc( __glXStrlen( string )
+ + __glXStrlen( GLServerVersion )
+ + 3 );
+ if ( buf == NULL ) {
+ string = GLServerVersion;
+ }
+ else {
+ __glXSprintf( buf, "%s (%s)", GLServerVersion, string );
+ string = buf;
+ }
+ }
+ }
if (string) {
length = __glXStrlen((const char *) string) + 1;
}
__GLX_BEGIN_REPLY(length);
__GLX_PUT_SIZE(length);
+
+ if ( need_swap ) {
+ __GLX_SWAP_REPLY_SIZE();
+ __GLX_SWAP_REPLY_HEADER();
+ }
+
__GLX_SEND_HEADER();
WriteToClient(client, length, (char *) string);
if (buf != NULL) {
@@ -345,6 +374,11 @@ int __glXDisp_GetString(__GLXclientState *cl, GLbyte *pc)
return Success;
}
+int __glXDisp_GetString(__GLXclientState *cl, GLbyte *pc)
+{
+ return DoGetString(cl, pc, GL_FALSE);
+}
+
int __glXDisp_GetClipPlane(__GLXclientState *cl, GLbyte *pc)
{
__GLXcontext *cx;
diff --git a/GL/glx/single2swap.c b/GL/glx/single2swap.c
index 96db415f9..5b76b91e0 100644
--- a/GL/glx/single2swap.c
+++ b/GL/glx/single2swap.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/single2swap.c,v 1.7 2002/01/14 22:47:08 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/single2swap.c,v 1.8 2004/02/09 23:46:31 alanh Exp $ */
/*
** License Applicability. Except to the extent portions of this file are
** made subject to an alternative license as permitted in the SGI Free
@@ -262,58 +262,7 @@ int __glXDispSwap_Finish(__GLXclientState *cl, GLbyte *pc)
int __glXDispSwap_GetString(__GLXclientState *cl, GLbyte *pc)
{
- ClientPtr client;
- __GLXcontext *cx;
- GLenum name;
- const char *string;
- __GLX_DECLARE_SWAP_VARIABLES;
- int error;
- char *buf = NULL, *buf1 = NULL;
- GLint length = 0;
-
- __GLX_SWAP_INT(&((xGLXSingleReq *)pc)->contextTag);
- cx = __glXForceCurrent(cl, __GLX_GET_SINGLE_CONTEXT_TAG(pc), &error);
- if (!cx) {
- return error;
- }
-
- pc += __GLX_SINGLE_HDR_SIZE;
- __GLX_SWAP_INT(pc + 0);
- name = *(GLenum *)(pc + 0);
- string = (const char *)glGetString(name);
- client = cl->client;
-
- /*
- ** Restrict extensions to those that are supported by both the
- ** implementation and the connection. That is, return the
- ** intersection of client, server, and core extension strings.
- */
- if (name == GL_EXTENSIONS) {
- buf1 = __glXcombine_strings(string,
- cl->GLClientextensions);
- buf = __glXcombine_strings(buf1,
- cx->pGlxScreen->GLextensions);
- if (buf1 != NULL) {
- __glXFree(buf1);
- }
- string = buf;
- }
- if (string) {
- length = __glXStrlen((const char *) string) + 1;
- }
-
- __GLX_BEGIN_REPLY(length);
- __GLX_PUT_SIZE(length);
-
- __GLX_SWAP_REPLY_SIZE();
- __GLX_SWAP_REPLY_HEADER();
- __GLX_SEND_HEADER();
- WriteToClient(client, length, (char *) string);
- if (buf != NULL) {
- __glXFree(buf);
- }
-
- return Success;
+ return DoGetString(cl, pc, GL_TRUE);
}
int __glXDispSwap_GetClipPlane(__GLXclientState *cl, GLbyte *pc)
diff --git a/GL/glx/singlesize.c b/GL/glx/singlesize.c
index efb13ee94..3f3054871 100644
--- a/GL/glx/singlesize.c
+++ b/GL/glx/singlesize.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/GL/glx/singlesize.c,v 1.6 2003/11/06 18:37:56 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/glx/singlesize.c,v 1.8 2004/02/09 19:51:32 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
@@ -50,32 +50,48 @@ GLint __glReadPixels_size(GLenum format, GLenum type, GLint w, GLint h)
return __glXImage3DSize( format, type, w, h, 1, 0, 0, 0, 0, 4 );
}
+/**
+ * Determine the number of data elements that go with the specified \c pname
+ * to a \c glGetTexEnvfv or \c glGetTexEnviv call.
+ *
+ * \todo
+ * Replace this function with a call to \c __glTexEnvfv_size. Make that there
+ * aren't any values of \c pname that are valid for one but not the other.
+ */
GLint __glGetTexEnvfv_size(GLenum pname)
{
switch (pname) {
case GL_TEXTURE_ENV_MODE:
+ case GL_TEXTURE_LOD_BIAS:
+ case GL_COMBINE_RGB:
+ case GL_COMBINE_ALPHA:
+ case GL_SOURCE0_RGB:
+ case GL_SOURCE1_RGB:
+ case GL_SOURCE2_RGB:
+ case GL_SOURCE0_ALPHA:
+ case GL_SOURCE1_ALPHA:
+ case GL_SOURCE2_ALPHA:
+ case GL_OPERAND0_RGB:
+ case GL_OPERAND1_RGB:
+ case GL_OPERAND2_RGB:
+ case GL_OPERAND0_ALPHA:
+ case GL_OPERAND1_ALPHA:
+ case GL_OPERAND2_ALPHA:
+ case GL_RGB_SCALE:
+ case GL_ALPHA_SCALE:
+
+ /* GL_ARB_point_sprite / GL_NV_point_sprite */
+ case GL_COORD_REPLACE_NV:
+
+ /* GL_NV_texture_env_combine4 */
+ case GL_SOURCE3_RGB_NV:
+ case GL_SOURCE3_ALPHA_NV:
+ case GL_OPERAND3_RGB_NV:
+ case GL_OPERAND3_ALPHA_NV:
return 1;
+
case GL_TEXTURE_ENV_COLOR:
return 4;
- case GL_TEXTURE_LOD_BIAS_EXT:
- return 1;
- case GL_COMBINE_RGB_ARB:
- case GL_COMBINE_ALPHA_ARB:
- case GL_SOURCE0_RGB_ARB:
- case GL_SOURCE1_RGB_ARB:
- case GL_SOURCE2_RGB_ARB:
- case GL_SOURCE0_ALPHA_ARB:
- case GL_SOURCE1_ALPHA_ARB:
- case GL_SOURCE2_ALPHA_ARB:
- case GL_OPERAND0_RGB_ARB:
- case GL_OPERAND1_RGB_ARB:
- case GL_OPERAND2_RGB_ARB:
- case GL_OPERAND0_ALPHA_ARB:
- case GL_OPERAND1_ALPHA_ARB:
- case GL_OPERAND2_ALPHA_ARB:
- case GL_RGB_SCALE_ARB:
- case GL_ALPHA_SCALE:
- return 1;
default:
return -1;
}
@@ -140,6 +156,15 @@ GLint __glGetTexParameterfv_size(GLenum pname)
case GL_TEXTURE_COMPARE_MODE:
case GL_TEXTURE_COMPARE_FUNC:
+ /* GL_SGIS_generate_mipmap / GL 1.4 */
+ case GL_GENERATE_MIPMAP:
+
+ /* GL_ARB_depth_texture / GL 1.4 */
+ case GL_DEPTH_TEXTURE_MODE:
+
+ /* GL_EXT_texture_lod_bias / GL 1.4 */
+ case GL_TEXTURE_LOD_BIAS:
+
/* GL_SGIX_shadow_ambient / GL_ARB_shadow_ambient */
case GL_TEXTURE_COMPARE_FAIL_VALUE_ARB:
@@ -151,6 +176,9 @@ GLint __glGetTexParameterfv_size(GLenum pname)
case GL_TEXTURE_MAX_CLAMP_S_SGIX:
case GL_TEXTURE_MAX_CLAMP_T_SGIX:
case GL_TEXTURE_MAX_CLAMP_R_SGIX:
+
+ /* GL_EXT_texture_filter_anisotropic */
+ case GL_TEXTURE_MAX_ANISOTROPY_EXT:
return 1;
default:
@@ -834,10 +862,6 @@ GLint __glGet_size(GLenum sq)
case GL_MAX_CONVOLUTION_WIDTH:
case GL_MAX_CONVOLUTION_HEIGHT:
return 1;
- case GL_TEXTURE_CUBE_MAP_ARB:
- case GL_TEXTURE_BINDING_CUBE_MAP_ARB:
- case GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB:
- return 1;
case GL_OCCLUSION_TEST_RESULT_HP:
case GL_OCCLUSION_TEST_HP:
return 1;
@@ -847,6 +871,183 @@ GLint __glGet_size(GLenum sq)
return 1;
case GL_RASTER_POSITION_UNCLIPPED_IBM:
return 1;
+
+ /* GL_ARB_texture_cube_map / GL 1.3 */
+ case GL_TEXTURE_CUBE_MAP:
+ case GL_TEXTURE_BINDING_CUBE_MAP:
+ case GL_MAX_CUBE_MAP_TEXTURE_SIZE:
+
+ /* GL_ARB_multisample / GL 1.3 */
+ case GL_MULTISAMPLE:
+ case GL_SAMPLE_ALPHA_TO_COVERAGE:
+ case GL_SAMPLE_ALPHA_TO_ONE:
+ case GL_SAMPLE_COVERAGE:
+ case GL_SAMPLE_BUFFERS:
+ case GL_SAMPLES:
+ case GL_SAMPLE_COVERAGE_VALUE:
+ case GL_SAMPLE_COVERAGE_INVERT:
+
+ /* GL_ARB_texture_comrpession / GL 1.3 */
+ case GL_TEXTURE_COMPRESSION_HINT:
+ case GL_NUM_COMPRESSED_TEXTURE_FORMATS:
+
+ /* GL_EXT_blend_func_separate / GL 1.4 */
+ case GL_BLEND_DST_RGB:
+ case GL_BLEND_SRC_RGB:
+ case GL_BLEND_DST_ALPHA:
+ case GL_BLEND_SRC_ALPHA:
+
+ /* GL_EXT_fog_coord / GL 1.4 */
+ case GL_CURRENT_FOG_COORDINATE:
+ case GL_FOG_COORDINATE_ARRAY_TYPE:
+ case GL_FOG_COORDINATE_ARRAY_STRIDE:
+ case GL_FOG_COORDINATE_ARRAY:
+ case GL_FOG_COORDINATE_SOURCE:
+
+ /* GL_EXT_secondary_color / GL 1.4 */
+ case GL_COLOR_SUM:
+ case GL_SECONDARY_COLOR_ARRAY_SIZE:
+ case GL_SECONDARY_COLOR_ARRAY_TYPE:
+ case GL_SECONDARY_COLOR_ARRAY_STRIDE:
+ case GL_SECONDARY_COLOR_ARRAY:
+
+ /* GL_EXT_texture_lod_bias / GL 1.4 */
+ case GL_MAX_TEXTURE_LOD_BIAS:
+
+ /* GL_ARB_point_sprite */
+ case GL_POINT_SPRITE_NV:
+
+ /* GL_ARB_vertex_blend */
+ case GL_MAX_VERTEX_UNITS_ARB:
+ case GL_ACTIVE_VERTEX_UNITS_ARB:
+ case GL_WEIGHT_SUM_UNITY_ARB:
+ case GL_VERTEX_BLEND_ARB:
+ case GL_CURRENT_WEIGHT_ARB:
+ case GL_WEIGHT_ARRAY_ARB:
+ case GL_WEIGHT_ARRAY_TYPE_ARB:
+ case GL_WEIGHT_ARRAY_STRIDE_ARB:
+ case GL_WEIGHT_ARRAY_SIZE_ARB:
+
+ /* GL_ARB_matrix_palette */
+ case GL_MATRIX_PALETTE_ARB:
+ case GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB:
+ case GL_MAX_PALETTE_MATRICES_ARB:
+ case GL_CURRENT_PALETTE_MATRIX_ARB:
+ case GL_CURRENT_MATRIX_INDEX_ARB:
+ case GL_MATRIX_INDEX_ARRAY_ARB:
+ case GL_MATRIX_INDEX_ARRAY_SIZE_ARB:
+ case GL_MATRIX_INDEX_ARRAY_TYPE_ARB:
+ case GL_MATRIX_INDEX_ARRAY_STRIDE_ARB:
+
+ /* GL_EXT_clip_volume_hint */
+ case GL_CLIP_VOLUME_CLIPPING_HINT_EXT:
+
+ /* GL_EXT_stencil_two_size */
+ case GL_STENCIL_TEST_TWO_SIDE_EXT:
+ case GL_ACTIVE_STENCIL_FACE_EXT:
+
+ /* GL_EXT_vertex_weighting */
+ case GL_VERTEX_WEIGHTING_EXT:
+ case GL_MODELVIEW0_EXT:
+ case GL_MODELVIEW1_EXT:
+ case GL_CURRENT_VERTEX_WEIGHT_EXT:
+ case GL_VERTEX_WEIGHT_ARRAY_EXT:
+ case GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT:
+ case GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT:
+ case GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT:
+ /* case GL_MODELVIEW0_STACK_DEPTH_EXT: */ /* alias */
+ case GL_MODELVIEW1_STACK_DEPTH_EXT:
+
+ /* GL_ATI_vertex_streams */
+ case GL_MAX_VERTEX_STREAMS_ATI:
+
+ /* GL_NV_depth_clamp */
+ case GL_DEPTH_CLAMP_NV:
+
+ /* GL_NV_fog_distance */
+ case GL_FOG_DISTANCE_MODE_NV:
+
+ /* GL_NV_light_max_exponent */
+ case GL_MAX_SHININESS_NV:
+ case GL_MAX_SPOT_EXPONENT_NV:
+
+ /* GL_NV_multisample_filter_hint */
+ case GL_MULTISAMPLE_FILTER_HINT_NV:
+
+ /* GL_NV_point_sprite */
+ /* case GL_POINT_SPRITE_NV: */ /* alias */
+ case GL_POINT_SPRITE_R_MODE_NV:
+
+ /* GL_NV_register_combiners */
+ case GL_REGISTER_COMBINERS_NV:
+ case GL_NUM_GENERAL_COMBINERS_NV:
+ case GL_COLOR_SUM_CLAMP_NV:
+ case GL_MAX_GENERAL_COMBINERS_NV:
+
+ /* GL_NV_register_combiners2 */
+ case GL_PER_STAGE_CONSTANTS_NV:
+
+ /* GL_NV_texture_rectangle */
+ case GL_TEXTURE_RECTANGLE_NV:
+ case GL_TEXTURE_BINDING_RECTANGLE_NV:
+ case GL_MAX_RECTANGLE_TEXTURE_SIZE_NV:
+ return 1;
+
+ /* GL_EXT_secondary_color / GL 1.4 */
+ case GL_CURRENT_SECONDARY_COLOR:
+
+ /* GL_NV_register_combiners */
+ case GL_CONSTANT_COLOR0_NV:
+ case GL_CONSTANT_COLOR1_NV:
+ return 4;
+
+ /* GL_ARB_vertex_blend */
+ /* case GL_MODELVIEW0_ARB: */ /* alias */
+ /* case GL_MODELVIEW1_ARB: */ /* alias */
+ case GL_MODELVIEW2_ARB:
+ case GL_MODELVIEW3_ARB:
+ case GL_MODELVIEW4_ARB:
+ case GL_MODELVIEW5_ARB:
+ case GL_MODELVIEW6_ARB:
+ case GL_MODELVIEW7_ARB:
+ case GL_MODELVIEW8_ARB:
+ case GL_MODELVIEW9_ARB:
+ case GL_MODELVIEW10_ARB:
+ case GL_MODELVIEW11_ARB:
+ case GL_MODELVIEW12_ARB:
+ case GL_MODELVIEW13_ARB:
+ case GL_MODELVIEW14_ARB:
+ case GL_MODELVIEW15_ARB:
+ case GL_MODELVIEW16_ARB:
+ case GL_MODELVIEW17_ARB:
+ case GL_MODELVIEW18_ARB:
+ case GL_MODELVIEW19_ARB:
+ case GL_MODELVIEW20_ARB:
+ case GL_MODELVIEW21_ARB:
+ case GL_MODELVIEW22_ARB:
+ case GL_MODELVIEW23_ARB:
+ case GL_MODELVIEW24_ARB:
+ case GL_MODELVIEW25_ARB:
+ case GL_MODELVIEW26_ARB:
+ case GL_MODELVIEW27_ARB:
+ case GL_MODELVIEW28_ARB:
+ case GL_MODELVIEW29_ARB:
+ case GL_MODELVIEW30_ARB:
+ case GL_MODELVIEW31_ARB:
+
+ /* GL_EXT_vertex_weighting */
+ /* case GL_MODELVIEW0_MATRIX_EXT: */ /* alias */
+ case GL_MODELVIEW1_MATRIX_EXT:
+ return 32;
+
+ /* GL_ARB_texture_comrpession / GL 1.3 */
+ case GL_COMPRESSED_TEXTURE_FORMATS: {
+ GLint temp;
+
+ glGetIntegerv( GL_NUM_COMPRESSED_TEXTURE_FORMATS, & temp );
+ return temp;
+ }
+
default:
return -1;
}
@@ -886,7 +1087,15 @@ GLint __glGetTexLevelParameterfv_size(GLenum pname)
case GL_TEXTURE_ALPHA_SIZE:
case GL_TEXTURE_LUMINANCE_SIZE:
case GL_TEXTURE_INTENSITY_SIZE:
+
+ /* GL_ARB_texture_compression / GL 1.3 */
+ case GL_TEXTURE_COMPRESSED_IMAGE_SIZE:
+ case GL_TEXTURE_COMPRESSED:
+
+ /* GL_ARB_depth_texture / GL 1.4 */
+ case GL_TEXTURE_DEPTH_SIZE:
return 1;
+
default:
return -1;
}
diff --git a/Xprint/pcl/PclSFonts.c b/Xprint/pcl/PclSFonts.c
index d1ad8dc29..3c7cf05af 100644
--- a/Xprint/pcl/PclSFonts.c
+++ b/Xprint/pcl/PclSFonts.c
@@ -45,7 +45,7 @@ not be used in advertising or otherwise to promote the sale, use or other
dealings in this Software without prior written authorization from said
copyright holders.
*/
-/* $XFree86: xc/programs/Xserver/Xprint/pcl/PclSFonts.c,v 1.7 2003/10/29 22:11:00 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/Xprint/pcl/PclSFonts.c,v 1.8 2003/12/22 17:48:05 tsi Exp $ */
#include <stdio.h>
@@ -58,7 +58,6 @@ static short tmp2;
#define ESC 0x1b
#define SYMBOL_SET 277
-#define MAX_CINDEX 255
static unsigned int PclDownloadChar(FILE *,PclCharDataPtr,unsigned short,unsigned char);
static unsigned int PclDownloadHeader(FILE *, PclFontDescPtr, unsigned short);
@@ -117,8 +116,6 @@ PclDownloadSoftFont16(
}
pfh->index[row][col].fid = pfh->cur_fid;
pfh->index[row][col].cindex = pfh->cur_cindex++;
- if ( pfh->cur_cindex > MAX_CINDEX )
- pfh->cur_cindex = 0;
PclDownloadChar(fp, pcd, pfh->index[row][col].fid, pfh->index[row][col].cindex);
}
diff --git a/dix/events.c b/dix/events.c
index 2d16cc008..50c7d46e4 100644
--- a/dix/events.c
+++ b/dix/events.c
@@ -1,5 +1,4 @@
-/* $XdotOrg: xc/programs/Xserver/dix/events.c,v 3.50 2003/11/17 22:20:34 dawes Exp $ */
-/* $XFree86: xc/programs/Xserver/dix/events.c,v 3.50 2003/11/17 22:20:34 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/dix/events.c,v 3.52 2004/01/23 07:23:34 herrb Exp $ */
/************************************************************
Copyright 1987, 1998 The Open Group
@@ -949,7 +948,8 @@ EnqueueEvent(xE, device, count)
#ifdef XKB
/* Fix for key repeating bug. */
- if (xE->u.u.type == KeyRelease)
+ if (device->key != NULL && device->key->xkbInfo != NULL &&
+ xE->u.u.type == KeyRelease)
AccessXCancelRepeatKey(device->key->xkbInfo, xE->u.u.detail);
#endif
@@ -1652,8 +1652,11 @@ DeliverEventsToWindow(pWin, pEvents, count, filter, grab, mskidx)
#ifdef XINPUT
else
{
- if (((type == DeviceMotionNotify) || (type == DeviceButtonPress)) &&
- deliveries)
+ if (((type == DeviceMotionNotify)
+#ifdef XKB
+ || (type == DeviceButtonPress)
+#endif
+ ) && deliveries)
CheckDeviceGrabAndHintWindow (pWin, type,
(deviceKeyButtonPointer*) pEvents,
grab, client, deliveryMask);
@@ -2381,10 +2384,10 @@ CheckPassiveGrabsOnWindow(
xkbi= gdev->key->xkbInfo;
#endif
tempGrab.modifierDevice = grab->modifierDevice;
- if (device == grab->modifierDevice &&
- (xE->u.u.type == KeyPress
-#ifdef XINPUT
- || xE->u.u.type == DeviceKeyPress
+ if ((device == grab->modifierDevice) &&
+ ((xE->u.u.type == KeyPress)
+#if defined(XINPUT) && defined(XKB)
+ || (xE->u.u.type == DeviceKeyPress)
#endif
))
tempGrab.modifiersDetail.exact =
@@ -2474,11 +2477,11 @@ CheckDeviceGrabs(device, xE, checkFirst, count)
register WindowPtr pWin = NULL;
register FocusClassPtr focus = device->focus;
- if ((xE->u.u.type == ButtonPress
-#ifdef XINPUT
- || xE->u.u.type == DeviceButtonPress
+ if (((xE->u.u.type == ButtonPress)
+#if defined(XINPUT) && defined(XKB)
+ || (xE->u.u.type == DeviceButtonPress)
#endif
- ) && device->button->buttonsDown != 1)
+ ) && (device->button->buttonsDown != 1))
return FALSE;
i = checkFirst;
diff --git a/doc/Xserver.man.pre b/doc/Xserver.man.pre
index 972280ba0..4a24ac9a2 100644
--- a/doc/Xserver.man.pre
+++ b/doc/Xserver.man.pre
@@ -22,7 +22,7 @@
.\" 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.
-.\" $XFree86: xc/programs/Xserver/Xserver.man,v 3.29 2003/09/08 14:25:26 eich Exp $
+.\" $XFree86: xc/programs/Xserver/Xserver.man,v 3.32 2004/01/12 21:43:19 herrb Exp $
.\" shorthand for double quote that works everywhere.
.ds q \N'34'
.TH XSERVER 1 __xorgversion__
@@ -37,16 +37,17 @@ is the generic name for the X Window System display server. It is
frequently a link or a copy of the appropriate server binary for
driving the most frequently used server on a given machine.
.SH "STARTING THE SERVER"
-The X server is usually started from the X Display Manager program \fIxdm\fP(1).
+The X server is usually started from the X Display Manager program
+\fIxdm\fP(1) or a similar display manager program.
This utility is run from the system boot files and takes care of keeping
the server running, prompting for usernames and passwords, and starting up
the user sessions.
.PP
Installations that run more than one window system may need to use the
-\fIxinit\fP(1) utility instead of \fIxdm\fP. However, \fIxinit\fP is
+\fIxinit\fP(1) utility instead of a display manager. However, \fIxinit\fP is
to be considered a tool for building startup scripts and is not
intended for use by end users. Site administrators are \fBstrongly\fP
-urged to use \fIxdm\fP, or build other interfaces for novice users.
+urged to use a display manager, or build other interfaces for novice users.
.PP
The X server may also be started directly by the user, though this
method is usually reserved for testing and is not recommended for
@@ -95,8 +96,8 @@ Audit lines are sent as standard error output.
.TP 8
.B \-auth \fIauthorization-file\fP
specifies a file which contains a collection of authorization records used
-to authenticate access. See also the \fIxdm\fP and \fIXsecurity\fP manual
-pages.
+to authenticate access. See also the \fIxdm\fP(1) and
+\fIXsecurity\fP(__miscmansuffix__) manual pages.
.TP 8
.B bc
disables certain kinds of error checking, for bug compatibility with
@@ -139,15 +140,23 @@ different from the user's real uid.
.B \-core
causes the server to generate a core dump on fatal errors.
.TP 8
+.B \-deferglyphs \fIwhichfonts\fP
+specifies the types of fonts for which the server should attempt to use
+deferred glyph loading. \fIwhichfonts\fP can be all (all fonts),
+none (no fonts), or 16 (16 bit fonts only).
+.TP 8
.B \-dpi \fIresolution\fP
sets the resolution for all screens, in dots per inch.
To be used when the server cannot determine the screen size(s) from the
hardware.
.TP 8
-.B \-deferglyphs \fIwhichfonts\fP
-specifies the types of fonts for which the server should attempt to use
-deferred glyph loading. \fIwhichfonts\fP can be all (all fonts),
-none (no fonts), or 16 (16 bit fonts only).
+.B dpms
+enables DPMS (display power management services), where supported. The
+default state is platform and configuration specific.
+.TP 8
+.B \-dpms
+disables DPMS (display power management services). The default state
+is platform and configuration specific.
.TP 8
.B \-f \fIvolume\fP
sets feep (bell) volume (allowable range: 0-100).
@@ -161,6 +170,8 @@ sets the default font.
.B \-fp \fIfontPath\fP
sets the search path for fonts. This path is a comma separated list
of directories which the X server searches for font databases.
+See the FONTS section of this manual page for more information and the default
+list.
.TP 8
.B \-help
prints a usage message.
@@ -168,6 +179,11 @@ prints a usage message.
.B \-I
causes all remaining command line arguments to be ignored.
.TP 8
+.B \-maxbigreqsize \fIsize\fP
+sets the maxmium big request to
+.I size
+MB.
+.TP 8
.B \-nolisten \fItrans-type\fP
disables a transport type. For example, TCP/IP connections can be disabled
with
@@ -187,7 +203,11 @@ sets screen-saver pattern cycle time in minutes.
.B \-pn
permits the server to continue running if it fails to establish all of
its well-known sockets (connection points for clients), but
-establishes at least one.
+establishes at least one. This option is set by default.
+.TP 8
+.B \-nopn
+causes the server to exit if it fails to establish all of its well-known
+sockets (connection points for clients).
.TP 8
.B \-r
turns off auto-repeat.
@@ -243,7 +263,7 @@ This is a no-op for most implementations.
.TP 8
.B [+-]xinerama
enables(+) or disables(-) the XINERAMA extension. The default state is
-disabled.
+platform and configuration specific.
.SH SERVER DEPENDENT OPTIONS
Some X servers accept the following options:
.TP 8
@@ -288,6 +308,14 @@ use a gray map of 13 color cells for the X render extension.
.I color
use a color cube of at most 4*4*4 colors (that is 64 color cells).
.RE
+.TP 8
+.B \-dumbSched
+disables smart scheduling on platforms that support the smart scheduler.
+.TP
+.B \-schedInterval \fIinterval\fP
+sets the smart scheduler's scheduling interval to
+.I interval
+milliseconds.
.SH XDMCP OPTIONS
X servers that support XDMCP have the following options.
See the \fIX Display Manager Control Protocol\fP specification for more
@@ -300,6 +328,7 @@ enables XDMCP and sends Query packets to the specified
.B \-broadcast
enable XDMCP and broadcasts BroadcastQuery packets to the network. The
first responding display manager will be chosen for the session.
+.TP 8
.B \-multicast [\fIaddress\fP [\fIhop count\fP]]
Enable XDMCP and multicast BroadcastQuery packets to the network.
The first responding display manager is chosen for the session. If an
@@ -316,8 +345,8 @@ enables XDMCP and send IndirectQuery packets to the specified
.TP 8
.B \-port \fIport-number\fP
uses the specified \fIport-number\fP for XDMCP packets, instead of the
-default. This option must be specified before any \-query, \-broadcast or
-\-indirect options.
+default. This option must be specified before any \-query, \-broadcast,
+\-multicast, or \-indirect options.
.TP 8
.B \-from \fIlocal-address\fP
specifies the local address to connect from (useful if the connecting host
@@ -344,7 +373,10 @@ Yet another XDMCP specific value, this one allows the display manager to
identify each display so that it can locate the shared key.
.SH XKEYBOARD OPTIONS
X servers that support the XKEYBOARD (a.k.a. \*qXKB\*q) extension accept the
-following options:
+following options. All layout files specified on the command line must be
+located in the XKB base directory or a subdirectory, and specified as the
+relative path from the XKB base directory. The default XKB base directory is
+.IR __projectroot__/lib/X11/xkb .
.TP 8
.B [+-]kb
enables(+) or disables(-) the XKEYBOARD extension.
@@ -599,13 +631,14 @@ property Woo-Hoo OhBoy = "*son" ad
The X server supports client connections via a platform-dependent subset of
the following transport types: TCP\/IP, Unix Domain sockets, DECnet,
and several varieties of SVR4 local connections. See the DISPLAY
-NAMES section of the \fIX(__miscmansuffix__)\fP manual page to learn how to
+NAMES section of the \fIX\fP(__miscmansuffix__) manual page to learn how to
specify which transport type clients should try to use.
.SH GRANTING ACCESS
The X server implements a platform-dependent subset of the following
authorization protocols: MIT-MAGIC-COOKIE-1, XDM-AUTHORIZATION-1,
-SUN-DES-1, and MIT-KERBEROS-5. See the \fIXsecurity\fP(__miscmansuffix__)
-manual page for information on the operation of these protocols.
+XDM-AUTHORIZATION-2, SUN-DES-1, and MIT-KERBEROS-5. See the
+\fIXsecurity\fP(__miscmansuffix__) manual page for information on the
+operation of these protocols.
.PP
Authorization data required by the above protocols is passed to the
server in a private file named with the \fB\-auth\fP command line
@@ -626,15 +659,17 @@ this list initially consists of the host on which the server is running as
well as any machines listed in the file \fI/etc/X\fBn\fI.hosts\fR, where
\fBn\fP is the display number of the server. Each line of the file should
contain either an Internet hostname (e.g. expo.lcs.mit.edu) or a DECnet
-hostname in double colon format (e.g. hydra::). There should be no leading
-or trailing spaces on any lines. For example:
+hostname in double colon format (e.g. hydra::) or a complete name in the format
+\fIfamily\fP:\fIname\fP as described in the \fIxhost\fP(1) manual page.
+There should be no leading or trailing spaces on any lines. For example:
.sp
.in +8
.nf
joesworkstation
corporate.company.com
star::
-bigcpu::
+inet:bigcpu
+local:
.fi
.in -8
.PP
@@ -691,11 +726,7 @@ the X server uses when trying to open a font is controlled
by the \fIfont path\fP.
.LP
The default font path is
-__projectroot__/lib/X11/fonts/misc/,
-__projectroot__/lib/X11/fonts/Speedo/,
-__projectroot__/lib/X11/fonts/Type1/,
-__projectroot__/lib/X11/fonts/75dpi/,
-__projectroot__/lib/X11/fonts/100dpi/" .
+__default_font_path__ .
.LP
The font path can be set with the \fB\-fp\fP option or by \fIxset\fP(1)
after the server has started.
@@ -707,7 +738,7 @@ Initial access control list for display number \fBn\fP
.IR __projectroot__/lib/X11/fonts/misc , __projectroot__/lib/X11/fonts/75dpi , __projectroot__/lib/X11/fonts/100dpi
Bitmap font directories
.TP 30
-.IR __projectroot__/lib/X11/fonts/Speedo , __projectroot__/lib/X11/fonts/Type1
+.IR __projectroot__/lib/X11/fonts/TTF , __projectroot__/lib/X11/fonts/Speedo , __projectroot__/lib/X11/fonts/Type1
Outline font directories
.TP 30
.I __projectroot__/lib/X11/rgb.txt
@@ -720,7 +751,7 @@ Unix domain socket for display number \fBn\fP
Kerberos 5 replay cache for display number \fBn\fP
.TP 30
.I /usr/adm/X\fBn\fPmsgs
-Error log file for display number \fBn\fP if run from \fIinit\fP(8)
+Error log file for display number \fBn\fP if run from \fIinit\fP(__adminmansuffix__)
.TP 30
.I __projectroot__/lib/X11/xdm/xdm-errors
Default error log file if the server is run from \fIxdm\fP(1)
@@ -732,15 +763,15 @@ Protocols:
.I "The X Font Service Protocol,"
.I "X Display Manager Control Protocol"
.PP
-Fonts: \fIbdftopcf\fP(1), \fImkfontdir\fP(1), \fIxfs\fP(1),
-\fIxlsfonts\fP(1), \fIxfontsel\fP(1), \fIxfd\fP(1),
+Fonts: \fIbdftopcf\fP(1), \fImkfontdir\fP(1), \fImkfontscale\fP(1),
+\fIxfs\fP(1), \fIxlsfonts\fP(1), \fIxfontsel\fP(1), \fIxfd\fP(1),
.I "X Logical Font Description Conventions"
.PP
Security: \fIXsecurity\fP(__miscmansuffix__), \fIxauth\fP(1), \fIXau\fP(1),
-\fIxdm\fP(1), \fIxhost\fP(1), \fIxfwp\fP(1)
+\fIxdm\fP(1), \fIxhost\fP(1), \fIxfwp\fP(1),
.I "Security Extension Specification"
.PP
-Starting the server: \fIxdm(1)\fP, \fIxinit\fP(1)
+Starting the server: \fIxdm\fP(1), \fIxinit\fP(1)
.PP
Controlling the server once started: \fIxset\fP(1), \fIxsetroot\fP(1),
\fIxhost\fP(1)
diff --git a/fb/fbcopy.c b/fb/fbcopy.c
index 74d07a1bf..6dd48a786 100644
--- a/fb/fbcopy.c
+++ b/fb/fbcopy.c
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/fb/fbcopy.c,v 1.13 2003/11/10 18:21:47 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/fb/fbcopy.c,v 1.14 2003/12/28 17:22:25 alanh Exp $ */
#include "fb.h"
#ifdef IN_MODULE
@@ -398,7 +398,10 @@ fbDoCopy (DrawablePtr pSrcDrawable,
int dx;
int dy;
int numRects;
- BoxRec box;
+ int box_x1;
+ int box_y1;
+ int box_x2;
+ int box_y2;
Bool fastSrc = FALSE; /* for fast clipping with pixmap source */
Bool fastDst = FALSE; /* for fast clipping with one rect dest */
Bool fastExpose = FALSE; /* for fast exposures with pixmap source */
@@ -466,10 +469,10 @@ fbDoCopy (DrawablePtr pSrcDrawable,
xOut += pDstDrawable->x;
yOut += pDstDrawable->y;
- box.x1 = xIn;
- box.y1 = yIn;
- box.x2 = xIn + widthSrc;
- box.y2 = yIn + heightSrc;
+ box_x1 = xIn;
+ box_y1 = yIn;
+ box_x2 = xIn + widthSrc;
+ box_y2 = yIn + heightSrc;
dx = xIn - xOut;
dy = yIn - yOut;
@@ -484,32 +487,32 @@ fbDoCopy (DrawablePtr pSrcDrawable,
* clip the source; if regions extend beyond the source size,
* make sure exposure events get sent
*/
- if (box.x1 < pSrcDrawable->x)
+ if (box_x1 < pSrcDrawable->x)
{
- box.x1 = pSrcDrawable->x;
+ box_x1 = pSrcDrawable->x;
fastExpose = FALSE;
}
- if (box.y1 < pSrcDrawable->y)
+ if (box_y1 < pSrcDrawable->y)
{
- box.y1 = pSrcDrawable->y;
+ box_y1 = pSrcDrawable->y;
fastExpose = FALSE;
}
- if (box.x2 > pSrcDrawable->x + (int) pSrcDrawable->width)
+ if (box_x2 > pSrcDrawable->x + (int) pSrcDrawable->width)
{
- box.x2 = pSrcDrawable->x + (int) pSrcDrawable->width;
+ box_x2 = pSrcDrawable->x + (int) pSrcDrawable->width;
fastExpose = FALSE;
}
- if (box.y2 > pSrcDrawable->y + (int) pSrcDrawable->height)
+ if (box_y2 > pSrcDrawable->y + (int) pSrcDrawable->height)
{
- box.y2 = pSrcDrawable->y + (int) pSrcDrawable->height;
+ box_y2 = pSrcDrawable->y + (int) pSrcDrawable->height;
fastExpose = FALSE;
}
/* Translate and clip the dst to the destination composite clip */
- box.x1 -= dx;
- box.x2 -= dx;
- box.y1 -= dy;
- box.y2 -= dy;
+ box_x1 -= dx;
+ box_x2 -= dx;
+ box_y1 -= dy;
+ box_y2 -= dy;
/* If the destination composite clip is one rectangle we can
do the clip directly. Otherwise we have to create a full
@@ -520,21 +523,26 @@ fbDoCopy (DrawablePtr pSrcDrawable,
{
BoxPtr pBox = REGION_RECTS(cclip);
- if (box.x1 < pBox->x1) box.x1 = pBox->x1;
- if (box.x2 > pBox->x2) box.x2 = pBox->x2;
- if (box.y1 < pBox->y1) box.y1 = pBox->y1;
- if (box.y2 > pBox->y2) box.y2 = pBox->y2;
+ if (box_x1 < pBox->x1) box_x1 = pBox->x1;
+ if (box_x2 > pBox->x2) box_x2 = pBox->x2;
+ if (box_y1 < pBox->y1) box_y1 = pBox->y1;
+ if (box_y2 > pBox->y2) box_y2 = pBox->y2;
fastDst = TRUE;
}
}
/* Check to see if the region is empty */
- if (box.x1 >= box.x2 || box.y1 >= box.y2)
+ if (box_x1 >= box_x2 || box_y1 >= box_y2)
{
REGION_NULL(pGC->pScreen, &rgnDst);
}
else
{
+ BoxRec box;
+ box.x1 = box_x1;
+ box.y1 = box_y1;
+ box.x2 = box_x2;
+ box.y2 = box_y2;
REGION_INIT(pGC->pScreen, &rgnDst, &box, 1);
}
diff --git a/hw/darwin/bundle/Swedish.lproj/MainMenu.nib/objects.nib b/hw/darwin/bundle/Swedish.lproj/MainMenu.nib/objects.nib
index 230436b31..116e0b316 100644
--- a/hw/darwin/bundle/Swedish.lproj/MainMenu.nib/objects.nib
+++ b/hw/darwin/bundle/Swedish.lproj/MainMenu.nib/objects.nib
Binary files differ
diff --git a/hw/darwin/quartz/quartzKeyboard.c b/hw/darwin/quartz/quartzKeyboard.c
index 8d580830b..eab86e27e 100644
--- a/hw/darwin/quartz/quartzKeyboard.c
+++ b/hw/darwin/quartz/quartzKeyboard.c
@@ -32,9 +32,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.1 2003/11/01 08:13:08 torrey Exp $ */
-
-#ifdef HAS_KL_API
+/* $XFree86: xc/programs/Xserver/hw/darwin/quartz/quartzKeyboard.c,v 1.2 2004/01/19 01:22:47 torrey Exp $ */
#include "quartzCommon.h"
@@ -45,6 +43,8 @@
#include "keysym.h"
#include "keysym2ucs.h"
+#ifdef HAS_KL_API
+
#define HACK_MISSING 1
#define HACK_KEYPAD 1
diff --git a/hw/xfree86/common/compiler.h b/hw/xfree86/common/compiler.h
index 56b0b1a32..65a0e5c7c 100644
--- a/hw/xfree86/common/compiler.h
+++ b/hw/xfree86/common/compiler.h
@@ -1,5 +1,4 @@
-/* $XdotOrg: xc/programs/Xserver/hw/xfree86/common/compiler.h,v 1.1.4.3 2003/12/20 00:28:26 kaleb Exp $ */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/compiler.h,v 3.105 2003/12/18 21:56:37 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/compiler.h,v 3.106 2004/02/02 03:55:28 dawes Exp $ */
/*
* Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
*
@@ -59,6 +58,10 @@
# define _COMPILER_H
+#if defined(__SUNPRO_C)
+# define DO_PROTOTYPES
+#endif
+
/* Allow drivers to use the GCC-supported __inline__ and/or __inline. */
# ifndef __inline__
# if defined(__GNUC__)
@@ -1301,6 +1304,7 @@ inl(unsigned short port)
# define mem_barrier() /* NOP */
# define write_mem_barrier() /* NOP */
+# if !defined(__SUNPRO_C)
# if !defined(FAKEIT) && !defined(__mc68000__) && !defined(__arm__) && !defined(__sh__) && !defined(__hppa__)
# ifdef GCCUSESGAS
@@ -1446,6 +1450,7 @@ inl(unsigned short port)
}
# endif /* FAKEIT */
+# endif /* __SUNPRO_C */
# endif /* ix86 */
@@ -1541,8 +1546,8 @@ extern void outl(unsigned int a, unsigned int l);
#if 0
# include <sys/types.h>
#endif
-# if !defined(__HIGHC__) && !defined(__SUNPRO_C)
-# ifndef __USLC__
+# ifndef __HIGHC__
+# if !defined(__USLC__) && !defined(__SUNPRO_C)
# define __USLC__
# endif
# endif
@@ -1561,8 +1566,8 @@ extern void outl(unsigned int a, unsigned int l);
# include <sys/types.h>
# endif /* IN_MODULE */
# endif /* USL */
-# ifndef sgi
-# include <sys/inline.h>
+# if !defined(sgi) && !defined(__SUNPRO_C)
+# include <sys/inline.h>
# endif
# else
# include "scoasm.h"
diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
index e189e81d2..313d43015 100644
--- a/hw/xfree86/common/xf86.h
+++ b/hw/xfree86/common/xf86.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86.h,v 3.172 2003/09/24 02:43:16 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86.h,v 3.173 2004/01/27 01:31:44 dawes Exp $ */
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
@@ -57,7 +57,6 @@ extern int xf86PixmapIndex;
extern Bool xf86ResAccessEnter;
extern ScrnInfoPtr *xf86Screens; /* List of pointers to ScrnInfoRecs */
extern const unsigned char byte_reversed[256];
-extern PropertyPtr *xf86RegisteredPropertiesTable;
extern ScrnInfoPtr xf86CurrentScreen;
extern Bool pciSlotClaimed;
extern Bool isaSlotClaimed;
diff --git a/hw/xfree86/common/xf86Bus.c b/hw/xfree86/common/xf86Bus.c
index 388823ddb..5e002c8db 100644
--- a/hw/xfree86/common/xf86Bus.c
+++ b/hw/xfree86/common/xf86Bus.c
@@ -1,5 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.79 2003/11/03 05:11:01 tsi Exp $ */
-/* $XdotOrg$ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.80 2004/02/05 18:24:59 eich Exp $ */
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
*
diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
index 713e7861a..076a97f16 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c,v 1.135 2003/10/08 14:58:27 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c,v 1.136 2004/01/27 01:31:45 dawes Exp $ */
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
@@ -2888,11 +2888,12 @@ int
xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
int format, unsigned long len, pointer value )
{
- PropertyPtr pNewProp, pRegProp;
+ RootWinPropPtr pNewProp = NULL, pRegProp;
int i;
+ Bool existing = FALSE;
#ifdef DEBUG
- ErrorF("xf86RegisterRootWindowProperty(%d, %d, %d, %d, %d, %p)\n",
+ ErrorF("xf86RegisterRootWindowProperty(%d, %ld, %ld, %d, %ld, %p)\n",
ScrnIndex, property, type, format, len, value);
#endif
@@ -2900,19 +2901,35 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
return(BadMatch);
}
- if ( (pNewProp = (PropertyPtr)xalloc(sizeof(PropertyRec)))==NULL ) {
- return(BadAlloc);
+ if (xf86RegisteredPropertiesTable &&
+ xf86RegisteredPropertiesTable[ScrnIndex]) {
+ for (pNewProp = xf86RegisteredPropertiesTable[ScrnIndex];
+ pNewProp; pNewProp = pNewProp->next) {
+ if (strcmp(pNewProp->name, NameForAtom(property)) == 0)
+ break;
+ }
+ }
+
+ if (!pNewProp) {
+ if ((pNewProp = (RootWinPropPtr)xalloc(sizeof(RootWinProp))) == NULL) {
+ return(BadAlloc);
+ }
+ /*
+ * We will put this property at the end of the list so that
+ * the changes are made in the order they were requested.
+ */
+ pNewProp->next = NULL;
+ } else {
+ if (pNewProp->name)
+ xfree(pNewProp->name);
+ existing = TRUE;
}
- pNewProp->propertyName = property;
+ pNewProp->name = xnfstrdup(NameForAtom(property));
pNewProp->type = type;
pNewProp->format = format;
pNewProp->size = len;
pNewProp->data = value;
- /* We will put this property at the end of the list so that
- * the changes are made in the order they were requested.
- */
- pNewProp->next = NULL;
#ifdef DEBUG
ErrorF("new property filled\n");
@@ -2923,7 +2940,7 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
ErrorF("creating xf86RegisteredPropertiesTable[] size %d\n",
xf86NumScreens);
#endif
- if ( NULL==(xf86RegisteredPropertiesTable=(PropertyPtr*)xnfcalloc(sizeof(PropertyPtr),xf86NumScreens) )) {
+ if ( NULL==(xf86RegisteredPropertiesTable=(RootWinPropPtr*)xnfcalloc(sizeof(RootWinProp),xf86NumScreens) )) {
return(BadAlloc);
}
for (i=0; i<xf86NumScreens; i++) {
@@ -2933,22 +2950,24 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
#ifdef DEBUG
ErrorF("xf86RegisteredPropertiesTable %p\n",
- xf86RegisteredPropertiesTable);
+ (void *)xf86RegisteredPropertiesTable);
ErrorF("xf86RegisteredPropertiesTable[%d] %p\n",
- ScrnIndex, xf86RegisteredPropertiesTable[ScrnIndex]);
+ ScrnIndex, (void *)xf86RegisteredPropertiesTable[ScrnIndex]);
#endif
- if ( xf86RegisteredPropertiesTable[ScrnIndex] == NULL) {
- xf86RegisteredPropertiesTable[ScrnIndex] = pNewProp;
- } else {
- pRegProp = xf86RegisteredPropertiesTable[ScrnIndex];
- while (pRegProp->next != NULL) {
+ if (!existing) {
+ if ( xf86RegisteredPropertiesTable[ScrnIndex] == NULL) {
+ xf86RegisteredPropertiesTable[ScrnIndex] = pNewProp;
+ } else {
+ pRegProp = xf86RegisteredPropertiesTable[ScrnIndex];
+ while (pRegProp->next != NULL) {
#ifdef DEBUG
- ErrorF("- next %p\n", pRegProp);
+ ErrorF("- next %p\n", (void *)pRegProp);
#endif
- pRegProp = pRegProp->next;
+ pRegProp = pRegProp->next;
+ }
+ pRegProp->next = pNewProp;
}
- pRegProp->next = pNewProp;
}
#ifdef DEBUG
ErrorF("xf86RegisterRootWindowProperty succeeded\n");
diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
index 38f495090..33f19ee88 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.211 2003/11/01 00:47:01 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.212 2004/01/27 01:31:45 dawes Exp $ */
/*
* Loosely based on code bearing the following copyright:
@@ -155,7 +155,7 @@ xf86CreateRootWindow(WindowPtr pWin)
int ret = TRUE;
int err = Success;
ScreenPtr pScreen = pWin->drawable.pScreen;
- PropertyPtr pRegProp, pOldRegProp;
+ RootWinPropPtr pProp;
CreateWindowProcPtr CreateWindow =
(CreateWindowProcPtr)(pScreen->devPrivates[xf86CreateRootWindowIndex].ptr);
@@ -181,25 +181,19 @@ xf86CreateRootWindow(WindowPtr pWin)
}
/* Now do our stuff */
-
if (xf86RegisteredPropertiesTable != NULL) {
if (pWin->parent == NULL && xf86RegisteredPropertiesTable != NULL) {
- for (pRegProp = xf86RegisteredPropertiesTable[pScreen->myNum];
- pRegProp != NULL && err==Success;
- pRegProp = pRegProp->next )
+ for (pProp = xf86RegisteredPropertiesTable[pScreen->myNum];
+ pProp != NULL && err==Success;
+ pProp = pProp->next )
{
- Atom oldNameAtom = pRegProp->propertyName;
- char *nameString;
- /* propertyName was created before the screen existed,
- * so the atom does not belong to any screen;
- * we need to create a new atom with the same name.
- */
- nameString = NameForAtom(oldNameAtom);
- pRegProp->propertyName = MakeAtom(nameString, strlen(nameString), TRUE);
+ Atom prop;
+
+ prop = MakeAtom(pProp->name, strlen(pProp->name), TRUE);
err = ChangeWindowProperty(pWin,
- pRegProp->propertyName, pRegProp->type,
- pRegProp->format, PropModeReplace,
- pRegProp->size, pRegProp->data,
+ prop, pProp->type,
+ pProp->format, PropModeReplace,
+ pProp->size, pProp->data,
FALSE
);
}
@@ -207,14 +201,6 @@ xf86CreateRootWindow(WindowPtr pWin)
/* Look at err */
ret &= (err==Success);
- /* free memory */
- pOldRegProp = xf86RegisteredPropertiesTable[pScreen->myNum];
- while (pOldRegProp!=NULL) {
- pRegProp = pOldRegProp->next;
- xfree(pOldRegProp);
- pOldRegProp = pRegProp;
- }
- xf86RegisteredPropertiesTable[pScreen->myNum] = NULL;
} else {
xf86Msg(X_ERROR, "xf86CreateRootWindow unexpectedly called with "
"non-root window %p (parent %p)\n",
@@ -303,7 +289,6 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
xf86ScreenIndex = AllocateScreenPrivateIndex();
xf86CreateRootWindowIndex = AllocateScreenPrivateIndex();
xf86PixmapIndex = AllocatePixmapPrivateIndex();
- xf86RegisteredPropertiesTable=NULL;
generation = serverGeneration;
}
@@ -749,6 +734,32 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
}
formatsDone = TRUE;
+ if (xf86Info.vtno >= 0 ) {
+#define VT_ATOM_NAME "XFree86_VT"
+ Atom VTAtom=-1;
+ 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");
+ }
+ }
+
/* If a screen uses depth 24, show what the pixmap format is */
for (i = 0; i < xf86NumScreens; i++) {
if (xf86Screens[i]->depth == 24) {
diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h
index a46bfc39b..82df2aead 100644
--- a/hw/xfree86/common/xf86Priv.h
+++ b/hw/xfree86/common/xf86Priv.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h,v 3.82 2003/09/09 03:20:36 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h,v 3.83 2004/01/27 01:31:45 dawes Exp $ */
/*
* Copyright (c) 1997-2002 by The XFree86 Project, Inc.
@@ -113,6 +113,8 @@ extern int xf86LogVerbose; /* log file verbosity level */
extern Bool xf86ProbeOnly;
extern Bool xf86DoProbe;
+extern RootWinPropPtr *xf86RegisteredPropertiesTable;
+
#ifndef DEFAULT_VERBOSE
#define DEFAULT_VERBOSE 0
#endif
diff --git a/hw/xfree86/common/xf86Privstr.h b/hw/xfree86/common/xf86Privstr.h
index 8b0a0f4ce..93d64fd51 100644
--- a/hw/xfree86/common/xf86Privstr.h
+++ b/hw/xfree86/common/xf86Privstr.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Privstr.h,v 1.40 2003/10/17 20:02:12 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Privstr.h,v 1.41 2004/01/27 01:31:45 dawes Exp $ */
/*
* Copyright (c) 1997-2003 by The XFree86 Project, Inc.
@@ -198,6 +198,16 @@ typedef struct {
} VidModeRec, *VidModePtr;
#endif
+/* Information for root window properties. */
+typedef struct _RootWinProp {
+ struct _RootWinProp * next;
+ char * name;
+ Atom type;
+ short format;
+ long size;
+ pointer data;
+} RootWinProp, *RootWinPropPtr;
+
/* private resource types */
#define ResNoAvoid ResBios
diff --git a/hw/xfree86/doc/README.fonts b/hw/xfree86/doc/README.fonts
index 230e29c78..2fe8dfaac 100644
--- a/hw/xfree86/doc/README.fonts
+++ b/hw/xfree86/doc/README.fonts
@@ -987,23 +987,28 @@ earlier in this document.
The `X-TrueType' backend is a backend based on version 1 of the FreeType
library. X-TrueType doesn't use the `fontenc' layer for managing font encod-
-ings, but instead uses its own database of encodings. Since the functionali-
-ties for CJKV support introduced by X-TT have been merged into the new
-FreeType backend, the X-TT backend will be removed from XFree86's tree near
-the future. Therefore, the use of FreeType backend is preferred over the X-
-TT backend. General information on X-TrueType may be found at ."
+ings, but instead uses its own database of encodings.
+
+Since the functionalities for CJKV support introduced by X-TT have been
+merged into the new FreeType backend, the X-TT backend will be removed from
+XFree86's tree near the future. Therefore, the use of FreeType backend is
+preferred over the X-TT backend.
+
+General information on X-TrueType may be found at the After X-TT Project page
+<URL:http://x-tt.sourceforge.jp/>.
4.2.3 Delayed glyph rasterisation
-When loading a large character set, the old FreeType delayed glyph rasterisa-
-tion until the time at which the glyph was first used. The new FreeType
-(libfreetype-xtt2) has an improved `very lazy' metric calculation method to
-speed up the process when loading TrueType or OpenType fonts. Although the
-X-TT module also has this method, the "vl=y" TTCap option must be set if you
-want to use it. This is the default method for FreeType when it loads multi-
-byte fonts. Even if you use a unicode font which has tens of thousands of
-glyphs, this delay will not be worrisome as long as you use the new FreeType
-backend -- its `very lazy' method is super-fast.
+When loading a proportional fonts which contain a huge number of glyphs, the
+old FreeType delayed glyph rasterisation until the time at which the glyph
+was first used. The new FreeType (libfreetype-xtt2) has an improved `very
+lazy' metric calculation method to speed up the process when loading TrueType
+or OpenType fonts. Although the X-TT module also has this method, the
+"vl=y" TTCap option must be set if you want to use it. This is the default
+method for FreeType when it loads multi-byte fonts. Even if you use a uni-
+code font which has tens of thousands of glyphs, this delay will not be wor-
+risome as long as you use the new FreeType backend -- its `very lazy' method
+is super-fast.
The maximum error of bitmap position using `very lazy' method is 1 pixel, and
is the same as that of a character-cell spacing. When the X-TT backend is
@@ -1176,7 +1181,7 @@ The IANA RFC documents, available from a number of sites throughout the
world, often provide interesting information about character set issues; see
for example RFC 373.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.23 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.24 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.27 2003/11/24 01:57:56 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.28 2003/12/20 19:47:28 dawes Exp $
diff --git a/hw/xfree86/doc/changelogs/CHANGELOG b/hw/xfree86/doc/changelogs/CHANGELOG
index 3e6f9d210..1a8920321 100644
--- a/hw/xfree86/doc/changelogs/CHANGELOG
+++ b/hw/xfree86/doc/changelogs/CHANGELOG
@@ -1,4 +1,259 @@
-XFree86 4.3.99.903 (xx December 2003)
+XFree86 4.3.99.904 (xx February 2004)
+
+XFree86 4.3.99.903 (15 February 2004)
+ 805. Resync the pci.ids data with pciids.sf.net (2004-02-15 snapshot).
+ 804. Improve X server performance on OS/2 when using TCP transport:
+ - Let the server set TCP_NODELAY, et al.
+ - Change the behavior of os2PseudoSelect() on sockets.
+ (Bugzilla #1175, Frank Giessler).
+ 803. X server on OS/2 doesn't respect AutoRepeat on/off unless XKB is disabled
+ (Bugzilla #1174, Frank Giessler).
+ 802. Licence update.
+ 801. Optimise SlowBcopy() for ia64 architecture (Marc La France).
+ 800. Simplify vgaHWSaveFonts() and vgaHWRestoreFonts() to fix hangs seen with
+ certain nVidia boards on ZX1-based systems (Marc La France).
+ 799. Some more font path checks.
+ 798. Don't define X_LOCALE on Panther (Etsushi Kato and Toshimitsu Tanaka).
+ 797. Fix GL_VERSION string for indirect rendering (Bugzilla #1147, DRI Project)
+ 796. Fix the 1024x576 modes in the via driver (Bugzilla #812, Luc Verhaegen,
+ reported by Julian Cable).
+ 795. Add uz_UZ locale (Bugzilla #1151, Mashrab Kuvatov).
+ 794. Fix font alias overrun.
+ 793. Fix for the way the FreeType backend sets the
+ _ADOBE_POSTSCRIPT_FONTNAME property for Type1 fonts (Bugzilla #1123,
+ David Dawes, based on Roland Mainz, reported by David Capshaw).
+ 792. Fix formatting of the XLookupString bytes that xev prints out (Bugzilla
+ #1153, Noah Levitt).
+ 791. Likely fix for FreeBSD 5.2 libGL build problem (David Dawes, reported by
+ Terry R. Friedrichsen).
+ 790. Fix typo in bsd_mouse.c (Tyler Retzlaff).
+ 789. Fix off-by-one errors in the emulation of an ix86's BT, BTS, BTR and BTC
+ instructions (Marc La France).
+ 788. Fixing segfaults that may happen in some corner cases on VT switch
+ and int10 initialization (Egbert Eich).
+ 787. Increase PCI I/O space size on Linux/PowerPC (Bugzilla #1143,
+ Paul Mackerras).
+ 786. Fix DRI cleanup at exit and re-enabling on reset for the via driver
+ (Bugzilla #998, Thomas Hellström).
+ 785. Fix Xv error propagation to the client for the via driver (Bugzilla #998,
+ Thomas Hellström).
+ 784. Fix a problem when utilizing DrawArrays when indirect rendering
+ (Bugzilla #1142, DRI Project).
+ 783. Xterm followup fix for Bugzilla #981 (Thomas Dickey).
+ 782. Fix EXT version of vertex arrays (DRI Project).
+ 781. Fix long-standing off-by-one bug in calculating dimensions of single
+ (private) back cliprect when the window is partially offscreen in
+ libdri.a (Keith Whitwell)
+ 780. Don't do the MGAISBUSY() loop in MGAStormSync() for Mystique cards
+ because this reportedly results in an infinite loop (Bugzila #85,
+ David Dawes, reported by Phil ??? and Stéphane VOLTZ).
+ 779. Make sure the r128 driver enables the hsync and vsync signals after
+ programming a video mode (Bugzilla #935, Kevin Martin).
+ 778. Fix Multitexture problems with vertex arrays and indirect rendering
+ (Bugzilla #1092, DRI Project).
+ 777. Fix SecondaryColor & FogColor when indirect rendering (Bugzilla #1091,
+ DRI Project).
+ 776. Fix build failures on Mac OS X 10.1.x (Torrey T. Lyons).
+ 775. Fix a timing problem in the nsc driver that prevents the display from
+ working in some cases (Bugzilla #840, Hansruedi Glauser, Alan Hourihane).
+ 774. Via driver workaround to handle setting WC for the video memory when
+ initially only part of it has WC set (Bugzilla #1010 Thomas Hellström).
+ 773. Fix the XAA clipping flags for the via driver, which fixes a line
+ drawing problem seen with OpenOffice Calc (Bugzilla #1026,
+ Thomas Hellström).
+ 772. HKSCS and GB18030 support for luit (Bugzilla #1048, Zarick Lau).
+ 771. Fix some remaining memory allocation related problems with the via
+ driver (Bugzilla #998, Thomas Hellström).
+ 770. Add a UseRpath build switch to allow the use of -rpath to be enabled
+ or disabled from the host.def file. Implemented for *BSD, Hurd, Linux.
+ The default settings remains as before (David Dawes).
+ 769. Add a root window property called XFree86_VT that holds the VT number
+ that the XFree86 server is running on (Andrew Aitcheson, suggested by
+ Samuel Thibault).
+ 768. Fix a problem where root window properties registered with
+ xf86RegisterRootWindowProperty() are not re-registered after server
+ regeneration (David Dawes, reported by Samuel Thibault).
+ 767. Fix xtest failures for the savage driver's zero width lines by
+ removing the TwoPointLine and using only the Bresenham version
+ (reported by Nicolas Joly).
+ 766. Fix refresh rate setting for 845G/856G systems that don't support the
+ Intel-specific refresh rate BIOS calls (Bugzilla #1106, David Dawes,
+ reported by Lucian Precup).
+ 765. Fixes/build updates for BSD/OS 5.1 and 4.3.1 (Bugzilla #1111, Kurt Lidl).
+ 764. Fix a problem in libXmu's FindChildren() that can cause a crash by
+ copying memory from outside the bounds of an array (Bugzilla #1109,
+ John Tillman).
+ 763. Add missing TimerCallback in trident_video.c to shutdown the video.
+ This could account for many peoples lockups with video on Trident chips.
+ Also, add a Wait for vsync when programming video modes to avoid lockups.
+ (Yukun Chen, Alan Hourihane).
+ 762. Fix a lockup problem on Trident Blade3D engines by permanently turning
+ on PCI Retry. Also sync the engine on CloseScreen and LeaveVT.
+ (Yukun Chen, Alan Hourihane).
+ 761. Fix getaddrinfo() return value check in SmsGenerateClientID() that was
+ causing a crash when the current hostname is unresolved, and returning
+ a NULL id otherwise (Bugzilla #1096, David Dawes).
+ 760. Support automatic configuration of the X server on OpenBSD with
+ wsmouse-supported mices. (Matthieu Herrb).
+ 759. Updates for XKB keyboard maps:
+ - Add Tibetan/Dzongkha keyboard layout (Bugzilla #1082, Gregory Mokhin).
+ - Add three new Internet/multimedia keyboard descriptions
+ (Bugzilla #1088, Radics Laszlo).
+ 758. Add overlooked SecondaryColor entries to AppleDRI indirect dispatch
+ table (Torrey T. Lyons).
+ 757. Allocate pBIOSInfo->UserSetting in the via driver, which fixes a crash
+ (James Harris).
+ 756. Fix Linux drm kernel modules to handle the nopage() prototype change in
+ Linux 2.6.1 (Michel Dänzer, from DRI CVS).
+ 755. Fix use of dynamic xcursors on OS/2 (Bugzilla #1087, Frank Giessler).
+ 754. Fix the fbdev driver so that it allows 24-bit pixel size, and disable
+ the RandR extension when rotation is enabled (Jonathan Thambidurai).
+ 753. Rendition driver fixes:
+ - Fix the mode size limits so that the set of modes that the driver
+ accepts isn't unnecessarily restricted.
+ - Fix color palette refreshing after VT switching.
+ - Fix a core dump at server exit with the hardware cursor was enabled.
+ - Add checking for supported depths. Without this the server could
+ crash if an unsupported depth was specified.
+ (Eric Wittry)
+ 752. Update XKB registry file rules/xfree86.xml (Sergey Oudaltsov).
+ 751. Fix some rules in en_US.UTF-8 Compose file (Bugzilla #1071,
+ Matthew Fischer).
+ 750. Add some content (supported hardware and driver options) to the tdfx(4)
+ man page (Bugzilla #1068, Nicolas Joly).
+ 749. Make '-pn' (partial network) the default for all X servers, and document
+ the '-nopn' option (David Dawes).
+ 748. Allow rstartd.real to be installed into a location other than LIBDIR
+ (#6034, Luke Mewburn).
+ 747. Allow xdm's chooser to be installed into a directory other than LIBDIR
+ (#6033, Luke Mewburn).
+ 746. Add XKB description for the Logitech Access keyboard (#6026,
+ Michael Geddes).
+ 745. Fix typo in computing xterm's relative font size (Jess Thrysoee).
+ 744. Fix typo in savage man page (Bugzilla #1065, Nicolas Joly).
+ 743. Fix for xf86Msg() call with swapped arguments (Bugzilla #1064,
+ Nicolas Joly).
+ 742. Set the dependencies correctly for SCO shared libraries, and use gcc
+ for linking instead of ld (Bugzilla #1045, Kean Johnston).
+ 741. Some cleanups for the SCO support, and a few changes required for
+ compilation on UnixWare (Bugzilla #1045, Kean Johnston).
+ 740. Make the X server lock file code treat the display string in the same
+ way as the local listener code (i.e., convert it to an integer then back
+ to a string). This fixes a problem where an non-numeric display
+ argument could cause a second server to be started on display :0,
+ replacing the local listener nodes for the original server.
+ (Bugzilla #1056, David Dawes, reported by Robin Schoonover).
+ 739. Fix xfs and xdm core dumps in BecomeOrphan(), and rework/simplify
+ the BecomeDaemon() code (Bugzilla #1060, #1074, David Dawes,
+ reported by Martin Birgmeier).
+ 738. Add a "VBERestore" option for the i830 part of the i810 driver, to
+ allow the VBE restore bug workaround to be disabled. This is needed
+ for correct text mode restoration on some 830M-based machines
+ (David Dawes, reported by Martin van Es).
+ 737. Fix memory leak when list of registered renderers are cleared at the
+ start of each new server generation (Kevin Martin and Rik Faith).
+ 736. Fix memory double freeing at XIM destroying in imLcIm.c (Ivan Pascal,
+ reported: Bugzilla #1015).
+ 735. Add xkb keymap for Microsoft Mutimedia Keyboard keys (Bugzilla #1052,
+ Jacques Legare).
+ 734. Update Compose file for en_US.UTF-8 locale (Bugzilla #1053,
+ Matthew Fischer) and fix wrong comment signs there (Ivan Pascal).
+ 733. VIA driver fixes:
+ - Restructure the via driver's cache allocation to work with both
+ the VIA and new open DRI module, and remove the now unneeded
+ version check (Thomas Hellström, Alan Cox, bugzilla #998).
+ - Remove special case lindvd hack (Alan Cox)
+ - Add support for Xv when unaccelerated (Thomas Hellström)
+ (Bugzilla #998, #1020, #1021).
+ 732. Check for a NULL argument in XSetICFocus() before dereferencing it.
+ This fixes crashes with some XIM software (see
+ http://bugzilla.mozilla.gr.jp/show_bug.cgi?id=2961#c19).
+ 731. Improve the i810 bitblt bug workaround, and re-enable the pixmap cache
+ at depth 24 (David Dawes).
+ 730. Workaround for lockup at mode switch with an i810 (David Dawes).
+ 729. Fix transparent mono 8x8 pattern fills for the i810 (David Dawes).
+ 728. Disable XKB by default in XDarwin (Torrey T. Lyons).
+ 727. Fix manpage build warnings on Panther (Matthieu Herrb).
+ 726. Make sure that the ring buffer is flushed in I810CloseScreen(). This
+ fixes unpredictable behaviour that sometimes shows up after server
+ exit/restart or server reset, including memory corruption, spontaneous
+ reboots, etc, and some odd xtest behaviour (David Dawes).
+ 725. Xdmcp fixes for IPv6 and mixed IPv6/IPv4 operation. (Mario Klebsch,
+ Matthieu Herrb).
+ 724. Update rman by merging XFree86 changes to rman 3.2 (Thomas Dickey).
+ 723. Create fonts.scale and fonts.dir files in the target directories at
+ 'make install' time. This fixes several problems where some font
+ entries get left out (David Dawes).
+ 722. Add the Bitstream Vera fonts (Bitstream, Inc and The Gnome Project).
+ 721. Xterm patches #183, #184 (Thomas Dickey).
+ 720. Build fix for the Chips driver on Linux/arm (#6011, Michel Dänzer and
+ Othmar Pasteka).
+ 719. Change v4l "norm" names to the bttv versions (#5993,
+ Marco Antonio Alvarez).
+ 718. Fix for symbols/hr map (#5991, Vlatko Kosturjak).
+ 717. The current VIA DRI driver isn't remotely compatible with the current
+ code, so make sure it isn't loaded by requiring version 2.0.0 or later
+ (Alan Cox).
+ 716. Fix VIA KM400 memory detection (Luc Verhaegen, Bugzilla #813).
+ 715. Fix a long standing VIA Xv problem with totem/xine and YUV surface
+ types (Uberto Barbini).
+ 714. VIA driver updates/fixes:
+ - Remove HARDWARE_NEEDS_PROGRAMMED_ORIGIN (Bugzilla #1011).
+ - Allocate the UserSetting structure and use it. Changed the names so
+ its uses can be tracked through the tree (Bugzilla #1006, #1014).
+ - Remove dead FIFO handling code.
+ - Clean up formatting in via_bios.h, via_driver.h.
+ - via_tuner module (1/2 of Bugzilla #1012, #1013):
+ + Add via_tuner structures and methods.
+ + Handle the back end work for boards with Philips SAA71xx
+ devices on the I2C bus providing one or two TV overlays.
+ + Handle CXA2104S audio decoder if present.
+ + Handle FI1236 TV tuners if present.
+ - Remove bogus DriverVersion, DriverName stuff.
+ - Xv updates (Bugzilla #1013):
+ + Remove DDR mode tables and compute supported overlay modes properly.
+ + Remove various bits of dead code.
+ + Probe for Tuners in the Xv setup.
+ + Don't advertise XvImageMask on the tuner overlays - they can't do it.
+ + Clean up tuner channel computation.
+ + Make the property setting code use the via_tuner backend.
+ + Fix formatting of the various YUV copying loops.
+ (Alan Cox).
+ 713. Add a missing code for jisx0208.1990-0.enc (Chisato Yamauchi).
+ 712. Xtt2 update: Restore the behaviour of "bw" TTCap option for Netscape 4.x.
+ (Chisato Yamauchi).
+ 711. Fix neomagic driver default mode selection to match the detected
+ panel size. This allows it to work correctly with automatic
+ configuration (David Dawes).
+ 710. Fixes and updates for XKB keyboard maps:
+ - Fix Armenian phonetic keymap (Bugzilla #1016, Ani).
+ - Fix rules for Brasilian ABNT2 keyboard (Ricardo Y. Igarashi).
+ - Add Shift+CapsLock group switcher (Ivan Pascal, see Bugzilla #1025).
+ - Update rules/xfree86.lst with missing descriptions (Ivan Pascal).
+ 709. Build fix for Solaris Express (Bugzilla #1032, Alan Coopersmith).
+ 708. Fix warning in lib/Xt/Alloc.c (Bugzilla #1035, Nicolas Joly).
+ 707. Fix short overflow problem with box clipping in fb/fbcopy.c
+ (Bugzilla #978, Stephen McCamant).
+ 706. Fix logic in xterm's get_pty() for platforms where old-style pty's are
+ preferred to /dev/ptmx (Bugzilla #997, Kean Johnston, Thomas Dickey).
+ 705. Fix handling of eightBitInput for UTF-8 locales in xterm (Thomas Dickey).
+ 704. Merge recent cygwin-related changes from freedesktop.org's config/cf
+ (Thomas Dickey).
+ 703. Disable Xv in the via driver when acceleration is disabled (Alan Cox).
+ 702. Fix bugs caused by empty PCI buses on ZX1-based systems (Marc La France).
+ 701. Fix optional save/restore of BIOS area data in int10 module
+ (Marc La France).
+ 700. Update Swedish localization of XDarwin GUI (Patrik Montgomery).
+ 699. Fixes to build/run on cygwin (Thomas Dickey). This includes a workaround
+ for _XtInherit by Ralf Habacker, needed to run applications such as xman.
+ 698. Warning fixes for gcc 3.3.2 (Marc La France).
+ 697. Fix file descriptor leaks in xdm (Marc La France).
+ 696. Fix memory leaks in libFS (Marc La France).
+ 695. Security fix: change xdm to use mkstemp(), where available, instead of
+ mktemp() (Marc La France).
+ 694. Update XKB registry file rules/xfree86.xml (Sergey Oudaltsov).
+ 693. Fix for FreeType-related crash when attempting to draw a missing glyph
+ with constant-width fonts (Chisato Yamauchi).
XFree86 4.3.99.902 (18 December 2003)
672. Fixes for xterm (Thomas Dickey):
@@ -18391,7 +18646,7 @@ XFree86 3.0a (28 April 1994)
XFree86 3.0 (26 April 1994)
-$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.3043 2003/12/19 04:52:08 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.3145 2004/02/16 01:01:45 dawes Exp $
diff --git a/hw/xfree86/doc/sgml/DESIGN.sgml b/hw/xfree86/doc/sgml/DESIGN.sgml
index 365acaf1a..864b5c249 100644
--- a/hw/xfree86/doc/sgml/DESIGN.sgml
+++ b/hw/xfree86/doc/sgml/DESIGN.sgml
@@ -25,9 +25,9 @@
<article>
-<title>XFree86 X server ``New Design'' (DRAFT)
+<title>XFree86 server 4.x Design (DRAFT)
<author>The XFree86 Project, Inc
-<date>Last modified 2003 January 22
+<date>19 December 2003
@@ -36,7 +36,7 @@
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.53 2003/08/23 14:10:14 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.54 2003/12/19 20:38:57 dawes Exp $
</ident>
diff --git a/hw/xfree86/dri/dri.c b/hw/xfree86/dri/dri.c
index 238e85651..9d603d03e 100644
--- a/hw/xfree86/dri/dri.c
+++ b/hw/xfree86/dri/dri.c
@@ -1,5 +1,4 @@
-/* $XdotOrg: xc/programs/Xserver/GL/dri/dri.c,v 1.39 2003/11/10 18:21:41 tsi Exp $ */
-/* $XFree86: xc/programs/Xserver/GL/dri/dri.c,v 1.39 2003/11/10 18:21:41 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/GL/dri/dri.c,v 1.40 2004/01/30 14:31:58 alanh Exp $ */
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
@@ -1192,8 +1191,8 @@ DRIGetDrawableInfo(ScreenPtr pScreen,
if (x0 < 0) x0 = 0;
if (y0 < 0) y0 = 0;
- if (x1 > pScreen->width-1) x1 = pScreen->width-1;
- if (y1 > pScreen->height-1) y1 = pScreen->height-1;
+ if (x1 > pScreen->width) x1 = pScreen->width;
+ if (y1 > pScreen->height) y1 = pScreen->height;
pDRIPriv->private_buffer_rect.x1 = x0;
pDRIPriv->private_buffer_rect.y1 = y0;
diff --git a/hw/xfree86/int10/helper_exec.c b/hw/xfree86/int10/helper_exec.c
index 7528fea0e..181ebb157 100644
--- a/hw/xfree86/int10/helper_exec.c
+++ b/hw/xfree86/int10/helper_exec.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/int10/helper_exec.c,v 1.26 2003/11/06 18:38:12 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/int10/helper_exec.c,v 1.27 2003/12/23 22:32:38 tsi Exp $ */
/*
* XFree86 int10 module
* execute BIOS int 10h calls in x86 real mode environment
@@ -56,7 +56,7 @@ setup_int(xf86Int10InfoPtr pInt)
X86_GS = 0;
X86_EFLAGS = X86_IF_MASK | X86_IOPL_MASK;
#if defined (_PC)
- if (pInt->flags & SET_BIOS_SCRATCH)
+ if (pInt->Flags & SET_BIOS_SCRATCH)
SetResetBIOSVars(pInt, TRUE);
#endif
return xf86BlockSIGIO();
@@ -76,7 +76,7 @@ finish_int(xf86Int10InfoPtr pInt, int sig)
pInt->bp = (CARD32) X86_EBP;
pInt->flags = (CARD32) X86_FLAGS;
#if defined (_PC)
- if (pInt->flags & RESTORE_BIOS_SCRATCH)
+ if (pInt->Flags & RESTORE_BIOS_SCRATCH)
SetResetBIOSVars(pInt, FALSE);
#endif
}
diff --git a/hw/xfree86/loader/coffloader.c b/hw/xfree86/loader/coffloader.c
index b2fbfcf14..1ba45dd67 100644
--- a/hw/xfree86/loader/coffloader.c
+++ b/hw/xfree86/loader/coffloader.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/coffloader.c,v 1.21 2003/10/15 17:40:15 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/coffloader.c,v 1.22 2003/12/22 17:48:11 tsi Exp $ */
/*
*
@@ -133,7 +133,9 @@ static COFFCommonPtr COFFAddCOMMON(SYMENT *, int);
static LOOKUP *COFFCreateCOMMON(COFFModulePtr);
static COFFRelocPtr COFFDelayRelocation(COFFModulePtr, int, RELOC *);
static SYMENT *COFFGetSymbol(COFFModulePtr, int);
+#if defined(i386) || defined(__powerpc__)
static unsigned char *COFFGetSymbolValue(COFFModulePtr, int);
+#endif
static COFFRelocPtr COFF_RelocateEntry(COFFModulePtr, int, RELOC *);
static LOOKUP *COFF_GetSymbols(COFFModulePtr);
static void COFFCollectSections(COFFModulePtr);
@@ -298,6 +300,7 @@ COFFGetSymbol(COFFModulePtr file, int index)
return (SYMENT *) (((unsigned char *)file->symtab) + (index * SYMESZ));
}
+#if defined(i386) || defined(__powerpc__)
static unsigned char *
COFFGetSymbolValue(COFFModulePtr cofffile, int index)
{
@@ -323,6 +326,7 @@ COFFGetSymbolValue(COFFModulePtr cofffile, int index)
xf86loaderfree(symname);
return symval;
}
+#endif
#if defined(__powerpc__)
/*
diff --git a/hw/xfree86/loader/fontsym.c b/hw/xfree86/loader/fontsym.c
index d91a2e216..1a1324fdb 100644
--- a/hw/xfree86/loader/fontsym.c
+++ b/hw/xfree86/loader/fontsym.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/fontsym.c,v 1.13 2003/10/15 16:29:04 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/fontsym.c,v 1.14 2003/12/20 20:04:34 dawes Exp $ */
/*
* Copyright (c) 1998-2002 by The XFree86 Project, Inc.
*
@@ -37,8 +37,10 @@
#include "fntfil.h"
#include "fontutil.h"
#include "fontxlfd.h"
+#ifdef FONTCACHE
#define _FONTCACHE_SERVER_
#include "fontcache.h"
+#endif
LOOKUP fontLookupTab[] = {
@@ -89,6 +91,7 @@ LOOKUP fontLookupTab[] = {
SYMFUNC(identifyEncodingFile)
#endif
+#ifdef FONTCACHE
/* fontcache.c */
SYMFUNC(FontCacheGetSettings)
SYMFUNC(FontCacheGetStatistics)
@@ -99,6 +102,7 @@ LOOKUP fontLookupTab[] = {
SYMFUNC(FontCacheGetEntry)
SYMFUNC(FontCacheInsertEntry)
SYMFUNC(FontCacheGetBitmap)
+#endif
{0, 0}
};
diff --git a/hw/xfree86/os-support/bsd/alpha_video.c b/hw/xfree86/os-support/bsd/alpha_video.c
index aa3313dc3..655ac4a83 100644
--- a/hw/xfree86/os-support/bsd/alpha_video.c
+++ b/hw/xfree86/os-support/bsd/alpha_video.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/alpha_video.c,v 1.5 2003/04/03 16:50:04 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/alpha_video.c,v 1.6 2003/12/30 15:18:30 herrb Exp $ */
/*
* Copyright 1992 by Rich Murphey <Rich@Rice.edu>
* Copyright 1993 by David Wexelblat <dwex@goblin.org>
@@ -121,7 +121,7 @@ static struct alpha_bus_window *abw;
static int abw_count = -1;
static void
-init_abw()
+init_abw(void)
{
if (abw_count < 0) {
abw_count = alpha_bus_getwindows(ALPHA_BUS_TYPE_PCI_MEM, &abw);
@@ -142,7 +142,7 @@ has_bwx(void)
}
static unsigned long
-dense_base()
+dense_base(void)
{
if (abw_count < 0)
init_abw();
@@ -154,7 +154,7 @@ dense_base()
}
static unsigned long
-memory_base()
+memory_base(void)
{
if (abw_count < 0)
init_abw();
@@ -284,11 +284,13 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem)
xf86Msg(X_PROBED,"Machine needs sparse mapping\n");
pVidMem->mapMem = mapVidMemSparse;
pVidMem->unmapMem = unmapVidMemSparse;
+#ifndef __NetBSD__
if (axpSystem == -1)
axpSystem = bsdGetAXP();
hae_thresh = xf86AXPParams[axpSystem].hae_thresh;
hae_mask = xf86AXPParams[axpSystem].hae_mask;
sparse_size = xf86AXPParams[axpSystem].size;
+#endif /* __NetBSD__ */
}
pVidMem->initialised = TRUE;
}
@@ -314,7 +316,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
MAP_FLAGS, devMemFd, (off_t)Base + BUS_BASE_BWX);
if (base == MAP_FAILED)
{
- FatalError("%s: could not mmap %s [s=%x,a=%x] (%s)\n",
+ FatalError("%s: could not mmap %s [s=%lx,a=%lx] (%s)\n",
"xf86MapVidMem", DEV_MEM, Size, Base,
strerror(errno));
}
@@ -324,7 +326,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
/* else, mmap /dev/vga */
if ((unsigned long)Base < 0xA0000 || (unsigned long)Base >= 0xC0000)
{
- FatalError("%s: Address 0x%x outside allowable range\n",
+ FatalError("%s: Address 0x%lx outside allowable range\n",
"xf86MapVidMem", Base);
}
base = mmap(0, Size,
@@ -372,7 +374,7 @@ xf86ReadBIOS(unsigned long Base, unsigned long Offset, unsigned char *Buf,
if ((long)ptr == -1)
{
xf86Msg(X_WARNING,
- "xf86ReadBIOS: %s mmap[s=%x,a=%x,o=%x] failed (%s)\n",
+ "xf86ReadBIOS: %s mmap[s=%x,a=%lx,o=%lx] failed (%s)\n",
DEV_MEM, Len, Base, Offset, strerror(errno));
return(-1);
}
@@ -446,7 +448,9 @@ xf86EnableInterrupts()
#define vuip volatile unsigned int *
+#ifndef __NetBSD__
static unsigned long msb_set = 0;
+#endif
static pointer memSBase = 0;
static pointer memBase = 0;
@@ -490,6 +494,7 @@ struct parms {
u_int64_t hae;
};
+#ifndef __NetBSD__
static int
sethae(u_int64_t hae)
{
@@ -505,6 +510,7 @@ sethae(u_int64_t hae)
return -1;
#endif
}
+#endif /* __NetBSD__ */
static pointer
mapVidMemSparse(int ScreenNum, unsigned long Base, unsigned long Size, int flags)
@@ -552,11 +558,13 @@ static int
readSparse8(pointer Base, register unsigned long Offset)
{
register unsigned long result, shift;
+#ifndef __NetBSD__
register unsigned long msb;
-
+#endif
mem_barrier();
Offset += (unsigned long)Base - (unsigned long)memBase;
shift = (Offset & 0x3) << 3;
+#ifndef __NetBSD__
if (Offset >= (hae_thresh)) {
msb = Offset & hae_mask;
Offset -= msb;
@@ -565,7 +573,7 @@ readSparse8(pointer Base, register unsigned long Offset)
msb_set = msb;
}
}
-
+#endif
result = *(vuip) ((unsigned long)memSBase + (Offset << 5));
result >>= shift;
return 0xffUL & result;
@@ -575,11 +583,14 @@ static int
readSparse16(pointer Base, register unsigned long Offset)
{
register unsigned long result, shift;
+#ifndef __NetBSD__
register unsigned long msb;
+#endif
mem_barrier();
Offset += (unsigned long)Base - (unsigned long)memBase;
shift = (Offset & 0x2) << 3;
+#ifndef __NetBSD__
if (Offset >= (hae_thresh)) {
msb = Offset & hae_mask;
Offset -= msb;
@@ -588,6 +599,7 @@ readSparse16(pointer Base, register unsigned long Offset)
msb_set = msb;
}
}
+#endif
result = *(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2)));
result >>= shift;
return 0xffffUL & result;
@@ -603,11 +615,14 @@ readSparse32(pointer Base, register unsigned long Offset)
static void
writeSparse8(int Value, pointer Base, register unsigned long Offset)
{
+#ifndef __NetBSD__
register unsigned long msb;
+#endif
register unsigned int b = Value & 0xffU;
write_mem_barrier();
Offset += (unsigned long)Base - (unsigned long)memBase;
+#ifndef __NetBSD__
if (Offset >= (hae_thresh)) {
msb = Offset & hae_mask;
Offset -= msb;
@@ -616,17 +631,21 @@ writeSparse8(int Value, pointer Base, register unsigned long Offset)
msb_set = msb;
}
}
+#endif
*(vuip) ((unsigned long)memSBase + (Offset << 5)) = b * 0x01010101;
}
static void
writeSparse16(int Value, pointer Base, register unsigned long Offset)
{
+#ifndef __NetBSD__
register unsigned long msb;
+#endif
register unsigned int w = Value & 0xffffU;
write_mem_barrier();
Offset += (unsigned long)Base - (unsigned long)memBase;
+#ifndef __NetBSD__
if (Offset >= (hae_thresh)) {
msb = Offset & hae_mask;
Offset -= msb;
@@ -635,6 +654,7 @@ writeSparse16(int Value, pointer Base, register unsigned long Offset)
msb_set = msb;
}
}
+#endif
*(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2))) =
w * 0x00010001;
@@ -651,10 +671,13 @@ writeSparse32(int Value, pointer Base, register unsigned long Offset)
static void
writeSparseNB8(int Value, pointer Base, register unsigned long Offset)
{
+#ifndef __NetBSD__
register unsigned long msb;
+#endif
register unsigned int b = Value & 0xffU;
Offset += (unsigned long)Base - (unsigned long)memBase;
+#ifndef __NetBSD__
if (Offset >= (hae_thresh)) {
msb = Offset & hae_mask;
Offset -= msb;
@@ -663,16 +686,20 @@ writeSparseNB8(int Value, pointer Base, register unsigned long Offset)
msb_set = msb;
}
}
+#endif
*(vuip) ((unsigned long)memSBase + (Offset << 5)) = b * 0x01010101;
}
static void
writeSparseNB16(int Value, pointer Base, register unsigned long Offset)
{
+#ifndef __NetBSD__
register unsigned long msb;
+#endif
register unsigned int w = Value & 0xffffU;
Offset += (unsigned long)Base - (unsigned long)memBase;
+#ifndef __NetBSD__
if (Offset >= (hae_thresh)) {
msb = Offset & hae_mask ;
Offset -= msb;
@@ -681,6 +708,7 @@ writeSparseNB16(int Value, pointer Base, register unsigned long Offset)
msb_set = msb;
}
}
+#endif
*(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2))) =
w * 0x00010001;
}
diff --git a/hw/xfree86/os-support/bsd/bsd_kbd.c b/hw/xfree86/os-support/bsd/bsd_kbd.c
index 0d586ef72..3c22eeb4d 100644
--- a/hw/xfree86/os-support/bsd/bsd_kbd.c
+++ b/hw/xfree86/os-support/bsd/bsd_kbd.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_kbd.c,v 1.8 2003/11/04 03:16:58 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_kbd.c,v 1.9 2004/01/07 17:05:28 tsi Exp $ */
/*
* Copyright (c) 2002 by The XFree86 Project, Inc.
@@ -497,7 +497,7 @@ OpenKeyboard(InputInfoPtr pInfo)
#endif
default:
xf86Msg(X_ERROR, "%s: Unsupported wskbd type \"%d\"",
- pKbd->wsKbdType, pInfo->name);
+ pInfo->name, pKbd->wsKbdType);
close(pInfo->fd);
return FALSE;
}
diff --git a/hw/xfree86/os-support/bsd/bsd_mouse.c b/hw/xfree86/os-support/bsd/bsd_mouse.c
index 943bb9855..bb5936a1e 100644
--- a/hw/xfree86/os-support/bsd/bsd_mouse.c
+++ b/hw/xfree86/os-support/bsd/bsd_mouse.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c,v 1.26 2003/10/10 20:56:05 herrb Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_mouse.c,v 1.28 2004/02/06 17:15:36 tsi Exp $ */
/*
* Copyright (c) 1999-2003 by The XFree86 Project, Inc.
@@ -80,6 +80,16 @@ static const char *mouseDevs[] = {
DEFAULT_PS2_DEV,
NULL
};
+#elif defined(__OpenBSD__) && defined(WSCONS_SUPPORT)
+/* Only wsmouse mices are autoconfigured for now on OpenBSD */
+#define DEFAULT_WSMOUSE_DEV "/dev/wsmouse"
+#define DEFAULT_WSMOUSE0_DEV "/dev/wsmouse0"
+
+static const char *mouseDevs[] = {
+ DEFAULT_WSMOUSE_DEV,
+ DEFAULT_WSMOUSE0_DEV,
+ NULL
+};
#endif
static int
@@ -141,6 +151,8 @@ DefaultProtocol(void)
{
#if defined(__FreeBSD__)
return "Auto";
+#elif defined(__OpenBSD__) && defined(WSCONS_SUPPORT)
+ return "WSMouse";
#else
return NULL;
#endif
@@ -195,7 +207,7 @@ SetupAuto(InputInfoPtr pInfo, int *protoPara)
protoPara[0] = mode.syncmask[0];
protoPara[1] = mode.syncmask[1];
}
- xf86MsgVerb(X_INFO, 3, "%s: SetupAuto: protocol is %s\n",
+ xf86MsgVerb(X_INFO, 3, "%s: SetupAuto: protocol is %s\n",
pInfo->name, devproto[i].name);
return devproto[i].name;
}
@@ -325,7 +337,50 @@ FindDevice(InputInfoPtr pInfo, const char *protocol, int flags)
}
#endif
-#if defined(WSCONS_SUPPORT)
+#if defined(__OpenBSD__) && defined(WSCONS_SUPPORT)
+
+/* Only support wsmouse configuration for now */
+static const char *
+SetupAuto(InputInfoPtr pInfo, int *protoPara)
+{
+
+ xf86MsgVerb(X_INFO, 3, "%s: SetupAuto: protocol is %s\n",
+ pInfo->name, "wsmouse");
+ return "wsmouse";
+}
+
+static void
+SetMouseRes(InputInfoPtr pInfo, const char *protocol, int rate, int res)
+{
+
+ xf86MsgVerb(X_INFO, 3, "%s: SetMouseRes: protocol %s rate %d res %d\n",
+ pInfo->name, protocol, rate, res);
+}
+
+static const char *
+FindDevice(InputInfoPtr pInfo, const char *protocol, int flags)
+{
+ int fd = -1;
+ const char **pdev;
+
+ for (pdev = mouseDevs; *pdev; pdev++) {
+ SYSCALL(fd = open(*pdev, O_RDWR | O_NONBLOCK));
+ if (fd != -1) {
+ /* Set the Device option. */
+ pInfo->conf_idev->commonOptions =
+ xf86AddNewOption(pInfo->conf_idev->commonOptions,
+ "Device", *pdev);
+ xf86Msg(X_INFO, "%s: found Device \"%s\"\n",
+ pInfo->name, *pdev);
+ close(fd);
+ break;
+ }
+ }
+ return *pdev;
+}
+#endif /* __OpenBSD__ && WSCONS_SUPPORT */
+
+#ifdef WSCONS_SUPPORT
#define NUMEVENTS 64
static void
@@ -718,7 +773,11 @@ xf86OSMouseInit(int flags)
p->SetBMRes = SetSysMouseRes;
p->SetMiscRes = SetSysMouseRes;
#endif
-#if defined(__FreeBSD__)
+#if defined(__OpenBSD__) && defined(WSCONS_SUPPORT)
+ p->SetupAuto = SetupAuto;
+ p->SetMiscRes = SetMouseRes;
+#endif
+#if defined(__FreeBSD__) || defined(__OpenBSD__)
p->FindDevice = FindDevice;
#endif
p->PreInit = bsdMousePreInit;
diff --git a/hw/xfree86/os-support/bus/Pci.c b/hw/xfree86/os-support/bus/Pci.c
index a0b639143..ab10485ee 100644
--- a/hw/xfree86/os-support/bus/Pci.c
+++ b/hw/xfree86/os-support/bus/Pci.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c,v 1.81 2003/09/24 02:43:34 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.c,v 1.82 2004/01/16 15:39:04 tsi Exp $ */
/*
* Pci.c - New server PCI access functions
*
@@ -1016,7 +1016,9 @@ xf86scanpci(int flags)
if (!(devp->pci_bridge_control & PCI_PCI_BRIDGE_MASTER_ABORT_EN))
break;
pciWriteByte(tag, PCI_PCI_BRIDGE_CONTROL_REG,
- devp->pci_bridge_control & ~PCI_PCI_BRIDGE_MASTER_ABORT_EN);
+ devp->pci_bridge_control &
+ ~(PCI_PCI_BRIDGE_MASTER_ABORT_EN |
+ PCI_PCI_BRIDGE_SECONDARY_RESET));
break;
default:
@@ -1079,7 +1081,7 @@ xf86scanpci(int flags)
if (!(devp->pci_bridge_control & PCI_PCI_BRIDGE_MASTER_ABORT_EN))
break;
pciWriteByte(devp->tag, PCI_PCI_BRIDGE_CONTROL_REG,
- devp->pci_bridge_control);
+ devp->pci_bridge_control & ~PCI_PCI_BRIDGE_SECONDARY_RESET);
break;
default:
diff --git a/hw/xfree86/os-support/bus/Pci.h b/hw/xfree86/os-support/bus/Pci.h
index dccc6cee4..1c819a8c8 100644
--- a/hw/xfree86/os-support/bus/Pci.h
+++ b/hw/xfree86/os-support/bus/Pci.h
@@ -1,5 +1,4 @@
-/* $XdotOrg$ */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h,v 1.44 2003/11/07 23:57:47 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Pci.h,v 1.45 2004/02/02 03:55:31 dawes Exp $ */
/*
* Copyright 1998 by Concurrent Computer Corporation
*
@@ -262,7 +261,7 @@
# define INCLUDE_XF86_NO_DOMAIN
# endif
# define XF86SCANPCI_WRAPPER ia64ScanPCIWrapper
-#elif defined(__i386__) || defined(__i386)
+#elif defined(__i386__) || defined(i386)
# define ARCH_PCI_INIT ix86PciInit
# define INCLUDE_XF86_MAP_PCI_MEM
# define INCLUDE_XF86_NO_DOMAIN
diff --git a/hw/xfree86/os-support/bus/zx1PCI.c b/hw/xfree86/os-support/bus/zx1PCI.c
index 31556b5b9..5d4d6a991 100644
--- a/hw/xfree86/os-support/bus/zx1PCI.c
+++ b/hw/xfree86/os-support/bus/zx1PCI.c
@@ -1,5 +1,4 @@
-/* $XdotOrg: xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c,v 1.6 2003/12/11 17:11:39 tsi Exp $ */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c,v 1.6 2003/12/11 17:11:39 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/zx1PCI.c,v 1.8 2004/01/16 15:39:38 tsi Exp $ */
/*
* Copyright (C) 2002-2003 The XFree86 Project, Inc. All Rights Reserved.
*
@@ -98,9 +97,10 @@
#define LBA_PORT5_CNTRL 0x1228U
#define LBA_PORT6_CNTRL 0x1230U
#define LBA_PORT7_CNTRL 0x1238U
-#define LBA_ROPE_RESET 0x01UL
-#define LBA_CLEAR_ERROR 0x10UL
-#define LBA_HARD_FAIL 0x40UL
+#define LBA_RESET_FUNCTION 0x0000000001UL
+#define LBA_CLEAR_ERROR 0x0000000010UL
+#define LBA_HARD_FAIL 0x0000000040UL
+#define LBA_RESET_COMPLETE 0x0100000000UL
#define ROPE_PAGE_CONTROL 0x1418U
@@ -118,8 +118,11 @@
#define IOA_SUBORDINATE_BUS 0x0059U
#define IOA_CONTROL 0x0108U
-#define IOA_FORWARD_VGA 0x08UL
-#define IOA_HARD_FAIL 0x40UL
+#define IOA_RESET_FUNCTION 0x0000000001UL
+#define IOA_FORWARD_VGA 0x0000000008UL
+#define IOA_CLEAR_ERROR 0x0000000010UL
+#define IOA_HARD_FAIL 0x0000000040UL
+#define IOA_RESET_COMPLETE 0x0100000000UL
#define IOA_LMMIO_BASE 0x0200U
#define IOA_LMMIO_MASK 0x0208U
@@ -135,12 +138,33 @@
#define IOA_ELMMIO_MASK 0x0258U
#define IOA_EIOS_BASE 0x0260U
#define IOA_EIOS_MASK 0x0268U
-
+#define IOA_GLOBAL_MASK 0x0270U
#define IOA_SLAVE_CONTROL 0x0278U
#define IOA_VGA_PEER_ENABLE 0x2000UL
#define IOA_MSI_BASE 0x0280U
#define IOA_MSI_MASK 0x0288U
+#define IOA_DMA_BASE 0x02B0U
+#define IOA_DMA_MASK 0x02B8U
+
+#define IOA_ERROR_CONFIG 0x0680U
+#define IOA_ERROR_PIOWRITE 0x0001UL
+#define IOA_ERROR_PIOREAD 0x0002UL
+#define IOA_ERROR_DMAWRITE 0x0004UL
+#define IOA_ERROR_DMAREAD 0x0008UL
+#define IOA_ERROR_CONFIG_MASTER 0x0010UL
+#define IOA_ERROR_SMART 0x0020UL
+#define IOA_ERROR_FATAL_SERR 0x0040UL
+#define IOA_ERROR_ASSERT_SERR 0x0080UL
+/* ? 0x0100UL */
+#define IOA_ERROR_LOOPBACK 0x0200UL
+#define IOA_ERROR_CONFIG_TARGET 0x0400UL
+#define IOA_ERROR_IO_MASTER 0x0800UL
+#define IOA_ERROR_IO_TARGET 0x1000UL
+#define IOA_ERROR_MEM_MASTER 0x2000UL
+#define IOA_ERROR_MEM_TARGET 0x4000UL
+#define IOA_ERROR_HF_IO_FATAL 0x8000UL
+
#define RANGE_ENABLE 0x01UL /* In various base registers */
#define IO_MASK ((1UL << 16) - 1UL)
@@ -157,10 +181,15 @@
static CARD8 *pZX1mio = NULL,
*pZX1ioa = NULL;
-static INT8 zx1_ropemap[8]; /* One for each (potential) rope */
-static CARD64 zx1_lbacntl[8]; /* " " " " " */
+/* Per-rope data */
+static INT8 zx1_ropemap[8];
+static CARD32 zx1_pciids[8];
+static CARD64 zx1_lbacntl[8];
static int zx1_busno[8], zx1_subno[8];
+/* Array of Booleans for non-empty buses */
+static INT8 zx1_busnmpt[MAX_PCI_BUSES];
+
static pciBusFuncs_t zx1BusFuncs;
static int zx1_fakebus = -1;
static Bool zx1_hasvga = FALSE;
@@ -293,7 +322,8 @@ ControlZX1Bridge(int bus, CARD16 mask, CARD16 value)
* SLAVE_CONTROL register.
*/
tmp1 = MIO_QUAD(VGA_ROUTE);
- tmp2 = IOA_QUAD(ropenum, IOA_CONTROL);
+ tmp2 = IOA_QUAD(ropenum, IOA_CONTROL) &
+ ~(IOA_RESET_FUNCTION | IOA_CLEAR_ERROR);
if ((tmp1 & VGA_ENABLE) && ((tmp1 & 0x07UL) == ropenum)) {
current |= PCI_PCI_BRIDGE_VGA_EN;
if ((mask & PCI_PCI_BRIDGE_VGA_EN) &&
@@ -316,8 +346,9 @@ ControlZX1Bridge(int bus, CARD16 mask, CARD16 value)
MIO_QUAD(VGA_ROUTE) = 0UL;
tmp3 = IOA_QUAD(tmp1 & 0x07UL, IOA_CONTROL);
if (tmp3 & IOA_FORWARD_VGA)
- IOA_QUAD(tmp1 & 0x07UL, IOA_CONTROL) =
- tmp3 & ~IOA_FORWARD_VGA;
+ IOA_QUAD(tmp1 & 0x07UL, IOA_CONTROL) = tmp3 &
+ ~(IOA_RESET_FUNCTION | IOA_FORWARD_VGA |
+ IOA_CLEAR_ERROR);
}
if (!(tmp2 & IOA_FORWARD_VGA)) {
tmp2 |= IOA_FORWARD_VGA;
@@ -330,7 +361,7 @@ ControlZX1Bridge(int bus, CARD16 mask, CARD16 value)
/* Move on to master abort failure enablement */
tmp1 = MIO_QUAD((ropenum << 3) + LBA_PORT0_CNTRL) &
- ~(LBA_ROPE_RESET | LBA_CLEAR_ERROR);
+ ~(LBA_RESET_FUNCTION | LBA_CLEAR_ERROR);
if ((tmp1 & LBA_HARD_FAIL) || (tmp2 & IOA_HARD_FAIL)) {
current |= PCI_PCI_BRIDGE_MASTER_ABORT_EN;
if ((mask & PCI_PCI_BRIDGE_MASTER_ABORT_EN) &&
@@ -521,14 +552,14 @@ xf86PreScanZX1(void)
/* Prevent hard-fails */
zx1_lbacntl[i] = MIO_QUAD((i << 3) + LBA_PORT0_CNTRL) &
- ~(LBA_ROPE_RESET | LBA_CLEAR_ERROR);
+ ~(LBA_RESET_FUNCTION | LBA_CLEAR_ERROR);
if (zx1_lbacntl[i] & LBA_HARD_FAIL)
MIO_QUAD((i << 3) + LBA_PORT0_CNTRL) =
zx1_lbacntl[i] & ~LBA_HARD_FAIL;
/* Poke for an ioa */
- tmp = IOA_LONG(i, PCI_ID_REG);
- switch ((CARD32)tmp) {
+ zx1_pciids[i] = IOA_LONG(i, PCI_ID_REG);
+ switch (zx1_pciids[i]) {
case DEVID(VENDOR_HP, CHIP_ELROY):
case DEVID(VENDOR_HP, CHIP_ZX1_LBA): /* Mercury */
case DEVID(VENDOR_HP, CHIP_ZX1_AGP8): /* QuickSilver */
@@ -540,10 +571,10 @@ xf86PreScanZX1(void)
break;
default:
- if ((CARD16)(tmp + 1U) > (CARD16)1U)
+ if ((CARD16)(zx1_pciids[i] + 1U) > (CARD16)1U)
xf86MsgVerb(X_NOTICE, 0,
"HP ZX1: Unexpected vendor/device id 0x%08X"
- " on rope %d\n", (CARD32)tmp, i);
+ " on rope %d\n", zx1_pciids[i], i);
/* Nobody home, or not the "right" kind of rope guest */
/*
@@ -907,6 +938,9 @@ xf86PostScanZX1(void)
if (!pZX1mio)
return;
+ (void)memset(zx1_busnmpt, FALSE, sizeof(zx1_busnmpt));
+ pBusInfo = pciBusInfo[0];
+
/*
* Certain 2.4 & 2.5 Linux kernels add fake PCI devices. Remove them to
* prevent any possible interference with our PCI validation.
@@ -930,6 +964,8 @@ xf86PostScanZX1(void)
*ppPCI++ = pPCI;
idx++;
+ zx1_busnmpt[pPCI->busnum] = TRUE;
+
if (zx1_hasvga)
continue;
@@ -954,8 +990,8 @@ xf86PostScanZX1(void)
}
/*
- * Restore hard-fail settings and figure out the actual subordinate bus
- * numbers.
+ * Restore hard-fail settings and figure out the actual secondary and
+ * subordinate bus numbers.
*/
for (i = 0; i < 8; i++) {
if (zx1_ropemap[i] != i)
@@ -969,6 +1005,14 @@ xf86PostScanZX1(void)
if (zx1_fakebus <= zx1_subno[i])
zx1_fakebus = zx1_subno[i] + 1;
+
+ while (!zx1_busnmpt[zx1_busno[i]]) {
+ if (zx1_busno[i]) /* Info for bus zero is in static storage */
+ xfree(pciBusInfo[zx1_busno[i]]);
+ pciBusInfo[zx1_busno[i]++] = NULL;
+ if (zx1_busno[i] > zx1_subno[i])
+ break;
+ }
}
if (zx1_fakebus >= pciNumBuses) {
@@ -978,13 +1022,13 @@ xf86PostScanZX1(void)
}
/* Set up our extra bus functions */
- zx1BusFuncs = *(pciBusInfo[0]->funcs);
+ zx1BusFuncs = *(pBusInfo->funcs);
zx1BusFuncs.pciControlBridge = ControlZX1Bridge;
zx1BusFuncs.pciGetBridgeResources = GetZX1BridgeResources;
/* Set up our own fake bus to act as the root segment */
- zx1FakeBus.configMech = pciBusInfo[0]->configMech;
- zx1FakeBus.numDevices = pciBusInfo[0]->numDevices;
+ zx1FakeBus.configMech = pBusInfo->configMech;
+ zx1FakeBus.numDevices = pBusInfo->numDevices;
zx1FakeBus.primary_bus = zx1_fakebus;
pciBusInfo[zx1_fakebus] = &zx1FakeBus;
@@ -1019,7 +1063,8 @@ xf86PostScanZX1(void)
/* Add a fake PCI-to-PCI bridge to represent each active rope */
for (i = 0; i < 8; i++) {
- if ((zx1_ropemap[i] != i) || !(pBusInfo = pciBusInfo[zx1_busno[i]]))
+ if ((zx1_ropemap[i] != i) || (zx1_busno[i] > zx1_subno[i]) ||
+ !(pBusInfo = pciBusInfo[zx1_busno[i]]))
continue;
if (++idx >= MAX_PCI_DEVICES)
@@ -1029,7 +1074,7 @@ xf86PostScanZX1(void)
pPCI->devnum = i | 0x10;
/* pPCI->funcnum = 0; */
pPCI->tag = PCI_MAKE_TAG(zx1_fakebus, pPCI->devnum, 0);
- pPCI->pci_device_vendor = DEVID(VENDOR_HP, CHIP_ZX1_LBA);
+ pPCI->pci_device_vendor = zx1_pciids[i];
pPCI->pci_base_class = PCI_CLASS_BRIDGE;
pPCI->pci_sub_class = PCI_SUBCLASS_BRIDGE_PCI;
pPCI->pci_header_type = 1;
@@ -1045,6 +1090,9 @@ xf86PostScanZX1(void)
/* Plug in chipset routines */
pBusInfo->funcs = &zx1BusFuncs;
+ /* Set bridge control register for scanpci utility */
+ pPCI->pci_bridge_control = ControlZX1Bridge(zx1_busno[i], 0, 0);
+
#ifdef OLD_FORMAT
xf86MsgVerb(X_INFO, 2, "PCI: BusID 0x%.2x,0x%02x,0x%1x "
"ID 0x%04x,0x%04x Rev 0x%02x Class 0x%02x,0x%02x\n",
diff --git a/hw/xfree86/os-support/linux/int10/linux.c b/hw/xfree86/os-support/linux/int10/linux.c
index 2f9a0f5ab..bacfa9032 100644
--- a/hw/xfree86/os-support/linux/int10/linux.c
+++ b/hw/xfree86/os-support/linux/int10/linux.c
@@ -1,5 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c,v 1.31 2003/09/24 02:43:35 dawes Exp $ */
-/* $XdotOrg$ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c,v 1.32 2004/02/05 18:24:59 eich Exp $ */
/*
* linux specific part of the int10 module
* Copyright 1999, 2000, 2001, 2002, 2003, 2004 Egbert Eich
diff --git a/hw/xfree86/os-support/linux/lnxResource.c b/hw/xfree86/os-support/linux/lnxResource.c
index 04e2f07c0..bd038351f 100644
--- a/hw/xfree86/os-support/linux/lnxResource.c
+++ b/hw/xfree86/os-support/linux/lnxResource.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c,v 3.18 2002/01/25 21:56:19 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c,v 3.19 2004/02/04 16:30:50 tsi Exp $ */
/* Resource information code */
@@ -190,7 +190,8 @@ xf86AccResFromOS(resPtr ret)
defined(__s390__) || \
defined(__hppa__)
- /* XXX this isn't exactly correct but it will get the server working
+ /*
+ * XXX this isn't exactly correct but it will get the server working
* for now until we get something better.
*/
@@ -203,7 +204,7 @@ xf86BusAccWindowsFromOS(void)
RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
ret = xf86AddResToList(ret, &range, -1);
-#ifdef __sparc__
+#if defined(__sparc__) || defined(__powerpc__)
RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock);
#else
RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
@@ -221,7 +222,7 @@ xf86PciBusAccWindowsFromOS(void)
RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
ret = xf86AddResToList(ret, &range, -1);
-#ifdef __sparc__
+#if defined(__sparc__) || defined(__powerpc__)
RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock);
#else
RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
@@ -230,7 +231,7 @@ xf86PciBusAccWindowsFromOS(void)
return ret;
}
-#ifdef INCLUDE_UNUSED */
+#ifdef INCLUDE_UNUSED
resPtr
xf86IsaBusAccWindowsFromOS(void)
@@ -241,7 +242,7 @@ xf86IsaBusAccWindowsFromOS(void)
RANGE(range, 0x00000000, 0xffffffff, ResExcMemBlock);
ret = xf86AddResToList(ret, &range, -1);
-#ifdef __sparc__
+#if defined(__sparc__) || defined(__powerpc__)
RANGE(range, 0x00000000, 0x00ffffff, ResExcIoBlock);
#else
RANGE(range, 0x00000000, 0x0000ffff, ResExcIoBlock);
@@ -267,7 +268,7 @@ xf86AccResFromOS(resPtr ret)
ret = xf86AddResToList(ret, &range, -1);
RANGE(range, 0x00000000, 0x00000000, ResExcIoBlock);
ret = xf86AddResToList(ret, &range, -1);
-#ifdef __sparc__
+#if defined(__sparc__) || defined(__powerpc__)
RANGE(range, 0x00ffffff, 0x00ffffff, ResExcIoBlock);
#else
RANGE(range, 0x0000ffff, 0x0000ffff, ResExcIoBlock);
diff --git a/hw/xfree86/os-support/misc/PortIO.S b/hw/xfree86/os-support/misc/PortIO.S
new file mode 100644
index 000000000..61aac6b89
--- /dev/null
+++ b/hw/xfree86/os-support/misc/PortIO.S
@@ -0,0 +1,57 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/misc/PortIO.S,v 1.1 2004/02/02 03:55:32 dawes Exp $ */
+
+/* Port I/O functions for platforms with no inlining. */
+
+#include "assyntax.h"
+
+ FILE("PortIO.s")
+
+ AS_BEGIN
+
+ GLOBL GLNAME(outb)
+ GLOBL GLNAME(outw)
+ GLOBL GLNAME(outl)
+ GLOBL GLNAME(inb)
+ GLOBL GLNAME(inw)
+ GLOBL GLNAME(inl)
+
+ SEG_TEXT
+ ALIGNTEXT4
+GLNAME(outb):
+ MOV_L (REGOFF(4,ESP), EDX)
+ MOV_L (REGOFF(8,ESP), EAX)
+ OUT_B
+ RET
+
+ ALIGNTEXT4
+GLNAME(outw):
+ MOV_L (REGOFF(4,ESP), EDX)
+ MOV_L (REGOFF(8,ESP), EAX)
+ OUT_W
+ RET
+
+ ALIGNTEXT4
+GLNAME(outl):
+ MOV_L (REGOFF(4,ESP), EDX)
+ MOV_L (REGOFF(8,ESP), EAX)
+ OUT_L
+ RET
+
+ ALIGNTEXT4
+GLNAME(inb):
+ MOV_L (REGOFF(4,ESP), EDX)
+ IN_B
+ RET
+
+ ALIGNTEXT4
+GLNAME(inw):
+ MOV_L (REGOFF(4,ESP), EDX)
+ IN_L
+ RET
+
+ ALIGNTEXT4
+GLNAME(inl):
+ MOV_L (REGOFF(4,ESP), EDX)
+ IN_L
+ RET
+
diff --git a/hw/xfree86/os-support/misc/SlowBcopy.c b/hw/xfree86/os-support/misc/SlowBcopy.c
index 98546b688..a9a8beae7 100644
--- a/hw/xfree86/os-support/misc/SlowBcopy.c
+++ b/hw/xfree86/os-support/misc/SlowBcopy.c
@@ -4,7 +4,7 @@
for Alpha Linux
*******************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/misc/SlowBcopy.c,v 1.6 2003/04/07 16:23:39 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/misc/SlowBcopy.c,v 1.7 2004/02/11 22:06:21 tsi Exp $ */
/*
* Create a dependency that should be immune from the effect of register
@@ -26,13 +26,13 @@
void
xf86SlowBcopy(unsigned char *src, unsigned char *dst, int len)
{
-#if defined(__ia64__)
- outb(0x80, 0x00);
-#endif
while(len--)
{
*dst++ = *src++;
-#if !defined(__sparc__) && !defined(__powerpc__) && !defined(__mips__)
+#if !defined(__sparc__) && \
+ !defined(__powerpc__) && \
+ !defined(__mips__) && \
+ !defined(__ia64__)
outb(0x80, 0x00);
#endif
}
diff --git a/hw/xfree86/scanpci/pci.ids b/hw/xfree86/scanpci/pci.ids
index eec9d74cc..a172fd690 100644
--- a/hw/xfree86/scanpci/pci.ids
+++ b/hw/xfree86/scanpci/pci.ids
@@ -7,7 +7,7 @@
# so if you have anything to contribute, please visit the home page or
# send a diff -u against the most recent pci.ids to pci-ids@ucw.cz.
#
-# Daily snapshot on Thu 2003-12-18 11:00:05
+# Daily snapshot on Sun 2004-02-15 11:00:07
#
# Vendors, devices and subsystems. Please keep sorted.
@@ -24,6 +24,12 @@
# Real TJN ID is e159, but they got it wrong several times --mj
0059 Tiger Jet Network Inc. (Wrong ID)
0070 Hauppauge computer works Inc.
+# WinTV Personal Video Recorder 350 (video capture card)
+ 4000 WinTV PVR-350
+# WinTV Personal Video Recorder 250 (video capture card) - original release
+ 4001 WinTV PVR-250 (v1)
+# WinTV Personal Video Recorder 250 (video capture card)
+ 4009 WinTV PVR-250
0100 Ncipher Corp Ltd
0675 Dynalink
1700 IS64PH ISDN Adapter
@@ -168,11 +174,36 @@
1002 ATI Technologies Inc
4136 Radeon IGP 320 M
4144 Radeon R300 AD [Radeon 9500 Pro]
- 4145 Radeon R300 AE [Radeon 9500 Pro]
- 4146 Radeon R300 AF [Radeon 9500 Pro]
+# New PCI ID provided by ATI developer relations (correction to above)
+ 4145 R300 AE [Radeon 9700 Pro]
+# New PCI ID provided by ATI developer relations (oops, correction to above)
+ 4146 R300 AF [Radeon 9700 Pro]
4147 Radeon R300 AG [FireGL Z1/X1]
+# Updated 2 letter ASIC code I initially missed in above entry submission
+ 4148 Radeon R350 AH [Radeon 9800]
+# New PCI ID provided by ATI developer relations
+ 4149 Radeon R350 AI [Radeon 9800]
+# New PCI ID provided by ATI developer relations
+ 4150 RV350 AP [Radeon 9600]
+# New PCI ID provided by ATI developer relations
+ 4151 RV350 AQ [Radeon 9600]
+# New PCI ID provided by ATI developer relations
+ 4152 RV350 AR [Radeon 9600]
4158 68800AX [Mach32]
- 4164 Radeon R300 Secondary (DVI) output
+# The PCI ID is unrelated to any DVI output.
+ 4164 R300 AD [Radeon 9500 Pro] (Secondary)
+# New PCI ID info provided by ATI developer relations
+ 4165 R300 AE [Radeon 9700 Pro] (Secondary)
+# New PCI ID info provided by ATI developer relations
+ 4166 R300 AF [Radeon 9700 Pro] (Secondary)
+# New PCI ID provided by ATI developer relations
+ 4168 Radeon R350 [Radeon 9800] (Secondary)
+# New PCI ID provided by ATI developer relations (correction to above)
+ 4170 RV350 AP [Radeon 9600] (Secondary)
+# New PCI ID provided by ATI developer relations (correction to above)
+ 4171 RV350 AQ [Radeon 9600] (Secondary)
+# New PCI ID provided by ATI developer relations (correction to above)
+ 4172 RV350 AR [Radeon 9600] (Secondary)
4242 Radeon R200 BB [Radeon All in Wonder 8500DV]
1002 02aa Radeon 8500 AIW DV Edition
4336 Radeon Mobility U1
@@ -246,20 +277,20 @@
475a 3D Rage IIC AGP
1002 0087 Rage 3D IIC
1002 475a Rage IIC AGP
- 4964 Radeon R250 Id [Radeon 9000]
- 4965 Radeon R250 Ie [Radeon 9000]
- 4966 Radeon R250 If [Radeon 9000]
- 10f1 0002 R250 If [Tachyon G9000 PRO]
- 148c 2039 R250 If [Radeon 9000 Pro "Evil Commando"]
- 1509 9a00 R250 If [Radeon 9000 "AT009"]
-# New subdevice - 3D Prophet 9000 PCI by Hercules. AGP version probably would have same ID, so not specified.
- 1681 0040 R250 If [3D prophet 9000]
- 174b 7176 R250 If [Sapphire Radeon 9000 Pro]
- 174b 7192 R250 If [Radeon 9000 "Atlantis"]
- 17af 2005 R250 If [Excalibur Radeon 9000 Pro]
- 17af 2006 R250 If [Excalibur Radeon 9000]
- 4967 Radeon R250 Ig [Radeon 9000]
- 496e Radeon R250 [Radeon 9000] (Secondary)
+ 4964 Radeon RV250 Id [Radeon 9000]
+ 4965 Radeon RV250 Ie [Radeon 9000]
+ 4966 Radeon RV250 If [Radeon 9000]
+ 10f1 0002 RV250 If [Tachyon G9000 PRO]
+ 148c 2039 RV250 If [Radeon 9000 Pro "Evil Commando"]
+ 1509 9a00 RV250 If [Radeon 9000 "AT009"]
+# New subdevice - 3D Prophet 9000 PCI by Hercules. AGP version probably would have same ID, so not specified.
+ 1681 0040 RV250 If [3D prophet 9000]
+ 174b 7176 RV250 If [Sapphire Radeon 9000 Pro]
+ 174b 7192 RV250 If [Radeon 9000 "Atlantis"]
+ 17af 2005 RV250 If [Excalibur Radeon 9000 Pro]
+ 17af 2006 RV250 If [Excalibur Radeon 9000]
+ 4967 Radeon RV250 Ig [Radeon 9000]
+ 496e Radeon RV250 [Radeon 9000] (Secondary)
4c42 3D Rage LT Pro AGP-133
0e11 b0e8 Rage 3D LT Pro
0e11 b10e 3D Rage LT Pro (Compaq Armada 1750)
@@ -312,15 +343,25 @@
4e44 Radeon R300 ND [Radeon 9700 Pro]
4e45 Radeon R300 NE [Radeon 9500 Pro]
1002 0002 Radeon R300 NE [Radeon 9500 Pro]
- 4e46 Radeon R300 NF [Radeon 9700]
+# New PCI ID provided by ATI developer relations (correction to above)
+ 4e46 RV350 NF [Radeon 9600]
4e47 Radeon R300 NG [FireGL X1]
4e48 Radeon R350 [Radeon 9800]
+# New PCI ID provided by ATI developer relations
+ 4e49 Radeon R350 [Radeon 9800]
+# New PCI ID provided by ATI developer relations
+ 4e50 RV350 [Mobility Radeon 9600 M10]
+# New PCI ID provided by ATI developer relations
+ 4e52 RV350 [Mobility Radeon 9600 M10]
4e64 Radeon R300 [Radeon 9700 Pro] (Secondary)
4e65 Radeon R300 [Radeon 9500 Pro] (Secondary)
1002 0003 Radeon R300 NE [Radeon 9500 Pro]
- 4e66 Radeon R300 [Radeon 9700] (Secondary)
+# New PCI ID provided by ATI developer relations (correction to above)
+ 4e66 RV350 NF [Radeon 9600] (Secondary)
4e67 Radeon R300 [FireGL X1] (Secondary)
4e68 Radeon R350 [Radeon 9800] (Secondary)
+# New PCI ID provided by ATI developer relations
+ 4e69 Radeon R350 [Radeon 9800] (Secondary)
5041 Rage 128 PA/PRO
5042 Rage 128 PB/PRO AGP 2x
5043 Rage 128 PC/PRO AGP 4x
@@ -3413,7 +3454,8 @@
11bd 0006 DV500 Overlay
11bd 000a DV500 Overlay
1132 Mitel Corp.
-1133 Eicon Technology Corporation
+# This is the new official company name. See disclaimer on www.eicon.com for details!
+1133 Eicon Networks Corporation
7901 EiconCard S90
7902 EiconCard S90
7911 EiconCard S91
@@ -6238,9 +6280,14 @@
16be Creatix Polymedia GmbH
16ca CENATEK Inc
0001 Rocket Drive DL
+16cd Densitron Technologies
+# www.pikatechnologies.com
+16df PIKA Technologies Inc.
16ec U.S. Robotics
3685 Wireless Access PCI Adapter Model 022415
16f6 VideoTele.com, Inc.
+# www.internetmachines.com
+1702 Internet Machines Corporation (IMC)
1705 Digital First, Inc.
170b NetOctave Inc
170c YottaYotta Inc.
@@ -6279,6 +6326,9 @@
0601 VSM2 dual PMC carrier
0710 VS14x series PowerPC PCI board
0720 VS24x series PowerPC PCI board
+# found e.g. on KNC DVB-S card
+1894 KNC One
+18fb Resilience Corporation
1a08 Sierra semiconductor
0000 SC15064
1b13 Jaton Corp
@@ -6372,6 +6422,7 @@
4033 Addtron Technology Co, Inc.
1360 RTL8139 Ethernet
4143 Digital Equipment Corp
+4144 Alpha Data
416c Aladdin Knowledge Systems
0100 AladdinCARD
0200 CPC
@@ -6569,6 +6620,7 @@
0003 TURBOstor HFP-832 [HiPPI NIC]
5654 VoiceTronix Pty Ltd
5700 Netpower
+5851 Exacq Technologies
6356 UltraStor
6374 c't Magazin für Computertechnik
6773 GPPCI
@@ -6587,6 +6639,10 @@
0008 Extended Express System Support Controller
0039 21145
0122 82437FX
+ 0326 PCI Bridge Hub I/OxAPIC Interrupt Controller A
+ 0327 PCI Bridge Hub I/OxAPIC Interrupt Controller B
+ 0329 PCI Bridge Hub A
+ 032a PCI Bridge Hub B
0482 82375EB
0483 82424ZX [Saturn]
0484 82378IB [SIO ISA Bridge]
@@ -6639,7 +6695,18 @@
8086 1002 PRO/1000 MF Server Adapter
1012 82546EB Gigabit Ethernet Controller (Fiber)
8086 1012 PRO/1000 MF Dual Port Server Adapter
+ 1013 82541EI Gigabit Ethernet Controller (Copper)
+ 1014 82541ER Gigabit Ethernet Controller
1015 82540EM Gigabit Ethernet Controller (LOM)
+ 1016 82540EP Gigabit Ethernet Controller (LOM)
+ 1017 82540EP Gigabit Ethernet Controller (LOM)
+# Update controller name from 82541EP to 82541EI
+ 1018 82541EI Gigabit Ethernet Controller
+ 1019 82547EI Gigabit Ethernet Controller (LOM)
+ 101e 82540EP Gigabit Ethernet Controller (Mobile)
+ 1026 82545GM Gigabit Ethernet Controller
+ 1027 82545GM Gigabit Ethernet Controller
+ 1028 82545GM Gigabit Ethernet Controller
1029 82559 Ethernet Controller
1030 82559 InBusiness 10/100
1031 82801CAM (ICH3) PRO/100 VE (LOM) Ethernet Controller
@@ -6667,7 +6734,21 @@
1040 536EP Data Fax Modem
16be 1040 V.9X DSP Data Fax Modem
1043 PRO/Wireless LAN 2100 3B Mini PCI Adapter
+ 1048 Intel(R) PRO/10GbE LR Server Adapter
1059 82551QM Ethernet Controller
+# Updated controller name from 82547EI to 82547GI
+ 1075 82547GI Gigabit Ethernet Controller
+# Updated controller name from 82541EI to 82541GI
+ 1076 82541GI Gigabit Ethernet Controller
+# Update controller name from 82541EI to 82541GI
+ 1077 82541GI Gigabit Ethernet Controller
+ 1078 82541EI Gigabit Ethernet Controller
+# Update from mistaken ID of 82546EB
+ 1079 82546GB Gigabit Ethernet Controller
+# Update from mistaken ID of 82546EB
+ 107a 82546GB Gigabit Ethernet Controller
+# Update from mistaken ID of 82546EB
+ 107b 82546GB Gigabit Ethernet Controller
1130 82815 815 Chipset Host Bridge and Memory Controller Hub
1025 1016 Travelmate 612 TX
1043 8027 TUSL2-C Mainboard
@@ -7069,6 +7150,7 @@
24dc 82801EB LPC Interface Controller
24dd 82801EB USB2
24de 82801EB USB
+ 24df 82801EB (ICH5R) SATA (cc=RAID)
2500 82820 820 (Camino) Chipset Host Bridge (MCH)
1028 0095 Precision Workstation 220 Chipset
1043 801c P3C-2000 system chipset
@@ -7109,12 +7191,26 @@
2571 82865G/PE/P Processor to AGP Controller
2572 82865G Integrated Graphics Device
2573 82865G/PE/P Processor to PCI to CSA Bridge
- 2576 82864G/PE/P Processor to I/O Memory Interface
+ 2576 82865G/PE/P Processor to I/O Memory Interface
2578 82875P Memory Controller Hub
2579 82875P Processor to AGP Controller
257b 82875P Processor to PCI to CSA Bridge
257e 82875P Processor to I/O Memory Interface
+ 25a1 Enterprise Southbridge ISA Bridge
+ 25a2 Enterprise Southbridge PATA
+ 25a3 Enterprise Southbridge SATA cc=IDE
+ 25a4 Enterprise Southbridge SMBUS
+ 25a6 Enterprise Southbridge AC'97 Audio
+ 25a7 Enterprise Southbridge AC'97 Modem
+ 25a9 Enterprise Southbridge USB 1.1 UHCI
+ 25aa Enterprise Southbridge USB 1.1 UHCI
+ 25ab Enterprise Southbridge Watchdog Timer
+ 25ac Enterprise Southbridge IOxAPIC
+ 25ad Enterprise Southbridge USB 2.0 EHCI
+ 25ae Enterprise Southbridge Hublink PCI-X Bridge
+ 25b0 Enterprise Southbridge SATA cc=RAID
3092 Integrated RAID
+ 3200 GD31244 PCI-X SATA HBA
3340 82855PM Processor to I/O Controller
3341 82855PM Processor to AGP Controller
3575 82830 830 Chipset Host Bridge
@@ -7126,6 +7222,18 @@
3578 82830 830 Chipset Host Bridge
3580 82852/855GM Host Bridge
3582 82852/855GM Integrated Graphics Device
+ 3590 Server Memory Controller Hub
+ 3591 Memory Controller Hub Error Reporting Register
+ 3592 Server Memory Controller Hub
+ 3594 Memory Controller Hub DMA Controller
+ 3595 Memory Controller Hub PCI Express Port A0
+ 3596 Memory Controller Hub PCI Express Port A1
+ 3597 Memory Controller Hub PCI Express Port B0
+ 3598 Memory Controller Hub PCI Express Port B1
+ 3599 Memory Controller Hub PCI Express Port C0
+ 359a Memory Controller Hub PCI Express Port C1
+ 359b Memory Controller Hub Extended Configuration Registers
+ 359e Workstation Memory Controller Hub
5200 EtherExpress PRO/100 Intelligent Server
5201 EtherExpress PRO/100 Intelligent Server
8086 0001 EtherExpress PRO/100 Server Ethernet Adapter
@@ -7431,12 +7539,15 @@ d84d Exsys
dead Indigita Corporation
e000 Winbond
e000 W89C940
-e159 Tiger Jet Network Inc.
+# see : http://www.schoenfeld.de/inside/Inside_CWMK3.txt
+e159 Individual Computers - Jens Schoenfeld
0001 Intel 537
0059 0001 128k ISDN-S/T Adapter
0059 0003 128k ISDN-U Adapter
0002 Tiger100APC ISDN chipset
e4bf EKF Elektronik GmbH
+# Innovative and scalable network IC vendor
+e55e Essence Technology, Inc.
ea01 Eagle Technology
# The main chip of all these devices is by Xilinx -> It could also be a Xilinx ID.
ea60 RME
@@ -7481,6 +7592,8 @@ febd Ultraview Corp.
feda Broadcom Inc (nee Epigram)
a0fa BCM4210 iLine10 HomePNA 2.0
a10e BCM4230 iLine10 HomePNA 2.0
+# IT & Telecom company, develops PCI Trunk cards <www.fedetec.es>
+fede Fedetec Inc.
fffe VMWare Inc
0710 Virtual SVGA
ffff Illegal Vendor ID
diff --git a/hw/xfree86/utils/ioport/ioport.c b/hw/xfree86/utils/ioport/ioport.c
index 4bb20ef1b..b977936d3 100644
--- a/hw/xfree86/utils/ioport/ioport.c
+++ b/hw/xfree86/utils/ioport/ioport.c
@@ -1,6 +1,6 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/ioport.c,v 1.4 2003/01/01 19:16:41 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/etc/ioport.c,v 1.5 2004/01/05 16:42:10 tsi Exp $ */
/*
- * Copyright 2002 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 2002 through 2004 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
diff --git a/hw/xfree86/utils/xorgcfg/config.h b/hw/xfree86/utils/xorgcfg/config.h
index 0853b67fa..aa38d520f 100644
--- a/hw/xfree86/utils/xorgcfg/config.h
+++ b/hw/xfree86/utils/xorgcfg/config.h
@@ -26,8 +26,7 @@
*
* Author: Paulo César Pereira de Andrade <pcpa@conectiva.com.br>
*
- * $XdotOrg: xc/programs/Xserver/hw/xfree86/xf86cfg/config.h,v 1.18 2003/12/19 02:05:38 dawes Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/config.h,v 1.18 2003/12/19 02:05:38 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/xf86cfg/config.h,v 1.22 2004/02/14 17:53:49 dawes Exp $
*/
#include <X11/IntrinsicP.h>
@@ -38,10 +37,12 @@
#include <stdlib.h>
#include <dirent.h>
#include <string.h>
-#include <unistd.h>
-#if defined(sun) && defined(SVR4)
+#ifdef sun
+#undef index
+#undef rindex
#include <strings.h>
#endif
+#include <unistd.h>
#include <stdarg.h>
diff --git a/hw/xfree86/vbe/vbe.h b/hw/xfree86/vbe/vbe.h
index f3af4ff52..3a1b48749 100644
--- a/hw/xfree86/vbe/vbe.h
+++ b/hw/xfree86/vbe/vbe.h
@@ -1,5 +1,4 @@
-/* $XdotOrg$ */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/vbe/vbe.h,v 1.3 2003/11/14 14:58:45 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/vbe/vbe.h,v 1.5 2004/02/02 03:55:32 dawes Exp $ */
/*
* XFree86 vbe module
@@ -61,7 +60,8 @@ typedef struct vbeControllerInfoBlock {
CARD8 OemData[256];
} vbeControllerInfoRec, *vbeControllerInfoPtr;
-#if defined(__GNUC__) || defined(__SUNPRO_C)
+#if defined(__GNUC__) || defined(SCO) || defined(__USLC__) || \
+ defined(__SUNPRO_C)
#pragma pack() /* All GCC versions recognise this syntax */
#else
#pragma pack(0)
diff --git a/hw/xfree86/vgahw/vgaHW.c b/hw/xfree86/vgahw/vgaHW.c
index e1fd9716a..b8bcbdba9 100644
--- a/hw/xfree86/vgahw/vgaHW.c
+++ b/hw/xfree86/vgahw/vgaHW.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.c,v 1.58 2003/11/03 05:11:53 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/vgahw/vgaHW.c,v 1.59 2004/02/11 22:06:22 tsi Exp $ */
/*
*
@@ -764,6 +764,11 @@ vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
#if 0
hwp->writeAttr(hwp, 0x10, 0x01); /* graphics mode */
#endif
+
+ hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
+ hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
+ hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
+
if (scrninfp->depth == 4) {
/* GJA */
hwp->writeGr(hwp, 0x03, 0x00); /* don't rotate, write unmodified */
@@ -774,10 +779,7 @@ vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
#ifdef SAVE_FONT1
if (hwp->FontInfo1) {
hwp->writeSeq(hwp, 0x02, 0x04); /* write to plane 2 */
- hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x02); /* read plane 2 */
- hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
- hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_tobus(hwp->FontInfo1, hwp->Base, FONT_AMOUNT);
}
#endif
@@ -785,10 +787,7 @@ vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
#ifdef SAVE_FONT2
if (hwp->FontInfo2) {
hwp->writeSeq(hwp, 0x02, 0x08); /* write to plane 3 */
- hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x03); /* read plane 3 */
- hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
- hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_tobus(hwp->FontInfo2, hwp->Base, FONT_AMOUNT);
}
#endif
@@ -796,16 +795,10 @@ vgaHWRestoreFonts(ScrnInfoPtr scrninfp, vgaRegPtr restore)
#ifdef SAVE_TEXT
if (hwp->TextInfo) {
hwp->writeSeq(hwp, 0x02, 0x01); /* write to plane 0 */
- hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x00); /* read plane 0 */
- hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
- hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_tobus(hwp->TextInfo, hwp->Base, TEXT_AMOUNT);
hwp->writeSeq(hwp, 0x02, 0x02); /* write to plane 1 */
- hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x01); /* read plane 1 */
- hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
- hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_tobus((unsigned char *)hwp->TextInfo + TEXT_AMOUNT,
hwp->Base, TEXT_AMOUNT);
}
@@ -849,8 +842,7 @@ vgaHWRestoreMode(ScrnInfoPtr scrninfp, vgaRegPtr restore)
for (i = 1; i < restore->numSequencer; i++)
hwp->writeSeq(hwp, i, restore->Sequencer[i]);
- /* Ensure CRTC registers 0-7 are unlocked by clearing bit 7 or CRTC[17] */
-
+ /* Ensure CRTC registers 0-7 are unlocked by clearing bit 7 of CRTC[17] */
hwp->writeCrtc(hwp, 17, restore->CRTC[17] & ~0x80);
for (i = 0; i < restore->numCRTC; i++)
@@ -958,39 +950,32 @@ vgaHWSaveFonts(ScrnInfoPtr scrninfp, vgaRegPtr save)
#if 0
hwp->writeAttr(hwp, 0x10, 0x01); /* graphics mode */
#endif
+
+ hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
+ hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
+ hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
+
#ifdef SAVE_FONT1
if (hwp->FontInfo1 || (hwp->FontInfo1 = xalloc(FONT_AMOUNT))) {
hwp->writeSeq(hwp, 0x02, 0x04); /* write to plane 2 */
- hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x02); /* read plane 2 */
- hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
- hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_frombus(hwp->Base, hwp->FontInfo1, FONT_AMOUNT);
}
#endif /* SAVE_FONT1 */
#ifdef SAVE_FONT2
if (hwp->FontInfo2 || (hwp->FontInfo2 = xalloc(FONT_AMOUNT))) {
hwp->writeSeq(hwp, 0x02, 0x08); /* write to plane 3 */
- hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x03); /* read plane 3 */
- hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
- hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_frombus(hwp->Base, hwp->FontInfo2, FONT_AMOUNT);
}
#endif /* SAVE_FONT2 */
#ifdef SAVE_TEXT
if (hwp->TextInfo || (hwp->TextInfo = xalloc(2 * TEXT_AMOUNT))) {
hwp->writeSeq(hwp, 0x02, 0x01); /* write to plane 0 */
- hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x00); /* read plane 0 */
- hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
- hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_frombus(hwp->Base, hwp->TextInfo, TEXT_AMOUNT);
hwp->writeSeq(hwp, 0x02, 0x02); /* write to plane 1 */
- hwp->writeSeq(hwp, 0x04, 0x06); /* enable plane graphics */
hwp->writeGr(hwp, 0x04, 0x01); /* read plane 1 */
- hwp->writeGr(hwp, 0x05, 0x00); /* write mode 0, read mode 0 */
- hwp->writeGr(hwp, 0x06, 0x05); /* set graphics */
slowbcopy_frombus(hwp->Base,
(unsigned char *)hwp->TextInfo + TEXT_AMOUNT, TEXT_AMOUNT);
}
@@ -1476,7 +1461,7 @@ vgaHWVBlankKGA(DisplayModePtr mode, vgaRegPtr regp, int nBits,
regp->CRTC[22] = i & 0xFF;
ExtBits = i & 0xFF00;
}
- return ExtBits >> 8;
+ return ExtBits >> 8;
}
/*
diff --git a/hw/xfree86/x86emu/ops2.c b/hw/xfree86/x86emu/ops2.c
index 55f361677..47c49ad52 100644
--- a/hw/xfree86/x86emu/ops2.c
+++ b/hw/xfree86/x86emu/ops2.c
@@ -37,7 +37,7 @@
* instructions.
*
****************************************************************************/
-/* $XFree86: xc/extras/x86emu/src/x86emu/ops2.c,v 1.6 2003/10/22 20:03:06 tsi Exp $ */
+/* $XFree86: xc/extras/x86emu/src/x86emu/ops2.c,v 1.7 2004/02/06 17:15:28 tsi Exp $ */
#include "x86emu/x86emui.h"
@@ -1746,16 +1746,16 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
START_OF_INSTR();
FETCH_DECODE_MODRM(mod, rh, rl);
switch (rh) {
- case 3:
+ case 4:
DECODE_PRINTF("BT\t");
break;
- case 4:
+ case 5:
DECODE_PRINTF("BTS\t");
break;
- case 5:
+ case 6:
DECODE_PRINTF("BTR\t");
break;
- case 6:
+ case 7:
DECODE_PRINTF("BTC\t");
break;
default:
@@ -1780,13 +1780,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
- case 4:
+ case 5:
store_data_long(srcoffset, srcval | mask);
break;
- case 5:
+ case 6:
store_data_long(srcoffset, srcval & ~mask);
break;
- case 6:
+ case 7:
store_data_long(srcoffset, srcval ^ mask);
break;
default:
@@ -1805,13 +1805,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
- case 4:
+ case 5:
store_data_word(srcoffset, srcval | mask);
break;
- case 5:
+ case 6:
store_data_word(srcoffset, srcval & ~mask);
break;
- case 6:
+ case 7:
store_data_word(srcoffset, srcval ^ mask);
break;
default:
@@ -1833,13 +1833,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
- case 4:
+ case 5:
store_data_long(srcoffset, srcval | mask);
break;
- case 5:
+ case 6:
store_data_long(srcoffset, srcval & ~mask);
break;
- case 6:
+ case 7:
store_data_long(srcoffset, srcval ^ mask);
break;
default:
@@ -1858,13 +1858,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
- case 4:
+ case 5:
store_data_word(srcoffset, srcval | mask);
break;
- case 5:
+ case 6:
store_data_word(srcoffset, srcval & ~mask);
break;
- case 6:
+ case 7:
store_data_word(srcoffset, srcval ^ mask);
break;
default:
@@ -1886,13 +1886,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
- case 4:
+ case 5:
store_data_long(srcoffset, srcval | mask);
break;
- case 5:
+ case 6:
store_data_long(srcoffset, srcval & ~mask);
break;
- case 6:
+ case 7:
store_data_long(srcoffset, srcval ^ mask);
break;
default:
@@ -1911,13 +1911,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(srcval & mask,F_CF);
switch (rh) {
- case 4:
+ case 5:
store_data_word(srcoffset, srcval | mask);
break;
- case 5:
+ case 6:
store_data_word(srcoffset, srcval & ~mask);
break;
- case 6:
+ case 7:
store_data_word(srcoffset, srcval ^ mask);
break;
default:
@@ -1939,13 +1939,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
switch (rh) {
- case 4:
+ case 5:
*srcreg |= mask;
break;
- case 5:
+ case 6:
*srcreg &= ~mask;
break;
- case 6:
+ case 7:
*srcreg ^= mask;
break;
default:
@@ -1964,13 +1964,13 @@ static void x86emuOp2_btX_I(u8 X86EMU_UNUSED(op2))
mask = (0x1 << bit);
CONDITIONAL_SET_FLAG(*srcreg & mask,F_CF);
switch (rh) {
- case 4:
+ case 5:
*srcreg |= mask;
break;
- case 5:
+ case 6:
*srcreg &= ~mask;
break;
- case 6:
+ case 7:
*srcreg ^= mask;
break;
default:
diff --git a/hw/xfree86/xaa/xaaPict.c b/hw/xfree86/xaa/xaaPict.c
index fecbbcfa0..ce72d742c 100644
--- a/hw/xfree86/xaa/xaaPict.c
+++ b/hw/xfree86/xaa/xaaPict.c
@@ -1,5 +1,5 @@
/*
- * $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaPict.c,v 1.18 2003/04/23 18:35:34 eich Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaPict.c,v 1.19 2004/01/26 18:54:55 mvojkovi Exp $
*
* Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
*
@@ -219,6 +219,9 @@ XAADoComposite (
ySrc += pSrc->pDrawable->y;
if(pMask) {
+ if(pMask->componentAlpha)
+ return FALSE;
+
/* for now we only do it if there is a 1x1 (solid) source */
if((pSrc->pDrawable->width == 1) && (pSrc->pDrawable->height == 1)) {
diff --git a/hw/xwin/winmultiwindowshape.c b/hw/xwin/winmultiwindowshape.c
index 5c623d14e..2d6a6f2cc 100755
--- a/hw/xwin/winmultiwindowshape.c
+++ b/hw/xwin/winmultiwindowshape.c
@@ -28,7 +28,7 @@
* Authors: Kensuke Matsuzaki
* Harold L Hunt II
*/
-/* $XFree86: xc/programs/Xserver/hw/xwin/winmultiwindowshape.c,v 1.2 2003/11/10 18:22:44 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xwin/winmultiwindowshape.c,v 1.3 2003/12/22 01:34:20 dickey Exp $ */
#ifdef SHAPE
@@ -117,9 +117,9 @@ winReshapeMultiWindow (WindowPtr pWin)
if (!wBoundingShape (pWin))
return;
- REGION_NULL(pScreen, &rrNewShape);
- REGION_COPY(pScreen, &rrNewShape, wBoundingShape(pWin));
- REGION_TRANSLATE(pScreen,
+ REGION_NULL(pWin->drawable.pScreen, &rrNewShape);
+ REGION_COPY(pWin->drawable.pScreen, &rrNewShape, wBoundingShape(pWin));
+ REGION_TRANSLATE(pWin->drawable.pScreen,
&rrNewShape,
pWin->borderWidth,
pWin->borderWidth);
@@ -138,7 +138,7 @@ winReshapeMultiWindow (WindowPtr pWin)
if (!GetClientRect (pWinPriv->hWnd, &rcClient))
{
ErrorF ("winReshape - GetClientRect failed, bailing: %d\n",
- GetLastError ());
+ (int) GetLastError ());
return;
}
@@ -150,7 +150,7 @@ winReshapeMultiWindow (WindowPtr pWin)
if (!GetWindowRect (pWinPriv->hWnd, &rcWindow))
{
ErrorF ("winReshape - GetWindowRect failed, bailing: %d\n",
- GetLastError ());
+ (int) GetLastError ());
return;
}
@@ -165,7 +165,7 @@ winReshapeMultiWindow (WindowPtr pWin)
{
ErrorF ("winReshape - Initial CreateRectRgn (%d, %d, %d, %d) "
"failed: %d\n",
- 0, 0, rcWindow.right, iOffsetY, GetLastError ());
+ 0, 0, (int) rcWindow.right, iOffsetY, (int) GetLastError ());
}
/* Loop through all rectangles in the X region */
@@ -185,7 +185,7 @@ winReshapeMultiWindow (WindowPtr pWin)
pRects->y1 + iOffsetY - 1,
pRects->x2 + iOffsetX - 1,
pRects->y2 + iOffsetY - 1,
- GetLastError (),
+ (int) GetLastError (),
pRects->x1, pRects->x2, iOffsetX,
pRects->y1, pRects->y2, iOffsetY);
}
@@ -194,7 +194,7 @@ winReshapeMultiWindow (WindowPtr pWin)
if (CombineRgn (hRgn, hRgn, hRgnRect, RGN_OR) == ERROR)
{
ErrorF ("winReshape - CombineRgn () failed: %d\n",
- GetLastError ());
+ (int) GetLastError ());
}
/* Delete the temporary Windows region */
@@ -205,7 +205,7 @@ winReshapeMultiWindow (WindowPtr pWin)
pWinPriv->hRgn = hRgn;
}
- REGION_UNINIT(pScreen, &rrNewShape);
+ REGION_UNINIT(pWin->drawable.pScreen, &rrNewShape);
return;
}
diff --git a/hw/xwin/winwindow.c b/hw/xwin/winwindow.c
index 6515c8596..76dfc5d89 100644
--- a/hw/xwin/winwindow.c
+++ b/hw/xwin/winwindow.c
@@ -28,7 +28,7 @@
* Authors: Harold L Hunt II
* Kensuke Matsuzaki
*/
-/* $XFree86: xc/programs/Xserver/hw/xwin/winwindow.c,v 1.9 2003/11/10 18:22:44 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xwin/winwindow.c,v 1.10 2003/12/22 01:34:20 dickey Exp $ */
#include "win.h"
@@ -98,7 +98,7 @@ winCopyWindowNativeGDI (WindowPtr pWin,
int dx, dy;
int i, nbox;
WindowPtr pwinRoot;
- BoxPtr pBoxDst, pBoxSrc;
+ BoxPtr pBoxDst;
ScreenPtr pScreen = pWin->drawable.pScreen;
winScreenPriv(pScreen);
@@ -465,9 +465,7 @@ void
winReshapePRootless (WindowPtr pWin)
{
int nRects;
-#if 0
ScreenPtr pScreen = pWin->drawable.pScreen;
-#endif
RegionRec rrNewShape;
BoxPtr pShape, pRects, pEnd;
HRGN hRgn, hRgnRect;
diff --git a/mi/mibank.c b/mi/mibank.c
index cc2796edb..11708434c 100644
--- a/mi/mibank.c
+++ b/mi/mibank.c
@@ -1,5 +1,5 @@
/*
- * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2004 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
@@ -44,7 +44,7 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/mi/mibank.c,v 1.15 2003/11/10 18:39:16 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/mi/mibank.c,v 1.16 2004/01/05 16:42:10 tsi Exp $ */
/*
* This thing originated from an idea of Edwin Goei and his bank switching
diff --git a/mi/mibank.h b/mi/mibank.h
index c3aa69379..eac53db20 100644
--- a/mi/mibank.h
+++ b/mi/mibank.h
@@ -1,5 +1,5 @@
/*
- * Copyright 1997 through 2003 by Marc Aurele La France (TSI @ UQV), tsi@xfree86.org
+ * Copyright 1997 through 2004 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
@@ -20,7 +20,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/mi/mibank.h,v 1.10 2003/01/01 19:16:42 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/mi/mibank.h,v 1.11 2004/01/05 16:42:10 tsi Exp $ */
#ifndef __MIBANK_H__
#define __MIBANK_H__ 1
diff --git a/miext/rootless/safeAlpha/safeAlpha.h b/miext/rootless/safeAlpha/safeAlpha.h
index 440a5ecc9..90efec5c8 100644
--- a/miext/rootless/safeAlpha/safeAlpha.h
+++ b/miext/rootless/safeAlpha/safeAlpha.h
@@ -26,13 +26,12 @@
* 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/miext/rootless/safeAlpha/safeAlpha.h,v 1.2 2003/10/18 00:00:34 torrey Exp $ */
+/* $XFree86: xc/programs/Xserver/miext/rootless/safeAlpha/safeAlpha.h,v 1.3 2004/01/19 01:22:48 torrey Exp $ */
#ifndef _SAFEALPHA_H
#define _SAFEALPHA_H
#include "picturestr.h"
-#include "rootlessCommon.h"
void SafeAlphaPaintWindow(WindowPtr pWin, RegionPtr pRegion, int what);
diff --git a/miext/rootless/safeAlpha/safeAlphaPicture.c b/miext/rootless/safeAlpha/safeAlphaPicture.c
index ad9360c7e..3c9d39628 100644
--- a/miext/rootless/safeAlpha/safeAlphaPicture.c
+++ b/miext/rootless/safeAlpha/safeAlphaPicture.c
@@ -32,7 +32,7 @@
*
* Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
*/
- /* $XFree86: xc/programs/Xserver/miext/rootless/safeAlpha/safeAlphaPicture.c,v 1.3 2003/10/24 00:33:15 torrey Exp $ */
+ /* $XFree86: xc/programs/Xserver/miext/rootless/safeAlpha/safeAlphaPicture.c,v 1.4 2004/01/19 01:22:48 torrey Exp $ */
#ifdef RENDER
@@ -41,6 +41,7 @@
#include "mipict.h"
#include "fbpict.h"
#include "safeAlpha.h"
+#include "rootlessCommon.h"
# define mod(a,b) ((b) == 1 ? 0 : (a) >= 0 ? (a) % (b) : (b) - (-a) % (b))
diff --git a/miext/rootless/safeAlpha/safeAlphaWindow.c b/miext/rootless/safeAlpha/safeAlphaWindow.c
index f5f445f0c..381380e50 100644
--- a/miext/rootless/safeAlpha/safeAlphaWindow.c
+++ b/miext/rootless/safeAlpha/safeAlphaWindow.c
@@ -1,4 +1,4 @@
-/* $XdotOrg$ */
+/* $XdotOrg: xc/programs/Xserver/miext/rootless/safeAlpha/safeAlphaWindow.c,v 1.1.4.1 2003/12/18 19:29:15 kaleb Exp $ */
/*
* Specialized window functions to protect the alpha channel
*/
@@ -32,10 +32,11 @@
*
* Copyright © 1998 Keith Packard
*/
-/* $XFree86: xc/programs/Xserver/miext/rootless/safeAlpha/safeAlphaWindow.c,v 1.1 2003/09/16 00:36:20 torrey Exp $ */
+/* $XFree86: xc/programs/Xserver/miext/rootless/safeAlpha/safeAlphaWindow.c,v 1.2 2004/01/19 01:22:48 torrey Exp $ */
#include "fb.h"
#include "safeAlpha.h"
+#include "rootlessCommon.h"
#ifdef XINERAMA
#include "xinerama.h"
diff --git a/os/access.c b/os/access.c
index 77dcebe20..14b61839c 100644
--- a/os/access.c
+++ b/os/access.c
@@ -45,7 +45,7 @@ ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
SOFTWARE.
******************************************************************/
-/* $XFree86: xc/programs/Xserver/os/access.c,v 3.50 2003/11/03 05:12:00 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/os/access.c,v 3.54 2004/01/03 17:38:39 herrb Exp $ */
#ifdef WIN32
#include <X11/Xwinsock.h>
@@ -645,6 +645,20 @@ DefineLocalHost:
#include <arpa/inet.h>
#endif
+#if defined(IPv6) && defined(AF_INET6)
+static void
+in6_fillscopeid(struct sockaddr_in6 *sin6)
+{
+#if defined(__KAME__)
+ if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) {
+ sin6->sin6_scope_id =
+ ntohs(*(u_int16_t *)&sin6->sin6_addr.s6_addr[2]);
+ sin6->sin6_addr.s6_addr[2] = sin6->sin6_addr.s6_addr[3] = 0;
+ }
+#endif
+}
+#endif
+
void
DefineSelf (int fd)
{
@@ -761,6 +775,10 @@ DefineSelf (int fd)
#endif /* DNETCONN */
if (family == -1 || family == FamilyLocal)
continue;
+#if defined(IPv6) && defined(AF_INET6)
+ if (family == FamilyInternet6)
+ in6_fillscopeid((struct sockaddr_in6 *)&IFR_IFR_ADDR);
+#endif
#ifdef DEF_SELF_DEBUG
if (family == FamilyInternet)
ErrorF("Xserver: DefineSelf(): ifname = %s, addr = %d.%d.%d.%d\n",
@@ -898,10 +916,24 @@ DefineSelf (int fd)
family = ConvertAddr(ifr->ifa_addr, &len, (pointer *)&addr);
if (family == -1 || family == FamilyLocal)
continue;
+#if defined(IPv6) && defined(AF_INET6)
+ if (family == FamilyInternet6)
+ in6_fillscopeid((struct sockaddr_in6 *)ifr->ifa_addr);
+#endif
+
#ifdef DEF_SELF_DEBUG
if (family == FamilyInternet)
ErrorF("Xserver: DefineSelf(): ifname = %s, addr = %d.%d.%d.%d\n",
ifr->ifa_name, addr[0], addr[1], addr[2], addr[3]);
+#if defined(IPv6) && defined(AF_INET6)
+ else if (family == FamilyInternet6) {
+ char cp[INET6_ADDRSTRLEN];
+
+ inet_ntop(AF_INET6, addr, cp, sizeof(cp));
+ ErrorF("Xserver: DefineSelf(): ifname = %s addr = %s\n",
+ ifr->ifa_name, cp);
+ }
+#endif
#endif /* DEF_SELF_DEBUG */
for (host = selfhosts;
host != NULL && !addrEqual(family, addr, len, host);
@@ -923,17 +955,34 @@ DefineSelf (int fd)
/*
* If this isn't an Internet Address, don't register it.
*/
- if (family != FamilyInternet)
+ if (family != FamilyInternet
+#if defined(IPv6) && defined(AF_INET6)
+ && family != FamilyInternet6
+#endif
+ )
continue;
/*
- * ignore 'localhost' entries as they're not usefule
+ * ignore 'localhost' entries as they're not useful
* on the other end of the wire
*/
- if (len == 4 &&
+ if (ifr->ifa_flags & IFF_LOOPBACK)
+ continue;
+
+ if (family == FamilyInternet &&
addr[0] == 127 && addr[1] == 0 &&
- addr[2] == 0 && addr[2] == 1)
+ addr[2] == 0 && addr[3] == 1)
continue;
+#if defined(IPv6) && defined(AF_INET6)
+ else if (family == FamilyInternet6 &&
+ IN6_IS_ADDR_LOOPBACK((struct in6_addr *)addr))
+ continue;
+#endif
XdmcpRegisterConnection(family, (char *)addr, len);
+#if defined(IPv6) && defined(AF_INET6)
+ if (family == FamilyInternet6)
+ /* IPv6 doesn't support broadcasting, so we drop out here */
+ continue;
+#endif
if ((ifr->ifa_flags & IFF_BROADCAST) &&
(ifr->ifa_flags & IFF_UP))
broad_addr = *ifr->ifa_broadaddr;
diff --git a/os/utils.c b/os/utils.c
index c10fad5ae..d0bd334fa 100644
--- a/os/utils.c
+++ b/os/utils.c
@@ -1,4 +1,4 @@
-/* $XdotOrg: utils.c,v 1.5 2001/02/09 02:05:24 xorgcvs Exp $ */
+/* $XdotOrg: xc/programs/Xserver/os/utils.c,v 1.1.4.4 2003/12/18 19:29:15 kaleb Exp $ */
/* $Xorg: utils.c,v 1.5 2001/02/09 02:05:24 xorgcvs Exp $ */
/*
@@ -50,7 +50,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/os/utils.c,v 3.95 2003/10/01 18:36:38 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/os/utils.c,v 3.97 2004/01/09 00:35:06 dawes Exp $ */
#ifdef __CYGWIN__
#include <stdlib.h>
@@ -245,6 +245,7 @@ LockServer(void)
int lfd, i, haslock, l_pid, t;
char *tmppath = NULL;
int len;
+ char port[20];
if (nolock) return;
/*
@@ -259,13 +260,14 @@ LockServer(void)
FatalError("No TMP dir found\n");
#endif
+ sprintf(port, "%d", atoi(display));
len = strlen(LOCK_PREFIX) > strlen(LOCK_TMP_PREFIX) ? strlen(LOCK_PREFIX) :
strlen(LOCK_TMP_PREFIX);
- len += strlen(tmppath) + strlen(display) + strlen(LOCK_SUFFIX) + 1;
+ len += strlen(tmppath) + strlen(port) + strlen(LOCK_SUFFIX) + 1;
if (len > sizeof(LockFile))
- FatalError("Display name `%s' is too long\n", display);
- (void)sprintf(tmp, "%s" LOCK_TMP_PREFIX "%s" LOCK_SUFFIX, tmppath, display);
- (void)sprintf(LockFile, "%s" LOCK_PREFIX "%s" LOCK_SUFFIX, tmppath, display);
+ FatalError("Display name `%s' is too long\n", port);
+ (void)sprintf(tmp, "%s" LOCK_TMP_PREFIX "%s" LOCK_SUFFIX, tmppath, port);
+ (void)sprintf(LockFile, "%s" LOCK_PREFIX "%s" LOCK_SUFFIX, tmppath, port);
/*
* Create a temporary file containing our PID. Attempt three times
@@ -360,7 +362,7 @@ LockServer(void)
*/
unlink(tmp);
FatalError("Server is already active for display %s\n%s %s\n%s\n",
- display, "\tIf this server is no longer running, remove",
+ port, "\tIf this server is no longer running, remove",
LockFile, "\tand start again.");
}
}
@@ -585,8 +587,10 @@ ProcessCommandLine(int argc, char *argv[])
defaultKeyboardControl.autoRepeat = TRUE;
-#ifdef PART_NET
- PartialNetwork = TRUE;
+#ifdef NO_PART_NET
+ PartialNetwork = FALSE;
+#else
+ PartialNetwork = TRUE;
#endif
for ( i = 1; i < argc; i++ )
diff --git a/os/xdmcp.c b/os/xdmcp.c
index a949d2d10..0f321a46a 100644
--- a/os/xdmcp.c
+++ b/os/xdmcp.c
@@ -1,4 +1,4 @@
-/* $XdotOrg: xdmcp.c,v 1.4 2001/01/31 13:37:19 pookie Exp $ */
+/* $XdotOrg: xc/programs/Xserver/os/xdmcp.c,v 1.1.4.4 2003/12/06 13:24:29 kaleb Exp $ */
/* $Xorg: xdmcp.c,v 1.4 2001/01/31 13:37:19 pookie Exp $ */
/*
* Copyright 1989 Network Computing Devices, Inc., Mountain View, California.
@@ -14,7 +14,7 @@
* without express or implied warranty.
*
*/
-/* $XFree86: xc/programs/Xserver/os/xdmcp.c,v 3.29 2003/11/22 04:51:02 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/os/xdmcp.c,v 3.32 2004/01/01 17:09:29 herrb Exp $ */
#ifdef WIN32
/* avoid conflicting definitions */
@@ -759,14 +759,6 @@ XdmcpSelectHost(
int host_len,
ARRAY8Ptr AuthenticationName)
{
-#if defined(IPv6) && defined(AF_INET6)
- /* Don't need list of addresses for host anymore */
- if (mgrAddrFirst != NULL) {
- freeaddrinfo(mgrAddrFirst);
- mgrAddrFirst = NULL;
- mgrAddr = NULL;
- }
-#endif
state = XDM_START_CONNECTION;
memmove(&req_sockaddr, host_sockaddr, host_len);
req_socklen = host_len;
@@ -1162,7 +1154,7 @@ send_query_msg(void)
socketfd = xdmcpSocket6;
#endif
XdmcpFlush (socketfd, &buffer, (XdmcpNetaddr) &ManagerAddress,
- sizeof (ManagerAddress));
+ ManagerAddressLen);
}
}
@@ -1214,9 +1206,19 @@ send_request_msg(void)
XdmcpHeader header;
int length;
int i;
+ CARD16 XdmcpConnectionType;
ARRAY8 authenticationData;
int socketfd = xdmcpSocket;
+ switch (SOCKADDR_FAMILY(ManagerAddress))
+ {
+ case AF_INET: XdmcpConnectionType=FamilyInternet; break;
+#if defined(IPv6) && defined(AF_INET6)
+ case AF_INET6: XdmcpConnectionType=FamilyInternet6; break;
+#endif
+ default: XdmcpConnectionType=0xffff; break;
+ }
+
header.version = XDM_PROTOCOL_VERSION;
header.opcode = (CARD16) REQUEST;
@@ -1247,8 +1249,27 @@ send_request_msg(void)
return;
}
XdmcpWriteCARD16 (&buffer, DisplayNumber);
- XdmcpWriteARRAY16 (&buffer, &ConnectionTypes);
- XdmcpWriteARRAYofARRAY8 (&buffer, &ConnectionAddresses);
+ XdmcpWriteCARD8 (&buffer, ConnectionTypes.length);
+
+ /* The connection array is send reordered, so that connections of */
+ /* the same address type as the XDMCP manager connection are send */
+ /* first. This works around a bug in xdm. mario@klebsch.de */
+ for (i = 0; i < (int)ConnectionTypes.length; i++)
+ if (ConnectionTypes.data[i]==XdmcpConnectionType)
+ XdmcpWriteCARD16 (&buffer, ConnectionTypes.data[i]);
+ for (i = 0; i < (int)ConnectionTypes.length; i++)
+ if (ConnectionTypes.data[i]!=XdmcpConnectionType)
+ XdmcpWriteCARD16 (&buffer, ConnectionTypes.data[i]);
+
+ XdmcpWriteCARD8 (&buffer, ConnectionAddresses.length);
+ for (i = 0; i < (int)ConnectionAddresses.length; i++)
+ if ( (i<ConnectionTypes.length) &&
+ (ConnectionTypes.data[i]==XdmcpConnectionType) )
+ XdmcpWriteARRAY8 (&buffer, &ConnectionAddresses.data[i]);
+ for (i = 0; i < (int)ConnectionAddresses.length; i++)
+ if ( (i>=ConnectionTypes.length) ||
+ (ConnectionTypes.data[i]!=XdmcpConnectionType) )
+ XdmcpWriteARRAY8 (&buffer, &ConnectionAddresses.data[i]);
XdmcpWriteARRAY8 (&buffer, AuthenticationName);
XdmcpWriteARRAY8 (&buffer, &authenticationData);
diff --git a/xkb/xkb.c b/xkb/xkb.c
index 273385ef6..f43fb285f 100644
--- a/xkb/xkb.c
+++ b/xkb/xkb.c
@@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
-/* $XFree86: xc/programs/Xserver/xkb/xkb.c,v 3.22 2003/11/17 22:20:45 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/xkb/xkb.c,v 3.23 2003/12/22 17:48:11 tsi Exp $ */
#include <stdio.h>
#include "X.h"
@@ -2307,8 +2307,7 @@ ProcXkbSetMap(ClientPtr client)
stuff->maxKeyCode= xkb->max_key_code;
}
else {
- if ((stuff->minKeyCode<XkbMinLegalKeyCode)||
- (stuff->maxKeyCode>XkbMaxLegalKeyCode)) {
+ if (!XkbIsLegalKeycode(stuff->minKeyCode)) {
client->errorValue= _XkbErrCode3(2,stuff->minKeyCode,
stuff->maxKeyCode);
return BadValue;
diff --git a/xkb/xkbInit.c b/xkb/xkbInit.c
index 064311d5e..6ed146494 100644
--- a/xkb/xkbInit.c
+++ b/xkb/xkbInit.c
@@ -24,7 +24,7 @@ OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH
THE USE OR PERFORMANCE OF THIS SOFTWARE.
********************************************************/
-/* $XFree86: xc/programs/Xserver/xkb/xkbInit.c,v 3.32 2003/11/17 22:20:46 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/xkb/xkbInit.c,v 3.33 2003/12/22 17:48:12 tsi Exp $ */
#include <stdio.h>
#include <stdlib.h>
@@ -716,7 +716,7 @@ XkbRF_VarDefsRec defs;
if (ok && (finfo.xkb!=NULL)) {
XkbDescPtr xkb;
- int minKC,maxKC;
+ KeyCode minKC,maxKC;
xkb= finfo.xkb;
minKC= xkb->min_key_code;