summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjhartmann <jhartmann>2000-03-15 21:38:23 +0000
committerjhartmann <jhartmann>2000-03-15 21:38:23 +0000
commit13f3c1ec07fedec0ff2e1e5912e8aa8fc854d189 (patch)
treea2870eea8e6c9950698b209a579e6bfb3bb0dba7
parentdc1f830cec321077c6323a297db166a05af620d7 (diff)
Import of XFree86 4.0X_4_0
-rw-r--r--xc/extras/FreeType/contrib/ttf2bdf/Makefile.in2
-rw-r--r--xc/extras/FreeType/contrib/ttf2bdf/README2
-rw-r--r--xc/extras/FreeType/contrib/ttf2bdf/configure.in2
-rw-r--r--xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.12
-rw-r--r--xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.22
-rw-r--r--xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.32
-rw-r--r--xc/extras/FreeType/contrib/ttf2bdf/remap.c4
-rw-r--r--xc/extras/FreeType/contrib/ttf2bdf/remap.h2
-rw-r--r--xc/extras/FreeType/contrib/ttf2bdf/ttf2bdf.c4
-rw-r--r--xc/extras/FreeType/contrib/ttf2bdf/ttf2bdf.man2
-rw-r--r--xc/extras/FreeType/contrib/ttf2pfb/ttf2pfb.c4
-rwxr-xr-xxc/extras/FreeType/mkinstalldirs2
-rw-r--r--xc/extras/FreeType/test/common.c4
-rw-r--r--xc/extras/Mesa/include/GL/gl.h119
-rw-r--r--xc/extras/Mesa/include/GL/glext.h1619
-rw-r--r--xc/extras/Mesa/include/GL/glx.h4
-rw-r--r--xc/extras/Mesa/include/GL/xmesa_x.h2
-rw-r--r--xc/extras/Mesa/include/GL/xmesa_xf86.h13
-rw-r--r--xc/extras/Mesa/src/FX/fxdd.c448
-rw-r--r--xc/extras/Mesa/src/FX/fxdrv.h2
-rw-r--r--xc/extras/Mesa/src/FX/fxfasttmp.h4
-rw-r--r--xc/extras/Mesa/src/FX/fxglidew.c4
-rw-r--r--xc/extras/Mesa/src/FX/fxglidew.h8
-rw-r--r--xc/extras/Mesa/src/FX/fxsetup.c83
-rw-r--r--xc/extras/Mesa/src/X/fakeglx.c4
-rw-r--r--xc/extras/Mesa/src/X/glxapi.c3
-rw-r--r--xc/extras/Mesa/src/X/glxapi.h2
-rw-r--r--xc/extras/Mesa/src/X/xmesa1.c103
-rw-r--r--xc/extras/Mesa/src/X/xmesa2.c43
-rw-r--r--xc/extras/Mesa/src/X/xmesaP.h6
-rw-r--r--xc/extras/Mesa/src/X86/assyntax.h5
-rw-r--r--xc/extras/Mesa/src/X86/glapi_x86.S799
-rw-r--r--xc/extras/Mesa/src/bitmap.c19
-rw-r--r--xc/extras/Mesa/src/blend.c61
-rw-r--r--xc/extras/Mesa/src/blend.h8
-rw-r--r--xc/extras/Mesa/src/colortab.c56
-rw-r--r--xc/extras/Mesa/src/colortab.h27
-rw-r--r--xc/extras/Mesa/src/config.c8
-rw-r--r--xc/extras/Mesa/src/config.h3
-rw-r--r--xc/extras/Mesa/src/dd.h21
-rw-r--r--xc/extras/Mesa/src/dlist.c92
-rw-r--r--xc/extras/Mesa/src/extensions.c2
-rw-r--r--xc/extras/Mesa/src/get.c89
-rw-r--r--xc/extras/Mesa/src/glapi.c1228
-rw-r--r--xc/extras/Mesa/src/glapinoop.c1408
-rw-r--r--xc/extras/Mesa/src/glapinoop.h2
-rw-r--r--xc/extras/Mesa/src/glapioffsets.h1378
-rw-r--r--xc/extras/Mesa/src/glapitable.h1403
-rw-r--r--xc/extras/Mesa/src/glapitemp.h363
-rw-r--r--xc/extras/Mesa/src/glheader.h3
-rw-r--r--xc/extras/Mesa/src/image.c34
-rw-r--r--xc/extras/Mesa/src/imaging.c4
-rw-r--r--xc/extras/Mesa/src/imaging.h7
-rw-r--r--xc/extras/Mesa/src/matrix.c6
-rw-r--r--xc/extras/Mesa/src/mmath.h7
-rw-r--r--xc/extras/Mesa/src/span.c20
-rw-r--r--xc/extras/Mesa/src/span.h21
-rw-r--r--xc/extras/Mesa/src/state.c22
-rw-r--r--xc/extras/Mesa/src/teximage.c4
-rw-r--r--xc/extras/Mesa/src/triangle.c84
-rw-r--r--xc/extras/Mesa/src/types.h12
-rw-r--r--xc/extras/Mesa/src/winpos.c39
-rw-r--r--xc/extras/X-TrueType/xttcconv.c6
-rw-r--r--xc/extras/Xpm/lib/data.c2
-rw-r--r--xc/nls/XLC_LOCALE/C13
-rw-r--r--xc/nls/XLC_LOCALE/en_US.UTF-810
-rw-r--r--xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/itsy/itsy.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/itsy/itsy.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/itsy/kbd.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/itsy/ts.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kasync.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kcmap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kcolor.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kcurscol.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/kdrive.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kdrive.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kinfo.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kinput.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kkeymap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kkeymap.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kloadmap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kmap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/kmode.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/knoop.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/ktest.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/linux/keyboard.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/linux/linux.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/linux/ps2.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3clock.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3cmap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3curs.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3draw.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3draw.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3gc.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3reg.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3reg.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3rtst.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/savage/s3stub.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sis.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sis.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sisclock.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/siscmap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/siscurs.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sisio.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/sis530/sisstub.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trident/trident.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trident/trident.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trident/tridentstub.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trio/s3.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trio/s3.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trio/s3clock.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trio/s3cmap.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trio/s3curs.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/trio/s3stub.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/ts300/ts300.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/vga.c4
-rw-r--r--xc/programs/Xserver/hw/kdrive/vga.h4
-rw-r--r--xc/programs/Xserver/hw/kdrive/vxworks/vxkbd.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/vxworks/vxmouse.c2
-rw-r--r--xc/programs/Xserver/hw/kdrive/vxworks/vxworks.c2
-rw-r--r--xc/programs/Xserver/hw/xfree86/CHANGELOG264
-rw-r--r--xc/programs/Xserver/hw/xfree86/Imakefile8
-rw-r--r--xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h7
-rw-r--r--xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c4
-rw-r--r--xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h6
-rw-r--r--xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h6
-rw-r--r--xc/programs/Xserver/hw/xfree86/XF86Config.cpp1561
-rw-r--r--xc/programs/Xserver/hw/xfree86/XFree86.cpp577
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/Imakefile13
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/compiler.h30
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86.h9
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Bus.c8
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Bus.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Config.c154
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Config.h4
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Configure.c731
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c53
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c14
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Globals.c8
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Helper.c83
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Init.c41
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Mode.c20
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Module.h8
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h6
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86Priv.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c34
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86str.h8
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86xv.c90
-rw-r--r--xc/programs/Xserver/hw/xfree86/common/xf86xv.h59
-rw-r--r--xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c14
-rw-r--r--xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c6
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/BugReport55
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/DESIGN2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/Imakefile50
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/Install329
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/LICENSE44
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/OS2.Notes2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README104
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.DECtga27
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.DGA506
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.DGUX695
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.DRI659
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.I1282
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.Linux2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.LynxOS496
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.MGA2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.NetBSD44
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.OS22
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.Oak2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD37
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.P90002
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.S32
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.SCO2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.SOLX862
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.SVR42
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.SiS43
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.Video72
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.WstDig2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.agx2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.apm78
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.ark2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.ati2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.chips16
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.cirrus2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.cyrix59
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.epson2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.fbdev2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.fonts57
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.i74041
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.i810110
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.isc114
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.mouse32
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.neomagic2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.r12826
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.rendition40
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.s3virge4
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.trident2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/README.tseng2
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/RELNOTES631
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/Status223
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc8
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/man/Imakefile22
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml19
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/DGUX.sgml789
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml719
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile99
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml398
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml46
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml510
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml29
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml31
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml64
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml421
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml30
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml36
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml6
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml86
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml10
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml55
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent22
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml58
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml44
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml125
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre4
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml112
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml23
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml23
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml26
-rw-r--r--xc/programs/Xserver/hw/xfree86/doc/xinput2
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/Imakefile4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/apm.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c28
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h5
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c164
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c66
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile9
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/ati.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h20
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c8
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c158
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c35
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c21
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c24
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h9
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c46
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h6
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c6
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c40
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cirrus/cirrus.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c6
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c22
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile6
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c116
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile10
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c8
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile8
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint.cpp112
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c20
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c72
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h11
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c142
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile13
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c73
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile20
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/README93
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h57
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c64
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c561
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h20
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dripriv.h24
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c366
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_drm.c59
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c36
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h1
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/i810/i810_sarea.h40
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp19
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h5
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c227
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c531
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile9
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c34
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/neomagic/neomagic.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile6
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h4
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c66
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h10
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h5
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c24
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile11
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/README8
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/r128.cpp70
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c64
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c57
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile13
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c126
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c255
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.cpp112
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h8
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.c256
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.h23
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c44
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c41
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c31
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c19
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c48
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c105
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h9
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c57
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/README19
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c27
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c24
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c27
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c27
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp61
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/sis/sis.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c17
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile11
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c82
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c66
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c6
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c26
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile9
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/trident/trident.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c122
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c23
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c48
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.cpp30
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c29
-rw-r--r--xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp4
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/Xinstall.sh992
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-excl10
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list23
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/fsrv-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/host.def8
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-excl3
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/mod-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/nest-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-excl5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-list3
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prt-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/set-list5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/vfb-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/xserv-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-list59
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/host.def5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin1-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/lib-excl11
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/prog-excl2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xdm-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list28
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def7
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-excl4
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list38
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def13
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-excl3
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list29
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/host.def8
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/mod-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/prog-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/set-list5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/xserv-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-excl10
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list60
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/fsrv-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/host.def8
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-excl3
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/mod-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/nest-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-excl5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-list3
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prt-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/set-list5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/vfb-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/xserv-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def9
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/mod-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/xserv-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list12
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/fsrv-list3
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/host.def7
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/man-excl6
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/set-list4
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def5
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/mod-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def4
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list38
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/host.def7
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list38
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/host.def7
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/xserv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-excl1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list38
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/fsrv-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/host.def7
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/lib-excl14
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-dir1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-list1
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/xserv-list1
-rwxr-xr-xxc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist35
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/common/extras6
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/common/fnon-list2
-rw-r--r--xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def19
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/Imakefile14
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/dynapro/dynapro.cpp37
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile12
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.cpp97
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.cpp37
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h4
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c27
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/mouse/mouse.cpp152
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/void/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/void/void.cpp29
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/wacom/wacom.cpp37
-rw-r--r--xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c173
-rw-r--r--xc/programs/Xserver/hw/xfree86/int10/Imakefile4
-rw-r--r--xc/programs/Xserver/hw/xfree86/loader/Imakefile9
-rw-r--r--xc/programs/Xserver/hw/xfree86/loader/dixsym.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/loader/xf86sym.c14
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/Imakefile4
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile37
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c96
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_apm.c137
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_ev56.c84
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c308
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile6
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/agpgart.h224
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c5
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c16
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c58
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c4
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c31
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c19
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c4
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h3
-rw-r--r--xc/programs/Xserver/hw/xfree86/parser/DRI.c5
-rw-r--r--xc/programs/Xserver/hw/xfree86/parser/Device.c7
-rw-r--r--xc/programs/Xserver/hw/xfree86/parser/Imakefile7
-rw-r--r--xc/programs/Xserver/hw/xfree86/parser/Screen.c6
-rw-r--r--xc/programs/Xserver/hw/xfree86/parser/scan.c24
-rw-r--r--xc/programs/Xserver/hw/xfree86/parser/write.c114
-rw-r--r--xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c55
-rw-r--r--xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c54
-rw-r--r--xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c27
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c8
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf86Version.h12
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h4
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c6
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c4
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c8
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c3
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c89
-rw-r--r--xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c3
-rw-r--r--xc/programs/Xserver/hw/xnest/Keyboard.c6
-rw-r--r--xc/programs/Xserver/include/servermd.h24
-rw-r--r--xc/programs/Xserver/mi/mioverlay.c137
-rw-r--r--xc/programs/Xserver/mi/mioverlay.h3
-rw-r--r--xc/programs/Xserver/mi/miscrinit.c3
-rw-r--r--xc/programs/Xserver/mi/mizerarc.c3
-rw-r--r--xc/programs/Xserver/os/utils.c4
-rw-r--r--xc/programs/Xserver/os/xalloc.c6
646 files changed, 23727 insertions, 8933 deletions
diff --git a/xc/extras/FreeType/contrib/ttf2bdf/Makefile.in b/xc/extras/FreeType/contrib/ttf2bdf/Makefile.in
index b6de1f463..4614fcde9 100644
--- a/xc/extras/FreeType/contrib/ttf2bdf/Makefile.in
+++ b/xc/extras/FreeType/contrib/ttf2bdf/Makefile.in
@@ -1,5 +1,5 @@
#
-# $Id: Makefile.in,v 1.1.1.2 2000/02/22 15:38:16 kem Exp $
+# Id: Makefile.in,v 1.4 1998/12/06 18:50:22 mleisher Exp $
#
#
diff --git a/xc/extras/FreeType/contrib/ttf2bdf/README b/xc/extras/FreeType/contrib/ttf2bdf/README
index ff7790e5b..1f14dc2c8 100644
--- a/xc/extras/FreeType/contrib/ttf2bdf/README
+++ b/xc/extras/FreeType/contrib/ttf2bdf/README
@@ -1,5 +1,5 @@
#
-# $Id: README,v 1.1.1.2 2000/02/22 15:38:16 kem Exp $
+# Id: README,v 1.18 1999/08/19 16:30:24 mleisher Exp $
#
#
diff --git a/xc/extras/FreeType/contrib/ttf2bdf/configure.in b/xc/extras/FreeType/contrib/ttf2bdf/configure.in
index 49a5a5b7f..143acc955 100644
--- a/xc/extras/FreeType/contrib/ttf2bdf/configure.in
+++ b/xc/extras/FreeType/contrib/ttf2bdf/configure.in
@@ -1,4 +1,4 @@
-dnl $Id: configure.in,v 1.1.1.1 1999/12/05 01:23:19 daryll Exp $
+dnl Id: configure.in,v 1.1 1998/01/14 21:45:26 mleisher Exp $
dnl Process this file with autoconf to produce a configure script.
AC_INIT(../../lib/freetype.h)
diff --git a/xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.1 b/xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.1
index 8566207c9..7b2a6f09f 100644
--- a/xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.1
+++ b/xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.1
@@ -1,5 +1,5 @@
#
-# $Id: iso8859.1,v 1.1.1.1 2000/02/22 15:38:16 kem Exp $
+# Id: iso8859.1,v 1.2 1999/06/16 16:13:11 mleisher Exp $
#
# SAMPLE TTF2BDF MAPPING TABLE
#
diff --git a/xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.2 b/xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.2
index dfe2c9ef1..d563496e2 100644
--- a/xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.2
+++ b/xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.2
@@ -1,5 +1,5 @@
#
-# $Id: iso8859.2,v 1.1.1.2 2000/02/22 15:38:16 kem Exp $
+# Id: iso8859.2,v 1.2 1999/06/16 16:13:11 mleisher Exp $
#
# SAMPLE TTF2BDF MAPPING TABLE
#
diff --git a/xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.3 b/xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.3
index b38073f88..e782e1125 100644
--- a/xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.3
+++ b/xc/extras/FreeType/contrib/ttf2bdf/maps/iso8859.3
@@ -1,5 +1,5 @@
#
-# $Id: iso8859.3,v 1.1.1.1 2000/02/22 15:38:16 kem Exp $
+# Id: iso8859.3,v 1.2 1999/06/16 16:13:11 mleisher Exp $
#
# SAMPLE TTF2BDF MAPPING TABLE
#
diff --git a/xc/extras/FreeType/contrib/ttf2bdf/remap.c b/xc/extras/FreeType/contrib/ttf2bdf/remap.c
index 27b224ad1..1397fbd06 100644
--- a/xc/extras/FreeType/contrib/ttf2bdf/remap.c
+++ b/xc/extras/FreeType/contrib/ttf2bdf/remap.c
@@ -22,9 +22,9 @@
*/
#ifndef lint
#ifdef __GNUC__
-static char rcsid[] __attribute__ ((unused)) = "$Id: remap.c,v 1.1.1.2 2000/02/22 15:38:16 kem Exp $";
+static char rcsid[] __attribute__ ((unused)) = "Id: remap.c,v 1.9 1999/06/16 16:13:11 mleisher Exp $";
#else
-static char rcsid[] = "$Id: remap.c,v 1.1.1.2 2000/02/22 15:38:16 kem Exp $";
+static char rcsid[] = "Id: remap.c,v 1.9 1999/06/16 16:13:11 mleisher Exp $";
#endif
#endif
diff --git a/xc/extras/FreeType/contrib/ttf2bdf/remap.h b/xc/extras/FreeType/contrib/ttf2bdf/remap.h
index ca4190c84..f8c8e9ece 100644
--- a/xc/extras/FreeType/contrib/ttf2bdf/remap.h
+++ b/xc/extras/FreeType/contrib/ttf2bdf/remap.h
@@ -25,7 +25,7 @@
#define _h_remap
/*
- * $Id: remap.h,v 1.1.1.2 2000/02/22 15:38:16 kem Exp $
+ * Id: remap.h,v 1.4 1999/05/03 17:07:04 mleisher Exp $
*/
#ifdef __cplusplus
diff --git a/xc/extras/FreeType/contrib/ttf2bdf/ttf2bdf.c b/xc/extras/FreeType/contrib/ttf2bdf/ttf2bdf.c
index 3f9786023..a553b7513 100644
--- a/xc/extras/FreeType/contrib/ttf2bdf/ttf2bdf.c
+++ b/xc/extras/FreeType/contrib/ttf2bdf/ttf2bdf.c
@@ -22,9 +22,9 @@
*/
#ifndef lint
#ifdef __GNUC__
-static char rcsid[] __attribute__ ((unused)) = "$Id: ttf2bdf.c,v 1.1.1.2 2000/02/22 15:38:16 kem Exp $";
+static char rcsid[] __attribute__ ((unused)) = "Id: ttf2bdf.c,v 1.25 1999/10/21 16:31:54 mleisher Exp $";
#else
-static char rcsid[] = "$Id: ttf2bdf.c,v 1.1.1.2 2000/02/22 15:38:16 kem Exp $";
+static char rcsid[] = "Id: ttf2bdf.c,v 1.25 1999/10/21 16:31:54 mleisher Exp $";
#endif
#endif
diff --git a/xc/extras/FreeType/contrib/ttf2bdf/ttf2bdf.man b/xc/extras/FreeType/contrib/ttf2bdf/ttf2bdf.man
index ec243bfff..d35ba83e3 100644
--- a/xc/extras/FreeType/contrib/ttf2bdf/ttf2bdf.man
+++ b/xc/extras/FreeType/contrib/ttf2bdf/ttf2bdf.man
@@ -1,5 +1,5 @@
.\"
-.\" $Id: ttf2bdf.man,v 1.1.1.2 2000/02/22 15:38:16 kem Exp $
+.\" Id: ttf2bdf.man,v 1.14 1999/10/21 16:31:54 mleisher Exp $
.\"
.TH TTF2BDF 1 "21 October 1999" "X Version 11"
.SH NAME
diff --git a/xc/extras/FreeType/contrib/ttf2pfb/ttf2pfb.c b/xc/extras/FreeType/contrib/ttf2pfb/ttf2pfb.c
index 463be0d15..297f68c48 100644
--- a/xc/extras/FreeType/contrib/ttf2pfb/ttf2pfb.c
+++ b/xc/extras/FreeType/contrib/ttf2pfb/ttf2pfb.c
@@ -46,7 +46,7 @@
#include "freetype.h"
#include "extend/ftxpost.h" /* we are in the FreeType package tree */
-char rcsid[] = "$Id: ttf2pfb.c,v 1.1.1.2 2000/02/22 15:38:17 kem Exp $";
+char rcsid[] = "Id: ttf2pfb.c,v 1.13 1999/08/20 13:14:26 werner Exp $";
#define PID_UNICODE 3
@@ -885,7 +885,7 @@ tmp_out(FILE* tmpout)
Fputps("%!PS");
Fputps("%%% CharString debugging program.");
- Fputps("%%% Generated by: ttf2pfb $Revision: 1.1.1.2 $");
+ Fputps("%%% Generated by: ttf2pfb Revision: 1.13 $");
Fputps("%%% plot char-string (pathes defined in /cjkxxxx)");
Fputps("");
Fputps("%%% user-defined parameter");
diff --git a/xc/extras/FreeType/mkinstalldirs b/xc/extras/FreeType/mkinstalldirs
index 12ac2f1ad..c9d1bc1d5 100755
--- a/xc/extras/FreeType/mkinstalldirs
+++ b/xc/extras/FreeType/mkinstalldirs
@@ -4,7 +4,7 @@
# Created: 1993-05-16
# Public domain
-# $Id: mkinstalldirs,v 1.1.1.1 1999/12/05 01:22:27 daryll Exp $
+# Id: mkinstalldirs,v 1.2 1998/09/01 16:52:17 werner Exp $
errstatus=0
diff --git a/xc/extras/FreeType/test/common.c b/xc/extras/FreeType/test/common.c
index 451d5bc2e..1f8422959 100644
--- a/xc/extras/FreeType/test/common.c
+++ b/xc/extras/FreeType/test/common.c
@@ -23,9 +23,9 @@
#ifndef lint
#ifdef __GNUC__
- static char rcsid[] __attribute__ ((unused)) = "$Id: common.c,v 1.1.1.2 2000/02/22 15:38:42 kem Exp $";
+ static char rcsid[] __attribute__ ((unused)) = "Id: common.c,v 1.14 1999/08/13 12:54:34 werner Exp $";
#else
- static char rcsid[] = "$Id: common.c,v 1.1.1.2 2000/02/22 15:38:42 kem Exp $";
+ static char rcsid[] = "Id: common.c,v 1.14 1999/08/13 12:54:34 werner Exp $";
#endif
#endif
diff --git a/xc/extras/Mesa/include/GL/gl.h b/xc/extras/Mesa/include/GL/gl.h
index 564ea3ef7..03988f43b 100644
--- a/xc/extras/Mesa/include/GL/gl.h
+++ b/xc/extras/Mesa/include/GL/gl.h
@@ -56,38 +56,44 @@
# pragma warning( disable : 4710 ) /* function 'foo' not inlined */
# pragma warning( disable : 4711 ) /* function 'foo' selected for automatic inline expansion */
# pragma warning( disable : 4127 ) /* conditional expression is constant */
-# if defined(MESA_MINWARN)
-# pragma warning( disable : 4244 ) /* '=' : conversion from 'const double ' to 'float ', possible loss of data */
-# pragma warning( disable : 4018 ) /* '<' : signed/unsigned mismatch */
-# pragma warning( disable : 4305 ) /* '=' : truncation from 'const double ' to 'float ' */
-# pragma warning( disable : 4550 ) /* 'function' undefined; assuming extern returning int */
-# pragma warning( disable : 4761 ) /* integral size mismatch in argument; conversion supplied */
+# if defined(MESA_MINWARN)
+# pragma warning( disable : 4244 ) /* '=' : conversion from 'const double ' to 'float ', possible loss of data */
+# pragma warning( disable : 4018 ) /* '<' : signed/unsigned mismatch */
+# pragma warning( disable : 4305 ) /* '=' : truncation from 'const double ' to 'float ' */
+# pragma warning( disable : 4550 ) /* 'function' undefined; assuming extern returning int */
+# pragma warning( disable : 4761 ) /* integral size mismatch in argument; conversion supplied */
# endif
-# if defined(_MSC_VER) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */
-# define GLAPI __declspec(dllexport)
-# define WGLAPI __declspec(dllexport)
-# elif defined(_MSC_VER) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
-# define GLAPI __declspec(dllimport)
-# define WGLAPI __declspec(dllimport)
-# else /* for use with static link lib build of Win32 edition only */
-# define GLAPI extern
-# define WGLAPI __declspec(dllimport)
-# endif /* _STATIC_MESA support */
-# define GLAPIENTRY __stdcall
-# define GLAPIENTRYP __stdcall *
-# define GLCALLBACK __stdcall
-# define GLCALLBACKP __stdcall *
-# define GLWINAPI __stdcall
-# define GLWINAPIV __cdecl
+# if defined(_MSC_VER) && defined(BUILD_GL32) /* tag specify we're building mesa as a DLL */
+# define GLAPI __declspec(dllexport)
+# define WGLAPI __declspec(dllexport)
+# elif defined(_MSC_VER) && defined(_DLL) /* tag specifying we're building for DLL runtime support */
+# define GLAPI __declspec(dllimport)
+# define WGLAPI __declspec(dllimport)
+# else /* for use with static link lib build of Win32 edition only */
+# define GLAPI extern
+# define WGLAPI __declspec(dllimport)
+# endif /* _STATIC_MESA support */
+# define GLAPIENTRY __stdcall
+# define GLAPIENTRYP __stdcall *
+# define GLCALLBACK __stdcall
+# define GLCALLBACKP __stdcall *
+# if defined(__CYGWIN32__)
+# define GLCALLBACKPCAST *
+# else
+# define GLCALLBACKPCAST __stdcall *
+# endif
+# define GLWINAPI __stdcall
+# define GLWINAPIV __cdecl
#else
/* non-Windows compilation */
-# define GLAPI extern
-# define GLAPIENTRY
-# define GLAPIENTRYP *
-# define GLCALLBACK
-# define GLCALLBACKP *
-# define GLWINAPI
-# define GLWINAPIV
+# define GLAPI extern
+# define GLAPIENTRY
+# define GLAPIENTRYP *
+# define GLCALLBACK
+# define GLCALLBACKP *
+# define GLCALLBACKPCAST *
+# define GLWINAPI
+# define GLWINAPIV
#endif /* WIN32 / CYGWIN32 bracket */
/* compatability guard so we don't need to change client code */
@@ -130,18 +136,9 @@ extern "C" {
-/*
- * Apps can test for this symbol to do conditional compilation if needed.
- */
-/* XXX these Mesa symbols are going away
-#define MESA
-#define MESA_MAJOR_VERSION 3
-#define MESA_MINOR_VERSION 1
-*/
-
-
#define GL_VERSION_1_1 1
#define GL_VERSION_1_2 1
+#define GL_HAS_GLEXT 1
@@ -1783,7 +1780,7 @@ GLAPI void GLAPIENTRY glGetSeparableFilter( GLenum target, GLenum format,
/*
- * XXX these extensions may eventually be moved into a new glext.h file
+ * XXX these extensions may eventually be moved into glext.h
*/
@@ -2157,19 +2154,19 @@ GLAPI void GLAPIENTRY glUnlockArraysEXT( void );
/*
- * GL_INGR_blend_func_separate (EXT number 173)
+ * GL_EXT_blend_func_separate (EXT number 173) (aka GL_INGR_blend_func_separate)
*/
-#ifndef GL_INGR_blend_func_separate
-#define GL_INGR_blend_func_separate 1
+#ifndef GL_EXT_blend_func_separate
+#define GL_EXT_blend_func_separate 1
-#define GL_BLEND_DST_RGB_INGR 0x80C8
-#define GL_BLEND_SRC_RGB_INGR 0x80C9
-#define GL_BLEND_DST_ALPHA_INGR 0x80CA
-#define GL_BLEND_SRC_ALPHA_INGR 0x80CB
+#define GL_BLEND_DST_RGB_EXT 0x80C8
+#define GL_BLEND_SRC_RGB_EXT 0x80C9
+#define GL_BLEND_DST_ALPHA_EXT 0x80CA
+#define GL_BLEND_SRC_ALPHA_EXT 0x80CB
-GLAPI void GLAPIENTRY glBlendFuncSeparateINGR( GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha );
+GLAPI void GLAPIENTRY glBlendFuncSeparateEXT( GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha );
-#endif /* GL_INGR_blend_func_separate */
+#endif /* GL_EXT_blend_func_separate */
@@ -2199,7 +2196,7 @@ GLAPI void GLAPIENTRY glBlendFuncSeparateINGR( GLenum sfactorRGB, GLenum dfactor
/*
- * GL_ARB_multitexture (no number)
+ * GL_ARB_multitexture (ARB 0)
*/
#ifndef GL_ARB_multitexture
#define GL_ARB_multitexture 1
@@ -2280,7 +2277,7 @@ GLAPI void GLAPIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v);
/*
- * GL_MESA_window_pos (no number)
+ * GL_MESA_window_pos (197)
*/
#ifndef GL_MESA_window_pos
#define GL_MESA_window_pos 1
@@ -2315,7 +2312,7 @@ GLAPI void GLAPIENTRY glWindowPos4dvMESA( const GLdouble *p );
/*
- * GL_MESA_resize_bufffers (no number)
+ * GL_MESA_resize_bufffers (196)
*/
#ifndef GL_MESA_resize_bufffers
#define GL_MESA_resize_buffers 1
@@ -2327,7 +2324,7 @@ GLAPI void GLAPIENTRY glResizeBuffersMESA( void );
/*
- * GL_ARB_tranpose_matrix (number ?)
+ * GL_ARB_tranpose_matrix (ARB 2)
*/
#ifndef GL_ARB_transpose_matrix
#define GL_ARB_transpose_matrix 1
@@ -2342,7 +2339,21 @@ GLAPI void GLAPIENTRY glLoadTransposeMatrixfARB( const GLfloat m[16] );
GLAPI void GLAPIENTRY glMultTransposeMatrixdARB( const GLdouble m[16] );
GLAPI void GLAPIENTRY glMultTransposeMatrixfARB( const GLfloat m[16] );
-#endif
+#endif /* GL_ARB_tranpose_matrix */
+
+
+
+/*
+ * GL_ARB_multisample (ARB 4)
+ */
+#ifndef GL_ARB_multisample
+#define GL_ARB_multisample 1
+
+GLAPI void GLAPIENTRY glSampleCoverageARB(GLclampf value, GLboolean invert);
+
+GLAPI void GLAPIENTRY glSamplePassARB(GLenum pass);
+
+#endif /* GL_ARB_multisample */
diff --git a/xc/extras/Mesa/include/GL/glext.h b/xc/extras/Mesa/include/GL/glext.h
new file mode 100644
index 000000000..4c7ccbb2f
--- /dev/null
+++ b/xc/extras/Mesa/include/GL/glext.h
@@ -0,0 +1,1619 @@
+#ifndef __glext_h_
+#define __glext_h_
+
+
+/*
+ * XXX Many extensions need to be added yet.
+ * XXX Some token values aren't known (grep for ?)
+ * XXX This file may be automatically generated in the future.
+ */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#ifdef _WIN32
+#define WIN32_LEAN_AND_MEAN 1
+#include <windows.h>
+#endif
+
+#ifndef GLAPI
+#define GLAPI extern
+#endif
+
+#ifdef GLAPIENTRY
+#define APIENTRY GLAPIENTRY
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+
+
+#define GL_GLEXT_VERSION_EXT 1
+
+
+/*
+ * 1. GL_EXT_abgr
+ */
+#ifndef GL_EXT_abgr
+#define GL_EXT_abgr 1
+
+#define GL_ABGR_EXT 0x8000
+
+#endif /* GL_EXT_abgr */
+
+
+
+/*
+ * 2. GL_EXT_blend_color
+ */
+#ifndef GL_EXT_blend_color
+#define GL_EXT_blend_color 1
+
+#define GL_CONSTANT_COLOR_EXT 0x8001
+#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002
+#define GL_CONSTANT_ALPHA_EXT 0x8003
+#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004
+#define GL_BLEND_COLOR_EXT 0x8005
+
+GLAPI void APIENTRY glBlendColorEXT(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+
+typedef void (APIENTRY * PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+
+#endif /* GL_EXT_blend_color */
+
+
+
+/*
+ * 3. GL_EXT_polygon_offset
+ */
+#ifndef GL_EXT_polygon_offset
+#define GL_EXT_polygon_offset 1
+
+#define GL_POLYGON_OFFSET_EXT 0x8037
+#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038
+#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039
+
+GLAPI void APIENTRY glPolygonOffsetEXT(GLfloat factor, GLfloat bias);
+
+typedef void (APIENTRY * PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias);
+
+#endif /* GL_EXT_polygon_offset */
+
+
+
+/*
+ * 6. GL_EXT_texture3D
+ */
+#ifndef GL_EXT_texture3D
+#define GL_EXT_texture3D 1
+
+#define GL_PACK_SKIP_IMAGES_EXT 0x806B
+#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C
+#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D
+#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E
+#define GL_TEXTURE_3D_EXT 0x806F
+#define GL_PROXY_TEXTURE_3D_EXT 0x8070
+#define GL_TEXTURE_DEPTH_EXT 0x8071
+#define GL_TEXTURE_WRAP_R_EXT 0x8072
+#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073
+#define GL_TEXTURE_3D_BINDING_EXT 0x806A
+
+GLAPI void APIENTRY glTexImage3DEXT(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+GLAPI void APIENTRY glTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+GLAPI void APIENTRY glCopyTexSubImage3DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+typedef void (APIENTRY * PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRY * PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+#endif /* GL_EXT_texture3D */
+
+
+
+/*
+ * 7. GL_SGI_texture_filter4
+ */
+#ifndef GL_SGI_texture_filter4
+#define GL_SGI_texture_filter4 1
+
+#define GL_FILTER4_SGIS ?
+#define GL_TEXTURE_FILTER4_SIZE_SGIS ?
+
+GLAPI void APIENTRY glGetTexFilterFuncSGIS(GLenum target, GLenum filter, GLfloat *weights);
+GLAPI void APIENTRY glTexFilterFuncSGIS(GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
+
+typedef void (APIENTRY * PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights);
+typedef void (APIENTRY * PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights);
+
+#endif /* GL_SGI_texture_filter4 */
+
+
+
+/*
+ * 9. GL_EXT_subtexture
+ */
+#ifndef GL_EXT_subtexture
+#define GL_EXT_subtexture 1
+
+GLAPI void APIENTRY glCopyTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+GLAPI void APIENTRY glTexSubImage1DEXT(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
+GLAPI void APIENTRY glTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+
+typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRY * PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels);
+typedef void (APIENTRY * PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels);
+
+#endif /* GL_EXT_subtexture */
+
+
+
+/*
+ * 10. GL_EXT_copy_texture
+ */
+#ifndef GL_EXT_copy_texture
+#define GL_EXT_copy_texture 1
+
+GLAPI void APIENTRY glCopyTexImage1DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+GLAPI void APIENTRY glCopyTexImage2DEXT(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+GLAPI void APIENTRY glCopyTexSubImage2DEXT(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+typedef void (APIENTRY * PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border);
+typedef void (APIENTRY * PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border);
+typedef void (APIENTRY * PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height);
+
+#endif /* GL_EXT_copy_texture */
+
+
+
+/*
+ * 11. GL_EXT_histogram
+ */
+#ifndef GL_EXT_histogram
+#define GL_EXT_histogram 1
+
+#define GL_HISTOGRAM_EXT 0x8024
+#define GL_PROXY_HISTOGRAM_EXT 0x8025
+#define GL_HISTOGRAM_WIDTH_EXT 0x8026
+#define GL_HISTOGRAM_FORMAT_EXT 0x8027
+#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028
+#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029
+#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A
+#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B
+#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C
+#define GL_HISTOGRAM_SINK_EXT 0x802D
+
+GLAPI void APIENTRY glGetHistogramEXT(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
+GLAPI void APIENTRY glGetHistogramParameterfvEXT(GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetHistogramParameterivEXT(GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetMinmaxEXT(GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values);
+GLAPI void APIENTRY glGetMinmaxParameterfvEXT(GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetMinmaxParameterivEXT(GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glHistogramEXT(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+GLAPI void APIENTRY glMinmaxEXT(GLenum target, GLenum internalformat, GLboolean sink);
+GLAPI void APIENTRY glResetHistogramEXT(GLenum target);
+GLAPI void APIENTRY glResetMinmaxEXT(GLenum target);
+
+typedef void (APIENTRY * PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values);
+typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum types, GLvoid *values);
+typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink);
+typedef void (APIENTRY * PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink);
+typedef void (APIENTRY * PFNGLRESETHISTOGRAMEXTPROC) (GLenum target);
+typedef void (APIENTRY * PFNGLRESETMINMAXEXTPROC) (GLenum target);
+
+#endif /* GL_EXT_histogram */
+
+
+
+/*
+ * 12. GL_EXT_convolution
+ */
+#ifndef GL_EXT_convolution
+#define GL_EXT_convolution 1
+
+#define GL_CONVOLUTION_1D_EXT 0x8010
+#define GL_CONVOLUTION_2D_EXT 0x8011
+#define GL_SEPARABLE_2D_EXT 0x8012
+#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013
+#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014
+#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015
+#define GL_REDUCE_EXT 0x8016
+#define GL_CONVOLUTION_FORMAT_EXT 0x8017
+#define GL_CONVOLUTION_WIDTH_EXT 0x8018
+#define GL_CONVOLUTION_HEIGHT_EXT 0x8019
+#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A
+#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B
+#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C
+#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D
+#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E
+#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F
+#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020
+#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021
+#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022
+#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023
+
+GLAPI void APIENTRY glConvolutionFilter1DEXT(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
+GLAPI void APIENTRY glConvolutionFilter2DEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
+GLAPI void APIENTRY glConvolutionParameterfEXT(GLenum target, GLenum pname, GLfloat params);
+GLAPI void APIENTRY glConvolutionParameterfvEXT(GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glConvolutionParameteriEXT(GLenum target, GLenum pname, GLint params);
+GLAPI void APIENTRY glConvolutionParameterivEXT(GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glCopyConvolutionFilter1DEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+GLAPI void APIENTRY glCopyConvolutionFilter2DEXT(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+GLAPI void APIENTRY glGetConvolutionFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid *image);
+GLAPI void APIENTRY glGetConvolutionParameterfvEXT(GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetConvolutionParameterivEXT(GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetSeparableFilterEXT(GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
+GLAPI void APIENTRY glSeparableFilter2DEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
+
+typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
+typedef void (APIENTRY * PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
+typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params);
+typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params);
+typedef void (APIENTRY * PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRY * PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+typedef void (APIENTRY * PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image);
+typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span);
+typedef void (APIENTRY * PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column);
+
+#endif /* GL_EXT_convolution */
+
+
+
+/*
+ * 13. GL_SGI_color_matrix
+ */
+#ifndef GL_SGI_color_matrix
+#define GL_SGI_color_matrix 1
+
+#define GL_COLOR_MATRIX_SGI 0x80B1
+#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2
+#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3
+#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4
+#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5
+#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6
+#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7
+#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8
+#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9
+#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA
+#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB
+
+#endif /* GL_SGI_color_matrix */
+
+
+
+/*
+ * 14. GL_SGI_color_table
+ */
+#ifndef GL_SGI_color_table
+#define GL_SGI_color_table 1
+
+#define COLOR_TABLE_SGI 0x80D0
+#define POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1
+#define POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2
+#define PROXY_COLOR_TABLE_SGI 0x80D3
+#define PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4
+#define PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5
+#define COLOR_TABLE_SCALE_SGI 0x80D6
+#define COLOR_TABLE_BIAS_SGI 0x80D7
+#define COLOR_TABLE_FORMAT_SGI 0x80D8
+#define COLOR_TABLE_WIDTH_SGI 0x80D9
+#define COLOR_TABLE_RED_SIZE_SGI 0x80DA
+#define COLOR_TABLE_GREEN_SIZE_SGI 0x80DB
+#define COLOR_TABLE_BLUE_SIZE_SGI 0x80DC
+#define COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD
+#define COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE
+#define COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF
+
+GLAPI void APIENTRY glColorTableParameterfvSGI(GLenum target, GLenum pname, const GLfloat *params);
+GLAPI void APIENTRY glColorTableParameterivSGI(GLenum target, GLenum pname, const GLint *params);
+GLAPI void APIENTRY glColorTableSGI(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+GLAPI void APIENTRY glCopyColorTableSGI(GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+GLAPI void APIENTRY glGetColorTableParameterfvSGI(GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetColorTableParameterivSGI(GLenum target, GLenum pname, GLint *params);
+GLAPI void APIENTRY glGetColorTableSGI(GLenum target, GLenum format, GLenum type, GLvoid *table);
+
+typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params);
+typedef void (APIENTRY * PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params);
+typedef void (APIENTRY * PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+typedef void (APIENTRY * PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params);
+typedef void (APIENTRY * PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
+
+#endif /* GL_SGI_color_table */
+
+
+
+/*
+ * ?. GL_SGIX_pixel_texture
+ */
+#ifndef GL_SGIX_pixel_texture
+#define GL_SGIX_pixel_texture 1
+
+GLAPI void APIENTRY glPixelTexGenSGIX(GLenum mode);
+
+typedef void (APIENTRY * PFNGLPIXELTEXGENSGIXPROC) (GLenum mode);
+
+#endif /* GL_SGIX_pixel_texture */
+
+
+
+/*
+ * 15. GL_SGIS_pixel_texture
+ */
+#ifndef GL_SGIS_pixel_texture
+#define GL_SGIS_pixel_texture 1
+
+#define GL_PIXEL_TEXTURE_SGIS ?
+#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS ?
+#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS ?
+#define GL_PIXEL_GROUP_COLOR_SGIS ?
+
+GLAPI void APIENTRY glPixelTexGenParameterfSGIS(GLenum target, GLfloat value);
+GLAPI void APIENTRY glPixelTexGenParameterfvSGIS(GLenum target, const GLfloat *value);
+GLAPI void APIENTRY glPixelTexGenParameteriSGIS(GLenum target, GLint value);
+GLAPI void APIENTRY glPixelTexGenParameterivSGIS(GLenum target, const GLint *value);
+GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS(GLenum target, GLfloat *value);
+GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS(GLenum target, GLint *value);
+
+typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum target, GLfloat value);
+typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum target, const GLfloat *value);
+typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum target, GLint value);
+typedef void (APIENTRY * PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum target, const GLint *value);
+typedef void (APIENTRY * PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum target, GLfloat *value);
+typedef void (APIENTRY * PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum target, GLint *value);
+
+#endif /* GL_SGIS_pixel_texture */
+
+
+
+/*
+ * 16. GL_SGIS_texture4D
+ */
+#ifndef GL_SGIS_texture4D
+#define GL_SGIS_texture4D 1
+
+#define GL_PACK_SKIP_VOLUMES_SGIS ?
+#define GL_PACK_IMAGE_DEPTH_SGIS ?
+#define GL_UNPACK_SKIP_VOLUMES_SGIS ?
+#define GL_UNPACK_IMAGE_DEPTH_SGIS ?
+#define GL_TEXTURE_4D_SGIS ?
+#define GL_PROXY_TEXTURE_4D_SGIS ?
+#define GL_TEXTURE_4DSIZE_SGIS ?
+#define GL_TEXTURE_WRAP_Q_SGIS ?
+#define GL_MAX_4D_TEXTURE_SIZE_SGIS ?
+#define GL_TEXTURE_4D_BINDING_SGIS ?
+
+GLAPI void APIENTRY glTexImage4DSGIS(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void *pixels);
+GLAPI void APIENTRY glTexSubImage4DSGIS(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void *pixels);
+
+typedef void (APIENTRY * PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void *pixels);
+typedef void (APIENTRY * PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLenum format, GLenum type, const void *pixels);
+
+#endif /* GL_SGIS_texture4D */
+
+
+
+/*
+ * 20. GL_EXT_texture_object
+ */
+#ifndef GL_EXT_texture_object
+#define GL_EXT_texture_object 1
+
+#define GL_TEXTURE_PRIORITY_EXT 0x8066
+#define GL_TEXTURE_RESIDENT_EXT 0x8067
+#define GL_TEXTURE_1D_BINDING_EXT 0x8068
+#define GL_TEXTURE_2D_BINDING_EXT 0x8069
+
+GLAPI void APIENTRY glGenTexturesEXT(GLsizei n, GLuint *textures);
+GLAPI void APIENTRY glDeleteTexturesEXT(GLsizei n, const GLuint *textures);
+GLAPI void APIENTRY glBindTextureEXT(GLenum target, GLuint texture);
+GLAPI void APIENTRY glPrioritizeTexturesEXT(GLsizei n, const GLuint *textures, const GLclampf *priorities);
+GLAPI GLboolean APIENTRY glAreTexturesResidentEXT(GLsizei n, const GLuint *textures, GLboolean *residences);
+GLAPI GLboolean APIENTRY glIsTextureEXT(GLuint texture);
+
+typedef void (APIENTRY * PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures);
+typedef void (APIENTRY * PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures);
+typedef void (APIENTRY * PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture);
+typedef void (APIENTRY * PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities);
+typedef GLboolean (APIENTRY * PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences);
+typedef GLboolean (APIENTRY * PFNGLISTEXTUREEXTPROC) (GLuint texture);
+
+#endif /* GL_EXT_texture_object */
+
+
+
+/*
+ * 21. GL_SGIS_detail_texture
+ */
+#ifndef GL_SGIS_detail_texture
+#define GL_SGIS_detail_texture
+
+#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095
+#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096
+#define GL_LINEAR_DETAIL_SGIS 0x8097
+#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098
+#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099
+#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A
+#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B
+
+GLAPI void APIENTRY glDetailTexFuncSGIS(GLenum target, GLsizei n, const GLfloat *points);
+GLAPI void APIENTRY glGetDetailTexFuncSGIS(GLenum target, GLfloat *points);
+
+typedef void (APIENTRY * PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
+typedef void (APIENTRY * PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
+
+#endif /* GL_SGIS_detail_texture */
+
+
+
+/*
+ * 22. GL_SGIS_sharpen_texture
+ */
+#ifndef GL_SGIS_sharpen_texture
+#define GL_SGIS_sharpen_texture 1
+
+#define GL_LINEAR_SHARPEN_SGIS 0x80AD
+#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE
+#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF
+#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0
+
+GLAPI void APIENTRY glGetSharpenTexFuncSGIS(GLenum target, GLfloat *points);
+GLAPI void APIENTRY glSharpenTexFuncSGIS(GLenum target, GLsizei n, const GLfloat *points);
+
+typedef void (APIENTRY * PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points);
+typedef void (APIENTRY * PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points);
+
+#endif /* GL_SGIS_sharpen_texture */
+
+
+
+/*
+ * 23. GL_EXT_packed_pixels
+ */
+#ifndef GL_EXT_packed_pixels
+#define GL_EXT_packed_pixels 1
+
+#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032
+#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033
+#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034
+#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035
+#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036
+
+#endif /* GL_EXT_packed_pixels */
+
+
+
+/*
+ * 25. GL_SGIS_multisample
+ */
+
+#ifndef GL_SGIS_multisample
+#define GL_SGIS_multisample 1
+
+#define GL_MULTISAMPLE_SGIS 0x809D
+#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E
+#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F
+#define GL_SAMPLE_MASK_SGIS 0x80A0
+#define GL_MULTISAMPLE_BIT_EXT 0x20000000
+#define GL_1PASS_SGIS 0x80A1
+#define GL_2PASS_0_SGIS 0x80A2
+#define GL_2PASS_1_SGIS 0x80A3
+#define GL_4PASS_0_SGIS 0x80A4
+#define GL_4PASS_1_SGIS 0x80A5
+#define GL_4PASS_2_SGIS 0x80A6
+#define GL_4PASS_3_SGIS 0x80A7
+#define GL_SAMPLE_BUFFERS_SGIS 0x80A8
+#define GL_SAMPLES_SGIS 0x80A9
+#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA
+#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB
+#define GL_SAMPLE_PATTERN_SGIS 0x80AC
+
+GLAPI void APIENTRY glSampleMaskSGIS(GLclampf value, GLboolean invert);
+GLAPI void APIENTRY glSamplePatternSGIS(GLenum pattern);
+
+typedef void (APIENTRY * PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert);
+typedef void (APIENTRY * PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern);
+
+#endif /* GL_SGIS_multisample */
+
+
+
+/*
+ * 27. GL_EXT_rescale_normal
+ */
+#ifndef GL_EXT_rescale_normal
+#define GL_EXT_rescale_normal 1
+
+#define GL_RESCALE_NORMAL_EXT 0x803A
+
+#endif /* GL_EXT_rescale_normal */
+
+
+
+/*
+ * 30. GL_EXT_vertex_array
+ */
+#ifndef GL_EXT_vertex_array
+#define GL_EXT_vertex_array 1
+
+#define GL_VERTEX_ARRAY_EXT 0x8074
+#define GL_NORMAL_ARRAY_EXT 0x8075
+#define GL_COLOR_ARRAY_EXT 0x8076
+#define GL_INDEX_ARRAY_EXT 0x8077
+#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078
+#define GL_EDGE_FLAG_ARRAY_EXT 0x8079
+#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A
+#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B
+#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C
+#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D
+#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E
+#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F
+#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080
+#define GL_COLOR_ARRAY_SIZE_EXT 0x8081
+#define GL_COLOR_ARRAY_TYPE_EXT 0x8082
+#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083
+#define GL_COLOR_ARRAY_COUNT_EXT 0x8084
+#define GL_INDEX_ARRAY_TYPE_EXT 0x8085
+#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086
+#define GL_INDEX_ARRAY_COUNT_EXT 0x8087
+#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088
+#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089
+#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A
+#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B
+#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C
+#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D
+#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E
+#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F
+#define GL_COLOR_ARRAY_POINTER_EXT 0x8090
+#define GL_INDEX_ARRAY_POINTER_EXT 0x8091
+#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092
+#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093
+
+GLAPI void APIENTRY glVertexPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr);
+GLAPI void APIENTRY glNormalPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr);
+GLAPI void APIENTRY glColorPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr);
+GLAPI void APIENTRY glIndexPointerEXT(GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr);
+GLAPI void APIENTRY glTexCoordPointerEXT(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *ptr);
+GLAPI void APIENTRY glEdgeFlagPointerEXT(GLsizei stride, GLsizei count, const GLboolean *ptr);
+GLAPI void APIENTRY glGetPointervEXT(GLenum pname, void **params);
+GLAPI void APIENTRY glArrayElementEXT(GLint i);
+GLAPI void APIENTRY glDrawArraysEXT(GLenum mode, GLint first, GLsizei count);
+
+typedef void (APIENTRY * PFNGLARRAYELEMENTEXTPROC) (GLint i);
+typedef void (APIENTRY * PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count);
+typedef void (APIENTRY * PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer);
+typedef void (APIENTRY * PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params);
+typedef void (APIENTRY * PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+typedef void (APIENTRY * PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer);
+
+#endif /* GL_EXT_vertex_array */
+
+
+
+/*
+ * 35. GL_SGIS_texture_edge_clamp
+ */
+#ifndef GL_SGIS_texture_edge_clamp
+#define GL_SGIS_texture_edge_clamp 1
+
+#define GL_CLAMP_TO_EDGE_SGIS 0x812F
+
+#endif /* GL_SGIS_texture_edge_clamp */
+
+
+
+/*
+ * 37. GL_EXT_blend_minmax
+ */
+#ifndef GL_EXT_blend_minmax
+#define GL_EXT_blend_minmax 1
+
+#define GL_FUNC_ADD_EXT 0x8006
+#define GL_MIN_EXT 0x8007
+#define GL_MAX_EXT 0x8008
+#define GL_BLEND_EQUATION_EXT 0x8009
+
+GLAPI void APIENTRY glBlendEquationEXT(GLenum mode);
+
+typedef void (APIENTRY * PFNGLBLENDEQUATIONEXTPROC) (GLenum mode);
+
+#endif /* GL_EXT_blend_minmax */
+
+
+
+/*
+ * 38. GL_EXT_blend_subtract (requires GL_EXT_blend_max)
+ */
+#ifndef GL_EXT_blend_subtract
+#define GL_EXT_blend_subtract 1
+
+#define GL_FUNC_SUBTRACT_EXT 0x800A
+#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B
+
+#endif /* GL_EXT_blend_subtract */
+
+
+
+/*
+ * 39. GL_EXT_blend_logic_op
+ */
+#ifndef GL_EXT_blend_logic_op
+#define GL_EXT_blend_logic_op 1
+
+/* No new tokens or functions */
+
+#endif /* GL_EXT_blend_logic_op */
+
+
+
+/*
+ * 52. GL_SGIX_sprite
+ */
+#ifndef GL_SGIX_sprite
+#define GL_SGIX_sprite 1
+
+#define GL_SPRITE_SGIX 0x8148
+#define GL_SPRITE_MODE_SGIX 0x8149
+#define GL_SPRITE_AXIS_SGIX 0x814A
+#define GL_SPRITE_TRANSLATION_SGIX 0x814B
+#define GL_SPRITE_AXIAL_SGIX 0x814C
+#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D
+#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E
+
+GLAPI void APIENTRY glSpriteParameterfSGIX(GLenum pname, GLfloat param);
+GLAPI void APIENTRY glSpriteParameterfvSGIX(GLenum pname, const GLfloat *param);
+GLAPI void APIENTRY glSpriteParameteriSGIX(GLenum pname, GLint param);
+GLAPI void APIENTRY glSpriteParameterivSGIX(GLenum pname, const GLint *param);
+
+typedef void (APIENTRY * PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *param);
+typedef void (APIENTRY * PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *param);
+
+#endif /* GL_SGIX_sprite */
+
+
+
+/*
+ * 54. GL_EXT_point_parameters
+ */
+#ifndef GL_EXT_point_parameters
+#define GL_EXT_point_parameters 1
+
+#define GL_POINT_SIZE_MIN_EXT 0x8126
+#define GL_POINT_SIZE_MAX_EXT 0x8127
+#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128
+#define GL_DISTANCE_ATTENUATION_EXT 0x8129
+
+GLAPI void APIENTRY glPointParameterfEXT(GLenum pname, GLfloat param);
+GLAPI void APIENTRY glPointParameterfvEXT(GLenum pname, const GLfloat *params);
+
+typedef void (APIENTRY * PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params);
+
+#endif /* GL_EXT_point_parameters */
+
+
+
+/*
+ * 55. GL_SGIX_instruments
+ */
+#ifndef GL_SGIX_instruments
+#define GL_SGIX_instruments 1
+
+#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180
+#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181
+
+GLAPI GLint APIENTRY glGetInstrumentsSGIX(void);
+GLAPI void APIENTRY glInstrumentsBufferSGIX(GLsizei size, GLint *buf);
+GLAPI GLint APIENTRY glPollInstrumentsSGIX(GLint *markerp);
+GLAPI void APIENTRY glReadInstrumentsSGIX(GLint marker);
+GLAPI void APIENTRY glStartInstrumentsSGIX(void);
+GLAPI void APIENTRY glStopInstrumentsSGIX(GLint marker);
+
+typedef GLint (APIENTRY * PFNGLGETINSTRUMENTSSGIXPROC) (void);
+typedef void (APIENTRY * PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buf);
+typedef GLint (APIENTRY * PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *markerp);
+typedef void (APIENTRY * PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker);
+typedef void (APIENTRY * PFNGLSTARTINSTRUMENTSSGIXPROC) (void);
+typedef void (APIENTRY * PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker);
+
+#endif
+
+
+/*
+ * 57. GL_SGIX_framezoom
+ */
+#ifndef GL_SGIX_framezoom
+#define GL_SGIX_framezoom 1
+
+#define GL_FRAMEZOOM_SGIX 0x818B
+#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C
+#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D
+
+GLAPI void APIENTRY glFrameZoomSGIX(GLint factor);
+
+typedef void (APIENTRY * PFNGLFRAMEZOOMSGIXPROC) (GLint factor);
+
+#endif /* GL_SGIX_framezoom */
+
+
+
+/*
+ * 58. GL_SGIX_tag_sample_buffer
+ */
+#ifndef GL_SGIX_tag_sample_buffer
+#define GL_SGIX_tag_sample_buffer 1
+
+GLAPI void APIENTRY glTagSampleBufferSGIX(void);
+
+typedef void (APIENTRY * PFNGLTAGSAMPLEBUFFERSGIXPROC) (void);
+
+#endif /* GL_SGIX_tag_sample_buffer */
+
+
+
+/*
+ * 60. GL_SGIX_reference_plane
+ */
+#ifndef GL_SGIX_reference_plane
+#define GL_SGIX_reference_plane 1
+
+#define GL_REFERENCE_PLANE_SGIX 0x817D
+#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E
+
+GLAPI void APIENTRY glReferencePlaneSGIX(const GLdouble *plane);
+
+typedef void (APIENTRY * PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *plane);
+
+#endif /* GL_SGIX_reference_plane */
+
+
+
+/*
+ * 61. GL_SGIX_flush_raster
+ */
+#ifndef GL_SGIX_flush_raster
+#define GL_SGIX_flush_raster 1
+
+GLAPI void APIENTRY glFlushRasterSGIX(void);
+
+typedef void (APIENTRY * PFNGLFLUSHRASTERSGIXPROC) (void);
+
+#endif /* GL_SGIX_flush_raster */
+
+
+
+/*
+ * 74. GL_EXT_color_subtable
+ */
+
+#ifndef GL_EXT_color_subtable
+#define GL_EXT_color_subtable 1
+
+GLAPI void APIENTRY glColorSubTableEXT(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data);
+GLAPI void APIENTRY glCopyColorSubTableEXT(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+
+typedef void (APIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data);
+typedef void (APIENTRY * PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width);
+
+#endif
+
+
+/*
+ * 77. GL_PGI_misc_hints
+ */
+#ifndef GL_PGI_misc_hints
+#define GL_PGI_misc_hints 1
+
+#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 107000
+#define GL_STRICT_DEPTHFUNC_HINT_PGI 107030
+#define GL_STRICT_LIGHTING_HINT_PGI 107031
+#define GL_STRICT_SCISSOR_HINT_PGI 107032
+#define GL_FULL_STIPPLE_HINT_PGI 107033
+#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 107011
+#define GL_NATIVE_GRAPHICS_END_HINT_PGI 107012
+#define GL_CONSERVE_MEMORY_HINT_PGI 107005
+#define GL_RECLAIM_MEMORY_HINT_PGI 107006
+#define GL_ALWAYS_FAST_HINT_PGI 107020
+#define GL_ALWAYS_SOFT_HINT_PGI 107021
+#define GL_ALLOW_DRAW_OBJ_HINT_PGI 107022
+#define GL_ALLOW_DRAW_WIN_HINT_PGI 107023
+#define GL_ALLOW_DRAW_FRG_HINT_PGI 107024
+#define GL_ALLOW_DRAW_SPN_HINT_PGI 107024
+#define GL_ALLOW_DRAW_MEM_HINT_PGI 107025
+#define GL_CLIP_NEAR_HINT_PGI 107040
+#define GL_CLIP_FAR_HINT_PGI 107041
+#define GL_WIDE_LINE_HINT_PGI 107042
+#define GL_BACK_NORMALS_HINT_PGI 107043
+#define GL_NATIVE_GRAPHICS_HANDLE_PGI 107010
+
+GLAPI void APIENTRY glHintPGI(GLenum target, GLint mode);
+
+typedef void (APIENTRY * PFNGLHINTPGIPROC) (GLenum target, GLint mode);
+
+#endif /* GL_PGI_misc_hints */
+
+
+
+/*
+ * 78. GL_EXT_paletted_texture
+ */
+#ifndef GL_EXT_paletted_texture
+#define GL_EXT_paletted_texture 1
+
+#define GL_TABLE_TOO_LARGE_EXT 0x8031
+#define GL_COLOR_TABLE_FORMAT_EXT 0x80D8
+#define GL_COLOR_TABLE_WIDTH_EXT 0x80D9
+#define GL_COLOR_TABLE_RED_SIZE_EXT 0x80DA
+#define GL_COLOR_TABLE_GREEN_SIZE_EXT 0x80DB
+#define GL_COLOR_TABLE_BLUE_SIZE_EXT 0x80DC
+#define GL_COLOR_TABLE_ALPHA_SIZE_EXT 0x80DD
+#define GL_COLOR_TABLE_LUMINANCE_SIZE_EXT 0x80DE
+#define GL_COLOR_TABLE_INTENSITY_SIZE_EXT 0x80DF
+#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED
+#define GL_COLOR_INDEX1_EXT 0x80E2
+#define GL_COLOR_INDEX2_EXT 0x80E3
+#define GL_COLOR_INDEX4_EXT 0x80E4
+#define GL_COLOR_INDEX8_EXT 0x80E5
+#define GL_COLOR_INDEX12_EXT 0x80E6
+#define GL_COLOR_INDEX16_EXT 0x80E7
+
+GLAPI void APIENTRY glColorTableEXT(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+GLAPI void APIENTRY glColorSubTableEXT(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
+GLAPI void APIENTRY glGetColorTableEXT(GLenum target, GLenum format, GLenum type, GLvoid *table);
+GLAPI void APIENTRY glGetColorTableParameterfvEXT(GLenum target, GLenum pname, GLfloat *params);
+GLAPI void APIENTRY glGetColorTableParameterivEXT(GLenum target, GLenum pname, GLint *params);
+
+typedef void (APIENTRY * PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+typedef void (APIENTRY * PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params);
+typedef void (APIENTRY * PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params);
+
+#endif /* GL_EXT_paletted_texture */
+
+
+
+/*
+ * 79. GL_EXT_clip_volume_hint
+ */
+#ifndef GL_EXT_clip_volume_hint
+#define GL_EXT_clip_volume_hint 1
+
+#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F
+
+#endif /* GL_EXT_clip_volume_hint */
+
+
+
+/*
+ * 80. GL_SGIX_list_priority
+ */
+#ifndef GL_SGIX_list_priority
+#define GL_SGIX_list_priority 1
+
+#define GL_LIST_PRIORITY_SGIX 0x8182
+
+GLAPI void APIENTRY glGetListParameterfvSGIX(GLuint list, GLenum name, GLfloat *param);
+GLAPI void APIENTRY glGetListParameterivSGIX(GLuint list, GLenum name, GLint *param);
+GLAPI void APIENTRY glListParameterfSGIX(GLuint list, GLenum name, GLfloat param);
+GLAPI void APIENTRY glListParameterfvSGIX(GLuint list, GLenum name, const GLfloat *param);
+GLAPI void APIENTRY glListParameteriSGIX(GLuint list, GLenum name, GLint param);
+GLAPI void APIENTRY glListParameterivSGIX(GLuint list, GLenum name, const GLint *param);
+
+typedef void (APIENTRY * PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum name, GLfloat *param);
+typedef void (APIENTRY * PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum name, GLint *param);
+typedef void (APIENTRY * PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum name, GLfloat param);
+typedef void (APIENTRY * PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum name, const GLfloat *param);
+typedef void (APIENTRY * PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum name, GLint param);
+typedef void (APIENTRY * PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum name, const GLint *param);
+
+#endif /* GL_SGIX_list_priority */
+
+
+
+/*
+ * 94. GL_EXT_index_material
+ */
+#ifndef GL_EXT_index_material
+#define GL_EXT_index_material 1
+
+#define GL_INDEX_MATERIAL_EXT ?
+#define GL_INDEX_MATERIAL_PARAMETER_EXT ?
+#define GL_INDEX_MATERIAL_FACE_EXT ?
+
+GLAPI void APIENTRY glIndexMaterialEXT(GLenum face, GLenum mode);
+
+typedef void (APIENTRY * PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode);
+
+#endif /* GL_EXT_index_material */
+
+
+
+/*
+ * 95. GL_EXT_index_func
+ */
+#ifndef GL_EXT_index_func
+#define GL_EXT_index_func 1
+
+#define GL_INDEX_TEST_EXT ?
+#define GL_INDEX_TEST_FUNC_EXT ?
+#define GL_INDEX_TEST_REF_EXT ?
+
+GLAPI void APIENTRY glIndexFuncEXT(GLenum func, GLfloat ref);
+
+typedef void (APIENTRY * PFNGLINDEXFUNCEXTPROC) (GLenum func, GLfloat ref);
+
+#endif /* GL_EXT_index_func */
+
+
+
+/*
+ * 97. GL_EXT_compiled_vertex_array
+ */
+#ifndef GL_EXT_compiled_vertex_array
+#define GL_EXT_compiled_vertex_array 1
+
+#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8
+#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9
+
+GLAPI void APIENTRY glLockArraysEXT(GLint first, GLsizei count);
+GLAPI void APIENTRY glUnlockArraysEXT(void);
+
+typedef void (APIENTRY * PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count);
+typedef void (APIENTRY * PFNGLUNLOCKARRAYSEXTPROC) (void);
+
+#endif /* GL_EXT_compiled_vertex_array */
+
+
+
+/*
+ * 98. GL_EXT_cull_vertex
+ */
+#ifndef GL_EXT_cull_vertex
+#define GL_EXT_cull_vertex 1
+
+#define GL_CULL_VERTEX_EXT 0x81AA
+#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB
+#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC
+
+GLAPI void APIENTRY glCullParameterdvEXT(GLenum pname, const GLdouble *params);
+GLAPI void APIENTRY glCullParameterfvEXT(GLenum pname, const GLfloat *params);
+
+typedef void (APIENTRY * PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble* params);
+typedef void (APIENTRY * PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat* params);
+
+#endif /* GL_EXT_cull_vertex */
+
+
+
+/*
+ * 102. GL_SGIX_fragment_lighting
+ */
+#ifndef GL_SGIX_fragment_lighting
+#define GL_SGIX_fragment_lighting 1
+
+GLAPI void APIENTRY glFragmentColorMaterialSGIX(GLenum face, GLenum mode);
+GLAPI void APIENTRY glFragmentLightfSGIX(GLenum light, GLenum pname, GLfloat param);
+GLAPI void APIENTRY glFragmentLightfvSGIX(GLenum light, GLenum pname, const GLfloat * params);
+GLAPI void APIENTRY glFragmentLightiSGIX(GLenum light, GLenum pname, GLint param);
+GLAPI void APIENTRY glFragmentLightivSGIX(GLenum light, GLenum pname, const GLint * params);
+GLAPI void APIENTRY glFragmentLightModelfSGIX(GLenum pname, GLfloat param);
+GLAPI void APIENTRY glFragmentLightModelfvSGIX(GLenum pname, const GLfloat * params);
+GLAPI void APIENTRY glFragmentLightModeliSGIX(GLenum pname, GLint param);
+GLAPI void APIENTRY glFragmentLightModelivSGIX(GLenum pname, const GLint * params);
+GLAPI void APIENTRY glFragmentMaterialfSGIX(GLenum face, GLenum pname, GLfloat param);
+GLAPI void APIENTRY glFragmentMaterialfvSGIX(GLenum face, GLenum pname, const GLfloat * params);
+GLAPI void APIENTRY glFragmentMaterialiSGIX(GLenum face, GLenum pname, GLint param);
+GLAPI void APIENTRY glFragmentMaterialivSGIX(GLenum face, GLenum pname, const GLint * params);
+GLAPI void APIENTRY glGetFragmentLightfvSGIX(GLenum light, GLenum pname, GLfloat * params);
+GLAPI void APIENTRY glGetFragmentLightivSGIX(GLenum light, GLenum pname, GLint * params);
+GLAPI void APIENTRY glGetFragmentMaterialfvSGIX(GLenum face, GLenum pname, GLfloat * params);
+GLAPI void APIENTRY glGetFragmentMaterialivSGIX(GLenum face, GLenum pname, GLint * params);
+GLAPI void APIENTRY glLightEnviSGIX(GLenum pname, GLint param);
+
+typedef void (APIENTRY * PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat * params);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint * params);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat * params);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint * params);
+typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat * params);
+typedef void (APIENTRY * PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint * params);
+typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat * params);
+typedef void (APIENTRY * PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint * params);
+typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat * params);
+typedef void (APIENTRY * PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint * params);
+typedef void (APIENTRY * PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param);
+
+#endif /* GL_SGIX_fragment_lighting */
+
+
+
+/*
+ * 129. GL_EXT_bgra
+ */
+#ifndef GL_EXT_bgra
+#define GL_EXT_bgra 1
+
+#define GL_BGR_EXT 0x80E0
+#define GL_BGRA_EXT 0x80E1
+
+#endif /* GL_EXT_bgra */
+
+
+
+/*
+ * 141. GL_EXT_shared_texture_palette (req's GL_EXT_paletted_texture)
+ */
+#ifndef GL_EXT_shared_texture_palette
+#define GL_EXT_shared_texture_palette 1
+
+#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB
+
+#endif /* GL_EXT_shared_texture_palette */
+
+
+
+/*
+ * 149. GL_EXT_fog_coord
+ */
+#ifndef GL_EXT_fog_coord
+#define GL_EXT_fog_coord 1
+
+#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450
+#define GL_FOG_COORDINATE_EXT 0x8451
+#define GL_FRAGMENT_DEPTH_EXT 0x8452
+#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453
+#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454
+#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455
+#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
+#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457
+
+GLAPI void APIENTRY glFogCoordfEXT(GLfloat coord);
+GLAPI void APIENTRY glFogCoordfvEXT(const GLfloat * coord);
+GLAPI void APIENTRY glFogCoorddEXT(GLdouble coord);
+GLAPI void APIENTRY glFogCoorddvEXT(const GLdouble * coord);
+GLAPI void APIENTRY glFogCoordPointerEXT(GLenum type, GLsizei stride, const GLvoid * pointer);
+
+typedef void (APIENTRY * PFNGLFOGCOORDFEXTPROC) (GLfloat coord);
+typedef void (APIENTRY * PFNGLFOGCOORDFVEXTPROC) (const GLfloat * coord);
+typedef void (APIENTRY * PFNGLFOGCOORDDEXTPROC) (GLdouble coord);
+typedef void (APIENTRY * PFNGLFOGCOORDDVEXTPROC) (const GLdouble * coord);
+typedef void (APIENTRY * PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid * pointer);
+
+#endif
+
+
+
+/*
+ * 158. GL_EXT_texture_env_combine
+ */
+#ifndef GL_EXT_texture_env_combine
+#define GL_EXT_texture_env_combine 1
+
+#define GL_COMBINE_EXT 0x8570
+#define GL_COMBINE_RGB_EXT 0x8571
+#define GL_COMBINE_ALPHA_EXT 0x8572
+#define GL_RGB_SCALE_EXT 0x8573
+#define GL_ADD_SIGNED_EXT 0x8574
+#define GL_INTERPOLATE_EXT 0x8575
+#define GL_CONSTANT_EXT 0x8576
+#define GL_PRIMARY_COLOR_EXT 0x8577
+#define GL_PREVIOUS_EXT 0x8578
+#define GL_SOURCE0_RGB_EXT 0x8580
+#define GL_SOURCE1_RGB_EXT 0x8581
+#define GL_SOURCE2_RGB_EXT 0x8582
+#define GL_SOURCE0_ALPHA_EXT 0x8588
+#define GL_SOURCE1_ALPHA_EXT 0x8589
+#define GL_SOURCE2_ALPHA_EXT 0x858A
+#define GL_OPERAND0_RGB_EXT 0x8590
+#define GL_OPERAND1_RGB_EXT 0x8591
+#define GL_OPERAND2_RGB_EXT 0x8592
+#define GL_OPERAND0_ALPHA_EXT 0x8598
+#define GL_OPERAND1_ALPHA_EXT 0x8599
+#define GL_OPERAND2_ALPHA_EXT 0x859A
+
+#endif /* GL_EXT_texture_env_combine */
+
+
+
+/*
+ * 173. GL_EXT_blend_func_separate
+ */
+#ifndef GL_EXT_blend_func_separate
+#define GL_EXT_blend_func_separate 1
+
+#define GL_BLEND_DST_RGB_EXT 0x80C8
+#define GL_BLEND_SRC_RGB_EXT 0x80C9
+#define GL_BLEND_DST_ALPHA_EXT 0x80CA
+#define GL_BLEND_SRC_ALPHA_EXT 0x80CB
+
+GLAPI void APIENTRY glBlendFuncSeparateEXT(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+
+typedef void (APIENTRY * PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+
+#endif /* GL_EXT_blend_func_separate */
+
+
+
+/*
+ * 173. GL_INGR_blend_func_separate
+ */
+#ifndef GL_INGR_blend_func_separate
+#define GL_INGR_blend_func_separate 1
+
+#define GL_BLEND_DST_RGB_INGR 0x80C8
+#define GL_BLEND_SRC_RGB_INGR 0x80C9
+#define GL_BLEND_DST_ALPHA_INGR 0x80CA
+#define GL_BLEND_SRC_ALPHA_INGR 0x80CB
+
+GLAPI void APIENTRY glBlendFuncSeparateINGR(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+
+typedef void (APIENTRY * PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha);
+
+#endif /* GL_INGR_blend_func_separate */
+
+
+
+/*
+ * 176. GL_EXT_stencil_wrap
+ */
+#ifndef GL_EXT_stencil_wrap
+#define GL_EXT_stencil_wrap 1
+
+#define GL_INCR_WRAP_EXT 0x8507
+#define GL_DECR_WRAP_EXT 0x8508
+
+#endif /* GL_EXT_stencil_wrap */
+
+
+
+/*
+ * 179. GL_NV_texgen_reflection
+ */
+#ifndef GL_NV_texgen_reflection
+#define GL_NV_texgen_reflection 1
+
+#define GL_NORMAL_MAP_NV 0x8511
+#define GL_REFLECTION_MAP_NV 0x8512
+
+#endif /* GL_NV_texgen_reflection */
+
+
+
+/*
+ * 185. GL_EXT_texture_env_add
+ */
+#ifndef GL_EXT_texture_env_add
+#define GL_EXT_texture_env_add 1
+
+/* No new tokens or functions */
+
+#endif /* GL_EXT_texture_env_add */
+
+
+
+/*
+ * ??. GL_WIN_swap_hint
+ */
+#ifndef GL_WIN_swap_hint
+#define GL_WIN_swap_hint 1
+
+GLAPI void APIENTRY glAddSwapHintRectWIN(GLint x, GLint y, GLsizei width, GLsizei height);
+
+typedef void (APIENTRY * PFNGLADDSWAPHINTRECTWINPROC) (GLint x, GLint y, GLsizei width, GLsizei height);
+
+#endif /* GL_WIN_swap_hint */
+
+
+
+/*
+ * 188. GL_EXT_vertex_weighting
+ */
+#ifndef GL_EXT_vertex_weighting
+#define GL_EXT_vertex_weighting 1
+
+#define GL_VERTEX_WEIGHTING_EXT 0x8509
+#define GL_MODELVIEW0_EXT 0x1700
+#define GL_MODELVIEW1_EXT 0x850a
+#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850b
+#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850c
+#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850d
+#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850e
+#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850f
+#define GL_MODELVIEW0_STACK_DEPTH_EXT 0x0BA3
+#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502
+#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510
+
+GLAPI void APIENTRY glVertexWeightfEXT(GLfloat weight);
+GLAPI void APIENTRY glVertexWeightfvEXT(const GLfloat *weight);
+GLAPI void APIENTRY glVertexWeightPointerEXT(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+
+typedef void (APIENTRY * PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight);
+typedef void (APIENTRY * PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight);
+typedef void (APIENTRY * PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
+
+#endif
+
+
+
+/*
+ * 189. GL_NV_light_max_exponent
+ */
+#ifndef GL_NV_light_max_exponent
+#define GL_NV_light_max_exponent 1
+
+#define GL_MAX_SHININESS_NV 0x8507
+#define GL_MAX_SPOT_EXPONENT_NV 0x8508
+
+#endif
+
+
+
+/*
+ * 190. GL_NV_vertex_array_range
+ */
+#ifndef GL_NV_vertex_array_range
+#define GL_NV_vertex_array_range 1
+
+/* TOKENS? */
+
+GLAPI void APIENTRY glFlushVertexArrayRangeNV(void);
+GLAPI void APIENTRY glVertexArrayRangeNV(GLsizei size, const GLvoid * pointer);
+
+typedef void (APIENTRY * PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void);
+
+#endif
+
+
+
+/*
+ * 191. GL_NV_register_combiners
+ */
+#ifndef GL_NV_register_combiners
+#define GL_NV_register_combiners 1
+
+/* TOKENS? */
+
+#ifdef VMS
+/*VMS only allows externals of maximal 31 characters! */
+#define glGetCombinerOutputParameterfvNV glGetCombinerOutputParameterfvN
+#define glGetCombinerOutputParameterivNV glGetCombinerOutputParameterivN
+#define glGetFinalCombinerInputParameterfvNV glGetFnlCmbinerInpParameterfvNV
+#define glGetFinalCombinerInputParameterivNV glGetFnlCmbinerInpParameterivNV
+#endif
+
+GLAPI void APIENTRY glCombinerParameterfvNV(GLenum pname, const GLfloat * params);
+GLAPI void APIENTRY glCombinerParameterfNV(GLenum pname, GLfloat param);
+GLAPI void APIENTRY glCombinerParameterivNV(GLenum pname, const GLint * params);
+GLAPI void APIENTRY glCombinerParameteriNV(GLenum pname, GLint param);
+GLAPI void APIENTRY glCombinerInputNV(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+GLAPI void APIENTRY glCombinerOutputNV(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
+GLAPI void APIENTRY glFinalCombinerInputNV(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+GLAPI void APIENTRY glGetCombinerInputParameterfvNV(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params);
+GLAPI void APIENTRY glGetCombinerInputParameterivNV(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params);
+GLAPI void APIENTRY glGetCombinerOutputParameterfvNV(GLenum stage, GLenum portion, GLenum pname, GLfloat * params);
+GLAPI void APIENTRY glGetCombinerOutputParameterivNV(GLenum stage, GLenum portion, GLenum pname, GLint * params);
+GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV(GLenum variable, GLenum pname, GLfloat * params);
+GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV(GLenum variable, GLenum pname, GLint * params);
+
+typedef void (APIENTRY * PFNGLVERTEXARRAYRANGENVPROC) (GLsizei size, const GLvoid * pointer);
+typedef void (APIENTRY * PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat * params);
+typedef void (APIENTRY * PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param);
+typedef void (APIENTRY * PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint * params);
+typedef void (APIENTRY * PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param);
+typedef void (APIENTRY * PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (APIENTRY * PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum);
+typedef void (APIENTRY * PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage);
+typedef void (APIENTRY * PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params);
+typedef void (APIENTRY * PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params);
+typedef void (APIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat * params);
+typedef void (APIENTRY * PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint * params);
+typedef void (APIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat * params);
+typedef void (APIENTRY * PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint * params);
+
+#endif /* GL_NV_register_combiners */
+
+
+
+/*
+ * 192. GL_NV_fog_distance
+ */
+#ifndef GL_NV_fog_distance
+#define GL_NV_fog_distance 1
+
+#define GL_FOG_DISTANCE_MODE_NV 0x855a
+#define GL_EYE_RADIAL_NV 0x855b
+#define GL_EYE_PLANE_ABSOLUTE_NV 0x855c
+
+#endif /* GL_NV_fog_distance*/
+
+
+
+/*
+ * 194. GL_NV_blend_square
+ */
+#ifndef GL_NV_blend_square
+#define GL_NV_blend_square 1
+
+/* no tokens or functions */
+
+#endif /* GL_NV_blend_square */
+
+
+
+/*
+ * 195. GL_NV_texture_env_combine4
+ */
+#ifndef GL_NV_texture_env_combine4
+#define GL_NV_texture_env_combine4 1
+
+#define GL_COMBINE4_NV 0x8503
+#define GL_SOURCE3_RGB_NV 0x8583
+#define GL_SOURCE3_ALPHA_NV 0x858B
+#define GL_OPERAND3_RGB_NV 0x8593
+#define GL_OPERAND3_ALPHA_NV 0x859B
+
+#endif /* GL_NV_texture_env_combine4 */
+
+
+
+/*
+ * 196. GL_MESA_resize_bufffers
+ */
+#ifndef GL_MESA_resize_buffers
+#define GL_MESA_resize_buffers 1
+
+GLAPI void APIENTRY glResizeBuffersMESA(void);
+
+typedef void (APIENTRY * PFNGLRESIZEBUFFERSMESAPROC) (void);
+
+#endif /* GL_MESA_resize_bufffers */
+
+
+
+/*
+ * 197. GL_MESA_window_pos
+ */
+#ifndef GL_MESA_window_pos
+#define GL_MESA_window_pos 1
+
+GLAPI void APIENTRY glWindowPos2iMESA(GLint x, GLint y);
+GLAPI void APIENTRY glWindowPos2sMESA(GLshort x, GLshort y);
+GLAPI void APIENTRY glWindowPos2fMESA(GLfloat x, GLfloat y);
+GLAPI void APIENTRY glWindowPos2dMESA(GLdouble x, GLdouble y);
+GLAPI void APIENTRY glWindowPos2ivMESA(const GLint *p);
+GLAPI void APIENTRY glWindowPos2svMESA(const GLshort *p);
+GLAPI void APIENTRY glWindowPos2fvMESA(const GLfloat *p);
+GLAPI void APIENTRY glWindowPos2dvMESA(const GLdouble *p);
+GLAPI void APIENTRY glWindowPos3iMESA(GLint x, GLint y, GLint z);
+GLAPI void APIENTRY glWindowPos3sMESA(GLshort x, GLshort y, GLshort z);
+GLAPI void APIENTRY glWindowPos3fMESA(GLfloat x, GLfloat y, GLfloat z);
+GLAPI void APIENTRY glWindowPos3dMESA(GLdouble x, GLdouble y, GLdouble z);
+GLAPI void APIENTRY glWindowPos3ivMESA(const GLint *p);
+GLAPI void APIENTRY glWindowPos3svMESA(const GLshort *p);
+GLAPI void APIENTRY glWindowPos3fvMESA(const GLfloat *p);
+GLAPI void APIENTRY glWindowPos3dvMESA(const GLdouble *p);
+GLAPI void APIENTRY glWindowPos4iMESA(GLint x, GLint y, GLint z, GLint w);
+GLAPI void APIENTRY glWindowPos4sMESA(GLshort x, GLshort y, GLshort z, GLshort w);
+GLAPI void APIENTRY glWindowPos4fMESA(GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+GLAPI void APIENTRY glWindowPos4dMESA(GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+GLAPI void APIENTRY glWindowPos4ivMESA(const GLint *p);
+GLAPI void APIENTRY glWindowPos4svMESA(const GLshort *p);
+GLAPI void APIENTRY glWindowPos4fvMESA(const GLfloat *p);
+GLAPI void APIENTRY glWindowPos4dvMESA(const GLdouble *p);
+
+typedef void (APIENTRY * PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y);
+typedef void (APIENTRY * PFNGLWINDOWPOS2IVMESAPROC) (const GLint *p);
+typedef void (APIENTRY * PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *p);
+typedef void (APIENTRY * PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *p);
+typedef void (APIENTRY * PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *p);
+typedef void (APIENTRY * PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z);
+typedef void (APIENTRY * PFNGLWINDOWPOS3IVMESAPROC) (const GLint *p);
+typedef void (APIENTRY * PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *p);
+typedef void (APIENTRY * PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *p);
+typedef void (APIENTRY * PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *p);
+typedef void (APIENTRY * PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w);
+typedef void (APIENTRY * PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w);
+typedef void (APIENTRY * PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w);
+typedef void (APIENTRY * PFNGLWINDOWPOS4IVMESAPROC) (const GLint *p);
+typedef void (APIENTRY * PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *p);
+typedef void (APIENTRY * PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *p);
+typedef void (APIENTRY * PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *p);
+
+#endif /* GL_MESA_window_pos */
+
+
+
+/*
+ * ARB 0. GL_ARB_multitexture
+ */
+#ifndef GL_ARB_multitexture
+#define GL_ARB_multitexture 1
+
+#define GL_TEXTURE0_ARB 0x84C0
+#define GL_TEXTURE1_ARB 0x84C1
+#define GL_TEXTURE2_ARB 0x84C2
+#define GL_TEXTURE3_ARB 0x84C3
+#define GL_TEXTURE4_ARB 0x84C4
+#define GL_TEXTURE5_ARB 0x84C5
+#define GL_TEXTURE6_ARB 0x84C6
+#define GL_TEXTURE7_ARB 0x84C7
+#define GL_TEXTURE8_ARB 0x84C8
+#define GL_TEXTURE9_ARB 0x84C9
+#define GL_TEXTURE10_ARB 0x84CA
+#define GL_TEXTURE11_ARB 0x84CB
+#define GL_TEXTURE12_ARB 0x84CC
+#define GL_TEXTURE13_ARB 0x84CD
+#define GL_TEXTURE14_ARB 0x84CE
+#define GL_TEXTURE15_ARB 0x84CF
+#define GL_TEXTURE16_ARB 0x84D0
+#define GL_TEXTURE17_ARB 0x84D1
+#define GL_TEXTURE18_ARB 0x84D2
+#define GL_TEXTURE19_ARB 0x84D3
+#define GL_TEXTURE20_ARB 0x84D4
+#define GL_TEXTURE21_ARB 0x84D5
+#define GL_TEXTURE22_ARB 0x84D6
+#define GL_TEXTURE23_ARB 0x84D7
+#define GL_TEXTURE24_ARB 0x84D8
+#define GL_TEXTURE25_ARB 0x84D9
+#define GL_TEXTURE26_ARB 0x84DA
+#define GL_TEXTURE27_ARB 0x84DB
+#define GL_TEXTURE28_ARB 0x84DC
+#define GL_TEXTURE29_ARB 0x84DD
+#define GL_TEXTURE30_ARB 0x84DE
+#define GL_TEXTURE31_ARB 0x84DF
+#define GL_ACTIVE_TEXTURE_ARB 0x84E0
+#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1
+#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2
+
+GLAPI void APIENTRY glActiveTextureARB(GLenum texture);
+GLAPI void APIENTRY glClientActiveTextureARB(GLenum texture);
+GLAPI void APIENTRY glMultiTexCoord1dARB(GLenum target, GLdouble s);
+GLAPI void APIENTRY glMultiTexCoord1dvARB(GLenum target, const GLdouble *v);
+GLAPI void APIENTRY glMultiTexCoord1fARB(GLenum target, GLfloat s);
+GLAPI void APIENTRY glMultiTexCoord1fvARB(GLenum target, const GLfloat *v);
+GLAPI void APIENTRY glMultiTexCoord1iARB(GLenum target, GLint s);
+GLAPI void APIENTRY glMultiTexCoord1ivARB(GLenum target, const GLint *v);
+GLAPI void APIENTRY glMultiTexCoord1sARB(GLenum target, GLshort s);
+GLAPI void APIENTRY glMultiTexCoord1svARB(GLenum target, const GLshort *v);
+GLAPI void APIENTRY glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t);
+GLAPI void APIENTRY glMultiTexCoord2dvARB(GLenum target, const GLdouble *v);
+GLAPI void APIENTRY glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t);
+GLAPI void APIENTRY glMultiTexCoord2fvARB(GLenum target, const GLfloat *v);
+GLAPI void APIENTRY glMultiTexCoord2iARB(GLenum target, GLint s, GLint t);
+GLAPI void APIENTRY glMultiTexCoord2ivARB(GLenum target, const GLint *v);
+GLAPI void APIENTRY glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t);
+GLAPI void APIENTRY glMultiTexCoord2svARB(GLenum target, const GLshort *v);
+GLAPI void APIENTRY glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r);
+GLAPI void APIENTRY glMultiTexCoord3dvARB(GLenum target, const GLdouble *v);
+GLAPI void APIENTRY glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r);
+GLAPI void APIENTRY glMultiTexCoord3fvARB(GLenum target, const GLfloat *v);
+GLAPI void APIENTRY glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r);
+GLAPI void APIENTRY glMultiTexCoord3ivARB(GLenum target, const GLint *v);
+GLAPI void APIENTRY glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r);
+GLAPI void APIENTRY glMultiTexCoord3svARB(GLenum target, const GLshort *v);
+GLAPI void APIENTRY glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+GLAPI void APIENTRY glMultiTexCoord4dvARB(GLenum target, const GLdouble *v);
+GLAPI void APIENTRY glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+GLAPI void APIENTRY glMultiTexCoord4fvARB(GLenum target, const GLfloat *v);
+GLAPI void APIENTRY glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q);
+GLAPI void APIENTRY glMultiTexCoord4ivARB(GLenum target, const GLint *v);
+GLAPI void APIENTRY glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+GLAPI void APIENTRY glMultiTexCoord4svARB(GLenum target, const GLshort *v);
+
+typedef void (APIENTRY * PFNGLACTIVETEXTUREARBPROC) (GLenum texture);
+typedef void (APIENTRY * PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q);
+typedef void (APIENTRY * PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v);
+
+#endif /* GL_ARB_multitexture */
+
+
+
+/*
+ * ARB 2. GL_ARB_tranpose_matrix
+ */
+#ifndef GL_ARB_transpose_matrix
+#define GL_ARB_transpose_matrix 1
+
+#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3
+#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4
+#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5
+#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6
+
+GLAPI void APIENTRY glLoadTransposeMatrixdARB( const GLdouble m[16] );
+GLAPI void APIENTRY glLoadTransposeMatrixfARB( const GLfloat m[16] );
+GLAPI void APIENTRY glMultTransposeMatrixdARB( const GLdouble m[16] );
+GLAPI void APIENTRY glMultTransposeMatrixfARB( const GLfloat m[16] );
+
+typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXDARBPROC) ( const GLdouble m[16] );
+typedef void (APIENTRY * PFNGLLOADTRANSPOSEMATRIXFARBPROC) ( const GLfloat m[16] );
+typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXDARBPROC) ( const GLdouble m[16] );
+typedef void (APIENTRY * PFNGLMULTTRANSPOSEMATRIXFARBPROC) ( const GLfloat m[16] );
+
+#endif /* GL_ARB_tranpose_matrix */
+
+
+
+/*
+ * ARB 4. GL_ARB_multisample
+ */
+#ifndef GL_ARB_multisample
+#define GL_ARB_multisample 1
+
+GLAPI void APIENTRY glSamplePassARB(GLenum pass);
+GLAPI void APIENTRY glSampleCoverageARB(GLclampf value, GLboolean invert);
+
+typedef void (APIENTRY * PFNGLSAMPLEPASSARBPROC) (GLenum pass);
+typedef void (APIENTRY * PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert);
+
+#endif /* GL_ARB_multisample */
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* __glext_h_ */
diff --git a/xc/extras/Mesa/include/GL/glx.h b/xc/extras/Mesa/include/GL/glx.h
index edb04af94..89c3fe438 100644
--- a/xc/extras/Mesa/include/GL/glx.h
+++ b/xc/extras/Mesa/include/GL/glx.h
@@ -3,7 +3,7 @@
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -224,7 +224,7 @@ extern Bool glXMakeCurrent( Display *dpy, GLXDrawable drawable,
GLXContext ctx);
extern void glXCopyContext( Display *dpy, GLXContext src, GLXContext dst,
- GLuint mask );
+ unsigned long mask );
extern void glXSwapBuffers( Display *dpy, GLXDrawable drawable );
diff --git a/xc/extras/Mesa/include/GL/xmesa_x.h b/xc/extras/Mesa/include/GL/xmesa_x.h
index a5531d2a0..def044719 100644
--- a/xc/extras/Mesa/include/GL/xmesa_x.h
+++ b/xc/extras/Mesa/include/GL/xmesa_x.h
@@ -30,7 +30,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Authors:
* Kevin E. Martin <kevin@precisioninsight.com>
*
- * $Header: /home/ajax/dri-backup/xc/xc/extras/Mesa/include/GL/Attic/xmesa_x.h,v 1.1.1.1 2000/02/22 15:38:44 kem Exp $
*/
#ifndef _XMESA_X_H_
@@ -78,7 +77,6 @@ typedef XColor XMesaColor;
#define GET_REDMASK(__v) __v->visinfo->red_mask
#define GET_GREENMASK(__v) __v->visinfo->green_mask
#define GET_BLUEMASK(__v) __v->visinfo->blue_mask
-#define GET_BITS_PER_PIXEL(__v) bits_per_pixel(__v->display, __v->visinfo)
#if defined(__cplusplus) || defined(c_plusplus)
#define GET_VISUAL_CLASS(__v) __v->visinfo->c_class
#else
diff --git a/xc/extras/Mesa/include/GL/xmesa_xf86.h b/xc/extras/Mesa/include/GL/xmesa_xf86.h
index 3c8f0f728..a142e9524 100644
--- a/xc/extras/Mesa/include/GL/xmesa_xf86.h
+++ b/xc/extras/Mesa/include/GL/xmesa_xf86.h
@@ -25,12 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
+/* $XFree86: xc/extras/Mesa/include/GL/xmesa_xf86.h,v 1.4 2000/03/03 16:02:10 tsi Exp $ */
/*
* Authors:
* Kevin E. Martin <kevin@precisioninsight.com>
*
- * $Header: /home/ajax/dri-backup/xc/xc/extras/Mesa/include/GL/Attic/xmesa_xf86.h,v 1.1.1.1 2000/02/22 15:38:44 kem Exp $
*/
#ifndef _XMESA_XF86_H_
@@ -128,12 +128,12 @@ do { \
do { \
xRectangle __r[1]; \
(void) __d; \
- ValidateGC(__b, __gc); \
+ ValidateGC((DrawablePtr)__b, __gc); \
__r[0].x = __x; \
__r[0].y = __y; \
__r[0].width = __w; \
__r[0].height = __h; \
- (*__gc->ops->PolyFillRect)(__b, __gc, 1, __r); \
+ (*__gc->ops->PolyFillRect)((DrawablePtr)__b, __gc, 1, __r); \
} while (0)
#define XMesaPutImage(__d,__b,__gc,__i,__sx,__sy,__x,__y,__w,__h) \
@@ -179,13 +179,6 @@ do { \
#define GET_REDMASK(__v) __v->visinfo->redMask
#define GET_GREENMASK(__v) __v->visinfo->greenMask
#define GET_BLUEMASK(__v) __v->visinfo->blueMask
-
-/*XXX this was wrong. However, using nplanes instead may fail when
- * we have overlay planes in the future!
- */
-/*#define GET_BITS_PER_PIXEL(__v) __v->visinfo->bitsPerRGBValue*/
-#define GET_BITS_PER_PIXEL(__v) __v->visinfo->nplanes
-
#define GET_VISUAL_CLASS(__v) __v->visinfo->class
#define GET_VISUAL_DEPTH(__v) __v->visinfo->nplanes
#define GET_BLACK_PIXEL(__v) __v->display->blackPixel
diff --git a/xc/extras/Mesa/src/FX/fxdd.c b/xc/extras/Mesa/src/FX/fxdd.c
index ca5ff9448..b44ec4dbe 100644
--- a/xc/extras/Mesa/src/FX/fxdd.c
+++ b/xc/extras/Mesa/src/FX/fxdd.c
@@ -52,6 +52,7 @@
#if defined(FX)
+#include "image.h"
#include "types.h"
#include "fxdrv.h"
#include "enums.h"
@@ -169,95 +170,110 @@ static void fxDDClearColor(GLcontext *ctx, GLubyte red, GLubyte green,
fxMesa->clearA=alpha;
}
+
/* Clear the color and/or depth buffers */
static GLbitfield fxDDClear(GLcontext *ctx, GLbitfield mask, GLboolean all,
GLint x, GLint y, GLint width, GLint height )
{
fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
const GLuint colorMask = *((GLuint *) &ctx->Color.ColorMask);
+ const FxU16 clearD = (FxU16) (ctx->Depth.Clear * 0xffff);
GLbitfield softwareMask = mask & (DD_STENCIL_BIT | DD_ACCUM_BIT);
- GLbitfield newMask = mask & ~(DD_STENCIL_BIT | DD_ACCUM_BIT);
- if (MESA_VERBOSE&VERBOSE_DRIVER) {
+ if (MESA_VERBOSE & VERBOSE_DRIVER) {
fprintf(stderr,"fxmesa: fxDDClear(%d,%d,%d,%d)\n", (int) x, (int) y,
(int) width, (int) height);
}
- if (mask == (DD_BACK_LEFT_BIT | DD_DEPTH_BIT)
- && colorMask == 0xffffffff) {
- /* common case: clear back color buffer and depth buffer */
- FX_grRenderBuffer(GR_BUFFER_BACKBUFFER);
- FX_grBufferClear(fxMesa->clearC, fxMesa->clearA,
- (FxU16)(ctx->Depth.Clear*0xffff));
- return 0;
- }
-
- /* depth masking */
- if (newMask & DD_DEPTH_BIT) {
- FX_grDepthMask(FXTRUE);
- CLEAR_BITS(newMask, DD_DEPTH_BIT);
- }
- else {
- FX_grDepthMask(FXFALSE);
- }
-
if (colorMask != 0xffffffff) {
- /* do masked color clear in software */
- softwareMask |= (newMask & (DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT));
- CLEAR_BITS(newMask, (DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT));
+ /* do color buffer clears in software */
+ softwareMask |= (mask & (DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT));
+ mask &= ~(DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT);
}
- if (newMask & (DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT)) {
- if (newMask & DD_FRONT_LEFT_BIT) {
- if (mask & DD_DEPTH_BIT) {
- /* XXX it appears that the depth buffer isn't cleared when
- * glRenderBuffer(GR_BUFFER_FRONTBUFFER) is set.
- * This is a work-around/
- */
- FX_grRenderBuffer(GR_BUFFER_BACKBUFFER);
- FX_grColorMask(FXFALSE,FXFALSE);
- FX_grBufferClear(fxMesa->clearC, fxMesa->clearA,
- (FxU16)(ctx->Depth.Clear*0xffff));
- FX_grColorMask(ctx->Color.ColorMask[RCOMP] ||
- ctx->Color.ColorMask[GCOMP] ||
- ctx->Color.ColorMask[BCOMP],
- ctx->Color.ColorMask[ACOMP] && fxMesa->haveAlphaBuffer);
+ /*
+ * This could probably be done fancier but doing each possible case
+ * explicitly is less error prone.
+ */
+ switch (mask) {
+ case DD_BACK_LEFT_BIT | DD_DEPTH_BIT:
+ /* back buffer & depth */
+ FX_grDepthMask(FXTRUE);
+ FX_grRenderBuffer(GR_BUFFER_BACKBUFFER);
+ FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, clearD);
+ if (!ctx->Depth.Mask) {
+ FX_grDepthMask(FXFALSE);
+ }
+ break;
+ case DD_FRONT_LEFT_BIT | DD_DEPTH_BIT:
+ /* XXX it appears that the depth buffer isn't cleared when
+ * glRenderBuffer(GR_BUFFER_FRONTBUFFER) is set.
+ * This is a work-around/
+ */
+ /* clear depth */
+ FX_grRenderBuffer(GR_BUFFER_BACKBUFFER);
+ FX_grColorMask(FXFALSE,FXFALSE);
+ FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, clearD);
+ /* clear front */
+ FX_grColorMask(FXTRUE, ctx->Color.ColorMask[ACOMP] && fxMesa->haveAlphaBuffer);
+ FX_grRenderBuffer(GR_BUFFER_FRONTBUFFER);
+ FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, clearD);
+ break;
+ case DD_BACK_LEFT_BIT:
+ /* back buffer only */
+ FX_grDepthMask(FXFALSE);
+ FX_grRenderBuffer(GR_BUFFER_BACKBUFFER);
+ FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, clearD);
+ if (!ctx->Depth.Mask) {
+ FX_grDepthMask(FXFALSE);
}
+ break;
+ case DD_FRONT_LEFT_BIT:
+ /* front buffer only */
+ FX_grDepthMask(FXFALSE);
FX_grRenderBuffer(GR_BUFFER_FRONTBUFFER);
- FX_grBufferClear(fxMesa->clearC, fxMesa->clearA,
- (FxU16)(ctx->Depth.Clear*0xffff));
- }
-
- if (newMask & DD_BACK_LEFT_BIT) {
+ FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, clearD);
+ if (!ctx->Depth.Mask) {
+ FX_grDepthMask(FXFALSE);
+ }
+ break;
+ case DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT:
+ /* front and back */
+ FX_grDepthMask(FXFALSE);
FX_grRenderBuffer(GR_BUFFER_BACKBUFFER);
+ FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, clearD);
+ FX_grRenderBuffer(GR_BUFFER_FRONTBUFFER);
+ FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, clearD);
+ if (!ctx->Depth.Mask) {
+ FX_grDepthMask(FXFALSE);
+ }
+ break;
+ case DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT | DD_DEPTH_BIT:
+ /* clear front */
+ FX_grDepthMask(FXFALSE);
+ FX_grRenderBuffer(GR_BUFFER_FRONTBUFFER);
+ FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, clearD);
+ /* clear back and depth */
+ FX_grDepthMask(FXTRUE);
+ FX_grRenderBuffer(GR_BUFFER_BACKBUFFER);
+ FX_grBufferClear(fxMesa->clearC, fxMesa->clearA, clearD);
+ if (!ctx->Depth.Mask) {
+ FX_grDepthMask(FXFALSE);
+ }
+ break;
+ case DD_DEPTH_BIT:
+ /* just the depth buffer */
+ FX_grColorMask(FXFALSE,FXFALSE);
FX_grBufferClear(fxMesa->clearC, fxMesa->clearA,
(FxU16)(ctx->Depth.Clear*0xffff));
- }
-
- CLEAR_BITS(newMask, (DD_FRONT_LEFT_BIT | DD_BACK_LEFT_BIT));
- }
- else if (mask & DD_DEPTH_BIT) {
- /* clear depth but not color */
- FX_grColorMask(FXFALSE,FXFALSE);
- FX_grBufferClear(fxMesa->clearC, fxMesa->clearA,
- (FxU16)(ctx->Depth.Clear*0xffff));
- FX_grColorMask(ctx->Color.ColorMask[RCOMP] ||
- ctx->Color.ColorMask[GCOMP] ||
- ctx->Color.ColorMask[BCOMP],
- ctx->Color.ColorMask[ACOMP] && fxMesa->haveAlphaBuffer);
- }
-
- /* Restore depth mask state */
- if (mask & DD_DEPTH_BIT) {
- if (ctx->Depth.Mask) {
- FX_grDepthMask(FXTRUE);
- }
- else {
- FX_grDepthMask(FXFALSE);
- }
+ FX_grColorMask(FXTRUE, ctx->Color.ColorMask[ACOMP] && fxMesa->haveAlphaBuffer);
+ break;
+ default:
+ /* error */
+ ;
}
- return newMask | softwareMask;
+ return softwareMask;
}
@@ -311,11 +327,10 @@ static void fxDDSetReadBuffer(GLcontext *ctx, GLframebuffer *buffer,
#ifdef XF86DRI
+/* test if window coord (px,py) is visible */
static GLboolean inClipRects(fxMesaContext fxMesa, int px, int py)
{
int i;
-
- py=fxMesa->height+fxMesa->y_offset-py;
for (i=0; i<fxMesa->numClipRects; i++) {
if ((px>=fxMesa->pClipRects[i].x1) &&
(px<fxMesa->pClipRects[i].x2) &&
@@ -333,127 +348,170 @@ static GLboolean fxDDDrawBitMap(GLcontext *ctx, GLint px, GLint py,
const GLubyte *bitmap)
{
fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- FxU16 *p;
GrLfbInfo_t info;
- const GLubyte *pb;
- int x,y,xmin,xmax,ymin,ymax;
- GLint r,g,b,a,scrwidth,scrheight,stride;
FxU16 color;
-
- /* TODO: with a little work, these bitmap unpacking parameter restrictions
- * could be removed.
- */
- if((unpack->Alignment!=1) ||
- (unpack->RowLength!=0) ||
- (unpack->SkipPixels!=0) ||
- (unpack->SkipRows!=0) ||
- (unpack->SwapBytes) ||
- (unpack->LsbFirst))
+ const struct gl_pixelstore_attrib *finalUnpack;
+ struct gl_pixelstore_attrib scissoredUnpack;
+
+ /* check if there's any raster operations enabled which we can't handle */
+ if (ctx->RasterMask & (ALPHATEST_BIT |
+ BLEND_BIT |
+ DEPTH_BIT |
+ FOG_BIT |
+ LOGIC_OP_BIT |
+ SCISSOR_BIT |
+ STENCIL_BIT |
+ MASKING_BIT |
+ ALPHABUF_BIT |
+ MULTI_DRAW_BIT))
return GL_FALSE;
if (ctx->Scissor.Enabled) {
- xmin=ctx->Scissor.X;
- xmax=ctx->Scissor.X+ctx->Scissor.Width;
- ymin=ctx->Scissor.Y;
- ymax=ctx->Scissor.Y+ctx->Scissor.Height;
- } else {
- xmin=0;
- xmax=fxMesa->width;
- ymin=0;
- ymax=fxMesa->height;
- }
-
- xmin+=fxMesa->x_offset;
- xmax+=fxMesa->x_offset;
-
-#ifdef XF86DRI
-#define ISCLIPPED(rx, ry) ( ((rx)<xmin) || ((rx)>=xmax) || !inClipRects(fxMesa, rx, ry))
-#else
-#define ISCLIPPED(rx, ry) ( ((rx)<xmin) || ((rx)>=xmax) )
-#endif
-#define DRAWBIT(i) { \
- if(!ISCLIPPED(x+px, y)) \
- if( (*pb) & (1<<(i)) ) \
- (*p)=color; \
- p++; \
- x++; \
- if(x>=width) { \
- pb++; \
- break; \
- } \
-}
-
- scrwidth=fxMesa->width;
- scrheight=fxMesa->height;
-
- if ((px>=scrwidth) || (px+width<=0) || (py>=scrheight) || (py+height<=0))
- return GL_TRUE;
+ /* This is a bit tricky, but by carefully adjusting the px, py,
+ * width, height, skipPixels and skipRows values we can do
+ * scissoring without special code in the rendering loop.
+ */
- pb=bitmap;
+ /* we'll construct a new pixelstore struct */
+ finalUnpack = &scissoredUnpack;
+ scissoredUnpack = *unpack;
+ if (scissoredUnpack.RowLength == 0)
+ scissoredUnpack.RowLength = width;
+
+ /* clip left */
+ if (px < ctx->Scissor.X) {
+ scissoredUnpack.SkipPixels += (ctx->Scissor.X - px);
+ width -= (ctx->Scissor.X - px);
+ px = ctx->Scissor.X;
+ }
+ /* clip right */
+ if (px + width >= ctx->Scissor.X + ctx->Scissor.Width) {
+ width -= (px + width - (ctx->Scissor.X + ctx->Scissor.Width));
+ }
+ /* clip bottom */
+ if (py < ctx->Scissor.Y) {
+ scissoredUnpack.SkipRows += (ctx->Scissor.Y - py);
+ height -= (ctx->Scissor.Y - py);
+ py = ctx->Scissor.Y;
+ }
+ /* clip top */
+ if (py + height >= ctx->Scissor.Y + ctx->Scissor.Height) {
+ height -= (py + height - (ctx->Scissor.Y + ctx->Scissor.Height));
+ }
- if(py<0) {
- pb+=(height*(-py)) >> (3+1);
- height+=py;
- py=0;
+ if (width <= 0 || height <= 0)
+ return GL_TRUE; /* totally scissored away */
+ }
+ else {
+ finalUnpack = unpack;
}
- if (py+height>=scrheight)
- height-=(py+height)-scrheight;
+ /* compute pixel value */
+ {
+ GLint r = (GLint) (ctx->Current.RasterColor[0] * 255.0f);
+ GLint g = (GLint) (ctx->Current.RasterColor[1] * 255.0f);
+ GLint b = (GLint) (ctx->Current.RasterColor[2] * 255.0f);
+ /*GLint a = (GLint)(ctx->Current.RasterColor[3]*255.0f);*/
+ if (fxMesa->bgrOrder)
+ color = (FxU16)
+ ( ((FxU16)0xf8 & b) << (11-3)) |
+ ( ((FxU16)0xfc & g) << (5-3+1)) |
+ ( ((FxU16)0xf8 & r) >> 3);
+ else
+ color = (FxU16)
+ ( ((FxU16)0xf8 & r) << (11-3)) |
+ ( ((FxU16)0xfc & g) << (5-3+1)) |
+ ( ((FxU16)0xf8 & b) >> 3);
+ }
- info.size=sizeof(info);
- if(!FX_grLfbLock(GR_LFB_WRITE_ONLY,
- fxMesa->currentFB,
- GR_LFBWRITEMODE_565,
- GR_ORIGIN_UPPER_LEFT,
- FXFALSE,
- &info)) {
+ info.size = sizeof(info);
+ if (!FX_grLfbLock(GR_LFB_WRITE_ONLY,
+ fxMesa->currentFB,
+ GR_LFBWRITEMODE_565,
+ GR_ORIGIN_UPPER_LEFT,
+ FXFALSE,
+ &info)) {
#ifndef FX_SILENT
fprintf(stderr,"fx Driver: error locking the linear frame buffer\n");
#endif
return GL_TRUE;
}
- r=(GLint)(ctx->Current.RasterColor[0]*255.0f);
- g=(GLint)(ctx->Current.RasterColor[1]*255.0f);
- b=(GLint)(ctx->Current.RasterColor[2]*255.0f);
- a=(GLint)(ctx->Current.RasterColor[3]*255.0f);
- if (fxMesa->bgrOrder)
- color=(FxU16)
- ( ((FxU16)0xf8 & b) <<(11-3)) |
- ( ((FxU16)0xfc & g) <<(5-3+1)) |
- ( ((FxU16)0xf8 & r) >> 3);
- else
- color=(FxU16)
- ( ((FxU16)0xf8 & r) <<(11-3)) |
- ( ((FxU16)0xfc & g) <<(5-3+1)) |
- ( ((FxU16)0xf8 & b) >> 3);
-
- stride=info.strideInBytes>>1;
-
- /* This code is a bit slow... */
-
- if (py>ymin) ymin=py;
- if (py+height<ymax) ymax=py+height;
-
- px+=fxMesa->x_offset;
- scrheight=fxMesa->height+fxMesa->y_offset;
-
- for(y=ymin; y<ymax; y++) {
-
- p=((FxU16 *)info.lfbPtr)+px+((scrheight-y)*stride);
+#ifdef XF86DRI
+#define INSIDE(c, x, y) inClipRects((c), (x), (y))
+#else
+#define INSIDE(c, x, y) (1)
+#endif
- for(x=0;;) {
- DRAWBIT(7); DRAWBIT(6); DRAWBIT(5); DRAWBIT(4);
- DRAWBIT(3); DRAWBIT(2); DRAWBIT(1); DRAWBIT(0);
- pb++;
+ {
+ const GLint winX = fxMesa->x_offset;
+ const GLint winY = fxMesa->y_offset + fxMesa->height - 1;
+ /* The dest stride depends on the hardware and whether we're drawing
+ * to the front or back buffer. This compile-time test seems to do
+ * the job for now.
+ */
+#ifdef XF86DRI
+ const GLint dstStride = (fxMesa->glCtx->Color.DrawBuffer == GL_FRONT)
+ ? (fxMesa->screen_width) : (info.strideInBytes / 2);
+#else
+ const GLint dstStride = info.strideInBytes / 2; /* stride in GLushorts */
+#endif
+ GLint row;
+ /* compute dest address of bottom-left pixel in bitmap */
+ GLushort *dst = (GLushort *) info.lfbPtr
+ + (winY - py) * dstStride
+ + (winX + px);
+
+ for (row = 0; row < height; row++) {
+ const GLubyte *src = (const GLubyte *) gl_pixel_addr_in_image( finalUnpack,
+ bitmap, width, height, GL_COLOR_INDEX, GL_BITMAP, 0, row, 0 );
+ if (finalUnpack->LsbFirst) {
+ /* least significan bit first */
+ GLubyte mask = 1U << (finalUnpack->SkipPixels & 0x7);
+ GLint col;
+ for (col=0; col<width; col++) {
+ if (*src & mask) {
+ if (INSIDE(fxMesa, winX + px + col, winY - py - row))
+ dst[col] = color;
+ }
+ if (mask == 128U) {
+ src++;
+ mask = 1U;
+ }
+ else {
+ mask = mask << 1;
+ }
+ }
+ if (mask != 1)
+ src++;
+ }
+ else {
+ /* most significan bit first */
+ GLubyte mask = 128U >> (finalUnpack->SkipPixels & 0x7);
+ GLint col;
+ for (col=0; col<width; col++) {
+ if (*src & mask) {
+ if (INSIDE(fxMesa, winX + px + col, winY - py - row))
+ dst[col] = color;
+ }
+ if (mask == 1U) {
+ src++;
+ mask = 128U;
+ }
+ else {
+ mask = mask >> 1;
+ }
+ }
+ if (mask != 128)
+ src++;
+ }
+ dst -= dstStride;
}
}
- FX_grLfbUnlock(GR_LFB_WRITE_ONLY,fxMesa->currentFB);
-
-#undef ISCLIPPED
-#undef DRAWBIT
+#undef INSIDE
+ FX_grLfbUnlock(GR_LFB_WRITE_ONLY,fxMesa->currentFB);
return GL_TRUE;
}
@@ -510,7 +568,7 @@ static const GLubyte *fxDDGetString(GLcontext *ctx, GLenum name)
}
}
/* now make the GL_RENDERER string */
- sprintf(buffer, "Mesa DRI %s 20000208", hardware);
+ sprintf(buffer, "Mesa DRI %s 20000224", hardware);
return buffer;
}
case GL_VENDOR:
@@ -650,6 +708,7 @@ int fxDDInitFxMesaContext( fxMesaContext fxMesa )
FX_grLfbWriteColorFormat(GR_COLORFORMAT_ABGR); /* Not every Glide has this */
#endif
+ fxMesa->textureAlign=FX_grGetInteger(FX_TEXTURE_ALIGN);
fxMesa->glCtx->Const.MaxTextureLevels=9;
fxMesa->glCtx->Const.MaxTextureSize=256;
fxMesa->glCtx->Const.MaxTextureUnits=fxMesa->emulateTwoTMUs ? 2 : 1;
@@ -692,28 +751,55 @@ int fxDDInitFxMesaContext( fxMesaContext fxMesa )
}
-
+#if 0
+/* Example extension function */
+static void fxFooBarEXT(GLint i)
+{
+ printf("You called glFooBarEXT(%d)\n", i);
+}
+#endif
void fxDDInitExtensions( GLcontext *ctx )
{
fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
- gl_extensions_add( ctx, DEFAULT_ON, "3DFX_set_global_palette", 0 );
- gl_extensions_add( ctx, DEFAULT_ON, "GL_FXMESA_global_texture_lod_bias", 0);
+ gl_extensions_disable(ctx, "GL_EXT_blend_logic_op");
+ gl_extensions_disable(ctx, "GL_EXT_blend_minmax");
+ gl_extensions_disable(ctx, "GL_EXT_blend_subtract");
+ gl_extensions_disable(ctx, "GL_EXT_blend_color");
+ gl_extensions_disable(ctx, "GL_EXT_paletted_texture");
+
+ gl_extensions_add(ctx, DEFAULT_ON, "3DFX_set_global_palette", 0);
+ gl_extensions_add(ctx, DEFAULT_ON, "GL_FXMESA_global_texture_lod_bias", 0);
- if(fxMesa->haveTwoTMUs)
- gl_extensions_add( ctx, DEFAULT_ON, "GL_EXT_texture_env_add", 0);
+ if (!fxMesa->haveTwoTMUs)
+ gl_extensions_disable(ctx, "GL_EXT_texture_env_add");
if (!fxMesa->emulateTwoTMUs)
- gl_extensions_disable( ctx, "GL_ARB_multitexture" );
+ gl_extensions_disable(ctx, "GL_ARB_multitexture");
+
+
+ /* Example of hooking in an extension function.
+ * For DRI-based drivers, also see __driRegisterExtensions in the
+ * tdfx_xmesa.c file.
+ */
+#if 0
+ {
+ void **dispatchTable = (void **) ctx->Exec;
+ const int _gloffset_FooBarEXT = 555; /* just an example number! */
+ const int tabSize = _glapi_get_dispatch_table_size();
+ assert(_gloffset_FooBarEXT < tabSize);
+ dispatchTable[_gloffset_FooBarEXT] = (void *) fxFooBarEXT;
+ /* XXX You would also need to hook into the display list dispatch
+ * table. Really, the implementation of extensions might as well
+ * be in the core of Mesa since core Mesa and the device driver
+ * is one big shared lib.
+ */
+ }
+#endif
}
-/*
- This driver may need to move the drawing operations to a different sub
- window. This modifies the viewport command to add our X,Y offset to all
- drawn objects that go through the viewport transformation.
-*/
/************************************************************************/
/************************************************************************/
diff --git a/xc/extras/Mesa/src/FX/fxdrv.h b/xc/extras/Mesa/src/FX/fxdrv.h
index 208801e87..e12a3244f 100644
--- a/xc/extras/Mesa/src/FX/fxdrv.h
+++ b/xc/extras/Mesa/src/FX/fxdrv.h
@@ -478,7 +478,9 @@ struct tfxMesaContext {
GLenum fogTableMode;
GLfloat fogDensity;
+ GLfloat fogStart, fogEnd;
GrFog_t *fogTable;
+ GLint textureAlign;
/* Acc. functions */
diff --git a/xc/extras/Mesa/src/FX/fxfasttmp.h b/xc/extras/Mesa/src/FX/fxfasttmp.h
index 11a421230..f97b8108f 100644
--- a/xc/extras/Mesa/src/FX/fxfasttmp.h
+++ b/xc/extras/Mesa/src/FX/fxfasttmp.h
@@ -145,7 +145,7 @@ static void TAG(fx_project_vertices)( GLfloat *first,
for ( f = first ; f != last ; STRIDE_F(f, stride))
{
- GLfloat oow = 1.0f/f[3]; /* urp! */
+ GLfloat oow = 1.0f/f[CLIP_WCOORD]; /* urp! */
#if FX_USE_PARGB
if (TYPE & SETUP_RGBA) {
@@ -184,7 +184,7 @@ static void TAG(fx_project_clipped_vertices)( GLfloat *first,
for ( f = first ; f != last ; STRIDE_F(f, stride), mask++) {
if (!*mask) {
- GLfloat oow = 1.0f / f[3];
+ GLfloat oow = 1.0f / f[CLIP_WCOORD];
#if FX_USE_PARGB
if (TYPE & SETUP_RGBA) {
const GLuint r = f[CLIP_R];
diff --git a/xc/extras/Mesa/src/FX/fxglidew.c b/xc/extras/Mesa/src/FX/fxglidew.c
index 9084cc5fe..790e5c923 100644
--- a/xc/extras/Mesa/src/FX/fxglidew.c
+++ b/xc/extras/Mesa/src/FX/fxglidew.c
@@ -68,6 +68,9 @@ FxI32 FX_grGetInteger_NoLock(FxU32 pname)
return FXFALSE;
case FX_PENDING_BUFFERSWAPS:
return grBufferNumPending();
+ case FX_TEXTURE_ALIGN:
+ /* This is a guess from reading the glide3 docs */
+ return 8;
default:
if (MESA_VERBOSE&VERBOSE_DRIVER) {
fprintf(stderr,"Wrong parameter in FX_grGetInteger!\n");
@@ -84,6 +87,7 @@ FxI32 FX_grGetInteger_NoLock(FxU32 pname)
case FX_GLIDE_STATE_SIZE:
case FX_LFB_PIXEL_PIPE:
case FX_PENDING_BUFFERSWAPS:
+ case FX_TEXTURE_ALIGN:
grname = pname;
break;
default:
diff --git a/xc/extras/Mesa/src/FX/fxglidew.h b/xc/extras/Mesa/src/FX/fxglidew.h
index 614949f71..28556d8c5 100644
--- a/xc/extras/Mesa/src/FX/fxglidew.h
+++ b/xc/extras/Mesa/src/FX/fxglidew.h
@@ -66,11 +66,13 @@
#define FX_GLIDE_STATE_SIZE 0x0006 /* Size of buffer, in bytes, needed to save Glide state. */
#define FX_LFB_PIXEL_PIPE 0x0009 /* 1 if LFB writes can go through the 3D pixel pipe. */
#define FX_PENDING_BUFFERSWAPS 0x0014 /* The number of buffer swaps pending. */
+ #define FX_TEXTURE_ALIGN 0x0024 /* The required alignment for textures */
#else
- #define FX_FOG_TABLE_ENTRIES GR_FOG_TABLE_ENTRIES
+ #define FX_FOG_TABLE_ENTRIES GR_FOG_TABLE_ENTRIES
#define FX_GLIDE_STATE_SIZE GR_GLIDE_STATE_SIZE
- #define FX_LFB_PIXEL_PIPE GR_LFB_PIXEL_PIPE
- #define FX_PENDING_BUFFERSWAPS GR_PENDING_BUFFERSWAPS
+ #define FX_LFB_PIXEL_PIPE GR_LFB_PIXEL_PIPE
+ #define FX_PENDING_BUFFERSWAPS GR_PENDING_BUFFERSWAPS
+ #define FX_TEXTURE_ALIGN GR_TEXTURE_ALIGN
#endif
/*
diff --git a/xc/extras/Mesa/src/FX/fxsetup.c b/xc/extras/Mesa/src/FX/fxsetup.c
index 6ebd037fd..8707aed1d 100644
--- a/xc/extras/Mesa/src/FX/fxsetup.c
+++ b/xc/extras/Mesa/src/FX/fxsetup.c
@@ -66,8 +66,6 @@ static void fxSetupTexture_NoLock(GLcontext *ctx);
static void fxSetupTexture(GLcontext *ctx);
static void fxSetupBlend(GLcontext *ctx);
static void fxSetupDepthTest(GLcontext *ctx);
-static void fxFogTableGenerate(GLcontext *ctx);
-static void fxSetupFog(GLcontext *ctx, GLboolean forceTableRebuild);
static void fxSetupScissor(GLcontext *ctx);
static void fxSetupCull(GLcontext *ctx);
static void gl_print_fx_state_flags( const char *msg, GLuint flags);
@@ -1424,67 +1422,58 @@ static void fxSetupColorMask(GLcontext *ctx)
/**************************** Fog Mode SetUp ****************************/
/************************************************************************/
-static void fxFogTableGenerate(GLcontext *ctx)
+/*
+ * This is called during state update in order to update the Glide fog state.
+ */
+static void fxSetupFog(GLcontext *ctx)
{
- int i;
- float f,eyez;
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
-
- for(i=0;i<FX_grGetInteger(FX_FOG_TABLE_ENTRIES);i++) {
- eyez=guFogTableIndexToW(i);
-
- switch(ctx->Fog.Mode) {
- case GL_LINEAR:
- f=(ctx->Fog.End-eyez)/(ctx->Fog.End-ctx->Fog.Start);
- break;
- case GL_EXP:
- f=exp(-ctx->Fog.Density*eyez);
- break;
- case GL_EXP2:
- f=exp(-ctx->Fog.Density*ctx->Fog.Density*eyez*eyez);
- break;
- default: /* That should never happen */
- f=0.0f;
- break;
- }
+ if (ctx->Fog.Enabled && ctx->FogMode==FOG_FRAGMENT) {
+ fxMesaContext fxMesa = FX_CONTEXT(ctx);
- fxMesa->fogTable[i]=(GrFog_t)((1.0f-CLAMP(f,0.0f,1.0f))*255.0f);
- }
-}
-
-static void fxSetupFog(GLcontext *ctx, GLboolean forceTableRebuild)
-{
- fxMesaContext fxMesa=(fxMesaContext)ctx->DriverCtx;
-
- if(ctx->Fog.Enabled && ctx->FogMode==FOG_FRAGMENT) {
+ /* update fog color */
GLubyte col[4];
- FX_grFogMode(GR_FOG_WITH_TABLE);
-
col[0]=(unsigned int)(255*ctx->Fog.Color[0]);
col[1]=(unsigned int)(255*ctx->Fog.Color[1]);
col[2]=(unsigned int)(255*ctx->Fog.Color[2]);
col[3]=(unsigned int)(255*ctx->Fog.Color[3]);
-
FX_grFogColorValue(FXCOLOR4(col));
- if(forceTableRebuild ||
- (fxMesa->fogTableMode!=ctx->Fog.Mode) ||
- (fxMesa->fogDensity!=ctx->Fog.Density)) {
- fxFogTableGenerate(ctx);
-
- fxMesa->fogTableMode=ctx->Fog.Mode;
- fxMesa->fogDensity=ctx->Fog.Density;
+ if(fxMesa->fogTableMode != ctx->Fog.Mode ||
+ fxMesa->fogDensity != ctx->Fog.Density ||
+ fxMesa->fogStart != ctx->Fog.Start ||
+ fxMesa->fogEnd != ctx->Fog.End) {
+ /* reload the fog table */
+ switch (ctx->Fog.Mode) {
+ case GL_LINEAR:
+ guFogGenerateLinear(fxMesa->fogTable, ctx->Fog.Start, ctx->Fog.End);
+ break;
+ case GL_EXP:
+ guFogGenerateExp(fxMesa->fogTable, ctx->Fog.Density);
+ break;
+ case GL_EXP2:
+ guFogGenerateExp2(fxMesa->fogTable, ctx->Fog.Density);
+ break;
+ default:
+ ;
+ }
+ fxMesa->fogTableMode = ctx->Fog.Mode;
+ fxMesa->fogDensity = ctx->Fog.Density;
+ fxMesa->fogStart = ctx->Fog.Start;
+ fxMesa->fogEnd = ctx->Fog.End;
}
-
+
FX_grFogTable(fxMesa->fogTable);
- } else
+ FX_grFogMode(GR_FOG_WITH_TABLE);
+ }
+ else {
FX_grFogMode(GR_FOG_DISABLE);
+ }
}
void fxDDFogfv( GLcontext *ctx, GLenum pname, const GLfloat *params )
{
FX_CONTEXT(ctx)->new_state |= FX_NEW_FOG;
- ctx->Driver.RenderStart = fxSetupFXUnits;
+ ctx->Driver.RenderStart = fxSetupFXUnits; /* XXX why is this here? */
}
/************************************************************************/
@@ -1823,7 +1812,7 @@ void fxSetupFXUnits( GLcontext *ctx )
fxSetupDepthTest(ctx);
if (newstate & FX_NEW_FOG)
- fxSetupFog(ctx,GL_FALSE);
+ fxSetupFog(ctx);
if (newstate & FX_NEW_SCISSOR)
fxSetupScissor(ctx);
diff --git a/xc/extras/Mesa/src/X/fakeglx.c b/xc/extras/Mesa/src/X/fakeglx.c
index 76ae81c64..16fb2f622 100644
--- a/xc/extras/Mesa/src/X/fakeglx.c
+++ b/xc/extras/Mesa/src/X/fakeglx.c
@@ -1206,12 +1206,12 @@ Fake_glXDestroyGLXPixmap( Display *dpy, GLXPixmap pixmap )
static void
Fake_glXCopyContext( Display *dpy, GLXContext src, GLXContext dst,
- GLuint mask )
+ unsigned long mask )
{
XMesaContext xm_src = (XMesaContext) src;
XMesaContext xm_dst = (XMesaContext) dst;
(void) dpy;
- gl_copy_context( xm_src->gl_ctx, xm_dst->gl_ctx, mask );
+ gl_copy_context( xm_src->gl_ctx, xm_dst->gl_ctx, (GLuint) mask );
}
diff --git a/xc/extras/Mesa/src/X/glxapi.c b/xc/extras/Mesa/src/X/glxapi.c
index e7620a544..5ee5d7419 100644
--- a/xc/extras/Mesa/src/X/glxapi.c
+++ b/xc/extras/Mesa/src/X/glxapi.c
@@ -168,7 +168,8 @@ XVisualInfo *glXChooseVisual(Display *dpy, int screen, int *list)
}
-void glXCopyContext(Display *dpy, GLXContext src, GLXContext dst, GLuint mask)
+void glXCopyContext(Display *dpy, GLXContext src, GLXContext dst,
+ unsigned long mask)
{
struct _glxapi_table *t = get_dispatch(dpy);
if (!t)
diff --git a/xc/extras/Mesa/src/X/glxapi.h b/xc/extras/Mesa/src/X/glxapi.h
index f0771bfd5..ae8433987 100644
--- a/xc/extras/Mesa/src/X/glxapi.h
+++ b/xc/extras/Mesa/src/X/glxapi.h
@@ -55,7 +55,7 @@
struct _glxapi_table {
/* GLX 1.0 functions */
XVisualInfo *(*ChooseVisual)(Display *dpy, int screen, int *list);
- void (*CopyContext)(Display *dpy, GLXContext src, GLXContext dst, GLuint mask);
+ void (*CopyContext)(Display *dpy, GLXContext src, GLXContext dst, unsigned long mask);
GLXContext (*CreateContext)(Display *dpy, XVisualInfo *visinfo, GLXContext shareList, Bool direct);
GLXPixmap (*CreateGLXPixmap)(Display *dpy, XVisualInfo *visinfo, Pixmap pixmap);
void (*DestroyContext)(Display *dpy, GLXContext ctx);
diff --git a/xc/extras/Mesa/src/X/xmesa1.c b/xc/extras/Mesa/src/X/xmesa1.c
index 79a4c9e76..56e6fcad7 100644
--- a/xc/extras/Mesa/src/X/xmesa1.c
+++ b/xc/extras/Mesa/src/X/xmesa1.c
@@ -255,15 +255,34 @@ static GLint gamma_adjust( GLfloat gamma, GLint value, GLint max )
/*
* Return the true number of bits per pixel for XImages.
- * For example, if we request a 24-bit deep visual we may actually
- * get a 32-bit per pixel XImage. This function gives us this information.
+ * For example, if we request a 24-bit deep visual we may actually need/get
+ * 32bpp XImages. This function returns the appropriate bpp.
* Input: dpy - the X display
* visinfo - desribes the visual to be used for XImages
* Return: true number of bits per pixel for XImages
*/
-#ifndef XFree86Server
-static int bits_per_pixel( XMesaDisplay *dpy, XVisualInfo *visinfo )
+#define GET_BITS_PER_PIXEL(xmv) bits_per_pixel(xmv)
+
+#ifdef XFree86Server
+
+static int bits_per_pixel( XMesaVisual xmv )
+{
+ XMesaVisualInfo visinfo = xmv->visinfo;
+ const int depth = visinfo->nplanes;
+ int i;
+ for (i = 0; i < screenInfo.numPixmapFormats; i++) {
+ if (screenInfo.formats[i].depth == depth)
+ return screenInfo.formats[i].bitsPerPixel;
+ }
+ return depth; /* should never get here, but this should be safe */
+}
+
+#else
+
+static int bits_per_pixel( XMesaVisual xmv )
{
+ XMesaDisplay *dpy = xmv->display;
+ XMesaVisualInfo visinfo = xmv->visinfo;
XMesaImage *img;
int bitsPerPixel;
/* Create a temporary XImage */
@@ -527,6 +546,26 @@ static GLboolean alloc_shm_back_buffer( XMesaBuffer b )
return GL_FALSE;
}
+ if (b->backimage) {
+ int height = b->backimage->height;
+ /* Needed by PIXELADDR1 macro */
+ b->ximage_width1 = b->backimage->bytes_per_line;
+ b->ximage_origin1 = (GLubyte *) b->backimage->data
+ + b->ximage_width1 * (height-1);
+ /* Needed by PIXELADDR2 macro */
+ b->ximage_width2 = b->backimage->bytes_per_line / 2;
+ b->ximage_origin2 = (GLushort *) b->backimage->data
+ + b->ximage_width2 * (height-1);
+ /* Needed by PIXELADDR3 macro */
+ b->ximage_width3 = b->backimage->bytes_per_line;
+ b->ximage_origin3 = (GLubyte *) b->backimage->data
+ + b->ximage_width3 * (height-1);
+ /* Needed by PIXELADDR4 macro */
+ b->ximage_width4 = b->backimage->width;
+ b->ximage_origin4 = (GLuint *) b->backimage->data
+ + b->ximage_width4 * (height-1);
+ }
+
return GL_TRUE;
#else
/* Can't compile XSHM support */
@@ -560,9 +599,9 @@ void xmesa_alloc_back_buffer( XMesaBuffer b )
/* Allocate new back buffer */
#ifdef XFree86Server
- {
+ {
/* Allocate a regular XImage for the back buffer. */
- b->backimage = XMesaCreateImage(GET_VISUAL_DEPTH(b->xm_visual),
+ b->backimage = XMesaCreateImage(b->xm_visual->BitsPerPixel,
b->width, b->height, NULL);
#else
if (b->shm==0
@@ -971,7 +1010,6 @@ static void setup_truecolor( XMesaVisual v, XMesaBuffer buffer,
XMesaWindow window, XMesaColormap cmap )
{
unsigned long rmask, gmask, bmask;
- int bitsPerPixel;
(void) buffer;
(void) window;
(void) cmap;
@@ -1056,14 +1094,11 @@ static void setup_truecolor( XMesaVisual v, XMesaBuffer buffer,
/*
* Now check for TrueColor visuals which we can optimize.
*/
-
- bitsPerPixel = GET_BITS_PER_PIXEL(v);
-
if ( GET_REDMASK(v) ==0x0000ff
&& GET_GREENMASK(v)==0x00ff00
&& GET_BLUEMASK(v) ==0xff0000
&& CHECK_BYTE_ORDER(v)
- && bitsPerPixel==32
+ && v->BitsPerPixel==32
&& sizeof(GLuint)==4
&& v->RedGamma==1.0 && v->GreenGamma==1.0 && v->BlueGamma==1.0) {
/* common 32 bpp config used on SGI, Sun */
@@ -1073,7 +1108,7 @@ static void setup_truecolor( XMesaVisual v, XMesaBuffer buffer,
&& GET_GREENMASK(v)==0x00ff00
&& GET_BLUEMASK(v) ==0x0000ff
&& CHECK_BYTE_ORDER(v)
- && bitsPerPixel==32
+ && v->BitsPerPixel==32
&& sizeof(GLuint)==4
&& v->RedGamma==1.0 && v->GreenGamma==1.0 && v->BlueGamma==1.0) {
/* common 32 bpp config used on Linux, HP, IBM */
@@ -1083,7 +1118,7 @@ static void setup_truecolor( XMesaVisual v, XMesaBuffer buffer,
&& GET_GREENMASK(v)==0x00ff00
&& GET_BLUEMASK(v) ==0x0000ff
&& CHECK_BYTE_ORDER(v)
- && bitsPerPixel==24
+ && v->BitsPerPixel==24
&& sizeof(GLuint)==4
&& v->RedGamma==1.0 && v->GreenGamma==1.0 && v->BlueGamma==1.0) {
/* common packed 24 bpp config used on Linux */
@@ -1093,7 +1128,7 @@ static void setup_truecolor( XMesaVisual v, XMesaBuffer buffer,
&& GET_GREENMASK(v)==0x07e0
&& GET_BLUEMASK(v) ==0x001f
&& CHECK_BYTE_ORDER(v)
- && bitsPerPixel==16
+ && v->BitsPerPixel==16
&& sizeof(GLushort)==2
&& v->RedGamma==1.0 && v->GreenGamma==1.0 && v->BlueGamma==1.0) {
/* 5-6-5 color weight on common PC VGA boards */
@@ -1149,6 +1184,11 @@ static GLboolean initialize_visual_and_buffer( int client,
assert(b->xm_visual == v);
}
+ /* Save true bits/pixel */
+ v->BitsPerPixel = GET_BITS_PER_PIXEL(v);
+ assert(v->BitsPerPixel > 0);
+
+
if (rgb_flag==GL_FALSE) {
/* COLOR-INDEXED WINDOW:
* Even if the visual is TrueColor or DirectColor we treat it as
@@ -1192,10 +1232,6 @@ static GLboolean initialize_visual_and_buffer( int client,
}
- /* Save true bits/pixel */
- v->BitsPerPixel = GET_BITS_PER_PIXEL(v);
- assert(v->BitsPerPixel > 0);
-
/*
* If MESA_INFO env var is set print out some debugging info
* which can help Brian figure out what's going on when a user
@@ -1207,7 +1243,7 @@ static GLboolean initialize_visual_and_buffer( int client,
fprintf(stderr, "X/Mesa undithered pf = %u\n", v->undithered_pf);
fprintf(stderr, "X/Mesa level = %d\n", v->level);
fprintf(stderr, "X/Mesa depth = %d\n", GET_VISUAL_DEPTH(v));
- fprintf(stderr, "X/Mesa bits per pixel = %d\n", GET_BITS_PER_PIXEL(v));
+ fprintf(stderr, "X/Mesa bits per pixel = %d\n", v->BitsPerPixel);
}
if (b && window) {
@@ -1665,7 +1701,7 @@ XMesaBuffer XMesaCreateWindowBuffer2( XMesaVisual v,
assert(v);
#ifdef XFree86Server
- if (GET_VISUAL_DEPTH(v) != ((XMesaDrawable)w)->bitsPerPixel) {
+ if (GET_VISUAL_DEPTH(v) != ((XMesaDrawable)w)->depth) {
#else
XGetWindowAttributes( v->display, w, &attr );
@@ -1780,14 +1816,18 @@ XMesaBuffer XMesaCreateWindowBuffer2( XMesaVisual v,
b->FXisHackUsable = GL_FALSE;
b->FXwindowHack = GL_FALSE;
}
- fprintf(stderr, "voodoo %d, wid %d height %d hack: usable %d active %d\n",
- hw, b->width, b->height, b->FXisHackUsable, b->FXwindowHack);
+ /*
+ fprintf(stderr,
+ "voodoo %d, wid %d height %d hack: usable %d active %d\n",
+ hw, b->width, b->height, b->FXisHackUsable, b->FXwindowHack);
+ */
}
- } else {
- fprintf(stderr,"WARNING: This Mesa Library includes the Glide driver but\n");
- fprintf(stderr," you have not defined the MESA_GLX_FX env. var.\n");
- fprintf(stderr," (check the README.3DFX file for more information).\n\n");
- fprintf(stderr," you can disable this message with a 'export MESA_GLX_FX=disable'.\n");
+ }
+ else {
+ fprintf(stderr,"WARNING: This Mesa Library includes the Glide driver but\n");
+ fprintf(stderr," you have not defined the MESA_GLX_FX env. var.\n");
+ fprintf(stderr," (check the README.3DFX file for more information).\n\n");
+ fprintf(stderr," you can disable this message with a 'export MESA_GLX_FX=disable'.\n");
}
#endif
@@ -2028,7 +2068,8 @@ GLboolean XMesaMakeCurrent2( XMesaContext c, XMesaBuffer drawBuffer,
*/
GLboolean XMesaUnbindContext( XMesaContext c )
{
- return GL_TRUE;
+ /* A no-op for XFree86 integration purposes */
+ return GL_TRUE;
}
@@ -2096,11 +2137,11 @@ GLboolean XMesaSetFXmode( GLint mode )
if (fx && fx[0] != 'd') {
GrHwConfiguration hw;
if (!grSstQueryHardware(&hw)) {
- fprintf(stderr, "!grSstQueryHardware\n");
+ /*fprintf(stderr, "!grSstQueryHardware\n");*/
return GL_FALSE;
}
if (hw.num_sst < 1) {
- fprintf(stderr, "hw.num_sst < 1\n");
+ /*fprintf(stderr, "hw.num_sst < 1\n");*/
return GL_FALSE;
}
if (XMesa) {
@@ -2121,7 +2162,7 @@ GLboolean XMesaSetFXmode( GLint mode )
}
}
}
- fprintf(stderr, "fallthrough\n");
+ /*fprintf(stderr, "fallthrough\n");*/
#else
(void) mode;
#endif
diff --git a/xc/extras/Mesa/src/X/xmesa2.c b/xc/extras/Mesa/src/X/xmesa2.c
index 7688c0ff0..75340eb43 100644
--- a/xc/extras/Mesa/src/X/xmesa2.c
+++ b/xc/extras/Mesa/src/X/xmesa2.c
@@ -184,9 +184,9 @@ static void get_buffer_size( GLcontext *ctx, GLuint *width, GLuint *height )
/* Needed by PIXELADDR3 macro */
xmesa->xm_buffer->ximage_width3
- = xmesa->xm_buffer->backimage->bytes_per_line / 3;
+ = xmesa->xm_buffer->backimage->bytes_per_line;
xmesa->xm_buffer->ximage_origin3
- = (bgr_t *) xmesa->xm_buffer->backimage->data
+ = (GLubyte *) xmesa->xm_buffer->backimage->data
+ xmesa->xm_buffer->ximage_width3 * (winheight-1);
/* Needed by PIXELADDR4 macro */
@@ -550,21 +550,41 @@ static void dither( GLcontext *ctx, GLboolean enable )
/**********************************************************************/
-/* Clear a pixmap color buffer, may be the front or back buffer */
static void
-clear_pixmap( GLcontext *ctx, GLboolean all,
- GLint x, GLint y, GLint width, GLint height )
+clear_front_pixmap( GLcontext *ctx, GLboolean all,
+ GLint x, GLint y, GLint width, GLint height )
+{
+ const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
+ if (all) {
+ XMesaFillRectangle( xmesa->display, xmesa->xm_buffer->frontbuffer,
+ xmesa->xm_buffer->cleargc,
+ 0, 0,
+ xmesa->xm_buffer->width+1,
+ xmesa->xm_buffer->height+1 );
+ }
+ else {
+ XMesaFillRectangle( xmesa->display, xmesa->xm_buffer->frontbuffer,
+ xmesa->xm_buffer->cleargc,
+ x, xmesa->xm_buffer->height - y - height,
+ width, height );
+ }
+}
+
+
+static void
+clear_back_pixmap( GLcontext *ctx, GLboolean all,
+ GLint x, GLint y, GLint width, GLint height )
{
const XMesaContext xmesa = (XMesaContext) ctx->DriverCtx;
if (all) {
- XMesaFillRectangle( xmesa->display, xmesa->xm_buffer->buffer,
+ XMesaFillRectangle( xmesa->display, xmesa->xm_buffer->backpixmap,
xmesa->xm_buffer->cleargc,
0, 0,
xmesa->xm_buffer->width+1,
xmesa->xm_buffer->height+1 );
}
else {
- XMesaFillRectangle( xmesa->display, xmesa->xm_buffer->buffer,
+ XMesaFillRectangle( xmesa->display, xmesa->xm_buffer->backpixmap,
xmesa->xm_buffer->cleargc,
x, xmesa->xm_buffer->height - y - height,
width, height );
@@ -4473,7 +4493,6 @@ static void read_color_span( const GLcontext *ctx,
rgba[i][GCOMP] = ptr3[i].g;
rgba[i][BCOMP] = ptr3[i].b;
rgba[i][ACOMP] = 255;
- ptr3++;
}
}
break;
@@ -5219,8 +5238,12 @@ void xmesa_update_state( GLcontext *ctx )
/* setup pointers to front and back buffer clear functions */
/* XXX this bit of code could be moved to a one-time init */
- xmesa->xm_buffer->front_clear_func = clear_pixmap;
- if (sizeof(GLushort)!=2 || sizeof(GLuint)!=4) {
+ xmesa->xm_buffer->front_clear_func = clear_front_pixmap;
+ if (xmesa->xm_buffer->backpixmap != XIMAGE) {
+ /* back buffer is a pixmap */
+ xmesa->xm_buffer->back_clear_func = clear_back_pixmap;
+ }
+ else if (sizeof(GLushort)!=2 || sizeof(GLuint)!=4) {
/* Do this on Crays */
xmesa->xm_buffer->back_clear_func = clear_nbit_ximage;
}
diff --git a/xc/extras/Mesa/src/X/xmesaP.h b/xc/extras/Mesa/src/X/xmesaP.h
index 29d7ce51b..9b79f4314 100644
--- a/xc/extras/Mesa/src/X/xmesaP.h
+++ b/xc/extras/Mesa/src/X/xmesaP.h
@@ -77,7 +77,7 @@ struct xmesa_visual {
GLvisual *gl_visual; /* Device independent visual parameters */
XMesaDisplay *display; /* The X11 display */
#ifdef XFree86Server
- GLint screen_depth; /* The depth of the screen */
+ GLint screen_depth; /* The depth of the screen */
#else
XVisualInfo *vishandle; /* The pointer returned by glXChooseVisual */
#endif
@@ -196,7 +196,7 @@ struct xmesa_buffer {
GLint ximage_width1;
GLushort *ximage_origin2; /* used for PIXELADDR2 macro */
GLint ximage_width2;
- bgr_t *ximage_origin3; /* used for PIXELADDR3 macro */
+ GLubyte *ximage_origin3; /* used for PIXELADDR3 macro */
GLint ximage_width3;
GLuint *ximage_origin4; /* used for PIXELADDR4 macro */
GLint ximage_width4;
@@ -499,7 +499,7 @@ static int const kernel1[16] = {
( (BUFFER)->ximage_origin2 - (Y) * (BUFFER)->ximage_width2 + (X) )
#define PIXELADDR3( BUFFER, X, Y ) \
- ( (BUFFER)->ximage_origin3 - (Y) * (BUFFER)->ximage_width3 + (X) )
+ ( (bgr_t *) ( (BUFFER)->ximage_origin3 - (Y) * (BUFFER)->ximage_width3 + 3 * (X) ))
#define PIXELADDR4( BUFFER, X, Y ) \
( (BUFFER)->ximage_origin4 - (Y) * (BUFFER)->ximage_width4 + (X) )
diff --git a/xc/extras/Mesa/src/X86/assyntax.h b/xc/extras/Mesa/src/X86/assyntax.h
index 92bcfffde..43164d907 100644
--- a/xc/extras/Mesa/src/X86/assyntax.h
+++ b/xc/extras/Mesa/src/X86/assyntax.h
@@ -243,9 +243,10 @@
#endif /* ACK_ASSEMBLER */
-#if defined(Lynx) || (defined(SYSV) || defined(SVR4)) && !defined(ACK_ASSEMBLER) \
+#if (defined(Lynx) || (defined(SYSV) || defined(SVR4)) && !defined(ACK_ASSEMBLER) \
|| (defined(linux) || defined(__OS2ELF__)) && defined(__ELF__) \
- || defined(__FreeBSD__) && __FreeBSD__ >= 3
+ || defined(__FreeBSD__) && __FreeBSD__ >= 3) \
+ || (defined(__NetBSD__) && defined(__ELF__))
#define GLNAME(a) a
#else
#define GLNAME(a) CONCAT(_,a)
diff --git a/xc/extras/Mesa/src/X86/glapi_x86.S b/xc/extras/Mesa/src/X86/glapi_x86.S
index 7429c0f42..a9566ea46 100644
--- a/xc/extras/Mesa/src/X86/glapi_x86.S
+++ b/xc/extras/Mesa/src/X86/glapi_x86.S
@@ -26,6 +26,9 @@
/*
* X86-optimized dispatch code contibuted by Josh Vanderhoof
+ *
+ * This file will be machine-generated from the gl.spec file at some point
+ * in the future.
*/
@@ -3317,8 +3320,8 @@ GLOBL_FN(GL_PREFIX(BlendColorEXT))
GL_PREFIX(BlendColorEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_BlendColorEXT))
- JMP(GL_OFFSET(_gloffset_BlendColorEXT))
+ JZ(GLNAME(_glapi_fallback_BlendColor))
+ JMP(GL_OFFSET(_gloffset_BlendColor))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(PolygonOffsetEXT))
@@ -3333,24 +3336,24 @@ GLOBL_FN(GL_PREFIX(TexImage3DEXT))
GL_PREFIX(TexImage3DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_TexImage3DEXT))
- JMP(GL_OFFSET(_gloffset_TexImage3DEXT))
+ JZ(GLNAME(_glapi_fallback_TexImage3D))
+ JMP(GL_OFFSET(_gloffset_TexImage3D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(TexSubImage3DEXT))
GL_PREFIX(TexSubImage3DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_TexSubImage3DEXT))
- JMP(GL_OFFSET(_gloffset_TexSubImage3DEXT))
+ JZ(GLNAME(_glapi_fallback_TexSubImage3D))
+ JMP(GL_OFFSET(_gloffset_TexSubImage3D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(CopyTexSubImage3DEXT))
GL_PREFIX(CopyTexSubImage3DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_CopyTexSubImage3DEXT))
- JMP(GL_OFFSET(_gloffset_CopyTexSubImage3DEXT))
+ JZ(GLNAME(_glapi_fallback_CopyTexSubImage3D))
+ JMP(GL_OFFSET(_gloffset_CopyTexSubImage3D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(GetTexFilterFuncSGIS))
@@ -3373,48 +3376,48 @@ GLOBL_FN(GL_PREFIX(CopyTexSubImage1DEXT))
GL_PREFIX(CopyTexSubImage1DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_CopyTexSubImage1DEXT))
- JMP(GL_OFFSET(_gloffset_CopyTexSubImage1DEXT))
+ JZ(GLNAME(_glapi_fallback_CopyTexSubImage1D))
+ JMP(GL_OFFSET(_gloffset_CopyTexSubImage1D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(TexSubImage1DEXT))
GL_PREFIX(TexSubImage1DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_TexSubImage1DEXT))
- JMP(GL_OFFSET(_gloffset_TexSubImage1DEXT))
+ JZ(GLNAME(_glapi_fallback_TexSubImage1D))
+ JMP(GL_OFFSET(_gloffset_TexSubImage1D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(TexSubImage2DEXT))
GL_PREFIX(TexSubImage2DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_TexSubImage2DEXT))
- JMP(GL_OFFSET(_gloffset_TexSubImage2DEXT))
+ JZ(GLNAME(_glapi_fallback_TexSubImage2D))
+ JMP(GL_OFFSET(_gloffset_TexSubImage2D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(CopyTexImage1DEXT))
GL_PREFIX(CopyTexImage1DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_CopyTexImage1DEXT))
- JMP(GL_OFFSET(_gloffset_CopyTexImage1DEXT))
+ JZ(GLNAME(_glapi_fallback_CopyTexImage1D))
+ JMP(GL_OFFSET(_gloffset_CopyTexImage1D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(CopyTexImage2DEXT))
GL_PREFIX(CopyTexImage2DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_CopyTexImage2DEXT))
- JMP(GL_OFFSET(_gloffset_CopyTexImage2DEXT))
+ JZ(GLNAME(_glapi_fallback_CopyTexImage2D))
+ JMP(GL_OFFSET(_gloffset_CopyTexImage2D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(CopyTexSubImage2DEXT))
GL_PREFIX(CopyTexSubImage2DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_CopyTexSubImage2DEXT))
- JMP(GL_OFFSET(_gloffset_CopyTexSubImage2DEXT))
+ JZ(GLNAME(_glapi_fallback_CopyTexSubImage2D))
+ JMP(GL_OFFSET(_gloffset_CopyTexSubImage2D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(GetHistogramEXT))
@@ -3469,96 +3472,96 @@ GLOBL_FN(GL_PREFIX(HistogramEXT))
GL_PREFIX(HistogramEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_HistogramEXT))
- JMP(GL_OFFSET(_gloffset_HistogramEXT))
+ JZ(GLNAME(_glapi_fallback_Histogram))
+ JMP(GL_OFFSET(_gloffset_Histogram))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(MinmaxEXT))
GL_PREFIX(MinmaxEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_MinmaxEXT))
- JMP(GL_OFFSET(_gloffset_MinmaxEXT))
+ JZ(GLNAME(_glapi_fallback_Minmax))
+ JMP(GL_OFFSET(_gloffset_Minmax))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ResetHistogramEXT))
GL_PREFIX(ResetHistogramEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ResetHistogramEXT))
- JMP(GL_OFFSET(_gloffset_ResetHistogramEXT))
+ JZ(GLNAME(_glapi_fallback_ResetHistogram))
+ JMP(GL_OFFSET(_gloffset_ResetHistogram))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ResetMinmaxEXT))
GL_PREFIX(ResetMinmaxEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ResetMinmaxEXT))
- JMP(GL_OFFSET(_gloffset_ResetMinmaxEXT))
+ JZ(GLNAME(_glapi_fallback_ResetMinmax))
+ JMP(GL_OFFSET(_gloffset_ResetMinmax))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ConvolutionFilter1DEXT))
GL_PREFIX(ConvolutionFilter1DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ConvolutionFilter1DEXT))
- JMP(GL_OFFSET(_gloffset_ConvolutionFilter1DEXT))
+ JZ(GLNAME(_glapi_fallback_ConvolutionFilter1D))
+ JMP(GL_OFFSET(_gloffset_ConvolutionFilter1D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ConvolutionFilter2DEXT))
GL_PREFIX(ConvolutionFilter2DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ConvolutionFilter2DEXT))
- JMP(GL_OFFSET(_gloffset_ConvolutionFilter2DEXT))
+ JZ(GLNAME(_glapi_fallback_ConvolutionFilter2D))
+ JMP(GL_OFFSET(_gloffset_ConvolutionFilter2D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ConvolutionParameterfEXT))
GL_PREFIX(ConvolutionParameterfEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ConvolutionParameterfEXT))
- JMP(GL_OFFSET(_gloffset_ConvolutionParameterfEXT))
+ JZ(GLNAME(_glapi_fallback_ConvolutionParameterf))
+ JMP(GL_OFFSET(_gloffset_ConvolutionParameterf))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ConvolutionParameterfvEXT))
GL_PREFIX(ConvolutionParameterfvEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ConvolutionParameterfvEXT))
- JMP(GL_OFFSET(_gloffset_ConvolutionParameterfvEXT))
+ JZ(GLNAME(_glapi_fallback_ConvolutionParameterfv))
+ JMP(GL_OFFSET(_gloffset_ConvolutionParameterfv))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ConvolutionParameteriEXT))
GL_PREFIX(ConvolutionParameteriEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ConvolutionParameteriEXT))
- JMP(GL_OFFSET(_gloffset_ConvolutionParameteriEXT))
+ JZ(GLNAME(_glapi_fallback_ConvolutionParameteri))
+ JMP(GL_OFFSET(_gloffset_ConvolutionParameteri))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ConvolutionParameterivEXT))
GL_PREFIX(ConvolutionParameterivEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ConvolutionParameterivEXT))
- JMP(GL_OFFSET(_gloffset_ConvolutionParameterivEXT))
+ JZ(GLNAME(_glapi_fallback_ConvolutionParameteriv))
+ JMP(GL_OFFSET(_gloffset_ConvolutionParameteriv))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(CopyConvolutionFilter1DEXT))
GL_PREFIX(CopyConvolutionFilter1DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_CopyConvolutionFilter1DEXT))
- JMP(GL_OFFSET(_gloffset_CopyConvolutionFilter1DEXT))
+ JZ(GLNAME(_glapi_fallback_CopyConvolutionFilter1D))
+ JMP(GL_OFFSET(_gloffset_CopyConvolutionFilter1D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(CopyConvolutionFilter2DEXT))
GL_PREFIX(CopyConvolutionFilter2DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_CopyConvolutionFilter2DEXT))
- JMP(GL_OFFSET(_gloffset_CopyConvolutionFilter2DEXT))
+ JZ(GLNAME(_glapi_fallback_CopyConvolutionFilter2D))
+ JMP(GL_OFFSET(_gloffset_CopyConvolutionFilter2D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(GetConvolutionFilterEXT))
@@ -3597,40 +3600,40 @@ GLOBL_FN(GL_PREFIX(SeparableFilter2DEXT))
GL_PREFIX(SeparableFilter2DEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_SeparableFilter2DEXT))
- JMP(GL_OFFSET(_gloffset_SeparableFilter2DEXT))
+ JZ(GLNAME(_glapi_fallback_SeparableFilter2D))
+ JMP(GL_OFFSET(_gloffset_SeparableFilter2D))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ColorTableParameterfvSGI))
GL_PREFIX(ColorTableParameterfvSGI):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ColorTableParameterfvSGI))
- JMP(GL_OFFSET(_gloffset_ColorTableParameterfvSGI))
+ JZ(GLNAME(_glapi_fallback_ColorTableParameterfv))
+ JMP(GL_OFFSET(_gloffset_ColorTableParameterfv))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ColorTableParameterivSGI))
GL_PREFIX(ColorTableParameterivSGI):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ColorTableParameterivSGI))
- JMP(GL_OFFSET(_gloffset_ColorTableParameterivSGI))
+ JZ(GLNAME(_glapi_fallback_ColorTableParameteriv))
+ JMP(GL_OFFSET(_gloffset_ColorTableParameteriv))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ColorTableSGI))
GL_PREFIX(ColorTableSGI):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ColorTableSGI))
- JMP(GL_OFFSET(_gloffset_ColorTableSGI))
+ JZ(GLNAME(_glapi_fallback_ColorTable))
+ JMP(GL_OFFSET(_gloffset_ColorTable))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(CopyColorTableSGI))
GL_PREFIX(CopyColorTableSGI):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_CopyColorTableSGI))
- JMP(GL_OFFSET(_gloffset_CopyColorTableSGI))
+ JZ(GLNAME(_glapi_fallback_CopyColorTable))
+ JMP(GL_OFFSET(_gloffset_CopyColorTable))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(GetColorTableSGI))
@@ -3669,24 +3672,24 @@ GLOBL_FN(GL_PREFIX(DeleteTexturesEXT))
GL_PREFIX(DeleteTexturesEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_DeleteTexturesEXT))
- JMP(GL_OFFSET(_gloffset_DeleteTexturesEXT))
+ JZ(GLNAME(_glapi_fallback_DeleteTextures))
+ JMP(GL_OFFSET(_gloffset_DeleteTextures))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(BindTextureEXT))
GL_PREFIX(BindTextureEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_BindTextureEXT))
- JMP(GL_OFFSET(_gloffset_BindTextureEXT))
+ JZ(GLNAME(_glapi_fallback_BindTexture))
+ JMP(GL_OFFSET(_gloffset_BindTexture))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(PrioritizeTexturesEXT))
GL_PREFIX(PrioritizeTexturesEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_PrioritizeTexturesEXT))
- JMP(GL_OFFSET(_gloffset_PrioritizeTexturesEXT))
+ JZ(GLNAME(_glapi_fallback_PrioritizeTextures))
+ JMP(GL_OFFSET(_gloffset_PrioritizeTextures))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(AreTexturesResidentEXT))
@@ -3709,8 +3712,8 @@ GLOBL_FN(GL_PREFIX(BlendEquationEXT))
GL_PREFIX(BlendEquationEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_BlendEquationEXT))
- JMP(GL_OFFSET(_gloffset_BlendEquationEXT))
+ JZ(GLNAME(_glapi_fallback_BlendEquation))
+ JMP(GL_OFFSET(_gloffset_BlendEquation))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(VertexPointerEXT))
@@ -3747,24 +3750,24 @@ GLOBL_FN(GL_PREFIX(GetPointervEXT))
GL_PREFIX(GetPointervEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_GetPointervEXT))
- JMP(GL_OFFSET(_gloffset_GetPointervEXT))
+ JZ(GLNAME(_glapi_fallback_GetPointerv))
+ JMP(GL_OFFSET(_gloffset_GetPointerv))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ArrayElementEXT))
GL_PREFIX(ArrayElementEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ArrayElementEXT))
- JMP(GL_OFFSET(_gloffset_ArrayElementEXT))
+ JZ(GLNAME(_glapi_fallback_ArrayElement))
+ JMP(GL_OFFSET(_gloffset_ArrayElement))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(DrawArraysEXT))
GL_PREFIX(DrawArraysEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_DrawArraysEXT))
- JMP(GL_OFFSET(_gloffset_DrawArraysEXT))
+ JZ(GLNAME(_glapi_fallback_DrawArrays))
+ JMP(GL_OFFSET(_gloffset_DrawArrays))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(PointParameterfEXT))
@@ -3795,16 +3798,16 @@ GLOBL_FN(GL_PREFIX(ColorTableEXT))
GL_PREFIX(ColorTableEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ColorTableEXT))
- JMP(GL_OFFSET(_gloffset_ColorTableEXT))
+ JZ(GLNAME(_glapi_fallback_ColorTable))
+ JMP(GL_OFFSET(_gloffset_ColorTable))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(ColorSubTableEXT))
GL_PREFIX(ColorSubTableEXT):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_ColorSubTableEXT))
- JMP(GL_OFFSET(_gloffset_ColorSubTableEXT))
+ JZ(GLNAME(_glapi_fallback_ColorSubTable))
+ JMP(GL_OFFSET(_gloffset_ColorSubTable))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(GetColorTableEXT))
@@ -3851,8 +3854,8 @@ GLOBL_FN(GL_PREFIX(BlendFuncSeparateINGR))
GL_PREFIX(BlendFuncSeparateINGR):
MOV_L(GLNAME(_glapi_Dispatch), EAX)
TEST_L(EAX, EAX)
- JZ(GLNAME(_glapi_fallback_BlendFuncSeparateINGR))
- JMP(GL_OFFSET(_gloffset_BlendFuncSeparateINGR))
+ JZ(GLNAME(_glapi_fallback_BlendFuncSeparateEXT))
+ JMP(GL_OFFSET(_gloffset_BlendFuncSeparateEXT))
ALIGNTEXT16
GLOBL_FN(GL_PREFIX(WindowPos2iMESA))
@@ -4017,4 +4020,652 @@ GL_PREFIX(MultTransposeMatrixfARB):
JZ(GLNAME(_glapi_fallback_MultTransposeMatrixfARB))
JMP(GL_OFFSET(_gloffset_MultTransposeMatrixfARB))
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(PixelTexGenParameterfSGIS))
+GL_PREFIX(PixelTexGenParameterfSGIS):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_PixelTexGenParameterfSGIS))
+ JMP(GL_OFFSET(_gloffset_PixelTexGenParameterfSGIS))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(PixelTexGenParameteriSGIS))
+GL_PREFIX(PixelTexGenParameteriSGIS):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_PixelTexGenParameteriSGIS))
+ JMP(GL_OFFSET(_gloffset_PixelTexGenParameteriSGIS))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetPixelTexGenParameterfvSGIS))
+GL_PREFIX(GetPixelTexGenParameterfvSGIS):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetPixelTexGenParameterfvSGIS))
+ JMP(GL_OFFSET(_gloffset_GetPixelTexGenParameterfvSGIS))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetPixelTexGenParameterivSGIS))
+GL_PREFIX(GetPixelTexGenParameterivSGIS):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetPixelTexGenParameterivSGIS))
+ JMP(GL_OFFSET(_gloffset_GetPixelTexGenParameterivSGIS))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(TexImage4DSGIS))
+GL_PREFIX(TexImage4DSGIS):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_TexImage4DSGIS))
+ JMP(GL_OFFSET(_gloffset_TexImage4DSGIS))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(TexSubImage4DSGIS))
+GL_PREFIX(TexSubImage4DSGIS):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_TexSubImage4DSGIS))
+ JMP(GL_OFFSET(_gloffset_TexSubImage4DSGIS))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(DetailTexFuncSGIS))
+GL_PREFIX(DetailTexFuncSGIS):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_DetailTexFuncSGIS))
+ JMP(GL_OFFSET(_gloffset_DetailTexFuncSGIS))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetDetailTexFuncSGIS))
+GL_PREFIX(GetDetailTexFuncSGIS):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetDetailTexFuncSGIS))
+ JMP(GL_OFFSET(_gloffset_GetDetailTexFuncSGIS))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetSharpenTexFuncSGIS))
+GL_PREFIX(GetSharpenTexFuncSGIS):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetSharpenTexFuncSGIS))
+ JMP(GL_OFFSET(_gloffset_GetSharpenTexFuncSGIS))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(SharpenTexFuncSGIS))
+GL_PREFIX(SharpenTexFuncSGIS):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_SharpenTexFuncSGIS))
+ JMP(GL_OFFSET(_gloffset_SharpenTexFuncSGIS))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(SampleMaskSGIS))
+GL_PREFIX(SampleMaskSGIS):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_SampleMaskSGIS))
+ JMP(GL_OFFSET(_gloffset_SampleMaskSGIS))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(SamplePatternSGIS))
+GL_PREFIX(SamplePatternSGIS):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_SamplePatternSGIS))
+ JMP(GL_OFFSET(_gloffset_SamplePatternSGIS))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(SpriteParameterfSGIX))
+GL_PREFIX(SpriteParameterfSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_SpriteParameterfSGIX))
+ JMP(GL_OFFSET(_gloffset_SpriteParameterfSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(SpriteParameteriSGIX))
+GL_PREFIX(SpriteParameteriSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_SpriteParameteriSGIX))
+ JMP(GL_OFFSET(_gloffset_SpriteParameteriSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(SpriteParameterfvSGIX))
+GL_PREFIX(SpriteParameterfvSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_SpriteParameterfvSGIX))
+ JMP(GL_OFFSET(_gloffset_SpriteParameterfvSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(SpriteParameterivSGIX))
+GL_PREFIX(SpriteParameterivSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_SpriteParameterivSGIX))
+ JMP(GL_OFFSET(_gloffset_SpriteParameterivSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(InstrumentsBufferSGIX))
+GL_PREFIX(InstrumentsBufferSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_InstrumentsBufferSGIX))
+ JMP(GL_OFFSET(_gloffset_InstrumentsBufferSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(StartInstrumentsSGIX))
+GL_PREFIX(StartInstrumentsSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_StartInstrumentsSGIX))
+ JMP(GL_OFFSET(_gloffset_StartInstrumentsSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(StopInstrumentsSGIX))
+GL_PREFIX(StopInstrumentsSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_StopInstrumentsSGIX))
+ JMP(GL_OFFSET(_gloffset_StopInstrumentsSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(ReadInstrumentsSGIX))
+GL_PREFIX(ReadInstrumentsSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_ReadInstrumentsSGIX))
+ JMP(GL_OFFSET(_gloffset_ReadInstrumentsSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(PollInstrumentsSGIX))
+GL_PREFIX(PollInstrumentsSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_PollInstrumentsSGIX))
+ JMP(GL_OFFSET(_gloffset_PollInstrumentsSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetInstrumentsSGIX))
+GL_PREFIX(GetInstrumentsSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetInstrumentsSGIX))
+ JMP(GL_OFFSET(_gloffset_GetInstrumentsSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FrameZoomSGIX))
+GL_PREFIX(FrameZoomSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FrameZoomSGIX))
+ JMP(GL_OFFSET(_gloffset_FrameZoomSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(ReferencePlaneSGIX))
+GL_PREFIX(ReferencePlaneSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_ReferencePlaneSGIX))
+ JMP(GL_OFFSET(_gloffset_ReferencePlaneSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FlushRasterSGIX))
+GL_PREFIX(FlushRasterSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FlushRasterSGIX))
+ JMP(GL_OFFSET(_gloffset_FlushRasterSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(CopyColorSubTableEXT))
+GL_PREFIX(CopyColorSubTableEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_CopyColorSubTable))
+ JMP(GL_OFFSET(_gloffset_CopyColorSubTable))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetListParameterfvSGIX))
+GL_PREFIX(GetListParameterfvSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetListParameterfvSGIX))
+ JMP(GL_OFFSET(_gloffset_GetListParameterfvSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetListParameterivSGIX))
+GL_PREFIX(GetListParameterivSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetListParameterivSGIX))
+ JMP(GL_OFFSET(_gloffset_GetListParameterivSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(ListParameterfSGIX))
+GL_PREFIX(ListParameterfSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_ListParameterfSGIX))
+ JMP(GL_OFFSET(_gloffset_ListParameterfSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(ListParameterfvSGIX))
+GL_PREFIX(ListParameterfvSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_ListParameterfvSGIX))
+ JMP(GL_OFFSET(_gloffset_ListParameterfvSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(ListParameteriSGIX))
+GL_PREFIX(ListParameteriSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_ListParameteriSGIX))
+ JMP(GL_OFFSET(_gloffset_ListParameteriSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(ListParameterivSGIX))
+GL_PREFIX(ListParameterivSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_ListParameterivSGIX))
+ JMP(GL_OFFSET(_gloffset_ListParameterivSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(IndexMaterialEXT))
+GL_PREFIX(IndexMaterialEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_IndexMaterialEXT))
+ JMP(GL_OFFSET(_gloffset_IndexMaterialEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(IndexFuncEXT))
+GL_PREFIX(IndexFuncEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_IndexFuncEXT))
+ JMP(GL_OFFSET(_gloffset_IndexFuncEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(CullParameterdvEXT))
+GL_PREFIX(CullParameterdvEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_CullParameterdvEXT))
+ JMP(GL_OFFSET(_gloffset_CullParameterdvEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(CullParameterfvEXT))
+GL_PREFIX(CullParameterfvEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_CullParameterfvEXT))
+ JMP(GL_OFFSET(_gloffset_CullParameterfvEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(SampleCoverageARB))
+GL_PREFIX(SampleCoverageARB):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_SampleCoverageARB))
+ JMP(GL_OFFSET(_gloffset_SampleCoverageARB))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(SamplePassARB))
+GL_PREFIX(SamplePassARB):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_SamplePassARB))
+ JMP(GL_OFFSET(_gloffset_SamplePassARB))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(TagSampleBufferSGIX))
+GL_PREFIX(TagSampleBufferSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_TagSampleBufferSGIX))
+ JMP(GL_OFFSET(_gloffset_TagSampleBufferSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentColorMaterialSGIX))
+GL_PREFIX(FragmentColorMaterialSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentColorMaterialSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentColorMaterialSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentLightfSGIX))
+GL_PREFIX(FragmentLightfSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentLightfSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentLightfSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentLightfvSGIX))
+GL_PREFIX(FragmentLightfvSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentLightfvSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentLightfvSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentLightiSGIX))
+GL_PREFIX(FragmentLightiSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentLightiSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentLightiSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentLightivSGIX))
+GL_PREFIX(FragmentLightivSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentLightivSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentLightivSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentLightModelfSGIX))
+GL_PREFIX(FragmentLightModelfSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentLightModelfSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentLightModelfSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentLightModelfvSGIX))
+GL_PREFIX(FragmentLightModelfvSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentLightModelfvSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentLightModelfvSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentLightModeliSGIX))
+GL_PREFIX(FragmentLightModeliSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentLightModeliSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentLightModeliSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentLightModelivSGIX))
+GL_PREFIX(FragmentLightModelivSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentLightModelivSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentLightModelivSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentMaterialfSGIX))
+GL_PREFIX(FragmentMaterialfSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentMaterialfSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentMaterialfSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentMaterialfvSGIX))
+GL_PREFIX(FragmentMaterialfvSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentMaterialfvSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentMaterialfvSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentMaterialiSGIX))
+GL_PREFIX(FragmentMaterialiSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentMaterialiSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentMaterialiSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FragmentMaterialivSGIX))
+GL_PREFIX(FragmentMaterialivSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FragmentMaterialivSGIX))
+ JMP(GL_OFFSET(_gloffset_FragmentMaterialivSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetFragmentLightfvSGIX))
+GL_PREFIX(GetFragmentLightfvSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetFragmentLightfvSGIX))
+ JMP(GL_OFFSET(_gloffset_GetFragmentLightfvSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetFragmentLightivSGIX))
+GL_PREFIX(GetFragmentLightivSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetFragmentLightivSGIX))
+ JMP(GL_OFFSET(_gloffset_GetFragmentLightivSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetFragmentMaterialfvSGIX))
+GL_PREFIX(GetFragmentMaterialfvSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetFragmentMaterialfvSGIX))
+ JMP(GL_OFFSET(_gloffset_GetFragmentMaterialfvSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetFragmentMaterialivSGIX))
+GL_PREFIX(GetFragmentMaterialivSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetFragmentMaterialivSGIX))
+ JMP(GL_OFFSET(_gloffset_GetFragmentMaterialivSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(LightEnviSGIX))
+GL_PREFIX(LightEnviSGIX):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_LightEnviSGIX))
+ JMP(GL_OFFSET(_gloffset_LightEnviSGIX))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FogCoordfEXT))
+GL_PREFIX(FogCoordfEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FogCoordfEXT))
+ JMP(GL_OFFSET(_gloffset_FogCoordfEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FogCoordfvEXT))
+GL_PREFIX(FogCoordfvEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FogCoordfvEXT))
+ JMP(GL_OFFSET(_gloffset_FogCoordfvEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FogCoorddEXT))
+GL_PREFIX(FogCoorddEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FogCoorddEXT))
+ JMP(GL_OFFSET(_gloffset_FogCoorddEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FogCoorddvEXT))
+GL_PREFIX(FogCoorddvEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FogCoorddvEXT))
+ JMP(GL_OFFSET(_gloffset_FogCoorddvEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FogCoordPointerEXT))
+GL_PREFIX(FogCoordPointerEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FogCoordPointerEXT))
+ JMP(GL_OFFSET(_gloffset_FogCoordPointerEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(BlendFuncSeparateEXT))
+GL_PREFIX(BlendFuncSeparateEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_BlendFuncSeparateEXT))
+ JMP(GL_OFFSET(_gloffset_BlendFuncSeparateEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(VertexWeightfEXT))
+GL_PREFIX(VertexWeightfEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_VertexWeightfEXT))
+ JMP(GL_OFFSET(_gloffset_VertexWeightfEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(VertexWeightfvEXT))
+GL_PREFIX(VertexWeightfvEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_VertexWeightfvEXT))
+ JMP(GL_OFFSET(_gloffset_VertexWeightfvEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(VertexWeightPointerEXT))
+GL_PREFIX(VertexWeightPointerEXT):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_VertexWeightPointerEXT))
+ JMP(GL_OFFSET(_gloffset_VertexWeightPointerEXT))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(VertexArrayRangeNV))
+GL_PREFIX(VertexArrayRangeNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_VertexArrayRangeNV))
+ JMP(GL_OFFSET(_gloffset_VertexArrayRangeNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FlushVertexArrayRangeNV))
+GL_PREFIX(FlushVertexArrayRangeNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FlushVertexArrayRangeNV))
+ JMP(GL_OFFSET(_gloffset_FlushVertexArrayRangeNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(CombinerParameterfvNV))
+GL_PREFIX(CombinerParameterfvNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_CombinerParameterfvNV))
+ JMP(GL_OFFSET(_gloffset_CombinerParameterfvNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(CombinerParameterfNV))
+GL_PREFIX(CombinerParameterfNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_CombinerParameterfNV))
+ JMP(GL_OFFSET(_gloffset_CombinerParameterfNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(CombinerParameterivNV))
+GL_PREFIX(CombinerParameterivNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_CombinerParameterivNV))
+ JMP(GL_OFFSET(_gloffset_CombinerParameterivNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(CombinerParameteriNV))
+GL_PREFIX(CombinerParameteriNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_CombinerParameteriNV))
+ JMP(GL_OFFSET(_gloffset_CombinerParameteriNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(CombinerInputNV))
+GL_PREFIX(CombinerInputNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_CombinerInputNV))
+ JMP(GL_OFFSET(_gloffset_CombinerInputNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(CombinerOutputNV))
+GL_PREFIX(CombinerOutputNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_CombinerOutputNV))
+ JMP(GL_OFFSET(_gloffset_CombinerOutputNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(FinalCombinerInputNV))
+GL_PREFIX(FinalCombinerInputNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_FinalCombinerInputNV))
+ JMP(GL_OFFSET(_gloffset_FinalCombinerInputNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetCombinerInputParameterfvNV))
+GL_PREFIX(GetCombinerInputParameterfvNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetCombinerInputParameterfvNV))
+ JMP(GL_OFFSET(_gloffset_GetCombinerInputParameterfvNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetCombinerInputParameterivNV))
+GL_PREFIX(GetCombinerInputParameterivNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetCombinerInputParameterivNV))
+ JMP(GL_OFFSET(_gloffset_GetCombinerInputParameterivNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetCombinerOutputParameterfvNV))
+GL_PREFIX(GetCombinerOutputParameterfvNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetCombinerOutputParameterfvNV))
+ JMP(GL_OFFSET(_gloffset_GetCombinerOutputParameterfvNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetCombinerOutputParameterivNV))
+GL_PREFIX(GetCombinerOutputParameterivNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetCombinerOutputParameterivNV))
+ JMP(GL_OFFSET(_gloffset_GetCombinerOutputParameterivNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetFinalCombinerInputParameterfvNV))
+GL_PREFIX(GetFinalCombinerInputParameterfvNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetFinalCombinerInputParameterfvNV))
+ JMP(GL_OFFSET(_gloffset_GetFinalCombinerInputParameterfvNV))
+
+ALIGNTEXT16
+GLOBL_FN(GL_PREFIX(GetFinalCombinerInputParameterivNV))
+GL_PREFIX(GetFinalCombinerInputParameterivNV):
+ MOV_L(GLNAME(_glapi_Dispatch), EAX)
+ TEST_L(EAX, EAX)
+ JZ(GLNAME(_glapi_fallback_GetFinalCombinerInputParameterivNV))
+ JMP(GL_OFFSET(_gloffset_GetFinalCombinerInputParameterivNV))
+
#endif /* __WIN32__ */
diff --git a/xc/extras/Mesa/src/bitmap.c b/xc/extras/Mesa/src/bitmap.c
index 38ca9e0b0..563dff9af 100644
--- a/xc/extras/Mesa/src/bitmap.c
+++ b/xc/extras/Mesa/src/bitmap.c
@@ -61,15 +61,6 @@ render_bitmap( GLcontext *ctx, GLint px, GLint py,
return; /* NULL bitmap is legal, a no-op */
}
- if (ctx->NewState) {
- gl_update_state(ctx);
- gl_reduced_prim_change( ctx, GL_BITMAP );
- }
-
- if (ctx->PB->primitive!=GL_BITMAP) { /* A.W. 1.1.2000 */
- gl_reduced_prim_change( ctx, GL_BITMAP );
- }
-
/* Set bitmap drawing color */
if (ctx->Visual->RGBAflag) {
GLint r, g, b, a;
@@ -166,6 +157,16 @@ _mesa_Bitmap( GLsizei width, GLsizei height,
GLint x = (GLint) ( (ctx->Current.RasterPos[0] - xorig) + 0.0F );
GLint y = (GLint) ( (ctx->Current.RasterPos[1] - yorig) + 0.0F );
GLboolean completed = GL_FALSE;
+
+ if (ctx->NewState) {
+ gl_update_state(ctx);
+ gl_reduced_prim_change( ctx, GL_BITMAP );
+ }
+
+ if (ctx->PB->primitive!=GL_BITMAP) { /* A.W. 1.1.2000 */
+ gl_reduced_prim_change( ctx, GL_BITMAP );
+ }
+
if (ctx->Driver.Bitmap) {
/* let device driver try to render the bitmap */
completed = (*ctx->Driver.Bitmap)( ctx, x, y, width, height,
diff --git a/xc/extras/Mesa/src/blend.c b/xc/extras/Mesa/src/blend.c
index adf4006ed..ab06b695b 100644
--- a/xc/extras/Mesa/src/blend.c
+++ b/xc/extras/Mesa/src/blend.c
@@ -101,10 +101,10 @@ _mesa_BlendFunc( GLenum sfactor, GLenum dfactor )
}
-/* GL_INGR_blend_func_separate */
+/* GL_EXT_blend_func_separate */
void
-_mesa_BlendFuncSeparateINGR( GLenum sfactorRGB, GLenum dfactorRGB,
- GLenum sfactorA, GLenum dfactorA )
+_mesa_BlendFuncSeparateEXT( GLenum sfactorRGB, GLenum dfactorRGB,
+ GLenum sfactorA, GLenum dfactorA )
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glBlendFuncSeparate");
@@ -211,7 +211,7 @@ _mesa_BlendFuncSeparateINGR( GLenum sfactorRGB, GLenum dfactorRGB,
/* This is really an extension function! */
void
-_mesa_BlendEquationEXT( GLenum mode )
+_mesa_BlendEquation( GLenum mode )
{
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glBlendEquation");
@@ -255,7 +255,7 @@ _mesa_BlendEquationEXT( GLenum mode )
void
-_mesa_BlendColorEXT( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha )
+_mesa_BlendColor( GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha )
{
GET_CURRENT_CONTEXT(ctx);
ctx->Color.BlendColor[0] = CLAMP( red, 0.0F, 1.0F );
@@ -285,26 +285,27 @@ blend_transparency( GLcontext *ctx, GLuint n, const GLubyte mask[],
for (i=0;i<n;i++) {
if (mask[i]) {
- GLint t = rgba[i][ACOMP]; /* t in [0,255] */
+ const GLint t = rgba[i][ACOMP]; /* t in [0,255] */
if (t == 0) {
+ /* 0% alpha */
rgba[i][RCOMP] = dest[i][RCOMP];
rgba[i][GCOMP] = dest[i][GCOMP];
rgba[i][BCOMP] = dest[i][BCOMP];
rgba[i][ACOMP] = dest[i][ACOMP];
}
- else if (t == 255) {
- /* no-op */
+ else if (t == CHAN_MAX) {
+ /* 100% alpha, no-op */
}
else {
- GLint s = 255 - t;
- GLint r = (rgba[i][RCOMP] * t + dest[i][RCOMP] * s) >> 8;
- GLint g = (rgba[i][GCOMP] * t + dest[i][GCOMP] * s) >> 8;
- GLint b = (rgba[i][BCOMP] * t + dest[i][BCOMP] * s) >> 8;
- GLint a = (rgba[i][ACOMP] * t + dest[i][ACOMP] * s) >> 8;
- ASSERT(r <= 255);
- ASSERT(g <= 255);
- ASSERT(b <= 255);
- ASSERT(a <= 255);
+ const GLint s = CHAN_MAX - t;
+ const GLint r = (rgba[i][RCOMP] * t + dest[i][RCOMP] * s) >> 8;
+ const GLint g = (rgba[i][GCOMP] * t + dest[i][GCOMP] * s) >> 8;
+ const GLint b = (rgba[i][BCOMP] * t + dest[i][BCOMP] * s) >> 8;
+ const GLint a = (rgba[i][ACOMP] * t + dest[i][ACOMP] * s) >> 8;
+ ASSERT(r <= CHAN_MAX);
+ ASSERT(g <= CHAN_MAX);
+ ASSERT(b <= CHAN_MAX);
+ ASSERT(a <= CHAN_MAX);
rgba[i][RCOMP] = (GLubyte) r;
rgba[i][GCOMP] = (GLubyte) g;
rgba[i][BCOMP] = (GLubyte) b;
@@ -335,10 +336,10 @@ blend_add( GLcontext *ctx, GLuint n, const GLubyte mask[],
GLint g = rgba[i][GCOMP] + dest[i][GCOMP];
GLint b = rgba[i][BCOMP] + dest[i][BCOMP];
GLint a = rgba[i][ACOMP] + dest[i][ACOMP];
- rgba[i][RCOMP] = (GLubyte) MIN2( r, 255 );
- rgba[i][GCOMP] = (GLubyte) MIN2( g, 255 );
- rgba[i][BCOMP] = (GLubyte) MIN2( b, 255 );
- rgba[i][ACOMP] = (GLubyte) MIN2( a, 255 );
+ rgba[i][RCOMP] = (GLubyte) MIN2( r, CHAN_MAX );
+ rgba[i][GCOMP] = (GLubyte) MIN2( g, CHAN_MAX );
+ rgba[i][BCOMP] = (GLubyte) MIN2( b, CHAN_MAX );
+ rgba[i][ACOMP] = (GLubyte) MIN2( a, CHAN_MAX );
}
}
}
@@ -428,10 +429,10 @@ static void _BLENDAPI
blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[],
GLubyte rgba[][4], CONST GLubyte dest[][4] )
{
- GLfloat rscale = 1.0F / 255.0F;
- GLfloat gscale = 1.0F / 255.0F;
- GLfloat bscale = 1.0F / 255.0F;
- GLfloat ascale = 1.0F / 255.0F;
+ GLfloat rscale = 1.0F / CHAN_MAXF;
+ GLfloat gscale = 1.0F / CHAN_MAXF;
+ GLfloat bscale = 1.0F / CHAN_MAXF;
+ GLfloat ascale = 1.0F / CHAN_MAXF;
GLuint i;
for (i=0;i<n;i++) {
@@ -485,7 +486,7 @@ blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[],
sR = sG = sB = 1.0F - (GLfloat) Ad * ascale;
break;
case GL_SRC_ALPHA_SATURATE:
- if (As < 1.0F - (GLfloat) Ad * ascale) {
+ if (As < CHAN_MAX - Ad) {
sR = sG = sB = (GLfloat) As * ascale;
}
else {
@@ -704,10 +705,10 @@ blend_general( GLcontext *ctx, GLuint n, const GLubyte mask[],
}
/* final clamping */
- rgba[i][RCOMP] = (GLubyte) (GLint) CLAMP( r, 0.0F, 255.0F );
- rgba[i][GCOMP] = (GLubyte) (GLint) CLAMP( g, 0.0F, 255.0F );
- rgba[i][BCOMP] = (GLubyte) (GLint) CLAMP( b, 0.0F, 255.0F );
- rgba[i][ACOMP] = (GLubyte) (GLint) CLAMP( a, 0.0F, 255.0F );
+ rgba[i][RCOMP] = (GLubyte) (GLint) CLAMP( r, 0.0F, CHAN_MAXF );
+ rgba[i][GCOMP] = (GLubyte) (GLint) CLAMP( g, 0.0F, CHAN_MAXF );
+ rgba[i][BCOMP] = (GLubyte) (GLint) CLAMP( b, 0.0F, CHAN_MAXF );
+ rgba[i][ACOMP] = (GLubyte) (GLint) CLAMP( a, 0.0F, CHAN_MAXF );
}
}
}
diff --git a/xc/extras/Mesa/src/blend.h b/xc/extras/Mesa/src/blend.h
index c0056b9fa..4a4997282 100644
--- a/xc/extras/Mesa/src/blend.h
+++ b/xc/extras/Mesa/src/blend.h
@@ -48,16 +48,16 @@ _mesa_BlendFunc( GLenum sfactor, GLenum dfactor );
extern void
-_mesa_BlendFuncSeparateINGR( GLenum sfactorRGB, GLenum dfactorRGB,
- GLenum sfactorA, GLenum dfactorA );
+_mesa_BlendFuncSeparateEXT( GLenum sfactorRGB, GLenum dfactorRGB,
+ GLenum sfactorA, GLenum dfactorA );
extern void
-_mesa_BlendEquationEXT( GLenum mode );
+_mesa_BlendEquation( GLenum mode );
extern void
-_mesa_BlendColorEXT(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
+_mesa_BlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
#endif
diff --git a/xc/extras/Mesa/src/colortab.c b/xc/extras/Mesa/src/colortab.c
index ea071e7e0..63b93435a 100644
--- a/xc/extras/Mesa/src/colortab.c
+++ b/xc/extras/Mesa/src/colortab.c
@@ -3,7 +3,7 @@
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -111,9 +111,9 @@ decode_internal_format( GLint format )
void
-_mesa_ColorTableEXT( GLenum target, GLenum internalFormat,
- GLsizei width, GLenum format, GLenum type,
- const GLvoid *table )
+_mesa_ColorTable( GLenum target, GLenum internalFormat,
+ GLsizei width, GLenum format, GLenum type,
+ const GLvoid *table )
{
GET_CURRENT_CONTEXT(ctx);
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
@@ -121,7 +121,7 @@ _mesa_ColorTableEXT( GLenum target, GLenum internalFormat,
struct gl_color_table *palette;
GLboolean proxy = GL_FALSE;
- ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glColorTableEXT");
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glColorTable");
switch (target) {
case GL_TEXTURE_1D:
@@ -156,24 +156,24 @@ _mesa_ColorTableEXT( GLenum target, GLenum internalFormat,
palette = &ctx->Texture.Palette;
break;
default:
- gl_error(ctx, GL_INVALID_ENUM, "glColorTableEXT(target)");
+ gl_error(ctx, GL_INVALID_ENUM, "glColorTable(target)");
return;
}
assert(palette);
if (!gl_is_legal_format_and_type(format, type)) {
- gl_error(ctx, GL_INVALID_ENUM, "glColorTableEXT(format or type)");
+ gl_error(ctx, GL_INVALID_ENUM, "glColorTable(format or type)");
return;
}
if (decode_internal_format(internalFormat) < 0) {
- gl_error( ctx, GL_INVALID_ENUM, "glColorTableEXT(internalFormat)" );
+ gl_error( ctx, GL_INVALID_ENUM, "glColorTable(internalFormat)" );
return;
}
if (width < 1 || width > MAX_TEXTURE_PALETTE_SIZE || !power_of_two(width)) {
- gl_error(ctx, GL_INVALID_VALUE, "glColorTableEXT(width)");
+ gl_error(ctx, GL_INVALID_VALUE, "glColorTable(width)");
if (proxy) {
palette->Size = 0;
palette->IntFormat = (GLenum) 0;
@@ -208,9 +208,9 @@ _mesa_ColorTableEXT( GLenum target, GLenum internalFormat,
void
-_mesa_ColorSubTableEXT( GLenum target, GLsizei start,
- GLsizei count, GLenum format, GLenum type,
- const GLvoid *table )
+_mesa_ColorSubTable( GLenum target, GLsizei start,
+ GLsizei count, GLenum format, GLenum type,
+ const GLvoid *table )
{
GET_CURRENT_CONTEXT(ctx);
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
@@ -219,7 +219,7 @@ _mesa_ColorSubTableEXT( GLenum target, GLsizei start,
GLint comps;
GLubyte *dest;
- ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glColorSubTableEXT");
+ ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH(ctx, "glColorSubTable");
switch (target) {
case GL_TEXTURE_1D:
@@ -239,19 +239,19 @@ _mesa_ColorSubTableEXT( GLenum target, GLsizei start,
palette = &ctx->Texture.Palette;
break;
default:
- gl_error(ctx, GL_INVALID_ENUM, "glColorSubTableEXT(target)");
+ gl_error(ctx, GL_INVALID_ENUM, "glColorSubTable(target)");
return;
}
assert(palette);
if (!gl_is_legal_format_and_type(format, type)) {
- gl_error(ctx, GL_INVALID_ENUM, "glColorSubTableEXT(format or type)");
+ gl_error(ctx, GL_INVALID_ENUM, "glColorSubTable(format or type)");
return;
}
if (count < 1) {
- gl_error(ctx, GL_INVALID_VALUE, "glColorSubTableEXT(count)");
+ gl_error(ctx, GL_INVALID_VALUE, "glColorSubTable(count)");
return;
}
@@ -259,7 +259,7 @@ _mesa_ColorSubTableEXT( GLenum target, GLsizei start,
assert(comps > 0); /* error should be caught sooner */
if (start + count > palette->Size) {
- gl_error(ctx, GL_INVALID_VALUE, "glColorSubTableEXT(count)");
+ gl_error(ctx, GL_INVALID_VALUE, "glColorSubTable(count)");
return;
}
dest = palette->Table + start * comps * sizeof(GLubyte);
@@ -284,8 +284,8 @@ _mesa_ColorSubTableEXT( GLenum target, GLsizei start,
void
-_mesa_GetColorTableEXT( GLenum target, GLenum format,
- GLenum type, GLvoid *table )
+_mesa_GetColorTable( GLenum target, GLenum format,
+ GLenum type, GLvoid *table )
{
GET_CURRENT_CONTEXT(ctx);
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
@@ -293,7 +293,7 @@ _mesa_GetColorTableEXT( GLenum target, GLenum format,
GLubyte rgba[MAX_TEXTURE_PALETTE_SIZE][4];
GLint i;
- ASSERT_OUTSIDE_BEGIN_END(ctx, "glGetColorTableEXT");
+ ASSERT_OUTSIDE_BEGIN_END(ctx, "glGetColorTable");
switch (target) {
case GL_TEXTURE_1D:
@@ -309,7 +309,7 @@ _mesa_GetColorTableEXT( GLenum target, GLenum format,
palette = &ctx->Texture.Palette;
break;
default:
- gl_error(ctx, GL_INVALID_ENUM, "glGetColorTableEXT(target)");
+ gl_error(ctx, GL_INVALID_ENUM, "glGetColorTable(target)");
return;
}
@@ -365,7 +365,7 @@ _mesa_GetColorTableEXT( GLenum target, GLenum format,
}
break;
default:
- gl_problem(ctx, "bad palette format in glGetColorTableEXT");
+ gl_problem(ctx, "bad palette format in glGetColorTable");
return;
}
@@ -380,23 +380,23 @@ _mesa_GetColorTableEXT( GLenum target, GLenum format,
void
-_mesa_GetColorTableParameterfvEXT( GLenum target, GLenum pname, GLfloat *params )
+_mesa_GetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params )
{
GLint iparams[10];
- _mesa_GetColorTableParameterivEXT( target, pname, iparams );
+ _mesa_GetColorTableParameteriv( target, pname, iparams );
*params = (GLfloat) iparams[0];
}
void
-_mesa_GetColorTableParameterivEXT( GLenum target, GLenum pname, GLint *params )
+_mesa_GetColorTableParameteriv( GLenum target, GLenum pname, GLint *params )
{
GET_CURRENT_CONTEXT(ctx);
struct gl_texture_unit *texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
struct gl_color_table *palette;
- ASSERT_OUTSIDE_BEGIN_END(ctx, "glGetColorTableParameterEXT");
+ ASSERT_OUTSIDE_BEGIN_END(ctx, "glGetColorTableParameter");
switch (target) {
case GL_TEXTURE_1D:
@@ -412,7 +412,7 @@ _mesa_GetColorTableParameterivEXT( GLenum target, GLenum pname, GLint *params )
palette = &ctx->Texture.Palette;
break;
default:
- gl_error(ctx, GL_INVALID_ENUM, "glGetColorTableParameterEXT(target)");
+ gl_error(ctx, GL_INVALID_ENUM, "glGetColorTableParameter(target)");
return;
}
@@ -442,7 +442,7 @@ _mesa_GetColorTableParameterivEXT( GLenum target, GLenum pname, GLint *params )
*params = 8;
break;
default:
- gl_error(ctx, GL_INVALID_ENUM, "glGetColorTableParameterEXT" );
+ gl_error(ctx, GL_INVALID_ENUM, "glGetColorTableParameter" );
return;
}
}
diff --git a/xc/extras/Mesa/src/colortab.h b/xc/extras/Mesa/src/colortab.h
index 08cae6866..bdcf5fa71 100644
--- a/xc/extras/Mesa/src/colortab.h
+++ b/xc/extras/Mesa/src/colortab.h
@@ -3,7 +3,7 @@
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -32,29 +32,24 @@
extern void
-_mesa_ColorTableEXT( GLenum target, GLenum internalformat,
- GLsizei width, GLenum format, GLenum type,
- const GLvoid *table );
+_mesa_ColorTable( GLenum target, GLenum internalformat,
+ GLsizei width, GLenum format, GLenum type,
+ const GLvoid *table );
extern void
-_mesa_ColorSubTableEXT( GLenum target, GLsizei start,
- GLsizei count, GLenum format, GLenum type,
- const GLvoid *table );
+_mesa_ColorSubTable( GLenum target, GLsizei start,
+ GLsizei count, GLenum format, GLenum type,
+ const GLvoid *table );
extern void
-_mesa_GetColorTableEXT( GLenum target, GLenum format,
- GLenum type, GLvoid *table );
-#ifdef VMS
-/* VMS does not support externals longer than 32 characters. */
-#define _mesa_GetColorTableParameterfvEXT VMS_GCTParameterfvEXT
-#define _mesa_GetColorTableParameterivEXT VMS_GCTParameterivEXT
-#endif
+_mesa_GetColorTable( GLenum target, GLenum format,
+ GLenum type, GLvoid *table );
extern void
-_mesa_GetColorTableParameterfvEXT( GLenum target, GLenum pname, GLfloat *params );
+_mesa_GetColorTableParameterfv( GLenum target, GLenum pname, GLfloat *params );
extern void
-_mesa_GetColorTableParameterivEXT( GLenum target, GLenum pname, GLint *params );
+_mesa_GetColorTableParameteriv( GLenum target, GLenum pname, GLint *params );
#endif
diff --git a/xc/extras/Mesa/src/config.c b/xc/extras/Mesa/src/config.c
index 33233df2a..575ec7219 100644
--- a/xc/extras/Mesa/src/config.c
+++ b/xc/extras/Mesa/src/config.c
@@ -217,7 +217,6 @@ static void default_hint( GLcontext *ctx, struct cnode *args )
{
struct cnode *hint, *tail, *value;
const char *hname, *vname;
- GLenum h, v;
if (is_list(args, &hint, &tail) &&
is_list(tail, &value, &tail) &&
@@ -225,11 +224,12 @@ static void default_hint( GLcontext *ctx, struct cnode *args )
is_word(hint, &hname) &&
is_word(value, &vname))
{
- if ((h = (GLenum) gl_lookup_enum_by_name(hname)) != -1 &&
- (v = (GLenum) gl_lookup_enum_by_name(vname)) != -1)
+ GLint h = gl_lookup_enum_by_name(hname);
+ GLint v = gl_lookup_enum_by_name(vname);
+ if (h != -1 && v != -1)
{
printf("calling glHint(%s=%d, %s=%d)\n", hname, h, vname, v);
- if (!_mesa_try_Hint( ctx, h, v ))
+ if (!_mesa_try_Hint( ctx, (GLenum) h, (GLenum) v ))
error( hint, "glHint failed");
printf("allow draw mem: %d\n", ctx->Hint.AllowDrawMem);
return;
diff --git a/xc/extras/Mesa/src/config.h b/xc/extras/Mesa/src/config.h
index c28fecab0..595f02830 100644
--- a/xc/extras/Mesa/src/config.h
+++ b/xc/extras/Mesa/src/config.h
@@ -157,7 +157,8 @@
* Bits per color channel (must be 8 at this time!)
*/
#define CHAN_BITS 8
-
+#define CHAN_MAX ((1 << CHAN_BITS) - 1)
+#define CHAN_MAXF ((GLfloat) CHAN_MAX)
/*
diff --git a/xc/extras/Mesa/src/dd.h b/xc/extras/Mesa/src/dd.h
index 44f8ec3c6..25a82a546 100644
--- a/xc/extras/Mesa/src/dd.h
+++ b/xc/extras/Mesa/src/dd.h
@@ -138,12 +138,10 @@ struct dd_function_table {
*** every device driver. ***
**********************************************************************/
- const char * (*RendererString)(void);
- /*
- * Return a string which uniquely identifies this device driver.
- * The string should contain no whitespace. Examples: "X11", "OffScreen",
- * "MSWindows", "SVGA".
- * NOTE: This function will be obsolete in favor of GetString in the future!
+ const GLubyte * (*GetString)( GLcontext *ctx, GLenum name );
+ /* Return a string as needed by glGetString().
+ * Only the GL_RENDERER token must be implemented. Otherwise,
+ * NULL can be returned.
*/
void (*UpdateState)( GLcontext *ctx );
@@ -327,17 +325,6 @@ struct dd_function_table {
*** fall-back function. ***
**********************************************************************/
- const char * (*ExtensionString)( GLcontext *ctx );
- /* Return a space-separated list of extensions for this driver.
- * NOTE: This function will be obsolete in favor of GetString in the future!
- */
-
- const GLubyte * (*GetString)( GLcontext *ctx, GLenum name );
- /* Return a string as needed by glGetString().
- * NOTE: This will replace the ExtensionString and RendererString
- * functions in the future!
- */
-
void (*Finish)( GLcontext *ctx );
/*
* This is called whenever glFinish() is called.
diff --git a/xc/extras/Mesa/src/dlist.c b/xc/extras/Mesa/src/dlist.c
index 0b7de60e6..d491db47c 100644
--- a/xc/extras/Mesa/src/dlist.c
+++ b/xc/extras/Mesa/src/dlist.c
@@ -32,6 +32,7 @@
#include "attrib.h"
#include "bitmap.h"
#include "bbox.h"
+#include "blend.h"
#include "buffers.h"
#include "clip.h"
#include "colortab.h"
@@ -691,7 +692,7 @@ static void save_BlendEquation( GLenum mode )
n[1].e = mode;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec->BlendEquationEXT)( mode );
+ (*ctx->Exec->BlendEquation)( mode );
}
}
@@ -712,8 +713,8 @@ static void save_BlendFunc( GLenum sfactor, GLenum dfactor )
}
-static void save_BlendFuncSeparateINGR(GLenum sfactorRGB, GLenum dfactorRGB,
- GLenum sfactorA, GLenum dfactorA)
+static void save_BlendFuncSeparateEXT(GLenum sfactorRGB, GLenum dfactorRGB,
+ GLenum sfactorA, GLenum dfactorA)
{
GET_CURRENT_CONTEXT(ctx);
Node *n;
@@ -726,7 +727,7 @@ static void save_BlendFuncSeparateINGR(GLenum sfactorRGB, GLenum dfactorRGB,
n[4].e = dfactorA;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec->BlendFuncSeparateINGR)( sfactorRGB, dfactorRGB,
+ (*ctx->Exec->BlendFuncSeparateEXT)( sfactorRGB, dfactorRGB,
sfactorA, dfactorA);
}
}
@@ -746,7 +747,7 @@ static void save_BlendColor( GLfloat red, GLfloat green,
n[4].f = alpha;
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec->BlendColorEXT)( red, green, blue, alpha );
+ (*ctx->Exec->BlendColor)( red, green, blue, alpha );
}
}
@@ -938,17 +939,17 @@ static void save_ColorMaterial( GLenum face, GLenum mode )
}
-static void save_ColorTableEXT( GLenum target, GLenum internalFormat,
- GLsizei width, GLenum format, GLenum type,
- const GLvoid *table )
+static void save_ColorTable( GLenum target, GLenum internalFormat,
+ GLsizei width, GLenum format, GLenum type,
+ const GLvoid *table )
{
GET_CURRENT_CONTEXT(ctx);
if (target == GL_PROXY_TEXTURE_1D ||
target == GL_PROXY_TEXTURE_2D ||
target == GL_PROXY_TEXTURE_3D) {
/* execute immediately */
- (*ctx->Exec->ColorTableEXT)( target, internalFormat, width,
- format, type, table );
+ (*ctx->Exec->ColorTable)( target, internalFormat, width,
+ format, type, table );
}
else {
GLvoid *image = _mesa_unpack_image(width, 1, 1, format, type, table,
@@ -968,16 +969,16 @@ static void save_ColorTableEXT( GLenum target, GLenum internalFormat,
FREE(image);
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec->ColorTableEXT)( target, internalFormat, width,
- format, type, table );
+ (*ctx->Exec->ColorTable)( target, internalFormat, width,
+ format, type, table );
}
}
}
-static void save_ColorSubTableEXT( GLenum target, GLsizei start, GLsizei count,
- GLenum format, GLenum type,
- const GLvoid *table)
+static void save_ColorSubTable( GLenum target, GLsizei start, GLsizei count,
+ GLenum format, GLenum type,
+ const GLvoid *table)
{
GET_CURRENT_CONTEXT(ctx);
GLvoid *image = _mesa_unpack_image(count, 1, 1, format, type, table,
@@ -997,7 +998,7 @@ static void save_ColorSubTableEXT( GLenum target, GLsizei start, GLsizei count,
FREE(image);
}
if (ctx->ExecuteFlag) {
- (*ctx->Exec->ColorSubTableEXT)(target, start, count, format, type, table);
+ (*ctx->Exec->ColorSubTable)(target, start, count, format, type, table);
}
}
@@ -2882,17 +2883,6 @@ static void save_TexImage3D( GLenum target,
}
-static void save_TexImage3DEXT( GLenum target,
- GLint level, GLenum components,
- GLsizei width, GLsizei height, GLsizei depth,
- GLint border, GLenum format, GLenum type,
- const GLvoid *pixels )
-{
- save_TexImage3D(target, level, (GLint) components, width, height,
- depth, border, format, type, pixels);
-}
-
-
static void save_TexSubImage1D( GLenum target, GLint level, GLint xoffset,
GLsizei width, GLenum format, GLenum type,
const GLvoid *pixels )
@@ -3402,16 +3392,16 @@ static void execute_list( GLcontext *ctx, GLuint list )
}
break;
case OPCODE_BLEND_COLOR:
- (*ctx->Exec->BlendColorEXT)( n[1].f, n[2].f, n[3].f, n[4].f );
+ (*ctx->Exec->BlendColor)( n[1].f, n[2].f, n[3].f, n[4].f );
break;
case OPCODE_BLEND_EQUATION:
- (*ctx->Exec->BlendEquationEXT)( n[1].e );
+ (*ctx->Exec->BlendEquation)( n[1].e );
break;
case OPCODE_BLEND_FUNC:
(*ctx->Exec->BlendFunc)( n[1].e, n[2].e );
break;
case OPCODE_BLEND_FUNC_SEPARATE:
- (*ctx->Exec->BlendFuncSeparateINGR)(n[1].e, n[2].e, n[3].e, n[4].e);
+ (*ctx->Exec->BlendFuncSeparateEXT)(n[1].e, n[2].e, n[3].e, n[4].e);
break;
case OPCODE_CALL_LIST:
/* Generated by glCallList(), don't add ListBase */
@@ -3463,8 +3453,8 @@ static void execute_list( GLcontext *ctx, GLuint list )
{
struct gl_pixelstore_attrib save = ctx->Unpack;
ctx->Unpack = _mesa_native_packing;
- (*ctx->Exec->ColorTableEXT)( n[1].e, n[2].e, n[3].i, n[4].e,
- n[5].e, n[6].data );
+ (*ctx->Exec->ColorTable)( n[1].e, n[2].e, n[3].i, n[4].e,
+ n[5].e, n[6].data );
ctx->Unpack = save; /* restore */
}
break;
@@ -3472,8 +3462,8 @@ static void execute_list( GLcontext *ctx, GLuint list )
{
struct gl_pixelstore_attrib save = ctx->Unpack;
ctx->Unpack = _mesa_native_packing;
- (*ctx->Exec->ColorSubTableEXT)( n[1].e, n[2].i, n[3].i,
- n[4].e, n[5].e, n[6].data );
+ (*ctx->Exec->ColorSubTable)( n[1].e, n[2].i, n[3].i,
+ n[4].e, n[5].e, n[6].data );
ctx->Unpack = save; /* restore */
}
break;
@@ -4514,9 +4504,9 @@ _mesa_init_dlist_table( struct _glapi_table *table )
table->TexSubImage3D = save_TexSubImage3D;
/* GL_ARB_imaging */
- /* NOT supported, just call stub functions */
- table->BlendColor = _mesa_BlendColor;
- table->BlendEquation = _mesa_BlendEquation;
+ /* Not all are supported */
+ table->BlendColor = save_BlendColor;
+ table->BlendEquation = save_BlendEquation;
table->ColorSubTable = _mesa_ColorSubTable;
table->ColorTable = _mesa_ColorTable;
table->ColorTableParameterfv = _mesa_ColorTableParameterfv;
@@ -4550,17 +4540,21 @@ _mesa_init_dlist_table( struct _glapi_table *table )
table->ResetMinmax = _mesa_ResetMinmax;
table->SeparableFilter2D = _mesa_SeparableFilter2D;
- /* 6. GL_EXT_texture3d */
+ /* GL_EXT_texture3d */
+#if 0
table->CopyTexSubImage3DEXT = save_CopyTexSubImage3D;
table->TexImage3DEXT = save_TexImage3DEXT;
table->TexSubImage3DEXT = save_TexSubImage3D;
+#endif
/* GL_EXT_paletted_texture */
- table->ColorTableEXT = save_ColorTableEXT;
- table->ColorSubTableEXT = save_ColorSubTableEXT;
- table->GetColorTableEXT = _mesa_GetColorTableEXT;
- table->GetColorTableParameterfvEXT = _mesa_GetColorTableParameterfvEXT;
- table->GetColorTableParameterivEXT = _mesa_GetColorTableParameterivEXT;
+#if 0
+ table->ColorTableEXT = save_ColorTable;
+ table->ColorSubTableEXT = save_ColorSubTable;
+#endif
+ table->GetColorTableEXT = _mesa_GetColorTable;
+ table->GetColorTableParameterfvEXT = _mesa_GetColorTableParameterfv;
+ table->GetColorTableParameterivEXT = _mesa_GetColorTableParameteriv;
/* GL_EXT_compiled_vertex_array */
table->LockArraysEXT = _mesa_LockArraysEXT;
@@ -4577,10 +4571,14 @@ _mesa_init_dlist_table( struct _glapi_table *table )
table->PolygonOffsetEXT = save_PolygonOffsetEXT;
/* GL_EXT_blend_minmax */
- table->BlendEquationEXT = save_BlendEquation;
+#if 0
+ table->BlendEquationEXT = save_BlendEquationEXT;
+#endif
/* GL_EXT_blend_color */
- table->BlendColorEXT = save_BlendColor;
+#if 0
+ table->BlendColorEXT = save_BlendColorEXT;
+#endif
/* GL_ARB_multitexture */
table->ActiveTextureARB = save_ActiveTextureARB;
@@ -4618,8 +4616,8 @@ _mesa_init_dlist_table( struct _glapi_table *table )
table->MultiTexCoord4sARB = _mesa_MultiTexCoord4sARB;
table->MultiTexCoord4svARB = _mesa_MultiTexCoord4svARB;
- /* GL_INGR_blend_func_separate */
- table->BlendFuncSeparateINGR = save_BlendFuncSeparateINGR;
+ /* GL_EXT_blend_func_separate */
+ table->BlendFuncSeparateEXT = save_BlendFuncSeparateEXT;
/* GL_MESA_window_pos */
table->WindowPos2dMESA = save_WindowPos2dMESA;
diff --git a/xc/extras/Mesa/src/extensions.c b/xc/extras/Mesa/src/extensions.c
index df79e5b46..82ad25208 100644
--- a/xc/extras/Mesa/src/extensions.c
+++ b/xc/extras/Mesa/src/extensions.c
@@ -48,7 +48,7 @@ struct extension {
static struct { int enabled; const char *name; } default_extensions[] = {
- { ALWAYS_ENABLED, "GL_EXT_blend_color" },
+ { DEFAULT_ON, "GL_EXT_blend_color" },
{ DEFAULT_OFF, "ARB_imaging" },
{ DEFAULT_ON, "GL_EXT_blend_minmax" },
{ DEFAULT_ON, "GL_EXT_blend_logic_op" },
diff --git a/xc/extras/Mesa/src/get.c b/xc/extras/Mesa/src/get.c
index 12c8d3da1..6c5f3ef9f 100644
--- a/xc/extras/Mesa/src/get.c
+++ b/xc/extras/Mesa/src/get.c
@@ -121,16 +121,16 @@ _mesa_GetBooleanv( GLenum pname, GLboolean *params )
case GL_BLEND_SRC:
*params = ENUM_TO_BOOL(ctx->Color.BlendSrcRGB);
break;
- case GL_BLEND_SRC_RGB_INGR:
+ case GL_BLEND_SRC_RGB_EXT:
*params = ENUM_TO_BOOL(ctx->Color.BlendSrcRGB);
break;
- case GL_BLEND_DST_RGB_INGR:
+ case GL_BLEND_DST_RGB_EXT:
*params = ENUM_TO_BOOL(ctx->Color.BlendDstRGB);
break;
- case GL_BLEND_SRC_ALPHA_INGR:
+ case GL_BLEND_SRC_ALPHA_EXT:
*params = ENUM_TO_BOOL(ctx->Color.BlendSrcA);
break;
- case GL_BLEND_DST_ALPHA_INGR:
+ case GL_BLEND_DST_ALPHA_EXT:
*params = ENUM_TO_BOOL(ctx->Color.BlendDstA);
break;
case GL_BLEND_EQUATION_EXT:
@@ -1083,16 +1083,16 @@ _mesa_GetDoublev( GLenum pname, GLdouble *params )
case GL_BLEND_SRC:
*params = ENUM_TO_DOUBLE(ctx->Color.BlendSrcRGB);
break;
- case GL_BLEND_SRC_RGB_INGR:
+ case GL_BLEND_SRC_RGB_EXT:
*params = ENUM_TO_DOUBLE(ctx->Color.BlendSrcRGB);
break;
- case GL_BLEND_DST_RGB_INGR:
+ case GL_BLEND_DST_RGB_EXT:
*params = ENUM_TO_DOUBLE(ctx->Color.BlendDstRGB);
break;
- case GL_BLEND_SRC_ALPHA_INGR:
+ case GL_BLEND_SRC_ALPHA_EXT:
*params = ENUM_TO_DOUBLE(ctx->Color.BlendSrcA);
break;
- case GL_BLEND_DST_ALPHA_INGR:
+ case GL_BLEND_DST_ALPHA_EXT:
*params = ENUM_TO_DOUBLE(ctx->Color.BlendDstA);
break;
case GL_BLEND_EQUATION_EXT:
@@ -2046,16 +2046,16 @@ _mesa_GetFloatv( GLenum pname, GLfloat *params )
case GL_BLEND_SRC:
*params = ENUM_TO_FLOAT(ctx->Color.BlendSrcRGB);
break;
- case GL_BLEND_SRC_RGB_INGR:
+ case GL_BLEND_SRC_RGB_EXT:
*params = ENUM_TO_FLOAT(ctx->Color.BlendSrcRGB);
break;
- case GL_BLEND_DST_RGB_INGR:
+ case GL_BLEND_DST_RGB_EXT:
*params = ENUM_TO_FLOAT(ctx->Color.BlendDstRGB);
break;
- case GL_BLEND_SRC_ALPHA_INGR:
+ case GL_BLEND_SRC_ALPHA_EXT:
*params = ENUM_TO_FLOAT(ctx->Color.BlendSrcA);
break;
- case GL_BLEND_DST_ALPHA_INGR:
+ case GL_BLEND_DST_ALPHA_EXT:
*params = ENUM_TO_FLOAT(ctx->Color.BlendDstA);
break;
case GL_BLEND_EQUATION_EXT:
@@ -2986,16 +2986,16 @@ _mesa_GetIntegerv( GLenum pname, GLint *params )
case GL_BLEND_SRC:
*params = (GLint) ctx->Color.BlendSrcRGB;
break;
- case GL_BLEND_SRC_RGB_INGR:
+ case GL_BLEND_SRC_RGB_EXT:
*params = (GLint) ctx->Color.BlendSrcRGB;
break;
- case GL_BLEND_DST_RGB_INGR:
+ case GL_BLEND_DST_RGB_EXT:
*params = (GLint) ctx->Color.BlendDstRGB;
break;
- case GL_BLEND_SRC_ALPHA_INGR:
+ case GL_BLEND_SRC_ALPHA_EXT:
*params = (GLint) ctx->Color.BlendSrcA;
break;
- case GL_BLEND_DST_ALPHA_INGR:
+ case GL_BLEND_DST_ALPHA_EXT:
*params = (GLint) ctx->Color.BlendDstA;
break;
case GL_BLEND_EQUATION_EXT:
@@ -3932,47 +3932,32 @@ const GLubyte *
_mesa_GetString( GLenum name )
{
GET_CURRENT_CONTEXT(ctx);
- static char result[1000];
static char *vendor = "Brian Paul";
+ static char *renderer = "Mesa";
static char *version = "1.2 Mesa 3.3 beta";
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH_WITH_RETVAL(ctx, "glGetString", 0);
- /* First see if device driver can satisfy this call */
- switch (name) {
- case GL_VENDOR:
- case GL_RENDERER:
- case GL_VERSION:
- if (ctx->Driver.GetString) {
- const GLubyte *str = (*ctx->Driver.GetString)(ctx, name);
- if (str && str[0])
- return str;
- }
- break;
- /* Extensions always handled by extensions.c */
- case GL_EXTENSIONS:
- return (GLubyte *) gl_extensions_get_string( ctx );
- default:
- gl_error( ctx, GL_INVALID_ENUM, "glGetString" );
- return (GLubyte *) 0;
- }
-
- /* If we get here, device driver didn't return a string */
- switch (name) {
- case GL_VENDOR:
- return (GLubyte *) vendor;
- case GL_RENDERER:
- strcpy(result, "Mesa");
- if (ctx->Driver.RendererString) {
- strcat(result, " ");
- strcat(result, (*ctx->Driver.RendererString)());
- }
- return (GLubyte *) result;
- case GL_VERSION:
- return (GLubyte *) version;
- default:
- /* caught above */
- return NULL;
+ /* this is a required driver function */
+ assert(ctx->Driver.GetString);
+ {
+ const GLubyte *str = (*ctx->Driver.GetString)(ctx, name);
+ if (str)
+ return str;
+
+ switch (name) {
+ case GL_VENDOR:
+ return (const GLubyte *) vendor;
+ case GL_RENDERER:
+ return (const GLubyte *) renderer;
+ case GL_VERSION:
+ return (const GLubyte *) version;
+ case GL_EXTENSIONS:
+ return (GLubyte *) gl_extensions_get_string( ctx );
+ default:
+ gl_error( ctx, GL_INVALID_ENUM, "glGetString" );
+ return (GLubyte *) 0;
+ }
}
}
diff --git a/xc/extras/Mesa/src/glapi.c b/xc/extras/Mesa/src/glapi.c
index 4e21f5b81..5f5fc6de1 100644
--- a/xc/extras/Mesa/src/glapi.c
+++ b/xc/extras/Mesa/src/glapi.c
@@ -50,7 +50,7 @@
/* This is used when thread safety is disabled */
-struct _glapi_table *_glapi_Dispatch = &__glapi_noop_table;
+struct _glapi_table *_glapi_Dispatch = (struct _glapi_table *) __glapi_noop_table;
/* Used when thread safety disabled */
void *_glapi_Context = NULL;
@@ -156,7 +156,7 @@ _glapi_set_dispatch(struct _glapi_table *dispatch)
{
if (!dispatch) {
/* use the no-op functions */
- dispatch = &__glapi_noop_table;
+ dispatch = (struct _glapi_table *) __glapi_noop_table;
}
#ifdef DEBUG
else {
@@ -218,16 +218,17 @@ _glapi_get_dispatch_table_size(void)
const char *
_glapi_get_version(void)
{
- return "20000128"; /* YYYYMMDD */
+ return "20000223"; /* YYYYMMDD */
}
-struct name_address_pair {
+struct name_address_offset {
const char *Name;
GLvoid *Address;
+ GLuint Offset;
};
-static struct name_address_pair static_functions[1000];
+static struct name_address_offset static_functions[1000];
@@ -241,7 +242,7 @@ get_static_proc_offset(const char *funcName)
GLuint i;
for (i = 0; static_functions[i].Name; i++) {
if (strcmp(static_functions[i].Name, funcName) == 0) {
- return i;
+ return static_functions[i].Offset;
}
}
return -1;
@@ -255,7 +256,7 @@ get_static_proc_offset(const char *funcName)
static GLvoid *
get_static_proc_address(const char *funcName)
{
- GLuint i = get_static_proc_offset(funcName);
+ GLint i = get_static_proc_offset(funcName);
if (i >= 0)
return static_functions[i].Address;
else
@@ -271,14 +272,7 @@ get_static_proc_address(const char *funcName)
#define MAX_EXTENSION_FUNCS 1000
-
-struct _glapi_ext_entrypoint {
- const char *Name; /* the extension function's name */
- GLuint Offset; /* relative to start of dispatch table */
- GLvoid *Address; /* address of dispatch function */
-};
-
-static struct _glapi_ext_entrypoint ExtEntryTable[MAX_EXTENSION_FUNCS];
+static struct name_address_offset ExtEntryTable[MAX_EXTENSION_FUNCS];
static GLuint NumExtEntryPoints = 0;
@@ -494,20 +488,20 @@ _glapi_get_proc_address(const char *funcName)
const char *
_glapi_get_proc_name(GLuint offset)
{
- GLuint n = sizeof(static_functions) / sizeof(struct name_address_pair);
- if (offset < n) {
- return static_functions[offset].Name;
+ const GLuint n = sizeof(static_functions) / sizeof(struct name_address_offset);
+ GLuint i;
+ for (i = 0; i < n; i++) {
+ if (static_functions[i].Offset == offset)
+ return static_functions[i].Name;
}
- else {
- /* search added extension functions */
- GLuint i;
- for (i = 0; i < NumExtEntryPoints; i++) {
- if (ExtEntryTable[i].Offset == offset) {
- return ExtEntryTable[i].Name;
- }
+
+ /* search added extension functions */
+ for (i = 0; i < NumExtEntryPoints; i++) {
+ if (ExtEntryTable[i].Offset == offset) {
+ return ExtEntryTable[i].Name;
}
- return NULL;
}
+ return NULL;
}
@@ -559,10 +553,10 @@ _glapi_check_table(const struct _glapi_table *table)
assert(ResetMinMaxOffset == offset);
}
{
- GLuint blendColorOffset = _glapi_get_proc_offset("glBlendColorEXT");
- char *blendColorFunc = (char*) &table->BlendColorEXT;
+ GLuint blendColorOffset = _glapi_get_proc_offset("glBlendColor");
+ char *blendColorFunc = (char*) &table->BlendColor;
GLuint offset = (blendColorFunc - (char *) table) / sizeof(void *);
- assert(blendColorOffset == _gloffset_BlendColorEXT);
+ assert(blendColorOffset == _gloffset_BlendColor);
assert(blendColorOffset == offset);
}
{
@@ -588,449 +582,453 @@ static int NotImplemented(void)
-static struct name_address_pair static_functions[] = {
- { "NotImplemented", (GLvoid *) NotImplemented },
-
- /* GL 1.1 */
- { "glAccum", (GLvoid *) glAccum },
- { "glAlphaFunc", (GLvoid *) glAlphaFunc },
- { "glBegin", (GLvoid *) glBegin },
- { "glBitmap", (GLvoid *) glBitmap },
- { "glBlendFunc", (GLvoid *) glBlendFunc },
- { "glCallList", (GLvoid *) glCallList },
- { "glCallLists", (GLvoid *) glCallLists },
- { "glClear", (GLvoid *) glClear },
- { "glClearAccum", (GLvoid *) glClearAccum },
- { "glClearColor", (GLvoid *) glClearColor },
- { "glClearDepth", (GLvoid *) glClearDepth },
- { "glClearIndex", (GLvoid *) glClearIndex },
- { "glClearStencil", (GLvoid *) glClearStencil },
- { "glClipPlane", (GLvoid *) glClipPlane },
- { "glColor3b", (GLvoid *) glColor3b },
- { "glColor3bv", (GLvoid *) glColor3bv },
- { "glColor3d", (GLvoid *) glColor3d },
- { "glColor3dv", (GLvoid *) glColor3dv },
- { "glColor3f", (GLvoid *) glColor3f },
- { "glColor3fv", (GLvoid *) glColor3fv },
- { "glColor3i", (GLvoid *) glColor3i },
- { "glColor3iv", (GLvoid *) glColor3iv },
- { "glColor3s", (GLvoid *) glColor3s },
- { "glColor3sv", (GLvoid *) glColor3sv },
- { "glColor3ub", (GLvoid *) glColor3ub },
- { "glColor3ubv", (GLvoid *) glColor3ubv },
- { "glColor3ui", (GLvoid *) glColor3ui },
- { "glColor3uiv", (GLvoid *) glColor3uiv },
- { "glColor3us", (GLvoid *) glColor3us },
- { "glColor3usv", (GLvoid *) glColor3usv },
- { "glColor4b", (GLvoid *) glColor4b },
- { "glColor4bv", (GLvoid *) glColor4bv },
- { "glColor4d", (GLvoid *) glColor4d },
- { "glColor4dv", (GLvoid *) glColor4dv },
- { "glColor4f", (GLvoid *) glColor4f },
- { "glColor4fv", (GLvoid *) glColor4fv },
- { "glColor4i", (GLvoid *) glColor4i },
- { "glColor4iv", (GLvoid *) glColor4iv },
- { "glColor4s", (GLvoid *) glColor4s },
- { "glColor4sv", (GLvoid *) glColor4sv },
- { "glColor4ub", (GLvoid *) glColor4ub },
- { "glColor4ubv", (GLvoid *) glColor4ubv },
- { "glColor4ui", (GLvoid *) glColor4ui },
- { "glColor4uiv", (GLvoid *) glColor4uiv },
- { "glColor4us", (GLvoid *) glColor4us },
- { "glColor4usv", (GLvoid *) glColor4usv },
- { "glColorMask", (GLvoid *) glColorMask },
- { "glColorMaterial", (GLvoid *) glColorMaterial },
- { "glCopyPixels", (GLvoid *) glCopyPixels },
- { "glCullFace", (GLvoid *) glCullFace },
- { "glDeleteLists", (GLvoid *) glDeleteLists },
- { "glDepthFunc", (GLvoid *) glDepthFunc },
- { "glDepthMask", (GLvoid *) glDepthMask },
- { "glDepthRange", (GLvoid *) glDepthRange },
- { "glDisable", (GLvoid *) glDisable },
- { "glDrawBuffer", (GLvoid *) glDrawBuffer },
- { "glDrawPixels", (GLvoid *) glDrawPixels },
- { "glEdgeFlag", (GLvoid *) glEdgeFlag },
- { "glEdgeFlagv", (GLvoid *) glEdgeFlagv },
- { "glEnable", (GLvoid *) glEnable },
- { "glEnd", (GLvoid *) glEnd },
- { "glEndList", (GLvoid *) glEndList },
- { "glEvalCoord1d", (GLvoid *) glEvalCoord1d },
- { "glEvalCoord1dv", (GLvoid *) glEvalCoord1dv },
- { "glEvalCoord1f", (GLvoid *) glEvalCoord1f },
- { "glEvalCoord1fv", (GLvoid *) glEvalCoord1fv },
- { "glEvalCoord2d", (GLvoid *) glEvalCoord2d },
- { "glEvalCoord2dv", (GLvoid *) glEvalCoord2dv },
- { "glEvalCoord2f", (GLvoid *) glEvalCoord2f },
- { "glEvalCoord2fv", (GLvoid *) glEvalCoord2fv },
- { "glEvalMesh1", (GLvoid *) glEvalMesh1 },
- { "glEvalMesh2", (GLvoid *) glEvalMesh2 },
- { "glEvalPoint1", (GLvoid *) glEvalPoint1 },
- { "glEvalPoint2", (GLvoid *) glEvalPoint2 },
- { "glFeedbackBuffer", (GLvoid *) glFeedbackBuffer },
- { "glFinish", (GLvoid *) glFinish },
- { "glFlush", (GLvoid *) glFlush },
- { "glFogf", (GLvoid *) glFogf },
- { "glFogfv", (GLvoid *) glFogfv },
- { "glFogi", (GLvoid *) glFogi },
- { "glFogiv", (GLvoid *) glFogiv },
- { "glFrontFace", (GLvoid *) glFrontFace },
- { "glFrustum", (GLvoid *) glFrustum },
- { "glGenLists", (GLvoid *) glGenLists },
- { "glGetBooleanv", (GLvoid *) glGetBooleanv },
- { "glGetClipPlane", (GLvoid *) glGetClipPlane },
- { "glGetDoublev", (GLvoid *) glGetDoublev },
- { "glGetError", (GLvoid *) glGetError },
- { "glGetFloatv", (GLvoid *) glGetFloatv },
- { "glGetIntegerv", (GLvoid *) glGetIntegerv },
- { "glGetLightfv", (GLvoid *) glGetLightfv },
- { "glGetLightiv", (GLvoid *) glGetLightiv },
- { "glGetMapdv", (GLvoid *) glGetMapdv },
- { "glGetMapfv", (GLvoid *) glGetMapfv },
- { "glGetMapiv", (GLvoid *) glGetMapiv },
- { "glGetMaterialfv", (GLvoid *) glGetMaterialfv },
- { "glGetMaterialiv", (GLvoid *) glGetMaterialiv },
- { "glGetPixelMapfv", (GLvoid *) glGetPixelMapfv },
- { "glGetPixelMapuiv", (GLvoid *) glGetPixelMapuiv },
- { "glGetPixelMapusv", (GLvoid *) glGetPixelMapusv },
- { "glGetPolygonStipple", (GLvoid *) glGetPolygonStipple },
- { "glGetString", (GLvoid *) glGetString },
- { "glGetTexEnvfv", (GLvoid *) glGetTexEnvfv },
- { "glGetTexEnviv", (GLvoid *) glGetTexEnviv },
- { "glGetTexGendv", (GLvoid *) glGetTexGendv },
- { "glGetTexGenfv", (GLvoid *) glGetTexGenfv },
- { "glGetTexGeniv", (GLvoid *) glGetTexGeniv },
- { "glGetTexImage", (GLvoid *) glGetTexImage },
- { "glGetTexLevelParameterfv", (GLvoid *) glGetTexLevelParameterfv },
- { "glGetTexLevelParameteriv", (GLvoid *) glGetTexLevelParameteriv },
- { "glGetTexParameterfv", (GLvoid *) glGetTexParameterfv },
- { "glGetTexParameteriv", (GLvoid *) glGetTexParameteriv },
- { "glHint", (GLvoid *) glHint },
- { "glIndexMask", (GLvoid *) glIndexMask },
- { "glIndexd", (GLvoid *) glIndexd },
- { "glIndexdv", (GLvoid *) glIndexdv },
- { "glIndexf", (GLvoid *) glIndexf },
- { "glIndexfv", (GLvoid *) glIndexfv },
- { "glIndexi", (GLvoid *) glIndexi },
- { "glIndexiv", (GLvoid *) glIndexiv },
- { "glIndexs", (GLvoid *) glIndexs },
- { "glIndexsv", (GLvoid *) glIndexsv },
- { "glInitNames", (GLvoid *) glInitNames },
- { "glIsEnabled", (GLvoid *) glIsEnabled },
- { "glIsList", (GLvoid *) glIsList },
- { "glLightModelf", (GLvoid *) glLightModelf },
- { "glLightModelfv", (GLvoid *) glLightModelfv },
- { "glLightModeli", (GLvoid *) glLightModeli },
- { "glLightModeliv", (GLvoid *) glLightModeliv },
- { "glLightf", (GLvoid *) glLightf },
- { "glLightfv", (GLvoid *) glLightfv },
- { "glLighti", (GLvoid *) glLighti },
- { "glLightiv", (GLvoid *) glLightiv },
- { "glLineStipple", (GLvoid *) glLineStipple },
- { "glLineWidth", (GLvoid *) glLineWidth },
- { "glListBase", (GLvoid *) glListBase },
- { "glLoadIdentity", (GLvoid *) glLoadIdentity },
- { "glLoadMatrixd", (GLvoid *) glLoadMatrixd },
- { "glLoadMatrixf", (GLvoid *) glLoadMatrixf },
- { "glLoadName", (GLvoid *) glLoadName },
- { "glLogicOp", (GLvoid *) glLogicOp },
- { "glMap1d", (GLvoid *) glMap1d },
- { "glMap1f", (GLvoid *) glMap1f },
- { "glMap2d", (GLvoid *) glMap2d },
- { "glMap2f", (GLvoid *) glMap2f },
- { "glMapGrid1d", (GLvoid *) glMapGrid1d },
- { "glMapGrid1f", (GLvoid *) glMapGrid1f },
- { "glMapGrid2d", (GLvoid *) glMapGrid2d },
- { "glMapGrid2f", (GLvoid *) glMapGrid2f },
- { "glMaterialf", (GLvoid *) glMaterialf },
- { "glMaterialfv", (GLvoid *) glMaterialfv },
- { "glMateriali", (GLvoid *) glMateriali },
- { "glMaterialiv", (GLvoid *) glMaterialiv },
- { "glMatrixMode", (GLvoid *) glMatrixMode },
- { "glMultMatrixd", (GLvoid *) glMultMatrixd },
- { "glMultMatrixf", (GLvoid *) glMultMatrixf },
- { "glNewList", (GLvoid *) glNewList },
- { "glNormal3b", (GLvoid *) glNormal3b },
- { "glNormal3bv", (GLvoid *) glNormal3bv },
- { "glNormal3d", (GLvoid *) glNormal3d },
- { "glNormal3dv", (GLvoid *) glNormal3dv },
- { "glNormal3f", (GLvoid *) glNormal3f },
- { "glNormal3fv", (GLvoid *) glNormal3fv },
- { "glNormal3i", (GLvoid *) glNormal3i },
- { "glNormal3iv", (GLvoid *) glNormal3iv },
- { "glNormal3s", (GLvoid *) glNormal3s },
- { "glNormal3sv", (GLvoid *) glNormal3sv },
- { "glOrtho", (GLvoid *) glOrtho },
- { "glPassThrough", (GLvoid *) glPassThrough },
- { "glPixelMapfv", (GLvoid *) glPixelMapfv },
- { "glPixelMapuiv", (GLvoid *) glPixelMapuiv },
- { "glPixelMapusv", (GLvoid *) glPixelMapusv },
- { "glPixelStoref", (GLvoid *) glPixelStoref },
- { "glPixelStorei", (GLvoid *) glPixelStorei },
- { "glPixelTransferf", (GLvoid *) glPixelTransferf },
- { "glPixelTransferi", (GLvoid *) glPixelTransferi },
- { "glPixelZoom", (GLvoid *) glPixelZoom },
- { "glPointSize", (GLvoid *) glPointSize },
- { "glPolygonMode", (GLvoid *) glPolygonMode },
- { "glPolygonOffset", (GLvoid *) glPolygonOffset },
- { "glPolygonStipple", (GLvoid *) glPolygonStipple },
- { "glPopAttrib", (GLvoid *) glPopAttrib },
- { "glPopMatrix", (GLvoid *) glPopMatrix },
- { "glPopName", (GLvoid *) glPopName },
- { "glPushAttrib", (GLvoid *) glPushAttrib },
- { "glPushMatrix", (GLvoid *) glPushMatrix },
- { "glPushName", (GLvoid *) glPushName },
- { "glRasterPos2d", (GLvoid *) glRasterPos2d },
- { "glRasterPos2dv", (GLvoid *) glRasterPos2dv },
- { "glRasterPos2f", (GLvoid *) glRasterPos2f },
- { "glRasterPos2fv", (GLvoid *) glRasterPos2fv },
- { "glRasterPos2i", (GLvoid *) glRasterPos2i },
- { "glRasterPos2iv", (GLvoid *) glRasterPos2iv },
- { "glRasterPos2s", (GLvoid *) glRasterPos2s },
- { "glRasterPos2sv", (GLvoid *) glRasterPos2sv },
- { "glRasterPos3d", (GLvoid *) glRasterPos3d },
- { "glRasterPos3dv", (GLvoid *) glRasterPos3dv },
- { "glRasterPos3f", (GLvoid *) glRasterPos3f },
- { "glRasterPos3fv", (GLvoid *) glRasterPos3fv },
- { "glRasterPos3i", (GLvoid *) glRasterPos3i },
- { "glRasterPos3iv", (GLvoid *) glRasterPos3iv },
- { "glRasterPos3s", (GLvoid *) glRasterPos3s },
- { "glRasterPos3sv", (GLvoid *) glRasterPos3sv },
- { "glRasterPos4d", (GLvoid *) glRasterPos4d },
- { "glRasterPos4dv", (GLvoid *) glRasterPos4dv },
- { "glRasterPos4f", (GLvoid *) glRasterPos4f },
- { "glRasterPos4fv", (GLvoid *) glRasterPos4fv },
- { "glRasterPos4i", (GLvoid *) glRasterPos4i },
- { "glRasterPos4iv", (GLvoid *) glRasterPos4iv },
- { "glRasterPos4s", (GLvoid *) glRasterPos4s },
- { "glRasterPos4sv", (GLvoid *) glRasterPos4sv },
- { "glReadBuffer", (GLvoid *) glReadBuffer },
- { "glReadPixels", (GLvoid *) glReadPixels },
- { "glRectd", (GLvoid *) glRectd },
- { "glRectdv", (GLvoid *) glRectdv },
- { "glRectf", (GLvoid *) glRectf },
- { "glRectfv", (GLvoid *) glRectfv },
- { "glRecti", (GLvoid *) glRecti },
- { "glRectiv", (GLvoid *) glRectiv },
- { "glRects", (GLvoid *) glRects },
- { "glRectsv", (GLvoid *) glRectsv },
- { "glRenderMode", (GLvoid *) glRenderMode },
- { "glRotated", (GLvoid *) glRotated },
- { "glRotatef", (GLvoid *) glRotatef },
- { "glScaled", (GLvoid *) glScaled },
- { "glScalef", (GLvoid *) glScalef },
- { "glScissor", (GLvoid *) glScissor },
- { "glSelectBuffer", (GLvoid *) glSelectBuffer },
- { "glShadeModel", (GLvoid *) glShadeModel },
- { "glStencilFunc", (GLvoid *) glStencilFunc },
- { "glStencilMask", (GLvoid *) glStencilMask },
- { "glStencilOp", (GLvoid *) glStencilOp },
- { "glTexCoord1d", (GLvoid *) glTexCoord1d },
- { "glTexCoord1dv", (GLvoid *) glTexCoord1dv },
- { "glTexCoord1f", (GLvoid *) glTexCoord1f },
- { "glTexCoord1fv", (GLvoid *) glTexCoord1fv },
- { "glTexCoord1i", (GLvoid *) glTexCoord1i },
- { "glTexCoord1iv", (GLvoid *) glTexCoord1iv },
- { "glTexCoord1s", (GLvoid *) glTexCoord1s },
- { "glTexCoord1sv", (GLvoid *) glTexCoord1sv },
- { "glTexCoord2d", (GLvoid *) glTexCoord2d },
- { "glTexCoord2dv", (GLvoid *) glTexCoord2dv },
- { "glTexCoord2f", (GLvoid *) glTexCoord2f },
- { "glTexCoord2fv", (GLvoid *) glTexCoord2fv },
- { "glTexCoord2i", (GLvoid *) glTexCoord2i },
- { "glTexCoord2iv", (GLvoid *) glTexCoord2iv },
- { "glTexCoord2s", (GLvoid *) glTexCoord2s },
- { "glTexCoord2sv", (GLvoid *) glTexCoord2sv },
- { "glTexCoord3d", (GLvoid *) glTexCoord3d },
- { "glTexCoord3dv", (GLvoid *) glTexCoord3dv },
- { "glTexCoord3f", (GLvoid *) glTexCoord3f },
- { "glTexCoord3fv", (GLvoid *) glTexCoord3fv },
- { "glTexCoord3i", (GLvoid *) glTexCoord3i },
- { "glTexCoord3iv", (GLvoid *) glTexCoord3iv },
- { "glTexCoord3s", (GLvoid *) glTexCoord3s },
- { "glTexCoord3sv", (GLvoid *) glTexCoord3sv },
- { "glTexCoord4d", (GLvoid *) glTexCoord4d },
- { "glTexCoord4dv", (GLvoid *) glTexCoord4dv },
- { "glTexCoord4f", (GLvoid *) glTexCoord4f },
- { "glTexCoord4fv", (GLvoid *) glTexCoord4fv },
- { "glTexCoord4i", (GLvoid *) glTexCoord4i },
- { "glTexCoord4iv", (GLvoid *) glTexCoord4iv },
- { "glTexCoord4s", (GLvoid *) glTexCoord4s },
- { "glTexCoord4sv", (GLvoid *) glTexCoord4sv },
- { "glTexEnvf", (GLvoid *) glTexEnvf },
- { "glTexEnvfv", (GLvoid *) glTexEnvfv },
- { "glTexEnvi", (GLvoid *) glTexEnvi },
- { "glTexEnviv", (GLvoid *) glTexEnviv },
- { "glTexGend", (GLvoid *) glTexGend },
- { "glTexGendv", (GLvoid *) glTexGendv },
- { "glTexGenf", (GLvoid *) glTexGenf },
- { "glTexGenfv", (GLvoid *) glTexGenfv },
- { "glTexGeni", (GLvoid *) glTexGeni },
- { "glTexGeniv", (GLvoid *) glTexGeniv },
- { "glTexImage1D", (GLvoid *) glTexImage1D },
- { "glTexImage2D", (GLvoid *) glTexImage2D },
- { "glTexParameterf", (GLvoid *) glTexParameterf },
- { "glTexParameterfv", (GLvoid *) glTexParameterfv },
- { "glTexParameteri", (GLvoid *) glTexParameteri },
- { "glTexParameteriv", (GLvoid *) glTexParameteriv },
- { "glTranslated", (GLvoid *) glTranslated },
- { "glTranslatef", (GLvoid *) glTranslatef },
- { "glVertex2d", (GLvoid *) glVertex2d },
- { "glVertex2dv", (GLvoid *) glVertex2dv },
- { "glVertex2f", (GLvoid *) glVertex2f },
- { "glVertex2fv", (GLvoid *) glVertex2fv },
- { "glVertex2i", (GLvoid *) glVertex2i },
- { "glVertex2iv", (GLvoid *) glVertex2iv },
- { "glVertex2s", (GLvoid *) glVertex2s },
- { "glVertex2sv", (GLvoid *) glVertex2sv },
- { "glVertex3d", (GLvoid *) glVertex3d },
- { "glVertex3dv", (GLvoid *) glVertex3dv },
- { "glVertex3f", (GLvoid *) glVertex3f },
- { "glVertex3fv", (GLvoid *) glVertex3fv },
- { "glVertex3i", (GLvoid *) glVertex3i },
- { "glVertex3iv", (GLvoid *) glVertex3iv },
- { "glVertex3s", (GLvoid *) glVertex3s },
- { "glVertex3sv", (GLvoid *) glVertex3sv },
- { "glVertex4d", (GLvoid *) glVertex4d },
- { "glVertex4dv", (GLvoid *) glVertex4dv },
- { "glVertex4f", (GLvoid *) glVertex4f },
- { "glVertex4fv", (GLvoid *) glVertex4fv },
- { "glVertex4i", (GLvoid *) glVertex4i },
- { "glVertex4iv", (GLvoid *) glVertex4iv },
- { "glVertex4s", (GLvoid *) glVertex4s },
- { "glVertex4sv", (GLvoid *) glVertex4sv },
- { "glViewport", (GLvoid *) glViewport },
-
+static struct name_address_offset static_functions[] = {
/* GL 1.1 */
-#ifdef GL_VERSION_1_1
+ { "glNewList", (GLvoid *) glNewList, _gloffset_NewList },
+ { "glEndList", (GLvoid *) glEndList, _gloffset_EndList },
+ { "glCallList", (GLvoid *) glCallList, _gloffset_CallList },
+ { "glCallLists", (GLvoid *) glCallLists, _gloffset_CallLists },
+ { "glDeleteLists", (GLvoid *) glDeleteLists, _gloffset_DeleteLists },
+ { "glGenLists", (GLvoid *) glGenLists, _gloffset_GenLists },
+ { "glListBase", (GLvoid *) glListBase, _gloffset_ListBase },
+ { "glBegin", (GLvoid *) glBegin, _gloffset_Begin },
+ { "glBitmap", (GLvoid *) glBitmap, _gloffset_Bitmap },
+ { "glColor3b", (GLvoid *) glColor3b, _gloffset_Color3b },
+ { "glColor3bv", (GLvoid *) glColor3bv, _gloffset_Color3bv },
+ { "glColor3d", (GLvoid *) glColor3d, _gloffset_Color3d },
+ { "glColor3dv", (GLvoid *) glColor3dv, _gloffset_Color3dv },
+ { "glColor3f", (GLvoid *) glColor3f, _gloffset_Color3f },
+ { "glColor3fv", (GLvoid *) glColor3fv, _gloffset_Color3fv },
+ { "glColor3i", (GLvoid *) glColor3i, _gloffset_Color3i },
+ { "glColor3iv", (GLvoid *) glColor3iv, _gloffset_Color3iv },
+ { "glColor3s", (GLvoid *) glColor3s, _gloffset_Color3s },
+ { "glColor3sv", (GLvoid *) glColor3sv, _gloffset_Color3sv },
+ { "glColor3ub", (GLvoid *) glColor3ub, _gloffset_Color3ub },
+ { "glColor3ubv", (GLvoid *) glColor3ubv, _gloffset_Color3ubv },
+ { "glColor3ui", (GLvoid *) glColor3ui, _gloffset_Color3ui },
+ { "glColor3uiv", (GLvoid *) glColor3uiv, _gloffset_Color3uiv },
+ { "glColor3us", (GLvoid *) glColor3us, _gloffset_Color3us },
+ { "glColor3usv", (GLvoid *) glColor3usv, _gloffset_Color3usv },
+ { "glColor4b", (GLvoid *) glColor4b, _gloffset_Color4b },
+ { "glColor4bv", (GLvoid *) glColor4bv, _gloffset_Color4bv },
+ { "glColor4d", (GLvoid *) glColor4d, _gloffset_Color4d },
+ { "glColor4dv", (GLvoid *) glColor4dv, _gloffset_Color4dv },
+ { "glColor4f", (GLvoid *) glColor4f, _gloffset_Color4f },
+ { "glColor4fv", (GLvoid *) glColor4fv, _gloffset_Color4fv },
+ { "glColor4i", (GLvoid *) glColor4i, _gloffset_Color4i },
+ { "glColor4iv", (GLvoid *) glColor4iv, _gloffset_Color4iv },
+ { "glColor4s", (GLvoid *) glColor4s, _gloffset_Color4s },
+ { "glColor4sv", (GLvoid *) glColor4sv, _gloffset_Color4sv },
+ { "glColor4ub", (GLvoid *) glColor4ub, _gloffset_Color4ub },
+ { "glColor4ubv", (GLvoid *) glColor4ubv, _gloffset_Color4ubv },
+ { "glColor4ui", (GLvoid *) glColor4ui, _gloffset_Color4ui },
+ { "glColor4uiv", (GLvoid *) glColor4uiv, _gloffset_Color4uiv },
+ { "glColor4us", (GLvoid *) glColor4us, _gloffset_Color4us },
+ { "glColor4usv", (GLvoid *) glColor4usv, _gloffset_Color4usv },
+ { "glEdgeFlag", (GLvoid *) glEdgeFlag, _gloffset_EdgeFlag },
+ { "glEdgeFlagv", (GLvoid *) glEdgeFlagv, _gloffset_EdgeFlagv },
+ { "glEnd", (GLvoid *) glEnd, _gloffset_End },
+ { "glIndexd", (GLvoid *) glIndexd, _gloffset_Indexd },
+ { "glIndexdv", (GLvoid *) glIndexdv, _gloffset_Indexdv },
+ { "glIndexf", (GLvoid *) glIndexf, _gloffset_Indexf },
+ { "glIndexfv", (GLvoid *) glIndexfv, _gloffset_Indexfv },
+ { "glIndexi", (GLvoid *) glIndexi, _gloffset_Indexi },
+ { "glIndexiv", (GLvoid *) glIndexiv, _gloffset_Indexiv },
+ { "glIndexs", (GLvoid *) glIndexs, _gloffset_Indexs },
+ { "glIndexsv", (GLvoid *) glIndexsv, _gloffset_Indexsv },
+ { "glNormal3b", (GLvoid *) glNormal3b, _gloffset_Normal3b },
+ { "glNormal3bv", (GLvoid *) glNormal3bv, _gloffset_Normal3bv },
+ { "glNormal3d", (GLvoid *) glNormal3d, _gloffset_Normal3d },
+ { "glNormal3dv", (GLvoid *) glNormal3dv, _gloffset_Normal3dv },
+ { "glNormal3f", (GLvoid *) glNormal3f, _gloffset_Normal3f },
+ { "glNormal3fv", (GLvoid *) glNormal3fv, _gloffset_Normal3fv },
+ { "glNormal3i", (GLvoid *) glNormal3i, _gloffset_Normal3i },
+ { "glNormal3iv", (GLvoid *) glNormal3iv, _gloffset_Normal3iv },
+ { "glNormal3s", (GLvoid *) glNormal3s, _gloffset_Normal3s },
+ { "glNormal3sv", (GLvoid *) glNormal3sv, _gloffset_Normal3sv },
+ { "glRasterPos2d", (GLvoid *) glRasterPos2d, _gloffset_RasterPos2d },
+ { "glRasterPos2dv", (GLvoid *) glRasterPos2dv, _gloffset_RasterPos2dv },
+ { "glRasterPos2f", (GLvoid *) glRasterPos2f, _gloffset_RasterPos2f },
+ { "glRasterPos2fv", (GLvoid *) glRasterPos2fv, _gloffset_RasterPos2fv },
+ { "glRasterPos2i", (GLvoid *) glRasterPos2i, _gloffset_RasterPos2i },
+ { "glRasterPos2iv", (GLvoid *) glRasterPos2iv, _gloffset_RasterPos2iv },
+ { "glRasterPos2s", (GLvoid *) glRasterPos2s, _gloffset_RasterPos2s },
+ { "glRasterPos2sv", (GLvoid *) glRasterPos2sv, _gloffset_RasterPos2sv },
+ { "glRasterPos3d", (GLvoid *) glRasterPos3d, _gloffset_RasterPos3d },
+ { "glRasterPos3dv", (GLvoid *) glRasterPos3dv, _gloffset_RasterPos3dv },
+ { "glRasterPos3f", (GLvoid *) glRasterPos3f, _gloffset_RasterPos3f },
+ { "glRasterPos3fv", (GLvoid *) glRasterPos3fv, _gloffset_RasterPos3fv },
+ { "glRasterPos3i", (GLvoid *) glRasterPos3i, _gloffset_RasterPos3i },
+ { "glRasterPos3iv", (GLvoid *) glRasterPos3iv, _gloffset_RasterPos3iv },
+ { "glRasterPos3s", (GLvoid *) glRasterPos3s, _gloffset_RasterPos3s },
+ { "glRasterPos3sv", (GLvoid *) glRasterPos3sv, _gloffset_RasterPos3sv },
+ { "glRasterPos4d", (GLvoid *) glRasterPos4d, _gloffset_RasterPos4d },
+ { "glRasterPos4dv", (GLvoid *) glRasterPos4dv, _gloffset_RasterPos4dv },
+ { "glRasterPos4f", (GLvoid *) glRasterPos4f, _gloffset_RasterPos4f },
+ { "glRasterPos4fv", (GLvoid *) glRasterPos4fv, _gloffset_RasterPos4fv },
+ { "glRasterPos4i", (GLvoid *) glRasterPos4i, _gloffset_RasterPos4i },
+ { "glRasterPos4iv", (GLvoid *) glRasterPos4iv, _gloffset_RasterPos4iv },
+ { "glRasterPos4s", (GLvoid *) glRasterPos4s, _gloffset_RasterPos4s },
+ { "glRasterPos4sv", (GLvoid *) glRasterPos4sv, _gloffset_RasterPos4sv },
+ { "glRectd", (GLvoid *) glRectd, _gloffset_Rectd },
+ { "glRectdv", (GLvoid *) glRectdv, _gloffset_Rectdv },
+ { "glRectf", (GLvoid *) glRectf, _gloffset_Rectf },
+ { "glRectfv", (GLvoid *) glRectfv, _gloffset_Rectfv },
+ { "glRecti", (GLvoid *) glRecti, _gloffset_Recti },
+ { "glRectiv", (GLvoid *) glRectiv, _gloffset_Rectiv },
+ { "glRects", (GLvoid *) glRects, _gloffset_Rects },
+ { "glRectsv", (GLvoid *) glRectsv, _gloffset_Rectsv },
+ { "glTexCoord1d", (GLvoid *) glTexCoord1d, _gloffset_TexCoord1d },
+ { "glTexCoord1dv", (GLvoid *) glTexCoord1dv, _gloffset_TexCoord1dv },
+ { "glTexCoord1f", (GLvoid *) glTexCoord1f, _gloffset_TexCoord1f },
+ { "glTexCoord1fv", (GLvoid *) glTexCoord1fv, _gloffset_TexCoord1fv },
+ { "glTexCoord1i", (GLvoid *) glTexCoord1i, _gloffset_TexCoord1i },
+ { "glTexCoord1iv", (GLvoid *) glTexCoord1iv, _gloffset_TexCoord1iv },
+ { "glTexCoord1s", (GLvoid *) glTexCoord1s, _gloffset_TexCoord1s },
+ { "glTexCoord1sv", (GLvoid *) glTexCoord1sv, _gloffset_TexCoord1sv },
+ { "glTexCoord2d", (GLvoid *) glTexCoord2d, _gloffset_TexCoord2d },
+ { "glTexCoord2dv", (GLvoid *) glTexCoord2dv, _gloffset_TexCoord2dv },
+ { "glTexCoord2f", (GLvoid *) glTexCoord2f, _gloffset_TexCoord2f },
+ { "glTexCoord2fv", (GLvoid *) glTexCoord2fv, _gloffset_TexCoord2fv },
+ { "glTexCoord2i", (GLvoid *) glTexCoord2i, _gloffset_TexCoord2i },
+ { "glTexCoord2iv", (GLvoid *) glTexCoord2iv, _gloffset_TexCoord2iv },
+ { "glTexCoord2s", (GLvoid *) glTexCoord2s, _gloffset_TexCoord2s },
+ { "glTexCoord2sv", (GLvoid *) glTexCoord2sv, _gloffset_TexCoord2sv },
+ { "glTexCoord3d", (GLvoid *) glTexCoord3d, _gloffset_TexCoord3d },
+ { "glTexCoord3dv", (GLvoid *) glTexCoord3dv, _gloffset_TexCoord3dv },
+ { "glTexCoord3f", (GLvoid *) glTexCoord3f, _gloffset_TexCoord3f },
+ { "glTexCoord3fv", (GLvoid *) glTexCoord3fv, _gloffset_TexCoord3fv },
+ { "glTexCoord3i", (GLvoid *) glTexCoord3i, _gloffset_TexCoord3i },
+ { "glTexCoord3iv", (GLvoid *) glTexCoord3iv, _gloffset_TexCoord3iv },
+ { "glTexCoord3s", (GLvoid *) glTexCoord3s, _gloffset_TexCoord3s },
+ { "glTexCoord3sv", (GLvoid *) glTexCoord3sv, _gloffset_TexCoord3sv },
+ { "glTexCoord4d", (GLvoid *) glTexCoord4d, _gloffset_TexCoord4d },
+ { "glTexCoord4dv", (GLvoid *) glTexCoord4dv, _gloffset_TexCoord4dv },
+ { "glTexCoord4f", (GLvoid *) glTexCoord4f, _gloffset_TexCoord4f },
+ { "glTexCoord4fv", (GLvoid *) glTexCoord4fv, _gloffset_TexCoord4fv },
+ { "glTexCoord4i", (GLvoid *) glTexCoord4i, _gloffset_TexCoord4i },
+ { "glTexCoord4iv", (GLvoid *) glTexCoord4iv, _gloffset_TexCoord4iv },
+ { "glTexCoord4s", (GLvoid *) glTexCoord4s, _gloffset_TexCoord4s },
+ { "glTexCoord4sv", (GLvoid *) glTexCoord4sv, _gloffset_TexCoord4sv },
+ { "glVertex2d", (GLvoid *) glVertex2d, _gloffset_Vertex2d },
+ { "glVertex2dv", (GLvoid *) glVertex2dv, _gloffset_Vertex2dv },
+ { "glVertex2f", (GLvoid *) glVertex2f, _gloffset_Vertex2f },
+ { "glVertex2fv", (GLvoid *) glVertex2fv, _gloffset_Vertex2fv },
+ { "glVertex2i", (GLvoid *) glVertex2i, _gloffset_Vertex2i },
+ { "glVertex2iv", (GLvoid *) glVertex2iv, _gloffset_Vertex2iv },
+ { "glVertex2s", (GLvoid *) glVertex2s, _gloffset_Vertex2s },
+ { "glVertex2sv", (GLvoid *) glVertex2sv, _gloffset_Vertex2sv },
+ { "glVertex3d", (GLvoid *) glVertex3d, _gloffset_Vertex3d },
+ { "glVertex3dv", (GLvoid *) glVertex3dv, _gloffset_Vertex3dv },
+ { "glVertex3f", (GLvoid *) glVertex3f, _gloffset_Vertex3f },
+ { "glVertex3fv", (GLvoid *) glVertex3fv, _gloffset_Vertex3fv },
+ { "glVertex3i", (GLvoid *) glVertex3i, _gloffset_Vertex3i },
+ { "glVertex3iv", (GLvoid *) glVertex3iv, _gloffset_Vertex3iv },
+ { "glVertex3s", (GLvoid *) glVertex3s, _gloffset_Vertex3s },
+ { "glVertex3sv", (GLvoid *) glVertex3sv, _gloffset_Vertex3sv },
+ { "glVertex4d", (GLvoid *) glVertex4d, _gloffset_Vertex4d },
+ { "glVertex4dv", (GLvoid *) glVertex4dv, _gloffset_Vertex4dv },
+ { "glVertex4f", (GLvoid *) glVertex4f, _gloffset_Vertex4f },
+ { "glVertex4fv", (GLvoid *) glVertex4fv, _gloffset_Vertex4fv },
+ { "glVertex4i", (GLvoid *) glVertex4i, _gloffset_Vertex4i },
+ { "glVertex4iv", (GLvoid *) glVertex4iv, _gloffset_Vertex4iv },
+ { "glVertex4s", (GLvoid *) glVertex4s, _gloffset_Vertex4s },
+ { "glVertex4sv", (GLvoid *) glVertex4sv, _gloffset_Vertex4sv },
+ { "glClipPlane", (GLvoid *) glClipPlane, _gloffset_ClipPlane },
+ { "glColorMaterial", (GLvoid *) glColorMaterial, _gloffset_ColorMaterial },
+ { "glCullFace", (GLvoid *) glCullFace, _gloffset_CullFace },
+ { "glFogf", (GLvoid *) glFogf, _gloffset_Fogf },
+ { "glFogfv", (GLvoid *) glFogfv, _gloffset_Fogfv },
+ { "glFogi", (GLvoid *) glFogi, _gloffset_Fogi },
+ { "glFogiv", (GLvoid *) glFogiv, _gloffset_Fogiv },
+ { "glFrontFace", (GLvoid *) glFrontFace, _gloffset_FrontFace },
+ { "glHint", (GLvoid *) glHint, _gloffset_Hint },
+ { "glLightf", (GLvoid *) glLightf, _gloffset_Lightf },
+ { "glLightfv", (GLvoid *) glLightfv, _gloffset_Lightfv },
+ { "glLighti", (GLvoid *) glLighti, _gloffset_Lighti },
+ { "glLightiv", (GLvoid *) glLightiv, _gloffset_Lightiv },
+ { "glLightModelf", (GLvoid *) glLightModelf, _gloffset_LightModelf },
+ { "glLightModelfv", (GLvoid *) glLightModelfv, _gloffset_LightModelfv },
+ { "glLightModeli", (GLvoid *) glLightModeli, _gloffset_LightModeli },
+ { "glLightModeliv", (GLvoid *) glLightModeliv, _gloffset_LightModeliv },
+ { "glLineStipple", (GLvoid *) glLineStipple, _gloffset_LineStipple },
+ { "glLineWidth", (GLvoid *) glLineWidth, _gloffset_LineWidth },
+ { "glMaterialf", (GLvoid *) glMaterialf, _gloffset_Materialf },
+ { "glMaterialfv", (GLvoid *) glMaterialfv, _gloffset_Materialfv },
+ { "glMateriali", (GLvoid *) glMateriali, _gloffset_Materiali },
+ { "glMaterialiv", (GLvoid *) glMaterialiv, _gloffset_Materialiv },
+ { "glPointSize", (GLvoid *) glPointSize, _gloffset_PointSize },
+ { "glPolygonMode", (GLvoid *) glPolygonMode, _gloffset_PolygonMode },
+ { "glPolygonStipple", (GLvoid *) glPolygonStipple, _gloffset_PolygonStipple },
+ { "glScissor", (GLvoid *) glScissor, _gloffset_Scissor },
+ { "glShadeModel", (GLvoid *) glShadeModel, _gloffset_ShadeModel },
+ { "glTexParameterf", (GLvoid *) glTexParameterf, _gloffset_TexParameterf },
+ { "glTexParameterfv", (GLvoid *) glTexParameterfv, _gloffset_TexParameterfv },
+ { "glTexParameteri", (GLvoid *) glTexParameteri, _gloffset_TexParameteri },
+ { "glTexParameteriv", (GLvoid *) glTexParameteriv, _gloffset_TexParameteriv },
+ { "glTexImage1D", (GLvoid *) glTexImage1D, _gloffset_TexImage1D },
+ { "glTexImage2D", (GLvoid *) glTexImage2D, _gloffset_TexImage2D },
+ { "glTexEnvf", (GLvoid *) glTexEnvf, _gloffset_TexEnvf },
+ { "glTexEnvfv", (GLvoid *) glTexEnvfv, _gloffset_TexEnvfv },
+ { "glTexEnvi", (GLvoid *) glTexEnvi, _gloffset_TexEnvi },
+ { "glTexEnviv", (GLvoid *) glTexEnviv, _gloffset_TexEnviv },
+ { "glTexGend", (GLvoid *) glTexGend, _gloffset_TexGend },
+ { "glTexGendv", (GLvoid *) glTexGendv, _gloffset_TexGendv },
+ { "glTexGenf", (GLvoid *) glTexGenf, _gloffset_TexGenf },
+ { "glTexGenfv", (GLvoid *) glTexGenfv, _gloffset_TexGenfv },
+ { "glTexGeni", (GLvoid *) glTexGeni, _gloffset_TexGeni },
+ { "glTexGeniv", (GLvoid *) glTexGeniv, _gloffset_TexGeniv },
+ { "glFeedbackBuffer", (GLvoid *) glFeedbackBuffer, _gloffset_FeedbackBuffer },
+ { "glSelectBuffer", (GLvoid *) glSelectBuffer, _gloffset_SelectBuffer },
+ { "glRenderMode", (GLvoid *) glRenderMode, _gloffset_RenderMode },
+ { "glInitNames", (GLvoid *) glInitNames, _gloffset_InitNames },
+ { "glLoadName", (GLvoid *) glLoadName, _gloffset_LoadName },
+ { "glPassThrough", (GLvoid *) glPassThrough, _gloffset_PassThrough },
+ { "glPopName", (GLvoid *) glPopName, _gloffset_PopName },
+ { "glPushName", (GLvoid *) glPushName, _gloffset_PushName },
+ { "glDrawBuffer", (GLvoid *) glDrawBuffer, _gloffset_DrawBuffer },
+ { "glClear", (GLvoid *) glClear, _gloffset_Clear },
+ { "glClearAccum", (GLvoid *) glClearAccum, _gloffset_ClearAccum },
+ { "glClearIndex", (GLvoid *) glClearIndex, _gloffset_ClearIndex },
+ { "glClearColor", (GLvoid *) glClearColor, _gloffset_ClearColor },
+ { "glClearStencil", (GLvoid *) glClearStencil, _gloffset_ClearStencil },
+ { "glClearDepth", (GLvoid *) glClearDepth, _gloffset_ClearDepth },
+ { "glStencilMask", (GLvoid *) glStencilMask, _gloffset_StencilMask },
+ { "glColorMask", (GLvoid *) glColorMask, _gloffset_ColorMask },
+ { "glDepthMask", (GLvoid *) glDepthMask, _gloffset_DepthMask },
+ { "glIndexMask", (GLvoid *) glIndexMask, _gloffset_IndexMask },
+ { "glAccum", (GLvoid *) glAccum, _gloffset_Accum },
+ { "glDisable", (GLvoid *) glDisable, _gloffset_Disable },
+ { "glEnable", (GLvoid *) glEnable, _gloffset_Enable },
+ { "glFinish", (GLvoid *) glFinish, _gloffset_Finish },
+ { "glFlush", (GLvoid *) glFlush, _gloffset_Flush },
+ { "glPopAttrib", (GLvoid *) glPopAttrib, _gloffset_PopAttrib },
+ { "glPushAttrib", (GLvoid *) glPushAttrib, _gloffset_PushAttrib },
+ { "glMap1d", (GLvoid *) glMap1d, _gloffset_Map1d },
+ { "glMap1f", (GLvoid *) glMap1f, _gloffset_Map1f },
+ { "glMap2d", (GLvoid *) glMap2d, _gloffset_Map2d },
+ { "glMap2f", (GLvoid *) glMap2f, _gloffset_Map2f },
+ { "glMapGrid1d", (GLvoid *) glMapGrid1d, _gloffset_MapGrid1d },
+ { "glMapGrid1f", (GLvoid *) glMapGrid1f, _gloffset_MapGrid1f },
+ { "glMapGrid2d", (GLvoid *) glMapGrid2d, _gloffset_MapGrid2d },
+ { "glMapGrid2f", (GLvoid *) glMapGrid2f, _gloffset_MapGrid2f },
+ { "glEvalCoord1d", (GLvoid *) glEvalCoord1d, _gloffset_EvalCoord1d },
+ { "glEvalCoord1dv", (GLvoid *) glEvalCoord1dv, _gloffset_EvalCoord1dv },
+ { "glEvalCoord1f", (GLvoid *) glEvalCoord1f, _gloffset_EvalCoord1f },
+ { "glEvalCoord1fv", (GLvoid *) glEvalCoord1fv, _gloffset_EvalCoord1fv },
+ { "glEvalCoord2d", (GLvoid *) glEvalCoord2d, _gloffset_EvalCoord2d },
+ { "glEvalCoord2dv", (GLvoid *) glEvalCoord2dv, _gloffset_EvalCoord2dv },
+ { "glEvalCoord2f", (GLvoid *) glEvalCoord2f, _gloffset_EvalCoord2f },
+ { "glEvalCoord2fv", (GLvoid *) glEvalCoord2fv, _gloffset_EvalCoord2fv },
+ { "glEvalMesh1", (GLvoid *) glEvalMesh1, _gloffset_EvalMesh1 },
+ { "glEvalPoint1", (GLvoid *) glEvalPoint1, _gloffset_EvalPoint1 },
+ { "glEvalMesh2", (GLvoid *) glEvalMesh2, _gloffset_EvalMesh2 },
+ { "glEvalPoint2", (GLvoid *) glEvalPoint2, _gloffset_EvalPoint2 },
+ { "glAlphaFunc", (GLvoid *) glAlphaFunc, _gloffset_AlphaFunc },
+ { "glBlendFunc", (GLvoid *) glBlendFunc, _gloffset_BlendFunc },
+ { "glLogicOp", (GLvoid *) glLogicOp, _gloffset_LogicOp },
+ { "glStencilFunc", (GLvoid *) glStencilFunc, _gloffset_StencilFunc },
+ { "glStencilOp", (GLvoid *) glStencilOp, _gloffset_StencilOp },
+ { "glDepthFunc", (GLvoid *) glDepthFunc, _gloffset_DepthFunc },
+ { "glPixelZoom", (GLvoid *) glPixelZoom, _gloffset_PixelZoom },
+ { "glPixelTransferf", (GLvoid *) glPixelTransferf, _gloffset_PixelTransferf },
+ { "glPixelTransferi", (GLvoid *) glPixelTransferi, _gloffset_PixelTransferi },
+ { "glPixelStoref", (GLvoid *) glPixelStoref, _gloffset_PixelStoref },
+ { "glPixelStorei", (GLvoid *) glPixelStorei, _gloffset_PixelStorei },
+ { "glPixelMapfv", (GLvoid *) glPixelMapfv, _gloffset_PixelMapfv },
+ { "glPixelMapuiv", (GLvoid *) glPixelMapuiv, _gloffset_PixelMapuiv },
+ { "glPixelMapusv", (GLvoid *) glPixelMapusv, _gloffset_PixelMapusv },
+ { "glReadBuffer", (GLvoid *) glReadBuffer, _gloffset_ReadBuffer },
+ { "glCopyPixels", (GLvoid *) glCopyPixels, _gloffset_CopyPixels },
+ { "glReadPixels", (GLvoid *) glReadPixels, _gloffset_ReadPixels },
+ { "glDrawPixels", (GLvoid *) glDrawPixels, _gloffset_DrawPixels },
+ { "glGetBooleanv", (GLvoid *) glGetBooleanv, _gloffset_GetBooleanv },
+ { "glGetClipPlane", (GLvoid *) glGetClipPlane, _gloffset_GetClipPlane },
+ { "glGetDoublev", (GLvoid *) glGetDoublev, _gloffset_GetDoublev },
+ { "glGetError", (GLvoid *) glGetError, _gloffset_GetError },
+ { "glGetFloatv", (GLvoid *) glGetFloatv, _gloffset_GetFloatv },
+ { "glGetIntegerv", (GLvoid *) glGetIntegerv, _gloffset_GetIntegerv },
+ { "glGetLightfv", (GLvoid *) glGetLightfv, _gloffset_GetLightfv },
+ { "glGetLightiv", (GLvoid *) glGetLightiv, _gloffset_GetLightiv },
+ { "glGetMapdv", (GLvoid *) glGetMapdv, _gloffset_GetMapdv },
+ { "glGetMapfv", (GLvoid *) glGetMapfv, _gloffset_GetMapfv },
+ { "glGetMapiv", (GLvoid *) glGetMapiv, _gloffset_GetMapiv },
+ { "glGetMaterialfv", (GLvoid *) glGetMaterialfv, _gloffset_GetMaterialfv },
+ { "glGetMaterialiv", (GLvoid *) glGetMaterialiv, _gloffset_GetMaterialiv },
+ { "glGetPixelMapfv", (GLvoid *) glGetPixelMapfv, _gloffset_GetPixelMapfv },
+ { "glGetPixelMapuiv", (GLvoid *) glGetPixelMapuiv, _gloffset_GetPixelMapuiv },
+ { "glGetPixelMapusv", (GLvoid *) glGetPixelMapusv, _gloffset_GetPixelMapusv },
+ { "glGetPolygonStipple", (GLvoid *) glGetPolygonStipple, _gloffset_GetPolygonStipple },
+ { "glGetString", (GLvoid *) glGetString, _gloffset_GetString },
+ { "glGetTexEnvfv", (GLvoid *) glGetTexEnvfv, _gloffset_GetTexEnvfv },
+ { "glGetTexEnviv", (GLvoid *) glGetTexEnviv, _gloffset_GetTexEnviv },
+ { "glGetTexGendv", (GLvoid *) glGetTexGendv, _gloffset_GetTexGendv },
+ { "glGetTexGenfv", (GLvoid *) glGetTexGenfv, _gloffset_GetTexGenfv },
+ { "glGetTexGeniv", (GLvoid *) glGetTexGeniv, _gloffset_GetTexGeniv },
+ { "glGetTexImage", (GLvoid *) glGetTexImage, _gloffset_GetTexImage },
+ { "glGetTexParameterfv", (GLvoid *) glGetTexParameterfv, _gloffset_GetTexParameterfv },
+ { "glGetTexParameteriv", (GLvoid *) glGetTexParameteriv, _gloffset_GetTexParameteriv },
+ { "glGetTexLevelParameterfv", (GLvoid *) glGetTexLevelParameterfv, _gloffset_GetTexLevelParameterfv },
+ { "glGetTexLevelParameteriv", (GLvoid *) glGetTexLevelParameteriv, _gloffset_GetTexLevelParameteriv },
+ { "glIsEnabled", (GLvoid *) glIsEnabled, _gloffset_IsEnabled },
+ { "glIsList", (GLvoid *) glIsList, _gloffset_IsList },
+ { "glDepthRange", (GLvoid *) glDepthRange, _gloffset_DepthRange },
+ { "glFrustum", (GLvoid *) glFrustum, _gloffset_Frustum },
+ { "glLoadIdentity", (GLvoid *) glLoadIdentity, _gloffset_LoadIdentity },
+ { "glLoadMatrixf", (GLvoid *) glLoadMatrixf, _gloffset_LoadMatrixf },
+ { "glLoadMatrixd", (GLvoid *) glLoadMatrixd, _gloffset_LoadMatrixd },
+ { "glMatrixMode", (GLvoid *) glMatrixMode, _gloffset_MatrixMode },
+ { "glMultMatrixf", (GLvoid *) glMultMatrixf, _gloffset_MultMatrixf },
+ { "glMultMatrixd", (GLvoid *) glMultMatrixd, _gloffset_MultMatrixd },
+ { "glOrtho", (GLvoid *) glOrtho, _gloffset_Ortho },
+ { "glPopMatrix", (GLvoid *) glPopMatrix, _gloffset_PopMatrix },
+ { "glPushMatrix", (GLvoid *) glPushMatrix, _gloffset_PushMatrix },
+ { "glRotated", (GLvoid *) glRotated, _gloffset_Rotated },
+ { "glRotatef", (GLvoid *) glRotatef, _gloffset_Rotatef },
+ { "glScaled", (GLvoid *) glScaled, _gloffset_Scaled },
+ { "glScalef", (GLvoid *) glScalef, _gloffset_Scalef },
+ { "glTranslated", (GLvoid *) glTranslated, _gloffset_Translated },
+ { "glTranslatef", (GLvoid *) glTranslatef, _gloffset_Translatef },
+ { "glViewport", (GLvoid *) glViewport, _gloffset_Viewport },
+ /* 1.1 */
+ { "glArrayElement", (GLvoid *) glArrayElement, _gloffset_ArrayElement },
+ { "glColorPointer", (GLvoid *) glColorPointer, _gloffset_ColorPointer },
+ { "glDisableClientState", (GLvoid *) glDisableClientState, _gloffset_DisableClientState },
+ { "glDrawArrays", (GLvoid *) glDrawArrays, _gloffset_DrawArrays },
+ { "glDrawElements", (GLvoid *) glDrawElements, _gloffset_DrawElements },
+ { "glEdgeFlagPointer", (GLvoid *) glEdgeFlagPointer, _gloffset_EdgeFlagPointer },
+ { "glEnableClientState", (GLvoid *) glEnableClientState, _gloffset_EnableClientState },
+ { "glGetPointerv", (GLvoid *) glGetPointerv, _gloffset_GetPointerv },
+ { "glIndexPointer", (GLvoid *) glIndexPointer, _gloffset_IndexPointer },
+ { "glInterleavedArrays", (GLvoid *) glInterleavedArrays, _gloffset_InterleavedArrays },
+ { "glNormalPointer", (GLvoid *) glNormalPointer, _gloffset_NormalPointer },
+ { "glTexCoordPointer", (GLvoid *) glTexCoordPointer, _gloffset_TexCoordPointer },
+ { "glVertexPointer", (GLvoid *) glVertexPointer, _gloffset_VertexPointer },
+ { "glPolygonOffset", (GLvoid *) glPolygonOffset, _gloffset_PolygonOffset },
+ { "glCopyTexImage1D", (GLvoid *) glCopyTexImage1D, _gloffset_CopyTexImage1D },
+ { "glCopyTexImage2D", (GLvoid *) glCopyTexImage2D, _gloffset_CopyTexImage2D },
+ { "glCopyTexSubImage1D", (GLvoid *) glCopyTexSubImage1D, _gloffset_CopyTexSubImage1D },
+ { "glCopyTexSubImage2D", (GLvoid *) glCopyTexSubImage2D, _gloffset_CopyTexSubImage2D },
+ { "glTexSubImage1D", (GLvoid *) glTexSubImage1D, _gloffset_TexSubImage1D },
+ { "glTexSubImage2D", (GLvoid *) glTexSubImage2D, _gloffset_TexSubImage2D },
+ { "glAreTexturesResident", (GLvoid *) glAreTexturesResident, _gloffset_AreTexturesResident },
+ { "glBindTexture", (GLvoid *) glBindTexture, _gloffset_BindTexture },
+ { "glDeleteTextures", (GLvoid *) glDeleteTextures, _gloffset_DeleteTextures },
+ { "glGenTextures", (GLvoid *) glGenTextures, _gloffset_GenTextures },
+ { "glIsTexture", (GLvoid *) glIsTexture, _gloffset_IsTexture },
+ { "glPrioritizeTextures", (GLvoid *) glPrioritizeTextures, _gloffset_PrioritizeTextures },
+ { "glIndexub", (GLvoid *) glIndexub, _gloffset_Indexub },
+ { "glIndexubv", (GLvoid *) glIndexubv, _gloffset_Indexubv },
+ { "glPopClientAttrib", (GLvoid *) glPopClientAttrib, _gloffset_PopClientAttrib },
+ { "glPushClientAttrib", (GLvoid *) glPushClientAttrib, _gloffset_PushClientAttrib },
+ /* 1.2 */
+#ifdef GL_VERSION_1_2
#define NAME(X) X
#else
#define NAME(X) NotImplemented
#endif
- { "glAreTexturesResident", (GLvoid *) NAME(glAreTexturesResident) },
- { "glArrayElement", (GLvoid *) NAME(glArrayElement) },
- { "glBindTexture", (GLvoid *) NAME(glBindTexture) },
- { "glColorPointer", (GLvoid *) NAME(glColorPointer) },
- { "glCopyTexImage1D", (GLvoid *) NAME(glCopyTexImage1D) },
- { "glCopyTexImage2D", (GLvoid *) NAME(glCopyTexImage2D) },
- { "glCopyTexSubImage1D", (GLvoid *) NAME(glCopyTexSubImage1D) },
- { "glCopyTexSubImage2D", (GLvoid *) NAME(glCopyTexSubImage2D) },
- { "glDeleteTextures", (GLvoid *) NAME(glDeleteTextures) },
- { "glDisableClientState", (GLvoid *) NAME(glDisableClientState) },
- { "glDrawArrays", (GLvoid *) NAME(glDrawArrays) },
- { "glDrawElements", (GLvoid *) NAME(glDrawElements) },
- { "glEdgeFlagPointer", (GLvoid *) NAME(glEdgeFlagPointer) },
- { "glEnableClientState", (GLvoid *) NAME(glEnableClientState) },
- { "glGenTextures", (GLvoid *) NAME(glGenTextures) },
- { "glGetPointerv", (GLvoid *) NAME(glGetPointerv) },
- { "glIndexPointer", (GLvoid *) NAME(glIndexPointer) },
- { "glIndexub", (GLvoid *) NAME(glIndexub) },
- { "glIndexubv", (GLvoid *) NAME(glIndexubv) },
- { "glInterleavedArrays", (GLvoid *) NAME(glInterleavedArrays) },
- { "glIsTexture", (GLvoid *) NAME(glIsTexture) },
- { "glNormalPointer", (GLvoid *) NAME(glNormalPointer) },
- { "glPopClientAttrib", (GLvoid *) NAME(glPopClientAttrib) },
- { "glPrioritizeTextures", (GLvoid *) NAME(glPrioritizeTextures) },
- { "glPushClientAttrib", (GLvoid *) NAME(glPushClientAttrib) },
- { "glTexCoordPointer", (GLvoid *) NAME(glTexCoordPointer) },
- { "glTexSubImage1D", (GLvoid *) NAME(glTexSubImage1D) },
- { "glTexSubImage2D", (GLvoid *) NAME(glTexSubImage2D) },
- { "glVertexPointer", (GLvoid *) NAME(glVertexPointer) },
+ { "glBlendColor", (GLvoid *) NAME(glBlendColor), _gloffset_BlendColor },
+ { "glBlendEquation", (GLvoid *) NAME(glBlendEquation), _gloffset_BlendEquation },
+ { "glDrawRangeElements", (GLvoid *) NAME(glDrawRangeElements), _gloffset_DrawRangeElements },
+ { "glColorTable", (GLvoid *) NAME(glColorTable), _gloffset_ColorTable },
+ { "glColorTableParameterfv", (GLvoid *) NAME(glColorTableParameterfv), _gloffset_ColorTableParameterfv },
+ { "glColorTableParameteriv", (GLvoid *) NAME(glColorTableParameteriv), _gloffset_ColorTableParameteriv },
+ { "glCopyColorTable", (GLvoid *) NAME(glCopyColorTable), _gloffset_CopyColorTable },
+ { "glGetColorTable", (GLvoid *) NAME(glGetColorTable), _gloffset_GetColorTable },
+ { "glGetColorTableParameterfv", (GLvoid *) NAME(glGetColorTableParameterfv), _gloffset_GetColorTableParameterfv },
+ { "glGetColorTableParameteriv", (GLvoid *) NAME(glGetColorTableParameteriv), _gloffset_GetColorTableParameteriv },
+ { "glColorSubTable", (GLvoid *) NAME(glColorSubTable), _gloffset_ColorSubTable },
+ { "glCopyColorSubTable", (GLvoid *) NAME(glCopyColorSubTable), _gloffset_CopyColorSubTable },
+ { "glConvolutionFilter1D", (GLvoid *) NAME(glConvolutionFilter1D), _gloffset_ConvolutionFilter1D },
+ { "glConvolutionFilter2D", (GLvoid *) NAME(glConvolutionFilter2D), _gloffset_ConvolutionFilter2D },
+ { "glConvolutionParameterf", (GLvoid *) NAME(glConvolutionParameterf), _gloffset_ConvolutionParameterf },
+ { "glConvolutionParameterfv", (GLvoid *) NAME(glConvolutionParameterfv), _gloffset_ConvolutionParameterfv },
+ { "glConvolutionParameteri", (GLvoid *) NAME(glConvolutionParameteri), _gloffset_ConvolutionParameteri },
+ { "glConvolutionParameteriv", (GLvoid *) NAME(glConvolutionParameteriv), _gloffset_ConvolutionParameteriv },
+ { "glCopyConvolutionFilter1D", (GLvoid *) NAME(glCopyConvolutionFilter1D), _gloffset_CopyConvolutionFilter1D },
+ { "glCopyConvolutionFilter2D", (GLvoid *) NAME(glCopyConvolutionFilter2D), _gloffset_CopyConvolutionFilter2D },
+ { "glGetConvolutionFilter", (GLvoid *) NAME(glGetConvolutionFilter), _gloffset_GetConvolutionFilter },
+ { "glGetConvolutionParameterfv", (GLvoid *) NAME(glGetConvolutionParameterfv), _gloffset_GetConvolutionParameterfv },
+ { "glGetConvolutionParameteriv", (GLvoid *) NAME(glGetConvolutionParameteriv), _gloffset_GetConvolutionParameteriv },
+ { "glGetSeparableFilter", (GLvoid *) NAME(glGetSeparableFilter), _gloffset_GetSeparableFilter },
+ { "glSeparableFilter2D", (GLvoid *) NAME(glSeparableFilter2D), _gloffset_SeparableFilter2D },
+ { "glGetHistogram", (GLvoid *) NAME(glGetHistogram), _gloffset_GetHistogram },
+ { "glGetHistogramParameterfv", (GLvoid *) NAME(glGetHistogramParameterfv), _gloffset_GetHistogramParameterfv },
+ { "glGetHistogramParameteriv", (GLvoid *) NAME(glGetHistogramParameteriv), _gloffset_GetHistogramParameteriv },
+ { "glGetMinmax", (GLvoid *) NAME(glGetMinmax), _gloffset_GetMinmax },
+ { "glGetMinmaxParameterfv", (GLvoid *) NAME(glGetMinmaxParameterfv), _gloffset_GetMinmaxParameterfv },
+ { "glGetMinmaxParameteriv", (GLvoid *) NAME(glGetMinmaxParameteriv), _gloffset_GetMinmaxParameteriv },
+ { "glHistogram", (GLvoid *) NAME(glHistogram), _gloffset_Histogram },
+ { "glMinmax", (GLvoid *) NAME(glMinmax), _gloffset_Minmax },
+ { "glResetHistogram", (GLvoid *) NAME(glResetHistogram), _gloffset_ResetHistogram },
+ { "glResetMinmax", (GLvoid *) NAME(glResetMinmax), _gloffset_ResetMinmax },
+ { "glTexImage3D", (GLvoid *) NAME(glTexImage3D), _gloffset_TexImage3D },
+ { "glTexSubImage3D", (GLvoid *) NAME(glTexSubImage3D), _gloffset_TexSubImage3D },
+ { "glCopyTexSubImage3D", (GLvoid *) NAME(glCopyTexSubImage3D), _gloffset_CopyTexSubImage3D },
#undef NAME
- /* GL 1.2 */
-#ifdef GL_VERSION_1_2
+ /* GL_ARB_multitexture */
+#ifdef GL_ARB_multitexture
#define NAME(X) X
#else
#define NAME(X) NotImplemented
#endif
- { "glCopyTexSubImage3D", (GLvoid *) NAME(glCopyTexSubImage3D) },
- { "glDrawRangeElements", (GLvoid *) NAME(glDrawRangeElements) },
- { "glTexImage3D", (GLvoid *) NAME(glTexImage3D) },
- { "glTexSubImage3D", (GLvoid *) NAME(glTexSubImage3D) },
+ { "glActiveTextureARB", (GLvoid *) NAME(glActiveTextureARB), _gloffset_ActiveTextureARB },
+ { "glClientActiveTextureARB", (GLvoid *) NAME(glClientActiveTextureARB), _gloffset_ClientActiveTextureARB },
+ { "glMultiTexCoord1dARB", (GLvoid *) NAME(glMultiTexCoord1dARB), _gloffset_MultiTexCoord1dARB },
+ { "glMultiTexCoord1dvARB", (GLvoid *) NAME(glMultiTexCoord1dvARB), _gloffset_MultiTexCoord1dvARB },
+ { "glMultiTexCoord1fARB", (GLvoid *) NAME(glMultiTexCoord1fARB), _gloffset_MultiTexCoord1fARB },
+ { "glMultiTexCoord1fvARB", (GLvoid *) NAME(glMultiTexCoord1fvARB), _gloffset_MultiTexCoord1fvARB },
+ { "glMultiTexCoord1iARB", (GLvoid *) NAME(glMultiTexCoord1iARB), _gloffset_MultiTexCoord1iARB },
+ { "glMultiTexCoord1ivARB", (GLvoid *) NAME(glMultiTexCoord1ivARB), _gloffset_MultiTexCoord1ivARB },
+ { "glMultiTexCoord1sARB", (GLvoid *) NAME(glMultiTexCoord1sARB), _gloffset_MultiTexCoord1sARB },
+ { "glMultiTexCoord1svARB", (GLvoid *) NAME(glMultiTexCoord1svARB), _gloffset_MultiTexCoord1svARB },
+ { "glMultiTexCoord2dARB", (GLvoid *) NAME(glMultiTexCoord2dARB), _gloffset_MultiTexCoord2dARB },
+ { "glMultiTexCoord2dvARB", (GLvoid *) NAME(glMultiTexCoord2dvARB), _gloffset_MultiTexCoord2dvARB },
+ { "glMultiTexCoord2fARB", (GLvoid *) NAME(glMultiTexCoord2fARB), _gloffset_MultiTexCoord2fARB },
+ { "glMultiTexCoord2fvARB", (GLvoid *) NAME(glMultiTexCoord2fvARB), _gloffset_MultiTexCoord2fvARB },
+ { "glMultiTexCoord2iARB", (GLvoid *) NAME(glMultiTexCoord2iARB), _gloffset_MultiTexCoord2iARB },
+ { "glMultiTexCoord2ivARB", (GLvoid *) NAME(glMultiTexCoord2ivARB), _gloffset_MultiTexCoord2ivARB },
+ { "glMultiTexCoord2sARB", (GLvoid *) NAME(glMultiTexCoord2sARB), _gloffset_MultiTexCoord2sARB },
+ { "glMultiTexCoord2svARB", (GLvoid *) NAME(glMultiTexCoord2svARB), _gloffset_MultiTexCoord2svARB },
+ { "glMultiTexCoord3dARB", (GLvoid *) NAME(glMultiTexCoord3dARB), _gloffset_MultiTexCoord3dARB },
+ { "glMultiTexCoord3dvARB", (GLvoid *) NAME(glMultiTexCoord3dvARB), _gloffset_MultiTexCoord3dvARB },
+ { "glMultiTexCoord3fARB", (GLvoid *) NAME(glMultiTexCoord3fARB), _gloffset_MultiTexCoord3fARB },
+ { "glMultiTexCoord3fvARB", (GLvoid *) NAME(glMultiTexCoord3fvARB), _gloffset_MultiTexCoord3fvARB },
+ { "glMultiTexCoord3iARB", (GLvoid *) NAME(glMultiTexCoord3iARB), _gloffset_MultiTexCoord3iARB },
+ { "glMultiTexCoord3ivARB", (GLvoid *) NAME(glMultiTexCoord3ivARB), _gloffset_MultiTexCoord3ivARB },
+ { "glMultiTexCoord3sARB", (GLvoid *) NAME(glMultiTexCoord3sARB), _gloffset_MultiTexCoord3sARB },
+ { "glMultiTexCoord3svARB", (GLvoid *) NAME(glMultiTexCoord3svARB), _gloffset_MultiTexCoord3svARB },
+ { "glMultiTexCoord4dARB", (GLvoid *) NAME(glMultiTexCoord4dARB), _gloffset_MultiTexCoord4dARB },
+ { "glMultiTexCoord4dvARB", (GLvoid *) NAME(glMultiTexCoord4dvARB), _gloffset_MultiTexCoord4dvARB },
+ { "glMultiTexCoord4fARB", (GLvoid *) NAME(glMultiTexCoord4fARB), _gloffset_MultiTexCoord4fARB },
+ { "glMultiTexCoord4fvARB", (GLvoid *) NAME(glMultiTexCoord4fvARB), _gloffset_MultiTexCoord4fvARB },
+ { "glMultiTexCoord4iARB", (GLvoid *) NAME(glMultiTexCoord4iARB), _gloffset_MultiTexCoord4iARB },
+ { "glMultiTexCoord4ivARB", (GLvoid *) NAME(glMultiTexCoord4ivARB), _gloffset_MultiTexCoord4ivARB },
+ { "glMultiTexCoord4sARB", (GLvoid *) NAME(glMultiTexCoord4sARB), _gloffset_MultiTexCoord4sARB },
+ { "glMultiTexCoord4svARB", (GLvoid *) NAME(glMultiTexCoord4svARB), _gloffset_MultiTexCoord4svARB },
#undef NAME
- /* GL_ARB_imaging */
-#ifdef GL_ARB_imaging
+ /* GL_ARB_transpose_matrix */
+#ifdef GL_ARB_transpose_matrix
#define NAME(X) X
#else
#define NAME(X) NotImplemented
#endif
- { "glBlendColor", (GLvoid *) NAME(glBlendColor) },
- { "glBlendEquation", (GLvoid *) NAME(glBlendEquation) },
- { "glColorSubTable", (GLvoid *) NAME(glColorSubTable) },
- { "glColorTable", (GLvoid *) NAME(glColorTable) },
- { "glColorTableParameterfv", (GLvoid *) NAME(glColorTableParameterfv) },
- { "glColorTableParameteriv", (GLvoid *) NAME(glColorTableParameteriv) },
- { "glConvolutionFilter1D", (GLvoid *) NAME(glConvolutionFilter1D) },
- { "glConvolutionFilter2D", (GLvoid *) NAME(glConvolutionFilter2D) },
- { "glConvolutionParameterf", (GLvoid *) NAME(glConvolutionParameterf) },
- { "glConvolutionParameterfv", (GLvoid *) NAME(glConvolutionParameterfv) },
- { "glConvolutionParameteri", (GLvoid *) NAME(glConvolutionParameteri) },
- { "glConvolutionParameteriv", (GLvoid *) NAME(glConvolutionParameteriv) },
- { "glCopyColorSubTable", (GLvoid *) NAME(glCopyColorSubTable) },
- { "glCopyColorTable", (GLvoid *) NAME(glCopyColorTable) },
- { "glCopyConvolutionFilter1D", (GLvoid *) NAME(glCopyConvolutionFilter1D) },
- { "glCopyConvolutionFilter2D", (GLvoid *) NAME(glCopyConvolutionFilter2D) },
- { "glGetColorTable", (GLvoid *) NAME(glGetColorTable) },
- { "glGetColorTableParameterfv", (GLvoid *) NAME(glGetColorTableParameterfv) },
- { "glGetColorTableParameteriv", (GLvoid *) NAME(glGetColorTableParameteriv) },
- { "glGetConvolutionFilter", (GLvoid *) NAME(glGetConvolutionFilter) },
- { "glGetConvolutionParameterfv", (GLvoid *) NAME(glGetConvolutionParameterfv) },
- { "glGetConvolutionParameteriv", (GLvoid *) NAME(glGetConvolutionParameteriv) },
- { "glGetHistogram", (GLvoid *) NAME(glGetHistogram) },
- { "glGetHistogramParameterfv", (GLvoid *) NAME(glGetHistogramParameterfv) },
- { "glGetHistogramParameteriv", (GLvoid *) NAME(glGetHistogramParameteriv) },
- { "glGetMinmax", (GLvoid *) NAME(glGetMinmax) },
- { "glGetMinmaxParameterfv", (GLvoid *) NAME(glGetMinmaxParameterfv) },
- { "glGetMinmaxParameteriv", (GLvoid *) NAME(glGetMinmaxParameteriv) },
- { "glGetSeparableFilter", (GLvoid *) NAME(glGetSeparableFilter) },
- { "glHistogram", (GLvoid *) NAME(glHistogram) },
- { "glMinmax", (GLvoid *) NAME(glMinmax) },
- { "glResetHistogram", (GLvoid *) NAME(glResetHistogram) },
- { "glResetMinmax", (GLvoid *) NAME(glResetMinmax) },
- { "glSeparableFilter2D", (GLvoid *) NAME(glSeparableFilter2D) },
+ { "glLoadTransposeMatrixdARB", (GLvoid *) NAME(glLoadTransposeMatrixdARB), _gloffset_LoadTransposeMatrixdARB },
+ { "glLoadTransposeMatrixfARB", (GLvoid *) NAME(glLoadTransposeMatrixfARB), _gloffset_LoadTransposeMatrixfARB },
+ { "glMultTransposeMatrixdARB", (GLvoid *) NAME(glMultTransposeMatrixdARB), _gloffset_MultTransposeMatrixdARB },
+ { "glMultTransposeMatrixfARB", (GLvoid *) NAME(glMultTransposeMatrixfARB), _gloffset_MultTransposeMatrixfARB },
#undef NAME
- /* GL_ARB_multitexture */
-#ifdef GL_ARB_multitexture
+ /* GL_ARB_multisample */
+#ifdef GL_ARB_multisample
#define NAME(X) X
#else
#define NAME(X) NotImplemented
#endif
- { "glActiveTextureARB", (GLvoid *) NAME(glActiveTextureARB) },
- { "glClientActiveTextureARB", (GLvoid *) NAME(glClientActiveTextureARB) },
- { "glMultiTexCoord1dARB", (GLvoid *) NAME(glMultiTexCoord1dARB) },
- { "glMultiTexCoord1dvARB", (GLvoid *) NAME(glMultiTexCoord1dvARB) },
- { "glMultiTexCoord1fARB", (GLvoid *) NAME(glMultiTexCoord1fARB) },
- { "glMultiTexCoord1fvARB", (GLvoid *) NAME(glMultiTexCoord1fvARB) },
- { "glMultiTexCoord1iARB", (GLvoid *) NAME(glMultiTexCoord1iARB) },
- { "glMultiTexCoord1ivARB", (GLvoid *) NAME(glMultiTexCoord1ivARB) },
- { "glMultiTexCoord1sARB", (GLvoid *) NAME(glMultiTexCoord1sARB) },
- { "glMultiTexCoord1svARB", (GLvoid *) NAME(glMultiTexCoord1svARB) },
- { "glMultiTexCoord2dARB", (GLvoid *) NAME(glMultiTexCoord2dARB) },
- { "glMultiTexCoord2dvARB", (GLvoid *) NAME(glMultiTexCoord2dvARB) },
- { "glMultiTexCoord2fARB", (GLvoid *) NAME(glMultiTexCoord2fARB) },
- { "glMultiTexCoord2fvARB", (GLvoid *) NAME(glMultiTexCoord2fvARB) },
- { "glMultiTexCoord2iARB", (GLvoid *) NAME(glMultiTexCoord2iARB) },
- { "glMultiTexCoord2ivARB", (GLvoid *) NAME(glMultiTexCoord2ivARB) },
- { "glMultiTexCoord2sARB", (GLvoid *) NAME(glMultiTexCoord2sARB) },
- { "glMultiTexCoord2svARB", (GLvoid *) NAME(glMultiTexCoord2svARB) },
- { "glMultiTexCoord3dARB", (GLvoid *) NAME(glMultiTexCoord3dARB) },
- { "glMultiTexCoord3dvARB", (GLvoid *) NAME(glMultiTexCoord3dvARB) },
- { "glMultiTexCoord3fARB", (GLvoid *) NAME(glMultiTexCoord3fARB) },
- { "glMultiTexCoord3fvARB", (GLvoid *) NAME(glMultiTexCoord3fvARB) },
- { "glMultiTexCoord3iARB", (GLvoid *) NAME(glMultiTexCoord3iARB) },
- { "glMultiTexCoord3ivARB", (GLvoid *) NAME(glMultiTexCoord3ivARB) },
- { "glMultiTexCoord3sARB", (GLvoid *) NAME(glMultiTexCoord3sARB) },
- { "glMultiTexCoord3svARB", (GLvoid *) NAME(glMultiTexCoord3svARB) },
- { "glMultiTexCoord4dARB", (GLvoid *) NAME(glMultiTexCoord4dARB) },
- { "glMultiTexCoord4dvARB", (GLvoid *) NAME(glMultiTexCoord4dvARB) },
- { "glMultiTexCoord4fARB", (GLvoid *) NAME(glMultiTexCoord4fARB) },
- { "glMultiTexCoord4fvARB", (GLvoid *) NAME(glMultiTexCoord4fvARB) },
- { "glMultiTexCoord4iARB", (GLvoid *) NAME(glMultiTexCoord4iARB) },
- { "glMultiTexCoord4ivARB", (GLvoid *) NAME(glMultiTexCoord4ivARB) },
- { "glMultiTexCoord4sARB", (GLvoid *) NAME(glMultiTexCoord4sARB) },
- { "glMultiTexCoord4svARB", (GLvoid *) NAME(glMultiTexCoord4svARB) },
+ { "glSampleCoverageARB", (GLvoid *) NAME(glSampleCoverageARB), _gloffset_SampleCoverageARB },
+ { "glSamplePassARB", (GLvoid *) NAME(glSamplePassARB), _gloffset_SamplePassARB },
#undef NAME
/* 2. GL_EXT_blend_color */
@@ -1039,7 +1037,7 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glBlendColorEXT", (GLvoid *) NAME(glBlendColorEXT) },
+ { "glBlendColorEXT", (GLvoid *) NAME(glBlendColorEXT), _gloffset_BlendColor },
#undef NAME
/* 3. GL_EXT_polygon_offset */
@@ -1048,7 +1046,7 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glPolygonOffsetEXT", (GLvoid *) NAME(glPolygonOffsetEXT) },
+ { "glPolygonOffsetEXT", (GLvoid *) NAME(glPolygonOffsetEXT), _gloffset_PolygonOffsetEXT },
#undef NAME
/* 6. GL_EXT_texture3D */
@@ -1057,9 +1055,9 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glCopyTexSubImage3DEXT", (GLvoid *) NAME(glCopyTexSubImage3DEXT) },
- { "glTexImage3DEXT", (GLvoid *) NAME(glTexImage3DEXT) },
- { "glTexSubImage3DEXT", (GLvoid *) NAME(glTexSubImage3DEXT) },
+ { "glCopyTexSubImage3DEXT", (GLvoid *) NAME(glCopyTexSubImage3DEXT), _gloffset_CopyTexSubImage3D },
+ { "glTexImage3DEXT", (GLvoid *) NAME(glTexImage3DEXT), _gloffset_TexImage3D },
+ { "glTexSubImage3DEXT", (GLvoid *) NAME(glTexSubImage3DEXT), _gloffset_TexSubImage3D },
#undef NAME
/* 7. GL_SGI_texture_filter4 */
@@ -1068,8 +1066,8 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glGetTexFilterFuncSGIS", (GLvoid *) NAME(glGetTexFilterFuncSGIS) },
- { "glTexFilterFuncSGIS", (GLvoid *) NAME(glTexFilterFuncSGIS) },
+ { "glGetTexFilterFuncSGIS", (GLvoid *) NAME(glGetTexFilterFuncSGIS), _gloffset_GetTexFilterFuncSGIS },
+ { "glTexFilterFuncSGIS", (GLvoid *) NAME(glTexFilterFuncSGIS), _gloffset_TexFilterFuncSGIS },
#undef NAME
/* 9. GL_EXT_subtexture */
@@ -1078,8 +1076,8 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glTexSubImage1DEXT", (GLvoid *) NAME(glTexSubImage1DEXT) },
- { "glTexSubImage2DEXT", (GLvoid *) NAME(glTexSubImage2DEXT) },
+ { "glTexSubImage1DEXT", (GLvoid *) NAME(glTexSubImage1DEXT), _gloffset_TexSubImage1D },
+ { "glTexSubImage2DEXT", (GLvoid *) NAME(glTexSubImage2DEXT), _gloffset_TexSubImage2D },
#undef NAME
/* 10. GL_EXT_copy_texture */
@@ -1088,10 +1086,10 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glCopyTexImage1DEXT", (GLvoid *) NAME(glCopyTexImage1DEXT) },
- { "glCopyTexImage2DEXT", (GLvoid *) NAME(glCopyTexImage2DEXT) },
- { "glCopyTexSubImage1DEXT", (GLvoid *) NAME(glCopyTexSubImage1DEXT) },
- { "glCopyTexSubImage2DEXT", (GLvoid *) NAME(glCopyTexSubImage2DEXT) },
+ { "glCopyTexImage1DEXT", (GLvoid *) NAME(glCopyTexImage1DEXT), _gloffset_CopyTexImage1D },
+ { "glCopyTexImage2DEXT", (GLvoid *) NAME(glCopyTexImage2DEXT), _gloffset_CopyTexImage2D },
+ { "glCopyTexSubImage1DEXT", (GLvoid *) NAME(glCopyTexSubImage1DEXT), _gloffset_CopyTexSubImage1D },
+ { "glCopyTexSubImage2DEXT", (GLvoid *) NAME(glCopyTexSubImage2DEXT), _gloffset_CopyTexSubImage2D },
#undef NAME
/* 11. GL_EXT_histogram */
@@ -1100,16 +1098,16 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glGetHistogramEXT", (GLvoid *) NAME(glGetHistogramEXT) },
- { "glGetHistogramParameterfvEXT", (GLvoid *) NAME(glGetHistogramParameterfvEXT) },
- { "glGetHistogramParameterivEXT", (GLvoid *) NAME(glGetHistogramParameterivEXT) },
- { "glGetMinmaxEXT", (GLvoid *) NAME(glGetMinmaxEXT) },
- { "glGetMinmaxParameterfvEXT", (GLvoid *) NAME(glGetMinmaxParameterfvEXT) },
- { "glGetMinmaxParameterivEXT", (GLvoid *) NAME(glGetMinmaxParameterivEXT) },
- { "glHistogramEXT", (GLvoid *) NAME(glHistogramEXT) },
- { "glMinmaxEXT", (GLvoid *) NAME(glMinmaxEXT) },
- { "glResetHistogramEXT", (GLvoid *) NAME(glResetHistogramEXT) },
- { "glResetMinmaxEXT", (GLvoid *) NAME(glResetMinmaxEXT) },
+ { "glGetHistogramEXT", (GLvoid *) NAME(glGetHistogramEXT), _gloffset_GetHistogramEXT },
+ { "glGetHistogramParameterfvEXT", (GLvoid *) NAME(glGetHistogramParameterfvEXT), _gloffset_GetHistogramParameterfvEXT },
+ { "glGetHistogramParameterivEXT", (GLvoid *) NAME(glGetHistogramParameterivEXT), _gloffset_GetHistogramParameterivEXT },
+ { "glGetMinmaxEXT", (GLvoid *) NAME(glGetMinmaxEXT), _gloffset_GetMinmaxEXT },
+ { "glGetMinmaxParameterfvEXT", (GLvoid *) NAME(glGetMinmaxParameterfvEXT), _gloffset_GetMinmaxParameterfvEXT },
+ { "glGetMinmaxParameterivEXT", (GLvoid *) NAME(glGetMinmaxParameterivEXT), _gloffset_GetMinmaxParameterivEXT },
+ { "glHistogramEXT", (GLvoid *) NAME(glHistogramEXT), _gloffset_Histogram },
+ { "glMinmaxEXT", (GLvoid *) NAME(glMinmaxEXT), _gloffset_Minmax },
+ { "glResetHistogramEXT", (GLvoid *) NAME(glResetHistogramEXT), _gloffset_ResetHistogram },
+ { "glResetMinmaxEXT", (GLvoid *) NAME(glResetMinmaxEXT), _gloffset_ResetMinmax },
#undef NAME
/* 12. GL_EXT_convolution */
@@ -1118,19 +1116,19 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glConvolutionFilter1DEXT", (GLvoid *) NAME(glConvolutionFilter1DEXT) },
- { "glConvolutionFilter2DEXT", (GLvoid *) NAME(glConvolutionFilter2DEXT) },
- { "glConvolutionParameterfEXT", (GLvoid *) NAME(glConvolutionParameterfEXT) },
- { "glConvolutionParameterfvEXT", (GLvoid *) NAME(glConvolutionParameterfvEXT) },
- { "glConvolutionParameteriEXT", (GLvoid *) NAME(glConvolutionParameteriEXT) },
- { "glConvolutionParameterivEXT", (GLvoid *) NAME(glConvolutionParameterivEXT) },
- { "glCopyConvolutionFilter1DEXT", (GLvoid *) NAME(glCopyConvolutionFilter1DEXT) },
- { "glCopyConvolutionFilter2DEXT", (GLvoid *) NAME(glCopyConvolutionFilter2DEXT) },
- { "glGetConvolutionFilterEXT", (GLvoid *) NAME(glGetConvolutionFilterEXT) },
- { "glGetConvolutionParameterivEXT", (GLvoid *) NAME(glGetConvolutionParameterivEXT) },
- { "glGetConvolutionParameterfvEXT", (GLvoid *) NAME(glGetConvolutionParameterfvEXT) },
- { "glGetSeparableFilterEXT", (GLvoid *) NAME(glGetSeparableFilterEXT) },
- { "glSeparableFilter2DEXT", (GLvoid *) NAME(glSeparableFilter2DEXT) },
+ { "glConvolutionFilter1DEXT", (GLvoid *) NAME(glConvolutionFilter1DEXT), _gloffset_ConvolutionFilter1D },
+ { "glConvolutionFilter2DEXT", (GLvoid *) NAME(glConvolutionFilter2DEXT), _gloffset_ConvolutionFilter2D },
+ { "glConvolutionParameterfEXT", (GLvoid *) NAME(glConvolutionParameterfEXT), _gloffset_ConvolutionParameterf },
+ { "glConvolutionParameterfvEXT", (GLvoid *) NAME(glConvolutionParameterfvEXT), _gloffset_ConvolutionParameterfv },
+ { "glConvolutionParameteriEXT", (GLvoid *) NAME(glConvolutionParameteriEXT), _gloffset_ConvolutionParameteri },
+ { "glConvolutionParameterivEXT", (GLvoid *) NAME(glConvolutionParameterivEXT), _gloffset_ConvolutionParameteriv },
+ { "glCopyConvolutionFilter1DEXT", (GLvoid *) NAME(glCopyConvolutionFilter1DEXT), _gloffset_CopyConvolutionFilter1D },
+ { "glCopyConvolutionFilter2DEXT", (GLvoid *) NAME(glCopyConvolutionFilter2DEXT), _gloffset_CopyConvolutionFilter2D },
+ { "glGetConvolutionFilterEXT", (GLvoid *) NAME(glGetConvolutionFilterEXT), _gloffset_GetConvolutionFilterEXT },
+ { "glGetConvolutionParameterivEXT", (GLvoid *) NAME(glGetConvolutionParameterivEXT), _gloffset_GetConvolutionParameterivEXT },
+ { "glGetConvolutionParameterfvEXT", (GLvoid *) NAME(glGetConvolutionParameterfvEXT), _gloffset_GetConvolutionParameterfvEXT },
+ { "glGetSeparableFilterEXT", (GLvoid *) NAME(glGetSeparableFilterEXT), _gloffset_GetSeparableFilterEXT },
+ { "glSeparableFilter2DEXT", (GLvoid *) NAME(glSeparableFilter2DEXT), _gloffset_SeparableFilter2D },
#undef NAME
/* 14. GL_SGI_color_table */
@@ -1139,13 +1137,13 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glColorTableSGI", (GLvoid *) NAME(glColorTableSGI) },
- { "glColorTableParameterfvSGI", (GLvoid *) NAME(glColorTableParameterfvSGI) },
- { "glColorTableParameterivSGI", (GLvoid *) NAME(glColorTableParameterivSGI) },
- { "glCopyColorTableSGI", (GLvoid *) NAME(glCopyColorTableSGI) },
- { "glGetColorTableSGI", (GLvoid *) NAME(glGetColorTableSGI) },
- { "glGetColorTableParameterfvSGI", (GLvoid *) NAME(glGetColorTableParameterfvSGI) },
- { "glGetColorTableParameterivSGI", (GLvoid *) NAME(glGetColorTableParameterivSGI) },
+ { "glColorTableSGI", (GLvoid *) NAME(glColorTableSGI), _gloffset_ColorTable },
+ { "glColorTableParameterfvSGI", (GLvoid *) NAME(glColorTableParameterfvSGI), _gloffset_ColorTableParameterfv },
+ { "glColorTableParameterivSGI", (GLvoid *) NAME(glColorTableParameterivSGI), _gloffset_ColorTableParameteriv },
+ { "glCopyColorTableSGI", (GLvoid *) NAME(glCopyColorTableSGI), _gloffset_CopyColorTable },
+ { "glGetColorTableSGI", (GLvoid *) NAME(glGetColorTableSGI), _gloffset_GetColorTableSGI },
+ { "glGetColorTableParameterfvSGI", (GLvoid *) NAME(glGetColorTableParameterfvSGI), _gloffset_GetColorTableParameterfvSGI },
+ { "glGetColorTableParameterivSGI", (GLvoid *) NAME(glGetColorTableParameterivSGI), _gloffset_GetColorTableParameterivSGI },
#undef NAME
/* 15. GL_SGIS_pixel_texture */
@@ -1154,10 +1152,10 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glPixelTexGenParameterfSGIS", (GLvoid *) NAME(glPixelTexGenParameterfSGIS) },
- { "glPixelTexGenParameteriSGIS", (GLvoid *) NAME(glPixelTexGenParameteriSGIS) },
- { "glGetPixelTexGenParameterfvSGIS", (GLvoid *) NAME(glGetPixelTexGenParameterfvSGIS) },
- { "glGetPixelTexGenParameterivSGIS", (GLvoid *) NAME(glGetPixelTexGenParameterivSGIS) },
+ { "glPixelTexGenParameterfSGIS", (GLvoid *) NAME(glPixelTexGenParameterfSGIS), _gloffset_PixelTexGenParameterfSGIS },
+ { "glPixelTexGenParameteriSGIS", (GLvoid *) NAME(glPixelTexGenParameteriSGIS), _gloffset_PixelTexGenParameteriSGIS },
+ { "glGetPixelTexGenParameterfvSGIS", (GLvoid *) NAME(glGetPixelTexGenParameterfvSGIS), _gloffset_GetPixelTexGenParameterfvSGIS },
+ { "glGetPixelTexGenParameterivSGIS", (GLvoid *) NAME(glGetPixelTexGenParameterivSGIS), _gloffset_GetPixelTexGenParameterivSGIS },
#undef NAME
/* 16. GL_SGIS_texture4D */
@@ -1166,8 +1164,8 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glTexImage4DSGIS", (GLvoid *) NAME(glTexImage4DSGIS) },
- { "glTexSubImage4DSGIS", (GLvoid *) NAME(glTexSubImage4DSGIS) },
+ { "glTexImage4DSGIS", (GLvoid *) NAME(glTexImage4DSGIS), _gloffset_TexImage4DSGIS },
+ { "glTexSubImage4DSGIS", (GLvoid *) NAME(glTexSubImage4DSGIS), _gloffset_TexSubImage4DSGIS },
#undef NAME
/* 20. GL_EXT_texture_object */
@@ -1176,12 +1174,12 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glAreTexturesResidentEXT", (GLvoid *) NAME(glAreTexturesResidentEXT) },
- { "glBindTextureEXT", (GLvoid *) NAME(glBindTextureEXT) },
- { "glDeleteTexturesEXT", (GLvoid *) NAME(glDeleteTexturesEXT) },
- { "glGenTexturesEXT", (GLvoid *) NAME(glGenTexturesEXT) },
- { "glIsTextureEXT", (GLvoid *) NAME(glIsTextureEXT) },
- { "glPrioritizeTexturesEXT", (GLvoid *) NAME(glPrioritizeTexturesEXT) },
+ { "glAreTexturesResidentEXT", (GLvoid *) NAME(glAreTexturesResidentEXT), _gloffset_AreTexturesResidentEXT },
+ { "glBindTextureEXT", (GLvoid *) NAME(glBindTextureEXT), _gloffset_BindTexture },
+ { "glDeleteTexturesEXT", (GLvoid *) NAME(glDeleteTexturesEXT), _gloffset_DeleteTextures },
+ { "glGenTexturesEXT", (GLvoid *) NAME(glGenTexturesEXT), _gloffset_GenTexturesEXT },
+ { "glIsTextureEXT", (GLvoid *) NAME(glIsTextureEXT), _gloffset_IsTextureEXT },
+ { "glPrioritizeTexturesEXT", (GLvoid *) NAME(glPrioritizeTexturesEXT), _gloffset_PrioritizeTextures },
#undef NAME
/* 21. GL_SGIS_detail_texture */
@@ -1190,8 +1188,8 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glDetailTexFuncSGIS", (GLvoid *) NAME(glDetailTexFuncSGIS) },
- { "glGetDetailTexFuncSGIS", (GLvoid *) NAME(glGetDetailTexFuncSGIS) },
+ { "glDetailTexFuncSGIS", (GLvoid *) NAME(glDetailTexFuncSGIS), _gloffset_DetailTexFuncSGIS },
+ { "glGetDetailTexFuncSGIS", (GLvoid *) NAME(glGetDetailTexFuncSGIS), _gloffset_GetDetailTexFuncSGIS },
#undef NAME
/* 22. GL_SGIS_sharpen_texture */
@@ -1200,8 +1198,8 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glGetSharpenTexFuncSGIS", (GLvoid *) NAME(glGetSharpenTexFuncSGIS) },
- { "glSharpenTexFuncSGIS", (GLvoid *) NAME(glSharpenTexFuncSGIS) },
+ { "glGetSharpenTexFuncSGIS", (GLvoid *) NAME(glGetSharpenTexFuncSGIS), _gloffset_GetSharpenTexFuncSGIS },
+ { "glSharpenTexFuncSGIS", (GLvoid *) NAME(glSharpenTexFuncSGIS), _gloffset_SharpenTexFuncSGIS },
#undef NAME
/* 25. GL_SGIS_multisample */
@@ -1210,8 +1208,8 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glSampleMaskSGIS", (GLvoid *) NAME(glSampleMaskSGIS) },
- { "glSamplePatternSGIS", (GLvoid *) NAME(glSamplePatternSGIS) },
+ { "glSampleMaskSGIS", (GLvoid *) NAME(glSampleMaskSGIS), _gloffset_SampleMaskSGIS },
+ { "glSamplePatternSGIS", (GLvoid *) NAME(glSamplePatternSGIS), _gloffset_SamplePatternSGIS },
#undef NAME
/* 30. GL_EXT_vertex_array */
@@ -1220,15 +1218,15 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glArrayElementEXT", (GLvoid *) NAME(glArrayElementEXT) },
- { "glColorPointerEXT", (GLvoid *) NAME(glColorPointerEXT) },
- { "glDrawArraysEXT", (GLvoid *) NAME(glDrawArraysEXT) },
- { "glEdgeFlagPointerEXT", (GLvoid *) NAME(glEdgeFlagPointerEXT) },
- { "glGetPointervEXT", (GLvoid *) NAME(glGetPointervEXT) },
- { "glIndexPointerEXT", (GLvoid *) NAME(glIndexPointerEXT) },
- { "glNormalPointerEXT", (GLvoid *) NAME(glNormalPointerEXT) },
- { "glTexCoordPointerEXT", (GLvoid *) NAME(glTexCoordPointerEXT) },
- { "glVertexPointerEXT", (GLvoid *) NAME(glVertexPointerEXT) },
+ { "glArrayElementEXT", (GLvoid *) NAME(glArrayElementEXT), _gloffset_ArrayElement },
+ { "glColorPointerEXT", (GLvoid *) NAME(glColorPointerEXT), _gloffset_ColorPointerEXT },
+ { "glDrawArraysEXT", (GLvoid *) NAME(glDrawArraysEXT), _gloffset_DrawArrays },
+ { "glEdgeFlagPointerEXT", (GLvoid *) NAME(glEdgeFlagPointerEXT), _gloffset_EdgeFlagPointerEXT },
+ { "glGetPointervEXT", (GLvoid *) NAME(glGetPointervEXT), _gloffset_GetPointerv },
+ { "glIndexPointerEXT", (GLvoid *) NAME(glIndexPointerEXT), _gloffset_IndexPointerEXT },
+ { "glNormalPointerEXT", (GLvoid *) NAME(glNormalPointerEXT), _gloffset_NormalPointerEXT },
+ { "glTexCoordPointerEXT", (GLvoid *) NAME(glTexCoordPointerEXT), _gloffset_TexCoordPointerEXT },
+ { "glVertexPointerEXT", (GLvoid *) NAME(glVertexPointerEXT), _gloffset_VertexPointerEXT },
#undef NAME
/* 37. GL_EXT_blend_minmax */
@@ -1237,7 +1235,7 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glBlendEquationEXT", (GLvoid *) NAME(glBlendEquationEXT) },
+ { "glBlendEquationEXT", (GLvoid *) NAME(glBlendEquationEXT), _gloffset_BlendEquation },
#undef NAME
/* 52. GL_SGIX_sprite */
@@ -1246,10 +1244,10 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glSpriteParameterfSGIX", (GLvoid *) NAME(glSpriteParameterfSGIX) },
- { "glSpriteParameterfvSGIX", (GLvoid *) NAME(glSpriteParameterfvSGIX) },
- { "glSpriteParameteriSGIX", (GLvoid *) NAME(glSpriteParameteriSGIX) },
- { "glSpriteParameterivSGIX", (GLvoid *) NAME(glSpriteParameterivSGIX) },
+ { "glSpriteParameterfSGIX", (GLvoid *) NAME(glSpriteParameterfSGIX), _gloffset_SpriteParameterfSGIX },
+ { "glSpriteParameterfvSGIX", (GLvoid *) NAME(glSpriteParameterfvSGIX), _gloffset_SpriteParameterfvSGIX },
+ { "glSpriteParameteriSGIX", (GLvoid *) NAME(glSpriteParameteriSGIX), _gloffset_SpriteParameteriSGIX },
+ { "glSpriteParameterivSGIX", (GLvoid *) NAME(glSpriteParameterivSGIX), _gloffset_SpriteParameterivSGIX },
#undef NAME
/* 54. GL_EXT_point_parameters */
@@ -1258,8 +1256,8 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glPointParameterfEXT", (GLvoid *) NAME(glPointParameterfEXT) },
- { "glPointParameterfvEXT", (GLvoid *) NAME(glPointParameterfvEXT) },
+ { "glPointParameterfEXT", (GLvoid *) NAME(glPointParameterfEXT), _gloffset_PointParameterfEXT },
+ { "glPointParameterfvEXT", (GLvoid *) NAME(glPointParameterfvEXT), _gloffset_PointParameterfvEXT },
#undef NAME
/* 55. GL_SGIX_instruments */
@@ -1268,12 +1266,12 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glInstrumentsBufferSGIX", (GLvoid *) NAME(glInstrumentsBufferSGIX) },
- { "glStartInstrumentsSGIX", (GLvoid *) NAME(glStartInstrumentsSGIX) },
- { "glStopInstrumentsSGIX", (GLvoid *) NAME(glStopInstrumentsSGIX) },
- { "glReadInstrumentsSGIX", (GLvoid *) NAME(glReadInstrumentsSGIX) },
- { "glPollInstrumentsSGIX", (GLvoid *) NAME(glPollInstrumentsSGIX) },
- { "glGetInstrumentsSGIX", (GLvoid *) NAME(glGetInstrumentsSGIX) },
+ { "glInstrumentsBufferSGIX", (GLvoid *) NAME(glInstrumentsBufferSGIX), _gloffset_InstrumentsBufferSGIX },
+ { "glStartInstrumentsSGIX", (GLvoid *) NAME(glStartInstrumentsSGIX), _gloffset_StartInstrumentsSGIX },
+ { "glStopInstrumentsSGIX", (GLvoid *) NAME(glStopInstrumentsSGIX), _gloffset_StopInstrumentsSGIX },
+ { "glReadInstrumentsSGIX", (GLvoid *) NAME(glReadInstrumentsSGIX), _gloffset_ReadInstrumentsSGIX },
+ { "glPollInstrumentsSGIX", (GLvoid *) NAME(glPollInstrumentsSGIX), _gloffset_PollInstrumentsSGIX },
+ { "glGetInstrumentsSGIX", (GLvoid *) NAME(glGetInstrumentsSGIX), _gloffset_GetInstrumentsSGIX },
#undef NAME
/* 57. GL_SGIX_framezoom */
@@ -1282,7 +1280,16 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glFrameZoomSGIX", (GLvoid *) NAME(glFrameZoomSGIX) },
+ { "glFrameZoomSGIX", (GLvoid *) NAME(glFrameZoomSGIX), _gloffset_FrameZoomSGIX },
+#undef NAME
+
+ /* 58. GL_SGIX_tag_sample_buffer */
+#ifdef GL_SGIX_tag_sample_buffer
+#define NAME(X) X
+#else
+#define NAME(X) NotImplemented
+#endif
+ { "glTagSampleBufferSGIX", (GLvoid *) NAME(glTagSampleBufferSGIX), _gloffset_TagSampleBufferSGIX },
#undef NAME
/* 60. GL_SGIX_reference_plane */
@@ -1291,7 +1298,7 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glReferencePlaneSGIX", (GLvoid *) NAME(glReferencePlaneSGIX) },
+ { "glReferencePlaneSGIX", (GLvoid *) NAME(glReferencePlaneSGIX), _gloffset_ReferencePlaneSGIX },
#undef NAME
/* 61. GL_SGIX_flush_raster */
@@ -1300,22 +1307,24 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glFlushRasterSGIX", (GLvoid *) NAME(glFlushRasterSGIX) },
+ { "glFlushRasterSGIX", (GLvoid *) NAME(glFlushRasterSGIX), _gloffset_FlushRasterSGIX },
#undef NAME
/* 66. GL_HP_image_transform */
+#if 0
#ifdef GL_HP_image_transform
#define NAME(X) X
#else
#define NAME(X) NotImplemented
#endif
- { "glGetImageTransformParameterfvHP", (GLvoid *) NAME(glGetImageTransformParameterfvHP) },
- { "glGetImageTransformParameterivHP", (GLvoid *) NAME(glGetImageTransformParameterivHP) },
- { "glImageTransformParameterfHP", (GLvoid *) NAME(glImageTransformParameterfHP) },
- { "glImageTransformParameterfvHP", (GLvoid *) NAME(glImageTransformParameterfvHP) },
- { "glImageTransformParameteriHP", (GLvoid *) NAME(glImageTransformParameteriHP) },
- { "glImageTransformParameterivHP", (GLvoid *) NAME(glImageTransformParameterivHP) },
+ { "glGetImageTransformParameterfvHP", (GLvoid *) NAME(glGetImageTransformParameterfvHP), _gloffset_GetImageTransformParameterfvHP },
+ { "glGetImageTransformParameterivHP", (GLvoid *) NAME(glGetImageTransformParameterivHP), _gloffset_GetImageTransformParameterivHP },
+ { "glImageTransformParameterfHP", (GLvoid *) NAME(glImageTransformParameterfHP), _gloffset_ImageTransformParameterfHP },
+ { "glImageTransformParameterfvHP", (GLvoid *) NAME(glImageTransformParameterfvHP), _gloffset_ImageTransformParameterfvHP },
+ { "glImageTransformParameteriHP", (GLvoid *) NAME(glImageTransformParameteriHP), _gloffset_ImageTransformParameteriHP },
+ { "glImageTransformParameterivHP", (GLvoid *) NAME(glImageTransformParameterivHP), _gloffset_ImageTransformParameterivHP },
#undef NAME
+#endif
/* 74. GL_EXT_color_subtable */
#ifdef GL_EXT_color_subtable
@@ -1323,8 +1332,8 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glColorSubTableEXT", (GLvoid *) NAME(glColorSubTableEXT) },
- { "glCopyColorSubTableEXT", (GLvoid *) NAME(glCopyColorSubTableEXT) },
+ { "glColorSubTableEXT", (GLvoid *) NAME(glColorSubTableEXT), _gloffset_ColorSubTable },
+ { "glCopyColorSubTableEXT", (GLvoid *) NAME(glCopyColorSubTableEXT), _gloffset_CopyColorSubTable },
#undef NAME
/* 77. GL_PGI_misc_hints */
@@ -1333,7 +1342,7 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glHintPGI", (GLvoid *) NAME(glHintPGI) },
+ { "glHintPGI", (GLvoid *) NAME(glHintPGI), _gloffset_HintPGI },
#undef NAME
/* 78. GL_EXT_paletted_texture */
@@ -1342,10 +1351,10 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glColorTableEXT", (GLvoid *) NAME(glColorTableEXT) },
- { "glGetColorTableEXT", (GLvoid *) NAME(glGetColorTableEXT) },
- { "glGetColorTableParameterfvEXT", (GLvoid *) NAME(glGetColorTableParameterfvEXT) },
- { "glGetColorTableParameterivEXT", (GLvoid *) NAME(glGetColorTableParameterivEXT) },
+ { "glColorTableEXT", (GLvoid *) NAME(glColorTableEXT), _gloffset_ColorTable },
+ { "glGetColorTableEXT", (GLvoid *) NAME(glGetColorTableEXT), _gloffset_GetColorTable },
+ { "glGetColorTableParameterfvEXT", (GLvoid *) NAME(glGetColorTableParameterfvEXT), _gloffset_GetColorTableParameterfv },
+ { "glGetColorTableParameterivEXT", (GLvoid *) NAME(glGetColorTableParameterivEXT), _gloffset_GetColorTableParameteriv },
#undef NAME
/* 80. GL_SGIX_list_priority */
@@ -1354,12 +1363,12 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glGetListParameterfvSGIX", (GLvoid *) NAME(glGetListParameterfvSGIX) },
- { "glGetListParameterivSGIX", (GLvoid *) NAME(glGetListParameterivSGIX) },
- { "glListParameterfSGIX", (GLvoid *) NAME(glListParameterfSGIX) },
- { "glListParameterfvSGIX", (GLvoid *) NAME(glListParameterfvSGIX) },
- { "glListParameteriSGIX", (GLvoid *) NAME(glListParameteriSGIX) },
- { "glListParameterivSGIX", (GLvoid *) NAME(glListParameterivSGIX) },
+ { "glGetListParameterfvSGIX", (GLvoid *) NAME(glGetListParameterfvSGIX), _gloffset_GetListParameterfvSGIX },
+ { "glGetListParameterivSGIX", (GLvoid *) NAME(glGetListParameterivSGIX), _gloffset_GetListParameterivSGIX },
+ { "glListParameterfSGIX", (GLvoid *) NAME(glListParameterfSGIX), _gloffset_ListParameterfSGIX },
+ { "glListParameterfvSGIX", (GLvoid *) NAME(glListParameterfvSGIX), _gloffset_ListParameterfvSGIX },
+ { "glListParameteriSGIX", (GLvoid *) NAME(glListParameteriSGIX), _gloffset_ListParameteriSGIX },
+ { "glListParameterivSGIX", (GLvoid *) NAME(glListParameterivSGIX), _gloffset_ListParameterivSGIX },
#undef NAME
/* 94. GL_EXT_index_material */
@@ -1368,7 +1377,7 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glIndexMaterialEXT", (GLvoid *) NAME(glIndexMaterialEXT) },
+ { "glIndexMaterialEXT", (GLvoid *) NAME(glIndexMaterialEXT), _gloffset_IndexMaterialEXT },
#undef NAME
/* 95. GL_EXT_index_func */
@@ -1377,7 +1386,7 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glIndexFuncEXT", (GLvoid *) NAME(glIndexFuncEXT) },
+ { "glIndexFuncEXT", (GLvoid *) NAME(glIndexFuncEXT), _gloffset_IndexFuncEXT },
#undef NAME
/* 97. GL_EXT_compiled_vertex_array */
@@ -1386,8 +1395,8 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glLockArraysEXT", (GLvoid *) NAME(glLockArraysEXT) },
- { "glUnlockArraysEXT", (GLvoid *) NAME(glUnlockArraysEXT) },
+ { "glLockArraysEXT", (GLvoid *) NAME(glLockArraysEXT), _gloffset_LockArraysEXT },
+ { "glUnlockArraysEXT", (GLvoid *) NAME(glUnlockArraysEXT), _gloffset_UnlockArraysEXT },
#undef NAME
/* 98. GL_EXT_cull_vertex */
@@ -1396,52 +1405,119 @@ static struct name_address_pair static_functions[] = {
#else
#define NAME(X) NotImplemented
#endif
- { "glCullParameterfvEXT", (GLvoid *) NAME(glCullParameterfvEXT) },
- { "glCullParameterdvEXT", (GLvoid *) NAME(glCullParameterdvEXT) },
+ { "glCullParameterfvEXT", (GLvoid *) NAME(glCullParameterfvEXT), _gloffset_CullParameterfvEXT },
+ { "glCullParameterdvEXT", (GLvoid *) NAME(glCullParameterdvEXT), _gloffset_CullParameterdvEXT },
+#undef NAME
+
+ /* 102. GL_SGIX_fragment_lighting */
+#ifdef GL_SGIX_fragment_lighting
+#define NAME(X) X
+#else
+#define NAME(X) NotImplemented
+#endif
+ { "glFragmentColorMaterialSGIX", (GLvoid *) NAME(glFragmentColorMaterialSGIX), _gloffset_FragmentColorMaterialSGIX },
+ { "glFragmentLightfSGIX", (GLvoid *) NAME(glFragmentLightfSGIX), _gloffset_FragmentLightfSGIX },
+ { "glFragmentLightfvSGIX", (GLvoid *) NAME(glFragmentLightfvSGIX), _gloffset_FragmentLightfvSGIX },
+ { "glFragmentLightiSGIX", (GLvoid *) NAME(glFragmentLightiSGIX), _gloffset_FragmentLightiSGIX },
+ { "glFragmentLightivSGIX", (GLvoid *) NAME(glFragmentLightivSGIX), _gloffset_FragmentLightivSGIX },
+ { "glFragmentLightModelfSGIX", (GLvoid *) NAME(glFragmentLightModelfSGIX), _gloffset_FragmentLightModelfSGIX },
+ { "glFragmentLightModelfvSGIX", (GLvoid *) NAME(glFragmentLightModelfvSGIX), _gloffset_FragmentLightModelfvSGIX },
+ { "glFragmentLightModeliSGIX", (GLvoid *) NAME(glFragmentLightModeliSGIX), _gloffset_FragmentLightModeliSGIX },
+ { "glFragmentLightModelivSGIX", (GLvoid *) NAME(glFragmentLightModelivSGIX), _gloffset_FragmentLightModelivSGIX },
+ { "glFragmentMaterialfSGIX", (GLvoid *) NAME(glFragmentMaterialfSGIX), _gloffset_FragmentMaterialfSGIX },
+ { "glFragmentMaterialfvSGIX", (GLvoid *) NAME(glFragmentMaterialfvSGIX), _gloffset_FragmentMaterialfvSGIX },
+ { "glFragmentMaterialiSGIX", (GLvoid *) NAME(glFragmentMaterialiSGIX), _gloffset_FragmentMaterialiSGIX },
+ { "glFragmentMaterialivSGIX", (GLvoid *) NAME(glFragmentMaterialivSGIX), _gloffset_FragmentMaterialivSGIX },
+ { "glGetFragmentLightfvSGIX", (GLvoid *) NAME(glGetFragmentLightfvSGIX), _gloffset_GetFragmentLightfvSGIX },
+ { "glGetFragmentLightivSGIX", (GLvoid *) NAME(glGetFragmentLightivSGIX), _gloffset_GetFragmentLightivSGIX },
+ { "glGetFragmentMaterialfvSGIX", (GLvoid *) NAME(glGetFragmentMaterialfvSGIX), _gloffset_GetFragmentMaterialfvSGIX },
+ { "glGetFragmentMaterialivSGIX", (GLvoid *) NAME(glGetFragmentMaterialivSGIX), _gloffset_GetFragmentMaterialivSGIX },
+ { "glLightEnviSGIX", (GLvoid *) NAME(glLightEnviSGIX), _gloffset_LightEnviSGIX },
+#undef NAME
+
+ /* 149. GL_EXT_fog_coord */
+#ifdef GL_EXT_fog_coord
+#define NAME(X) X
+#else
+#define NAME(X) NotImplemented
+#endif
+ { "glFogCoordfEXT", (GLvoid *) NAME(glFogCoordfEXT), _gloffset_FogCoordfEXT },
+ { "glFogCoordfvEXT", (GLvoid *) NAME(glFogCoordfvEXT), _gloffset_FogCoordfvEXT },
+ { "glFogCoorddEXT", (GLvoid *) NAME(glFogCoorddEXT), _gloffset_FogCoorddEXT },
+ { "glFogCoorddEXT", (GLvoid *) NAME(glFogCoorddEXT), _gloffset_FogCoorddEXT },
+ { "glFogCoordPointerEXT", (GLvoid *) NAME(glFogCoordPointerEXT), _gloffset_FogCoordPointerEXT },
#undef NAME
/* 173. GL_EXT/INGR_blend_func_separate */
-#ifdef GL_INGR_blend_func_separate
+#ifdef GL_EXT_blend_func_separate
#define NAME(X) X
#else
#define NAME(X) NotImplemented
#endif
- { "glBlendFuncSeparateINGR", (GLvoid *) NAME(glBlendFuncSeparateINGR) },
+ { "glBlendFuncSeparateEXT", (GLvoid *) NAME(glBlendFuncSeparateEXT), _gloffset_BlendFuncSeparateEXT },
+ { "glBlendFuncSeparateINGR", (GLvoid *) NAME(glBlendFuncSeparateEXT), _gloffset_BlendFuncSeparateEXT },
#undef NAME
- /* GL_MESA_window_pos */
-#ifdef MESA_window_pos
+ /* 188. GL_EXT_vertex_weighting */
+#ifdef GL_EXT_vertex_weighting
#define NAME(X) X
#else
#define NAME(X) NotImplemented
#endif
- { "glWindowPos4fMESA", (GLvoid *) NAME(glWindowPos4fMESA) },
+ { "glVertexWeightfEXT", (GLvoid *) NAME(glVertexWeightfEXT), _gloffset_VertexWeightfEXT },
+ { "glVertexWeightfvEXT", (GLvoid *) NAME(glVertexWeightfvEXT), _gloffset_VertexWeightfvEXT },
+ { "glVertexWeightPointerEXT", (GLvoid *) NAME(glVertexWeightPointerEXT), _gloffset_VertexWeightPointerEXT },
#undef NAME
- /* GL_MESA_resize_buffers */
+ /* 190. GL_NV_vertex_array_range */
+#ifdef GL_NV_vertex_array_range
+#define NAME(X) X
+#else
+#define NAME(X) NotImplemented
+#endif
+ { "glFlushVertexArrayRangeNV", (GLvoid *) NAME(glFlushVertexArrayRangeNV), _gloffset_FlushVertexArrayRangeNV },
+ { "glVertexArrayRangeNV", (GLvoid *) NAME(glVertexArrayRangeNV), _gloffset_VertexArrayRangeNV },
+#undef NAME
+
+ /* 191. GL_NV_register_combiners */
+#ifdef GL_NV_register_combiners
+#define NAME(X) X
+#else
+#define NAME(X) NotImplemented
+#endif
+ { "glCombinerParameterfvNV", (GLvoid *) NAME(glCombinerParameterfvNV), _gloffset_CombinerParameterfvNV },
+ { "glCombinerParameterfNV", (GLvoid *) NAME(glCombinerParameterfNV), _gloffset_CombinerParameterfNV },
+ { "glCombinerParameterivNV", (GLvoid *) NAME(glCombinerParameterivNV), _gloffset_CombinerParameterivNV },
+ { "glCombinerParameteriNV", (GLvoid *) NAME(glCombinerParameteriNV), _gloffset_CombinerParameteriNV },
+ { "glCombinerInputNV", (GLvoid *) NAME(glCombinerInputNV), _gloffset_CombinerInputNV },
+ { "glCombinerOutputNV", (GLvoid *) NAME(glCombinerOutputNV), _gloffset_CombinerOutputNV },
+ { "glFinalCombinerInputNV", (GLvoid *) NAME(glFinalCombinerInputNV), _gloffset_FinalCombinerInputNV },
+ { "glGetCombinerInputParameterfvNV", (GLvoid *) NAME(glGetCombinerInputParameterfvNV), _gloffset_GetCombinerInputParameterfvNV },
+ { "glGetCombinerInputParameterivNV", (GLvoid *) NAME(glGetCombinerInputParameterivNV), _gloffset_GetCombinerInputParameterivNV },
+ { "glGetCombinerOutputParameterfvNV", (GLvoid *) NAME(glGetCombinerOutputParameterfvNV), _gloffset_GetCombinerOutputParameterfvNV },
+ { "glGetCombinerOutputParameterivNV", (GLvoid *) NAME(glGetCombinerOutputParameterivNV), _gloffset_GetCombinerOutputParameterivNV },
+ { "glGetFinalCombinerInputParameterfvNV", (GLvoid *) NAME(glGetFinalCombinerInputParameterfvNV), _gloffset_GetFinalCombinerInputParameterfvNV },
+ { "glGetFinalCombinerInputParameterivNV", (GLvoid *) NAME(glGetFinalCombinerInputParameterivNV), _gloffset_GetFinalCombinerInputParameterivNV },
+#undef NAME
+
+ /* 196. GL_MESA_resize_buffers */
#ifdef MESA_resize_buffers
#define NAME(X) X
#else
#define NAME(X) NotImplemented
#endif
- { "glResizeBuffersMESA", (GLvoid *) NAME(glResizeBuffersMESA) },
+ { "glResizeBuffersMESA", (GLvoid *) NAME(glResizeBuffersMESA), _gloffset_ResizeBuffersMESA },
#undef NAME
- /* GL_ARB_transpose_matrix */
-#ifdef GL_ARB_transpose_matrix
+ /* 197. GL_MESA_window_pos */
+#ifdef MESA_window_pos
#define NAME(X) X
#else
#define NAME(X) NotImplemented
#endif
- { "glLoadTransposeMatrixdARB", (GLvoid *) NAME(glLoadTransposeMatrixdARB) },
- { "glLoadTransposeMatrixfARB", (GLvoid *) NAME(glLoadTransposeMatrixfARB) },
- { "glMultTransposeMatrixdARB", (GLvoid *) NAME(glMultTransposeMatrixdARB) },
- { "glMultTransposeMatrixfARB", (GLvoid *) NAME(glMultTransposeMatrixfARB) },
+ { "glWindowPos4fMESA", (GLvoid *) NAME(glWindowPos4fMESA), _gloffset_WindowPos4fMESA },
#undef NAME
- /*
- * XXX many more extenstion functions to add.
- */
{ NULL, NULL } /* end of list marker */
};
diff --git a/xc/extras/Mesa/src/glapinoop.c b/xc/extras/Mesa/src/glapinoop.c
index c22c1c933..a522e193e 100644
--- a/xc/extras/Mesa/src/glapinoop.c
+++ b/xc/extras/Mesa/src/glapinoop.c
@@ -80,648 +80,780 @@ warn(void)
-static void Dummy(void)
+static int
+NoOpGeneric(void)
{
+ if (warn()) {
+ fprintf(stderr, "GL User Error: calling extension function without a current context\n");
+ }
+ return 0;
}
-struct _glapi_table __glapi_noop_table = {
- Dummy,
- NoOpAccum,
- NoOpAlphaFunc,
- NoOpBegin,
- NoOpBitmap,
- NoOpBlendFunc,
- NoOpCallList,
- NoOpCallLists,
- NoOpClear,
- NoOpClearAccum,
- NoOpClearColor,
- NoOpClearDepth,
- NoOpClearIndex,
- NoOpClearStencil,
- NoOpClipPlane,
- NoOpColor3b,
- NoOpColor3bv,
- NoOpColor3d,
- NoOpColor3dv,
- NoOpColor3f,
- NoOpColor3fv,
- NoOpColor3i,
- NoOpColor3iv,
- NoOpColor3s,
- NoOpColor3sv,
- NoOpColor3ub,
- NoOpColor3ubv,
- NoOpColor3ui,
- NoOpColor3uiv,
- NoOpColor3us,
- NoOpColor3usv,
- NoOpColor4b,
- NoOpColor4bv,
- NoOpColor4d,
- NoOpColor4dv,
- NoOpColor4f,
- NoOpColor4fv,
- NoOpColor4i,
- NoOpColor4iv,
- NoOpColor4s,
- NoOpColor4sv,
- NoOpColor4ub,
- NoOpColor4ubv,
- NoOpColor4ui,
- NoOpColor4uiv,
- NoOpColor4us,
- NoOpColor4usv,
- NoOpColorMask,
- NoOpColorMaterial,
- NoOpCopyPixels,
- NoOpCullFace,
- NoOpDeleteLists,
- NoOpDepthFunc,
- NoOpDepthMask,
- NoOpDepthRange,
- NoOpDisable,
- NoOpDrawBuffer,
- NoOpDrawPixels,
- NoOpEdgeFlag,
- NoOpEdgeFlagv,
- NoOpEnable,
- NoOpEnd,
- NoOpEndList,
- NoOpEvalCoord1d,
- NoOpEvalCoord1dv,
- NoOpEvalCoord1f,
- NoOpEvalCoord1fv,
- NoOpEvalCoord2d,
- NoOpEvalCoord2dv,
- NoOpEvalCoord2f,
- NoOpEvalCoord2fv,
- NoOpEvalMesh1,
- NoOpEvalMesh2,
- NoOpEvalPoint1,
- NoOpEvalPoint2,
- NoOpFeedbackBuffer,
- NoOpFinish,
- NoOpFlush,
- NoOpFogf,
- NoOpFogfv,
- NoOpFogi,
- NoOpFogiv,
- NoOpFrontFace,
- NoOpFrustum,
- NoOpGenLists,
- NoOpGetBooleanv,
- NoOpGetClipPlane,
- NoOpGetDoublev,
- NoOpGetError,
- NoOpGetFloatv,
- NoOpGetIntegerv,
- NoOpGetLightfv,
- NoOpGetLightiv,
- NoOpGetMapdv,
- NoOpGetMapfv,
- NoOpGetMapiv,
- NoOpGetMaterialfv,
- NoOpGetMaterialiv,
- NoOpGetPixelMapfv,
- NoOpGetPixelMapuiv,
- NoOpGetPixelMapusv,
- NoOpGetPolygonStipple,
- NoOpGetString,
- NoOpGetTexEnvfv,
- NoOpGetTexEnviv,
- NoOpGetTexGendv,
- NoOpGetTexGenfv,
- NoOpGetTexGeniv,
- NoOpGetTexImage,
- NoOpGetTexLevelParameterfv,
- NoOpGetTexLevelParameteriv,
- NoOpGetTexParameterfv,
- NoOpGetTexParameteriv,
- NoOpHint,
- NoOpIndexMask,
- NoOpIndexd,
- NoOpIndexdv,
- NoOpIndexf,
- NoOpIndexfv,
- NoOpIndexi,
- NoOpIndexiv,
- NoOpIndexs,
- NoOpIndexsv,
- NoOpInitNames,
- NoOpIsEnabled,
- NoOpIsList,
- NoOpLightModelf,
- NoOpLightModelfv,
- NoOpLightModeli,
- NoOpLightModeliv,
- NoOpLightf,
- NoOpLightfv,
- NoOpLighti,
- NoOpLightiv,
- NoOpLineStipple,
- NoOpLineWidth,
- NoOpListBase,
- NoOpLoadIdentity,
- NoOpLoadMatrixd,
- NoOpLoadMatrixf,
- NoOpLoadName,
- NoOpLogicOp,
- NoOpMap1d,
- NoOpMap1f,
- NoOpMap2d,
- NoOpMap2f,
- NoOpMapGrid1d,
- NoOpMapGrid1f,
- NoOpMapGrid2d,
- NoOpMapGrid2f,
- NoOpMaterialf,
- NoOpMaterialfv,
- NoOpMateriali,
- NoOpMaterialiv,
- NoOpMatrixMode,
- NoOpMultMatrixd,
- NoOpMultMatrixf,
- NoOpNewList,
- NoOpNormal3b,
- NoOpNormal3bv,
- NoOpNormal3d,
- NoOpNormal3dv,
- NoOpNormal3f,
- NoOpNormal3fv,
- NoOpNormal3i,
- NoOpNormal3iv,
- NoOpNormal3s,
- NoOpNormal3sv,
- NoOpOrtho,
- NoOpPassThrough,
- NoOpPixelMapfv,
- NoOpPixelMapuiv,
- NoOpPixelMapusv,
- NoOpPixelStoref,
- NoOpPixelStorei,
- NoOpPixelTransferf,
- NoOpPixelTransferi,
- NoOpPixelZoom,
- NoOpPointSize,
- NoOpPolygonMode,
- NoOpPolygonOffset,
- NoOpPolygonStipple,
- NoOpPopAttrib,
- NoOpPopMatrix,
- NoOpPopName,
- NoOpPushAttrib,
- NoOpPushMatrix,
- NoOpPushName,
- NoOpRasterPos2d,
- NoOpRasterPos2dv,
- NoOpRasterPos2f,
- NoOpRasterPos2fv,
- NoOpRasterPos2i,
- NoOpRasterPos2iv,
- NoOpRasterPos2s,
- NoOpRasterPos2sv,
- NoOpRasterPos3d,
- NoOpRasterPos3dv,
- NoOpRasterPos3f,
- NoOpRasterPos3fv,
- NoOpRasterPos3i,
- NoOpRasterPos3iv,
- NoOpRasterPos3s,
- NoOpRasterPos3sv,
- NoOpRasterPos4d,
- NoOpRasterPos4dv,
- NoOpRasterPos4f,
- NoOpRasterPos4fv,
- NoOpRasterPos4i,
- NoOpRasterPos4iv,
- NoOpRasterPos4s,
- NoOpRasterPos4sv,
- NoOpReadBuffer,
- NoOpReadPixels,
- NoOpRectd,
- NoOpRectdv,
- NoOpRectf,
- NoOpRectfv,
- NoOpRecti,
- NoOpRectiv,
- NoOpRects,
- NoOpRectsv,
- NoOpRenderMode,
- NoOpRotated,
- NoOpRotatef,
- NoOpScaled,
- NoOpScalef,
- NoOpScissor,
- NoOpSelectBuffer,
- NoOpShadeModel,
- NoOpStencilFunc,
- NoOpStencilMask,
- NoOpStencilOp,
- NoOpTexCoord1d,
- NoOpTexCoord1dv,
- NoOpTexCoord1f,
- NoOpTexCoord1fv,
- NoOpTexCoord1i,
- NoOpTexCoord1iv,
- NoOpTexCoord1s,
- NoOpTexCoord1sv,
- NoOpTexCoord2d,
- NoOpTexCoord2dv,
- NoOpTexCoord2f,
- NoOpTexCoord2fv,
- NoOpTexCoord2i,
- NoOpTexCoord2iv,
- NoOpTexCoord2s,
- NoOpTexCoord2sv,
- NoOpTexCoord3d,
- NoOpTexCoord3dv,
- NoOpTexCoord3f,
- NoOpTexCoord3fv,
- NoOpTexCoord3i,
- NoOpTexCoord3iv,
- NoOpTexCoord3s,
- NoOpTexCoord3sv,
- NoOpTexCoord4d,
- NoOpTexCoord4dv,
- NoOpTexCoord4f,
- NoOpTexCoord4fv,
- NoOpTexCoord4i,
- NoOpTexCoord4iv,
- NoOpTexCoord4s,
- NoOpTexCoord4sv,
- NoOpTexEnvf,
- NoOpTexEnvfv,
- NoOpTexEnvi,
- NoOpTexEnviv,
- NoOpTexGend,
- NoOpTexGendv,
- NoOpTexGenf,
- NoOpTexGenfv,
- NoOpTexGeni,
- NoOpTexGeniv,
- NoOpTexImage1D,
- NoOpTexImage2D,
- NoOpTexParameterf,
- NoOpTexParameterfv,
- NoOpTexParameteri,
- NoOpTexParameteriv,
- NoOpTranslated,
- NoOpTranslatef,
- NoOpVertex2d,
- NoOpVertex2dv,
- NoOpVertex2f,
- NoOpVertex2fv,
- NoOpVertex2i,
- NoOpVertex2iv,
- NoOpVertex2s,
- NoOpVertex2sv,
- NoOpVertex3d,
- NoOpVertex3dv,
- NoOpVertex3f,
- NoOpVertex3fv,
- NoOpVertex3i,
- NoOpVertex3iv,
- NoOpVertex3s,
- NoOpVertex3sv,
- NoOpVertex4d,
- NoOpVertex4dv,
- NoOpVertex4f,
- NoOpVertex4fv,
- NoOpVertex4i,
- NoOpVertex4iv,
- NoOpVertex4s,
- NoOpVertex4sv,
- NoOpViewport,
-
- /* GL 1.1 */
- NoOpAreTexturesResident,
- NoOpArrayElement,
- NoOpBindTexture,
- NoOpColorPointer,
- NoOpCopyTexImage1D,
- NoOpCopyTexImage2D,
- NoOpCopyTexSubImage1D,
- NoOpCopyTexSubImage2D,
- NoOpDeleteTextures,
- NoOpDisableClientState,
- NoOpDrawArrays,
- NoOpDrawElements,
- NoOpEdgeFlagPointer,
- NoOpEnableClientState,
- NoOpGenTextures,
- NoOpGetPointerv,
- NoOpIndexPointer,
- NoOpIndexub,
- NoOpIndexubv,
- NoOpInterleavedArrays,
- NoOpIsTexture,
- NoOpNormalPointer,
- NoOpPopClientAttrib,
- NoOpPrioritizeTextures,
- NoOpPushClientAttrib,
- NoOpTexCoordPointer,
- NoOpTexSubImage1D,
- NoOpTexSubImage2D,
- NoOpVertexPointer,
-
- /* GL 1.2 */
- NoOpCopyTexSubImage3D,
- NoOpDrawRangeElements,
- NoOpTexImage3D,
- NoOpTexSubImage3D,
-
- /* GL_ARB_imaging */
- NoOpBlendColor,
- NoOpBlendEquation,
- NoOpColorSubTable,
- NoOpColorTable,
- NoOpColorTableParameterfv,
- NoOpColorTableParameteriv,
- NoOpConvolutionFilter1D,
- NoOpConvolutionFilter2D,
- NoOpConvolutionParameterf,
- NoOpConvolutionParameterfv,
- NoOpConvolutionParameteri,
- NoOpConvolutionParameteriv,
- NoOpCopyColorSubTable,
- NoOpCopyColorTable,
- NoOpCopyConvolutionFilter1D,
- NoOpCopyConvolutionFilter2D,
- NoOpGetColorTable,
- NoOpGetColorTableParameterfv,
- NoOpGetColorTableParameteriv,
- NoOpGetConvolutionFilter,
- NoOpGetConvolutionParameterfv,
- NoOpGetConvolutionParameteriv,
- NoOpGetHistogram,
- NoOpGetHistogramParameterfv,
- NoOpGetHistogramParameteriv,
- NoOpGetMinmax,
- NoOpGetMinmaxParameterfv,
- NoOpGetMinmaxParameteriv,
- NoOpGetSeparableFilter,
- NoOpHistogram,
- NoOpMinmax,
- NoOpResetHistogram,
- NoOpResetMinmax,
- NoOpSeparableFilter2D,
-
+void *__glapi_noop_table[] = {
+ (void *) NoOpNewList,
+ (void *) NoOpEndList,
+ (void *) NoOpCallList,
+ (void *) NoOpCallLists,
+ (void *) NoOpDeleteLists,
+ (void *) NoOpGenLists,
+ (void *) NoOpListBase,
+ (void *) NoOpBegin,
+ (void *) NoOpBitmap,
+ (void *) NoOpColor3b,
+ (void *) NoOpColor3bv,
+ (void *) NoOpColor3d,
+ (void *) NoOpColor3dv,
+ (void *) NoOpColor3f,
+ (void *) NoOpColor3fv,
+ (void *) NoOpColor3i,
+ (void *) NoOpColor3iv,
+ (void *) NoOpColor3s,
+ (void *) NoOpColor3sv,
+ (void *) NoOpColor3ub,
+ (void *) NoOpColor3ubv,
+ (void *) NoOpColor3ui,
+ (void *) NoOpColor3uiv,
+ (void *) NoOpColor3us,
+ (void *) NoOpColor3usv,
+ (void *) NoOpColor4b,
+ (void *) NoOpColor4bv,
+ (void *) NoOpColor4d,
+ (void *) NoOpColor4dv,
+ (void *) NoOpColor4f,
+ (void *) NoOpColor4fv,
+ (void *) NoOpColor4i,
+ (void *) NoOpColor4iv,
+ (void *) NoOpColor4s,
+ (void *) NoOpColor4sv,
+ (void *) NoOpColor4ub,
+ (void *) NoOpColor4ubv,
+ (void *) NoOpColor4ui,
+ (void *) NoOpColor4uiv,
+ (void *) NoOpColor4us,
+ (void *) NoOpColor4usv,
+ (void *) NoOpEdgeFlag,
+ (void *) NoOpEdgeFlagv,
+ (void *) NoOpEnd,
+ (void *) NoOpIndexd,
+ (void *) NoOpIndexdv,
+ (void *) NoOpIndexf,
+ (void *) NoOpIndexfv,
+ (void *) NoOpIndexi,
+ (void *) NoOpIndexiv,
+ (void *) NoOpIndexs,
+ (void *) NoOpIndexsv,
+ (void *) NoOpNormal3b,
+ (void *) NoOpNormal3bv,
+ (void *) NoOpNormal3d,
+ (void *) NoOpNormal3dv,
+ (void *) NoOpNormal3f,
+ (void *) NoOpNormal3fv,
+ (void *) NoOpNormal3i,
+ (void *) NoOpNormal3iv,
+ (void *) NoOpNormal3s,
+ (void *) NoOpNormal3sv,
+ (void *) NoOpRasterPos2d,
+ (void *) NoOpRasterPos2dv,
+ (void *) NoOpRasterPos2f,
+ (void *) NoOpRasterPos2fv,
+ (void *) NoOpRasterPos2i,
+ (void *) NoOpRasterPos2iv,
+ (void *) NoOpRasterPos2s,
+ (void *) NoOpRasterPos2sv,
+ (void *) NoOpRasterPos3d,
+ (void *) NoOpRasterPos3dv,
+ (void *) NoOpRasterPos3f,
+ (void *) NoOpRasterPos3fv,
+ (void *) NoOpRasterPos3i,
+ (void *) NoOpRasterPos3iv,
+ (void *) NoOpRasterPos3s,
+ (void *) NoOpRasterPos3sv,
+ (void *) NoOpRasterPos4d,
+ (void *) NoOpRasterPos4dv,
+ (void *) NoOpRasterPos4f,
+ (void *) NoOpRasterPos4fv,
+ (void *) NoOpRasterPos4i,
+ (void *) NoOpRasterPos4iv,
+ (void *) NoOpRasterPos4s,
+ (void *) NoOpRasterPos4sv,
+ (void *) NoOpRectd,
+ (void *) NoOpRectdv,
+ (void *) NoOpRectf,
+ (void *) NoOpRectfv,
+ (void *) NoOpRecti,
+ (void *) NoOpRectiv,
+ (void *) NoOpRects,
+ (void *) NoOpRectsv,
+ (void *) NoOpTexCoord1d,
+ (void *) NoOpTexCoord1dv,
+ (void *) NoOpTexCoord1f,
+ (void *) NoOpTexCoord1fv,
+ (void *) NoOpTexCoord1i,
+ (void *) NoOpTexCoord1iv,
+ (void *) NoOpTexCoord1s,
+ (void *) NoOpTexCoord1sv,
+ (void *) NoOpTexCoord2d,
+ (void *) NoOpTexCoord2dv,
+ (void *) NoOpTexCoord2f,
+ (void *) NoOpTexCoord2fv,
+ (void *) NoOpTexCoord2i,
+ (void *) NoOpTexCoord2iv,
+ (void *) NoOpTexCoord2s,
+ (void *) NoOpTexCoord2sv,
+ (void *) NoOpTexCoord3d,
+ (void *) NoOpTexCoord3dv,
+ (void *) NoOpTexCoord3f,
+ (void *) NoOpTexCoord3fv,
+ (void *) NoOpTexCoord3i,
+ (void *) NoOpTexCoord3iv,
+ (void *) NoOpTexCoord3s,
+ (void *) NoOpTexCoord3sv,
+ (void *) NoOpTexCoord4d,
+ (void *) NoOpTexCoord4dv,
+ (void *) NoOpTexCoord4f,
+ (void *) NoOpTexCoord4fv,
+ (void *) NoOpTexCoord4i,
+ (void *) NoOpTexCoord4iv,
+ (void *) NoOpTexCoord4s,
+ (void *) NoOpTexCoord4sv,
+ (void *) NoOpVertex2d,
+ (void *) NoOpVertex2dv,
+ (void *) NoOpVertex2f,
+ (void *) NoOpVertex2fv,
+ (void *) NoOpVertex2i,
+ (void *) NoOpVertex2iv,
+ (void *) NoOpVertex2s,
+ (void *) NoOpVertex2sv,
+ (void *) NoOpVertex3d,
+ (void *) NoOpVertex3dv,
+ (void *) NoOpVertex3f,
+ (void *) NoOpVertex3fv,
+ (void *) NoOpVertex3i,
+ (void *) NoOpVertex3iv,
+ (void *) NoOpVertex3s,
+ (void *) NoOpVertex3sv,
+ (void *) NoOpVertex4d,
+ (void *) NoOpVertex4dv,
+ (void *) NoOpVertex4f,
+ (void *) NoOpVertex4fv,
+ (void *) NoOpVertex4i,
+ (void *) NoOpVertex4iv,
+ (void *) NoOpVertex4s,
+ (void *) NoOpVertex4sv,
+ (void *) NoOpClipPlane,
+ (void *) NoOpColorMaterial,
+ (void *) NoOpCullFace,
+ (void *) NoOpFogf,
+ (void *) NoOpFogfv,
+ (void *) NoOpFogi,
+ (void *) NoOpFogiv,
+ (void *) NoOpFrontFace,
+ (void *) NoOpHint,
+ (void *) NoOpLightf,
+ (void *) NoOpLightfv,
+ (void *) NoOpLighti,
+ (void *) NoOpLightiv,
+ (void *) NoOpLightModelf,
+ (void *) NoOpLightModelfv,
+ (void *) NoOpLightModeli,
+ (void *) NoOpLightModeliv,
+ (void *) NoOpLineStipple,
+ (void *) NoOpLineWidth,
+ (void *) NoOpMaterialf,
+ (void *) NoOpMaterialfv,
+ (void *) NoOpMateriali,
+ (void *) NoOpMaterialiv,
+ (void *) NoOpPointSize,
+ (void *) NoOpPolygonMode,
+ (void *) NoOpPolygonStipple,
+ (void *) NoOpScissor,
+ (void *) NoOpShadeModel,
+ (void *) NoOpTexParameterf,
+ (void *) NoOpTexParameterfv,
+ (void *) NoOpTexParameteri,
+ (void *) NoOpTexParameteriv,
+ (void *) NoOpTexImage1D,
+ (void *) NoOpTexImage2D,
+ (void *) NoOpTexEnvf,
+ (void *) NoOpTexEnvfv,
+ (void *) NoOpTexEnvi,
+ (void *) NoOpTexEnviv,
+ (void *) NoOpTexGend,
+ (void *) NoOpTexGendv,
+ (void *) NoOpTexGenf,
+ (void *) NoOpTexGenfv,
+ (void *) NoOpTexGeni,
+ (void *) NoOpTexGeniv,
+ (void *) NoOpFeedbackBuffer,
+ (void *) NoOpSelectBuffer,
+ (void *) NoOpRenderMode,
+ (void *) NoOpInitNames,
+ (void *) NoOpLoadName,
+ (void *) NoOpPassThrough,
+ (void *) NoOpPopName,
+ (void *) NoOpPushName,
+ (void *) NoOpDrawBuffer,
+ (void *) NoOpClear,
+ (void *) NoOpClearAccum,
+ (void *) NoOpClearIndex,
+ (void *) NoOpClearColor,
+ (void *) NoOpClearStencil,
+ (void *) NoOpClearDepth,
+ (void *) NoOpStencilMask,
+ (void *) NoOpColorMask,
+ (void *) NoOpDepthMask,
+ (void *) NoOpIndexMask,
+ (void *) NoOpAccum,
+ (void *) NoOpDisable,
+ (void *) NoOpEnable,
+ (void *) NoOpFinish,
+ (void *) NoOpFlush,
+ (void *) NoOpPopAttrib,
+ (void *) NoOpPushAttrib,
+ (void *) NoOpMap1d,
+ (void *) NoOpMap1f,
+ (void *) NoOpMap2d,
+ (void *) NoOpMap2f,
+ (void *) NoOpMapGrid1d,
+ (void *) NoOpMapGrid1f,
+ (void *) NoOpMapGrid2d,
+ (void *) NoOpMapGrid2f,
+ (void *) NoOpEvalCoord1d,
+ (void *) NoOpEvalCoord1dv,
+ (void *) NoOpEvalCoord1f,
+ (void *) NoOpEvalCoord1fv,
+ (void *) NoOpEvalCoord2d,
+ (void *) NoOpEvalCoord2dv,
+ (void *) NoOpEvalCoord2f,
+ (void *) NoOpEvalCoord2fv,
+ (void *) NoOpEvalMesh1,
+ (void *) NoOpEvalPoint1,
+ (void *) NoOpEvalMesh2,
+ (void *) NoOpEvalPoint2,
+ (void *) NoOpAlphaFunc,
+ (void *) NoOpBlendFunc,
+ (void *) NoOpLogicOp,
+ (void *) NoOpStencilFunc,
+ (void *) NoOpStencilOp,
+ (void *) NoOpDepthFunc,
+ (void *) NoOpPixelZoom,
+ (void *) NoOpPixelTransferf,
+ (void *) NoOpPixelTransferi,
+ (void *) NoOpPixelStoref,
+ (void *) NoOpPixelStorei,
+ (void *) NoOpPixelMapfv,
+ (void *) NoOpPixelMapuiv,
+ (void *) NoOpPixelMapusv,
+ (void *) NoOpReadBuffer,
+ (void *) NoOpCopyPixels,
+ (void *) NoOpReadPixels,
+ (void *) NoOpDrawPixels,
+ (void *) NoOpGetBooleanv,
+ (void *) NoOpGetClipPlane,
+ (void *) NoOpGetDoublev,
+ (void *) NoOpGetError,
+ (void *) NoOpGetFloatv,
+ (void *) NoOpGetIntegerv,
+ (void *) NoOpGetLightfv,
+ (void *) NoOpGetLightiv,
+ (void *) NoOpGetMapdv,
+ (void *) NoOpGetMapfv,
+ (void *) NoOpGetMapiv,
+ (void *) NoOpGetMaterialfv,
+ (void *) NoOpGetMaterialiv,
+ (void *) NoOpGetPixelMapfv,
+ (void *) NoOpGetPixelMapuiv,
+ (void *) NoOpGetPixelMapusv,
+ (void *) NoOpGetPolygonStipple,
+ (void *) NoOpGetString,
+ (void *) NoOpGetTexEnvfv,
+ (void *) NoOpGetTexEnviv,
+ (void *) NoOpGetTexGendv,
+ (void *) NoOpGetTexGenfv,
+ (void *) NoOpGetTexGeniv,
+ (void *) NoOpGetTexImage,
+ (void *) NoOpGetTexParameterfv,
+ (void *) NoOpGetTexParameteriv,
+ (void *) NoOpGetTexLevelParameterfv,
+ (void *) NoOpGetTexLevelParameteriv,
+ (void *) NoOpIsEnabled,
+ (void *) NoOpIsList,
+ (void *) NoOpDepthRange,
+ (void *) NoOpFrustum,
+ (void *) NoOpLoadIdentity,
+ (void *) NoOpLoadMatrixf,
+ (void *) NoOpLoadMatrixd,
+ (void *) NoOpMatrixMode,
+ (void *) NoOpMultMatrixf,
+ (void *) NoOpMultMatrixd,
+ (void *) NoOpOrtho,
+ (void *) NoOpPopMatrix,
+ (void *) NoOpPushMatrix,
+ (void *) NoOpRotated,
+ (void *) NoOpRotatef,
+ (void *) NoOpScaled,
+ (void *) NoOpScalef,
+ (void *) NoOpTranslated,
+ (void *) NoOpTranslatef,
+ (void *) NoOpViewport,
+ /* 1.1 */
+ (void *) NoOpArrayElement,
+ (void *) NoOpBindTexture,
+ (void *) NoOpColorPointer,
+ (void *) NoOpDisableClientState,
+ (void *) NoOpDrawArrays,
+ (void *) NoOpDrawElements,
+ (void *) NoOpEdgeFlagPointer,
+ (void *) NoOpEnableClientState,
+ (void *) NoOpIndexPointer,
+ (void *) NoOpIndexub,
+ (void *) NoOpIndexubv,
+ (void *) NoOpInterleavedArrays,
+ (void *) NoOpNormalPointer,
+ (void *) NoOpPolygonOffset,
+ (void *) NoOpTexCoordPointer,
+ (void *) NoOpVertexPointer,
+ (void *) NoOpAreTexturesResident,
+ (void *) NoOpCopyTexImage1D,
+ (void *) NoOpCopyTexImage2D,
+ (void *) NoOpCopyTexSubImage1D,
+ (void *) NoOpCopyTexSubImage2D,
+ (void *) NoOpDeleteTextures,
+ (void *) NoOpGenTextures,
+ (void *) NoOpGetPointerv,
+ (void *) NoOpIsTexture,
+ (void *) NoOpPrioritizeTextures,
+ (void *) NoOpTexSubImage1D,
+ (void *) NoOpTexSubImage2D,
+ (void *) NoOpPopClientAttrib,
+ (void *) NoOpPushClientAttrib,
+ /* 1.2 */
+ (void *) NoOpBlendColor,
+ (void *) NoOpBlendEquation,
+ (void *) NoOpDrawRangeElements,
+ (void *) NoOpColorTable,
+ (void *) NoOpColorTableParameterfv,
+ (void *) NoOpColorTableParameteriv,
+ (void *) NoOpCopyColorTable,
+ (void *) NoOpGetColorTable,
+ (void *) NoOpGetColorTableParameterfv,
+ (void *) NoOpGetColorTableParameteriv,
+ (void *) NoOpColorSubTable,
+ (void *) NoOpCopyColorSubTable,
+ (void *) NoOpConvolutionFilter1D,
+ (void *) NoOpConvolutionFilter2D,
+ (void *) NoOpConvolutionParameterf,
+ (void *) NoOpConvolutionParameterfv,
+ (void *) NoOpConvolutionParameteri,
+ (void *) NoOpConvolutionParameteriv,
+ (void *) NoOpCopyConvolutionFilter1D,
+ (void *) NoOpCopyConvolutionFilter2D,
+ (void *) NoOpGetConvolutionFilter,
+ (void *) NoOpGetConvolutionParameterfv,
+ (void *) NoOpGetConvolutionParameteriv,
+ (void *) NoOpGetSeparableFilter,
+ (void *) NoOpSeparableFilter2D,
+ (void *) NoOpGetHistogram,
+ (void *) NoOpGetHistogramParameterfv,
+ (void *) NoOpGetHistogramParameteriv,
+ (void *) NoOpGetMinmax,
+ (void *) NoOpGetMinmaxParameterfv,
+ (void *) NoOpGetMinmaxParameteriv,
+ (void *) NoOpHistogram,
+ (void *) NoOpMinmax,
+ (void *) NoOpResetHistogram,
+ (void *) NoOpResetMinmax,
+ (void *) NoOpTexImage3D,
+ (void *) NoOpTexSubImage3D,
+ (void *) NoOpCopyTexSubImage3D,
/* GL_ARB_multitexture */
- NoOpActiveTextureARB,
- NoOpClientActiveTextureARB,
- NoOpMultiTexCoord1dARB,
- NoOpMultiTexCoord1dvARB,
- NoOpMultiTexCoord1fARB,
- NoOpMultiTexCoord1fvARB,
- NoOpMultiTexCoord1iARB,
- NoOpMultiTexCoord1ivARB,
- NoOpMultiTexCoord1sARB,
- NoOpMultiTexCoord1svARB,
- NoOpMultiTexCoord2dARB,
- NoOpMultiTexCoord2dvARB,
- NoOpMultiTexCoord2fARB,
- NoOpMultiTexCoord2fvARB,
- NoOpMultiTexCoord2iARB,
- NoOpMultiTexCoord2ivARB,
- NoOpMultiTexCoord2sARB,
- NoOpMultiTexCoord2svARB,
- NoOpMultiTexCoord3dARB,
- NoOpMultiTexCoord3dvARB,
- NoOpMultiTexCoord3fARB,
- NoOpMultiTexCoord3fvARB,
- NoOpMultiTexCoord3iARB,
- NoOpMultiTexCoord3ivARB,
- NoOpMultiTexCoord3sARB,
- NoOpMultiTexCoord3svARB,
- NoOpMultiTexCoord4dARB,
- NoOpMultiTexCoord4dvARB,
- NoOpMultiTexCoord4fARB,
- NoOpMultiTexCoord4fvARB,
- NoOpMultiTexCoord4iARB,
- NoOpMultiTexCoord4ivARB,
- NoOpMultiTexCoord4sARB,
- NoOpMultiTexCoord4svARB,
-
- /*
- * Extensions
- */
-
- /* 2. GL_EXT_blend_color */
- NoOpBlendColorEXT,
-
- /* 3. GL_EXT_polygon_offset */
- NoOpPolygonOffsetEXT,
-
- /* 6. GL_EXT_texture3d */
- NoOpCopyTexSubImage3DEXT,
- NoOpTexImage3DEXT,
- NoOpTexSubImage3DEXT,
-
- /* 7. GL_SGI_texture_filter4 */
- NoOpGetTexFilterFuncSGIS,
- NoOpTexFilterFuncSGIS,
-
- /* 9. GL_EXT_subtexture */
- NoOpTexSubImage1DEXT,
- NoOpTexSubImage2DEXT,
-
- /* 10. GL_EXT_copy_texture */
- NoOpCopyTexImage1DEXT,
- NoOpCopyTexImage2DEXT,
- NoOpCopyTexSubImage1DEXT,
- NoOpCopyTexSubImage2DEXT,
-
- /* 11. GL_EXT_histogram */
- NoOpGetHistogramEXT,
- NoOpGetHistogramParameterfvEXT,
- NoOpGetHistogramParameterivEXT,
- NoOpGetMinmaxEXT,
- NoOpGetMinmaxParameterfvEXT,
- NoOpGetMinmaxParameterivEXT,
- NoOpHistogramEXT,
- NoOpMinmaxEXT,
- NoOpResetHistogramEXT,
- NoOpResetMinmaxEXT,
-
- /* 12. GL_EXT_convolution */
- NoOpConvolutionFilter1DEXT,
- NoOpConvolutionFilter2DEXT,
- NoOpConvolutionParameterfEXT,
- NoOpConvolutionParameterfvEXT,
- NoOpConvolutionParameteriEXT,
- NoOpConvolutionParameterivEXT,
- NoOpCopyConvolutionFilter1DEXT,
- NoOpCopyConvolutionFilter2DEXT,
- NoOpGetConvolutionFilterEXT,
- NoOpGetConvolutionParameterfvEXT,
- NoOpGetConvolutionParameterivEXT,
- NoOpGetSeparableFilterEXT,
- NoOpSeparableFilter2DEXT,
-
- /* 14. GL_SGI_color_table */
- NoOpColorTableSGI,
- NoOpColorTableParameterfvSGI,
- NoOpColorTableParameterivSGI,
- NoOpCopyColorTableSGI,
- NoOpGetColorTableSGI,
- NoOpGetColorTableParameterfvSGI,
- NoOpGetColorTableParameterivSGI,
-
- /* 15. GL_SGIS_pixel_texture */
- NoOpPixelTexGenParameterfSGIS,
- NoOpPixelTexGenParameteriSGIS,
- NoOpGetPixelTexGenParameterfvSGIS,
- NoOpGetPixelTexGenParameterivSGIS,
-
- /* 16. GL_SGIS_texture4D */
- NoOpTexImage4DSGIS,
- NoOpTexSubImage4DSGIS,
-
- /* 20. GL_EXT_texture_object */
- NoOpAreTexturesResidentEXT,
- NoOpBindTextureEXT,
- NoOpDeleteTexturesEXT,
- NoOpGenTexturesEXT,
- NoOpIsTextureEXT,
- NoOpPrioritizeTexturesEXT,
-
- /* 21. GL_SGIS_detail_texture */
- NoOpDetailTexFuncSGIS,
- NoOpGetDetailTexFuncSGIS,
-
- /* 22. GL_SGIS_sharpen_texture */
- NoOpGetSharpenTexFuncSGIS,
- NoOpSharpenTexFuncSGIS,
-
- /* 25. GL_SGIS_multisample */
- NoOpSampleMaskSGIS,
- NoOpSamplePatternSGIS,
-
- /* 30. GL_EXT_vertex_array */
- NoOpArrayElementEXT,
- NoOpColorPointerEXT,
- NoOpDrawArraysEXT,
- NoOpEdgeFlagPointerEXT,
- NoOpGetPointervEXT,
- NoOpIndexPointerEXT,
- NoOpNormalPointerEXT,
- NoOpTexCoordPointerEXT,
- NoOpVertexPointerEXT,
-
- /* 37. GL_EXT_blend_minmax */
- NoOpBlendEquationEXT,
-
- /* 52. GL_SGIX_sprite */
- NoOpSpriteParameterfSGIX,
- NoOpSpriteParameterfvSGIX,
- NoOpSpriteParameteriSGIX,
- NoOpSpriteParameterivSGIX,
-
- /* 54. GL_EXT_point_parameters */
- NoOpPointParameterfEXT,
- NoOpPointParameterfvEXT,
-
- /* 55. GL_SGIX_instruments */
- NoOpGetInstrumentsSGIX,
- NoOpInstrumentsBufferSGIX,
- NoOpPollInstrumentsSGIX,
- NoOpReadInstrumentsSGIX,
- NoOpStartInstrumentsSGIX,
- NoOpStopInstrumentsSGIX,
-
- /* 57. GL_SGIX_framezoom */
- NoOpFrameZoomSGIX,
-
- /* 60. GL_SGIX_reference_plane */
- NoOpReferencePlaneSGIX,
-
- /* 61. GL_SGIX_flush_raster */
- NoOpFlushRasterSGIX,
-
- /* 66. GL_HP_image_transform */
- NoOpGetImageTransformParameterfvHP,
- NoOpGetImageTransformParameterivHP,
- NoOpImageTransformParameterfHP,
- NoOpImageTransformParameterfvHP,
- NoOpImageTransformParameteriHP,
- NoOpImageTransformParameterivHP,
-
- /* 74. GL_EXT_color_subtable */
- NoOpColorSubTableEXT,
- NoOpCopyColorSubTableEXT,
-
- /* 77. GL_PGI_misc_hints */
- NoOpHintPGI,
-
- /* 78. GL_EXT_paletted_texture */
- NoOpColorTableEXT,
- NoOpGetColorTableEXT,
- NoOpGetColorTableParameterfvEXT,
- NoOpGetColorTableParameterivEXT,
-
- /* 80. GL_SGIX_list_priority */
- NoOpGetListParameterfvSGIX,
- NoOpGetListParameterivSGIX,
- NoOpListParameterfSGIX,
- NoOpListParameterfvSGIX,
- NoOpListParameteriSGIX,
- NoOpListParameterivSGIX,
-
- /* 94. GL_EXT_index_material */
- NoOpIndexMaterialEXT,
-
- /* 95. GL_EXT_index_func */
- NoOpIndexFuncEXT,
-
- /* 96. GL_EXT_index_array_formats - no functions */
-
- /* 97. GL_EXT_compiled_vertex_array */
- NoOpLockArraysEXT,
- NoOpUnlockArraysEXT,
-
- /* 98. GL_EXT_cull_vertex */
- NoOpCullParameterfvEXT,
- NoOpCullParameterdvEXT,
-
- /* 173. GL_EXT/INGR_blend_func_separate */
- NoOpBlendFuncSeparateINGR,
-
- /* GL_MESA_window_pos */
- NoOpWindowPos2dMESA,
- NoOpWindowPos2dvMESA,
- NoOpWindowPos2fMESA,
- NoOpWindowPos2fvMESA,
- NoOpWindowPos2iMESA,
- NoOpWindowPos2ivMESA,
- NoOpWindowPos2sMESA,
- NoOpWindowPos2svMESA,
- NoOpWindowPos3dMESA,
- NoOpWindowPos3dvMESA,
- NoOpWindowPos3fMESA,
- NoOpWindowPos3fvMESA,
- NoOpWindowPos3iMESA,
- NoOpWindowPos3ivMESA,
- NoOpWindowPos3sMESA,
- NoOpWindowPos3svMESA,
- NoOpWindowPos4dMESA,
- NoOpWindowPos4dvMESA,
- NoOpWindowPos4fMESA,
- NoOpWindowPos4fvMESA,
- NoOpWindowPos4iMESA,
- NoOpWindowPos4ivMESA,
- NoOpWindowPos4sMESA,
- NoOpWindowPos4svMESA,
-
- /* GL_MESA_resize_buffers */
- NoOpResizeBuffersMESA,
-
+ (void *) NoOpActiveTextureARB,
+ (void *) NoOpClientActiveTextureARB,
+ (void *) NoOpMultiTexCoord1dARB,
+ (void *) NoOpMultiTexCoord1dvARB,
+ (void *) NoOpMultiTexCoord1fARB,
+ (void *) NoOpMultiTexCoord1fvARB,
+ (void *) NoOpMultiTexCoord1iARB,
+ (void *) NoOpMultiTexCoord1ivARB,
+ (void *) NoOpMultiTexCoord1sARB,
+ (void *) NoOpMultiTexCoord1svARB,
+ (void *) NoOpMultiTexCoord2dARB,
+ (void *) NoOpMultiTexCoord2dvARB,
+ (void *) NoOpMultiTexCoord2fARB,
+ (void *) NoOpMultiTexCoord2fvARB,
+ (void *) NoOpMultiTexCoord2iARB,
+ (void *) NoOpMultiTexCoord2ivARB,
+ (void *) NoOpMultiTexCoord2sARB,
+ (void *) NoOpMultiTexCoord2svARB,
+ (void *) NoOpMultiTexCoord3dARB,
+ (void *) NoOpMultiTexCoord3dvARB,
+ (void *) NoOpMultiTexCoord3fARB,
+ (void *) NoOpMultiTexCoord3fvARB,
+ (void *) NoOpMultiTexCoord3iARB,
+ (void *) NoOpMultiTexCoord3ivARB,
+ (void *) NoOpMultiTexCoord3sARB,
+ (void *) NoOpMultiTexCoord3svARB,
+ (void *) NoOpMultiTexCoord4dARB,
+ (void *) NoOpMultiTexCoord4dvARB,
+ (void *) NoOpMultiTexCoord4fARB,
+ (void *) NoOpMultiTexCoord4fvARB,
+ (void *) NoOpMultiTexCoord4iARB,
+ (void *) NoOpMultiTexCoord4ivARB,
+ (void *) NoOpMultiTexCoord4sARB,
+ (void *) NoOpMultiTexCoord4svARB,
/* GL_ARB_transpose_matrix */
- NoOpLoadTransposeMatrixdARB,
- NoOpLoadTransposeMatrixfARB,
- NoOpMultTransposeMatrixdARB,
- NoOpMultTransposeMatrixfARB,
-
+ (void *) NoOpLoadTransposeMatrixfARB,
+ (void *) NoOpLoadTransposeMatrixdARB,
+ (void *) NoOpMultTransposeMatrixfARB,
+ (void *) NoOpMultTransposeMatrixdARB,
+ /* GL_ARB_multisample */
+ (void *) NoOpSampleCoverageARB,
+ (void *) NoOpSamplePassARB,
+ /* GL_EXT_blend_color */
+ /* GL_EXT_polygon_offset */
+ (void *) NoOpPolygonOffsetEXT,
+ /* GL_EXT_texture3D */
+ /* GL_EXT_subtexture */
+ /* GL_SGIS_texture_filter4 */
+ (void *) NoOpGetTexFilterFuncSGIS,
+ (void *) NoOpTexFilterFuncSGIS,
+ /* GL_EXT_subtexture */
+ /* GL_EXT_copy_texture */
+ /* GL_EXT_histogram */
+ (void *) NoOpGetHistogramEXT,
+ (void *) NoOpGetHistogramParameterfvEXT,
+ (void *) NoOpGetHistogramParameterivEXT,
+ (void *) NoOpGetMinmaxEXT,
+ (void *) NoOpGetMinmaxParameterfvEXT,
+ (void *) NoOpGetMinmaxParameterivEXT,
+ /* GL_EXT_convolution */
+ (void *) NoOpGetConvolutionFilterEXT,
+ (void *) NoOpGetConvolutionParameterfvEXT,
+ (void *) NoOpGetConvolutionParameterivEXT,
+ (void *) NoOpGetSeparableFilterEXT,
+ /* GL_SGI_color_table */
+ (void *) NoOpGetColorTableSGI,
+ (void *) NoOpGetColorTableParameterfvSGI,
+ (void *) NoOpGetColorTableParameterivSGI,
+ /* GL_SGIX_pixel_texture */
+ (void *) NoOpPixelTexGenSGIX,
+ /* GL_SGIS_pixel_texture */
+ (void *) NoOpPixelTexGenParameteriSGIS,
+ (void *) NoOpPixelTexGenParameterivSGIS,
+ (void *) NoOpPixelTexGenParameterfSGIS,
+ (void *) NoOpPixelTexGenParameterfvSGIS,
+ (void *) NoOpGetPixelTexGenParameterivSGIS,
+ (void *) NoOpGetPixelTexGenParameterfvSGIS,
+ /* GL_SGIS_texture4D */
+ (void *) NoOpTexImage4DSGIS,
+ (void *) NoOpTexSubImage4DSGIS,
+ /* GL_EXT_texture_object */
+ (void *) NoOpAreTexturesResidentEXT,
+ (void *) NoOpGenTexturesEXT,
+ (void *) NoOpIsTextureEXT,
+ /* GL_SGIS_detail_texture */
+ (void *) NoOpDetailTexFuncSGIS,
+ (void *) NoOpGetDetailTexFuncSGIS,
+ /* GL_SGIS_sharpen_texture */
+ (void *) NoOpSharpenTexFuncSGIS,
+ (void *) NoOpGetSharpenTexFuncSGIS,
+ /* GL_SGIS_multisample */
+ (void *) NoOpSampleMaskSGIS,
+ (void *) NoOpSamplePatternSGIS,
+ /* GL_EXT_vertex_array */
+ (void *) NoOpColorPointerEXT,
+ (void *) NoOpEdgeFlagPointerEXT,
+ (void *) NoOpIndexPointerEXT,
+ (void *) NoOpNormalPointerEXT,
+ (void *) NoOpTexCoordPointerEXT,
+ (void *) NoOpVertexPointerEXT,
+ /* GL_EXT_blend_minmax */
+ /* GL_SGIX_sprite */
+ (void *) NoOpSpriteParameterfSGIX,
+ (void *) NoOpSpriteParameterfvSGIX,
+ (void *) NoOpSpriteParameteriSGIX,
+ (void *) NoOpSpriteParameterivSGIX,
+ /* GL_EXT_point_parameters */
+ (void *) NoOpPointParameterfEXT,
+ (void *) NoOpPointParameterfvEXT,
+ /* GL_SGIX_instruments */
+ (void *) NoOpGetInstrumentsSGIX,
+ (void *) NoOpInstrumentsBufferSGIX,
+ (void *) NoOpPollInstrumentsSGIX,
+ (void *) NoOpReadInstrumentsSGIX,
+ (void *) NoOpStartInstrumentsSGIX,
+ (void *) NoOpStopInstrumentsSGIX,
+ /* GL_SGIX_framezoom */
+ (void *) NoOpFrameZoomSGIX,
+ /* GL_SGIX_tag_sample_buffer */
+ (void *) NoOpTagSampleBufferSGIX,
+ /* GL_SGIX_reference_plane */
+ (void *) NoOpReferencePlaneSGIX,
+ /* GL_SGIX_flush_raster */
+ (void *) NoOpFlushRasterSGIX,
+ /* GL_SGIX_list_priority */
+ (void *) NoOpGetListParameterfvSGIX,
+ (void *) NoOpGetListParameterivSGIX,
+ (void *) NoOpListParameterfSGIX,
+ (void *) NoOpListParameterfvSGIX,
+ (void *) NoOpListParameteriSGIX,
+ (void *) NoOpListParameterivSGIX,
+ /* GL_SGIX_fragment_lighting */
+ (void *) NoOpFragmentColorMaterialSGIX,
+ (void *) NoOpFragmentLightfSGIX,
+ (void *) NoOpFragmentLightfvSGIX,
+ (void *) NoOpFragmentLightiSGIX,
+ (void *) NoOpFragmentLightivSGIX,
+ (void *) NoOpFragmentLightModelfSGIX,
+ (void *) NoOpFragmentLightModelfvSGIX,
+ (void *) NoOpFragmentLightModeliSGIX,
+ (void *) NoOpFragmentLightModelivSGIX,
+ (void *) NoOpFragmentMaterialfSGIX,
+ (void *) NoOpFragmentMaterialfvSGIX,
+ (void *) NoOpFragmentMaterialiSGIX,
+ (void *) NoOpFragmentMaterialivSGIX,
+ (void *) NoOpGetFragmentLightfvSGIX,
+ (void *) NoOpGetFragmentLightivSGIX,
+ (void *) NoOpGetFragmentMaterialfvSGIX,
+ (void *) NoOpGetFragmentMaterialivSGIX,
+ (void *) NoOpLightEnviSGIX,
+ /* GL_EXT_vertex_weighting */
+ (void *) NoOpVertexWeightfEXT,
+ (void *) NoOpVertexWeightfvEXT,
+ (void *) NoOpVertexWeightPointerEXT,
+ /* GL_NV_vertex_array_range */
+ (void *) NoOpFlushVertexArrayRangeNV,
+ (void *) NoOpVertexArrayRangeNV,
+ /* GL_NV_register_combiners */
+ (void *) NoOpCombinerParameterfvNV,
+ (void *) NoOpCombinerParameterfNV,
+ (void *) NoOpCombinerParameterivNV,
+ (void *) NoOpCombinerParameteriNV,
+ (void *) NoOpCombinerInputNV,
+ (void *) NoOpCombinerOutputNV,
+ (void *) NoOpFinalCombinerInputNV,
+ (void *) NoOpGetCombinerInputParameterfvNV,
+ (void *) NoOpGetCombinerInputParameterivNV,
+ (void *) NoOpGetCombinerOutputParameterfvNV,
+ (void *) NoOpGetCombinerOutputParameterivNV,
+ (void *) NoOpGetFinalCombinerInputParameterfvNV,
+ (void *) NoOpGetFinalCombinerInputParameterivNV,
+ /* GL_MESA_resize_buffers */
+ (void *) NoOpResizeBuffersMESA,
+ /* GL_MESA_window_pos */
+ (void *) NoOpWindowPos2dMESA,
+ (void *) NoOpWindowPos2dvMESA,
+ (void *) NoOpWindowPos2fMESA,
+ (void *) NoOpWindowPos2fvMESA,
+ (void *) NoOpWindowPos2iMESA,
+ (void *) NoOpWindowPos2ivMESA,
+ (void *) NoOpWindowPos2sMESA,
+ (void *) NoOpWindowPos2svMESA,
+ (void *) NoOpWindowPos3dMESA,
+ (void *) NoOpWindowPos3dvMESA,
+ (void *) NoOpWindowPos3fMESA,
+ (void *) NoOpWindowPos3fvMESA,
+ (void *) NoOpWindowPos3iMESA,
+ (void *) NoOpWindowPos3ivMESA,
+ (void *) NoOpWindowPos3sMESA,
+ (void *) NoOpWindowPos3svMESA,
+ (void *) NoOpWindowPos4dMESA,
+ (void *) NoOpWindowPos4dvMESA,
+ (void *) NoOpWindowPos4fMESA,
+ (void *) NoOpWindowPos4fvMESA,
+ (void *) NoOpWindowPos4iMESA,
+ (void *) NoOpWindowPos4ivMESA,
+ (void *) NoOpWindowPos4sMESA,
+ (void *) NoOpWindowPos4svMESA,
+ /* GL_EXT_draw_range_elements */
+ (void *) NoOpBlendFuncSeparateEXT,
+ /* GL_EXT_index_material */
+ (void *) NoOpIndexMaterialEXT,
+ /* GL_EXT_index_func */
+ (void *) NoOpIndexFuncEXT,
+ /* GL_EXT_compiled_vertex_array */
+ (void *) NoOpLockArraysEXT,
+ (void *) NoOpUnlockArraysEXT,
+ /* GL_EXT_cull_vertex */
+ (void *) NoOpCullParameterdvEXT,
+ (void *) NoOpCullParameterfvEXT,
+ /* GL_PGI_misc_hints */
+ (void *) NoOpHintPGI,
+ /* GL_EXT_fog_coord */
+ (void *) NoOpFogCoordfEXT,
+ (void *) NoOpFogCoordfvEXT,
+ (void *) NoOpFogCoorddEXT,
+ (void *) NoOpFogCoorddEXT,
+ (void *) NoOpFogCoordPointerEXT,
+ /* GL_EXT_color_table */
+ (void *) NoOpGetColorTableEXT,
+ (void *) NoOpGetColorTableParameterivEXT,
+ (void *) NoOpGetColorTableParameterfvEXT,
+
+ /* A whole bunch of no-op functions. These might be called
+ * when someone tries to call a dynamically-registered extension
+ * function without a current rendering context.
+ */
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric,
+ (void *) NoOpGeneric
};
-
diff --git a/xc/extras/Mesa/src/glapinoop.h b/xc/extras/Mesa/src/glapinoop.h
index 61922d30b..a3ac9c6ca 100644
--- a/xc/extras/Mesa/src/glapinoop.h
+++ b/xc/extras/Mesa/src/glapinoop.h
@@ -34,7 +34,7 @@ extern void
_glapi_noop_enable_warnings(GLboolean enable);
-extern struct _glapi_table __glapi_noop_table;
+extern void *__glapi_noop_table[];
#endif
diff --git a/xc/extras/Mesa/src/glapioffsets.h b/xc/extras/Mesa/src/glapioffsets.h
index 38b1da62d..67481c8e0 100644
--- a/xc/extras/Mesa/src/glapioffsets.h
+++ b/xc/extras/Mesa/src/glapioffsets.h
@@ -1,823 +1,559 @@
-
-/*
- * Mesa 3-D graphics library
- * Version: 3.3
- *
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-
-/*
- * This file defines a static offset for all GL functions within the
- * dispatch table.
- *
- * Eventually a replacement for this file will be available from SGI
- * or the ARB so all vendors have the same info.
- *
- * XXX this file is incomplete - many more extension functions left to add
- */
-
-
-
-#ifndef _glextfunc_h_
-#define _glextfunc_h_
-
-#define _BASE 0
-
-
-/* GL 1.1 */
-#define _gloffset_Accum (_BASE + 1)
-#define _gloffset_AlphaFunc (_BASE + 2)
-#define _gloffset_Begin (_BASE + 3)
-#define _gloffset_Bitmap (_BASE + 4)
-#define _gloffset_BlendFunc (_BASE + 5)
-#define _gloffset_CallList (_BASE + 6)
-#define _gloffset_CallLists (_BASE + 7)
-#define _gloffset_Clear (_BASE + 8)
-#define _gloffset_ClearAccum (_BASE + 9)
-#define _gloffset_ClearColor (_BASE + 10)
-#define _gloffset_ClearDepth (_BASE + 11)
-#define _gloffset_ClearIndex (_BASE + 12)
-#define _gloffset_ClearStencil (_BASE + 13)
-#define _gloffset_ClipPlane (_BASE + 14)
-#define _gloffset_Color3b (_BASE + 15)
-#define _gloffset_Color3bv (_BASE + 16)
-#define _gloffset_Color3d (_BASE + 17)
-#define _gloffset_Color3dv (_BASE + 18)
-#define _gloffset_Color3f (_BASE + 19)
-#define _gloffset_Color3fv (_BASE + 20)
-#define _gloffset_Color3i (_BASE + 21)
-#define _gloffset_Color3iv (_BASE + 22)
-#define _gloffset_Color3s (_BASE + 23)
-#define _gloffset_Color3sv (_BASE + 24)
-#define _gloffset_Color3ub (_BASE + 25)
-#define _gloffset_Color3ubv (_BASE + 26)
-#define _gloffset_Color3ui (_BASE + 27)
-#define _gloffset_Color3uiv (_BASE + 28)
-#define _gloffset_Color3us (_BASE + 29)
-#define _gloffset_Color3usv (_BASE + 30)
-#define _gloffset_Color4b (_BASE + 31)
-#define _gloffset_Color4bv (_BASE + 32)
-#define _gloffset_Color4d (_BASE + 33)
-#define _gloffset_Color4dv (_BASE + 34)
-#define _gloffset_Color4f (_BASE + 35)
-#define _gloffset_Color4fv (_BASE + 36)
-#define _gloffset_Color4i (_BASE + 37)
-#define _gloffset_Color4iv (_BASE + 38)
-#define _gloffset_Color4s (_BASE + 39)
-#define _gloffset_Color4sv (_BASE + 40)
-#define _gloffset_Color4ub (_BASE + 41)
-#define _gloffset_Color4ubv (_BASE + 42)
-#define _gloffset_Color4ui (_BASE + 43)
-#define _gloffset_Color4uiv (_BASE + 44)
-#define _gloffset_Color4us (_BASE + 45)
-#define _gloffset_Color4usv (_BASE + 46)
-#define _gloffset_ColorMask (_BASE + 47)
-#define _gloffset_ColorMaterial (_BASE + 48)
-#define _gloffset_CopyPixels (_BASE + 49)
-#define _gloffset_CullFace (_BASE + 50)
-#define _gloffset_DeleteLists (_BASE + 51)
-#define _gloffset_DepthFunc (_BASE + 52)
-#define _gloffset_DepthMask (_BASE + 53)
-#define _gloffset_DepthRange (_BASE + 54)
-#define _gloffset_Disable (_BASE + 55)
-#define _gloffset_DrawBuffer (_BASE + 56)
-#define _gloffset_DrawPixels (_BASE + 57)
-#define _gloffset_EdgeFlag (_BASE + 58)
-#define _gloffset_EdgeFlagv (_BASE + 59)
-#define _gloffset_Enable (_BASE + 60)
-#define _gloffset_End (_BASE + 61)
-#define _gloffset_EndList (_BASE + 62)
-#define _gloffset_EvalCoord1d (_BASE + 63)
-#define _gloffset_EvalCoord1dv (_BASE + 64)
-#define _gloffset_EvalCoord1f (_BASE + 65)
-#define _gloffset_EvalCoord1fv (_BASE + 66)
-#define _gloffset_EvalCoord2d (_BASE + 67)
-#define _gloffset_EvalCoord2dv (_BASE + 68)
-#define _gloffset_EvalCoord2f (_BASE + 69)
-#define _gloffset_EvalCoord2fv (_BASE + 70)
-#define _gloffset_EvalMesh1 (_BASE + 71)
-#define _gloffset_EvalMesh2 (_BASE + 72)
-#define _gloffset_EvalPoint1 (_BASE + 73)
-#define _gloffset_EvalPoint2 (_BASE + 74)
-#define _gloffset_FeedbackBuffer (_BASE + 75)
-#define _gloffset_Finish (_BASE + 76)
-#define _gloffset_Flush (_BASE + 77)
-#define _gloffset_Fogf (_BASE + 78)
-#define _gloffset_Fogfv (_BASE + 79)
-#define _gloffset_Fogi (_BASE + 80)
-#define _gloffset_Fogiv (_BASE + 81)
-#define _gloffset_FrontFace (_BASE + 82)
-#define _gloffset_Frustum (_BASE + 83)
-#define _gloffset_GenLists (_BASE + 84)
-#define _gloffset_GetBooleanv (_BASE + 85)
-#define _gloffset_GetClipPlane (_BASE + 86)
-#define _gloffset_GetDoublev (_BASE + 87)
-#define _gloffset_GetError (_BASE + 88)
-#define _gloffset_GetFloatv (_BASE + 89)
-#define _gloffset_GetIntegerv (_BASE + 90)
-#define _gloffset_GetLightfv (_BASE + 91)
-#define _gloffset_GetLightiv (_BASE + 92)
-#define _gloffset_GetMapdv (_BASE + 93)
-#define _gloffset_GetMapfv (_BASE + 94)
-#define _gloffset_GetMapiv (_BASE + 95)
-#define _gloffset_GetMaterialfv (_BASE + 96)
-#define _gloffset_GetMaterialiv (_BASE + 97)
-#define _gloffset_GetPixelMapfv (_BASE + 98)
-#define _gloffset_GetPixelMapuiv (_BASE + 99)
-#define _gloffset_GetPixelMapusv (_BASE + 100)
-#define _gloffset_GetPolygonStipple (_BASE + 101)
-#define _gloffset_GetString (_BASE + 102)
-#define _gloffset_GetTexEnvfv (_BASE + 103)
-#define _gloffset_GetTexEnviv (_BASE + 104)
-#define _gloffset_GetTexGendv (_BASE + 105)
-#define _gloffset_GetTexGenfv (_BASE + 106)
-#define _gloffset_GetTexGeniv (_BASE + 107)
-#define _gloffset_GetTexImage (_BASE + 108)
-#define _gloffset_GetTexLevelParameterfv (_BASE + 109)
-#define _gloffset_GetTexLevelParameteriv (_BASE + 110)
-#define _gloffset_GetTexParameterfv (_BASE + 111)
-#define _gloffset_GetTexParameteriv (_BASE + 112)
-#define _gloffset_Hint (_BASE + 113)
-#define _gloffset_IndexMask (_BASE + 114)
-#define _gloffset_Indexd (_BASE + 115)
-#define _gloffset_Indexdv (_BASE + 116)
-#define _gloffset_Indexf (_BASE + 117)
-#define _gloffset_Indexfv (_BASE + 118)
-#define _gloffset_Indexi (_BASE + 119)
-#define _gloffset_Indexiv (_BASE + 120)
-#define _gloffset_Indexs (_BASE + 121)
-#define _gloffset_Indexsv (_BASE + 122)
-#define _gloffset_InitNames (_BASE + 123)
-#define _gloffset_IsEnabled (_BASE + 124)
-#define _gloffset_IsList (_BASE + 125)
-#define _gloffset_LightModelf (_BASE + 126)
-#define _gloffset_LightModelfv (_BASE + 127)
-#define _gloffset_LightModeli (_BASE + 128)
-#define _gloffset_LightModeliv (_BASE + 129)
-#define _gloffset_Lightf (_BASE + 130)
-#define _gloffset_Lightfv (_BASE + 131)
-#define _gloffset_Lighti (_BASE + 132)
-#define _gloffset_Lightiv (_BASE + 133)
-#define _gloffset_LineStipple (_BASE + 134)
-#define _gloffset_LineWidth (_BASE + 135)
-#define _gloffset_ListBase (_BASE + 136)
-#define _gloffset_LoadIdentity (_BASE + 137)
-#define _gloffset_LoadMatrixd (_BASE + 138)
-#define _gloffset_LoadMatrixf (_BASE + 139)
-#define _gloffset_LoadName (_BASE + 140)
-#define _gloffset_LogicOp (_BASE + 141)
-#define _gloffset_Map1d (_BASE + 142)
-#define _gloffset_Map1f (_BASE + 143)
-#define _gloffset_Map2d (_BASE + 144)
-#define _gloffset_Map2f (_BASE + 145)
-#define _gloffset_MapGrid1d (_BASE + 146)
-#define _gloffset_MapGrid1f (_BASE + 147)
-#define _gloffset_MapGrid2d (_BASE + 148)
-#define _gloffset_MapGrid2f (_BASE + 149)
-#define _gloffset_Materialf (_BASE + 150)
-#define _gloffset_Materialfv (_BASE + 151)
-#define _gloffset_Materiali (_BASE + 152)
-#define _gloffset_Materialiv (_BASE + 153)
-#define _gloffset_MatrixMode (_BASE + 154)
-#define _gloffset_MultMatrixd (_BASE + 155)
-#define _gloffset_MultMatrixf (_BASE + 156)
-#define _gloffset_NewList (_BASE + 157)
-#define _gloffset_Normal3b (_BASE + 158)
-#define _gloffset_Normal3bv (_BASE + 159)
-#define _gloffset_Normal3d (_BASE + 160)
-#define _gloffset_Normal3dv (_BASE + 161)
-#define _gloffset_Normal3f (_BASE + 162)
-#define _gloffset_Normal3fv (_BASE + 163)
-#define _gloffset_Normal3i (_BASE + 164)
-#define _gloffset_Normal3iv (_BASE + 165)
-#define _gloffset_Normal3s (_BASE + 166)
-#define _gloffset_Normal3sv (_BASE + 167)
-#define _gloffset_Ortho (_BASE + 168)
-#define _gloffset_PassThrough (_BASE + 169)
-#define _gloffset_PixelMapfv (_BASE + 170)
-#define _gloffset_PixelMapuiv (_BASE + 171)
-#define _gloffset_PixelMapusv (_BASE + 172)
-#define _gloffset_PixelStoref (_BASE + 173)
-#define _gloffset_PixelStorei (_BASE + 174)
-#define _gloffset_PixelTransferf (_BASE + 175)
-#define _gloffset_PixelTransferi (_BASE + 176)
-#define _gloffset_PixelZoom (_BASE + 177)
-#define _gloffset_PointSize (_BASE + 178)
-#define _gloffset_PolygonMode (_BASE + 179)
-#define _gloffset_PolygonOffset (_BASE + 180)
-#define _gloffset_PolygonStipple (_BASE + 181)
-#define _gloffset_PopAttrib (_BASE + 182)
-#define _gloffset_PopMatrix (_BASE + 183)
-#define _gloffset_PopName (_BASE + 184)
-#define _gloffset_PushAttrib (_BASE + 185)
-#define _gloffset_PushMatrix (_BASE + 186)
-#define _gloffset_PushName (_BASE + 187)
-#define _gloffset_RasterPos2d (_BASE + 188)
-#define _gloffset_RasterPos2dv (_BASE + 189)
-#define _gloffset_RasterPos2f (_BASE + 190)
-#define _gloffset_RasterPos2fv (_BASE + 191)
-#define _gloffset_RasterPos2i (_BASE + 192)
-#define _gloffset_RasterPos2iv (_BASE + 193)
-#define _gloffset_RasterPos2s (_BASE + 194)
-#define _gloffset_RasterPos2sv (_BASE + 195)
-#define _gloffset_RasterPos3d (_BASE + 196)
-#define _gloffset_RasterPos3dv (_BASE + 197)
-#define _gloffset_RasterPos3f (_BASE + 198)
-#define _gloffset_RasterPos3fv (_BASE + 199)
-#define _gloffset_RasterPos3i (_BASE + 200)
-#define _gloffset_RasterPos3iv (_BASE + 201)
-#define _gloffset_RasterPos3s (_BASE + 202)
-#define _gloffset_RasterPos3sv (_BASE + 203)
-#define _gloffset_RasterPos4d (_BASE + 204)
-#define _gloffset_RasterPos4dv (_BASE + 205)
-#define _gloffset_RasterPos4f (_BASE + 206)
-#define _gloffset_RasterPos4fv (_BASE + 207)
-#define _gloffset_RasterPos4i (_BASE + 208)
-#define _gloffset_RasterPos4iv (_BASE + 209)
-#define _gloffset_RasterPos4s (_BASE + 210)
-#define _gloffset_RasterPos4sv (_BASE + 211)
-#define _gloffset_ReadBuffer (_BASE + 212)
-#define _gloffset_ReadPixels (_BASE + 213)
-#define _gloffset_Rectd (_BASE + 214)
-#define _gloffset_Rectdv (_BASE + 215)
-#define _gloffset_Rectf (_BASE + 216)
-#define _gloffset_Rectfv (_BASE + 217)
-#define _gloffset_Recti (_BASE + 218)
-#define _gloffset_Rectiv (_BASE + 219)
-#define _gloffset_Rects (_BASE + 220)
-#define _gloffset_Rectsv (_BASE + 221)
-#define _gloffset_RenderMode (_BASE + 222)
-#define _gloffset_Rotated (_BASE + 223)
-#define _gloffset_Rotatef (_BASE + 224)
-#define _gloffset_Scaled (_BASE + 225)
-#define _gloffset_Scalef (_BASE + 226)
-#define _gloffset_Scissor (_BASE + 227)
-#define _gloffset_SelectBuffer (_BASE + 228)
-#define _gloffset_ShadeModel (_BASE + 229)
-#define _gloffset_StencilFunc (_BASE + 230)
-#define _gloffset_StencilMask (_BASE + 231)
-#define _gloffset_StencilOp (_BASE + 232)
-#define _gloffset_TexCoord1d (_BASE + 233)
-#define _gloffset_TexCoord1dv (_BASE + 234)
-#define _gloffset_TexCoord1f (_BASE + 235)
-#define _gloffset_TexCoord1fv (_BASE + 236)
-#define _gloffset_TexCoord1i (_BASE + 237)
-#define _gloffset_TexCoord1iv (_BASE + 238)
-#define _gloffset_TexCoord1s (_BASE + 239)
-#define _gloffset_TexCoord1sv (_BASE + 240)
-#define _gloffset_TexCoord2d (_BASE + 241)
-#define _gloffset_TexCoord2dv (_BASE + 242)
-#define _gloffset_TexCoord2f (_BASE + 243)
-#define _gloffset_TexCoord2fv (_BASE + 244)
-#define _gloffset_TexCoord2i (_BASE + 245)
-#define _gloffset_TexCoord2iv (_BASE + 246)
-#define _gloffset_TexCoord2s (_BASE + 247)
-#define _gloffset_TexCoord2sv (_BASE + 248)
-#define _gloffset_TexCoord3d (_BASE + 249)
-#define _gloffset_TexCoord3dv (_BASE + 250)
-#define _gloffset_TexCoord3f (_BASE + 251)
-#define _gloffset_TexCoord3fv (_BASE + 252)
-#define _gloffset_TexCoord3i (_BASE + 253)
-#define _gloffset_TexCoord3iv (_BASE + 254)
-#define _gloffset_TexCoord3s (_BASE + 255)
-#define _gloffset_TexCoord3sv (_BASE + 256)
-#define _gloffset_TexCoord4d (_BASE + 257)
-#define _gloffset_TexCoord4dv (_BASE + 258)
-#define _gloffset_TexCoord4f (_BASE + 259)
-#define _gloffset_TexCoord4fv (_BASE + 260)
-#define _gloffset_TexCoord4i (_BASE + 261)
-#define _gloffset_TexCoord4iv (_BASE + 262)
-#define _gloffset_TexCoord4s (_BASE + 263)
-#define _gloffset_TexCoord4sv (_BASE + 264)
-#define _gloffset_TexEnvf (_BASE + 265)
-#define _gloffset_TexEnvfv (_BASE + 266)
-#define _gloffset_TexEnvi (_BASE + 267)
-#define _gloffset_TexEnviv (_BASE + 268)
-#define _gloffset_TexGend (_BASE + 269)
-#define _gloffset_TexGendv (_BASE + 270)
-#define _gloffset_TexGenf (_BASE + 271)
-#define _gloffset_TexGenfv (_BASE + 272)
-#define _gloffset_TexGeni (_BASE + 273)
-#define _gloffset_TexGeniv (_BASE + 274)
-#define _gloffset_TexImage1D (_BASE + 275)
-#define _gloffset_TexImage2D (_BASE + 276)
-#define _gloffset_TexParameterf (_BASE + 277)
-#define _gloffset_TexParameterfv (_BASE + 278)
-#define _gloffset_TexParameteri (_BASE + 279)
-#define _gloffset_TexParameteriv (_BASE + 280)
-#define _gloffset_Translated (_BASE + 281)
-#define _gloffset_Translatef (_BASE + 282)
-#define _gloffset_Vertex2d (_BASE + 283)
-#define _gloffset_Vertex2dv (_BASE + 284)
-#define _gloffset_Vertex2f (_BASE + 285)
-#define _gloffset_Vertex2fv (_BASE + 286)
-#define _gloffset_Vertex2i (_BASE + 287)
-#define _gloffset_Vertex2iv (_BASE + 288)
-#define _gloffset_Vertex2s (_BASE + 289)
-#define _gloffset_Vertex2sv (_BASE + 290)
-#define _gloffset_Vertex3d (_BASE + 291)
-#define _gloffset_Vertex3dv (_BASE + 292)
-#define _gloffset_Vertex3f (_BASE + 293)
-#define _gloffset_Vertex3fv (_BASE + 294)
-#define _gloffset_Vertex3i (_BASE + 295)
-#define _gloffset_Vertex3iv (_BASE + 296)
-#define _gloffset_Vertex3s (_BASE + 297)
-#define _gloffset_Vertex3sv (_BASE + 298)
-#define _gloffset_Vertex4d (_BASE + 299)
-#define _gloffset_Vertex4dv (_BASE + 300)
-#define _gloffset_Vertex4f (_BASE + 301)
-#define _gloffset_Vertex4fv (_BASE + 302)
-#define _gloffset_Vertex4i (_BASE + 303)
-#define _gloffset_Vertex4iv (_BASE + 304)
-#define _gloffset_Vertex4s (_BASE + 305)
-#define _gloffset_Vertex4sv (_BASE + 306)
-#define _gloffset_Viewport (_BASE + 307)
-
-/* GL 1.1 */
-#define _gloffset_AreTexturesResident (_BASE + 308)
-#define _gloffset_ArrayElement (_BASE + 309)
-#define _gloffset_BindTexture (_BASE + 310)
-#define _gloffset_ColorPointer (_BASE + 311)
-#define _gloffset_CopyTexImage1D (_BASE + 312)
-#define _gloffset_CopyTexImage2D (_BASE + 313)
-#define _gloffset_CopyTexSubImage1D (_BASE + 314)
-#define _gloffset_CopyTexSubImage2D (_BASE + 315)
-#define _gloffset_DeleteTextures (_BASE + 316)
-#define _gloffset_DisableClientState (_BASE + 317)
-#define _gloffset_DrawArrays (_BASE + 318)
-#define _gloffset_DrawElements (_BASE + 319)
-#define _gloffset_EdgeFlagPointer (_BASE + 320)
-#define _gloffset_EnableClientState (_BASE + 321)
-#define _gloffset_GenTextures (_BASE + 322)
-#define _gloffset_GetPointerv (_BASE + 323)
-#define _gloffset_IndexPointer (_BASE + 324)
-#define _gloffset_Indexub (_BASE + 325)
-#define _gloffset_Indexubv (_BASE + 326)
-#define _gloffset_InterleavedArrays (_BASE + 327)
-#define _gloffset_IsTexture (_BASE + 328)
-#define _gloffset_NormalPointer (_BASE + 329)
-#define _gloffset_PopClientAttrib (_BASE + 330)
-#define _gloffset_PrioritizeTextures (_BASE + 331)
-#define _gloffset_PushClientAttrib (_BASE + 332)
-#define _gloffset_TexCoordPointer (_BASE + 333)
-#define _gloffset_TexSubImage1D (_BASE + 334)
-#define _gloffset_TexSubImage2D (_BASE + 335)
-#define _gloffset_VertexPointer (_BASE + 336)
-
-/* GL 1.2 */
-#define _gloffset_CopyTexSubImage3D (_BASE + 337)
-#define _gloffset_DrawRangeElements (_BASE + 338)
-#define _gloffset_TexImage3D (_BASE + 339)
-#define _gloffset_TexSubImage3D (_BASE + 340)
-
-/* GL_ARB_imaging */
-#define _gloffset_BlendColor (_BASE + 341)
-#define _gloffset_BlendEquation (_BASE + 342)
-#define _gloffset_ColorSubTable (_BASE + 343)
-#define _gloffset_ColorTable (_BASE + 344)
-#define _gloffset_ColorTableParameterfv (_BASE + 345)
-#define _gloffset_ColorTableParameteriv (_BASE + 346)
-#define _gloffset_ConvolutionFilter1D (_BASE + 347)
-#define _gloffset_ConvolutionFilter2D (_BASE + 348)
-#define _gloffset_ConvolutionParameterf (_BASE + 349)
-#define _gloffset_ConvolutionParameterfv (_BASE + 350)
-#define _gloffset_ConvolutionParameteri (_BASE + 351)
-#define _gloffset_ConvolutionParameteriv (_BASE + 352)
-#define _gloffset_CopyColorSubTable (_BASE + 353)
-#define _gloffset_CopyColorTable (_BASE + 354)
-#define _gloffset_CopyConvolutionFilter1D (_BASE + 355)
-#define _gloffset_CopyConvolutionFilter2D (_BASE + 356)
-#define _gloffset_GetColorTable (_BASE + 357)
-#define _gloffset_GetColorTableParameterfv (_BASE + 358)
-#define _gloffset_GetColorTableParameteriv (_BASE + 359)
-#define _gloffset_GetConvolutionFilter (_BASE + 360)
-#define _gloffset_GetConvolutionParameterfv (_BASE + 361)
-#define _gloffset_GetConvolutionParameteriv (_BASE + 362)
-#define _gloffset_GetHistogram (_BASE + 363)
-#define _gloffset_GetHistogramParameterfv (_BASE + 364)
-#define _gloffset_GetHistogramParameteriv (_BASE + 365)
-#define _gloffset_GetMinmax (_BASE + 366)
-#define _gloffset_GetMinmaxParameterfv (_BASE + 367)
-#define _gloffset_GetMinmaxParameteriv (_BASE + 368)
-#define _gloffset_GetSeparableFilter (_BASE + 369)
-#define _gloffset_Histogram (_BASE + 370)
-#define _gloffset_Minmax (_BASE + 371)
-#define _gloffset_ResetHistogram (_BASE + 372)
-#define _gloffset_ResetMinmax (_BASE + 373)
-#define _gloffset_SeparableFilter2D (_BASE + 374)
-
-/* GL_ARB_multitexture */
-#define _gloffset_ActiveTextureARB (_BASE + 375)
-#define _gloffset_ClientActiveTextureARB (_BASE + 376)
-#define _gloffset_MultiTexCoord1dARB (_BASE + 377)
-#define _gloffset_MultiTexCoord1dvARB (_BASE + 378)
-#define _gloffset_MultiTexCoord1fARB (_BASE + 379)
-#define _gloffset_MultiTexCoord1fvARB (_BASE + 380)
-#define _gloffset_MultiTexCoord1iARB (_BASE + 381)
-#define _gloffset_MultiTexCoord1ivARB (_BASE + 382)
-#define _gloffset_MultiTexCoord1sARB (_BASE + 383)
-#define _gloffset_MultiTexCoord1svARB (_BASE + 384)
-#define _gloffset_MultiTexCoord2dARB (_BASE + 385)
-#define _gloffset_MultiTexCoord2dvARB (_BASE + 386)
-#define _gloffset_MultiTexCoord2fARB (_BASE + 387)
-#define _gloffset_MultiTexCoord2fvARB (_BASE + 388)
-#define _gloffset_MultiTexCoord2iARB (_BASE + 389)
-#define _gloffset_MultiTexCoord2ivARB (_BASE + 390)
-#define _gloffset_MultiTexCoord2sARB (_BASE + 391)
-#define _gloffset_MultiTexCoord2svARB (_BASE + 392)
-#define _gloffset_MultiTexCoord3dARB (_BASE + 393)
-#define _gloffset_MultiTexCoord3dvARB (_BASE + 394)
-#define _gloffset_MultiTexCoord3fARB (_BASE + 395)
-#define _gloffset_MultiTexCoord3fvARB (_BASE + 396)
-#define _gloffset_MultiTexCoord3iARB (_BASE + 397)
-#define _gloffset_MultiTexCoord3ivARB (_BASE + 398)
-#define _gloffset_MultiTexCoord3sARB (_BASE + 399)
-#define _gloffset_MultiTexCoord3svARB (_BASE + 400)
-#define _gloffset_MultiTexCoord4dARB (_BASE + 401)
-#define _gloffset_MultiTexCoord4dvARB (_BASE + 402)
-#define _gloffset_MultiTexCoord4fARB (_BASE + 403)
-#define _gloffset_MultiTexCoord4fvARB (_BASE + 404)
-#define _gloffset_MultiTexCoord4iARB (_BASE + 405)
-#define _gloffset_MultiTexCoord4ivARB (_BASE + 406)
-#define _gloffset_MultiTexCoord4sARB (_BASE + 407)
-#define _gloffset_MultiTexCoord4svARB (_BASE + 408)
-
-
-
-#define _EXTBASE (_BASE + 409)
-
-
-/* 1. GL_EXT_abgr - no functions */
-
-/* 2. GL_EXT_blend_color */
-#define _gloffset_BlendColorEXT (_EXTBASE + 0)
-
-/* 3. GL_EXT_polygon_offset */
-#define _gloffset_PolygonOffsetEXT (_EXTBASE + 1)
-
-/* 4. GL_EXT_texture - no functions */
-
-/* 5. ??? */
-
-/* 6. GL_EXT_texture3D */
-#define _gloffset_CopyTexSubImage3DEXT (_EXTBASE + 2)
-#define _gloffset_TexImage3DEXT (_EXTBASE + 3)
-#define _gloffset_TexSubImage3DEXT (_EXTBASE + 4)
-
-/* 7. GL_SGI_texture_filter4 */
-#define _gloffset_GetTexFilterFuncSGIS (_EXTBASE + 5)
-#define _gloffset_TexFilterFuncSGIS (_EXTBASE + 6)
-
-/* 8. ??? */
-
-/* 9. GL_EXT_subtexture */
-#define _gloffset_TexSubImage1DEXT (_EXTBASE + 7)
-#define _gloffset_TexSubImage2DEXT (_EXTBASE + 8)
-/*#define _gloffset_TexSubImage3DEXT*/
-
-/* 10. GL_EXT_copy_texture */
-#define _gloffset_CopyTexImage1DEXT (_EXTBASE + 9)
-#define _gloffset_CopyTexImage2DEXT (_EXTBASE + 10)
-#define _gloffset_CopyTexSubImage1DEXT (_EXTBASE + 11)
-#define _gloffset_CopyTexSubImage2DEXT (_EXTBASE + 12)
-/*#define _gloffset_CopyTexSubImage3DEXT*/
-
-/* 11. GL_EXT_histogram */
-#define _gloffset_GetHistogramEXT (_EXTBASE + 13)
-#define _gloffset_GetHistogramParameterfvEXT (_EXTBASE + 15)
-#define _gloffset_GetHistogramParameterivEXT (_EXTBASE + 14)
-#define _gloffset_GetMinmaxEXT (_EXTBASE + 16)
-#define _gloffset_GetMinmaxParameterfvEXT (_EXTBASE + 18)
-#define _gloffset_GetMinmaxParameterivEXT (_EXTBASE + 17)
-#define _gloffset_HistogramEXT (_EXTBASE + 19)
-#define _gloffset_MinmaxEXT (_EXTBASE + 20)
-#define _gloffset_ResetHistogramEXT (_EXTBASE + 21)
-#define _gloffset_ResetMinmaxEXT (_EXTBASE + 22)
-
-/* 12. GL_EXT_convolution */
-#define _gloffset_ConvolutionFilter1DEXT (_EXTBASE + 23)
-#define _gloffset_ConvolutionFilter2DEXT (_EXTBASE + 24)
-#define _gloffset_ConvolutionParameterfEXT (_EXTBASE + 25)
-#define _gloffset_ConvolutionParameterfvEXT (_EXTBASE + 26)
-#define _gloffset_ConvolutionParameteriEXT (_EXTBASE + 27)
-#define _gloffset_ConvolutionParameterivEXT (_EXTBASE + 28)
-#define _gloffset_CopyConvolutionFilter1DEXT (_EXTBASE + 29)
-#define _gloffset_CopyConvolutionFilter2DEXT (_EXTBASE + 30)
-#define _gloffset_GetConvolutionFilterEXT (_EXTBASE + 31)
-#define _gloffset_GetConvolutionParameterivEXT (_EXTBASE + 32)
-#define _gloffset_GetConvolutionParameterfvEXT (_EXTBASE + 33)
-#define _gloffset_GetSeparableFilterEXT (_EXTBASE + 34)
-#define _gloffset_SeparableFilter2DEXT (_EXTBASE + 35)
-
-/* 13. GL_SGI_color_matrix - no functions */
-
-/* 14. GL_SGI_color_table */
-#define _gloffset_ColorTableSGI (_EXTBASE + 36)
-#define _gloffset_ColorTableParameterfvSGI (_EXTBASE + 37)
-#define _gloffset_ColorTableParameterivSGI (_EXTBASE + 38)
-#define _gloffset_CopyColorTableSGI (_EXTBASE + 39)
-#define _gloffset_GetColorTableSGI (_EXTBASE + 40)
-#define _gloffset_GetColorTableParameterfvSGI (_EXTBASE + 41)
-#define _gloffset_GetColorTableParameterivSGI (_EXTBASE + 42)
-
-/* 15. GL_SGIS_pixel_texture */
-#define _gloffset_PixelTexGenParameterfSGIS (_EXTBASE + 43)
-#define _gloffset_PixelTexGenParameteriSGIS (_EXTBASE + 44)
-#define _gloffset_GetPixelTexGenParameterfvSGIS (_EXTBASE + 45)
-#define _gloffset_GetPixelTexGenParameterivSGIS (_EXTBASE + 46)
-
-/* 16. GL_SGIS_texture4D */
-#define _gloffset_TexImage4DSGIS (_EXTBASE + 47)
-#define _gloffset_TexSubImage4DSGIS (_EXTBASE + 48)
-
-/* 17. GL_SGI_texture_color_table - no functions */
-
-/* 18. GL_EXT_cmyka - no functions */
-
-/* 19. ??? */
-
-/* 20. GL_EXT_texture_object */
-#define _gloffset_AreTexturesResidentEXT (_EXTBASE + 49)
-#define _gloffset_BindTextureEXT (_EXTBASE + 50)
-#define _gloffset_DeleteTexturesEXT (_EXTBASE + 51)
-#define _gloffset_GenTexturesEXT (_EXTBASE + 52)
-#define _gloffset_IsTextureEXT (_EXTBASE + 53)
-#define _gloffset_PrioritizeTexturesEXT (_EXTBASE + 54)
-
-/* 21. GL_SGIS_detail_texture */
-#define _gloffset_DetailTexFuncSGIS (_EXTBASE + 55)
-#define _gloffset_GetDetailTexFuncSGIS (_EXTBASE + 56)
-
-/* 22. GL_SGIS_sharpen_texture */
-#define _gloffset_GetSharpenTexFuncSGIS (_EXTBASE + 57)
-#define _gloffset_SharpenTexFuncSGIS (_EXTBASE + 58)
-
-/* 23. GL_EXT_packed_pixels - no functions */
-
-/* 24. GL_SGIS_texture_lod - no functions */
-
-/* 25. GL_SGIS_multisample */
-#define _gloffset_SampleMaskSGIS (_EXTBASE + 54)
-#define _gloffset_SamplePatternSGIS (_EXTBASE + 55)
-
-/* 26. ??? */
-
-/* 27. GL_EXT_rescale_normal - no functions */
-
-/* 28. GLX_EXT_visual_info - no functions */
-
-/* 29. ??? */
-
-/* 30. GL_EXT_vertex_array */
-#define _gloffset_ArrayElementEXT (_EXTBASE + 56)
-#define _gloffset_ColorPointerEXT (_EXTBASE + 57)
-#define _gloffset_DrawArraysEXT (_EXTBASE + 58)
-#define _gloffset_EdgeFlagPointerEXT (_EXTBASE + 59)
-#define _gloffset_GetPointervEXT (_EXTBASE + 60)
-#define _gloffset_IndexPointerEXT (_EXTBASE + 61)
-#define _gloffset_NormalPointerEXT (_EXTBASE + 62)
-#define _gloffset_TexCoordPointerEXT (_EXTBASE + 63)
-#define _gloffset_VertexPointerEXT (_EXTBASE + 64)
-
-/* 31. GL_EXT_misc_attribute - no functions */
-
-/* 32. GL_SGIS_generate_mipmap - no functions */
-
-/* 33. GL_SGIX_clipmap - no functions */
-
-/* 34. GL_SGIX_shadow - no functions */
-
-/* 35. GL_SGIS_texture_edge_clamp - no functions */
-
-/* 36. GL_SGIS_texture_border_clamp - no functions */
-
-/* 37. GL_EXT_blend_minmax */
-#define _gloffset_BlendEquationEXT (_EXTBASE + 65)
-
-/* 38. GL_EXT_blend_subtract - no functions */
-
-/* 39. GL_EXT_blend_logic_op - no functions */
-
-/* 40. GLX_SGI_swap_control - GLX functions */
-
-/* 41. GLX_SGI_video_sync - GLX functions */
-
-/* 42. GLX_SGI_make_current_read - GLX functions */
-
-/* 43. GLX_SGIX_video_source - GLX functions */
-
-/* 44. GLX_EXT_visual_rating - no functions */
-
-/* 45. GL_SGIX_interlace - no functions */
-
-/* 46. ??? */
-
-/* 47. GLX_EXT_import_context - GLX functions */
-
-/* 48. ??? */
-
-/* 49. GLX_SGIX_fbconfig - some GLX functions */
-
-/* 50. GLX_SGIX_pbuffer - GLX functions */
-
-/* 51. GL_SGIS_texture_select - no functions */
-
-/* 52. GL_SGIX_sprite */
-#define _gloffset_SpriteParameterfSGIX (_EXTBASE + 66)
-#define _gloffset_SpriteParameterfvSGIX (_EXTBASE + 67)
-#define _gloffset_SpriteParameteriSGIX (_EXTBASE + 68)
-#define _gloffset_SpriteParameterivSGIX (_EXTBASE + 69)
-
-/* 53. ??? */
-
-/* 54. GL_EXT_point_parameters */
-#define _gloffset_PointParameterfEXT (_EXTBASE + 70)
-#define _gloffset_PointParameterfvEXT (_EXTBASE + 71)
-
-/* 55. GL_SGIX_instruments */
-#define _gloffset_InstrumentsBufferSGIX (_EXTBASE + 72)
-#define _gloffset_StartInstrumentsSGIX (_EXTBASE + 73)
-#define _gloffset_StopInstrumentsSGIX (_EXTBASE + 74)
-#define _gloffset_ReadInstrumentsSGIX (_EXTBASE + 75)
-#define _gloffset_PollInstrumentsSGIX (_EXTBASE + 76)
-#define _gloffset_GetInstrumentsSGIX (_EXTBASE + 77)
-
-/* 56. GL_SGIX_texture_scale_bias - no functions */
-
-/* 57. GL_SGIX_framezoom */
-#define _gloffset_FrameZoomSGIX (_EXTBASE + 78)
-
-/* 58. GL_SGIX_tag_sample_buffer - no functions */
-
-/* 59. ??? */
-
-/* 60. GL_SGIX_reference_plane */
-#define _gloffset_ReferencePlaneSGIX (_EXTBASE + 79)
-
-/* 61. GL_SGIX_flush_raster */
-#define _gloffset_FlushRasterSGIX (_EXTBASE + 80)
-
-/* 62. GLX_SGI_cushion - GLX functions */
-
-/* 63. GL_SGIX_depth_texture - no functions */
-
-/* 64. ??? */
-
-/* 65. GL_SGIX_fog_offset - no functions */
-
-/* 66. GL_HP_image_transform */
-#define _gloffset_GetImageTransformParameterfvHP (_EXTBASE + 81)
-#define _gloffset_GetImageTransformParameterivHP (_EXTBASE + 82)
-#define _gloffset_ImageTransformParameterfHP (_EXTBASE + 83)
-#define _gloffset_ImageTransformParameterfvHP (_EXTBASE + 84)
-#define _gloffset_ImageTransformParameteriHP (_EXTBASE + 85)
-#define _gloffset_ImageTransformParameterivHP (_EXTBASE + 86)
-
-/* 67. GL_HP_convolution_border_modes - no functions */
-
-/* 68. ??? */
-
-/* 69. GL_SGIX_texture_add_env - no functions */
-
-/* 70. ??? */
-
-/* 71. ??? */
-
-/* 72. ??? */
-
-/* 73. ??? */
-
-/* 74. GL_EXT_color_subtable */
-#define _gloffset_ColorSubTableEXT (_EXTBASE + 87)
-#define _gloffset_CopyColorSubTableEXT (_EXTBASE + 88)
-
-/* 75. GLU_EXT_object_space_tess - GLU functions */
-
-/* 76. GL_PGI_vertex_hints - no functions */
-
-/* 77. GL_PGI_misc_hints */
-#define _gloffset_HintPGI (_EXTBASE + 89)
-
-/* 78. GL_EXT_paletted_texture */
-/* ColorSubTableEXT already defined */
-#define _gloffset_ColorTableEXT (_EXTBASE + 91)
-#define _gloffset_GetColorTableEXT (_EXTBASE + 92)
-#define _gloffset_GetColorTableParameterfvEXT (_EXTBASE + 93)
-#define _gloffset_GetColorTableParameterivEXT (_EXTBASE + 94)
-
-/* 79. GL_EXT_clip_volume_hint - no functions */
-
-/* 80. GL_SGIX_list_priority */
-#define _gloffset_GetListParameterfvSGIX (_EXTBASE + 95)
-#define _gloffset_GetListParameterivSGIX (_EXTBASE + 96)
-#define _gloffset_ListParameterfSGIX (_EXTBASE + 97)
-#define _gloffset_ListParameterfvSGIX (_EXTBASE + 98)
-#define _gloffset_ListParameteriSGIX (_EXTBASE + 99)
-#define _gloffset_ListParameterivSGIX (_EXTBASE + 100)
-
-/* 81. GL_SGIX_ir_instrument1 - no functions */
-
-/* 82. ??? */
-
-/* 83. GLX_SGIX_video_resize - GLX functions */
-
-/* 84. GL_SGIX_texture_lod_bias - no functions */
-
-/* 85. GLU_SGI_filter4_parameters - GLU functions */
-
-/* 86. GLX_SGIX_dm_buffer - GLX functions */
-
-/* 87. ??? */
-
-/* 88. ??? */
-
-/* 89. ??? */
-
-/* 90. ??? */
-
-/* 91. GLX_SGIX_swap_group - GLX functions */
-
-/* 92. GLX_SGIX_swap_barrier - GLX functions */
-
-/* 93. GL_EXT_index_texture - no functions */
-
-/* 94. GL_EXT_index_material */
-#define _gloffset_IndexMaterialEXT (_EXTBASE + 101)
-
-/* 95. GL_EXT_index_func */
-#define _gloffset_IndexFuncEXT (_EXTBASE + 102)
-
-/* 96. GL_EXT_index_array_formats - no functions */
-
-/* 97. GL_EXT_compiled_vertex_array */
-#define _gloffset_LockArraysEXT (_EXTBASE + 103)
-#define _gloffset_UnlockArraysEXT (_EXTBASE + 104)
-
-/* 98. GL_EXT_cull_vertex */
-#define _gloffset_CullParameterfvEXT (_EXTBASE + 105)
-#define _gloffset_CullParameterdvEXT (_EXTBASE + 106)
-
-/* 99. ??? */
-
-/* 100. GLU_EXT_nurbs_tessellator - GLU functions */
-
-/* 173. GL_EXT/INGR_blend_func_separate */
-#define _gloffset_BlendFuncSeparateINGR (_EXTBASE + 107)
-
-/* GL_MESA_window_pos */
-#define _gloffset_WindowPos2dMESA (_EXTBASE + 108)
-#define _gloffset_WindowPos2dvMESA (_EXTBASE + 109)
-#define _gloffset_WindowPos2fMESA (_EXTBASE + 110)
-#define _gloffset_WindowPos2fvMESA (_EXTBASE + 111)
-#define _gloffset_WindowPos2iMESA (_EXTBASE + 112)
-#define _gloffset_WindowPos2ivMESA (_EXTBASE + 113)
-#define _gloffset_WindowPos2sMESA (_EXTBASE + 114)
-#define _gloffset_WindowPos2svMESA (_EXTBASE + 115)
-#define _gloffset_WindowPos3dMESA (_EXTBASE + 116)
-#define _gloffset_WindowPos3dvMESA (_EXTBASE + 117)
-#define _gloffset_WindowPos3fMESA (_EXTBASE + 118)
-#define _gloffset_WindowPos3fvMESA (_EXTBASE + 119)
-#define _gloffset_WindowPos3iMESA (_EXTBASE + 120)
-#define _gloffset_WindowPos3ivMESA (_EXTBASE + 121)
-#define _gloffset_WindowPos3sMESA (_EXTBASE + 122)
-#define _gloffset_WindowPos3svMESA (_EXTBASE + 123)
-#define _gloffset_WindowPos4dMESA (_EXTBASE + 124)
-#define _gloffset_WindowPos4dvMESA (_EXTBASE + 125)
-#define _gloffset_WindowPos4fMESA (_EXTBASE + 126)
-#define _gloffset_WindowPos4fvMESA (_EXTBASE + 127)
-#define _gloffset_WindowPos4iMESA (_EXTBASE + 128)
-#define _gloffset_WindowPos4ivMESA (_EXTBASE + 129)
-#define _gloffset_WindowPos4sMESA (_EXTBASE + 130)
-#define _gloffset_WindowPos4svMESA (_EXTBASE + 131)
-
-/* GL_MESA_resize_buffers */
-#define _gloffset_ResizeBuffersMESA (_EXTBASE + 132)
-
-/* GL_ARB_transpose_matrix */
-#define _gloffset_LoadTransposeMatrixdARB (_EXTBASE + 133)
-#define _gloffset_LoadTransposeMatrixfARB (_EXTBASE + 134)
-#define _gloffset_MultTransposeMatrixdARB (_EXTBASE + 135)
-#define _gloffset_MultTransposeMatrixfARB (_EXTBASE + 136)
-
-
+/* DO NOT EDIT - This file generated automatically */
+#ifndef _GLAPI_OFFSETS_H_
+#define _GLAPI_OFFSETS_H_
+
+#define _gloffset_NewList 0
+#define _gloffset_EndList 1
+#define _gloffset_CallList 2
+#define _gloffset_CallLists 3
+#define _gloffset_DeleteLists 4
+#define _gloffset_GenLists 5
+#define _gloffset_ListBase 6
+#define _gloffset_Begin 7
+#define _gloffset_Bitmap 8
+#define _gloffset_Color3b 9
+#define _gloffset_Color3bv 10
+#define _gloffset_Color3d 11
+#define _gloffset_Color3dv 12
+#define _gloffset_Color3f 13
+#define _gloffset_Color3fv 14
+#define _gloffset_Color3i 15
+#define _gloffset_Color3iv 16
+#define _gloffset_Color3s 17
+#define _gloffset_Color3sv 18
+#define _gloffset_Color3ub 19
+#define _gloffset_Color3ubv 20
+#define _gloffset_Color3ui 21
+#define _gloffset_Color3uiv 22
+#define _gloffset_Color3us 23
+#define _gloffset_Color3usv 24
+#define _gloffset_Color4b 25
+#define _gloffset_Color4bv 26
+#define _gloffset_Color4d 27
+#define _gloffset_Color4dv 28
+#define _gloffset_Color4f 29
+#define _gloffset_Color4fv 30
+#define _gloffset_Color4i 31
+#define _gloffset_Color4iv 32
+#define _gloffset_Color4s 33
+#define _gloffset_Color4sv 34
+#define _gloffset_Color4ub 35
+#define _gloffset_Color4ubv 36
+#define _gloffset_Color4ui 37
+#define _gloffset_Color4uiv 38
+#define _gloffset_Color4us 39
+#define _gloffset_Color4usv 40
+#define _gloffset_EdgeFlag 41
+#define _gloffset_EdgeFlagv 42
+#define _gloffset_End 43
+#define _gloffset_Indexd 44
+#define _gloffset_Indexdv 45
+#define _gloffset_Indexf 46
+#define _gloffset_Indexfv 47
+#define _gloffset_Indexi 48
+#define _gloffset_Indexiv 49
+#define _gloffset_Indexs 50
+#define _gloffset_Indexsv 51
+#define _gloffset_Normal3b 52
+#define _gloffset_Normal3bv 53
+#define _gloffset_Normal3d 54
+#define _gloffset_Normal3dv 55
+#define _gloffset_Normal3f 56
+#define _gloffset_Normal3fv 57
+#define _gloffset_Normal3i 58
+#define _gloffset_Normal3iv 59
+#define _gloffset_Normal3s 60
+#define _gloffset_Normal3sv 61
+#define _gloffset_RasterPos2d 62
+#define _gloffset_RasterPos2dv 63
+#define _gloffset_RasterPos2f 64
+#define _gloffset_RasterPos2fv 65
+#define _gloffset_RasterPos2i 66
+#define _gloffset_RasterPos2iv 67
+#define _gloffset_RasterPos2s 68
+#define _gloffset_RasterPos2sv 69
+#define _gloffset_RasterPos3d 70
+#define _gloffset_RasterPos3dv 71
+#define _gloffset_RasterPos3f 72
+#define _gloffset_RasterPos3fv 73
+#define _gloffset_RasterPos3i 74
+#define _gloffset_RasterPos3iv 75
+#define _gloffset_RasterPos3s 76
+#define _gloffset_RasterPos3sv 77
+#define _gloffset_RasterPos4d 78
+#define _gloffset_RasterPos4dv 79
+#define _gloffset_RasterPos4f 80
+#define _gloffset_RasterPos4fv 81
+#define _gloffset_RasterPos4i 82
+#define _gloffset_RasterPos4iv 83
+#define _gloffset_RasterPos4s 84
+#define _gloffset_RasterPos4sv 85
+#define _gloffset_Rectd 86
+#define _gloffset_Rectdv 87
+#define _gloffset_Rectf 88
+#define _gloffset_Rectfv 89
+#define _gloffset_Recti 90
+#define _gloffset_Rectiv 91
+#define _gloffset_Rects 92
+#define _gloffset_Rectsv 93
+#define _gloffset_TexCoord1d 94
+#define _gloffset_TexCoord1dv 95
+#define _gloffset_TexCoord1f 96
+#define _gloffset_TexCoord1fv 97
+#define _gloffset_TexCoord1i 98
+#define _gloffset_TexCoord1iv 99
+#define _gloffset_TexCoord1s 100
+#define _gloffset_TexCoord1sv 101
+#define _gloffset_TexCoord2d 102
+#define _gloffset_TexCoord2dv 103
+#define _gloffset_TexCoord2f 104
+#define _gloffset_TexCoord2fv 105
+#define _gloffset_TexCoord2i 106
+#define _gloffset_TexCoord2iv 107
+#define _gloffset_TexCoord2s 108
+#define _gloffset_TexCoord2sv 109
+#define _gloffset_TexCoord3d 110
+#define _gloffset_TexCoord3dv 111
+#define _gloffset_TexCoord3f 112
+#define _gloffset_TexCoord3fv 113
+#define _gloffset_TexCoord3i 114
+#define _gloffset_TexCoord3iv 115
+#define _gloffset_TexCoord3s 116
+#define _gloffset_TexCoord3sv 117
+#define _gloffset_TexCoord4d 118
+#define _gloffset_TexCoord4dv 119
+#define _gloffset_TexCoord4f 120
+#define _gloffset_TexCoord4fv 121
+#define _gloffset_TexCoord4i 122
+#define _gloffset_TexCoord4iv 123
+#define _gloffset_TexCoord4s 124
+#define _gloffset_TexCoord4sv 125
+#define _gloffset_Vertex2d 126
+#define _gloffset_Vertex2dv 127
+#define _gloffset_Vertex2f 128
+#define _gloffset_Vertex2fv 129
+#define _gloffset_Vertex2i 130
+#define _gloffset_Vertex2iv 131
+#define _gloffset_Vertex2s 132
+#define _gloffset_Vertex2sv 133
+#define _gloffset_Vertex3d 134
+#define _gloffset_Vertex3dv 135
+#define _gloffset_Vertex3f 136
+#define _gloffset_Vertex3fv 137
+#define _gloffset_Vertex3i 138
+#define _gloffset_Vertex3iv 139
+#define _gloffset_Vertex3s 140
+#define _gloffset_Vertex3sv 141
+#define _gloffset_Vertex4d 142
+#define _gloffset_Vertex4dv 143
+#define _gloffset_Vertex4f 144
+#define _gloffset_Vertex4fv 145
+#define _gloffset_Vertex4i 146
+#define _gloffset_Vertex4iv 147
+#define _gloffset_Vertex4s 148
+#define _gloffset_Vertex4sv 149
+#define _gloffset_ClipPlane 150
+#define _gloffset_ColorMaterial 151
+#define _gloffset_CullFace 152
+#define _gloffset_Fogf 153
+#define _gloffset_Fogfv 154
+#define _gloffset_Fogi 155
+#define _gloffset_Fogiv 156
+#define _gloffset_FrontFace 157
+#define _gloffset_Hint 158
+#define _gloffset_Lightf 159
+#define _gloffset_Lightfv 160
+#define _gloffset_Lighti 161
+#define _gloffset_Lightiv 162
+#define _gloffset_LightModelf 163
+#define _gloffset_LightModelfv 164
+#define _gloffset_LightModeli 165
+#define _gloffset_LightModeliv 166
+#define _gloffset_LineStipple 167
+#define _gloffset_LineWidth 168
+#define _gloffset_Materialf 169
+#define _gloffset_Materialfv 170
+#define _gloffset_Materiali 171
+#define _gloffset_Materialiv 172
+#define _gloffset_PointSize 173
+#define _gloffset_PolygonMode 174
+#define _gloffset_PolygonStipple 175
+#define _gloffset_Scissor 176
+#define _gloffset_ShadeModel 177
+#define _gloffset_TexParameterf 178
+#define _gloffset_TexParameterfv 179
+#define _gloffset_TexParameteri 180
+#define _gloffset_TexParameteriv 181
+#define _gloffset_TexImage1D 182
+#define _gloffset_TexImage2D 183
+#define _gloffset_TexEnvf 184
+#define _gloffset_TexEnvfv 185
+#define _gloffset_TexEnvi 186
+#define _gloffset_TexEnviv 187
+#define _gloffset_TexGend 188
+#define _gloffset_TexGendv 189
+#define _gloffset_TexGenf 190
+#define _gloffset_TexGenfv 191
+#define _gloffset_TexGeni 192
+#define _gloffset_TexGeniv 193
+#define _gloffset_FeedbackBuffer 194
+#define _gloffset_SelectBuffer 195
+#define _gloffset_RenderMode 196
+#define _gloffset_InitNames 197
+#define _gloffset_LoadName 198
+#define _gloffset_PassThrough 199
+#define _gloffset_PopName 200
+#define _gloffset_PushName 201
+#define _gloffset_DrawBuffer 202
+#define _gloffset_Clear 203
+#define _gloffset_ClearAccum 204
+#define _gloffset_ClearIndex 205
+#define _gloffset_ClearColor 206
+#define _gloffset_ClearStencil 207
+#define _gloffset_ClearDepth 208
+#define _gloffset_StencilMask 209
+#define _gloffset_ColorMask 210
+#define _gloffset_DepthMask 211
+#define _gloffset_IndexMask 212
+#define _gloffset_Accum 213
+#define _gloffset_Disable 214
+#define _gloffset_Enable 215
+#define _gloffset_Finish 216
+#define _gloffset_Flush 217
+#define _gloffset_PopAttrib 218
+#define _gloffset_PushAttrib 219
+#define _gloffset_Map1d 220
+#define _gloffset_Map1f 221
+#define _gloffset_Map2d 222
+#define _gloffset_Map2f 223
+#define _gloffset_MapGrid1d 224
+#define _gloffset_MapGrid1f 225
+#define _gloffset_MapGrid2d 226
+#define _gloffset_MapGrid2f 227
+#define _gloffset_EvalCoord1d 228
+#define _gloffset_EvalCoord1dv 229
+#define _gloffset_EvalCoord1f 230
+#define _gloffset_EvalCoord1fv 231
+#define _gloffset_EvalCoord2d 232
+#define _gloffset_EvalCoord2dv 233
+#define _gloffset_EvalCoord2f 234
+#define _gloffset_EvalCoord2fv 235
+#define _gloffset_EvalMesh1 236
+#define _gloffset_EvalPoint1 237
+#define _gloffset_EvalMesh2 238
+#define _gloffset_EvalPoint2 239
+#define _gloffset_AlphaFunc 240
+#define _gloffset_BlendFunc 241
+#define _gloffset_LogicOp 242
+#define _gloffset_StencilFunc 243
+#define _gloffset_StencilOp 244
+#define _gloffset_DepthFunc 245
+#define _gloffset_PixelZoom 246
+#define _gloffset_PixelTransferf 247
+#define _gloffset_PixelTransferi 248
+#define _gloffset_PixelStoref 249
+#define _gloffset_PixelStorei 250
+#define _gloffset_PixelMapfv 251
+#define _gloffset_PixelMapuiv 252
+#define _gloffset_PixelMapusv 253
+#define _gloffset_ReadBuffer 254
+#define _gloffset_CopyPixels 255
+#define _gloffset_ReadPixels 256
+#define _gloffset_DrawPixels 257
+#define _gloffset_GetBooleanv 258
+#define _gloffset_GetClipPlane 259
+#define _gloffset_GetDoublev 260
+#define _gloffset_GetError 261
+#define _gloffset_GetFloatv 262
+#define _gloffset_GetIntegerv 263
+#define _gloffset_GetLightfv 264
+#define _gloffset_GetLightiv 265
+#define _gloffset_GetMapdv 266
+#define _gloffset_GetMapfv 267
+#define _gloffset_GetMapiv 268
+#define _gloffset_GetMaterialfv 269
+#define _gloffset_GetMaterialiv 270
+#define _gloffset_GetPixelMapfv 271
+#define _gloffset_GetPixelMapuiv 272
+#define _gloffset_GetPixelMapusv 273
+#define _gloffset_GetPolygonStipple 274
+#define _gloffset_GetString 275
+#define _gloffset_GetTexEnvfv 276
+#define _gloffset_GetTexEnviv 277
+#define _gloffset_GetTexGendv 278
+#define _gloffset_GetTexGenfv 279
+#define _gloffset_GetTexGeniv 280
+#define _gloffset_GetTexImage 281
+#define _gloffset_GetTexParameterfv 282
+#define _gloffset_GetTexParameteriv 283
+#define _gloffset_GetTexLevelParameterfv 284
+#define _gloffset_GetTexLevelParameteriv 285
+#define _gloffset_IsEnabled 286
+#define _gloffset_IsList 287
+#define _gloffset_DepthRange 288
+#define _gloffset_Frustum 289
+#define _gloffset_LoadIdentity 290
+#define _gloffset_LoadMatrixf 291
+#define _gloffset_LoadMatrixd 292
+#define _gloffset_MatrixMode 293
+#define _gloffset_MultMatrixf 294
+#define _gloffset_MultMatrixd 295
+#define _gloffset_Ortho 296
+#define _gloffset_PopMatrix 297
+#define _gloffset_PushMatrix 298
+#define _gloffset_Rotated 299
+#define _gloffset_Rotatef 300
+#define _gloffset_Scaled 301
+#define _gloffset_Scalef 302
+#define _gloffset_Translated 303
+#define _gloffset_Translatef 304
+#define _gloffset_Viewport 305
+#define _gloffset_ArrayElement 306
+#define _gloffset_BindTexture 307
+#define _gloffset_ColorPointer 308
+#define _gloffset_DisableClientState 309
+#define _gloffset_DrawArrays 310
+#define _gloffset_DrawElements 311
+#define _gloffset_EdgeFlagPointer 312
+#define _gloffset_EnableClientState 313
+#define _gloffset_IndexPointer 314
+#define _gloffset_Indexub 315
+#define _gloffset_Indexubv 316
+#define _gloffset_InterleavedArrays 317
+#define _gloffset_NormalPointer 318
+#define _gloffset_PolygonOffset 319
+#define _gloffset_TexCoordPointer 320
+#define _gloffset_VertexPointer 321
+#define _gloffset_AreTexturesResident 322
+#define _gloffset_CopyTexImage1D 323
+#define _gloffset_CopyTexImage2D 324
+#define _gloffset_CopyTexSubImage1D 325
+#define _gloffset_CopyTexSubImage2D 326
+#define _gloffset_DeleteTextures 327
+#define _gloffset_GenTextures 328
+#define _gloffset_GetPointerv 329
+#define _gloffset_IsTexture 330
+#define _gloffset_PrioritizeTextures 331
+#define _gloffset_TexSubImage1D 332
+#define _gloffset_TexSubImage2D 333
+#define _gloffset_PopClientAttrib 334
+#define _gloffset_PushClientAttrib 335
+#define _gloffset_BlendColor 336
+#define _gloffset_BlendEquation 337
+#define _gloffset_DrawRangeElements 338
+#define _gloffset_ColorTable 339
+#define _gloffset_ColorTableParameterfv 340
+#define _gloffset_ColorTableParameteriv 341
+#define _gloffset_CopyColorTable 342
+#define _gloffset_GetColorTable 343
+#define _gloffset_GetColorTableParameterfv 344
+#define _gloffset_GetColorTableParameteriv 345
+#define _gloffset_ColorSubTable 346
+#define _gloffset_CopyColorSubTable 347
+#define _gloffset_ConvolutionFilter1D 348
+#define _gloffset_ConvolutionFilter2D 349
+#define _gloffset_ConvolutionParameterf 350
+#define _gloffset_ConvolutionParameterfv 351
+#define _gloffset_ConvolutionParameteri 352
+#define _gloffset_ConvolutionParameteriv 353
+#define _gloffset_CopyConvolutionFilter1D 354
+#define _gloffset_CopyConvolutionFilter2D 355
+#define _gloffset_GetConvolutionFilter 356
+#define _gloffset_GetConvolutionParameterfv 357
+#define _gloffset_GetConvolutionParameteriv 358
+#define _gloffset_GetSeparableFilter 359
+#define _gloffset_SeparableFilter2D 360
+#define _gloffset_GetHistogram 361
+#define _gloffset_GetHistogramParameterfv 362
+#define _gloffset_GetHistogramParameteriv 363
+#define _gloffset_GetMinmax 364
+#define _gloffset_GetMinmaxParameterfv 365
+#define _gloffset_GetMinmaxParameteriv 366
+#define _gloffset_Histogram 367
+#define _gloffset_Minmax 368
+#define _gloffset_ResetHistogram 369
+#define _gloffset_ResetMinmax 370
+#define _gloffset_TexImage3D 371
+#define _gloffset_TexSubImage3D 372
+#define _gloffset_CopyTexSubImage3D 373
+#define _gloffset_ActiveTextureARB 374
+#define _gloffset_ClientActiveTextureARB 375
+#define _gloffset_MultiTexCoord1dARB 376
+#define _gloffset_MultiTexCoord1dvARB 377
+#define _gloffset_MultiTexCoord1fARB 378
+#define _gloffset_MultiTexCoord1fvARB 379
+#define _gloffset_MultiTexCoord1iARB 380
+#define _gloffset_MultiTexCoord1ivARB 381
+#define _gloffset_MultiTexCoord1sARB 382
+#define _gloffset_MultiTexCoord1svARB 383
+#define _gloffset_MultiTexCoord2dARB 384
+#define _gloffset_MultiTexCoord2dvARB 385
+#define _gloffset_MultiTexCoord2fARB 386
+#define _gloffset_MultiTexCoord2fvARB 387
+#define _gloffset_MultiTexCoord2iARB 388
+#define _gloffset_MultiTexCoord2ivARB 389
+#define _gloffset_MultiTexCoord2sARB 390
+#define _gloffset_MultiTexCoord2svARB 391
+#define _gloffset_MultiTexCoord3dARB 392
+#define _gloffset_MultiTexCoord3dvARB 393
+#define _gloffset_MultiTexCoord3fARB 394
+#define _gloffset_MultiTexCoord3fvARB 395
+#define _gloffset_MultiTexCoord3iARB 396
+#define _gloffset_MultiTexCoord3ivARB 397
+#define _gloffset_MultiTexCoord3sARB 398
+#define _gloffset_MultiTexCoord3svARB 399
+#define _gloffset_MultiTexCoord4dARB 400
+#define _gloffset_MultiTexCoord4dvARB 401
+#define _gloffset_MultiTexCoord4fARB 402
+#define _gloffset_MultiTexCoord4fvARB 403
+#define _gloffset_MultiTexCoord4iARB 404
+#define _gloffset_MultiTexCoord4ivARB 405
+#define _gloffset_MultiTexCoord4sARB 406
+#define _gloffset_MultiTexCoord4svARB 407
+#define _gloffset_LoadTransposeMatrixfARB 408
+#define _gloffset_LoadTransposeMatrixdARB 409
+#define _gloffset_MultTransposeMatrixfARB 410
+#define _gloffset_MultTransposeMatrixdARB 411
+#define _gloffset_SampleCoverageARB 412
+#define _gloffset_SamplePassARB 413
+#define _gloffset_PolygonOffsetEXT 414
+#define _gloffset_GetTexFilterFuncSGIS 415
+#define _gloffset_TexFilterFuncSGIS 416
+#define _gloffset_GetHistogramEXT 417
+#define _gloffset_GetHistogramParameterfvEXT 418
+#define _gloffset_GetHistogramParameterivEXT 419
+#define _gloffset_GetMinmaxEXT 420
+#define _gloffset_GetMinmaxParameterfvEXT 421
+#define _gloffset_GetMinmaxParameterivEXT 422
+#define _gloffset_GetConvolutionFilterEXT 423
+#define _gloffset_GetConvolutionParameterfvEXT 424
+#define _gloffset_GetConvolutionParameterivEXT 425
+#define _gloffset_GetSeparableFilterEXT 426
+#define _gloffset_GetColorTableSGI 427
+#define _gloffset_GetColorTableParameterfvSGI 428
+#define _gloffset_GetColorTableParameterivSGI 429
+#define _gloffset_PixelTexGenSGIX 430
+#define _gloffset_PixelTexGenParameteriSGIS 431
+#define _gloffset_PixelTexGenParameterivSGIS 432
+#define _gloffset_PixelTexGenParameterfSGIS 433
+#define _gloffset_PixelTexGenParameterfvSGIS 434
+#define _gloffset_GetPixelTexGenParameterivSGIS 435
+#define _gloffset_GetPixelTexGenParameterfvSGIS 436
+#define _gloffset_TexImage4DSGIS 437
+#define _gloffset_TexSubImage4DSGIS 438
+#define _gloffset_AreTexturesResidentEXT 439
+#define _gloffset_GenTexturesEXT 440
+#define _gloffset_IsTextureEXT 441
+#define _gloffset_DetailTexFuncSGIS 442
+#define _gloffset_GetDetailTexFuncSGIS 443
+#define _gloffset_SharpenTexFuncSGIS 444
+#define _gloffset_GetSharpenTexFuncSGIS 445
+#define _gloffset_SampleMaskSGIS 446
+#define _gloffset_SamplePatternSGIS 447
+#define _gloffset_ColorPointerEXT 448
+#define _gloffset_EdgeFlagPointerEXT 449
+#define _gloffset_IndexPointerEXT 450
+#define _gloffset_NormalPointerEXT 451
+#define _gloffset_TexCoordPointerEXT 452
+#define _gloffset_VertexPointerEXT 453
+#define _gloffset_SpriteParameterfSGIX 454
+#define _gloffset_SpriteParameterfvSGIX 455
+#define _gloffset_SpriteParameteriSGIX 456
+#define _gloffset_SpriteParameterivSGIX 457
+#define _gloffset_PointParameterfEXT 458
+#define _gloffset_PointParameterfvEXT 459
+#define _gloffset_GetInstrumentsSGIX 460
+#define _gloffset_InstrumentsBufferSGIX 461
+#define _gloffset_PollInstrumentsSGIX 462
+#define _gloffset_ReadInstrumentsSGIX 463
+#define _gloffset_StartInstrumentsSGIX 464
+#define _gloffset_StopInstrumentsSGIX 465
+#define _gloffset_FrameZoomSGIX 466
+#define _gloffset_TagSampleBufferSGIX 467
+#define _gloffset_ReferencePlaneSGIX 468
+#define _gloffset_FlushRasterSGIX 469
+#define _gloffset_GetListParameterfvSGIX 470
+#define _gloffset_GetListParameterivSGIX 471
+#define _gloffset_ListParameterfSGIX 472
+#define _gloffset_ListParameterfvSGIX 473
+#define _gloffset_ListParameteriSGIX 474
+#define _gloffset_ListParameterivSGIX 475
+#define _gloffset_FragmentColorMaterialSGIX 476
+#define _gloffset_FragmentLightfSGIX 477
+#define _gloffset_FragmentLightfvSGIX 478
+#define _gloffset_FragmentLightiSGIX 479
+#define _gloffset_FragmentLightivSGIX 480
+#define _gloffset_FragmentLightModelfSGIX 481
+#define _gloffset_FragmentLightModelfvSGIX 482
+#define _gloffset_FragmentLightModeliSGIX 483
+#define _gloffset_FragmentLightModelivSGIX 484
+#define _gloffset_FragmentMaterialfSGIX 485
+#define _gloffset_FragmentMaterialfvSGIX 486
+#define _gloffset_FragmentMaterialiSGIX 487
+#define _gloffset_FragmentMaterialivSGIX 488
+#define _gloffset_GetFragmentLightfvSGIX 489
+#define _gloffset_GetFragmentLightivSGIX 490
+#define _gloffset_GetFragmentMaterialfvSGIX 491
+#define _gloffset_GetFragmentMaterialivSGIX 492
+#define _gloffset_LightEnviSGIX 493
+#define _gloffset_VertexWeightfEXT 494
+#define _gloffset_VertexWeightfvEXT 495
+#define _gloffset_VertexWeightPointerEXT 496
+#define _gloffset_FlushVertexArrayRangeNV 497
+#define _gloffset_VertexArrayRangeNV 498
+#define _gloffset_CombinerParameterfvNV 499
+#define _gloffset_CombinerParameterfNV 500
+#define _gloffset_CombinerParameterivNV 501
+#define _gloffset_CombinerParameteriNV 502
+#define _gloffset_CombinerInputNV 503
+#define _gloffset_CombinerOutputNV 504
+#define _gloffset_FinalCombinerInputNV 505
+#define _gloffset_GetCombinerInputParameterfvNV 506
+#define _gloffset_GetCombinerInputParameterivNV 507
+#define _gloffset_GetCombinerOutputParameterfvNV 508
+#define _gloffset_GetCombinerOutputParameterivNV 509
+#define _gloffset_GetFinalCombinerInputParameterfvNV 510
+#define _gloffset_GetFinalCombinerInputParameterivNV 511
+#define _gloffset_ResizeBuffersMESA 512
+#define _gloffset_WindowPos2dMESA 513
+#define _gloffset_WindowPos2dvMESA 514
+#define _gloffset_WindowPos2fMESA 515
+#define _gloffset_WindowPos2fvMESA 516
+#define _gloffset_WindowPos2iMESA 517
+#define _gloffset_WindowPos2ivMESA 518
+#define _gloffset_WindowPos2sMESA 519
+#define _gloffset_WindowPos2svMESA 520
+#define _gloffset_WindowPos3dMESA 521
+#define _gloffset_WindowPos3dvMESA 522
+#define _gloffset_WindowPos3fMESA 523
+#define _gloffset_WindowPos3fvMESA 524
+#define _gloffset_WindowPos3iMESA 525
+#define _gloffset_WindowPos3ivMESA 526
+#define _gloffset_WindowPos3sMESA 527
+#define _gloffset_WindowPos3svMESA 528
+#define _gloffset_WindowPos4dMESA 529
+#define _gloffset_WindowPos4dvMESA 530
+#define _gloffset_WindowPos4fMESA 531
+#define _gloffset_WindowPos4fvMESA 532
+#define _gloffset_WindowPos4iMESA 533
+#define _gloffset_WindowPos4ivMESA 534
+#define _gloffset_WindowPos4sMESA 535
+#define _gloffset_WindowPos4svMESA 536
+#define _gloffset_BlendFuncSeparateEXT 537
+#define _gloffset_IndexMaterialEXT 538
+#define _gloffset_IndexFuncEXT 539
+#define _gloffset_LockArraysEXT 540
+#define _gloffset_UnlockArraysEXT 541
+#define _gloffset_CullParameterdvEXT 542
+#define _gloffset_CullParameterfvEXT 543
+#define _gloffset_HintPGI 544
+#define _gloffset_FogCoordfEXT 545
+#define _gloffset_FogCoordfvEXT 546
+#define _gloffset_FogCoorddEXT 547
+#define _gloffset_FogCoorddvEXT 548
+#define _gloffset_FogCoordPointerEXT 549
+#define _gloffset_GetColorTableEXT 550
+#define _gloffset_GetColorTableParameterivEXT 551
+#define _gloffset_GetColorTableParameterfvEXT 552
#endif
-
diff --git a/xc/extras/Mesa/src/glapitable.h b/xc/extras/Mesa/src/glapitable.h
index bb49545b8..9e5d121dd 100644
--- a/xc/extras/Mesa/src/glapitable.h
+++ b/xc/extras/Mesa/src/glapitable.h
@@ -1,853 +1,564 @@
+/* DO NOT EDIT - This file generated automatically */
+#ifndef _GLAPI_TABLE_H_
+#define _GLAPI_TABLE_H_
-/*
- * Mesa 3-D graphics library
- * Version: 3.3
- *
- * Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
+#include <GL/gl.h>
-
-/*
- * This file is not specific to Mesa. It defines a dispatch table
- * which could be used by any number of OpenGL implementations.
- * It's designed to be gl.h-independent as well. That is, it does
- * not depend on any particular extensions being defined in the gl.h
- * header. We #define extension symbols (like _GLAPI_EXT_blend_color)
- * to determine which entry points to compile. Clients of this dispatcher
- * (like Mesa) can #ifdef test these symbols to know how to fill in the
- * table.
- */
-
-
-#ifndef _GLAPI_TABLE_H
-#define _GLAPI_TABLE_H
-
-
-#include "GL/gl.h"
-
-
-/*
- * This struct contains pointers for all the GL API entrypoints
- * plus some reserved slots for dynamic extensions.
- *
- * Strictly speaking, this struct isn't needed if we have assembly
- * language entrypoint functions since no knowledge of function
- * arguments is needed.
- *
- * This struct may be replaced by an automatically-generated struct
- * using the spec files in the OpenGL SI.
- */
struct _glapi_table
{
- void (*Dummy)(void);
-
- /*
- * OpenGL 1.0
- */
- void (*Accum)(GLenum, GLfloat);
- void (*AlphaFunc)(GLenum, GLclampf);
- void (*Begin)(GLenum);
- void (*Bitmap)(GLsizei, GLsizei, GLfloat, GLfloat, GLfloat, GLfloat, const GLubyte *);
- void (*BlendFunc)(GLenum, GLenum);
- void (*CallList)(GLuint list);
- void (*CallLists)(GLsizei, GLenum, const GLvoid *);
- void (*Clear)(GLbitfield);
- void (*ClearAccum)(GLfloat, GLfloat, GLfloat, GLfloat);
- void (*ClearColor)(GLclampf, GLclampf, GLclampf, GLclampf);
- void (*ClearDepth)(GLclampd);
- void (*ClearIndex)(GLfloat);
- void (*ClearStencil)(GLint);
- void (*ClipPlane)(GLenum, const GLdouble *);
- void (*Color3b)(GLbyte, GLbyte, GLbyte);
- void (*Color3bv)(const GLbyte *);
- void (*Color3d)(GLdouble, GLdouble, GLdouble);
- void (*Color3dv)(const GLdouble *);
- void (*Color3f)(GLfloat, GLfloat, GLfloat);
- void (*Color3fv)(const GLfloat *);
- void (*Color3i)(GLint, GLint, GLint);
- void (*Color3iv)(const GLint *);
- void (*Color3s)(GLshort, GLshort, GLshort);
- void (*Color3sv)(const GLshort *);
- void (*Color3ub)(GLubyte, GLubyte, GLubyte);
- void (*Color3ubv)(const GLubyte *);
- void (*Color3ui)(GLuint, GLuint, GLuint);
- void (*Color3uiv)(const GLuint *);
- void (*Color3us)(GLushort, GLushort, GLushort);
- void (*Color3usv)(const GLushort *);
- void (*Color4b)(GLbyte, GLbyte, GLbyte, GLbyte);
- void (*Color4bv)(const GLbyte *);
- void (*Color4d)(GLdouble, GLdouble, GLdouble, GLdouble);
- void (*Color4dv)(const GLdouble *);
- void (*Color4f)(GLfloat, GLfloat, GLfloat, GLfloat);
- void (*Color4fv)(const GLfloat *);
- void (*Color4i)(GLint, GLint, GLint, GLint);
- void (*Color4iv)(const GLint *);
- void (*Color4s)(GLshort, GLshort, GLshort, GLshort);
- void (*Color4sv)(const GLshort *);
- void (*Color4ub)(GLubyte, GLubyte, GLubyte, GLubyte);
- void (*Color4ubv)(const GLubyte *);
- void (*Color4ui)(GLuint, GLuint, GLuint, GLuint);
- void (*Color4uiv)(const GLuint *);
- void (*Color4us)(GLushort, GLushort, GLushort, GLushort);
- void (*Color4usv)(const GLushort *);
- void (*ColorMask)(GLboolean, GLboolean, GLboolean, GLboolean);
- void (*ColorMaterial)(GLenum, GLenum);
- void (*CopyPixels)(GLint, GLint, GLsizei, GLsizei, GLenum);
- void (*CullFace)(GLenum);
- void (*DeleteLists)(GLuint, GLsizei);
- void (*DepthFunc)(GLenum);
- void (*DepthMask)(GLboolean);
- void (*DepthRange)(GLclampd, GLclampd);
- void (*Disable)(GLenum);
- void (*DrawBuffer)(GLenum);
- void (*DrawPixels)(GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
- void (*EdgeFlag)(GLboolean);
- void (*EdgeFlagv)(const GLboolean *);
- void (*Enable)(GLenum);
- void (*End)(void);
- void (*EndList)(void);
- void (*EvalCoord1d)(GLdouble);
- void (*EvalCoord1dv)(const GLdouble *);
- void (*EvalCoord1f)(GLfloat);
- void (*EvalCoord1fv)(const GLfloat *);
- void (*EvalCoord2d)(GLdouble u, GLdouble);
- void (*EvalCoord2dv)(const GLdouble *);
- void (*EvalCoord2f)(GLfloat u, GLfloat);
- void (*EvalCoord2fv)(const GLfloat *);
- void (*EvalMesh1)(GLenum, GLint, GLint);
- void (*EvalMesh2)(GLenum, GLint, GLint, GLint, GLint);
- void (*EvalPoint1)(GLint);
- void (*EvalPoint2)(GLint, GLint);
- void (*FeedbackBuffer)(GLsizei, GLenum, GLfloat *);
- void (*Finish)(void);
- void (*Flush)(void);
- void (*Fogf)(GLenum, GLfloat);
- void (*Fogfv)(GLenum, const GLfloat *);
- void (*Fogi)(GLenum, GLint);
- void (*Fogiv)(GLenum, const GLint *);
- void (*FrontFace)(GLenum);
- void (*Frustum)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
- GLuint (*GenLists)(GLsizei);
- void (*GetBooleanv)(GLenum, GLboolean *);
- void (*GetClipPlane)(GLenum, GLdouble *);
- void (*GetDoublev)(GLenum, GLdouble *);
- GLenum (*GetError)(void);
- void (*GetFloatv)(GLenum, GLfloat *);
- void (*GetIntegerv)(GLenum, GLint *);
- void (*GetLightfv)(GLenum light, GLenum, GLfloat *);
- void (*GetLightiv)(GLenum light, GLenum, GLint *);
- void (*GetMapdv)(GLenum, GLenum, GLdouble *);
- void (*GetMapfv)(GLenum, GLenum, GLfloat *);
- void (*GetMapiv)(GLenum, GLenum, GLint *);
- void (*GetMaterialfv)(GLenum, GLenum, GLfloat *);
- void (*GetMaterialiv)(GLenum, GLenum, GLint *);
- void (*GetPixelMapfv)(GLenum, GLfloat *);
- void (*GetPixelMapuiv)(GLenum, GLuint *);
- void (*GetPixelMapusv)(GLenum, GLushort *);
- void (*GetPolygonStipple)(GLubyte *);
- const GLubyte* (*GetString)(GLenum name);
- void (*GetTexEnvfv)(GLenum, GLenum, GLfloat *);
- void (*GetTexEnviv)(GLenum, GLenum, GLint *);
- void (*GetTexGendv)(GLenum coord, GLenum, GLdouble *);
- void (*GetTexGenfv)(GLenum coord, GLenum, GLfloat *);
- void (*GetTexGeniv)(GLenum coord, GLenum, GLint *);
- void (*GetTexImage)(GLenum, GLint level, GLenum, GLenum, GLvoid *);
- void (*GetTexLevelParameterfv)(GLenum, GLint, GLenum, GLfloat *);
- void (*GetTexLevelParameteriv)(GLenum, GLint, GLenum, GLint *);
- void (*GetTexParameterfv)(GLenum, GLenum, GLfloat *);
- void (*GetTexParameteriv)(GLenum, GLenum, GLint *);
- void (*Hint)(GLenum, GLenum);
- void (*IndexMask)(GLuint);
- void (*Indexd)(GLdouble);
- void (*Indexdv)(const GLdouble *);
- void (*Indexf)(GLfloat);
- void (*Indexfv)(const GLfloat *);
- void (*Indexi)(GLint);
- void (*Indexiv)(const GLint *);
- void (*Indexs)(GLshort);
- void (*Indexsv)(const GLshort *);
- void (*InitNames)(void);
- GLboolean (*IsEnabled)(GLenum);
- GLboolean (*IsList)(GLuint);
- void (*LightModelf)(GLenum, GLfloat);
- void (*LightModelfv)(GLenum, const GLfloat *);
- void (*LightModeli)(GLenum, GLint);
- void (*LightModeliv)(GLenum, const GLint *);
- void (*Lightf)(GLenum light, GLenum, GLfloat);
- void (*Lightfv)(GLenum light, GLenum, const GLfloat *);
- void (*Lighti)(GLenum light, GLenum, GLint);
- void (*Lightiv)(GLenum light, GLenum, const GLint *);
- void (*LineStipple)(GLint factor, GLushort);
- void (*LineWidth)(GLfloat);
- void (*ListBase)(GLuint);
- void (*LoadIdentity)(void);
- void (*LoadMatrixd)(const GLdouble *);
- void (*LoadMatrixf)(const GLfloat *);
- void (*LoadName)(GLuint);
- void (*LogicOp)(GLenum);
- void (*Map1d)(GLenum, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
- void (*Map1f)(GLenum, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
- void (*Map2d)(GLenum, GLdouble, GLdouble, GLint, GLint, GLdouble, GLdouble, GLint, GLint, const GLdouble *);
- void (*Map2f)(GLenum, GLfloat, GLfloat, GLint, GLint, GLfloat, GLfloat, GLint, GLint, const GLfloat *);
- void (*MapGrid1d)(GLint, GLdouble, GLdouble);
- void (*MapGrid1f)(GLint, GLfloat, GLfloat);
- void (*MapGrid2d)(GLint, GLdouble, GLdouble, GLint, GLdouble, GLdouble);
- void (*MapGrid2f)(GLint, GLfloat, GLfloat, GLint, GLfloat, GLfloat);
- void (*Materialf)(GLenum, GLenum, GLfloat);
- void (*Materialfv)(GLenum, GLenum, const GLfloat *);
- void (*Materiali)(GLenum, GLenum, GLint);
- void (*Materialiv)(GLenum, GLenum, const GLint *);
- void (*MatrixMode)(GLenum);
- void (*MultMatrixd)(const GLdouble *);
- void (*MultMatrixf)(const GLfloat *);
- void (*NewList)(GLuint list, GLenum);
- void (*Normal3b)(GLbyte, GLbyte, GLbyte);
- void (*Normal3bv)(const GLbyte *);
- void (*Normal3d)(GLdouble, GLdouble, GLdouble);
- void (*Normal3dv)(const GLdouble *);
- void (*Normal3f)(GLfloat, GLfloat, GLfloat);
- void (*Normal3fv)(const GLfloat *);
- void (*Normal3i)(GLint, GLint, GLint);
- void (*Normal3iv)(const GLint *);
- void (*Normal3s)(GLshort, GLshort, GLshort);
- void (*Normal3sv)(const GLshort *);
- void (*Ortho)(GLdouble, GLdouble, GLdouble, GLdouble, GLdouble, GLdouble);
- void (*PassThrough)(GLfloat);
- void (*PixelMapfv)(GLenum, GLint, const GLfloat *);
- void (*PixelMapuiv)(GLenum, GLint, const GLuint *);
- void (*PixelMapusv)(GLenum, GLint, const GLushort *);
- void (*PixelStoref)(GLenum, GLfloat);
- void (*PixelStorei)(GLenum, GLint);
- void (*PixelTransferf)(GLenum, GLfloat);
- void (*PixelTransferi)(GLenum, GLint);
- void (*PixelZoom)(GLfloat, GLfloat);
- void (*PointSize)(GLfloat);
- void (*PolygonMode)(GLenum, GLenum);
- void (*PolygonOffset)(GLfloat, GLfloat);
- void (*PolygonStipple)(const GLubyte *);
- void (*PopAttrib)(void);
- void (*PopMatrix)(void);
- void (*PopName)(void);
- void (*PushAttrib)(GLbitfield);
- void (*PushMatrix)(void);
- void (*PushName)(GLuint);
- void (*RasterPos2d)(GLdouble, GLdouble);
- void (*RasterPos2dv)(const GLdouble *);
- void (*RasterPos2f)(GLfloat, GLfloat);
- void (*RasterPos2fv)(const GLfloat *);
- void (*RasterPos2i)(GLint, GLint);
- void (*RasterPos2iv)(const GLint *);
- void (*RasterPos2s)(GLshort, GLshort);
- void (*RasterPos2sv)(const GLshort *);
- void (*RasterPos3d)(GLdouble, GLdouble, GLdouble);
- void (*RasterPos3dv)(const GLdouble *);
- void (*RasterPos3f)(GLfloat, GLfloat, GLfloat);
- void (*RasterPos3fv)(const GLfloat *);
- void (*RasterPos3i)(GLint, GLint, GLint);
- void (*RasterPos3iv)(const GLint *);
- void (*RasterPos3s)(GLshort, GLshort, GLshort);
- void (*RasterPos3sv)(const GLshort *);
- void (*RasterPos4d)(GLdouble, GLdouble, GLdouble, GLdouble);
- void (*RasterPos4dv)(const GLdouble *);
- void (*RasterPos4f)(GLfloat, GLfloat, GLfloat, GLfloat);
- void (*RasterPos4fv)(const GLfloat *);
- void (*RasterPos4i)(GLint, GLint, GLint, GLint);
- void (*RasterPos4iv)(const GLint *);
- void (*RasterPos4s)(GLshort, GLshort, GLshort, GLshort);
- void (*RasterPos4sv)(const GLshort *);
- void (*ReadBuffer)(GLenum);
- void (*ReadPixels)(GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, GLvoid *);
- void (*Rectd)(GLdouble, GLdouble, GLdouble, GLdouble);
- void (*Rectdv)(const GLdouble *, const GLdouble *);
- void (*Rectf)(GLfloat, GLfloat, GLfloat, GLfloat);
- void (*Rectfv)(const GLfloat *, const GLfloat *);
- void (*Recti)(GLint, GLint, GLint, GLint);
- void (*Rectiv)(const GLint *, const GLint *);
- void (*Rects)(GLshort, GLshort, GLshort, GLshort);
- void (*Rectsv)(const GLshort *, const GLshort *);
- GLint (*RenderMode)(GLenum);
- void (*Rotated)(GLdouble, GLdouble, GLdouble, GLdouble);
- void (*Rotatef)(GLfloat, GLfloat, GLfloat, GLfloat);
- void (*Scaled)(GLdouble, GLdouble, GLdouble);
- void (*Scalef)(GLfloat, GLfloat, GLfloat);
- void (*Scissor)(GLint, GLint, GLsizei, GLsizei);
- void (*SelectBuffer)(GLsizei, GLuint *);
- void (*ShadeModel)(GLenum);
- void (*StencilFunc)(GLenum, GLint, GLuint);
- void (*StencilMask)(GLuint);
- void (*StencilOp)(GLenum, GLenum, GLenum);
- void (*TexCoord1d)(GLdouble);
- void (*TexCoord1dv)(const GLdouble *);
- void (*TexCoord1f)(GLfloat);
- void (*TexCoord1fv)(const GLfloat *);
- void (*TexCoord1i)(GLint);
- void (*TexCoord1iv)(const GLint *);
- void (*TexCoord1s)(GLshort);
- void (*TexCoord1sv)(const GLshort *);
- void (*TexCoord2d)(GLdouble, GLdouble);
- void (*TexCoord2dv)(const GLdouble *);
- void (*TexCoord2f)(GLfloat, GLfloat);
- void (*TexCoord2fv)(const GLfloat *);
- void (*TexCoord2i)(GLint, GLint);
- void (*TexCoord2iv)(const GLint *);
- void (*TexCoord2s)(GLshort, GLshort);
- void (*TexCoord2sv)(const GLshort *);
- void (*TexCoord3d)(GLdouble, GLdouble, GLdouble);
- void (*TexCoord3dv)(const GLdouble *);
- void (*TexCoord3f)(GLfloat, GLfloat, GLfloat);
- void (*TexCoord3fv)(const GLfloat *);
- void (*TexCoord3i)(GLint, GLint, GLint);
- void (*TexCoord3iv)(const GLint *);
- void (*TexCoord3s)(GLshort, GLshort, GLshort);
- void (*TexCoord3sv)(const GLshort *);
- void (*TexCoord4d)(GLdouble, GLdouble, GLdouble, GLdouble);
- void (*TexCoord4dv)(const GLdouble *);
- void (*TexCoord4f)(GLfloat, GLfloat, GLfloat, GLfloat);
- void (*TexCoord4fv)(const GLfloat *);
- void (*TexCoord4i)(GLint, GLint, GLint, GLint);
- void (*TexCoord4iv)(const GLint *);
- void (*TexCoord4s)(GLshort, GLshort, GLshort, GLshort);
- void (*TexCoord4sv)(const GLshort *);
- void (*TexEnvf)(GLenum, GLenum, GLfloat);
- void (*TexEnvfv)(GLenum, GLenum, const GLfloat *);
- void (*TexEnvi)(GLenum, GLenum, GLint);
- void (*TexEnviv)(GLenum, GLenum, const GLint *);
- void (*TexGend)(GLenum, GLenum, GLdouble);
- void (*TexGendv)(GLenum, GLenum, const GLdouble *);
- void (*TexGenf)(GLenum, GLenum, GLfloat);
- void (*TexGenfv)(GLenum, GLenum, const GLfloat *);
- void (*TexGeni)(GLenum, GLenum, GLint);
- void (*TexGeniv)(GLenum, GLenum, const GLint *);
- void (*TexImage1D)(GLenum, GLint, GLint, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
- void (*TexImage2D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
- void (*TexParameterf)(GLenum, GLenum, GLfloat);
- void (*TexParameterfv)(GLenum, GLenum, const GLfloat *);
- void (*TexParameteri)(GLenum, GLenum, GLint);
- void (*TexParameteriv)(GLenum, GLenum, const GLint *);
- void (*Translated)(GLdouble, GLdouble, GLdouble);
- void (*Translatef)(GLfloat, GLfloat, GLfloat);
- void (*Vertex2d)(GLdouble, GLdouble);
- void (*Vertex2dv)(const GLdouble *);
- void (*Vertex2f)(GLfloat, GLfloat);
- void (*Vertex2fv)(const GLfloat *);
- void (*Vertex2i)(GLint, GLint);
- void (*Vertex2iv)(const GLint *);
- void (*Vertex2s)(GLshort, GLshort);
- void (*Vertex2sv)(const GLshort *);
- void (*Vertex3d)(GLdouble, GLdouble, GLdouble);
- void (*Vertex3dv)(const GLdouble *);
- void (*Vertex3f)(GLfloat, GLfloat, GLfloat);
- void (*Vertex3fv)(const GLfloat *);
- void (*Vertex3i)(GLint, GLint, GLint);
- void (*Vertex3iv)(const GLint *);
- void (*Vertex3s)(GLshort, GLshort, GLshort);
- void (*Vertex3sv)(const GLshort *);
- void (*Vertex4d)(GLdouble, GLdouble, GLdouble, GLdouble);
- void (*Vertex4dv)(const GLdouble *);
- void (*Vertex4f)(GLfloat, GLfloat, GLfloat, GLfloat);
- void (*Vertex4fv)(const GLfloat *);
- void (*Vertex4i)(GLint, GLint, GLint, GLint);
- void (*Vertex4iv)(const GLint *);
- void (*Vertex4s)(GLshort, GLshort, GLshort, GLshort);
- void (*Vertex4sv)(const GLshort *);
- void (*Viewport)(GLint, GLint, GLsizei, GLsizei);
-
- /*
- * OpenGL 1.1
- */
- GLboolean (*AreTexturesResident)(GLsizei, const GLuint *, GLboolean *);
- void (*ArrayElement)(GLint);
- void (*BindTexture)(GLenum, GLuint);
- void (*ColorPointer)(GLint, GLenum, GLsizei, const GLvoid *);
- void (*CopyTexImage1D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
- void (*CopyTexImage2D)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
- void (*CopyTexSubImage1D)(GLenum, GLint, GLint, GLint, GLint, GLsizei);
- void (*CopyTexSubImage2D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
- void (*DeleteTextures)(GLsizei, const GLuint *);
- void (*DisableClientState)(GLenum);
- void (*DrawArrays)(GLenum, GLint, GLsizei);
- void (*DrawElements)(GLenum, GLsizei, GLenum, const GLvoid *);
- void (*EdgeFlagPointer)(GLsizei, const GLvoid *);
- void (*EnableClientState)(GLenum);
- void (*GenTextures)(GLsizei, GLuint *);
- void (*GetPointerv)(GLenum, GLvoid **);
- void (*IndexPointer)(GLenum, GLsizei, const GLvoid *);
- void (*Indexub)(GLubyte);
- void (*Indexubv)(const GLubyte *);
- void (*InterleavedArrays)(GLenum, GLsizei, const GLvoid *);
- GLboolean (*IsTexture)(GLuint);
- void (*NormalPointer)(GLenum, GLsizei, const GLvoid *);
- void (*PopClientAttrib)(void);
- void (*PrioritizeTextures)(GLsizei, const GLuint *, const GLclampf *);
- void (*PushClientAttrib)(GLbitfield);
- void (*TexCoordPointer)(GLint, GLenum, GLsizei, const GLvoid *);
- void (*TexSubImage1D)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
- void (*TexSubImage2D)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
- void (*VertexPointer)(GLint, GLenum, GLsizei, const GLvoid *);
-
-
- /*
- * OpenGL 1.2
- */
- void (*CopyTexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
- void (*DrawRangeElements)(GLenum, GLuint, GLuint, GLsizei, GLenum, const GLvoid *);
- void (*TexImage3D)(GLenum, GLint, GLint, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
- void (*TexSubImage3D)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-
-
- /*
- * GL_ARB_imaging
- */
- void (*BlendColor)(GLclampf, GLclampf, GLclampf, GLclampf);
- void (*BlendEquation)(GLenum);
- void (*ColorSubTable)(GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
- void (*ColorTable)(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
- void (*ColorTableParameterfv)(GLenum, GLenum, const GLfloat *);
- void (*ColorTableParameteriv)(GLenum, GLenum, const GLint *);
- void (*ConvolutionFilter1D)(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
- void (*ConvolutionFilter2D)(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
- void (*ConvolutionParameterf)(GLenum, GLenum, GLfloat);
- void (*ConvolutionParameterfv)(GLenum, GLenum, const GLfloat *);
- void (*ConvolutionParameteri)(GLenum, GLenum, GLint);
- void (*ConvolutionParameteriv)(GLenum, GLenum, const GLint *);
- void (*CopyColorSubTable)(GLenum, GLsizei, GLint, GLint, GLsizei);
- void (*CopyColorTable)(GLenum, GLenum, GLint, GLint, GLsizei);
- void (*CopyConvolutionFilter1D)(GLenum, GLenum, GLint x, GLint y, GLsizei);
- void (*CopyConvolutionFilter2D)(GLenum, GLenum, GLint x, GLint y, GLsizei, GLsizei);
- void (*GetColorTable)(GLenum, GLenum, GLenum, GLvoid *);
- void (*GetColorTableParameterfv)(GLenum, GLenum, GLfloat *);
- void (*GetColorTableParameteriv)(GLenum, GLenum, GLint *);
- void (*GetConvolutionFilter)(GLenum, GLenum, GLenum, GLvoid *);
- void (*GetConvolutionParameterfv)(GLenum, GLenum, GLfloat *);
- void (*GetConvolutionParameteriv)(GLenum, GLenum, GLint *);
- void (*GetHistogram)(GLenum, GLboolean, GLenum, GLenum, GLvoid *);
- void (*GetHistogramParameterfv)(GLenum, GLenum, GLfloat *);
- void (*GetHistogramParameteriv)(GLenum, GLenum, GLint *);
- void (*GetMinmax)(GLenum, GLboolean, GLenum, GLenum, GLvoid *);
- void (*GetMinmaxParameterfv)(GLenum, GLenum, GLfloat *);
- void (*GetMinmaxParameteriv)(GLenum, GLenum, GLint *);
- void (*GetSeparableFilter)(GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *);
- void (*Histogram)(GLenum, GLsizei, GLenum, GLboolean);
- void (*Minmax)(GLenum, GLenum, GLboolean);
- void (*ResetHistogram)(GLenum);
- void (*ResetMinmax)(GLenum);
- void (*SeparableFilter2D)(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *);
-
- /*
- * GL_ARB_multitexture
- */
- void (*ActiveTextureARB)(GLenum);
- void (*ClientActiveTextureARB)(GLenum);
- void (*MultiTexCoord1dARB)(GLenum, GLdouble);
- void (*MultiTexCoord1dvARB)(GLenum, const GLdouble *);
- void (*MultiTexCoord1fARB)(GLenum, GLfloat);
- void (*MultiTexCoord1fvARB)(GLenum, const GLfloat *);
- void (*MultiTexCoord1iARB)(GLenum, GLint);
- void (*MultiTexCoord1ivARB)(GLenum, const GLint *);
- void (*MultiTexCoord1sARB)(GLenum, GLshort);
- void (*MultiTexCoord1svARB)(GLenum, const GLshort *);
- void (*MultiTexCoord2dARB)(GLenum, GLdouble, GLdouble);
- void (*MultiTexCoord2dvARB)(GLenum, const GLdouble *);
- void (*MultiTexCoord2fARB)(GLenum, GLfloat, GLfloat);
- void (*MultiTexCoord2fvARB)(GLenum, const GLfloat *);
- void (*MultiTexCoord2iARB)(GLenum, GLint, GLint);
- void (*MultiTexCoord2ivARB)(GLenum, const GLint *);
- void (*MultiTexCoord2sARB)(GLenum, GLshort, GLshort);
- void (*MultiTexCoord2svARB)(GLenum, const GLshort *);
- void (*MultiTexCoord3dARB)(GLenum, GLdouble, GLdouble, GLdouble);
- void (*MultiTexCoord3dvARB)(GLenum, const GLdouble *);
- void (*MultiTexCoord3fARB)(GLenum, GLfloat, GLfloat, GLfloat);
- void (*MultiTexCoord3fvARB)(GLenum, const GLfloat *);
- void (*MultiTexCoord3iARB)(GLenum, GLint, GLint, GLint);
- void (*MultiTexCoord3ivARB)(GLenum, const GLint *);
- void (*MultiTexCoord3sARB)(GLenum, GLshort, GLshort, GLshort);
- void (*MultiTexCoord3svARB)(GLenum, const GLshort *);
- void (*MultiTexCoord4dARB)(GLenum, GLdouble, GLdouble, GLdouble, GLdouble);
- void (*MultiTexCoord4dvARB)(GLenum, const GLdouble *);
- void (*MultiTexCoord4fARB)(GLenum, GLfloat, GLfloat, GLfloat, GLfloat);
- void (*MultiTexCoord4fvARB)(GLenum, const GLfloat *);
- void (*MultiTexCoord4iARB)(GLenum, GLint, GLint, GLint, GLint);
- void (*MultiTexCoord4ivARB)(GLenum, const GLint *);
- void (*MultiTexCoord4sARB)(GLenum, GLshort, GLshort, GLshort, GLshort);
- void (*MultiTexCoord4svARB)(GLenum, const GLshort *);
-
-
- /*
- * Extensions
- */
-
- /* 1. GL_EXT_abgr - no functions */
-
- /* 2. GL_EXT_blend_color */
- void (*BlendColorEXT)(GLclampf, GLclampf, GLclampf, GLclampf);
-
- /* 3. GL_EXT_polygon_offset */
- void (*PolygonOffsetEXT)(GLfloat, GLfloat);
-
- /* 4. GL_EXT_texture - no functions */
-
- /* 5. ??? */
-
- /* 6. GL_EXT_texture3D */
- void (*CopyTexSubImage3DEXT)(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
- void (*TexImage3DEXT)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *);
- void (*TexSubImage3DEXT)(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-
- /* 7. GL_SGI_texture_filter4 */
- void (*GetTexFilterFuncSGIS)(GLenum, GLenum, GLsizei, const GLfloat *);
- void (*TexFilterFuncSGIS)(GLenum, GLenum, GLfloat *);
-
- /* 8. ??? */
-
- /* 9. GL_EXT_subtexture */
- void (*TexSubImage1DEXT)(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *);
- void (*TexSubImage2DEXT)(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
-
- /* 10. GL_EXT_copy_texture */
- void (*CopyTexImage1DEXT)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint);
- void (*CopyTexImage2DEXT)(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint);
- void (*CopyTexSubImage1DEXT)(GLenum, GLint, GLint, GLint, GLint, GLsizei);
- void (*CopyTexSubImage2DEXT)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei);
-
- /* 11. GL_EXT_histogram */
- void (*GetHistogramEXT)(GLenum, GLboolean, GLenum, GLenum, GLvoid *);
- void (*GetHistogramParameterfvEXT)(GLenum, GLenum, GLfloat *);
- void (*GetHistogramParameterivEXT)(GLenum, GLenum, GLint *);
- void (*GetMinmaxEXT)(GLenum, GLboolean, GLenum, GLenum, GLvoid *);
- void (*GetMinmaxParameterfvEXT)(GLenum, GLenum, GLfloat *);
- void (*GetMinmaxParameterivEXT)(GLenum, GLenum, GLint *);
- void (*HistogramEXT)(GLenum, GLsizei, GLenum, GLboolean);
- void (*MinmaxEXT)(GLenum, GLenum, GLboolean);
- void (*ResetHistogramEXT)(GLenum);
- void (*ResetMinmaxEXT)(GLenum);
-
- /* 12. GL_EXT_convolution */
- void (*ConvolutionFilter1DEXT)(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
- void (*ConvolutionFilter2DEXT)(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *);
- void (*ConvolutionParameterfEXT)(GLenum, GLenum, GLfloat);
- void (*ConvolutionParameterfvEXT)(GLenum, GLenum, const GLfloat *);
- void (*ConvolutionParameteriEXT)(GLenum, GLenum, GLint);
- void (*ConvolutionParameterivEXT)(GLenum, GLenum, const GLint *);
- void (*CopyConvolutionFilter1DEXT)(GLenum, GLenum, GLint x, GLint y, GLsizei);
- void (*CopyConvolutionFilter2DEXT)(GLenum, GLenum, GLint x, GLint y, GLsizei, GLsizei);
- void (*GetConvolutionFilterEXT)(GLenum, GLenum, GLenum, GLvoid *);
- void (*GetConvolutionParameterfvEXT)(GLenum, GLenum, GLfloat *);
- void (*GetConvolutionParameterivEXT)(GLenum, GLenum, GLint *);
- void (*GetSeparableFilterEXT)(GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *);
- void (*SeparableFilter2DEXT)(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *);
-
- /* 13. GL_SGI_color_matrix - no functions */
-
- /* 14. GL_SGI_color_table */
- void (*ColorTableSGI)(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
- void (*ColorTableParameterfvSGI)(GLenum, GLenum, const GLfloat *);
- void (*ColorTableParameterivSGI)(GLenum, GLenum, const GLint *);
- void (*CopyColorTableSGI)(GLenum, GLenum, GLint, GLint, GLsizei);
- void (*GetColorTableSGI)(GLenum, GLenum, GLenum, GLvoid *);
- void (*GetColorTableParameterfvSGI)(GLenum, GLenum, GLfloat *);
- void (*GetColorTableParameterivSGI)(GLenum, GLenum, GLint *);
-
- /* 15. GL_SGIS_pixel_texture */
- void (*PixelTexGenParameterfSGIS)(GLenum, GLfloat);
- void (*PixelTexGenParameteriSGIS)(GLenum, GLint);
- void (*GetPixelTexGenParameterfvSGIS)(GLenum, GLfloat *);
- void (*GetPixelTexGenParameterivSGIS)(GLenum, GLint *);
-
- /* 16. GL_SGIS_texture4D */
- void (*TexImage4DSGIS)(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const void *);
- void (*TexSubImage4DSGIS)(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const void *);
-
- /* 17. GL_SGI_texture_color_table - no functions */
-
- /* 18. GL_EXT_cmyka - no functions */
-
- /* 19. ??? */
-
- /* 20. GL_EXT_texture_object */
- GLboolean (*AreTexturesResidentEXT)(GLsizei, const GLuint *, GLboolean *);
- void (*BindTextureEXT)(GLenum, GLuint);
- void (*DeleteTexturesEXT)(GLsizei, const GLuint *);
- void (*GenTexturesEXT)(GLsizei, GLuint *);
- GLboolean (*IsTextureEXT)(GLuint);
- void (*PrioritizeTexturesEXT)(GLsizei, const GLuint *, const GLclampf *);
-
- /* 21. GL_SGIS_detail_texture */
- void (*DetailTexFuncSGIS)(GLenum, GLsizei, const GLfloat *);
- void (*GetDetailTexFuncSGIS)(GLenum, GLfloat *);
-
- /* 22. GL_SGIS_sharpen_texture */
- void (*GetSharpenTexFuncSGIS)(GLenum, GLfloat *);
- void (*SharpenTexFuncSGIS)(GLenum, GLsizei, const GLfloat *);
-
- /* 23. GL_EXT_packed_pixels - no functions */
-
- /* 24. GL_SGIS_texture_lod - no functions */
-
- /* 25. GL_SGIS_multisample */
- void (*SampleMaskSGIS)(GLclampf, GLboolean);
- void (*SamplePatternSGIS)(GLenum);
-
- /* 26. ??? */
-
- /* 27. GL_EXT_rescale_normal - no functions */
-
- /* 28. GLX_EXT_visual_info - no functions */
-
- /* 29. ??? */
-
- /* 30. GL_EXT_vertex_array */
- void (*ArrayElementEXT)(GLint);
- void (*ColorPointerEXT)(GLint, GLenum, GLsizei, GLsizei, const void *);
- void (*DrawArraysEXT)(GLenum, GLint, GLsizei);
- void (*EdgeFlagPointerEXT)(GLsizei, GLsizei, const GLboolean *);
- void (*GetPointervEXT)(GLenum, void **);
- void (*IndexPointerEXT)(GLenum, GLsizei, GLsizei, const void *);
- void (*NormalPointerEXT)(GLenum, GLsizei, GLsizei, const void *);
- void (*TexCoordPointerEXT)(GLint, GLenum, GLsizei, GLsizei, const void *);
- void (*VertexPointerEXT)(GLint, GLenum, GLsizei, GLsizei, const void *);
-
- /* 31. GL_EXT_misc_attribute - no functions */
-
- /* 32. GL_SGIS_generate_mipmap - no functions */
-
- /* 33. GL_SGIX_clipmap - no functions */
-
- /* 34. GL_SGIX_shadow - no functions */
-
- /* 35. GL_SGIS_texture_edge_clamp - no functions */
-
- /* 36. GL_SGIS_texture_border_clamp - no functions */
-
- /* 37. GL_EXT_blend_minmax */
- void (*BlendEquationEXT)(GLenum);
-
- /* 38. GL_EXT_blend_subtract - no functions */
-
- /* 39. GL_EXT_blend_logic_op - no functions */
-
- /* 40. GLX_SGI_swap_control - GLX functions */
-
- /* 41. GLX_SGI_video_sync - GLX functions */
-
- /* 42. GLX_SGI_make_current_read - GLX functions */
-
- /* 43. GLX_SGIX_video_source - GLX functions */
-
- /* 44. GLX_EXT_visual_rating - no functions */
-
- /* 45. GL_SGIX_interlace - no functions */
-
- /* 46. ??? */
-
- /* 47. GLX_EXT_import_context - GLX functions */
-
- /* 48. ??? */
-
- /* 49. GLX_SGIX_fbconfig - GLX functions */
-
- /* 50. GLX_SGIX_pbuffer - GLX functions */
-
- /* 51. GL_SGIS_texture_select - no functions */
-
- /* 52. GL_SGIX_sprite */
- void (*SpriteParameterfSGIX)(GLenum, GLfloat);
- void (*SpriteParameterfvSGIX)(GLenum, const GLfloat *);
- void (*SpriteParameteriSGIX)(GLenum, GLint);
- void (*SpriteParameterivSGIX)(GLenum, const GLint *);
-
- /* 53. ??? */
-
- /* 54. GL_EXT_point_parameters */
- void (*PointParameterfEXT)(GLenum, GLfloat);
- void (*PointParameterfvEXT)(GLenum, const GLfloat *);
-
- /* 55. GL_SGIX_instruments */
- GLint (*GetInstrumentsSGIX)(void);
- void (*InstrumentsBufferSGIX)(GLsizei, GLint *);
- GLint (*PollInstrumentsSGIX)(GLint *);
- void (*ReadInstrumentsSGIX)(GLint);
- void (*StartInstrumentsSGIX)(void);
- void (*StopInstrumentsSGIX)(GLint);
-
- /* 56. GL_SGIX_texture_scale_bias - no functions */
-
- /* 57. GL_SGIX_framezoom */
- void (*FrameZoomSGIX)(GLint);
-
- /* 58. GL_SGIX_tag_sample_buffer - no functions */
-
- /* 59. ??? */
-
- /* 60. GL_SGIX_reference_plane */
- void (*ReferencePlaneSGIX)(const GLdouble *);
-
- /* 61. GL_SGIX_flush_raster */
- void (*FlushRasterSGIX)(void);
-
- /* 62. GLX_SGI_cushion - GLX functions */
-
- /* 63. GL_SGIX_depth_texture - no functions */
-
- /* 64. ??? */
-
- /* 65. GL_SGIX_fog_offset - no functions */
-
- /* 66. GL_HP_image_transform */
-#ifdef VMS
-#define glGetImageTransformParameterfvHP glGetImageTransformParameterfvH
-#define glGetImageTransformParameterivHP glGetImageTransformParameterivH
-#endif
- void (*GetImageTransformParameterfvHP)(GLenum, GLenum, GLfloat *);
- void (*GetImageTransformParameterivHP)(GLenum, GLenum, GLint *);
- void (*ImageTransformParameterfHP)(GLenum, GLenum, const GLfloat);
- void (*ImageTransformParameterfvHP)(GLenum, GLenum, const GLfloat *);
- void (*ImageTransformParameteriHP)(GLenum, GLenum, const GLint);
- void (*ImageTransformParameterivHP)(GLenum, GLenum, const GLint *);
-
- /* 67. GL_HP_convolution_border_modes - no functions */
-
- /* 68. ??? */
-
- /* 69. GL_SGIX_texture_add_env - no functions */
-
- /* 70. ??? */
-
- /* 71. ??? */
-
- /* 72. ??? */
-
- /* 73. ??? */
-
- /* 74. GL_EXT_color_subtable */
- void (*ColorSubTableEXT)(GLenum, GLsizei, GLsizei, GLenum, GLenum, const void *);
- void (*CopyColorSubTableEXT)(GLenum, GLsizei, GLint, GLint, GLsizei);
-
- /* 75. GLU_EXT_object_space_tess - GLU functions */
-
- /* 76. GL_PGI_vertex_hints - no functions */
-
- /* 77. GL_PGI_misc_hints */
- void (*HintPGI)(GLenum, GLint);
-
- /* 78. GL_EXT_paletted_texture */
- /* ColorSubTableEXT already defined */
- void (*ColorTableEXT)(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *);
- void (*GetColorTableEXT)(GLenum, GLenum, GLenum, GLvoid *);
- void (*GetColorTableParameterfvEXT)(GLenum, GLenum, GLfloat *);
- void (*GetColorTableParameterivEXT)(GLenum, GLenum, GLint *);
-
- /* 79. GL_EXT_clip_volume_hint - no functions */
-
- /* 80. GL_SGIX_list_priority */
- void (*GetListParameterfvSGIX)(GLuint, GLenum, GLfloat *);
- void (*GetListParameterivSGIX)(GLuint, GLenum, GLint *);
- void (*ListParameterfSGIX)(GLuint, GLenum, GLfloat);
- void (*ListParameterfvSGIX)(GLuint, GLenum, const GLfloat *);
- void (*ListParameteriSGIX)(GLuint, GLenum, GLint);
- void (*ListParameterivSGIX)(GLuint, GLenum, const GLint *);
-
- /* 81. GL_SGIX_ir_instrument1 - no functions */
-
- /* 82. ??? */
-
- /* 83. GLX_SGIX_video_resize - GLX functions */
-
- /* 84. GL_SGIX_texture_lod_bias - no functions */
-
- /* 85. GLU_SGI_filter4_parameters - GLU functions */
-
- /* 86. GLX_SGIX_dm_buffer - GLX functions */
-
- /* 87. ??? */
-
- /* 88. ??? */
-
- /* 89. ??? */
-
- /* 90. ??? */
-
- /* 91. GLX_SGIX_swap_group - GLX functions */
-
- /* 92. GLX_SGIX_swap_barrier - GLX functions */
-
- /* 93. GL_EXT_index_texture - no functions */
-
- /* 94. GL_EXT_index_material */
- void (*IndexMaterialEXT)(GLenum, GLenum);
-
- /* 95. GL_EXT_index_func */
- void (*IndexFuncEXT)(GLenum, GLfloat);
-
- /* 96. GL_EXT_index_array_formats - no functions */
-
- /* 97. GL_EXT_compiled_vertex_array */
- void (*LockArraysEXT)(GLint, GLsizei);
- void (*UnlockArraysEXT)(void);
-
- /* 98. GL_EXT_cull_vertex */
- void (*CullParameterfvEXT)(GLenum, const GLfloat *);
- void (*CullParameterdvEXT)(GLenum, const GLdouble *);
-
- /* 99. ??? */
-
- /* 100. GLU_EXT_nurbs_tessellator - GLU functions */
-
- /* 173. GL_EXT/INGR_blend_func_separate */
- void (*BlendFuncSeparateINGR)(GLenum, GLenum, GLenum, GLenum);
-
- /* GL_MESA_window_pos */
- void (*WindowPos2dMESA)(GLdouble, GLdouble);
- void (*WindowPos2dvMESA)(const GLdouble *);
- void (*WindowPos2fMESA)(GLfloat, GLfloat);
- void (*WindowPos2fvMESA)(const GLfloat *);
- void (*WindowPos2iMESA)(GLint, GLint);
- void (*WindowPos2ivMESA)(const GLint *);
- void (*WindowPos2sMESA)(GLshort, GLshort);
- void (*WindowPos2svMESA)(const GLshort *);
- void (*WindowPos3dMESA)(GLdouble, GLdouble, GLdouble);
- void (*WindowPos3dvMESA)(const GLdouble *);
- void (*WindowPos3fMESA)(GLfloat, GLfloat, GLfloat);
- void (*WindowPos3fvMESA)(const GLfloat *);
- void (*WindowPos3iMESA)(GLint, GLint, GLint);
- void (*WindowPos3ivMESA)(const GLint *);
- void (*WindowPos3sMESA)(GLshort, GLshort, GLshort);
- void (*WindowPos3svMESA)(const GLshort *);
- void (*WindowPos4dMESA)(GLdouble, GLdouble, GLdouble, GLdouble);
- void (*WindowPos4dvMESA)(const GLdouble *);
- void (*WindowPos4fMESA)(GLfloat, GLfloat, GLfloat, GLfloat);
- void (*WindowPos4fvMESA)(const GLfloat *);
- void (*WindowPos4iMESA)(GLint, GLint, GLint, GLint);
- void (*WindowPos4ivMESA)(const GLint *);
- void (*WindowPos4sMESA)(GLshort, GLshort, GLshort, GLshort);
- void (*WindowPos4svMESA)(const GLshort *);
-
- /* GL_MESA_resize_buffers */
- void (*ResizeBuffersMESA)(void);
-
- /* GL_ARB_transpose_matrix */
- void (*LoadTransposeMatrixdARB)(const GLdouble m[16]);
- void (*LoadTransposeMatrixfARB)(const GLfloat m[16]);
- void (*MultTransposeMatrixdARB)(const GLdouble m[16]);
- void (*MultTransposeMatrixfARB)(const GLfloat m[16]);
-
+ void (*NewList)(GLuint list, GLenum mode); /* 0 */
+ void (*EndList)(void); /* 1 */
+ void (*CallList)(GLuint list); /* 2 */
+ void (*CallLists)(GLsizei n, GLenum type, const GLvoid * lists); /* 3 */
+ void (*DeleteLists)(GLuint list, GLsizei range); /* 4 */
+ GLuint (*GenLists)(GLsizei range); /* 5 */
+ void (*ListBase)(GLuint base); /* 6 */
+ void (*Begin)(GLenum mode); /* 7 */
+ void (*Bitmap)(GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte * bitmap); /* 8 */
+ void (*Color3b)(GLbyte red, GLbyte green, GLbyte blue); /* 9 */
+ void (*Color3bv)(const GLbyte * v); /* 10 */
+ void (*Color3d)(GLdouble red, GLdouble green, GLdouble blue); /* 11 */
+ void (*Color3dv)(const GLdouble * v); /* 12 */
+ void (*Color3f)(GLfloat red, GLfloat green, GLfloat blue); /* 13 */
+ void (*Color3fv)(const GLfloat * v); /* 14 */
+ void (*Color3i)(GLint red, GLint green, GLint blue); /* 15 */
+ void (*Color3iv)(const GLint * v); /* 16 */
+ void (*Color3s)(GLshort red, GLshort green, GLshort blue); /* 17 */
+ void (*Color3sv)(const GLshort * v); /* 18 */
+ void (*Color3ub)(GLubyte red, GLubyte green, GLubyte blue); /* 19 */
+ void (*Color3ubv)(const GLubyte * v); /* 20 */
+ void (*Color3ui)(GLuint red, GLuint green, GLuint blue); /* 21 */
+ void (*Color3uiv)(const GLuint * v); /* 22 */
+ void (*Color3us)(GLushort red, GLushort green, GLushort blue); /* 23 */
+ void (*Color3usv)(const GLushort * v); /* 24 */
+ void (*Color4b)(GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); /* 25 */
+ void (*Color4bv)(const GLbyte * v); /* 26 */
+ void (*Color4d)(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); /* 27 */
+ void (*Color4dv)(const GLdouble * v); /* 28 */
+ void (*Color4f)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); /* 29 */
+ void (*Color4fv)(const GLfloat * v); /* 30 */
+ void (*Color4i)(GLint red, GLint green, GLint blue, GLint alpha); /* 31 */
+ void (*Color4iv)(const GLint * v); /* 32 */
+ void (*Color4s)(GLshort red, GLshort green, GLshort blue, GLshort alpha); /* 33 */
+ void (*Color4sv)(const GLshort * v); /* 34 */
+ void (*Color4ub)(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); /* 35 */
+ void (*Color4ubv)(const GLubyte * v); /* 36 */
+ void (*Color4ui)(GLuint red, GLuint green, GLuint blue, GLuint alpha); /* 37 */
+ void (*Color4uiv)(const GLuint * v); /* 38 */
+ void (*Color4us)(GLushort red, GLushort green, GLushort blue, GLushort alpha); /* 39 */
+ void (*Color4usv)(const GLushort * v); /* 40 */
+ void (*EdgeFlag)(GLboolean flag); /* 41 */
+ void (*EdgeFlagv)(const GLboolean * flag); /* 42 */
+ void (*End)(void); /* 43 */
+ void (*Indexd)(GLdouble c); /* 44 */
+ void (*Indexdv)(const GLdouble * c); /* 45 */
+ void (*Indexf)(GLfloat c); /* 46 */
+ void (*Indexfv)(const GLfloat * c); /* 47 */
+ void (*Indexi)(GLint c); /* 48 */
+ void (*Indexiv)(const GLint * c); /* 49 */
+ void (*Indexs)(GLshort c); /* 50 */
+ void (*Indexsv)(const GLshort * c); /* 51 */
+ void (*Normal3b)(GLbyte nx, GLbyte ny, GLbyte nz); /* 52 */
+ void (*Normal3bv)(const GLbyte * v); /* 53 */
+ void (*Normal3d)(GLdouble nx, GLdouble ny, GLdouble nz); /* 54 */
+ void (*Normal3dv)(const GLdouble * v); /* 55 */
+ void (*Normal3f)(GLfloat nx, GLfloat ny, GLfloat nz); /* 56 */
+ void (*Normal3fv)(const GLfloat * v); /* 57 */
+ void (*Normal3i)(GLint nx, GLint ny, GLint nz); /* 58 */
+ void (*Normal3iv)(const GLint * v); /* 59 */
+ void (*Normal3s)(GLshort nx, GLshort ny, GLshort nz); /* 60 */
+ void (*Normal3sv)(const GLshort * v); /* 61 */
+ void (*RasterPos2d)(GLdouble x, GLdouble y); /* 62 */
+ void (*RasterPos2dv)(const GLdouble * v); /* 63 */
+ void (*RasterPos2f)(GLfloat x, GLfloat y); /* 64 */
+ void (*RasterPos2fv)(const GLfloat * v); /* 65 */
+ void (*RasterPos2i)(GLint x, GLint y); /* 66 */
+ void (*RasterPos2iv)(const GLint * v); /* 67 */
+ void (*RasterPos2s)(GLshort x, GLshort y); /* 68 */
+ void (*RasterPos2sv)(const GLshort * v); /* 69 */
+ void (*RasterPos3d)(GLdouble x, GLdouble y, GLdouble z); /* 70 */
+ void (*RasterPos3dv)(const GLdouble * v); /* 71 */
+ void (*RasterPos3f)(GLfloat x, GLfloat y, GLfloat z); /* 72 */
+ void (*RasterPos3fv)(const GLfloat * v); /* 73 */
+ void (*RasterPos3i)(GLint x, GLint y, GLint z); /* 74 */
+ void (*RasterPos3iv)(const GLint * v); /* 75 */
+ void (*RasterPos3s)(GLshort x, GLshort y, GLshort z); /* 76 */
+ void (*RasterPos3sv)(const GLshort * v); /* 77 */
+ void (*RasterPos4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 78 */
+ void (*RasterPos4dv)(const GLdouble * v); /* 79 */
+ void (*RasterPos4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 80 */
+ void (*RasterPos4fv)(const GLfloat * v); /* 81 */
+ void (*RasterPos4i)(GLint x, GLint y, GLint z, GLint w); /* 82 */
+ void (*RasterPos4iv)(const GLint * v); /* 83 */
+ void (*RasterPos4s)(GLshort x, GLshort y, GLshort z, GLshort w); /* 84 */
+ void (*RasterPos4sv)(const GLshort * v); /* 85 */
+ void (*Rectd)(GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); /* 86 */
+ void (*Rectdv)(const GLdouble * v1, const GLdouble * v2); /* 87 */
+ void (*Rectf)(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); /* 88 */
+ void (*Rectfv)(const GLfloat * v1, const GLfloat * v2); /* 89 */
+ void (*Recti)(GLint x1, GLint y1, GLint x2, GLint y2); /* 90 */
+ void (*Rectiv)(const GLint * v1, const GLint * v2); /* 91 */
+ void (*Rects)(GLshort x1, GLshort y1, GLshort x2, GLshort y2); /* 92 */
+ void (*Rectsv)(const GLshort * v1, const GLshort * v2); /* 93 */
+ void (*TexCoord1d)(GLdouble s); /* 94 */
+ void (*TexCoord1dv)(const GLdouble * v); /* 95 */
+ void (*TexCoord1f)(GLfloat s); /* 96 */
+ void (*TexCoord1fv)(const GLfloat * v); /* 97 */
+ void (*TexCoord1i)(GLint s); /* 98 */
+ void (*TexCoord1iv)(const GLint * v); /* 99 */
+ void (*TexCoord1s)(GLshort s); /* 100 */
+ void (*TexCoord1sv)(const GLshort * v); /* 101 */
+ void (*TexCoord2d)(GLdouble s, GLdouble t); /* 102 */
+ void (*TexCoord2dv)(const GLdouble * v); /* 103 */
+ void (*TexCoord2f)(GLfloat s, GLfloat t); /* 104 */
+ void (*TexCoord2fv)(const GLfloat * v); /* 105 */
+ void (*TexCoord2i)(GLint s, GLint t); /* 106 */
+ void (*TexCoord2iv)(const GLint * v); /* 107 */
+ void (*TexCoord2s)(GLshort s, GLshort t); /* 108 */
+ void (*TexCoord2sv)(const GLshort * v); /* 109 */
+ void (*TexCoord3d)(GLdouble s, GLdouble t, GLdouble r); /* 110 */
+ void (*TexCoord3dv)(const GLdouble * v); /* 111 */
+ void (*TexCoord3f)(GLfloat s, GLfloat t, GLfloat r); /* 112 */
+ void (*TexCoord3fv)(const GLfloat * v); /* 113 */
+ void (*TexCoord3i)(GLint s, GLint t, GLint r); /* 114 */
+ void (*TexCoord3iv)(const GLint * v); /* 115 */
+ void (*TexCoord3s)(GLshort s, GLshort t, GLshort r); /* 116 */
+ void (*TexCoord3sv)(const GLshort * v); /* 117 */
+ void (*TexCoord4d)(GLdouble s, GLdouble t, GLdouble r, GLdouble q); /* 118 */
+ void (*TexCoord4dv)(const GLdouble * v); /* 119 */
+ void (*TexCoord4f)(GLfloat s, GLfloat t, GLfloat r, GLfloat q); /* 120 */
+ void (*TexCoord4fv)(const GLfloat * v); /* 121 */
+ void (*TexCoord4i)(GLint s, GLint t, GLint r, GLint q); /* 122 */
+ void (*TexCoord4iv)(const GLint * v); /* 123 */
+ void (*TexCoord4s)(GLshort s, GLshort t, GLshort r, GLshort q); /* 124 */
+ void (*TexCoord4sv)(const GLshort * v); /* 125 */
+ void (*Vertex2d)(GLdouble x, GLdouble y); /* 126 */
+ void (*Vertex2dv)(const GLdouble * v); /* 127 */
+ void (*Vertex2f)(GLfloat x, GLfloat y); /* 128 */
+ void (*Vertex2fv)(const GLfloat * v); /* 129 */
+ void (*Vertex2i)(GLint x, GLint y); /* 130 */
+ void (*Vertex2iv)(const GLint * v); /* 131 */
+ void (*Vertex2s)(GLshort x, GLshort y); /* 132 */
+ void (*Vertex2sv)(const GLshort * v); /* 133 */
+ void (*Vertex3d)(GLdouble x, GLdouble y, GLdouble z); /* 134 */
+ void (*Vertex3dv)(const GLdouble * v); /* 135 */
+ void (*Vertex3f)(GLfloat x, GLfloat y, GLfloat z); /* 136 */
+ void (*Vertex3fv)(const GLfloat * v); /* 137 */
+ void (*Vertex3i)(GLint x, GLint y, GLint z); /* 138 */
+ void (*Vertex3iv)(const GLint * v); /* 139 */
+ void (*Vertex3s)(GLshort x, GLshort y, GLshort z); /* 140 */
+ void (*Vertex3sv)(const GLshort * v); /* 141 */
+ void (*Vertex4d)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 142 */
+ void (*Vertex4dv)(const GLdouble * v); /* 143 */
+ void (*Vertex4f)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 144 */
+ void (*Vertex4fv)(const GLfloat * v); /* 145 */
+ void (*Vertex4i)(GLint x, GLint y, GLint z, GLint w); /* 146 */
+ void (*Vertex4iv)(const GLint * v); /* 147 */
+ void (*Vertex4s)(GLshort x, GLshort y, GLshort z, GLshort w); /* 148 */
+ void (*Vertex4sv)(const GLshort * v); /* 149 */
+ void (*ClipPlane)(GLenum plane, const GLdouble * equation); /* 150 */
+ void (*ColorMaterial)(GLenum face, GLenum mode); /* 151 */
+ void (*CullFace)(GLenum mode); /* 152 */
+ void (*Fogf)(GLenum pname, GLfloat param); /* 153 */
+ void (*Fogfv)(GLenum pname, const GLfloat * params); /* 154 */
+ void (*Fogi)(GLenum pname, GLint param); /* 155 */
+ void (*Fogiv)(GLenum pname, const GLint * params); /* 156 */
+ void (*FrontFace)(GLenum mode); /* 157 */
+ void (*Hint)(GLenum target, GLenum mode); /* 158 */
+ void (*Lightf)(GLenum light, GLenum pname, GLfloat param); /* 159 */
+ void (*Lightfv)(GLenum light, GLenum pname, const GLfloat * params); /* 160 */
+ void (*Lighti)(GLenum light, GLenum pname, GLint param); /* 161 */
+ void (*Lightiv)(GLenum light, GLenum pname, const GLint * params); /* 162 */
+ void (*LightModelf)(GLenum pname, GLfloat param); /* 163 */
+ void (*LightModelfv)(GLenum pname, const GLfloat * params); /* 164 */
+ void (*LightModeli)(GLenum pname, GLint param); /* 165 */
+ void (*LightModeliv)(GLenum pname, const GLint * params); /* 166 */
+ void (*LineStipple)(GLint factor, GLushort pattern); /* 167 */
+ void (*LineWidth)(GLfloat width); /* 168 */
+ void (*Materialf)(GLenum face, GLenum pname, GLfloat param); /* 169 */
+ void (*Materialfv)(GLenum face, GLenum pname, const GLfloat * params); /* 170 */
+ void (*Materiali)(GLenum face, GLenum pname, GLint param); /* 171 */
+ void (*Materialiv)(GLenum face, GLenum pname, const GLint * params); /* 172 */
+ void (*PointSize)(GLfloat size); /* 173 */
+ void (*PolygonMode)(GLenum face, GLenum mode); /* 174 */
+ void (*PolygonStipple)(const GLubyte * mask); /* 175 */
+ void (*Scissor)(GLint x, GLint y, GLsizei width, GLsizei height); /* 176 */
+ void (*ShadeModel)(GLenum mode); /* 177 */
+ void (*TexParameterf)(GLenum target, GLenum pname, GLfloat param); /* 178 */
+ void (*TexParameterfv)(GLenum target, GLenum pname, const GLfloat * params); /* 179 */
+ void (*TexParameteri)(GLenum target, GLenum pname, GLint param); /* 180 */
+ void (*TexParameteriv)(GLenum target, GLenum pname, const GLint * params); /* 181 */
+ void (*TexImage1D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid * pixels); /* 182 */
+ void (*TexImage2D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid * pixels); /* 183 */
+ void (*TexEnvf)(GLenum target, GLenum pname, GLfloat param); /* 184 */
+ void (*TexEnvfv)(GLenum target, GLenum pname, const GLfloat * params); /* 185 */
+ void (*TexEnvi)(GLenum target, GLenum pname, GLint param); /* 186 */
+ void (*TexEnviv)(GLenum target, GLenum pname, const GLint * params); /* 187 */
+ void (*TexGend)(GLenum coord, GLenum pname, GLdouble param); /* 188 */
+ void (*TexGendv)(GLenum coord, GLenum pname, const GLdouble * params); /* 189 */
+ void (*TexGenf)(GLenum coord, GLenum pname, GLfloat param); /* 190 */
+ void (*TexGenfv)(GLenum coord, GLenum pname, const GLfloat * params); /* 191 */
+ void (*TexGeni)(GLenum coord, GLenum pname, GLint param); /* 192 */
+ void (*TexGeniv)(GLenum coord, GLenum pname, const GLint * params); /* 193 */
+ void (*FeedbackBuffer)(GLsizei size, GLenum type, GLfloat * buffer); /* 194 */
+ void (*SelectBuffer)(GLsizei size, GLuint * buffer); /* 195 */
+ GLint (*RenderMode)(GLenum mode); /* 196 */
+ void (*InitNames)(void); /* 197 */
+ void (*LoadName)(GLuint name); /* 198 */
+ void (*PassThrough)(GLfloat token); /* 199 */
+ void (*PopName)(void); /* 200 */
+ void (*PushName)(GLuint name); /* 201 */
+ void (*DrawBuffer)(GLenum mode); /* 202 */
+ void (*Clear)(GLbitfield mask); /* 203 */
+ void (*ClearAccum)(GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); /* 204 */
+ void (*ClearIndex)(GLfloat c); /* 205 */
+ void (*ClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); /* 206 */
+ void (*ClearStencil)(GLint s); /* 207 */
+ void (*ClearDepth)(GLclampd depth); /* 208 */
+ void (*StencilMask)(GLuint mask); /* 209 */
+ void (*ColorMask)(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); /* 210 */
+ void (*DepthMask)(GLboolean flag); /* 211 */
+ void (*IndexMask)(GLuint mask); /* 212 */
+ void (*Accum)(GLenum op, GLfloat value); /* 213 */
+ void (*Disable)(GLenum cap); /* 214 */
+ void (*Enable)(GLenum cap); /* 215 */
+ void (*Finish)(void); /* 216 */
+ void (*Flush)(void); /* 217 */
+ void (*PopAttrib)(void); /* 218 */
+ void (*PushAttrib)(GLbitfield mask); /* 219 */
+ void (*Map1d)(GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble * points); /* 220 */
+ void (*Map1f)(GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat * points); /* 221 */
+ void (*Map2d)(GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble * points); /* 222 */
+ void (*Map2f)(GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat * points); /* 223 */
+ void (*MapGrid1d)(GLint un, GLdouble u1, GLdouble u2); /* 224 */
+ void (*MapGrid1f)(GLint un, GLfloat u1, GLfloat u2); /* 225 */
+ void (*MapGrid2d)(GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); /* 226 */
+ void (*MapGrid2f)(GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); /* 227 */
+ void (*EvalCoord1d)(GLdouble u); /* 228 */
+ void (*EvalCoord1dv)(const GLdouble * u); /* 229 */
+ void (*EvalCoord1f)(GLfloat u); /* 230 */
+ void (*EvalCoord1fv)(const GLfloat * u); /* 231 */
+ void (*EvalCoord2d)(GLdouble u, GLdouble v); /* 232 */
+ void (*EvalCoord2dv)(const GLdouble * u); /* 233 */
+ void (*EvalCoord2f)(GLfloat u, GLfloat v); /* 234 */
+ void (*EvalCoord2fv)(const GLfloat * u); /* 235 */
+ void (*EvalMesh1)(GLenum mode, GLint i1, GLint i2); /* 236 */
+ void (*EvalPoint1)(GLint i); /* 237 */
+ void (*EvalMesh2)(GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); /* 238 */
+ void (*EvalPoint2)(GLint i, GLint j); /* 239 */
+ void (*AlphaFunc)(GLenum func, GLclampf ref); /* 240 */
+ void (*BlendFunc)(GLenum sfactor, GLenum dfactor); /* 241 */
+ void (*LogicOp)(GLenum opcode); /* 242 */
+ void (*StencilFunc)(GLenum func, GLint ref, GLuint mask); /* 243 */
+ void (*StencilOp)(GLenum fail, GLenum zfail, GLenum zpass); /* 244 */
+ void (*DepthFunc)(GLenum func); /* 245 */
+ void (*PixelZoom)(GLfloat xfactor, GLfloat yfactor); /* 246 */
+ void (*PixelTransferf)(GLenum pname, GLfloat param); /* 247 */
+ void (*PixelTransferi)(GLenum pname, GLint param); /* 248 */
+ void (*PixelStoref)(GLenum pname, GLfloat param); /* 249 */
+ void (*PixelStorei)(GLenum pname, GLint param); /* 250 */
+ void (*PixelMapfv)(GLenum map, GLint mapsize, const GLfloat * values); /* 251 */
+ void (*PixelMapuiv)(GLenum map, GLint mapsize, const GLuint * values); /* 252 */
+ void (*PixelMapusv)(GLenum map, GLint mapsize, const GLushort * values); /* 253 */
+ void (*ReadBuffer)(GLenum mode); /* 254 */
+ void (*CopyPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); /* 255 */
+ void (*ReadPixels)(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid * pixels); /* 256 */
+ void (*DrawPixels)(GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); /* 257 */
+ void (*GetBooleanv)(GLenum pname, GLboolean * params); /* 258 */
+ void (*GetClipPlane)(GLenum plane, GLdouble * equation); /* 259 */
+ void (*GetDoublev)(GLenum pname, GLdouble * params); /* 260 */
+ GLenum (*GetError)(void); /* 261 */
+ void (*GetFloatv)(GLenum pname, GLfloat * params); /* 262 */
+ void (*GetIntegerv)(GLenum pname, GLint * params); /* 263 */
+ void (*GetLightfv)(GLenum light, GLenum pname, GLfloat * params); /* 264 */
+ void (*GetLightiv)(GLenum light, GLenum pname, GLint * params); /* 265 */
+ void (*GetMapdv)(GLenum target, GLenum query, GLdouble * v); /* 266 */
+ void (*GetMapfv)(GLenum target, GLenum query, GLfloat * v); /* 267 */
+ void (*GetMapiv)(GLenum target, GLenum query, GLint * v); /* 268 */
+ void (*GetMaterialfv)(GLenum face, GLenum pname, GLfloat * params); /* 269 */
+ void (*GetMaterialiv)(GLenum face, GLenum pname, GLint * params); /* 270 */
+ void (*GetPixelMapfv)(GLenum map, GLfloat * values); /* 271 */
+ void (*GetPixelMapuiv)(GLenum map, GLuint * values); /* 272 */
+ void (*GetPixelMapusv)(GLenum map, GLushort * values); /* 273 */
+ void (*GetPolygonStipple)(GLubyte * mask); /* 274 */
+ const GLubyte * (*GetString)(GLenum name); /* 275 */
+ void (*GetTexEnvfv)(GLenum target, GLenum pname, GLfloat * params); /* 276 */
+ void (*GetTexEnviv)(GLenum target, GLenum pname, GLint * params); /* 277 */
+ void (*GetTexGendv)(GLenum coord, GLenum pname, GLdouble * params); /* 278 */
+ void (*GetTexGenfv)(GLenum coord, GLenum pname, GLfloat * params); /* 279 */
+ void (*GetTexGeniv)(GLenum coord, GLenum pname, GLint * params); /* 280 */
+ void (*GetTexImage)(GLenum target, GLint level, GLenum format, GLenum type, GLvoid * pixels); /* 281 */
+ void (*GetTexParameterfv)(GLenum target, GLenum pname, GLfloat * params); /* 282 */
+ void (*GetTexParameteriv)(GLenum target, GLenum pname, GLint * params); /* 283 */
+ void (*GetTexLevelParameterfv)(GLenum target, GLint level, GLenum pname, GLfloat * params); /* 284 */
+ void (*GetTexLevelParameteriv)(GLenum target, GLint level, GLenum pname, GLint * params); /* 285 */
+ GLboolean (*IsEnabled)(GLenum cap); /* 286 */
+ GLboolean (*IsList)(GLuint list); /* 287 */
+ void (*DepthRange)(GLclampd near, GLclampd far); /* 288 */
+ void (*Frustum)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); /* 289 */
+ void (*LoadIdentity)(void); /* 290 */
+ void (*LoadMatrixf)(const GLfloat * m); /* 291 */
+ void (*LoadMatrixd)(const GLdouble * m); /* 292 */
+ void (*MatrixMode)(GLenum mode); /* 293 */
+ void (*MultMatrixf)(const GLfloat * m); /* 294 */
+ void (*MultMatrixd)(const GLdouble * m); /* 295 */
+ void (*Ortho)(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); /* 296 */
+ void (*PopMatrix)(void); /* 297 */
+ void (*PushMatrix)(void); /* 298 */
+ void (*Rotated)(GLdouble angle, GLdouble x, GLdouble y, GLdouble z); /* 299 */
+ void (*Rotatef)(GLfloat angle, GLfloat x, GLfloat y, GLfloat z); /* 300 */
+ void (*Scaled)(GLdouble x, GLdouble y, GLdouble z); /* 301 */
+ void (*Scalef)(GLfloat x, GLfloat y, GLfloat z); /* 302 */
+ void (*Translated)(GLdouble x, GLdouble y, GLdouble z); /* 303 */
+ void (*Translatef)(GLfloat x, GLfloat y, GLfloat z); /* 304 */
+ void (*Viewport)(GLint x, GLint y, GLsizei width, GLsizei height); /* 305 */
+ void (*ArrayElement)(GLint i); /* 306 */
+ void (*BindTexture)(GLenum target, GLenum texture); /* 307 */
+ void (*ColorPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 308 */
+ void (*DisableClientState)(GLenum array); /* 309 */
+ void (*DrawArrays)(GLenum mode, GLint first, GLsizei count); /* 310 */
+ void (*DrawElements)(GLenum mode, GLsizei count, GLenum type, const GLvoid * indices); /* 311 */
+ void (*EdgeFlagPointer)(GLsizei stride, const GLvoid * pointer); /* 312 */
+ void (*EnableClientState)(GLenum array); /* 313 */
+ void (*IndexPointer)(GLenum type, GLsizei stride, const GLvoid * pointer); /* 314 */
+ void (*Indexub)(GLubyte c); /* 315 */
+ void (*Indexubv)(const GLubyte * c); /* 316 */
+ void (*InterleavedArrays)(GLenum format, GLsizei stride, const GLvoid * pointer); /* 317 */
+ void (*NormalPointer)(GLenum type, GLsizei stride, const GLvoid * pointer); /* 318 */
+ void (*PolygonOffset)(GLfloat factor, GLfloat units); /* 319 */
+ void (*TexCoordPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 320 */
+ void (*VertexPointer)(GLint size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 321 */
+ GLboolean (*AreTexturesResident)(GLsizei n, const GLenum * textures, GLboolean * residences); /* 322 */
+ void (*CopyTexImage1D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); /* 323 */
+ void (*CopyTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); /* 324 */
+ void (*CopyTexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); /* 325 */
+ void (*CopyTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); /* 326 */
+ void (*DeleteTextures)(GLsizei n, const GLenum * textures); /* 327 */
+ void (*GenTextures)(GLsizei n, GLenum * textures); /* 328 */
+ void (*GetPointerv)(GLenum pname, GLvoid * * params); /* 329 */
+ GLboolean (*IsTexture)(GLenum texture); /* 330 */
+ void (*PrioritizeTextures)(GLsizei n, const GLenum * textures, const GLclampf * priorities); /* 331 */
+ void (*TexSubImage1D)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid * pixels); /* 332 */
+ void (*TexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * pixels); /* 333 */
+ void (*PopClientAttrib)(void); /* 334 */
+ void (*PushClientAttrib)(GLbitfield mask); /* 335 */
+ void (*BlendColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); /* 336 */
+ void (*BlendEquation)(GLenum mode); /* 337 */
+ void (*DrawRangeElements)(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid * indices); /* 338 */
+ void (*ColorTable)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * table); /* 339 */
+ void (*ColorTableParameterfv)(GLenum target, GLenum pname, const GLfloat * params); /* 340 */
+ void (*ColorTableParameteriv)(GLenum target, GLenum pname, const GLint * params); /* 341 */
+ void (*CopyColorTable)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); /* 342 */
+ void (*GetColorTable)(GLenum target, GLenum format, GLenum type, GLvoid * table); /* 343 */
+ void (*GetColorTableParameterfv)(GLenum target, GLenum pname, GLfloat * params); /* 344 */
+ void (*GetColorTableParameteriv)(GLenum target, GLenum pname, GLint * params); /* 345 */
+ void (*ColorSubTable)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid * data); /* 346 */
+ void (*CopyColorSubTable)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); /* 347 */
+ void (*ConvolutionFilter1D)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid * image); /* 348 */
+ void (*ConvolutionFilter2D)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * image); /* 349 */
+ void (*ConvolutionParameterf)(GLenum target, GLenum pname, GLfloat params); /* 350 */
+ void (*ConvolutionParameterfv)(GLenum target, GLenum pname, const GLfloat * params); /* 351 */
+ void (*ConvolutionParameteri)(GLenum target, GLenum pname, GLint params); /* 352 */
+ void (*ConvolutionParameteriv)(GLenum target, GLenum pname, const GLint * params); /* 353 */
+ void (*CopyConvolutionFilter1D)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); /* 354 */
+ void (*CopyConvolutionFilter2D)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); /* 355 */
+ void (*GetConvolutionFilter)(GLenum target, GLenum format, GLenum type, GLvoid * image); /* 356 */
+ void (*GetConvolutionParameterfv)(GLenum target, GLenum pname, GLfloat * params); /* 357 */
+ void (*GetConvolutionParameteriv)(GLenum target, GLenum pname, GLint * params); /* 358 */
+ void (*GetSeparableFilter)(GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span); /* 359 */
+ void (*SeparableFilter2D)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid * row, const GLvoid * column); /* 360 */
+ void (*GetHistogram)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values); /* 361 */
+ void (*GetHistogramParameterfv)(GLenum target, GLenum pname, GLfloat * params); /* 362 */
+ void (*GetHistogramParameteriv)(GLenum target, GLenum pname, GLint * params); /* 363 */
+ void (*GetMinmax)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values); /* 364 */
+ void (*GetMinmaxParameterfv)(GLenum target, GLenum pname, GLfloat * params); /* 365 */
+ void (*GetMinmaxParameteriv)(GLenum target, GLenum pname, GLint * params); /* 366 */
+ void (*Histogram)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); /* 367 */
+ void (*Minmax)(GLenum target, GLenum internalformat, GLboolean sink); /* 368 */
+ void (*ResetHistogram)(GLenum target); /* 369 */
+ void (*ResetMinmax)(GLenum target); /* 370 */
+ void (*TexImage3D)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid * pixels); /* 371 */
+ void (*TexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid * pixels); /* 372 */
+ void (*CopyTexSubImage3D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); /* 373 */
+ void (*ActiveTextureARB)(GLenum texture); /* 374 */
+ void (*ClientActiveTextureARB)(GLenum texture); /* 375 */
+ void (*MultiTexCoord1dARB)(GLenum target, GLdouble s); /* 376 */
+ void (*MultiTexCoord1dvARB)(GLenum target, const GLdouble * v); /* 377 */
+ void (*MultiTexCoord1fARB)(GLenum target, GLfloat s); /* 378 */
+ void (*MultiTexCoord1fvARB)(GLenum target, const GLfloat * v); /* 379 */
+ void (*MultiTexCoord1iARB)(GLenum target, GLint s); /* 380 */
+ void (*MultiTexCoord1ivARB)(GLenum target, const GLint * v); /* 381 */
+ void (*MultiTexCoord1sARB)(GLenum target, GLshort s); /* 382 */
+ void (*MultiTexCoord1svARB)(GLenum target, const GLshort * v); /* 383 */
+ void (*MultiTexCoord2dARB)(GLenum target, GLdouble s, GLdouble t); /* 384 */
+ void (*MultiTexCoord2dvARB)(GLenum target, const GLdouble * v); /* 385 */
+ void (*MultiTexCoord2fARB)(GLenum target, GLfloat s, GLfloat t); /* 386 */
+ void (*MultiTexCoord2fvARB)(GLenum target, const GLfloat * v); /* 387 */
+ void (*MultiTexCoord2iARB)(GLenum target, GLint s, GLint t); /* 388 */
+ void (*MultiTexCoord2ivARB)(GLenum target, const GLint * v); /* 389 */
+ void (*MultiTexCoord2sARB)(GLenum target, GLshort s, GLshort t); /* 390 */
+ void (*MultiTexCoord2svARB)(GLenum target, const GLshort * v); /* 391 */
+ void (*MultiTexCoord3dARB)(GLenum target, GLdouble s, GLdouble t, GLdouble r); /* 392 */
+ void (*MultiTexCoord3dvARB)(GLenum target, const GLdouble * v); /* 393 */
+ void (*MultiTexCoord3fARB)(GLenum target, GLfloat s, GLfloat t, GLfloat r); /* 394 */
+ void (*MultiTexCoord3fvARB)(GLenum target, const GLfloat * v); /* 395 */
+ void (*MultiTexCoord3iARB)(GLenum target, GLint s, GLint t, GLint r); /* 396 */
+ void (*MultiTexCoord3ivARB)(GLenum target, const GLint * v); /* 397 */
+ void (*MultiTexCoord3sARB)(GLenum target, GLshort s, GLshort t, GLshort r); /* 398 */
+ void (*MultiTexCoord3svARB)(GLenum target, const GLshort * v); /* 399 */
+ void (*MultiTexCoord4dARB)(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); /* 400 */
+ void (*MultiTexCoord4dvARB)(GLenum target, const GLdouble * v); /* 401 */
+ void (*MultiTexCoord4fARB)(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); /* 402 */
+ void (*MultiTexCoord4fvARB)(GLenum target, const GLfloat * v); /* 403 */
+ void (*MultiTexCoord4iARB)(GLenum target, GLint s, GLint t, GLint r, GLint q); /* 404 */
+ void (*MultiTexCoord4ivARB)(GLenum target, const GLint * v); /* 405 */
+ void (*MultiTexCoord4sARB)(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); /* 406 */
+ void (*MultiTexCoord4svARB)(GLenum target, const GLshort * v); /* 407 */
+ void (*LoadTransposeMatrixfARB)(const GLfloat * m); /* 408 */
+ void (*LoadTransposeMatrixdARB)(const GLdouble * m); /* 409 */
+ void (*MultTransposeMatrixfARB)(const GLfloat * m); /* 410 */
+ void (*MultTransposeMatrixdARB)(const GLdouble * m); /* 411 */
+ void (*SampleCoverageARB)(GLclampf value, GLboolean invert); /* 412 */
+ void (*SamplePassARB)(GLenum pass); /* 413 */
+ void (*PolygonOffsetEXT)(GLfloat factor, GLfloat bias); /* 414 */
+ void (*GetTexFilterFuncSGIS)(GLenum target, GLenum filter, GLfloat * weights); /* 415 */
+ void (*TexFilterFuncSGIS)(GLenum target, GLenum filter, GLsizei n, const GLfloat * weights); /* 416 */
+ void (*GetHistogramEXT)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values); /* 417 */
+ void (*GetHistogramParameterfvEXT)(GLenum target, GLenum pname, GLfloat * params); /* 418 */
+ void (*GetHistogramParameterivEXT)(GLenum target, GLenum pname, GLint * params); /* 419 */
+ void (*GetMinmaxEXT)(GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid * values); /* 420 */
+ void (*GetMinmaxParameterfvEXT)(GLenum target, GLenum pname, GLfloat * params); /* 421 */
+ void (*GetMinmaxParameterivEXT)(GLenum target, GLenum pname, GLint * params); /* 422 */
+ void (*GetConvolutionFilterEXT)(GLenum target, GLenum format, GLenum type, GLvoid * image); /* 423 */
+ void (*GetConvolutionParameterfvEXT)(GLenum target, GLenum pname, GLfloat * params); /* 424 */
+ void (*GetConvolutionParameterivEXT)(GLenum target, GLenum pname, GLint * params); /* 425 */
+ void (*GetSeparableFilterEXT)(GLenum target, GLenum format, GLenum type, GLvoid * row, GLvoid * column, GLvoid * span); /* 426 */
+ void (*GetColorTableSGI)(GLenum target, GLenum format, GLenum type, GLvoid * table); /* 427 */
+ void (*GetColorTableParameterfvSGI)(GLenum target, GLenum pname, GLfloat * params); /* 428 */
+ void (*GetColorTableParameterivSGI)(GLenum target, GLenum pname, GLint * params); /* 429 */
+ void (*PixelTexGenSGIX)(GLenum mode); /* 430 */
+ void (*PixelTexGenParameteriSGIS)(GLenum pname, GLint param); /* 431 */
+ void (*PixelTexGenParameterivSGIS)(GLenum pname, const GLint * params); /* 432 */
+ void (*PixelTexGenParameterfSGIS)(GLenum pname, GLfloat param); /* 433 */
+ void (*PixelTexGenParameterfvSGIS)(GLenum pname, const GLfloat * params); /* 434 */
+ void (*GetPixelTexGenParameterivSGIS)(GLenum pname, GLint * params); /* 435 */
+ void (*GetPixelTexGenParameterfvSGIS)(GLenum pname, GLfloat * params); /* 436 */
+ void (*TexImage4DSGIS)(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid * pixels); /* 437 */
+ void (*TexSubImage4DSGIS)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid * pixels); /* 438 */
+ GLboolean (*AreTexturesResidentEXT)(GLsizei n, const GLenum * textures, GLboolean * residences); /* 439 */
+ void (*GenTexturesEXT)(GLsizei n, GLenum * textures); /* 440 */
+ GLboolean (*IsTextureEXT)(GLenum texture); /* 441 */
+ void (*DetailTexFuncSGIS)(GLenum target, GLsizei n, const GLfloat * points); /* 442 */
+ void (*GetDetailTexFuncSGIS)(GLenum target, GLfloat * points); /* 443 */
+ void (*SharpenTexFuncSGIS)(GLenum target, GLsizei n, const GLfloat * points); /* 444 */
+ void (*GetSharpenTexFuncSGIS)(GLenum target, GLfloat * points); /* 445 */
+ void (*SampleMaskSGIS)(GLclampf value, GLboolean invert); /* 446 */
+ void (*SamplePatternSGIS)(GLenum pattern); /* 447 */
+ void (*ColorPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 448 */
+ void (*EdgeFlagPointerEXT)(GLsizei stride, GLsizei count, const GLboolean * pointer); /* 449 */
+ void (*IndexPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 450 */
+ void (*NormalPointerEXT)(GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 451 */
+ void (*TexCoordPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 452 */
+ void (*VertexPointerEXT)(GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid * pointer); /* 453 */
+ void (*SpriteParameterfSGIX)(GLenum pname, GLfloat param); /* 454 */
+ void (*SpriteParameterfvSGIX)(GLenum pname, const GLfloat * params); /* 455 */
+ void (*SpriteParameteriSGIX)(GLenum pname, GLint param); /* 456 */
+ void (*SpriteParameterivSGIX)(GLenum pname, const GLint * params); /* 457 */
+ void (*PointParameterfEXT)(GLenum pname, GLfloat param); /* 458 */
+ void (*PointParameterfvEXT)(GLenum pname, const GLfloat * params); /* 459 */
+ GLint (*GetInstrumentsSGIX)(void); /* 460 */
+ void (*InstrumentsBufferSGIX)(GLsizei size, GLint * buffer); /* 461 */
+ GLint (*PollInstrumentsSGIX)(GLint * marker_p); /* 462 */
+ void (*ReadInstrumentsSGIX)(GLint marker); /* 463 */
+ void (*StartInstrumentsSGIX)(void); /* 464 */
+ void (*StopInstrumentsSGIX)(GLint marker); /* 465 */
+ void (*FrameZoomSGIX)(GLint factor); /* 466 */
+ void (*TagSampleBufferSGIX)(void); /* 467 */
+ void (*ReferencePlaneSGIX)(const GLdouble * equation); /* 468 */
+ void (*FlushRasterSGIX)(void); /* 469 */
+ void (*GetListParameterfvSGIX)(GLuint list, GLenum pname, GLfloat * params); /* 470 */
+ void (*GetListParameterivSGIX)(GLuint list, GLenum pname, GLint * params); /* 471 */
+ void (*ListParameterfSGIX)(GLuint list, GLenum pname, GLfloat param); /* 472 */
+ void (*ListParameterfvSGIX)(GLuint list, GLenum pname, const GLfloat * params); /* 473 */
+ void (*ListParameteriSGIX)(GLuint list, GLenum pname, GLint param); /* 474 */
+ void (*ListParameterivSGIX)(GLuint list, GLenum pname, const GLint * params); /* 475 */
+ void (*FragmentColorMaterialSGIX)(GLenum face, GLenum mode); /* 476 */
+ void (*FragmentLightfSGIX)(GLenum light, GLenum pname, GLfloat param); /* 477 */
+ void (*FragmentLightfvSGIX)(GLenum light, GLenum pname, const GLfloat * params); /* 478 */
+ void (*FragmentLightiSGIX)(GLenum light, GLenum pname, GLint param); /* 479 */
+ void (*FragmentLightivSGIX)(GLenum light, GLenum pname, const GLint * params); /* 480 */
+ void (*FragmentLightModelfSGIX)(GLenum pname, GLfloat param); /* 481 */
+ void (*FragmentLightModelfvSGIX)(GLenum pname, const GLfloat * params); /* 482 */
+ void (*FragmentLightModeliSGIX)(GLenum pname, GLint param); /* 483 */
+ void (*FragmentLightModelivSGIX)(GLenum pname, const GLint * params); /* 484 */
+ void (*FragmentMaterialfSGIX)(GLenum face, GLenum pname, GLfloat param); /* 485 */
+ void (*FragmentMaterialfvSGIX)(GLenum face, GLenum pname, const GLfloat * params); /* 486 */
+ void (*FragmentMaterialiSGIX)(GLenum face, GLenum pname, GLint param); /* 487 */
+ void (*FragmentMaterialivSGIX)(GLenum face, GLenum pname, const GLint * params); /* 488 */
+ void (*GetFragmentLightfvSGIX)(GLenum light, GLenum pname, GLfloat * params); /* 489 */
+ void (*GetFragmentLightivSGIX)(GLenum light, GLenum pname, GLint * params); /* 490 */
+ void (*GetFragmentMaterialfvSGIX)(GLenum face, GLenum pname, GLfloat * params); /* 491 */
+ void (*GetFragmentMaterialivSGIX)(GLenum face, GLenum pname, GLint * params); /* 492 */
+ void (*LightEnviSGIX)(GLenum pname, GLint param); /* 493 */
+ void (*VertexWeightfEXT)(GLfloat weight); /* 494 */
+ void (*VertexWeightfvEXT)(const GLfloat * weight); /* 495 */
+ void (*VertexWeightPointerEXT)(GLsizei size, GLenum type, GLsizei stride, const GLvoid * pointer); /* 496 */
+ void (*FlushVertexArrayRangeNV)(void); /* 497 */
+ void (*VertexArrayRangeNV)(GLsizei size, const GLvoid * pointer); /* 498 */
+ void (*CombinerParameterfvNV)(GLenum pname, const GLfloat * params); /* 499 */
+ void (*CombinerParameterfNV)(GLenum pname, GLfloat param); /* 500 */
+ void (*CombinerParameterivNV)(GLenum pname, const GLint * params); /* 501 */
+ void (*CombinerParameteriNV)(GLenum pname, GLint param); /* 502 */
+ void (*CombinerInputNV)(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); /* 503 */
+ void (*CombinerOutputNV)(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); /* 504 */
+ void (*FinalCombinerInputNV)(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); /* 505 */
+ void (*GetCombinerInputParameterfvNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params); /* 506 */
+ void (*GetCombinerInputParameterivNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params); /* 507 */
+ void (*GetCombinerOutputParameterfvNV)(GLenum stage, GLenum portion, GLenum pname, GLfloat * params); /* 508 */
+ void (*GetCombinerOutputParameterivNV)(GLenum stage, GLenum portion, GLenum pname, GLint * params); /* 509 */
+ void (*GetFinalCombinerInputParameterfvNV)(GLenum variable, GLenum pname, GLfloat * params); /* 510 */
+ void (*GetFinalCombinerInputParameterivNV)(GLenum variable, GLenum pname, GLint * params); /* 511 */
+ void (*ResizeBuffersMESA)(void); /* 512 */
+ void (*WindowPos2dMESA)(GLdouble x, GLdouble y); /* 513 */
+ void (*WindowPos2dvMESA)(const GLdouble * v); /* 514 */
+ void (*WindowPos2fMESA)(GLfloat x, GLfloat y); /* 515 */
+ void (*WindowPos2fvMESA)(const GLfloat * v); /* 516 */
+ void (*WindowPos2iMESA)(GLint x, GLint y); /* 517 */
+ void (*WindowPos2ivMESA)(const GLint * v); /* 518 */
+ void (*WindowPos2sMESA)(GLshort x, GLshort y); /* 519 */
+ void (*WindowPos2svMESA)(const GLshort * v); /* 520 */
+ void (*WindowPos3dMESA)(GLdouble x, GLdouble y, GLdouble z); /* 521 */
+ void (*WindowPos3dvMESA)(const GLdouble * v); /* 522 */
+ void (*WindowPos3fMESA)(GLfloat x, GLfloat y, GLfloat z); /* 523 */
+ void (*WindowPos3fvMESA)(const GLfloat * v); /* 524 */
+ void (*WindowPos3iMESA)(GLint x, GLint y, GLint z); /* 525 */
+ void (*WindowPos3ivMESA)(const GLint * v); /* 526 */
+ void (*WindowPos3sMESA)(GLshort x, GLshort y, GLshort z); /* 527 */
+ void (*WindowPos3svMESA)(const GLshort * v); /* 528 */
+ void (*WindowPos4dMESA)(GLdouble x, GLdouble y, GLdouble z, GLdouble w); /* 529 */
+ void (*WindowPos4dvMESA)(const GLdouble * v); /* 530 */
+ void (*WindowPos4fMESA)(GLfloat x, GLfloat y, GLfloat z, GLfloat w); /* 531 */
+ void (*WindowPos4fvMESA)(const GLfloat * v); /* 532 */
+ void (*WindowPos4iMESA)(GLint x, GLint y, GLint z, GLint w); /* 533 */
+ void (*WindowPos4ivMESA)(const GLint * v); /* 534 */
+ void (*WindowPos4sMESA)(GLshort x, GLshort y, GLshort z, GLshort w); /* 535 */
+ void (*WindowPos4svMESA)(const GLshort * v); /* 536 */
+ void (*BlendFuncSeparateEXT)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); /* 537 */
+ void (*IndexMaterialEXT)(GLenum face, GLenum mode); /* 538 */
+ void (*IndexFuncEXT)(GLenum func, GLclampf ref); /* 539 */
+ void (*LockArraysEXT)(GLint first, GLsizei count); /* 540 */
+ void (*UnlockArraysEXT)(void); /* 541 */
+ void (*CullParameterdvEXT)(GLenum pname, const GLdouble * params); /* 542 */
+ void (*CullParameterfvEXT)(GLenum pname, const GLfloat * params); /* 543 */
+ void (*HintPGI)(GLenum target, GLint mode); /* 544 */
+ void (*FogCoordfEXT)(GLfloat coord); /* 545 */
+ void (*FogCoordfvEXT)(const GLfloat * coord); /* 546 */
+ void (*FogCoorddEXT)(GLdouble coord); /* 547 */
+ void (*FogCoorddvEXT)(const GLdouble * coord); /* 548 */
+ void (*FogCoordPointerEXT)(GLenum type, GLsizei stride, const GLvoid * pointer); /* 549 */
+ void (*GetColorTableEXT)(GLenum target, GLenum format, GLenum type, GLvoid * data); /* 550 */
+ void (*GetColorTableParameterivEXT)(GLenum target, GLenum pname, GLint * params); /* 551 */
+ void (*GetColorTableParameterfvEXT)(GLenum target, GLenum pname, GLfloat * params); /* 552 */
};
-
#endif
diff --git a/xc/extras/Mesa/src/glapitemp.h b/xc/extras/Mesa/src/glapitemp.h
index aa3357a38..7b940def6 100644
--- a/xc/extras/Mesa/src/glapitemp.h
+++ b/xc/extras/Mesa/src/glapitemp.h
@@ -1978,7 +1978,7 @@ KEYWORD1 void KEYWORD2 NAME(SeparableFilter2D)(GLenum target, GLenum internalfor
-/* GL_ARB_multitexture */
+/* ARB 0. GL_ARB_multitexture */
KEYWORD1 void KEYWORD2 NAME(ActiveTextureARB)(GLenum texture)
{
@@ -2160,7 +2160,7 @@ KEYWORD1 void KEYWORD2 NAME(MultiTexCoord4svARB)(GLenum target, const GLshort *v
/* 2. GL_EXT_blend_color */
KEYWORD1 void KEYWORD2 NAME(BlendColorEXT)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
{
- DISPATCH(BlendColorEXT, (red, green, blue, alpha), (F, ";"));
+ DISPATCH(BlendColor, (red, green, blue, alpha), (F, ";"));
}
@@ -2177,31 +2177,31 @@ KEYWORD1 void KEYWORD2 NAME(PolygonOffsetEXT)(GLfloat factor, GLfloat bias)
KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage3DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
- DISPATCH(CopyTexSubImage3DEXT, (target, level, xoffset, yoffset, zoffset, x, y, width, height), (F, ";"));
+ DISPATCH(CopyTexSubImage3D, (target, level, xoffset, yoffset, zoffset, x, y, width, height), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexImage3DEXT)(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexImage3DEXT, (target, level, internalFormat, width, height, depth, border, format, type, pixels), (F, ";"));
+ DISPATCH(TexImage3D, (target, level, internalFormat, width, height, depth, border, format, type, pixels), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexSubImage3DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexSubImage3DEXT, (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels), (F, ";"));
+ DISPATCH(TexSubImage3D, (target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels), (F, ";"));
}
/* 7. GL_SGI_texture_filter4 */
-KEYWORD1 void KEYWORD2 NAME(GetTexFilterFuncSGIS)(GLenum target, GLenum filter, GLsizei n, const GLfloat *weights)
+KEYWORD1 void KEYWORD2 NAME(GetTexFilterFuncSGIS)(GLenum target, GLenum filter, GLfloat *weights)
{
- DISPATCH(GetTexFilterFuncSGIS, (target, filter, n, weights), (F, ";"));
+ DISPATCH(GetTexFilterFuncSGIS, (target, filter, weights), (F, ";"));
}
-KEYWORD1 void KEYWORD2 NAME(TexFilterFuncSGIS)(GLenum target, GLenum filter, GLfloat *weights)
+KEYWORD1 void KEYWORD2 NAME(TexFilterFuncSGIS)(GLenum target, GLenum filter, GLsizei n, const GLfloat *weights)
{
- DISPATCH(TexFilterFuncSGIS, (target, filter, weights), (F, ";"));
+ DISPATCH(TexFilterFuncSGIS, (target, filter, n, weights), (F, ";"));
}
@@ -2210,17 +2210,17 @@ KEYWORD1 void KEYWORD2 NAME(TexFilterFuncSGIS)(GLenum target, GLenum filter, GLf
KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage1DEXT)(GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width)
{
- DISPATCH(CopyTexSubImage1DEXT, (target, level, xoffset, x, y, width), (F, ";"));
+ DISPATCH(CopyTexSubImage1D, (target, level, xoffset, x, y, width), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexSubImage1DEXT)(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexSubImage1DEXT, (target, level, xoffset, width, format, type, pixels), (F, ";"));
+ DISPATCH(TexSubImage1D, (target, level, xoffset, width, format, type, pixels), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(TexSubImage2DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels)
{
- DISPATCH(TexSubImage2DEXT, (target, level, xoffset, yoffset, width, height, format, type, pixels), (F, ";"));
+ DISPATCH(TexSubImage2D, (target, level, xoffset, yoffset, width, height, format, type, pixels), (F, ";"));
}
@@ -2228,18 +2228,18 @@ KEYWORD1 void KEYWORD2 NAME(TexSubImage2DEXT)(GLenum target, GLint level, GLint
KEYWORD1 void KEYWORD2 NAME(CopyTexImage1DEXT)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border)
{
- DISPATCH(CopyTexImage1DEXT, (target, level, internalformat, x, y, width, border), (F, ";"));
+ DISPATCH(CopyTexImage1D, (target, level, internalformat, x, y, width, border), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyTexImage2DEXT)(GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border)
{
- DISPATCH(CopyTexImage2DEXT, (target, level, internalformat, x, y, width, height, border), (F, ";"));
+ DISPATCH(CopyTexImage2D, (target, level, internalformat, x, y, width, height, border), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyTexSubImage2DEXT)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height)
{
- DISPATCH(CopyTexSubImage2DEXT, (target, level, xoffset, yoffset, x, y, width, height), (F, ";"));
+ DISPATCH(CopyTexSubImage2D, (target, level, xoffset, yoffset, x, y, width, height), (F, ";"));
}
@@ -2277,22 +2277,22 @@ KEYWORD1 void KEYWORD2 NAME(GetMinmaxParameterivEXT)(GLenum target, GLenum pname
KEYWORD1 void KEYWORD2 NAME(HistogramEXT)(GLenum target, GLsizei width, GLenum internalformat, GLboolean sink)
{
- DISPATCH(HistogramEXT, (target, width, internalformat, sink), (F, ";"));
+ DISPATCH(Histogram, (target, width, internalformat, sink), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(MinmaxEXT)(GLenum target, GLenum internalformat, GLboolean sink)
{
- DISPATCH(MinmaxEXT, (target, internalformat, sink), (F, ";"));
+ DISPATCH(Minmax, (target, internalformat, sink), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ResetHistogramEXT)(GLenum target)
{
- DISPATCH(ResetHistogramEXT, (target), (F, ";"));
+ DISPATCH(ResetHistogram, (target), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ResetMinmaxEXT)(GLenum target)
{
- DISPATCH(ResetMinmaxEXT, (target), (F, ";"));
+ DISPATCH(ResetMinmax, (target), (F, ";"));
}
@@ -2301,42 +2301,42 @@ KEYWORD1 void KEYWORD2 NAME(ResetMinmaxEXT)(GLenum target)
KEYWORD1 void KEYWORD2 NAME(ConvolutionFilter1DEXT)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image)
{
- DISPATCH(ConvolutionFilter1DEXT, (target, internalformat, width, format, type, image), (F, ";"));
+ DISPATCH(ConvolutionFilter1D, (target, internalformat, width, format, type, image), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionFilter2DEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image)
{
- DISPATCH(ConvolutionFilter2DEXT, (target, internalformat, width, height, format, type, image), (F, ";"));
+ DISPATCH(ConvolutionFilter2D, (target, internalformat, width, height, format, type, image), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionParameterfEXT)(GLenum target, GLenum pname, GLfloat params)
{
- DISPATCH(ConvolutionParameterfEXT, (target, pname, params), (F, ";"));
+ DISPATCH(ConvolutionParameterf, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionParameterfvEXT)(GLenum target, GLenum pname, const GLfloat *params)
{
- DISPATCH(ConvolutionParameterfvEXT, (target, pname, params), (F, ";"));
+ DISPATCH(ConvolutionParameterfv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionParameteriEXT)(GLenum target, GLenum pname, GLint params)
{
- DISPATCH(ConvolutionParameteriEXT, (target, pname, params), (F, ";"));
+ DISPATCH(ConvolutionParameteri, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ConvolutionParameterivEXT)(GLenum target, GLenum pname, const GLint *params)
{
- DISPATCH(ConvolutionParameterivEXT, (target, pname, params), (F, ";"));
+ DISPATCH(ConvolutionParameteriv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyConvolutionFilter1DEXT)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width)
{
- DISPATCH(CopyConvolutionFilter1DEXT, (target, internalformat, x, y, width), (F, ";"));
+ DISPATCH(CopyConvolutionFilter1D, (target, internalformat, x, y, width), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyConvolutionFilter2DEXT)(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height)
{
- DISPATCH(CopyConvolutionFilter2DEXT, (target, internalformat, x, y, width, height), (F, ";"));
+ DISPATCH(CopyConvolutionFilter2D, (target, internalformat, x, y, width, height), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetConvolutionFilterEXT)(GLenum target, GLenum format, GLenum type, GLvoid *image)
@@ -2361,7 +2361,7 @@ KEYWORD1 void KEYWORD2 NAME(GetSeparableFilterEXT)(GLenum target, GLenum format,
KEYWORD1 void KEYWORD2 NAME(SeparableFilter2DEXT)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column)
{
- DISPATCH(SeparableFilter2DEXT, (target, internalformat, width, height, format, type, row, column), (F, ";"));
+ DISPATCH(SeparableFilter2D, (target, internalformat, width, height, format, type, row, column), (F, ";"));
}
@@ -2370,22 +2370,22 @@ KEYWORD1 void KEYWORD2 NAME(SeparableFilter2DEXT)(GLenum target, GLenum internal
KEYWORD1 void KEYWORD2 NAME(ColorTableParameterfvSGI)(GLenum target, GLenum pname, const GLfloat *params)
{
- DISPATCH(ColorTableParameterfvSGI, (target, pname, params), (F, ";"));
+ DISPATCH(ColorTableParameterfv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ColorTableParameterivSGI)(GLenum target, GLenum pname, const GLint *params)
{
- DISPATCH(ColorTableParameterivSGI, (target, pname, params), (F, ";"));
+ DISPATCH(ColorTableParameteriv, (target, pname, params), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(ColorTableSGI)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table)
{
- DISPATCH(ColorTableSGI, (target, internalformat, width, format, type, table), (F, ";"));
+ DISPATCH(ColorTable, (target, internalformat, width, format, type, table), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyColorTableSGI)(GLenum target, GLenum internalFormat, GLint x, GLint y, GLsizei width)
{
- DISPATCH(CopyColorTableSGI, (target, internalFormat, x, y, width), (F, ";"));
+ DISPATCH(CopyColorTable, (target, internalFormat, x, y, width), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetColorTableSGI)(GLenum target, GLenum format, GLenum type, GLvoid *table)
@@ -2404,6 +2404,14 @@ KEYWORD1 void KEYWORD2 NAME(GetColorTableParameterivSGI)(GLenum target, GLenum p
+/* ??. GL_SGIX_pixel_texture */
+
+KEYWORD1 void KEYWORD2 NAME(PixelTexGenSGIX)(GLenum mode)
+{
+ DISPATCH(PixelTexGenSGIX, (mode), (F, ";"));
+}
+
+
/* 15. GL_SGIS_pixel_texture */
KEYWORD1 void KEYWORD2 NAME(PixelTexGenParameterfSGIS)(GLenum target, GLfloat value)
@@ -2411,11 +2419,21 @@ KEYWORD1 void KEYWORD2 NAME(PixelTexGenParameterfSGIS)(GLenum target, GLfloat va
DISPATCH(PixelTexGenParameterfSGIS, (target, value), (F, ";"));
}
+KEYWORD1 void KEYWORD2 NAME(PixelTexGenParameterfvSGIS)(GLenum target, const GLfloat *value)
+{
+ DISPATCH(PixelTexGenParameterfvSGIS, (target, value), (F, ";"));
+}
+
KEYWORD1 void KEYWORD2 NAME(PixelTexGenParameteriSGIS)(GLenum target, GLint value)
{
DISPATCH(PixelTexGenParameteriSGIS, (target, value), (F, ";"));
}
+KEYWORD1 void KEYWORD2 NAME(PixelTexGenParameterivSGIS)(GLenum target, const GLint *value)
+{
+ DISPATCH(PixelTexGenParameterivSGIS, (target, value), (F, ";"));
+}
+
KEYWORD1 void KEYWORD2 NAME(GetPixelTexGenParameterfvSGIS)(GLenum target, GLfloat *value)
{
DISPATCH(GetPixelTexGenParameterfvSGIS, (target, value), (F, ";"));
@@ -2430,7 +2448,7 @@ KEYWORD1 void KEYWORD2 NAME(GetPixelTexGenParameterivSGIS)(GLenum target, GLint
/* 16. GL_SGIS_texture4D */
-KEYWORD1 void KEYWORD2 NAME(TexImage4DSGIS)(GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void *pixels)
+KEYWORD1 void KEYWORD2 NAME(TexImage4DSGIS)(GLenum target, GLint level, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLsizei extent, GLint border, GLenum format, GLenum type, const void *pixels)
{
DISPATCH(TexImage4DSGIS, (target, level, internalFormat, width, height, depth, extent, border, format, type, pixels), (F, ";"));
}
@@ -2566,7 +2584,7 @@ KEYWORD1 void KEYWORD2 NAME(DrawArraysEXT)(GLenum mode, GLint first, GLsizei cou
/* 37. GL_EXT_blend_minmax */
KEYWORD1 void KEYWORD2 NAME(BlendEquationEXT)(GLenum mode)
{
- DISPATCH(BlendEquationEXT, (mode), (F, "glBlendEquationEXT(0x%x);", mode));
+ DISPATCH(BlendEquation, (mode), (F, "glBlendEquationEXT(0x%x);", mode));
}
@@ -2648,6 +2666,13 @@ KEYWORD1 void KEYWORD2 NAME(FrameZoomSGIX)(GLint factor)
}
+/* 58. GL_SGIX_tag_sample_buffer */
+KEYWORD1 void KEYWORD2 NAME(TagSampleBufferSGIX)(void)
+{
+ DISPATCH(TagSampleBufferSGIX, (), (F, ";"));
+}
+
+
/* 60. GL_SGIX_reference_plane */
KEYWORD1 void KEYWORD2 NAME(ReferencePlaneSGIX)(const GLdouble *plane)
{
@@ -2664,6 +2689,7 @@ KEYWORD1 void KEYWORD2 NAME(FlushRasterSGIX)(void)
/* 66. GL_HP_image_transform */
+#if 0
KEYWORD1 void KEYWORD2 NAME(GetImageTransformParameterfvHP)(GLenum target, GLenum pname, GLfloat *param)
{
DISPATCH(GetImageTransformParameterfvHP, (target, pname, param), (F, ";"));
@@ -2693,21 +2719,22 @@ KEYWORD1 void KEYWORD2 NAME(ImageTransformParameterivHP)(GLenum target, GLenum p
{
DISPATCH(ImageTransformParameterivHP, (target, pname, param), (F, ";"));
}
+#endif
+
/* 74. GL_EXT_color_subtable */
KEYWORD1 void KEYWORD2 NAME(ColorSubTableEXT)(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const void *data)
{
- DISPATCH(ColorSubTableEXT, (target, start, count, format, type, data), (F, ";"));
+ DISPATCH(ColorSubTable, (target, start, count, format, type, data), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(CopyColorSubTableEXT)(GLenum target, GLsizei start, GLint x, GLint y, GLsizei width)
{
- DISPATCH(CopyColorSubTableEXT, (target, start, x, y, width), (F, ";"));
+ DISPATCH(CopyColorSubTable, (target, start, x, y, width), (F, ";"));
}
-
/* 77. GL_PGI_misc_hints */
KEYWORD1 void KEYWORD2 NAME(HintPGI)(GLenum target, GLint mode)
{
@@ -2715,12 +2742,11 @@ KEYWORD1 void KEYWORD2 NAME(HintPGI)(GLenum target, GLint mode)
}
-
/* 78. GL_EXT_paletted_texture */
KEYWORD1 void KEYWORD2 NAME(ColorTableEXT)(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table)
{
- DISPATCH(ColorTableEXT, (target, internalformat, width, format, type, table), (F, ";"));
+ DISPATCH(ColorTable, (target, internalformat, width, format, type, table), (F, ";"));
}
KEYWORD1 void KEYWORD2 NAME(GetColorTableEXT)(GLenum target, GLenum format, GLenum type, GLvoid *table)
@@ -2740,8 +2766,8 @@ KEYWORD1 void KEYWORD2 NAME(GetColorTableParameterivEXT)(GLenum target, GLenum p
-
/* 80. GL_SGIX_list_priority */
+
KEYWORD1 void KEYWORD2 NAME(GetListParameterfvSGIX)(GLuint list, GLenum name, GLfloat *param)
{
DISPATCH(GetListParameterfvSGIX, (list, name, param), (F, ";"));
@@ -2815,15 +2841,245 @@ KEYWORD1 void KEYWORD2 NAME(CullParameterdvEXT)(GLenum pname, const GLdouble *pa
+/* 102. GL_SGIX_fragment_lighting */
+KEYWORD1 void KEYWORD2 NAME(FragmentColorMaterialSGIX)(GLenum face, GLenum mode)
+{
+ DISPATCH(FragmentColorMaterialSGIX, (face, mode), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FragmentLightfSGIX)(GLenum light, GLenum pname, GLfloat param)
+{
+ DISPATCH(FragmentLightfSGIX, (light, pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FragmentLightfvSGIX)(GLenum light, GLenum pname, const GLfloat * params)
+{
+ DISPATCH(FragmentLightfvSGIX, (light, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FragmentLightiSGIX)(GLenum light, GLenum pname, GLint param)
+{
+ DISPATCH(FragmentLightiSGIX, (light, pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FragmentLightivSGIX)(GLenum light, GLenum pname, const GLint * params)
+{
+ DISPATCH(FragmentLightivSGIX, (light, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FragmentLightModelfSGIX)(GLenum pname, GLfloat param)
+{
+ DISPATCH(FragmentLightModelfSGIX, (pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FragmentLightModelfvSGIX)(GLenum pname, const GLfloat * params)
+{
+ DISPATCH(FragmentLightModelfvSGIX, (pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FragmentLightModeliSGIX)(GLenum pname, GLint param)
+{
+ DISPATCH(FragmentLightModeliSGIX, (pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FragmentLightModelivSGIX)(GLenum pname, const GLint * params)
+{
+ DISPATCH(FragmentLightModelivSGIX, (pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FragmentMaterialfSGIX)(GLenum face, GLenum pname, GLfloat param)
+{
+ DISPATCH(FragmentMaterialfSGIX, (face, pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FragmentMaterialfvSGIX)(GLenum face, GLenum pname, const GLfloat * params)
+{
+ DISPATCH(FragmentMaterialfvSGIX, (face, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FragmentMaterialiSGIX)(GLenum face, GLenum pname, GLint param)
+{
+ DISPATCH(FragmentMaterialiSGIX, (face, pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FragmentMaterialivSGIX)(GLenum face, GLenum pname, const GLint * params)
+{
+ DISPATCH(FragmentMaterialivSGIX, (face, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetFragmentLightfvSGIX)(GLenum light, GLenum pname, GLfloat * params)
+{
+ DISPATCH(FragmentLightfvSGIX, (light, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetFragmentLightivSGIX)(GLenum light, GLenum pname, GLint * params)
+{
+ DISPATCH(FragmentLightivSGIX, (light, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetFragmentMaterialfvSGIX)(GLenum face, GLenum pname, GLfloat * params)
+{
+ DISPATCH(FragmentMaterialfvSGIX, (face, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetFragmentMaterialivSGIX)(GLenum face, GLenum pname, GLint * params)
+{
+ DISPATCH(FragmentMaterialivSGIX, (face, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(LightEnviSGIX)(GLenum pname, GLint param)
+{
+ DISPATCH(LightEnviSGIX, (pname, param), (F, ";"));
+}
+
+
+/* 149. GL_EXT_fog_coord */
+KEYWORD1 void KEYWORD2 NAME(FogCoordfEXT)(GLfloat coord)
+{
+ DISPATCH(FogCoordfEXT, (coord), (F, "glFogCoordfEXT(%g);", coord));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FogCoordfvEXT)(const GLfloat * coord)
+{
+ DISPATCH(FogCoordfvEXT, (coord), (F, "glFogCoordfvEXT(%p);", coord));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FogCoorddEXT)(GLdouble coord)
+{
+ DISPATCH(FogCoorddEXT, (coord), (F, "glFogCoorddEXT(%g);", coord));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FogCoorddvEXT)(const GLdouble * coord)
+{
+ DISPATCH(FogCoorddvEXT, (coord), (F, "glFogCoorddvEXT(%p);", coord));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FogCoordPointerEXT)(GLenum type, GLsizei stride, const GLvoid * pointer)
+{
+ DISPATCH(FogCoordPointerEXT, (type, stride, pointer), (F, "glFogCoordPointerEXT(0x%x, %d, %p);", type, stride, pointer));
+}
+
+
+
/* 173. GL_EXT/INGR_blend_func_separate */
+KEYWORD1 void KEYWORD2 NAME(BlendFuncSeparateEXT)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
+{
+ DISPATCH(BlendFuncSeparateEXT, (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha), (F, ";"));
+}
+
KEYWORD1 void KEYWORD2 NAME(BlendFuncSeparateINGR)(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha)
{
- DISPATCH(BlendFuncSeparateINGR, (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha), (F, ";"));
+ DISPATCH(BlendFuncSeparateEXT, (sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha), (F, ";"));
}
+/* 190. GL_NV_vertex_array_range */
+KEYWORD1 void KEYWORD2 NAME(FlushVertexArrayRangeNV)(void)
+{
+ DISPATCH(FlushVertexArrayRangeNV, (), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(VertexArrayRangeNV)(GLsizei size, const GLvoid * pointer)
+{
+ DISPATCH(VertexArrayRangeNV, (size, pointer), (F, ";"));
+}
-/* GL_MESA_window_pos */
+
+/* 191. GL_NV_register_combiners */
+KEYWORD1 void KEYWORD2 NAME(CombinerParameterfvNV)(GLenum pname, const GLfloat * params)
+{
+ DISPATCH(CombinerParameterfvNV, (pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(CombinerParameterfNV)(GLenum pname, GLfloat param)
+{
+ DISPATCH(CombinerParameterfNV, (pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(CombinerParameterivNV)(GLenum pname, const GLint * params)
+{
+ DISPATCH(CombinerParameterivNV, (pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(CombinerParameteriNV)(GLenum pname, GLint param)
+{
+ DISPATCH(CombinerParameteriNV, (pname, param), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(CombinerInputNV)(GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage)
+{
+ DISPATCH(CombinerInputNV, (stage, portion, variable, input, mapping, componentUsage), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(CombinerOutputNV)(GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum)
+{
+ DISPATCH(CombinerOutputNV, (stage, portion, abOutput, cdOutput, sumOutput, scale, bias, abDotProduct, cdDotProduct, muxSum), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(FinalCombinerInputNV)(GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage)
+{
+ DISPATCH(FinalCombinerInputNV, (variable, input, mapping, componentUsage), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetCombinerInputParameterfvNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat * params)
+{
+ DISPATCH(GetCombinerInputParameterfvNV, (stage, portion, variable, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetCombinerInputParameterivNV)(GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint * params)
+{
+ DISPATCH(GetCombinerInputParameterivNV, (stage, portion, variable, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetCombinerOutputParameterfvNV)(GLenum stage, GLenum portion, GLenum pname, GLfloat * params)
+{
+ DISPATCH(GetCombinerOutputParameterfvNV, (stage, portion, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetCombinerOutputParameterivNV)(GLenum stage, GLenum portion, GLenum pname, GLint * params)
+{
+ DISPATCH(GetCombinerOutputParameterivNV, (stage, portion, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetFinalCombinerInputParameterfvNV)(GLenum variable, GLenum pname, GLfloat * params)
+{
+DISPATCH(GetFinalCombinerInputParameterfvNV, (variable, pname, params), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(GetFinalCombinerInputParameterivNV)(GLenum variable, GLenum pname, GLint * params)
+{
+DISPATCH(GetFinalCombinerInputParameterivNV, (variable, pname, params), (F, ";"));
+}
+
+
+
+/* 194. GL_EXT_vertex_weighting */
+KEYWORD1 void KEYWORD2 NAME(VertexWeightfEXT)(GLfloat weight)
+{
+ DISPATCH(VertexWeightfEXT, (weight), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(VertexWeightfvEXT)(const GLfloat * weight)
+{
+ DISPATCH(VertexWeightfvEXT, (weight), (F, ";"));
+}
+
+KEYWORD1 void KEYWORD2 NAME(VertexWeightPointerEXT)(GLsizei size, GLenum type, GLsizei stride, const GLvoid * pointer)
+{
+ DISPATCH(VertexWeightPointerEXT, (size, type, stride, pointer), (F, ";"));
+}
+
+
+
+/* 196. GL_MESA_resize_buffers */
+KEYWORD1 void KEYWORD2 NAME(ResizeBuffersMESA)(void)
+{
+ DISPATCH(ResizeBuffersMESA, (), (F, "glResizeBuffersMESA();"));
+}
+
+
+
+/* 197. GL_MESA_window_pos */
KEYWORD1 void KEYWORD2 NAME(WindowPos2iMESA)(GLint x, GLint y)
{
@@ -2947,15 +3203,7 @@ KEYWORD1 void KEYWORD2 NAME(WindowPos4dvMESA)(const GLdouble *p)
-/* GL_MESA_resize_buffers */
-KEYWORD1 void KEYWORD2 NAME(ResizeBuffersMESA)(void)
-{
- DISPATCH(ResizeBuffersMESA, (), (F, "glResizeBuffersMESA();"));
-}
-
-
-
-/* GL_ARB_transpose_matrix */
+/* ARB 2. GL_ARB_transpose_matrix */
KEYWORD1 void KEYWORD2 NAME(LoadTransposeMatrixdARB)(const GLdouble m[16])
{
DISPATCH(LoadTransposeMatrixdARB, (m), (F, "glLoadTransposeMatrixARB(%p);", m));
@@ -2977,6 +3225,19 @@ KEYWORD1 void KEYWORD2 NAME(MultTransposeMatrixfARB)(const GLfloat m[16])
}
+/* ARB 4. GL_ARB_multisample */
+KEYWORD1 void KEYWORD2 NAME(SampleCoverageARB)(GLclampf value, GLboolean invert)
+{
+ DISPATCH(SampleCoverageARB, (value, invert), (F, "glSampleCoverageARB(%f, %d);", value, invert));
+}
+
+
+KEYWORD1 void KEYWORD2 NAME(SamplePassARB)(GLenum pass)
+{
+ DISPATCH(SamplePassARB, (pass), (F, "glSamplePassARB(0x%x);", pass));
+}
+
+
#undef KEYWORD1
#undef KEYWORD2
diff --git a/xc/extras/Mesa/src/glheader.h b/xc/extras/Mesa/src/glheader.h
index acf8f5f84..4789ec7a3 100644
--- a/xc/extras/Mesa/src/glheader.h
+++ b/xc/extras/Mesa/src/glheader.h
@@ -59,7 +59,8 @@
#include "conf.h"
#endif
-#include <GL/gl.h>
+#include "GL/gl.h"
+#include "GL/glext.h"
/*
diff --git a/xc/extras/Mesa/src/image.c b/xc/extras/Mesa/src/image.c
index 543c6185c..16c8d4921 100644
--- a/xc/extras/Mesa/src/image.c
+++ b/xc/extras/Mesa/src/image.c
@@ -1578,10 +1578,17 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
srcType == GL_INT ||
srcType == GL_FLOAT ||
srcType == GL_UNSIGNED_BYTE_3_3_2 ||
+ srcType == GL_UNSIGNED_BYTE_2_3_3_REV ||
+ srcType == GL_UNSIGNED_SHORT_5_6_5 ||
+ srcType == GL_UNSIGNED_SHORT_5_6_5_REV ||
srcType == GL_UNSIGNED_SHORT_4_4_4_4 ||
+ srcType == GL_UNSIGNED_SHORT_4_4_4_4_REV ||
srcType == GL_UNSIGNED_SHORT_5_5_5_1 ||
+ srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV ||
srcType == GL_UNSIGNED_INT_8_8_8_8 ||
- srcType == GL_UNSIGNED_INT_10_10_10_2);
+ srcType == GL_UNSIGNED_INT_8_8_8_8_REV ||
+ srcType == GL_UNSIGNED_INT_10_10_10_2 ||
+ srcType == GL_UNSIGNED_INT_2_10_10_10_REV);
rComp = gComp = bComp = aComp = -1;
@@ -1979,10 +1986,10 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
for (i = 0; i < n; i ++) {
GLuint p = uisrc[i];
SWAP4BYTE(p);
- rgba[i][rComp] = ((p ) & 0x3 ) * (1.0F / 3.0F);
- rgba[i][gComp] = ((p >> 2) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][bComp] = ((p >> 12) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][aComp] = ((p >> 22) ) * (1.0F / 1023.0F);
+ rgba[i][rComp] = ((p >> 22) ) * (1.0F / 1023.0F);
+ rgba[i][gComp] = ((p >> 12) & 0x3ff) * (1.0F / 1023.0F);
+ rgba[i][bComp] = ((p >> 2) & 0x3ff) * (1.0F / 1023.0F);
+ rgba[i][aComp] = ((p ) & 0x3 ) * (1.0F / 3.0F);
}
}
else {
@@ -1990,10 +1997,10 @@ extract_float_rgba(GLuint n, GLfloat rgba[][4],
GLuint i;
for (i = 0; i < n; i ++) {
GLuint p = uisrc[i];
- rgba[i][rComp] = ((p ) & 0x3 ) * (1.0F / 3.0F);
- rgba[i][gComp] = ((p >> 2) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][bComp] = ((p >> 12) & 0x3ff) * (1.0F / 1023.0F);
- rgba[i][aComp] = ((p >> 22) ) * (1.0F / 1023.0F);
+ rgba[i][rComp] = ((p >> 22) ) * (1.0F / 1023.0F);
+ rgba[i][gComp] = ((p >> 12) & 0x3ff) * (1.0F / 1023.0F);
+ rgba[i][bComp] = ((p >> 2) & 0x3ff) * (1.0F / 1023.0F);
+ rgba[i][aComp] = ((p ) & 0x3 ) * (1.0F / 3.0F);
}
}
break;
@@ -2087,10 +2094,17 @@ _mesa_unpack_ubyte_color_span( const GLcontext *ctx,
srcType == GL_INT ||
srcType == GL_FLOAT ||
srcType == GL_UNSIGNED_BYTE_3_3_2 ||
+ srcType == GL_UNSIGNED_BYTE_2_3_3_REV ||
+ srcType == GL_UNSIGNED_SHORT_5_6_5 ||
+ srcType == GL_UNSIGNED_SHORT_5_6_5_REV ||
srcType == GL_UNSIGNED_SHORT_4_4_4_4 ||
+ srcType == GL_UNSIGNED_SHORT_4_4_4_4_REV ||
srcType == GL_UNSIGNED_SHORT_5_5_5_1 ||
+ srcType == GL_UNSIGNED_SHORT_1_5_5_5_REV ||
srcType == GL_UNSIGNED_INT_8_8_8_8 ||
- srcType == GL_UNSIGNED_INT_10_10_10_2);
+ srcType == GL_UNSIGNED_INT_8_8_8_8_REV ||
+ srcType == GL_UNSIGNED_INT_10_10_10_2 ||
+ srcType == GL_UNSIGNED_INT_2_10_10_10_REV);
/* this is intended for RGBA mode */
assert(ctx->Visual->RGBAflag);
diff --git a/xc/extras/Mesa/src/imaging.c b/xc/extras/Mesa/src/imaging.c
index 2bff238e7..f1d912b6d 100644
--- a/xc/extras/Mesa/src/imaging.c
+++ b/xc/extras/Mesa/src/imaging.c
@@ -40,6 +40,7 @@
+#if 0
void _mesa_BlendColor(GLclampf r, GLclampf g, GLclampf b, GLclampf a)
{
(void) r;
@@ -76,6 +77,7 @@ void _mesa_ColorTable(GLenum target, GLenum internalformat, GLsizei width, GLenu
(void) table;
WARNING("glColorTable");
}
+#endif
void _mesa_ColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params)
{
@@ -190,6 +192,7 @@ void _mesa_CopyConvolutionFilter2D(GLenum target, GLenum internalformat, GLint x
WARNING("glCopyConvolutionFilter2D");
}
+#if 0
void _mesa_GetColorTable(GLenum target, GLenum format, GLenum type, GLvoid *table)
{
(void) target;
@@ -214,6 +217,7 @@ void _mesa_GetColorTableParameteriv(GLenum target, GLenum pname, GLint *params)
(void) params;
WARNING("glGetColorTableParameteriv");
}
+#endif
void _mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid *image)
{
diff --git a/xc/extras/Mesa/src/imaging.h b/xc/extras/Mesa/src/imaging.h
index ddede6728..f376be5f6 100644
--- a/xc/extras/Mesa/src/imaging.h
+++ b/xc/extras/Mesa/src/imaging.h
@@ -3,7 +3,7 @@
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -36,6 +36,7 @@
+#if 0
extern void _mesa_BlendColor(GLclampf r, GLclampf g, GLclampf b, GLclampf a);
extern void _mesa_BlendEquation(GLenum eq);
@@ -43,11 +44,13 @@ extern void _mesa_BlendEquation(GLenum eq);
extern void _mesa_ColorSubTable(GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data);
extern void _mesa_ColorTable(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table);
+#endif
extern void _mesa_ColorTableParameterfv(GLenum target, GLenum pname, const GLfloat *params);
extern void _mesa_ColorTableParameteriv(GLenum target, GLenum pname, const GLint *params);
+
extern void _mesa_ConvolutionFilter1D(GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image);
extern void _mesa_ConvolutionFilter2D(GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image);
@@ -68,11 +71,13 @@ extern void _mesa_CopyConvolutionFilter1D(GLenum target, GLenum internalformat,
extern void _mesa_CopyConvolutionFilter2D(GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height);
+#if 0
extern void _mesa_GetColorTable(GLenum target, GLenum format, GLenum type, GLvoid *table);
extern void _mesa_GetColorTableParameterfv(GLenum target, GLenum pname, GLfloat *params);
extern void _mesa_GetColorTableParameteriv(GLenum target, GLenum pname, GLint *params);
+#endif
extern void _mesa_GetConvolutionFilter(GLenum target, GLenum format, GLenum type, GLvoid *image);
diff --git a/xc/extras/Mesa/src/matrix.c b/xc/extras/Mesa/src/matrix.c
index 1587ee74f..ef1abacd4 100644
--- a/xc/extras/Mesa/src/matrix.c
+++ b/xc/extras/Mesa/src/matrix.c
@@ -1057,7 +1057,7 @@ _mesa_PushMatrix( void )
switch (ctx->Transform.MatrixMode) {
case GL_MODELVIEW:
- if (ctx->ModelViewStackDepth>=MAX_MODELVIEW_STACK_DEPTH-1) {
+ if (ctx->ModelViewStackDepth >= MAX_MODELVIEW_STACK_DEPTH - 1) {
gl_error( ctx, GL_STACK_OVERFLOW, "glPushMatrix");
return;
}
@@ -1065,7 +1065,7 @@ _mesa_PushMatrix( void )
&ctx->ModelView );
break;
case GL_PROJECTION:
- if (ctx->ProjectionStackDepth>=MAX_PROJECTION_STACK_DEPTH) {
+ if (ctx->ProjectionStackDepth >= MAX_PROJECTION_STACK_DEPTH - 1) {
gl_error( ctx, GL_STACK_OVERFLOW, "glPushMatrix");
return;
}
@@ -1081,7 +1081,7 @@ _mesa_PushMatrix( void )
case GL_TEXTURE:
{
GLuint t = ctx->Texture.CurrentTransformUnit;
- if (ctx->TextureStackDepth[t] >= MAX_TEXTURE_STACK_DEPTH) {
+ if (ctx->TextureStackDepth[t] >= MAX_TEXTURE_STACK_DEPTH - 1) {
gl_error( ctx, GL_STACK_OVERFLOW, "glPushMatrix");
return;
}
diff --git a/xc/extras/Mesa/src/mmath.h b/xc/extras/Mesa/src/mmath.h
index 2d9a558fc..fe5dab7b0 100644
--- a/xc/extras/Mesa/src/mmath.h
+++ b/xc/extras/Mesa/src/mmath.h
@@ -22,7 +22,7 @@
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
-
+/* $XFree86: xc/extras/Mesa/src/mmath.h,v 1.4 2000/03/03 18:30:08 tsi Exp $ */
/*
* Faster arithmetic functions. If the FAST_MATH preprocessor symbol is
@@ -47,7 +47,10 @@
* In the worst case, we force the compiler to use a memory access to
* truncate the float, by specifying the 'volatile' keyword.
*/
-#if defined(__linux__) && defined(__i386__)
+#if defined(__linux__) && defined(__i386__) && !defined(IN_MODULE)
+/*
+ * A libc interface is needed for this...
+ */
#include <fpu_control.h>
#if !defined(_FPU_SETCW)
diff --git a/xc/extras/Mesa/src/span.c b/xc/extras/Mesa/src/span.c
index ffb3bc955..38f4449f1 100644
--- a/xc/extras/Mesa/src/span.c
+++ b/xc/extras/Mesa/src/span.c
@@ -816,15 +816,17 @@ void gl_write_texture_span( GLcontext *ctx,
* As above but perform multiple stages of texture application.
* Input: texUnits - number of texture units to apply
*/
-void gl_write_multitexture_span( GLcontext *ctx, GLuint texUnits,
- GLuint n, GLint x, GLint y,
- const GLdepth z[],
- CONST GLfloat s[][MAX_WIDTH],
- CONST GLfloat t[][MAX_WIDTH],
- CONST GLfloat u[][MAX_WIDTH],
- GLfloat lambda[][MAX_WIDTH],
- GLubyte rgbaIn[][4], CONST GLubyte spec[][4],
- GLenum primitive )
+void
+gl_write_multitexture_span( GLcontext *ctx, GLuint texUnits,
+ GLuint n, GLint x, GLint y,
+ const GLdepth z[],
+ CONST GLfloat s[MAX_TEXTURE_UNITS][MAX_WIDTH],
+ CONST GLfloat t[MAX_TEXTURE_UNITS][MAX_WIDTH],
+ CONST GLfloat u[MAX_TEXTURE_UNITS][MAX_WIDTH],
+ GLfloat lambda[][MAX_WIDTH],
+ GLubyte rgbaIn[MAX_TEXTURE_UNITS][4],
+ CONST GLubyte spec[MAX_TEXTURE_UNITS][4],
+ GLenum primitive )
{
GLubyte mask[MAX_WIDTH];
GLboolean write_all = GL_TRUE;
diff --git a/xc/extras/Mesa/src/span.h b/xc/extras/Mesa/src/span.h
index 27bd0a687..d305cb430 100644
--- a/xc/extras/Mesa/src/span.h
+++ b/xc/extras/Mesa/src/span.h
@@ -65,16 +65,17 @@ extern void gl_write_texture_span( GLcontext *ctx,
GLenum primitive );
-extern void gl_write_multitexture_span( GLcontext *ctx, GLuint texSets,
- GLuint n, GLint x, GLint y,
- const GLdepth z[],
- CONST GLfloat s[][MAX_WIDTH],
- CONST GLfloat t[][MAX_WIDTH],
- CONST GLfloat u[][MAX_WIDTH],
- GLfloat lambda[][MAX_WIDTH],
- GLubyte rgba[][4],
- CONST GLubyte spec[][4],
- GLenum primitive );
+extern void
+gl_write_multitexture_span( GLcontext *ctx, GLuint texSets,
+ GLuint n, GLint x, GLint y,
+ const GLdepth z[],
+ CONST GLfloat s[MAX_TEXTURE_UNITS][MAX_WIDTH],
+ CONST GLfloat t[MAX_TEXTURE_UNITS][MAX_WIDTH],
+ CONST GLfloat u[MAX_TEXTURE_UNITS][MAX_WIDTH],
+ GLfloat lambda[MAX_TEXTURE_UNITS][MAX_WIDTH],
+ GLubyte rgba[][4],
+ CONST GLubyte spec[][4],
+ GLenum primitive );
extern void gl_read_rgba_span( GLcontext *ctx, GLframebuffer *buffer,
diff --git a/xc/extras/Mesa/src/state.c b/xc/extras/Mesa/src/state.c
index 510f22656..b135a3df0 100644
--- a/xc/extras/Mesa/src/state.c
+++ b/xc/extras/Mesa/src/state.c
@@ -87,8 +87,6 @@
-
-
static int
generic_noop(void)
{
@@ -510,17 +508,21 @@ _mesa_init_exec_table(struct _glapi_table *exec)
exec->ResetMinmax = _mesa_ResetMinmax;
exec->SeparableFilter2D = _mesa_SeparableFilter2D;
- /* 6. GL_EXT_texture3d */
+ /* GL_EXT_texture3d */
+#if 0
exec->CopyTexSubImage3DEXT = _mesa_CopyTexSubImage3D;
exec->TexImage3DEXT = _mesa_TexImage3DEXT;
exec->TexSubImage3DEXT = _mesa_TexSubImage3D;
+#endif
/* GL_EXT_paletted_texture */
+#if 0
exec->ColorTableEXT = _mesa_ColorTableEXT;
exec->ColorSubTableEXT = _mesa_ColorSubTableEXT;
- exec->GetColorTableEXT = _mesa_GetColorTableEXT;
- exec->GetColorTableParameterfvEXT = _mesa_GetColorTableParameterfvEXT;
- exec->GetColorTableParameterivEXT = _mesa_GetColorTableParameterivEXT;
+#endif
+ exec->GetColorTableEXT = _mesa_GetColorTable;
+ exec->GetColorTableParameterfvEXT = _mesa_GetColorTableParameterfv;
+ exec->GetColorTableParameterivEXT = _mesa_GetColorTableParameteriv;
/* GL_EXT_compiled_vertex_array */
exec->LockArraysEXT = _mesa_LockArraysEXT;
@@ -530,17 +532,21 @@ _mesa_init_exec_table(struct _glapi_table *exec)
exec->PointParameterfEXT = _mesa_PointParameterfEXT;
exec->PointParameterfvEXT = _mesa_PointParameterfvEXT;
- /* 77. GL_PGI_misc_hints */
+ /* GL_PGI_misc_hints */
exec->HintPGI = _mesa_HintPGI;
/* GL_EXT_polygon_offset */
exec->PolygonOffsetEXT = _mesa_PolygonOffsetEXT;
/* GL_EXT_blend_minmax */
+#if 0
exec->BlendEquationEXT = _mesa_BlendEquationEXT;
+#endif
/* GL_EXT_blend_color */
+#if 0
exec->BlendColorEXT = _mesa_BlendColorEXT;
+#endif
/* GL_ARB_multitexture */
exec->ActiveTextureARB = _mesa_ActiveTextureARB;
@@ -579,7 +585,7 @@ _mesa_init_exec_table(struct _glapi_table *exec)
exec->MultiTexCoord4svARB = _mesa_MultiTexCoord4svARB;
/* GL_INGR_blend_func_separate */
- exec->BlendFuncSeparateINGR = _mesa_BlendFuncSeparateINGR;
+ exec->BlendFuncSeparateEXT = _mesa_BlendFuncSeparateEXT;
/* GL_MESA_window_pos */
exec->WindowPos2dMESA = _mesa_WindowPos2dMESA;
diff --git a/xc/extras/Mesa/src/teximage.c b/xc/extras/Mesa/src/teximage.c
index 20f16f507..7248cbad9 100644
--- a/xc/extras/Mesa/src/teximage.c
+++ b/xc/extras/Mesa/src/teximage.c
@@ -584,7 +584,7 @@ make_null_texture( GLcontext *ctx, GLenum internalFormat,
* interesting instead of leaving it indeterminate.
*/
if (texImage->Data) {
- char message[8][32] = {
+ static const char message[8][32] = {
" X X XXXXX XXX X ",
" XX XX X X X X X ",
" X X X X X X X ",
@@ -966,7 +966,7 @@ copytexsubimage_error_check( GLcontext *ctx, GLuint dimensions,
return GL_TRUE;
}
- teximage = texUnit->CurrentD[3]->Image[level];
+ teximage = texUnit->CurrentD[dimensions]->Image[level];
if (!teximage) {
char message[100];
sprintf(message, "glCopyTexSubImage%dD(undefined texture)", dimensions);
diff --git a/xc/extras/Mesa/src/triangle.c b/xc/extras/Mesa/src/triangle.c
index 1c5812e8c..818eda29d 100644
--- a/xc/extras/Mesa/src/triangle.c
+++ b/xc/extras/Mesa/src/triangle.c
@@ -3,7 +3,7 @@
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
@@ -1019,29 +1019,19 @@ static void general_textured_spec_triangle1( GLcontext *ctx, GLuint v0,
/*
- * Compute the lambda value (texture level value) for a fragment.
+ * Compute the lambda value for a fragment. (texture level of detail)
*/
-static GLfloat compute_lambda( GLfloat s, GLfloat dsdx, GLfloat dsdy,
- GLfloat t, GLfloat dtdx, GLfloat dtdy,
- GLfloat invQ, GLfloat dqdx, GLfloat dqdy,
- GLfloat width, GLfloat height )
+static GLfloat
+compute_lambda( GLfloat dsdx, GLfloat dsdy, GLfloat dtdx, GLfloat dtdy,
+ GLfloat invQ, GLfloat width, GLfloat height )
{
- GLfloat dudx, dudy, dvdx, dvdy;
- GLfloat r1, r2, rho2;
- GLfloat invQ_width = invQ * width;
- GLfloat invQ_height = invQ * height;
-
- dudx = (dsdx - s*dqdx) * invQ_width;
- dudy = (dsdy - s*dqdy) * invQ_width;
- dvdx = (dtdx - t*dqdx) * invQ_height;
- dvdy = (dtdy - t*dqdy) * invQ_height;
-
- r1 = dudx * dudx + dudy * dudy;
- r2 = dvdx * dvdx + dvdy * dvdy;
-
- rho2 = r1 + r2; /* used to be: rho2 = MAX2(r1,r2); */
- ASSERT( rho2 >= 0.0 );
-
+ GLfloat dudx = dsdx * invQ * width;
+ GLfloat dudy = dsdy * invQ * width;
+ GLfloat dvdx = dtdx * invQ * height;
+ GLfloat dvdy = dtdy * invQ * height;
+ GLfloat r1 = dudx * dudx + dudy * dudy;
+ GLfloat r2 = dvdx * dvdx + dvdy * dvdy;
+ GLfloat rho2 = r1 + r2; /* used to be: rho2 = MAX2(r1,r2); */
/* return log base 2 of rho */
return log(rho2) * 1.442695 * 0.5; /* 1.442695 = 1/log(2) */
}
@@ -1098,10 +1088,8 @@ static void lambda_textured_triangle1( GLcontext *ctx, GLuint v0, GLuint v1,
s[i] = ss*invQ; \
t[i] = tt*invQ; \
u[i] = uu*invQ; \
- lambda[i] = compute_lambda( s[i], dsdx, dsdy, \
- t[i], dtdx, dtdy, \
- invQ, dvdx, dvdy, \
- twidth, theight ); \
+ lambda[i] = compute_lambda( dsdx, dsdy, dtdx, dtdy, \
+ invQ, twidth, theight );\
ffz += fdzdx; \
ss += dsdx; \
tt += dtdx; \
@@ -1120,10 +1108,8 @@ static void lambda_textured_triangle1( GLcontext *ctx, GLuint v0, GLuint v1,
s[i] = ss*invQ; \
t[i] = tt*invQ; \
u[i] = uu*invQ; \
- lambda[i] = compute_lambda( s[i], dsdx, dsdy, \
- t[i], dtdx, dtdy, \
- invQ, dvdx, dvdy, \
- twidth, theight ); \
+ lambda[i] = compute_lambda( dsdx, dsdy, dtdx, dtdy, \
+ invQ, twidth, theight );\
ffz += fdzdx; \
ffr += fdrdx; \
ffg += fdgdx; \
@@ -1205,10 +1191,8 @@ static void lambda_textured_spec_triangle1( GLcontext *ctx, GLuint v0,
s[i] = ss*invQ; \
t[i] = tt*invQ; \
u[i] = uu*invQ; \
- lambda[i] = compute_lambda( s[i], dsdx, dsdy, \
- t[i], dtdx, dtdy, \
- invQ, dvdx, dvdy, \
- twidth, theight ); \
+ lambda[i] = compute_lambda( dsdx, dsdy, dtdx, dtdy, \
+ invQ, twidth, theight );\
ffz += fdzdx; \
ss += dsdx; \
tt += dtdx; \
@@ -1230,10 +1214,8 @@ static void lambda_textured_spec_triangle1( GLcontext *ctx, GLuint v0,
s[i] = ss*invQ; \
t[i] = tt*invQ; \
u[i] = uu*invQ; \
- lambda[i] = compute_lambda( s[i], dsdx, dsdy, \
- t[i], dtdx, dtdy, \
- invQ, dvdx, dvdy, \
- twidth, theight ); \
+ lambda[i] = compute_lambda( dsdx, dsdy, dtdx, dtdy, \
+ invQ, twidth, theight );\
ffz += fdzdx; \
ffr += fdrdx; \
ffg += fdgdx; \
@@ -1316,16 +1298,16 @@ static void lambda_multitextured_triangle1( GLcontext *ctx, GLuint v0,
s[0][i] = ss*invQ; \
t[0][i] = tt*invQ; \
u[0][i] = uu*invQ; \
- lambda[0][i] = compute_lambda( s[0][i], dsdx, dsdy, \
- t[0][i], dtdx, dtdy, \
- invQ, dvdx, dvdy, \
+ lambda[0][i] = compute_lambda( dsdx, dsdy, \
+ dtdx, dtdy, \
+ invQ, \
twidth0, theight0 ); \
s[1][i] = ss1*invQ1; \
t[1][i] = tt1*invQ1; \
u[1][i] = uu1*invQ1; \
- lambda[1][i] = compute_lambda( s[1][i], ds1dx, ds1dy, \
- t[1][i], dt1dx, dt1dy, \
- invQ1, dvdx, dvdy, \
+ lambda[1][i] = compute_lambda( ds1dx, ds1dy, \
+ dt1dx, dt1dy, \
+ invQ1, \
twidth1, theight1 ); \
ffz += fdzdx; \
ss += dsdx; \
@@ -1350,16 +1332,16 @@ static void lambda_multitextured_triangle1( GLcontext *ctx, GLuint v0,
s[0][i] = ss*invQ; \
t[0][i] = tt*invQ; \
u[0][i] = uu*invQ; \
- lambda[0][i] = compute_lambda( s[0][i], dsdx, dsdy, \
- t[0][i], dtdx, dtdy, \
- invQ, dvdx, dvdy, \
+ lambda[0][i] = compute_lambda( dsdx, dsdy, \
+ dtdx, dtdy, \
+ invQ, \
twidth0, theight0 ); \
s[1][i] = ss1*invQ1; \
t[1][i] = tt1*invQ1; \
u[1][i] = uu1*invQ1; \
- lambda[1][i] = compute_lambda( s[1][i], ds1dx, ds1dy, \
- t[1][i], dt1dx, dt1dy, \
- invQ1, dvdx, dvdy, \
+ lambda[1][i] = compute_lambda( ds1dx, ds1dy, \
+ dt1dx, dt1dy, \
+ invQ1, \
twidth1, theight1 ); \
ffz += fdzdx; \
ffr += fdrdx; \
@@ -1454,6 +1436,8 @@ static void null_triangle( GLcontext *ctx, GLuint v0, GLuint v1,
# define dputs(s)
#endif
+
+
/*
* Determine which triangle rendering function to use given the current
* rendering context.
diff --git a/xc/extras/Mesa/src/types.h b/xc/extras/Mesa/src/types.h
index 88c3b24b5..b3af90a8c 100644
--- a/xc/extras/Mesa/src/types.h
+++ b/xc/extras/Mesa/src/types.h
@@ -1654,15 +1654,15 @@ struct gl_context {
struct gl_constants Const;
/* Modelview matrix and stack */
- GLmatrix ModelView;
+ GLmatrix ModelView; /* current matrix, not stored on stack */
GLuint ModelViewStackDepth;
- GLmatrix ModelViewStack[MAX_MODELVIEW_STACK_DEPTH];
+ GLmatrix ModelViewStack[MAX_MODELVIEW_STACK_DEPTH - 1];
/* Projection matrix and stack */
- GLmatrix ProjectionMatrix;
+ GLmatrix ProjectionMatrix; /* current matrix, not stored on stack */
GLuint ProjectionStackDepth;
- GLmatrix ProjectionStack[MAX_PROJECTION_STACK_DEPTH];
- GLfloat NearFarStack[MAX_PROJECTION_STACK_DEPTH][2];
+ GLmatrix ProjectionStack[MAX_PROJECTION_STACK_DEPTH - 1];
+ GLfloat NearFarStack[MAX_PROJECTION_STACK_DEPTH - 1][2];
/* Combined modelview and projection matrix */
GLmatrix ModelProjectMatrix;
@@ -1674,7 +1674,7 @@ struct gl_context {
/* Texture matrix and stack */
GLmatrix TextureMatrix[MAX_TEXTURE_UNITS];
GLuint TextureStackDepth[MAX_TEXTURE_UNITS];
- GLmatrix TextureStack[MAX_TEXTURE_UNITS][MAX_TEXTURE_STACK_DEPTH];
+ GLmatrix TextureStack[MAX_TEXTURE_UNITS][MAX_TEXTURE_STACK_DEPTH - 1];
/* Display lists */
GLuint CallDepth; /* Current recursion calling depth */
diff --git a/xc/extras/Mesa/src/winpos.c b/xc/extras/Mesa/src/winpos.c
index 3362b9865..4843188de 100644
--- a/xc/extras/Mesa/src/winpos.c
+++ b/xc/extras/Mesa/src/winpos.c
@@ -65,8 +65,6 @@
void
_mesa_WindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w )
{
- /* KW: Assume that like rasterpos, this must be outside begin/end.
- */
GET_CURRENT_CONTEXT(ctx);
ASSERT_OUTSIDE_BEGIN_END_AND_FLUSH( ctx, "glWindowPosMESA" );
@@ -77,41 +75,18 @@ _mesa_WindowPos4fMESA( GLfloat x, GLfloat y, GLfloat z, GLfloat w )
ctx->Current.RasterPos[3] = w;
ctx->Current.RasterPosValid = GL_TRUE;
+ ctx->Current.RasterDistance = 0.0F;
- /* raster color */
- if (0 && ctx->Light.Enabled) {
-
- /* KW: I don't see how this can work - would have to take the
- * inverse of the projection matrix or the combined
- * modelProjection matrix, transform point and normal, and
- * do the lighting. Those inverses are not used for
- * anything else. This is not an object-space lighting
- * issue - what this is trying to do is something like
- * clip-space or window-space lighting...
- *
- * Anyway, since the implementation was never correct, I'm
- * not fixing it now - just use the unlit color.
- */
-
- /* KW: As a reprise, we now *do* keep the inverse of the projection
- * matrix, so it is not infeasible to try to swim up stream
- * in this manner. I still don't want to implement it,
- * however.
- */
+ /* raster color = current color or index */
+ if (ctx->Visual->RGBAflag) {
+ UBYTE_RGBA_TO_FLOAT_RGBA(ctx->Current.RasterColor,
+ ctx->Current.ByteColor);
}
else {
- /* use current color or index */
- if (ctx->Visual->RGBAflag) {
- UBYTE_RGBA_TO_FLOAT_RGBA(ctx->Current.RasterColor,
- ctx->Current.ByteColor);
- }
- else {
- ctx->Current.RasterIndex = ctx->Current.Index;
- }
+ ctx->Current.RasterIndex = ctx->Current.Index;
}
- ctx->Current.RasterDistance = 0.0;
-
+ /* raster texcoord = current texcoord */
{
GLuint texSet;
for (texSet=0; texSet<MAX_TEXTURE_UNITS; texSet++) {
diff --git a/xc/extras/X-TrueType/xttcconv.c b/xc/extras/X-TrueType/xttcconv.c
index 72c1c1032..acfc259f2 100644
--- a/xc/extras/X-TrueType/xttcconv.c
+++ b/xc/extras/X-TrueType/xttcconv.c
@@ -30,7 +30,7 @@
Notice===
*/
-/* $XFree86: xc/extras/X-TrueType/xttcconv.c,v 1.6 2000/02/18 12:18:48 tsi Exp $ */
+/* $XFree86: xc/extras/X-TrueType/xttcconv.c,v 1.7 2000/02/29 16:07:13 tsi Exp $ */
#include "xttversion.h"
@@ -110,11 +110,11 @@ static char *X_TT_CodeConvModulePath = NULL;
# endif /* CCONV_MODULE_SUBDIR */
# ifndef CCONV_MODULE_EXTENTION
-# if !defined(MakeDllModules)
+# ifndef DLOPEN_HACK
# define CCONV_MODULE_EXTENTION ".a"
# else
# define CCONV_MODULE_EXTENTION ".so"
-# endif /* defined(FONTMODULE) && ! MakeDllModules */
+# endif /* DLOPEN_HACK */
# endif /* CCONV_MODULE_EXTENTION */
# define LEN_CCONV_MODULE_EXTENTION (sizeof(CCONV_MODULE_EXTENTION)-1)
# ifndef CCONV_ENTRYPOINT_POSTFIX
diff --git a/xc/extras/Xpm/lib/data.c b/xc/extras/Xpm/lib/data.c
index e7d15f8a2..64a7a6305 100644
--- a/xc/extras/Xpm/lib/data.c
+++ b/xc/extras/Xpm/lib/data.c
@@ -37,7 +37,7 @@
static char *RCS_Version = "$XpmVersion: 3.4k $";
/* Internal version number */
-static char *RCS_Id = "$Id: data.c,v 1.1.1.1 1999/12/05 01:23:41 daryll Exp $";
+static char *RCS_Id = "Id: xpm.shar,v 3.71 1998/03/19 19:47:14 lehors Exp $";
#include "XpmI.h"
#endif
diff --git a/xc/nls/XLC_LOCALE/C b/xc/nls/XLC_LOCALE/C
index fbec97d58..d9fd8bab7 100644
--- a/xc/nls/XLC_LOCALE/C
+++ b/xc/nls/XLC_LOCALE/C
@@ -1,5 +1,6 @@
XCOMM $XConsortium: C /main/8 1996/09/28 16:50:43 rws $
XCOMM XLocale Database Sample for C.
+XCOMM $XFree86: xc/nls/XLC_LOCALE/C,v 1.3 2000/02/25 21:02:32 dawes Exp $
XCOMM
XCOMM
@@ -47,4 +48,16 @@ cs0 {
ct_encoding ISO8859-1:GL
}
+XCOMM cs1 class
+cs1 {
+ side GR:Default
+ length 1
+#if WCHAR32
+ wc_encoding \x30000000
+#else
+ wc_encoding \x00008080
+#endif
+ ct_encoding ISO8859-1:GR
+}
+
END XLC_XLOCALE
diff --git a/xc/nls/XLC_LOCALE/en_US.UTF-8 b/xc/nls/XLC_LOCALE/en_US.UTF-8
index cc9cf6eeb..6779498a4 100644
--- a/xc/nls/XLC_LOCALE/en_US.UTF-8
+++ b/xc/nls/XLC_LOCALE/en_US.UTF-8
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/nls/XLC_LOCALE/en_US.UTF-8,v 1.1 2000/02/12 02:54:29 dawes Exp $
+XCOMM $XFree86: xc/nls/XLC_LOCALE/en_US.UTF-8,v 1.2 2000/02/29 03:09:07 dawes Exp $
XCOMM XLocale Database Sample for en_US.UTF-8
XCOMM
@@ -80,14 +80,6 @@ fs6 {
}
END XLC_FONTSET
-XLC_CHARSET_DEFINE
-csd0 {
- charset_name ISO10646-1
- side none
- sequence \x1b%G
-}
-END XLC_CHARSET_DEFINE
-
XCOMM
XCOMM XLC_XLOCALE category
XCOMM
diff --git a/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c b/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c
index 1e521d948..8e55df245 100644
--- a/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c
+++ b/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c
@@ -1,5 +1,5 @@
/*
- * $Id: fbdev.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: fbdev.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c,v 1.2 1999/12/30 03:03:08 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.c,v 1.3 2000/02/23 20:29:57 dawes Exp $ */
#include "fbdev.h"
diff --git a/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h b/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h
index acf0b08a4..052539bcc 100644
--- a/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h
+++ b/xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h
@@ -1,5 +1,5 @@
/*
- * $Id: fbdev.h,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: fbdev.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h,v 1.2 1999/12/30 03:03:08 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbdev.h,v 1.3 2000/02/23 20:29:58 dawes Exp $ */
#ifndef _FBDEV_H_
#define _FBDEV_H_
diff --git a/xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c b/xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c
index 564b62585..c6da862d6 100644
--- a/xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c
+++ b/xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c
@@ -1,5 +1,5 @@
/*
- * $Id: fbinit.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: fbinit.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c,v 1.2 1999/12/30 03:03:08 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/fbdev/fbinit.c,v 1.3 2000/02/23 20:29:58 dawes Exp $ */
#include <fbdev.h>
diff --git a/xc/programs/Xserver/hw/kdrive/itsy/itsy.c b/xc/programs/Xserver/hw/kdrive/itsy/itsy.c
index f3ca954bc..b80a8c900 100644
--- a/xc/programs/Xserver/hw/kdrive/itsy/itsy.c
+++ b/xc/programs/Xserver/hw/kdrive/itsy/itsy.c
@@ -1,5 +1,5 @@
/*
- * $Id: itsy.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: itsy.c,v 1.1 1999/11/02 18:39:28 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/itsy.c,v 1.2 1999/12/30 03:03:09 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/itsy.c,v 1.3 2000/02/23 20:29:58 dawes Exp $ */
#include "itsy.h"
diff --git a/xc/programs/Xserver/hw/kdrive/itsy/itsy.h b/xc/programs/Xserver/hw/kdrive/itsy/itsy.h
index bb3ee0d1a..c74eda008 100644
--- a/xc/programs/Xserver/hw/kdrive/itsy/itsy.h
+++ b/xc/programs/Xserver/hw/kdrive/itsy/itsy.h
@@ -1,5 +1,5 @@
/*
- * $Id: itsy.h,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: itsy.h,v 1.1 1999/11/02 18:39:28 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/itsy.h,v 1.1 1999/11/19 13:53:53 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/itsy.h,v 1.2 2000/02/23 20:29:59 dawes Exp $ */
#include "kdrive.h"
#include <stdio.h>
diff --git a/xc/programs/Xserver/hw/kdrive/itsy/kbd.c b/xc/programs/Xserver/hw/kdrive/itsy/kbd.c
index 1914c824e..1cc959e25 100644
--- a/xc/programs/Xserver/hw/kdrive/itsy/kbd.c
+++ b/xc/programs/Xserver/hw/kdrive/itsy/kbd.c
@@ -1,5 +1,5 @@
/*
- * $Id: kbd.c,v 1.1.1.1 2000/01/06 12:55:49 faith Exp $
+ * Id: kbd.c,v 1.1 1999/11/02 18:39:28 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/kbd.c,v 1.1 1999/11/19 13:53:53 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/kbd.c,v 1.2 2000/02/23 20:29:59 dawes Exp $ */
#include "itsy.h"
#include "kkeymap.h"
diff --git a/xc/programs/Xserver/hw/kdrive/itsy/ts.c b/xc/programs/Xserver/hw/kdrive/itsy/ts.c
index 5b2dce9ff..d17afa446 100644
--- a/xc/programs/Xserver/hw/kdrive/itsy/ts.c
+++ b/xc/programs/Xserver/hw/kdrive/itsy/ts.c
@@ -1,5 +1,5 @@
/*
- * $Id: ts.c,v 1.1.1.1 2000/01/06 12:55:49 faith Exp $
+ * Id: ts.c,v 1.1 1999/11/02 18:39:28 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/ts.c,v 1.1 1999/11/19 13:53:54 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/itsy/ts.c,v 1.2 2000/02/23 20:29:59 dawes Exp $ */
#define NEED_EVENTS
#include "itsy.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kasync.c b/xc/programs/Xserver/hw/kdrive/kasync.c
index bd5887f61..b76f83226 100644
--- a/xc/programs/Xserver/hw/kdrive/kasync.c
+++ b/xc/programs/Xserver/hw/kdrive/kasync.c
@@ -1,5 +1,5 @@
/*
- * $Id: kasync.c,v 1.1.1.2 2000/02/22 15:42:26 kem Exp $
+ * Id: kasync.c,v 1.3 1999/11/24 04:29:28 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kasync.c,v 1.3 2000/01/21 18:41:49 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kasync.c,v 1.4 2000/02/23 20:29:52 dawes Exp $ */
#include "kdrive.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kcmap.c b/xc/programs/Xserver/hw/kdrive/kcmap.c
index 4cc6f8a8a..934093f4a 100644
--- a/xc/programs/Xserver/hw/kdrive/kcmap.c
+++ b/xc/programs/Xserver/hw/kdrive/kcmap.c
@@ -1,5 +1,5 @@
/*
- * $Id: kcmap.c,v 1.1.1.1 2000/01/06 12:55:45 faith Exp $
+ * Id: kcmap.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kcmap.c,v 1.1 1999/11/19 13:53:48 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kcmap.c,v 1.2 2000/02/23 20:29:52 dawes Exp $ */
#include "kdrive.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kcolor.c b/xc/programs/Xserver/hw/kdrive/kcolor.c
index a1bbd931b..c0f1ccafe 100644
--- a/xc/programs/Xserver/hw/kdrive/kcolor.c
+++ b/xc/programs/Xserver/hw/kdrive/kcolor.c
@@ -1,5 +1,5 @@
/*
- * $Id: kcolor.c,v 1.1.1.1 2000/01/06 12:55:46 faith Exp $
+ * Id: kcolor.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kcolor.c,v 1.2 1999/12/30 03:03:05 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kcolor.c,v 1.3 2000/02/23 20:29:52 dawes Exp $ */
#include "kdrive.h"
#include <stdio.h>
diff --git a/xc/programs/Xserver/hw/kdrive/kcurscol.c b/xc/programs/Xserver/hw/kdrive/kcurscol.c
index db0e06b6c..3327e9044 100644
--- a/xc/programs/Xserver/hw/kdrive/kcurscol.c
+++ b/xc/programs/Xserver/hw/kdrive/kcurscol.c
@@ -1,5 +1,5 @@
/*
- * $Id: kcurscol.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: kcurscol.c,v 1.3 1999/12/21 03:51:56 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
diff --git a/xc/programs/Xserver/hw/kdrive/kdrive.c b/xc/programs/Xserver/hw/kdrive/kdrive.c
index 0b423f3ca..d2e70ce65 100644
--- a/xc/programs/Xserver/hw/kdrive/kdrive.c
+++ b/xc/programs/Xserver/hw/kdrive/kdrive.c
@@ -1,5 +1,5 @@
/*
- * $Id: kdrive.c,v 1.1.1.1 2000/01/06 12:55:46 faith Exp $
+ * Id: kdrive.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.c,v 1.2 1999/12/30 03:03:05 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.c,v 1.3 2000/02/23 20:29:53 dawes Exp $ */
#include "kdrive.h"
#ifdef PSEUDO8
diff --git a/xc/programs/Xserver/hw/kdrive/kdrive.h b/xc/programs/Xserver/hw/kdrive/kdrive.h
index e0c07b391..b5d374e60 100644
--- a/xc/programs/Xserver/hw/kdrive/kdrive.h
+++ b/xc/programs/Xserver/hw/kdrive/kdrive.h
@@ -1,5 +1,5 @@
/*
- * $Id: kdrive.h,v 1.1.1.2 2000/02/22 15:42:26 kem Exp $
+ * Id: kdrive.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.h,v 1.3 2000/01/21 01:12:01 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kdrive.h,v 1.4 2000/02/23 20:29:53 dawes Exp $ */
#include <stdio.h>
#include "X.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kinfo.c b/xc/programs/Xserver/hw/kdrive/kinfo.c
index da6fbf562..fad2ec055 100644
--- a/xc/programs/Xserver/hw/kdrive/kinfo.c
+++ b/xc/programs/Xserver/hw/kdrive/kinfo.c
@@ -1,5 +1,5 @@
/*
- * $Id: kinfo.c,v 1.1.1.1 2000/01/06 12:55:47 faith Exp $
+ * Id: kinfo.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kinfo.c,v 1.1 1999/11/19 13:53:49 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kinfo.c,v 1.2 2000/02/23 20:29:53 dawes Exp $ */
#include "kdrive.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kinput.c b/xc/programs/Xserver/hw/kdrive/kinput.c
index 373cb6a72..545c6660a 100644
--- a/xc/programs/Xserver/hw/kdrive/kinput.c
+++ b/xc/programs/Xserver/hw/kdrive/kinput.c
@@ -1,5 +1,5 @@
/*
- * $Id: kinput.c,v 1.1.1.1 2000/01/06 12:55:47 faith Exp $
+ * Id: kinput.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kinput.c,v 1.2 1999/12/30 03:03:06 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kinput.c,v 1.3 2000/02/23 20:29:54 dawes Exp $ */
#include "kdrive.h"
#include "inputstr.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kkeymap.c b/xc/programs/Xserver/hw/kdrive/kkeymap.c
index 277b47308..3d2fc663e 100644
--- a/xc/programs/Xserver/hw/kdrive/kkeymap.c
+++ b/xc/programs/Xserver/hw/kdrive/kkeymap.c
@@ -1,5 +1,5 @@
/*
- * $Id: kkeymap.c,v 1.1.1.1 2000/01/06 12:55:47 faith Exp $
+ * Id: kkeymap.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kkeymap.c,v 1.1 1999/11/19 13:53:49 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kkeymap.c,v 1.2 2000/02/23 20:29:54 dawes Exp $ */
#include "kdrive.h"
#include <X11/keysym.h>
diff --git a/xc/programs/Xserver/hw/kdrive/kkeymap.h b/xc/programs/Xserver/hw/kdrive/kkeymap.h
index 2b71b5829..2cb6a7f42 100644
--- a/xc/programs/Xserver/hw/kdrive/kkeymap.h
+++ b/xc/programs/Xserver/hw/kdrive/kkeymap.h
@@ -1,5 +1,5 @@
/*
- * $Id: kkeymap.h,v 1.1.1.1 2000/01/06 12:55:47 faith Exp $
+ * Id: kkeymap.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kkeymap.h,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kkeymap.h,v 1.2 2000/02/23 20:29:54 dawes Exp $ */
/*
* All global variables and functions pertaining to keyboard key mapping
* live in this header file.
diff --git a/xc/programs/Xserver/hw/kdrive/kloadmap.c b/xc/programs/Xserver/hw/kdrive/kloadmap.c
index 0255602b0..54413466a 100644
--- a/xc/programs/Xserver/hw/kdrive/kloadmap.c
+++ b/xc/programs/Xserver/hw/kdrive/kloadmap.c
@@ -1,5 +1,5 @@
/*
- * $Id: kloadmap.c,v 1.1.1.1 2000/01/06 12:55:47 faith Exp $
+ * Id: kloadmap.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kloadmap.c,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kloadmap.c,v 1.2 2000/02/23 20:29:54 dawes Exp $ */
#include "kdrive.h"
#include "kkeymap.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kmap.c b/xc/programs/Xserver/hw/kdrive/kmap.c
index 38467ff9c..51e30d47f 100644
--- a/xc/programs/Xserver/hw/kdrive/kmap.c
+++ b/xc/programs/Xserver/hw/kdrive/kmap.c
@@ -1,5 +1,5 @@
/*
- * $Id: kmap.c,v 1.1.1.1 2000/01/06 12:55:47 faith Exp $
+ * Id: kmap.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/kmap.c,v 1.2 1999/12/30 03:03:06 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/kmap.c,v 1.3 2000/02/23 20:29:55 dawes Exp $ */
#include "kdrive.h"
diff --git a/xc/programs/Xserver/hw/kdrive/kmode.c b/xc/programs/Xserver/hw/kdrive/kmode.c
index c18be506e..73ef282f2 100644
--- a/xc/programs/Xserver/hw/kdrive/kmode.c
+++ b/xc/programs/Xserver/hw/kdrive/kmode.c
@@ -1,5 +1,5 @@
/*
- * $Id: kmode.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: kmode.c,v 1.2 1999/12/21 03:50:49 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
diff --git a/xc/programs/Xserver/hw/kdrive/knoop.c b/xc/programs/Xserver/hw/kdrive/knoop.c
index 7710f2655..939fc2514 100644
--- a/xc/programs/Xserver/hw/kdrive/knoop.c
+++ b/xc/programs/Xserver/hw/kdrive/knoop.c
@@ -1,5 +1,5 @@
/*
- * $Id: knoop.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: knoop.c,v 1.2 1999/11/02 06:16:28 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/knoop.c,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/knoop.c,v 1.2 2000/02/23 20:29:55 dawes Exp $ */
/*
* GC ops that don't do anything
diff --git a/xc/programs/Xserver/hw/kdrive/ktest.c b/xc/programs/Xserver/hw/kdrive/ktest.c
index e2eea8980..3b6439f66 100644
--- a/xc/programs/Xserver/hw/kdrive/ktest.c
+++ b/xc/programs/Xserver/hw/kdrive/ktest.c
@@ -1,5 +1,5 @@
/*
- * $Id: ktest.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: ktest.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/ktest.c,v 1.1 1999/11/19 13:53:50 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/ktest.c,v 1.2 2000/02/23 20:29:55 dawes Exp $ */
#include "kdrive.h"
diff --git a/xc/programs/Xserver/hw/kdrive/linux/keyboard.c b/xc/programs/Xserver/hw/kdrive/linux/keyboard.c
index 2ffde9a3b..f46591bf1 100644
--- a/xc/programs/Xserver/hw/kdrive/linux/keyboard.c
+++ b/xc/programs/Xserver/hw/kdrive/linux/keyboard.c
@@ -1,5 +1,5 @@
/*
- * $Id: keyboard.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: keyboard.c,v 1.2 1999/11/08 06:22:01 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
diff --git a/xc/programs/Xserver/hw/kdrive/linux/linux.c b/xc/programs/Xserver/hw/kdrive/linux/linux.c
index e31c8e73b..af50fd7ec 100644
--- a/xc/programs/Xserver/hw/kdrive/linux/linux.c
+++ b/xc/programs/Xserver/hw/kdrive/linux/linux.c
@@ -1,5 +1,5 @@
/*
- * $Id: linux.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: linux.c,v 1.2 1999/11/23 04:21:09 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
diff --git a/xc/programs/Xserver/hw/kdrive/linux/ps2.c b/xc/programs/Xserver/hw/kdrive/linux/ps2.c
index 6ecf8e1f1..9ab1d59ac 100644
--- a/xc/programs/Xserver/hw/kdrive/linux/ps2.c
+++ b/xc/programs/Xserver/hw/kdrive/linux/ps2.c
@@ -1,5 +1,5 @@
/*
- * $Id: ps2.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: ps2.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3.c b/xc/programs/Xserver/hw/kdrive/savage/s3.c
index 49106a773..d350bfdea 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3.c,v 1.1.1.1 2000/01/06 12:55:49 faith Exp $
+ * Id: s3.c,v 1.3 1999/11/02 08:17:24 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3.c,v 1.2 1999/12/30 03:03:10 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3.c,v 1.3 2000/02/23 20:30:01 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3.h b/xc/programs/Xserver/hw/kdrive/savage/s3.h
index 45f977b31..b88371186 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3.h
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3.h
@@ -1,5 +1,5 @@
/*
- * $Id: s3.h,v 1.1.1.1 2000/01/06 12:55:50 faith Exp $
+ * Id: s3.h,v 1.2 1999/11/02 08:17:24 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3.h,v 1.2 1999/12/30 03:03:10 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3.h,v 1.3 2000/02/23 20:30:02 dawes Exp $ */
#ifndef _S3_H_
#define _S3_H_
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3clock.c b/xc/programs/Xserver/hw/kdrive/savage/s3clock.c
index 060de6213..dcab1cd6b 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3clock.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3clock.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3clock.c,v 1.1.1.1 2000/01/06 12:55:50 faith Exp $
+ * Id: s3clock.c,v 1.2 1999/11/02 06:16:29 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3clock.c,v 1.2 1999/12/30 03:03:11 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3clock.c,v 1.3 2000/02/23 20:30:02 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3cmap.c b/xc/programs/Xserver/hw/kdrive/savage/s3cmap.c
index 150808496..fb334a1f0 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3cmap.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3cmap.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3cmap.c,v 1.1.1.1 2000/01/06 12:55:50 faith Exp $
+ * Id: s3cmap.c,v 1.2 1999/11/02 06:16:29 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3cmap.c,v 1.2 1999/12/30 03:03:11 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3cmap.c,v 1.3 2000/02/23 20:30:02 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3curs.c b/xc/programs/Xserver/hw/kdrive/savage/s3curs.c
index 573f91c17..68fef0682 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3curs.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3curs.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3curs.c,v 1.1.1.1 2000/01/06 12:55:50 faith Exp $
+ * Id: s3curs.c,v 1.2 1999/11/02 06:16:29 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3curs.c,v 1.2 1999/12/30 03:03:11 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3curs.c,v 1.3 2000/02/23 20:30:03 dawes Exp $ */
#include "s3.h"
#include "s3draw.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3draw.c b/xc/programs/Xserver/hw/kdrive/savage/s3draw.c
index 951af0b40..eb6114af9 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3draw.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3draw.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3draw.c,v 1.1.1.1 2000/01/06 12:55:51 faith Exp $
+ * Id: s3draw.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3draw.c,v 1.2 1999/12/30 03:03:11 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3draw.c,v 1.3 2000/02/23 20:30:03 dawes Exp $ */
#include "s3.h"
#include "s3draw.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3draw.h b/xc/programs/Xserver/hw/kdrive/savage/s3draw.h
index 48b6faca5..5c524453d 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3draw.h
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3draw.h
@@ -1,5 +1,5 @@
/*
- * $Id: s3draw.h,v 1.1.1.1 2000/01/06 12:55:51 faith Exp $
+ * Id: s3draw.h,v 1.2 1999/11/02 06:16:29 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3draw.h,v 1.2 1999/12/30 03:03:12 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3draw.h,v 1.3 2000/02/23 20:30:04 dawes Exp $ */
#ifndef _S3DRAW_H_
#define _S3DRAW_H_
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3gc.c b/xc/programs/Xserver/hw/kdrive/savage/s3gc.c
index 5f992724b..6141585d7 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3gc.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3gc.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3gc.c,v 1.1.1.2 2000/02/22 15:42:27 kem Exp $
+ * Id: s3gc.c,v 1.2 1999/11/02 06:16:29 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3gc.c,v 1.3 2000/01/21 01:12:02 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3gc.c,v 1.4 2000/02/23 20:30:04 dawes Exp $ */
#include "s3.h"
#include "s3draw.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3reg.c b/xc/programs/Xserver/hw/kdrive/savage/s3reg.c
index 7efa8e73a..5801402cf 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3reg.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3reg.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3reg.c,v 1.1.1.1 2000/01/06 12:55:52 faith Exp $
+ * Id: s3reg.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3reg.c,v 1.2 1999/12/30 03:03:12 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3reg.c,v 1.3 2000/02/23 20:30:04 dawes Exp $ */
#include "s3reg.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3reg.h b/xc/programs/Xserver/hw/kdrive/savage/s3reg.h
index c7beefc5c..fa8ae20ba 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3reg.h
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3reg.h
@@ -1,5 +1,5 @@
/*
- * $Id: s3reg.h,v 1.1.1.1 2000/01/06 12:55:52 faith Exp $
+ * Id: s3reg.h,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3reg.h,v 1.2 1999/12/30 03:03:12 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3reg.h,v 1.3 2000/02/23 20:30:05 dawes Exp $ */
#ifndef _S3REG_H_
#define _S3REG_H_
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3rtst.c b/xc/programs/Xserver/hw/kdrive/savage/s3rtst.c
index ac67df1a3..3a1d6448b 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3rtst.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3rtst.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3rtst.c,v 1.1.1.1 2000/01/06 12:55:52 faith Exp $
+ * Id: s3rtst.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3rtst.c,v 1.1 1999/11/19 13:53:57 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3rtst.c,v 1.2 2000/02/23 20:30:05 dawes Exp $ */
#include <stdio.h>
#include "s3reg.h"
diff --git a/xc/programs/Xserver/hw/kdrive/savage/s3stub.c b/xc/programs/Xserver/hw/kdrive/savage/s3stub.c
index 979cdbf60..5f46b9920 100644
--- a/xc/programs/Xserver/hw/kdrive/savage/s3stub.c
+++ b/xc/programs/Xserver/hw/kdrive/savage/s3stub.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3stub.c,v 1.1.1.1 2000/01/06 12:55:52 faith Exp $
+ * Id: s3stub.c,v 1.1 1999/11/02 08:19:15 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3stub.c,v 1.2 1999/12/30 03:03:13 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/savage/s3stub.c,v 1.3 2000/02/23 20:30:05 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sis.c b/xc/programs/Xserver/hw/kdrive/sis530/sis.c
index 953a8f4ae..c4d1a9b53 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sis.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sis.c
@@ -1,5 +1,5 @@
/*
- * $Id: sis.c,v 1.1.1.1 2000/01/06 12:55:52 faith Exp $
+ * Id: sis.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sis.c,v 1.2 1999/12/30 03:03:14 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sis.c,v 1.3 2000/02/23 20:30:06 dawes Exp $ */
#include "sis.h"
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sis.h b/xc/programs/Xserver/hw/kdrive/sis530/sis.h
index 2bdefe015..d41da8948 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sis.h
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sis.h
@@ -1,5 +1,5 @@
/*
- * $Id: sis.h,v 1.1.1.1 2000/01/06 12:55:53 faith Exp $
+ * Id: sis.h,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sis.h,v 1.2 1999/12/30 03:03:14 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sis.h,v 1.3 2000/02/23 20:30:07 dawes Exp $ */
#ifndef _SIS_H_
#define _SIS_H_
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sisclock.c b/xc/programs/Xserver/hw/kdrive/sis530/sisclock.c
index d90635fae..795c7540b 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sisclock.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sisclock.c
@@ -1,5 +1,5 @@
/*
- * $Id: sisclock.c,v 1.1.1.1 2000/01/06 12:55:53 faith Exp $
+ * Id: sisclock.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisclock.c,v 1.1 1999/11/19 13:53:59 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisclock.c,v 1.2 2000/02/23 20:30:07 dawes Exp $ */
#include "sis.h"
#include <stdio.h>
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/siscmap.c b/xc/programs/Xserver/hw/kdrive/sis530/siscmap.c
index f2c86544b..09ba8ef0a 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/siscmap.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/siscmap.c
@@ -1,5 +1,5 @@
/*
- * $Id: siscmap.c,v 1.1.1.1 2000/01/06 12:55:53 faith Exp $
+ * Id: siscmap.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/siscmap.c,v 1.1 1999/11/19 13:53:59 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/siscmap.c,v 1.2 2000/02/23 20:30:07 dawes Exp $ */
#include "sis.h"
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/siscurs.c b/xc/programs/Xserver/hw/kdrive/sis530/siscurs.c
index 552724013..558ba88f0 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/siscurs.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/siscurs.c
@@ -1,5 +1,5 @@
/*
- * $Id: siscurs.c,v 1.1.1.1 2000/01/06 12:55:53 faith Exp $
+ * Id: siscurs.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/siscurs.c,v 1.1 1999/11/19 13:53:59 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/siscurs.c,v 1.2 2000/02/23 20:30:08 dawes Exp $ */
#include "sis.h"
#include "cursorstr.h"
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c b/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c
index 41942c15b..618bf2bc0 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c
@@ -1,5 +1,5 @@
/*
- * $Id: sisdraw.c,v 1.1.1.1 2000/01/06 12:55:54 faith Exp $
+ * Id: sisdraw.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c,v 1.2 1999/12/30 03:03:14 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisdraw.c,v 1.3 2000/02/23 20:30:08 dawes Exp $ */
#include "sis.h"
#include "sisdraw.h"
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h b/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h
index fecb38dcd..8979cb635 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h
@@ -1,5 +1,5 @@
/*
- * $Id: sisdraw.h,v 1.1.1.1 2000/01/06 12:55:54 faith Exp $
+ * Id: sisdraw.h,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h,v 1.1 1999/11/19 13:53:59 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisdraw.h,v 1.2 2000/02/23 20:30:08 dawes Exp $ */
#ifndef _SISDRAW_H_
#define _SISDRAW_H_
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sisio.c b/xc/programs/Xserver/hw/kdrive/sis530/sisio.c
index 6b2edef2c..e1b6a9442 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sisio.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sisio.c
@@ -1,5 +1,5 @@
/*
- * $Id: sisio.c,v 1.1.1.1 2000/01/06 12:55:54 faith Exp $
+ * Id: sisio.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisio.c,v 1.1 1999/11/19 13:54:00 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisio.c,v 1.2 2000/02/23 20:30:09 dawes Exp $ */
#ifdef linux
#define extern
diff --git a/xc/programs/Xserver/hw/kdrive/sis530/sisstub.c b/xc/programs/Xserver/hw/kdrive/sis530/sisstub.c
index f0d78f460..afec4050e 100644
--- a/xc/programs/Xserver/hw/kdrive/sis530/sisstub.c
+++ b/xc/programs/Xserver/hw/kdrive/sis530/sisstub.c
@@ -1,5 +1,5 @@
/*
- * $Id: sisstub.c,v 1.1.1.1 2000/01/06 12:55:54 faith Exp $
+ * Id: sisstub.c,v 1.1 1999/11/02 08:20:07 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisstub.c,v 1.2 1999/12/30 03:03:15 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/sis530/sisstub.c,v 1.3 2000/02/23 20:30:09 dawes Exp $ */
#include "sis.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trident/trident.c b/xc/programs/Xserver/hw/kdrive/trident/trident.c
index 63986927a..39ddea7f8 100644
--- a/xc/programs/Xserver/hw/kdrive/trident/trident.c
+++ b/xc/programs/Xserver/hw/kdrive/trident/trident.c
@@ -1,5 +1,5 @@
/*
- * $Id: trident.c,v 1.1.1.2 2000/02/22 15:42:28 kem Exp $
+ * Id: trident.c,v 1.2 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/trident.c,v 1.3 2000/01/21 01:12:02 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/trident.c,v 1.4 2000/02/23 20:30:10 dawes Exp $ */
#include "trident.h"
#define extern
diff --git a/xc/programs/Xserver/hw/kdrive/trident/trident.h b/xc/programs/Xserver/hw/kdrive/trident/trident.h
index f0bb0c0f4..2341d31aa 100644
--- a/xc/programs/Xserver/hw/kdrive/trident/trident.h
+++ b/xc/programs/Xserver/hw/kdrive/trident/trident.h
@@ -1,5 +1,5 @@
/*
- * $Id: trident.h,v 1.1.1.1 2000/01/06 12:55:54 faith Exp $
+ * Id: trident.h,v 1.2 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/trident.h,v 1.2 1999/12/30 03:03:16 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/trident.h,v 1.3 2000/02/23 20:30:10 dawes Exp $ */
#ifndef _TRIDENT_H_
#define _TRIDENT_H_
diff --git a/xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c b/xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c
index 721a78e02..4a4ea9289 100644
--- a/xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c
+++ b/xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c
@@ -1,5 +1,5 @@
/*
- * $Id: tridentcurs.c,v 1.1.1.1 2000/01/06 12:55:54 faith Exp $
+ * Id: tridentcurs.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c,v 1.2 1999/12/30 03:03:17 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentcurs.c,v 1.3 2000/02/23 20:30:10 dawes Exp $ */
#include "trident.h"
#include "cursorstr.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c b/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c
index aa93af3bb..a080da16a 100644
--- a/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c
+++ b/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c
@@ -1,5 +1,5 @@
/*
- * $Id: tridentdraw.c,v 1.1.1.1 2000/01/06 12:55:55 faith Exp $
+ * Id: tridentdraw.c,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c,v 1.2 1999/12/30 03:03:17 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.c,v 1.3 2000/02/23 20:30:11 dawes Exp $ */
#include "trident.h"
#include "tridentdraw.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h b/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h
index 6f4f2d5c1..14a6c922f 100644
--- a/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h
+++ b/xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h
@@ -1,5 +1,5 @@
/*
- * $Id: tridentdraw.h,v 1.1.1.1 2000/01/06 12:55:55 faith Exp $
+ * Id: tridentdraw.h,v 1.1 1999/11/02 03:54:47 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h,v 1.2 1999/12/30 03:03:18 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentdraw.h,v 1.3 2000/02/23 20:30:11 dawes Exp $ */
#ifndef _TRIDENTDRAW_H_
#define _TRIDENTDRAW_H_
diff --git a/xc/programs/Xserver/hw/kdrive/trident/tridentstub.c b/xc/programs/Xserver/hw/kdrive/trident/tridentstub.c
index f52c5e1fb..c6c1c0898 100644
--- a/xc/programs/Xserver/hw/kdrive/trident/tridentstub.c
+++ b/xc/programs/Xserver/hw/kdrive/trident/tridentstub.c
@@ -1,5 +1,5 @@
/*
- * $Id: tridentstub.c,v 1.1.1.1 2000/01/06 12:55:55 faith Exp $
+ * Id: tridentstub.c,v 1.1 1999/11/02 08:19:15 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentstub.c,v 1.2 1999/12/30 03:03:18 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trident/tridentstub.c,v 1.3 2000/02/23 20:30:11 dawes Exp $ */
#include "trident.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trio/s3.c b/xc/programs/Xserver/hw/kdrive/trio/s3.c
index 349e9310e..6ad63ed75 100644
--- a/xc/programs/Xserver/hw/kdrive/trio/s3.c
+++ b/xc/programs/Xserver/hw/kdrive/trio/s3.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3.c,v 1.1.1.1 2000/01/06 12:55:55 faith Exp $
+ * Id: s3.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3.c,v 1.2 1999/12/30 03:03:19 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3.c,v 1.3 2000/02/23 20:30:12 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trio/s3.h b/xc/programs/Xserver/hw/kdrive/trio/s3.h
index 44fa21eaf..bd34edaff 100644
--- a/xc/programs/Xserver/hw/kdrive/trio/s3.h
+++ b/xc/programs/Xserver/hw/kdrive/trio/s3.h
@@ -1,5 +1,5 @@
/*
- * $Id: s3.h,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: s3.h,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3.h,v 1.2 1999/12/30 03:03:19 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3.h,v 1.3 2000/02/23 20:30:12 dawes Exp $ */
#ifndef _S3_H_
#define _S3_H_
diff --git a/xc/programs/Xserver/hw/kdrive/trio/s3clock.c b/xc/programs/Xserver/hw/kdrive/trio/s3clock.c
index e08c93706..c44decab8 100644
--- a/xc/programs/Xserver/hw/kdrive/trio/s3clock.c
+++ b/xc/programs/Xserver/hw/kdrive/trio/s3clock.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3clock.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: s3clock.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3clock.c,v 1.2 1999/12/30 03:03:19 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3clock.c,v 1.3 2000/02/23 20:30:13 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trio/s3cmap.c b/xc/programs/Xserver/hw/kdrive/trio/s3cmap.c
index e09b0a7d1..44bc3d001 100644
--- a/xc/programs/Xserver/hw/kdrive/trio/s3cmap.c
+++ b/xc/programs/Xserver/hw/kdrive/trio/s3cmap.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3cmap.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: s3cmap.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3cmap.c,v 1.1 1999/11/19 13:54:05 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3cmap.c,v 1.2 2000/02/23 20:30:13 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trio/s3curs.c b/xc/programs/Xserver/hw/kdrive/trio/s3curs.c
index e07843fb0..e353b7eb3 100644
--- a/xc/programs/Xserver/hw/kdrive/trio/s3curs.c
+++ b/xc/programs/Xserver/hw/kdrive/trio/s3curs.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3curs.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: s3curs.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3curs.c,v 1.2 1999/12/30 03:03:19 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3curs.c,v 1.3 2000/02/23 20:30:13 dawes Exp $ */
#include "s3.h"
#include "s3draw.h"
diff --git a/xc/programs/Xserver/hw/kdrive/trio/s3stub.c b/xc/programs/Xserver/hw/kdrive/trio/s3stub.c
index 0a4d6991e..750d49ccd 100644
--- a/xc/programs/Xserver/hw/kdrive/trio/s3stub.c
+++ b/xc/programs/Xserver/hw/kdrive/trio/s3stub.c
@@ -1,5 +1,5 @@
/*
- * $Id: s3stub.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: s3stub.c,v 1.1 1999/11/02 08:19:15 keithp Exp $
*
* Copyright 1999 SuSE, Inc.
*
@@ -22,7 +22,7 @@
*
* Author: Keith Packard, SuSE, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3stub.c,v 1.2 1999/12/30 03:03:20 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/trio/s3stub.c,v 1.3 2000/02/23 20:30:13 dawes Exp $ */
#include "s3.h"
diff --git a/xc/programs/Xserver/hw/kdrive/ts300/ts300.c b/xc/programs/Xserver/hw/kdrive/ts300/ts300.c
index 22345d5cc..14dccf21f 100644
--- a/xc/programs/Xserver/hw/kdrive/ts300/ts300.c
+++ b/xc/programs/Xserver/hw/kdrive/ts300/ts300.c
@@ -1,5 +1,5 @@
/*
- * $Id: ts300.c,v 1.1.1.1 2000/01/06 12:55:56 faith Exp $
+ * Id: ts300.c,v 1.1 1999/11/02 08:17:24 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/ts300/ts300.c,v 1.2 1999/12/30 03:03:20 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/ts300/ts300.c,v 1.3 2000/02/23 20:30:14 dawes Exp $ */
#include "kdrive.h"
diff --git a/xc/programs/Xserver/hw/kdrive/vga.c b/xc/programs/Xserver/hw/kdrive/vga.c
index 82a868f30..9f52f2ba2 100644
--- a/xc/programs/Xserver/hw/kdrive/vga.c
+++ b/xc/programs/Xserver/hw/kdrive/vga.c
@@ -1,5 +1,5 @@
/*
- * $Id: vga.c,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: vga.c,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/vga.c,v 1.2 1999/12/30 03:03:07 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/vga.c,v 1.3 2000/02/23 20:29:56 dawes Exp $ */
#include "vga.h"
#include <stdio.h>
diff --git a/xc/programs/Xserver/hw/kdrive/vga.h b/xc/programs/Xserver/hw/kdrive/vga.h
index 8f2a464b3..e7be1c808 100644
--- a/xc/programs/Xserver/hw/kdrive/vga.h
+++ b/xc/programs/Xserver/hw/kdrive/vga.h
@@ -1,5 +1,5 @@
/*
- * $Id: vga.h,v 1.1.1.1 2000/01/06 12:55:48 faith Exp $
+ * Id: vga.h,v 1.1 1999/11/02 03:54:46 keithp Exp $
*
* Copyright © 1999 Keith Packard
*
@@ -21,7 +21,7 @@
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/kdrive/vga.h,v 1.2 1999/12/30 03:03:07 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/kdrive/vga.h,v 1.3 2000/02/23 20:29:56 dawes Exp $ */
#ifndef _VGA_H_
#define _VGA_H_
diff --git a/xc/programs/Xserver/hw/kdrive/vxworks/vxkbd.c b/xc/programs/Xserver/hw/kdrive/vxworks/vxkbd.c
index 7d9d15725..ab9a00573 100644
--- a/xc/programs/Xserver/hw/kdrive/vxworks/vxkbd.c
+++ b/xc/programs/Xserver/hw/kdrive/vxworks/vxkbd.c
@@ -1,5 +1,5 @@
/*
- * $Id: vxkbd.c,v 1.1.1.1 2000/01/06 12:55:57 faith Exp $
+ * Id: vxkbd.c,v 1.1 1999/11/24 08:35:24 keithp Exp $
*
* Copyright © 1999 Network Computing Devices, Inc. All rights reserved.
*
diff --git a/xc/programs/Xserver/hw/kdrive/vxworks/vxmouse.c b/xc/programs/Xserver/hw/kdrive/vxworks/vxmouse.c
index 010ced6f6..217ddd12e 100644
--- a/xc/programs/Xserver/hw/kdrive/vxworks/vxmouse.c
+++ b/xc/programs/Xserver/hw/kdrive/vxworks/vxmouse.c
@@ -1,5 +1,5 @@
/*
- * $Id: vxmouse.c,v 1.1.1.1 2000/01/06 12:55:57 faith Exp $
+ * Id: vxmouse.c,v 1.1 1999/11/24 08:35:24 keithp Exp $
*
* Copyright © 1999 Network Computing Devices, Inc. All rights reserved.
*
diff --git a/xc/programs/Xserver/hw/kdrive/vxworks/vxworks.c b/xc/programs/Xserver/hw/kdrive/vxworks/vxworks.c
index 54d3a6a10..b7c9fd431 100644
--- a/xc/programs/Xserver/hw/kdrive/vxworks/vxworks.c
+++ b/xc/programs/Xserver/hw/kdrive/vxworks/vxworks.c
@@ -1,5 +1,5 @@
/*
- * $Id: vxworks.c,v 1.1.1.1 2000/01/06 12:55:57 faith Exp $
+ * Id: vxworks.c,v 1.1 1999/11/24 08:35:24 keithp Exp $
*
* Copyright © 1999 Network Computing Devices, Inc. All rights reserved.
*
diff --git a/xc/programs/Xserver/hw/xfree86/CHANGELOG b/xc/programs/Xserver/hw/xfree86/CHANGELOG
index cad750b68..0f9947ad5 100644
--- a/xc/programs/Xserver/hw/xfree86/CHANGELOG
+++ b/xc/programs/Xserver/hw/xfree86/CHANGELOG
@@ -1,3 +1,261 @@
+XFree86 4.0 (8 March 2000)
+3972. Possible fix for a cirrus driver crash when using -configure
+ (David Dawes).
+3971. R128 driver doc update (#3813, Ove Kaaven).
+3970. Update Unicode/ISO 10646 information in the release notes (#3812,
+ Markus Kuhn).
+3969. Fix an apm driver crash when using -configure (#3811, Loic Grenie).
+3968. Release notes updates (David Dawes).
+3967. Major updates to the XF86Config man page (David Dawes).
+3966. Update the Cyrix driver documentation (#3810, Richard Hecker).
+3965. Update the APM driver documentation (#3809, Loic Grenie).
+3964. Fix a name clash in XF86OffscreenImageRec (Mark Vojkovich).
+
+XFree86 3.9.18Za (7 March 2000)
+3963. GCC/egcs bug workaround and other more minor ATI fixes (Marc La France).
+3962. Split HasGlide into HasGlide2 and HasGlide3 (David Dawes).
+3961. Enable known gcc optmisation work arounds by default (David Dawes).
+3960. Fix uninitialized screen function (RestackWindow) (#3806, Keith Packard).
+3959. Added DRI users guide documentation (Brian Paul and Kevin Martin).
+3958. Update the -misc-fixed-* BDF fonts. New glyphs have been added and
+ some old ones fixed. 10x20.bdf and 9x15.bdf now also cover the
+ ISO 8859-6 characters (Arabic), and 18x18ja.bdf covers now all
+ characters necessary to display the full ISO-2022-JP-2 repertoire
+ (#3799, Markus Kuhn).
+3957. Make sure the fbdevhw module is loaded by the glint driver when it
+ is needed, and add some memory barriers to some register access macros
+ (#3804, Michel Dänzer).
+3956. Update the glint driver man page and release notes (#3804,
+ Michel Dänzer).
+3955. Remove some noisy messages from the mga driver (#3803, Mark Vojkovich).
+3954. The last segment in any zero-width polysegment drawing request to
+ a window with more than one clipping rectangle gets dropped in the
+ fb code (#3802, Keith Packard).
+3953. Fix the versions for which HasMTRRSupport is enabled for OpenBSD
+ (#3800, Matthieu Herrb).
+3952. Fix some "ambiguous" else statements in some of the driver Probe()
+ functions (David Dawes).
+3951. Don't make the VBEInit call in the chips driver dependent on the loader
+ server (David Dawes).
+3950. Register vbe symbols as "referenced" with the loader in drivers that
+ use them (David Dawes).
+3949. Fixed the unresolved VBE symbols in the r128 driver and a crash
+ related to referencing vgahw symbols before the module is loaded
+ (Kevin Martin).
+3948. Fix a -configure crash in the tdfx driver (David Dawes).
+3947. Fix a mouse driver bug that prevented the X server from seeing the
+ mouse button 4 and above when three button emulation is enabled
+ (#3773, Yoshihiko Sarumau, Kazutaka Yokota).
+3946. Add NO_GXCOPY to the s3virge driver's imagewrite flags, which fixes
+ a crash (#3783, Kevin Brosius).
+3945. Fix a parser build problem for Interactive Unix, and update the
+ docs (#3796, Michael Rohleder).
+3944. Fix the r128 hw cursor for big endian machines, and enable building
+ the r128 driver for PPC (#3975, Kostas Gewrgiou).
+3943. Update lnxResource.c to allow builds to succeed on PPC platforms
+ (#3795, Kostas Gewrgiou).
+3942. B&H Lucidux fonts (#3794, donated by Charles Bigelow, Kris Holmes
+ from Bigelow and Holmes Inc, with hinting donated by Berthold Horn and
+ Blenda Horn from Y&Y, Inc).
+3941. Doc update for the sis driver (#3793, R Horn).
+3940. Fix an xman build problem on LynxOS (#3792, Thomas Mueller).
+3939. Fix some 24-plane problems with the tga driver, and update the docs
+ (#3789, Martin Lucina).
+3938. Rage 128 documentation update (Kevin Martin).
+3937. Fix an unresolved reference to VErrorF from the int10 module
+ (David Dawes).
+3936. Reduce some of the noise in the server startup messages (David Dawes).
+3935. Static library objects don't use THREADS_CFLAGS (#3790, Matthieu Herrb).
+3934. Fix a fatal error related to shared memory pixmaps in Xinerama (#3788,
+ Mark Vojkovich).
+3933. Fix IA64 build fixes (#3787, Mark Vojkovich).
+3932. Fill out the rendition man page (#3785, Dejan Ilic).
+3931. Update the s3virge man page (#3784, Kevin Brosius).
+3930. Fix the FreeBSD/alpha code to track changes made to the Linux memory
+ mapping code (#3782, Doug Rabson).
+3929. Update email addresses for C&T driver authors (#3781, Nozomi Ytow).
+
+XFree86 3.9.18Z (3 March 2000)
+3928. Restrict the X server -configure option to root, and fix a crash
+ when the server fails to read the first stage config file that it
+ writes when run with this option (David Dawes).
+3927. Modify the parser's xf86WriteConfigFile() function to write the
+ file using the real user id when the real and effective ids are
+ different (David Dawes).
+3926. Fix a problem with VT switching disabling direct rendering 3D apps
+ (Kevin Martin).
+3925. Add an imake parameter called XFree86Devel that can be set in host.def
+ to enable devel-specific settings (like more verbose compiler warnings),
+ and adjust GccWarningOptions to use this (David Dawes).
+3924. Various doc updates, and don't install out of date docs (David Dawes).
+3923. Fix a thread related problem in the Xv client library (Mark Vojkovich).
+3922. Fix a Xinerama problem with XShapeMask (Mark Vojkovich).
+3921. LynxOS documentation and bindist updates, and an os-support fix (#3779,
+ Thomas Mueller).
+3920. Update the wacom input driver to suppor the PL400 model and the
+ stroking pen on the Intuos model (#3778, Frederic Lepied).
+3919. Xterm patch #131 (#3777, Thomas Dickey).
+3918. -
+3917. Add prototypes for xman, and eliminate most of the compiler warnings
+ (#3772, Thomas Dickey).
+3916. Xterm patch #130 (#3771, Thomas Dickey).
+3915. Fix a segfault in XAA caused by reading beyond shared memory bitmaps
+ when hardware clipping is not available (Mark Vojkovich).
+3914. Update the mga man page (Mark Vojkovich).
+3913. A Q&D fix for GLX segment violation in loader server (Marc La France).
+3912. Add Mach64 screen-to-screen copy acceleration (Marc La France).
+3911. IA-64 fixes (Mark Vojkovich).
+3910. Add skeleton man pages for the video and input drivers that don't
+ already have one (David Dawes).
+3909. Add man pages for the mouse, keyboard and void input drivers
+ (David Dawes).
+3908. Enable building the "void" input driver by default (David Dawes).
+3907. Keep xf86RegisterRootWindowProperty from freeing data it didn't
+ allocate (Mark Vojkovich).
+3906. Add an extra file name to the server config file search path --
+ XF86Config-M, where M is the major version number (David Dawes).
+3905. DRI megapatch II. This includes DRI enhancements, 3dfx fixes and
+ updates, updates Mesa to version 3.3 beta, adds new GLX dispatch
+ code and adds i810 2D support (Precision Insight).
+3904. Add SERVER_OVERLAY_VISUALS root window property (Mark Vojkovich).
+3903. Remove unnecessary VGA CRTC unlock/relock in cyrix driver
+ (Marc La France).
+3902. Fix ATI driver's 8514/A probe delay when one isn't present
+ (Marc La France).
+3901. Changes to -configure: ATI driver interface; Move default monitor
+ tolerances to xf86ValidateModes(); Let drivers decide on default depth
+ and mode; Don't "special-case" VGA driver. (Marc La France)
+3900. Fix xc/lib/Imakefile for BuildServersOnly (Marc La France).
+
+XFree86 3.9.18b (29 February 2000)
+3899. Fix a bug in lnx_apm.c that causes fd 0 to be closed instead
+ of the just opened /proc/apm (#3766, Kars de Jong).
+3898. Fix a SuperProbe build problem on UnixWare 7 (#3765, Thanh Ma).
+3897. Mouse doc updates (#3764, Kazutaka Yokota).
+3896. Speed up dashed lines and conic sections in fb, including changing
+ mi to use PolyPoint instead of FillSpans for dashed arcs (#3763,
+ Keith Packard).
+3895. Add shadowfb support to the rendition driver (#3762, Dejan Ilic).
+3894. Allow Rage128 driver to Probe DDC too (Alan Hourihane).
+3893. Allow i740 driver to Probe DDC (using vbe) for -configure, and remove
+ one liner from tdfx driver to enable it too (Alan Hourihane).
+3892. Make GNU make -j workaround separately configurable (Marc La France).
+3891. Replace remaining occurrences of BuildXTT imake symbol with
+ BuildXTrueType (Marc La France).
+3890. Fix some problems using the UTF-8 -locale:
+ - Add proper side (GL/GR) handling to the UTF-8 locale
+ - No more need to define ISO10646-1 in en_US.UTF-8. It is already
+ defined in lcCT.c
+ - The fontset loading routines would access invalid memory when
+ not all fonts for a fontset were found
+ (#3761, Bruno Haible).
+3889. Avoid spurious warnings from the XFree86-Bigfont extension (#3760,
+ Bruno Haible).
+3888. Fix an error in the XtAppMainLoop() man page related to its return
+ behaviour (#3759, Bruno Haible).
+3887. Make it possible for gcc to compile the Linux int10 module with -fPIC
+ (#3758, Bruno Haible).
+3886. Fix typos in fontcacheP.h and RELNOTES (#3757, Bruno Haible).
+3885. Disable stripping programs when they are installed to make it
+ easier to debug problems that may show up within libraries (#3756,
+ Bruno Haible).
+3884. Add support for reading power management events for NetBSD and
+ OpenBSD (#3755, Matthieu Herrb).
+3883. Update Xinstall.sh for NetBSD-current-ELF (#3754, Matthieu Herrb).
+3882. Update NetBSD and OpenBSD bindist files (#3753, Matthieu Herrb).
+3881. Apm driver update, including extending the Rush extension to allow
+ initialisation of the Rush chip in a legal way (#3751, Loic Grenie).
+3880. Xterm patch #129 (#3751, Thomas Dickey).
+3879. Add DDC support to the tdfx driver via the vbe interface (#3750,
+ Jarno Paananen).
+3878. Enable double scan and interlaced modes for the tdfx and nv drivers
+ (#3750, Jarno Paananen).
+3877. Fix 8bpp initialisation problem with the rendition driver (#3749,
+ Dejan Ilic).
+3876. Update the XThrStub library version with that in the 3.3.x branch,
+ and enable thread-safe libraries for OpenBSD 2.6 and later (#3748,
+ Matthieu Herrb).
+3875. Fix some REGION_BROKEN related stuff with the overlays (Mark Vojkovich).
+3874. Fix a bug with unaccelerated pixmap cache uploads when virtualX
+ was larger than the displayWidth (Mark Vojkovich).
+3873. Xinerama changes (Mark Vojkovich).
+ - extend the Xinerama protocol and change the version number to 1.1.
+ - add a new client API in the "Xinerama" namespace with more
+ functionality than the previous "PanoramiX" functions.
+ - move Xinerama functions out of libXext and into libXinerama.a.
+ - some Xinerama bug fixes.
+3872. Add a flags field to the XF86OffscreenImageRec (Mark Vojkovich).
+3871. Fix a malloc/free problem in Xnest on 64-bit platforms (David Dawes).
+3870. Update bindist definition files (David Dawes).
+3869. More installer updates (David Dawes).
+3868. Make -configure generate multihead configs (Alan Hourihane).
+
+XFree86 3.9.18a (25 February 2000)
+3867. Add a preliminary Install document (David Dawes).
+3866. Remove obsolete XF98 and XF68 definitions from xfree86.cf (David Dawes).
+3865. Fix some rendition driver problems (#3746, Dejan Ilic).
+3864. Add build-time support for using fb instead of cfb with the nv
+ driver (#3744, Jarno Paananen).
+3863. Add missing xf86_ansic.h include for the nv driver, and avoid a
+ gcc 2.96-generated memcpy call in Mesa (#3743, Jarno Paananen).
+3862. Glint driver updates:
+ - removed obsolete NoWriteBitmap option
+ - reworked pm2_accel.c (cleaned up swapping/mirroring, removed
+ obsolete hacks)
+ - fixed setting of mode sync flags
+ - fixed PolySegmentThinSolidWrapper functions
+ (#3742, Michel Dänzer).
+3861. Change the positioning of $(XF86INT10LIB) to fix some static server
+ linking problems (#3741, Kevin Brosius).
+3860. Make xclock's -brief option off by default, and document it in the
+ man page (#3740, Nozomi Ytow).
+3859. Improve the default converters set in libX11, and use it for all
+ "one byte" locales (#3737, Ivan Pascal).
+3858. Some improvements to the generic converters set in libX11, including:
+ - some converter optimization
+ - actions that can be done once at initialization step moved to
+ lcGeneric.c
+ - converters from CharSet to MultiByte/WideChar added
+ (#3731, Ivan Pascal).
+3857. Add a "showCurrent" resource for Xaw, which makes the list widget
+ always show the selected item (#3728, Paulo Cesar Pereira de Andrade).
+3856. Use fb for the fbdev driver, and check if the fbdev modes are suitable
+ for the monitor (#3709, Michel Dänzer).
+3855. Add support for finding VT devices for Linux kernels compiled with
+ devfs (#3692, Christopher Sekiya).
+3854. Implmenent the Font Type font properties for the Speedo, Type 1 and
+ TrueType backends (#3688, Juliusz Chroboczek).
+3853. Add an installation script (Xinstall.sh) for installing binary
+ distributions (David Dawes).
+3852. Fix bitmap installation location for xditview (#3724, Harald Koenig).
+3851. Make -probe and -configure deal with vendor-supplied modules again
+ (Marc La France).
+3850. Fix an exposure problem that occured in 8+32 mode when the root
+ window was in depth 24 (Mark Vojkovich).
+3849. The MGA driver now recognizes a "VideoKey" option that sets the
+ default video key for YUV overlays (Mark Vojkovich).
+3848. Add some missing cfbDrawableEnabled checks to the 8+32 and 24+32
+ framebuffers (Mark Vojkovich).
+3847. Fix a segfault introduced by the workaround in 3546 below.
+3846. Fix big endian problems in XAA stipple code (Michel Dänzer).
+3845. Fix xf86MatchPciInstances() to not cause r128 to report detection of
+ other ATI adapters to -probe (Marc La France).
+3844. Fix bug in xf86MatchDevices() with -probe or -configure (Marc La France).
+3843. More compilation fixups (Marc La France).
+3842. Make -probe and -configure use compiled-in driver lists. Make -configure
+ work in the static server (Marc La France).
+3841. A second attempt at fixing DPS compilation (Marc La France).
+3840. Add DDC probing to the -configure option and enable it in the trident
+ driver (Alan Hourihane).
+3839. Bring xditview over from the contrib dist.
+3838. Fix drm free list bug (Jeff Hartmann and Rik Faith, Precision Insight).
+3837. Remove deprecated keywords (Kevin Martin).
+3836. Support for YUV offscreen surfaces in Xv and have the MGA driver
+ offer them (Mark Vojkovich).
+3835. Reorder generic Xv adaptor registration to allow V4L to use
+ driver-managed YUV offscreen surfaces (Gerd Knorr).
+3834. Preliminary IA-64 support (Mark Vojkovich, Johannes Erdfelt).
+
XFree86 3.9.18 (21 February 2000)
3833. Bump the minor version number for libXaw since it has some symbols
that are not present in 6.0.
@@ -4513,7 +4771,7 @@ XFree86 3.9n (26 August 1997)
1201. Move most common extensions into a module (#889, Matthieu Herrb).
1200. OpenBSD multi-architecture support (#888, Matthieu Herrb).
1199. Disable disables broken software/hardware cursor switching in s3/svga
- (#887, Mark Voikovich).
+ (#887, Mark Vojkovich).
1198. Some fixes for PC98. XF86Setup, mga driver, VideoBoards98, Cards98
(#886, Takaaki Nomura, Takefumi Tsukada).
1197. Acceleration fixes for Trident and accelerated ImageWrite (#883,884,885
@@ -5434,7 +5692,7 @@ XFree86 3.2At (14 April 1997)
values for 150MHz through 229MHz dot clocks. Set clock limits correctly
for Laguna chips. (#280, Corey Anderson).
678. Fix problem in xf86gcmisc.c that could cause a segfault (#279,
- Mark Voikovich).
+ Mark Vojkovich).
677. Fix problems with NonTE text in XAA (#278, David Bateman).
676. Fix loader under SVR4.0.4 (lstat,fstat,mknod)(#277, Richard Coley).
675. Speedups for dashed lines in SVGA/S3 (#276, Mark Vojkovich).
@@ -9777,4 +10035,4 @@ XFree86 3.0 (26 April 1994)
-$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.1021 2000/02/21 20:44:40 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/CHANGELOG,v 3.1079 2000/03/08 19:27:44 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/Imakefile b/xc/programs/Xserver/hw/xfree86/Imakefile
index d3f1ab5c7..6547d719b 100644
--- a/xc/programs/Xserver/hw/xfree86/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/Imakefile
@@ -3,7 +3,7 @@ XCOMM $XConsortium: Imakefile /main/12 1996/12/16 12:31:46 rws $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/Imakefile,v 3.62 2000/02/13 03:06:31 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/Imakefile,v 3.64 2000/03/08 05:38:30 dawes Exp $
#include <Server.tmpl>
#define IHaveSubdirs
@@ -188,8 +188,12 @@ InstallDriverSDKNonExecFile($(XF86CONFIG),$(DRIVERSDKDIR))
InstallDriverSDKNonExecFile($(XF98CONFIG),$(DRIVERSDKDIR))
#endif
+EXTRAMANCPPDEFS=-D__logdir__=$(LOGDIRECTORY)
+CppManTarget(XFree86,$(EXTRAMANCPPDEFS))
+CppManTarget(XF86Config,$(EXTRAMANCPPDEFS))
InstallManPage(XFree86,$(MANDIR))
-InstallGenManPageLong(XF86Conf,$(FILEMANDIR),XF86Config,$(FILEMANSUFFIX))
+InstallGenManPage(XF86Config,$(FILEMANDIR),$(FILEMANSUFFIX))
+
InstallNamedNonExec($(XF86CONFIG),XF86Config.eg,$(LIBDIR))
InstallNamedNonExec($(XF98CONFIG),XF86Config.98,$(LIBDIR))
diff --git a/xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h b/xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h
index 01d32e9e0..4f7743e23 100644
--- a/xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h
+++ b/xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h
@@ -57,7 +57,7 @@
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h,v 3.15 2000/02/12 20:45:13 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h,v 3.16 2000/02/22 01:00:15 mvojkovi Exp $ */
#if defined(__GNUC__)
#if defined(linux) && defined(__alpha__)
@@ -67,6 +67,11 @@
#define outb(p,v) _outb((v),(p))
#define outw(p,v) _outw((v),(p))
#define outl(p,v) _outl((v),(p))
+#elif defined(linux) && defined(__ia64__)
+#include <stdlib.h>
+#include <asm/types.h>
+#include <asm/system.h>
+#include <asm/io.h>
#else
#if defined(__sparc__)
#ifndef ASI_PL
diff --git a/xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c b/xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c
index f87c8faeb..c2f9d0116 100644
--- a/xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c
+++ b/xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c,v 3.20 1999/09/25 14:36:59 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/OS_SYSV.c,v 3.21 2000/02/29 22:39:32 dawes Exp $ */
/*
* (c) Copyright 1993,1994 by David Wexelblat <dwex@xfree86.org>
*
@@ -88,7 +88,7 @@
#ifdef __STDC__
int sysi86(int, ...);
int syscall(int, ...);
-#ifndef SCO
+#if !defined(SCO) && !defined(SVR4)
int munmap(caddr_t, size_t);
#endif
#else
diff --git a/xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h b/xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h
index b242ceb45..5372f5240 100644
--- a/xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h
+++ b/xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h
@@ -26,10 +26,10 @@
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h,v 3.25 1999/09/25 14:37:00 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/PatchLevel.h,v 3.26 2000/03/08 19:23:25 dawes Exp $ */
#define VERSION 2
-#define PATCHLEV 21
-#define RELDATE "1999 September 9"
+#define PATCHLEV 22
+#define RELDATE "2000 March 6"
#define PRINT_VERSION printf("\n%s Version %d.%d (%s)\n", \
MyName,VERSION,PATCHLEV,RELDATE)
diff --git a/xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h b/xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h
index af2605254..be0ab7d52 100644
--- a/xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h
+++ b/xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h
@@ -26,7 +26,7 @@
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h,v 3.72 2000/02/12 20:45:14 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/Probe.h,v 3.73 2000/02/22 01:00:15 mvojkovi Exp $ */
/*
* Includes
@@ -45,6 +45,10 @@
#endif /* MACH386 */
#include <ctype.h>
#if defined(SYSV) || defined(SVR4) || defined(linux) || defined(__QNX__) || defined(__QNXNTO__)
+#if defined(__ia64__)
+#include <sys/io.h>
+#include <asm/io.h>
+#endif
# include <string.h>
#if !(defined(__QNX__) && !defined(__QNXNTO__))
# include <memory.h>
diff --git a/xc/programs/Xserver/hw/xfree86/XF86Config.cpp b/xc/programs/Xserver/hw/xfree86/XF86Config.cpp
new file mode 100644
index 000000000..7a9ad4780
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/XF86Config.cpp
@@ -0,0 +1,1561 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/XF86Config.cpp,v 1.3 2000/03/08 19:12:44 dawes Exp $
+.TH XF86Config __filemansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+XF86Config - Configuration File for XFree86
+.SH DESCRIPTION
+.I XFree86
+uses a configuration file called
+.B XF86Config
+for its initial setup. This configuration file is searched for in the
+following places when the server is started as a normal user:
+.PP
+.RS 4
+.nf
+.RI /etc/X11/ <cmdline>
+.RI __projectroot__/etc/X11/ <cmdline>
+.RB /etc/X11/ $XF86CONFIG
+.RB __projectroot__/etc/X11/ $XF86CONFIG
+/etc/X11/XF86Config-4
+/etc/X11/XF86Config
+/etc/XF86Config
+.RI __projectroot__/etc/X11/XF86Config. <hostname>
+__projectroot__/etc/X11/XF86Config-4
+__projectroot__/etc/X11/XF86Config
+.RI __projectroot__/lib/X11/XF86Config. <hostname>
+__projectroot__/lib/X11/XF86Config-4
+__projectroot__/lib/X11/XF86Config
+.fi
+.RE
+.PP
+where
+.I <cmdline>
+is a relative path (with no ".." components) specified with the
+.B \-xf86config
+command line option,
+.B $XF86CONFIG
+is the relative path (with no ".." components) specified by that
+environment variable, and
+.I <hostname>
+is the machines hostname as reported by gethostname(3).
+.PP
+When the X server is started by the "root" user, the config file search
+locations are as follows:
+.PP
+.RS 4
+.nf
+.I <cmdline>
+.RI /etc/X11/ <cmdline>
+.RI __projectroot__/etc/X11/ <cmdline>
+.B $XF86CONFIG
+.RB /etc/X11/ $XF86CONFIG
+.RB __projectroot__/etc/X11/ $XF86CONFIG
+.BR $HOME /XF86Config
+/etc/X11/XF86Config-4
+/etc/X11/XF86Config
+/etc/XF86Config
+.RI __projectroot__/etc/X11/XF86Config. <hostname>
+__projectroot__/etc/X11/XF86Config-4
+__projectroot__/etc/X11/XF86Config
+.RI __projectroot__/lib/X11/XF86Config. <hostname>
+__projectroot__/lib/X11/XF86Config-4
+__projectroot__/lib/X11/XF86Config
+.fi
+.RE
+.PP
+where
+.I <cmdline>
+is the path specified with the
+.B \-xf86config
+command line option (which may be absolute or relative),
+.B $XF86CONFIG
+is the path specified by that
+environment variable (absolute or relative),
+.B $HOME
+is the path specified by that environment variable (usually the home
+directory), and
+.I <hostname>
+is the machines hostname as reported by gethostname(3).
+.PP
+The
+.B XF86Config
+file is composed of a number of sections which may be present in any
+order. Each section has
+the form:
+.PP
+.RS 4
+.nf
+.BI "Section """ SectionName """"
+.I " SectionEntry"
+ ...
+.B EndSection
+.fi
+.RE
+.PP
+The section names are:
+.PP
+.RS 4
+.nf
+.BR "Files " "File pathnames"
+.BR "ServerFlags " "Server flags"
+.BR "Module " "Dynamic module loading"
+.BR "InputDevice " "Input device description"
+.BR "Device " "Graphics device description"
+.BR "VideoAdaptor " "Xv video adaptor description"
+.BR "Monitor " "Monitor description"
+.BR "Modes " "Video modes descriptions"
+.BR "Screen " "Screen configuration"
+.BR "ServerLayout " "Overall layout"
+.BR "DRI " "DRI-specific configuration"
+.BR "Vendor " "Vendor-specific configuration"
+.fi
+.RE
+.PP
+The following obsolete section names are still recognised for compatibility
+purposes. In new config files, the
+.B InputDevice
+section should be used instead.
+.PP
+.RS 4
+.nf
+.BR "Keyboard " "Keyboard configuration"
+.BR "Pointer " "Pointer/mouse configuration"
+.fi
+.RE
+.PP
+The old
+.B XInput
+section is no longer recognised.
+.PP
+The
+.B ServerLayout
+sections are at the highest level. They bind together the input and
+output devices that will be used in a session. The input devices
+are described in the
+.B InputDevice
+sections. Output devices usually consist of multiple independent
+components (e.g., and graphics board and a monitor). These multiple
+components are bound together in the
+.B Screen
+sections, and it is these that are referenced by the
+.B ServerLayout
+section. Each
+.B Screen
+section binds together a graphics board and a monitor. The graphics
+boards are described in the
+.B Device
+sections, and the monitors are described in the
+.B Monitor
+sections.
+.PP
+Config file keywords are case-insensitive, and "_" characters are
+ignored. Most strings (including
+.B Option
+names) are also case-insensitive, and insensitive to white space and
+"_" characters.
+.PP
+Each config file entry usually take up a single line in the file.
+They consist of a keyword, which is possibly followed by one or
+more arguments, with the number and types of the arguments depending
+on the keyword. The argument types are:
+.PP
+.RS 4
+.nf
+.BR "Integer " "an integer number in decimal, hex or octal"
+.BR "Real " "a floating point number"
+.BR "String " "a string enclosed in double quote marks ("")"
+.fi
+.RE
+.PP
+A special keyword called
+.B Option
+may be used to provide free-form data to various components of the server.
+The
+.B Option
+keyword takes either one or two string arguments. The first is the option
+name, and the optional second argument is the option value. Some commonly
+used option value types include:
+.PP
+.RS 4
+.nf
+.BR "Integer " "an integer number in decimal, hex or octal"
+.BR "Real " "a floating point number"
+.BR "String " "a sequence of characters"
+.BR "Boolean " "a boolean value (see below)"
+.BR "Frequency " "a frequency value (see below)"
+.fi
+.RE
+.PP
+Note that
+.I all
+.B Option
+values, not just strings, must be enclosed in quotes.
+.PP
+Boolean options may optionally have a value specified. When no value
+is specified, the option's value is
+.BR TRUE .
+The following boolean option values are recognised as
+.BR TRUE :
+.PP
+.RS 4
+.BR 1 ,
+.BR on ,
+.BR true ,
+.B yes
+.RE
+.PP
+and the following boolean option values are recognised as
+.BR FALSE :
+.PP
+.RS 4
+.BR 0 ,
+.BR off ,
+.BR false ,
+.B no
+.RE
+.PP
+If an option name is prefixed with
+.RB """" No """",
+then the option value is negated.
+.PP
+Example: the following option entries are equivalent:
+.PP
+.RS 4
+.nf
+.B "Option ""Accel"" ""Off"""
+.B "Option ""NoAccel"""
+.B "Option ""NoAccel"" ""On"""
+.B "Option ""Accel"" ""false"""
+.B "Option ""Accel"" ""no"""
+.fi
+.RE
+.PP
+Frequency option values consist of a real number that is optionally
+followed by one of the following frequency units:
+.PP
+.RS 4
+.BR Hz ,
+.BR k ,
+.BR kHz ,
+.BR M ,
+.B MHz
+.RE
+.PP
+When the unit name is omitted, the correct units will be determined from
+the value and the expectations of the appropriate range of the value.
+It is recommended that the units always be specified when using frequency
+option values to avoid any errors in determining the value.
+.SH FILES SECTION
+The
+.B Files
+section is used to specify some path names required by the server.
+Some of these paths can also be set from the command line (see
+.I Xserver(1)
+and
+.IR XFree86(1) ).
+The command line settings override the values specified in the config
+file.
+The entries that can appear in this section are:
+.TP 7
+.BI "FontPath """ path """"
+sets the search path for fonts. This path is a comma separated
+list of font path elements which the X server searches for font databases.
+Multiple
+.B FontPath
+entries may be specified, and they will be
+concatenated to build up the fontpath used by the server.
+Font path elements may be either absolute directory paths, or the
+a font server identifier. Font server identifiers have the form:
+.PP
+.RS 11
+.IR <trans> / <hostname> : <port-number>
+.RE
+.PP
+.RS 7
+where
+.I <trans>
+is the transport type to use to connect to the font server (e.g.,
+.B unix
+for UNIX-domain sockets or
+.B tcp
+for a TCP/IP connection),
+.I <hostname>
+is the hostname of the machine running the font server, and
+.I <port-number>
+is the port number that the font server is listening on (usually 7100).
+.PP
+When this entry is not specified in the config file, the server falls back
+to the compiled-in default font path, which contains the following
+font path elements:
+.PP
+.RS 4
+.nf
+__projectroot__/lib/X11/fonts/misc/
+__projectroot__/lib/X11/fonts/Speedo/
+__projectroot__/lib/X11/fonts/Type1/
+__projectroot__/lib/X11/fonts/CID/
+__projectroot__/lib/X11/fonts/75dpi/
+__projectroot__/lib/X11/fonts/100dpi/
+.fi
+.RE
+.PP
+The recommended font path contains the following font path elements:
+.PP
+.RS 4
+.nf
+__projectroot__/lib/X11/fonts/local/
+__projectroot__/lib/X11/fonts/misc/
+__projectroot__/lib/X11/fonts/75dpi/:unscaled
+__projectroot__/lib/X11/fonts/100dpi/:unscaled
+__projectroot__/lib/X11/fonts/Type1/
+__projectroot__/lib/X11/fonts/CID/
+__projectroot__/lib/X11/fonts/Speedo/
+__projectroot__/lib/X11/fonts/75dpi/
+__projectroot__/lib/X11/fonts/100dpi/
+.fi
+.RE
+.PP
+Font path elements that are found to be invalid are removed from the
+font path when the server starts up.
+.RE
+.TP 7
+.BI "RGBPath """ path """"
+sets the path name for the RGB color database.
+When this entry is not specified in the config file, the server falls back
+to the compiled-in default RGB path, which is:
+.PP
+.RS 11
+__projectroot__/lib/X11/rgb
+.RE
+.TP 7
+.BI "ModulePath """ path """"
+sets the search path for loadable X server modules. This path is a
+comma separated list of directories which the X server searches for
+loadable modules loading in the order specified. Multiple
+.B ModulePath
+entries may be specified, and they will be concatenated to build the
+module search path used by the server.
+.\" The LogFile keyword is not currently implemented
+.ig
+.TP 7
+.BI "LogFile """ path """"
+sets the name of the X server log file. The default log file name is
+.PP
+.RS 11
+.RI __logdir__/XFree86. <n> .log
+.RE
+.PP
+.RS 7
+where
+.I <n>
+is the display number for the X server.
+..
+.SH SERVERFLAGS SECTION
+The
+.B ServerFlags
+section is used to specify some global
+X server options. All of the entries in this section are
+.BR Options ,
+although for compatibility purposes some of the old style entries are
+still recognised. Those old style entries are not documented here, and
+using them is discouraged.
+.PP
+.B Options
+specified in this section may be overridden by
+.B Options
+specified in the active
+.B ServerLayout
+section. Options with command line equivalents are overridden when their
+command line equivalent is used. The options recognised by this section
+are:
+.TP 7
+.BI "Option ""NoTrapSignals"" """ boolean """"
+This prevents the X server from trapping a range of unexpected
+fatal signals and exiting cleanly. Instead, the X server will die
+and drop core where the fault occurred. The default behaviour is
+for the X server exit cleanly, but still drop a core file. In
+general you never want to use this option unless you are debugging
+an X server problem and know how to deal with the consequences.
+.TP 7
+.BI "Option ""DontZap"" """ boolean """"
+This disallows the use of the
+.B Ctrl+Alt+Backspace
+sequence. That sequence is normally used to terminate the X server.
+When this option is enabled, that key sequence has no special meaning
+and is passed to clients. Default: off.
+.TP 7
+.BI "Option ""DontZoom"" """ boolean """"
+This disallows the use of the
+.B Ctrl+Alt+Keypad-Plus
+and
+.B Ctrl+Alt+Keypad-Minus
+sequences. These sequences allows you to switch between video modes.
+When this option is enabled, those key sequences have no special meaning
+and are passed to clients. Default: off.
+.TP 7
+.BI "Option ""DisableVidModeExtension"" """ boolean """"
+This disables the parts of the VidMode extension used by the xvidtune client
+that can be used to change the video modes. Default: the VidMode extension
+is enabled.
+.TP 7
+.BI "Option ""AllowNonLocalXvidtune"" """ boolean """"
+This allows the xvidtune client (and other clients that use the VidMode
+extension) to connect from another host. Default: off.
+.TP 7
+.BI "Option ""DisableModInDev"" """ boolean """"
+This disables the parts of the XFree86-Misc extension that can be used to
+modify the input device settings dynamically. Default: that functionality
+is enabled.
+.TP 7
+.BI "Option ""AllowNonLocalModInDev"" """ boolean """"
+This allows a client to connect from another host and change keyboard
+and mouse settings in the running server. Default: off.
+.TP 7
+.BI "Option ""AllowMouseOpenFail"" """ boolean """"
+This allows the server to start up even if the mouse device can't be
+opened/initialised. Default: false.
+.TP 7
+.BI "Option ""VTInit"" """ command """"
+Runs
+.I command
+after the VT used by the server has been opened.
+The command string is passed to "/bin/sh -c", and is run with the
+real user's id with stdin and stdout set to the VT. The purpose
+of this option is to allow system dependent VT initialisation
+commands to be run. This option should rarely be needed. Default: not set.
+.TP 7
+.BI "Option ""VTSysReq"" """ boolean """"
+enables the SYSV-style VT switch sequence for non-SYSV systems
+which support VT switching. This sequence is
+.B Alt-SysRq
+followed
+by a function key
+.RB ( Fn ).
+This prevents the X server trapping the
+keys used for the default VT switch sequence, which means that clients can
+access them. Default: off.
+.\" The following four options are "undocumented".
+.ig
+.TP 7
+.BI "Option ""PciProbe1"""
+Use PCI probe method 1. Default: set.
+.TP 7
+.BI "Option ""PciProbe2"""
+Use PCI probe method 2. Default: not set.
+.TP 7
+.BI "Option ""PciForceConfig1"""
+Force the use PCI config type 1. Default: not set.
+.TP 7
+.BI "Option ""PciForceConfig2"""
+Force the use PCI config type 2. Default: not set.
+..
+.TP 7
+.BI "Option ""BlankTime"" """ time """"
+sets the inactivity timeout for the blanking phase of the screensaver.
+.I time
+is in minutes. This is equivalent to the Xserver's `-s' flag, and the
+value can be changed at run-time with \fIxset(1)\fP. Default: 10 minutes.
+.TP 7
+.BI "Option ""StandbyTime"" """ time """"
+sets the inactivity timeout for the "standby" phase of DPMS mode.
+.I time
+is in minutes, and the value can be changed at run-time with \fIxset(1)\fP.
+Default: 20 minutes.
+This is only suitable for VESA DPMS compatible monitors, and may not be
+supported by all video drivers. It is only enabled for screens that
+have the
+.B """DPMS"""
+option set.
+.TP 7
+.BI "Option ""SuspendTime"" """ time """"
+sets the inactivity timeout for the "suspend" phase of DPMS mode.
+.I time
+is in minutes, and the value can be changed at run-time with \fIxset(1)\fP.
+Default: 30 minutes.
+This is only suitable for VESA DPMS compatible monitors, and may not be
+supported by all video drivers. It is only enabled for screens that
+have the
+.B """DPMS"""
+option set.
+.TP 7
+.BI "Option ""OffTime"" """ time """"
+sets the inactivity timeout for the "off" phase of DPMS mode.
+.I time
+is in minutes, and the value can be changed at run-time with \fIxset(1)\fP.
+Default: 40 minutes.
+This is only suitable for VESA DPMS compatible monitors, and may not be
+supported by all video drivers. It is only enabled for screens that
+have the
+.B """DPMS"""
+option set.
+.TP 7
+.BI "Option ""Pixmap"" """ bpp """"
+This sets the pixmap format to use for depth 24. Allowed values for
+.I bpp
+are 24 and 32. Default: 32 unless driver constraints don't allow this
+(which is rare). Note: some clients don't behave well when
+this value is set to 24.
+.TP 7
+.BI "Option ""PC98"" """ boolean """"
+Specify that the machine is a Japanese PC-98 machine. This should not
+be enabled for anything other than the Japanese-specific PC-98
+architecture. Default: auto-detected.
+.\" Doubt this should be documented.
+.ig
+.TP 7
+.BI "Option ""EstimateSizesAggressively"" """ value """"
+This option affects the way that bus resource sizes are estimated. Default: 0.
+..
+.TP 7
+.BI "Option ""NoPM"" """ boolean """"
+Disables something to do with power management events. Default: PM enabled
+on platforms that support it.
+.SH MODULE SECTION
+The
+.B Module
+section is used to specify which X server modules should be loaded.
+This section is ignored when the X server is built in static form.
+The types of modules normally loaded in this section are X server
+extension modules, and font rasteriser modules. Most other module types
+are loaded automatically when they are needed via other mechanisms.
+.PP
+Entries in this section may be in two forms. The first and most commonly
+used form is an entry that uses the
+.B Load
+keyword, as described here:
+.TP 7
+.BI "Load """ modulename """"
+This instructs the server to load the module called
+.IR modulename .
+The module name given should be the module's standard name, not the
+module file name. The standard name is case-sensitive, and does not
+include the "lib" prefix, or the ".a", ".o", or ".so" suffixes.
+.PP
+.RS 7
+Example: the Type 1 font rasteriser can be loaded with the following entry:
+.PP
+.RS 4
+.B "Load ""type1"""
+.RE
+.RE
+.PP
+The second form of entry is a
+.BR SubSection,
+with the subsection name being the module name, and the contents of the
+.B SubSection
+being
+.B Options
+that are passed to the module when it is loaded.
+.PP
+Example: the extmod module (which contains a miscellaneous group of
+server extensions) can be loaded, with the XFree86-DGA extension
+disabled by using the following entry:
+.PP
+.RS 4
+.nf
+.B "SubSection ""extmod"""
+.B " Option ""omit XFree86-DGA"""
+.B EndSubSection
+.fi
+.RE
+.PP
+Modules are searched for in each directory specified in the
+.B ModulePath
+search path, and in the drivers, input, extensions, fonts, and
+internal subdirectories of each of those directories.
+In addition to this, operating system specific subdirectories of all
+the above are searched first if they exist.
+.PP
+To see what font and extension modules are available, check the contents
+of the following directories:
+.PP
+.RS 4
+.nf
+__projectroot__/lib/modules/fonts
+__projectroot__/lib/modules/extensions
+.fi
+.RE
+.PP
+The "bitmap" font modules is loaded automatically. It is recommended
+that at very least the "extmod" extension module be loaded. If it isn't
+some commonly used server extensions (like the SHAPE extension) will not be
+available.
+.SH INPUTDEVICE SECTION
+The config file may have multiple
+.B InputDevice
+sections. There will normally be at least two: one for the core (primary)
+keyboard, and one of the core pointer.
+.PP
+.B InputDevice
+sections have the following format:
+.PP
+.RS 4
+.nf
+.B "Section ""InputDevice"""
+.BI " Identifier """ name """"
+.BI " Driver """ inputdriver """"
+.I " options"
+.I " ..."
+.B "EndSection"
+.fi
+.RE
+.PP
+The
+.B Identifier
+entry specifies the unique name for this input device. The
+.B Driver
+entry specifies the name of the driver to use for this input device.
+When using the loadable server, the input driver module
+.RI """ inputdriver """
+will be loaded for each active
+.B InputDevice
+section. An
+.B InputDevice
+section is considered active if it is referenced by an active
+.B ServerLayout
+section, or if it is referenced by the
+.B \-keyboard
+or
+.B \-pointer
+command line options.
+The most commonly used input drivers are "keyboard" and "mouse".
+.PP
+.B InputDevice
+sections recognise some driver-independent
+.BR Options ,
+which are described here. See the individual input driver manual pages
+for a description of the device-specific options.
+.TP 7
+.BI "Option ""CorePointer"""
+When this is set, the input device is installed as the core (primary)
+pointer device. There must be exactly one core pointer. If this option
+is not set here, or in the
+.B ServerLayout
+section, or from the
+.B \-pointer
+command line option, then the first input device that is capable of
+being used as a core pointer will be selected as the core pointer.
+This option is implicitly set when the obsolete
+.B Pointer
+section is used.
+.TP 7
+.BI "Option ""CoreKeyboard"""
+When this is set, the input device is to be installed as the core
+(primary) keyboard device. There must be exactly one core keyboard. If
+this option is not set here, in the
+.B ServerLayout
+section, or from the
+.B \-keyboard
+command line option, then the first input device that is capable of
+being used as a core keyboard will be selected as the core keyboard.
+This option is implicitly set when the obsolete
+.B Keyboard
+section is used.
+.TP 7
+.BI "Option ""AlwaysCore"" """ boolean """"
+.TP 7
+.BI "Option ""SendCoreEvents"" """ boolean """"
+Both of these options are equivalent, and when enabled cause the
+input device to always report core events. This can be used, for
+example, to allow an additional pointer device to generate core
+pointer events (like moving the cursor, etc).
+.TP 4
+.BI "Option ""HistorySize"" """ number """"
+Sets the motion history size. Default: 0.
+.TP 7
+.BI "Option ""SendDragEvents"" """ boolean """"
+???
+.SH DEVICE SECTION
+The config file may have multiple
+.B Device
+sections. There must be at least one, for the video card being used.
+.PP
+.B Device
+sections have the following format:
+.PP
+.RS 4
+.nf
+.B "Section ""Device"""
+.BI " Identifier """ name """"
+.BI " Driver """ driver """"
+.I " entries"
+.I " ..."
+.B "EndSection"
+.fi
+.RE
+.PP
+The
+.B Identifier
+entry specifies the unique name for this graphics device. The
+.B Driver
+entry specifies the name of the driver to use for this graphics device.
+When using the loadable server, the driver module
+.RI """ driver """
+will be loaded for each active
+.B Device
+section. A
+.B Device
+section is considered active if it is referenced by an active
+.B Screen
+section.
+.PP
+.B Device
+sections recognise some driver-independent entries and
+.BR Options ,
+which are described here. Not all drivers make use of these
+driver-independent entries, and many of those that do don't require them
+to be specified because the information is auto-detected. See the
+individual graphics driver manual pages for further information about
+this, and for a description of the device-specific options.
+Note that most of the
+.B Options
+listed here (but not the other entries) may be specified in the
+.B Screen
+section instead of here in the
+.B Device
+section.
+.TP 7
+.BI "BusID """ bus-id """"
+This specifies the bus location of the graphics card. For PCI/AGP cards,
+the
+.I bus-id
+string has the form
+.BI PCI: bus : device : function
+(e.g., "PCI:1:0:0" might be appropriate for an AGP card).
+This field is usually optional in single-head configurations when using
+the primary graphics card. In multi-head configurations, or when using
+a secondary graphics card in a single-head configuration, this entry is
+mandatory. Its main purpose is to make an unambiguous connection between
+the device section and the hardware it is representing. This information
+can usually be found by running the X server with the
+.B \-scanpci
+command line option.
+.TP 7
+.BI "Chipset """ chipset """"
+This usually optional entry specifies the chipset used on the graphics
+board. In most cases this entry is not required because the drivers
+will probe the hardware to determine the chipset type. Don't
+specify it unless the driver-specific documentation recommends that you
+do.
+.TP 7
+.BI "Ramdac """ ramdac-type """"
+This optional entry specifies the type of RAMDAC used on the graphics
+board. This is only used by a few of the drivers, and in most cases it
+is not required because the drivers will probe the hardware to determine
+the RAMDAC type where possible. Don't specify it unless the
+driver-specific documentation recommends that you do.
+.TP 7
+.BI "DacSpeed " speed
+.TP 7
+.BI "DacSpeed " "speed-8 speed-16 speed-24 speed-32"
+This optional entry specifies the RAMDAC speed rating (which is usually
+printed on the RAMDAC chip). The speed is in MHz. When one value is
+given, it applies to all framebuffer pixel sizes. When multiple values
+are give, they apply to the framebuffer pixel sizes 8, 16, 24 and 32
+respectively. This is not used by many drivers, and only needs to be
+specified when the speed rating of the RAMDAC is different from the
+defaults built in to driver, or when the driver can't auto-detect the
+correct defaults. Don't specify it unless the driver-specific
+documentation recommends that you do.
+.TP 7
+.BI "Clocks " "clock ..."
+specifies the pixel that are on your graphics board. The clocks are in
+MHz, and may be specified as a floating point number. The value is
+stored internally to the nearest kHz. The ordering of the clocks is
+important. It must match the order in which they are selected on the
+graphics board. Multiple
+.B Clocks
+lines may be specified, and each is concatenated to form the list. Most
+drivers do not use this entry, and it is only required for some older
+boards with non-programmable clocks. Don't specify this entry unless
+the driver-specific documentation explicitly recommends that you do.
+.TP
+.BI "ClockChip """ clockchip-type """"
+This optional entry is used to specify the clock chip type on
+graphics boards which have a programmable clock generator. Only
+a few X servers support programmable clock chips. For details,
+see the appropriate X server manual page.
+.TP 7
+.BI "VideoRam " "mem"
+This optional entry specifies the amount of video ram that is installed
+on the graphics board. This is measured in kBytes. In most cases this
+is not required because the X server probes the graphics board to
+determine this quantity. The driver-specific documentation should
+indicate when it might be needed.
+.TP 7
+.BI "BiosBase " "baseaddress"
+This optional entry specifies the base address of the video BIOS
+for the VGA board. This address is normally auto-detected, and should
+only be specified if the driver-specific documentation recommends it.
+.TP 7
+.BI "MemBase " "baseaddress"
+This optional entry specifies the memory base address of a graphics
+board's linear frame buffer. This entry is not used by many drivers,
+and it should only be specified if the driver-specific documentation
+recommends it.
+.TP 7
+.BI "IOBase " "baseaddress"
+This optional entry specifies the IO base address. This entry is not
+used by many drivers, and it should only be specified if the
+driver-specific documentation recommends it.
+.TP 7
+.BI "ChipID " "id"
+This optional entry specifies a numerical ID representing the chip type.
+For PCI cards, it is usually the device ID. This can be used to override
+the auto-detection, but that should only be done when the driver-specific
+documentation recommends it.
+.TP 7
+.BI "ChipRev " "rev"
+This optional entry specifies the chip revision number. This can be
+used to override the auto-detection, but that should only be done when
+the driver-specific documentation recommends it.
+.TP 7
+.BI "TextClockFreq " "freq"
+This optional entry specifies the pixel clock frequency that is used
+for the regular text mode. The frequency is specified in MHz. This is
+rarely used.
+.ig
+.TP 7
+This optional entry allows an IRQ number to be specified.
+..
+.TP 7
+.B Options
+Option flags may be specified in the
+.B Device
+sections. These include driver-specific options and driver-independent
+options. The former are described in the driver-specific documentation.
+Some of the latter are described below in the section about the
+.B Screen
+section, and they may also be included here.
+
+.SH VIDEOADAPTOR SECTION
+Nobody wants to say how this works. Maybe nobody knows ...
+
+.SH MONITOR SECTION
+The config file may have multiple
+.B Monitor
+sections. There must be at least one, for the monitor being used.
+.PP
+.B Monitor
+sections have the following format:
+.PP
+.RS 4
+.nf
+.B "Section ""Monitor"""
+.BI " Identifier """ name """"
+.I " entries"
+.I " ..."
+.B "EndSection"
+.fi
+.RE
+.PP
+The
+.B Identifier
+entry specifies the unique name for this monitor. The
+.B Monitor
+section provides information about the specifications of the monitor,
+monitor-specific
+.BR Options ,
+and information about the video modes to use with the monitor. Specifying
+video modes is optional because the server now has a built-in list of
+VESA standard modes. When modes are specified explicitly in the
+.B Monitor
+section (with the
+.BR Modes ,
+.BR ModeLine ,
+or
+.B UseModes
+keywords), built-in modes with the same names are not included. Built-in
+modes with different names are, however, still implicitly included.
+.PP
+The entries that may be used in
+.B Monitor
+sections are described below.
+.TP 7
+.BI "VendorName """ vendor """"
+This optional entry specifies the monitor's manufacturer.
+.TP 7
+.BI "ModelName """ model """"
+This optional entry specifies the monitor's model.
+.TP 7
+.BI "HorizSync " "horizsync-range"
+gives the range(s) of horizontal sync frequencies supported by the
+monitor.
+.I horizsync-range
+may be a comma separated list of either discrete values or ranges of
+values. A range of values is two values separated by a dash. By default
+the values are in units of kHz. They may be specified in MHz or Hz if
+.B MHz
+or
+.B Hz
+is added to the end of the line. The data given here is used by the X
+server to determine if video modes are within the specifications of the
+monitor. This information should be available in the monitor's handbook.
+If this entry is omitted, a default range of 28\-33kHz is used.
+.TP 7
+.BI "VertRefresh " "vertrefresh-range"
+gives the range(s) of vertical refresh frequencies supported by the
+monitor.
+.I vertrefresh-range
+may be a comma separated list of either discrete values or ranges of
+values. A range of values is two values separated by a dash. By default
+the values are in units of Hz. They may be specified in MHz or kHz if
+.B MHz
+or
+.B kHz
+is added to the end of the line. The data given here is used by the X
+server to determine if video modes are within the specifications of the
+monitor. This information should be available in the monitor's handbook.
+If this entry is omitted, a default range of 43-72Hz is used.
+.TP 7
+.BI "Gamma " "gamma-value"
+.TP 7
+.BI "Gamma " "red-gamma green-gamma blue-gamma"
+This is an optional entry that can be used to specify the gamma
+correction for the monitor. It may be specified as either a single
+value or as three separate RGB values. The values should be in the range
+0.1 to 10.0, and the default is 1.0. Not all drivers are capable
+of using this information.
+.TP 7
+.BI "UseModes """ modesection-id """"
+Include the set of modes listed in the
+.B Modes
+section called
+.IR modesection-id.
+This make all of the modes defined in that section available for use
+by this monitor.
+.TP 7
+.B Mode \fI"name"\fP
+This is an optional multi-line entry that can be used to provide
+definitions for video modes for the monitor. In most cases this isn't
+necessary because the built-in set of VESA standard modes will be
+sufficient. The
+.B Mode
+keyword indicates the start of a multi-line video mode description.
+The mode description is terminated with the
+.B EndMode
+keyword. The mode description consists of the following entries:
+.RS 7
+.TP 4
+.BI "DotClock " clock
+is the dot (pixel) clock rate to be used for the mode.
+.TP 4
+.BI "HTimings " "hdisp hsyncstart hsyncend htotal"
+specifies the horizontal timings for the mode.
+.TP 4
+.BI "VTimings " "vdisp vsyncstart vsyncend vtotal"
+specifies the vertical timings for the mode.
+.TP 4
+.BI "Flags """ flag """" " ..."
+specifies an optional set of mode flags, each of which is a separate
+string in double quotes.
+.B """Interlace"""
+indicates that the mode is interlaced.
+.B """DoubleScan"""
+indicates a mode where each scanline is doubled.
+.B """+HSync"""
+and
+.B """\-HSync"""
+can be used to select the polarity of the HSync signal.
+.B """+VSync"""
+and
+.B """\-VSync"""
+can be used to select the polarity of the VSync signal.
+.B """Composite"""
+can be used to specify composite sync on hardware where this is supported.
+Additionally, on some hardware,
+.B """+CSync"""
+and
+.B """\-CSync"""
+may be used to select the composite sync polarity.
+.TP 4
+.BI "HSkew " hskew
+specifies the number of pixels (towards the right edge of the screen)
+by which the display enable signal is to be skewed. Not all drivers
+use this information. This option might become necessary to override
+the default value supplied by the server (if any). "Roving" horizontal
+lines indicate this value needs to be increased. If the last few pixels
+on a scan line appear on the left of the screen, this value should be
+decreased.
+.TP 4
+.BI "VScan " vscan
+specifies the number of times each scanline is painted on the screen.
+Not all drivers use this information. Values less than 1 are treated
+as 1, which is the default. Generally, the
+.B """DoubleScan"""
+.B Flag
+mentioned above doubles this value.
+.RE
+.TP 7
+.BI "ModeLine """ name """" " mode-description"
+This entry is a more compact version of the
+.B Mode
+entry, and it also can be used to specify video modes for the monitor.
+is a single line format for specifying video modes. In most cases this
+isn't necessary because the built-in set of VESA standard modes will be
+sufficient.
+.PP
+.RS 7
+The
+.I mode-description
+is in four sections, the first three of which are mandatory. The first
+is the dot (pixel) clock. This is a single number specifying the pixel
+clock rate for the mode in MHz. The second section is a list of four
+numbers specifying the horizontal timings. These numbers are the
+.IR hdisp ,
+.IR hsyncstart ,
+.IR hsyncend ,
+and
+.I htotal
+values. The third section is a list of four numbers specifying the
+vertical timings. These numbers are the
+.IR vdisp ,
+.IR vsyncstart ,
+.IR vsyncend ,
+and
+.I vtotal
+values. The final section is a list of flags specifying other
+characteristics of the mode.
+.B Interlace
+indicates that the mode is interlaced.
+.B DoubleScan
+indicates a mode where each scanline is doubled.
+.B +HSync
+and
+.B \-HSync
+can be used to select the polarity of the HSync signal.
+.B +VSync
+and
+.B \-VSync
+can be used to select the polarity of the VSync signal.
+.B Composite
+can be used to specify composite sync on hardware where this is supported.
+Additionally, on some hardware,
+.B +CSync
+and
+.B \-CSync
+may be used to select the composite sync polarity. The
+.B HSkew
+and
+.B VScan
+options mentioned above in the
+.B Modes
+entry description can also be used here.
+.RE
+.TP 7
+.B Options
+Some
+.B Option
+flags that may be useful to include in
+.B Monitor
+sections (when needed) include
+.BR """DPMS""" ,
+and
+.BR """SyncOnGreen""" .
+
+.SH MODES SECTION
+The config file may have multiple
+.B Modes
+sections, or none. These sections provide a way of defining sets of
+video modes independently of the
+.B Monitor
+sections.
+.B Monitor
+sections may include the definitions provided in these sections by
+using the
+.B UseModes
+keyword. In most cases the
+.B Modes
+sections are not necessary because the built-in set of VESA standard modes
+will be sufficient.
+.PP
+.B Modes
+sections have the following format:
+.PP
+.RS 4
+.nf
+.B "Section ""Modes"""
+.BI " Identifier """ name """"
+.I " entries"
+.I " ..."
+.B "EndSection"
+.fi
+.RE
+.PP
+The
+.B Identifier
+entry specifies the unique name for this set of mode descriptions.
+The other entries permitted in
+.B Modes
+sections are the
+.B Mode
+and
+.B ModeLine
+entries that are described above in the
+.B Monitor
+section.
+.SH SCREEN SECTION
+The config file may have multiple
+.B Screen
+sections. There must be at least one, for the "screen" being used.
+A "screen" represents the binding of a graphics device
+.RB ( Device
+section) and a monitor
+.RB ( Monitor
+section). A
+.B Screen
+section is considered "active" if it is referenced by an active
+.B ServerLayout
+section or by the
+.B \-screen
+command line option. If neither of those is present, the first
+.B Screen
+section found in the config file is considered the active one.
+.PP
+.B Screen
+sections have the following format:
+.PP
+.RS 4
+.nf
+.B "Section ""Screen"""
+.BI " Identifier """ name """"
+.BI " Device """ devid """"
+.BI " Monitor """ monid """"
+.I " entries"
+.I " ..."
+.BI " SubSection ""Display"""
+.I " entries"
+.I " ...
+.B " EndSubSection"
+.I " ..."
+.B "EndSection"
+.fi
+.RE
+.PP
+The
+.B Identifier
+entry specifies the unique name for this screen. The
+.B Screen
+section provides information specific to the whole screen, including
+screen-specific
+.BR Options .
+In multi-head configurations, there will be multiple active
+.B Screen
+sections, one for each head.
+The entries available
+for this section are:
+.TP 7
+.BI "Device """ device-id """"
+This specifies the
+.B Device
+section to be used for this screen. This is what ties a specific
+graphics card to a screen. The
+.I device-id
+must match the
+.B Identifier
+of a
+.B Device
+section in the config file.
+.TP 7
+.BI "Monitor """ monitor-id """"
+specifies which monitor description is to be used for this screen.
+.TP 7
+.BI "VideoAdaptor """ xv-id """"
+specifies an optional Xv video adaptor description to be used with this
+screen.
+.TP 7
+.BI "DefaultDepth " depth
+specifies which color depth the server should use by default. The
+.B \-depth
+command line option can be used to override this. If neither is specified,
+the default depth is driver-specific, but in most cases is 8.
+.TP 7
+.BI "DefaultFbBpp " bpp
+specifies which framebuffer layout to use by default. The
+.B \-fbbpp
+command line option can be used to override this. In most cases the
+driver will chose the best default value for this. The only case where
+there is even a choice in this value is for depth 24, where some hardware
+supports both a packed 24 bit framebuffer layout and a sparse 32 bit
+framebuffer layout.
+.TP 7
+.B Options
+Various
+.B Option
+flags may be specified in the
+.B Screen
+section. Some are driver-specific and are described in the driver
+documentation. Others are driver-independent, and will eventually be
+described here.
+.PP
+Each
+.B Screen
+section must contain one or more
+.B Display
+subsections. Those subsections provide depth/fbbpp specific configuration
+information, and the one chosen depends on the depth and/or fbbpp that
+is being used for the screen. The
+.B Display
+subsection format is described in the section below.
+
+.SH DISPLAY SUBSECTION
+Each
+.B Screen
+section may have multiple
+.B Display
+subsections. There must be at least one, which matches the depth
+and/or fbbpp values that are being used for the screen. The "active"
+.B Display
+subsection is the first that matches the depth and/or fbbpp values being
+used.
+.PP
+.B Display
+subsections have the following format:
+.PP
+.RS 4
+.nf
+.B " SubSection ""Display"""
+.BI " Depth " depth
+.I " entries"
+.I " ..."
+.B " EndSubSection"
+.fi
+.RE
+.PP
+.TP 7
+.BI "Depth " depth
+This entry specifies what colour depth the
+.B Display
+subsection is to be used for. This entry is usually mandatory,
+but it may be omitted in some cases providing an
+.B FbBpp
+entry is present. The range of
+.I depth
+values that are allowed depends on the driver. Most driver support
+8, 15, 16 and 24. Some also support 1 and/or 4, and some may support
+other values (like 30). Note:
+.I depth
+means the number of bits in a pixel that are actually used to determine
+the pixel colour. 32 is not a valid
+.I depth
+value. Most hardware that uses 32 bits per pixel only uses 24 of them
+to hold the colour information, which means that the colour depth is
+24, not 32.
+.TP 7
+.BI "FbBpp " bpp
+This entry specifies the framebuffer format this
+.B Display
+subsection is to be used for. This entry is only needed when providing
+depth 24 configurations that allow a choice between a 24 bpp packed
+framebuffer format and a 32bpp sparse framebuffer format. In most cases
+this entry should not be used.
+.TP 7
+.BI "Weight " "red-weight green-weight blue-weight"
+This optional entry specifies the relative RGB weighting to be used
+for a screen is being used at depth 16 for drivers that allow multiple
+formats. This may also be specified from the command line with the
+.B \-weight
+option (see
+.IR XFree86(1) ).
+.TP 7
+.BI "Virtual " "xdim ydim"
+This optional entry specifies the virtual screen resolution to be used.
+.I xdim
+must be a multiple of either 8 or 16 for most drivers, and a multiple
+of 32 when running in monochrome mode. The given value will be rounded
+down if this is not the case. Video modes which are too large for the
+specified virtual size will be rejected. If this entry is not present,
+the virtual screen resolution will be set to accommodate all the valid
+video modes given in the
+.B Modes
+entry. Some drivers/hardware combinations do not support virtual screens.
+Refer to the appropriate driver-specific documentation for details.
+.TP 7
+.BI "ViewPort " "x0 y0"
+This optional entry sets the upper left corner of the initial display.
+This is only relevant when the virtual screen resolution is different
+from the resolution of the initial video mode. If this entry is not
+given, then the initial display will be centered in the virtual display
+area.
+.TP 7
+.BI "Modes """ mode-name """" " ..."
+This entry is highly desirable for most drivers, and it specifies the list
+of video modes to use. Each
+.I mode-name
+specified must be in double quotes. They must correspond to those
+specified or referenced in the appropriate
+.B Monitor
+section (including implicitly referenced built-in VESA standard modes).
+The server will delete modes from this list which don't satisfy various
+requirements. The first valid mode in this list will be the default
+display mode for startup. The list of valid modes is converted internally
+into a circular list. It is possible to switch to the next mode with
+.B Ctrl+Alt+Keypad-Plus
+and to the previous mode with
+.BR Ctrl+Alt+Keypad-Minus .
+When this entry is omitted, the largest valid mode referenced by the
+appropriate
+.B Monitor
+section will be used.
+.TP 7
+.BI "Visual """ visual-name """"
+This optional entry sets the default root visual type. This may also
+be specified from the command line (see the
+.I Xserver(1)
+man page). The visual types available for depth 8 are (default is
+.BR PseudoColor ):
+.PP
+.RS 11
+.nf
+.B StaticGray
+.B GrayScale
+.B StaticColor
+.B PseudoColor
+.B TrueColor
+.B DirectColor
+.fi
+.RE
+.PP
+.RS 7
+The visual type available for the depths 15, 16 and 24 are (default is
+.BR TrueColor ):
+.PP
+.RS 4
+.nf
+.B TrueColor
+.B DirectColor
+.fi
+.RE
+.PP
+Not all drivers support
+.B DirectColor
+at these depths.
+.PP
+The visual types available for the depth 4 are (default is
+.BR StaticColor ):
+.PP
+.RS 4
+.nf
+.B StaticGray
+.B GrayScale
+.B StaticColor
+.B PseudoColor
+.fi
+.RE
+.PP
+The visual type available for the depth 1 (monochrome) is
+.BR StaticGray .
+.RE
+.TP 7
+.BI "Black " "red green blue"
+This optional entry allows the "black" colour to be specified. This
+.TP 7
+.BI "White " "red green blue"
+This optional entry allows the "white" colour to be specified. This
+is only supported at depth 1. The default is white.
+.TP 7
+.B Options
+Option flags may be specified in the
+.B Display
+subsections. These may include driver-specific options and
+driver-independent options. The former are described in the
+driver-specific documentation. Some of the latter are described above
+in the section about the
+.B Screen
+section, and they may also be included here.
+.SH SERVERLAYOUT SECTION
+The config file may have multiple
+.B ServerLayout
+sections.
+A "server layout" represents the binding of one or more screens
+.RB ( Screen
+sections) and one or more input devices
+.RB ( InputDevice
+sections) to form a complete configuration. In multi-head configurations,
+it also specifies the relative layout of the heads. A
+.B ServerLayout
+section is considered "active" if it is referenced by the
+.B \-layout
+command line option. If that option is not used, the first
+.B ServerLayout
+section found in the config file is considered the active one. If no
+.B ServerLayout
+sections are present, the single active screen and two active (core)
+input devices are selected as described in the relevant sections above.
+.PP
+.B ServerLayout
+sections have the following format:
+.PP
+.RS 4
+.nf
+.B "Section ""ServerLayout"""
+.BI " Identifier """ name """"
+.BI " Screen """ screen-id """"
+.I " ..."
+.BI " InputDevice """ idev-id """"
+.I " ..."
+.I " options"
+.I " ..."
+.B "EndSection"
+.fi
+.RE
+.PP
+The
+.B Identifier
+entry specifies the unique name for this server layout. The
+.B ServerLayout
+section provides information specific to the whole session, including
+session-specific
+.BR Options .
+The
+.B ServerFlags
+options (described above) may be specified here, and ones given here
+override those given in the
+.B ServerFlags
+section.
+.PP
+The entries that may be used in this section are described here.
+.TP 7
+.BI "Screen """ screen-id """" " screen-num position-information"
+One of these entries must be given for each screen being used in
+a session. The
+.I screen-id
+field is mandatory, and specifies the
+.B Screen
+section being referenced. The
+.I screen-num
+field is optional, and may be used to specify the screen number
+in multi-head configurations. When this field is omitted, the
+screens will be numbered in the order that they are listed in.
+The numbering starts from 0, and must be consecutive. The
+.I position-information
+field describes the way multiple screens are positioned. There are
+a number of different ways that this information can be provided:
+.RS 7
+.TP 4
+.BI "Absolute " "x y"
+This says that the upper left corner's coordinates are
+.RI ( x , y ).
+If the coordinates are omitted or if no positioning information
+is given, (0,0) is assumed.
+.TP 4
+.BI "RightOf """ screen-id """"
+.TP 4
+.BI "LeftOf """ screen-id """"
+.TP 4
+.BI "Above """ screen-id """"
+.TP 4
+.BI "Below """ screen-id """"
+.TP 4
+.BI "Relative """ screen-id """" " x y"
+These give the screen's location relative to another screen.
+.RE
+.TP 7
+.BI "InputDevice """ idev-id """ """ option """" " ..."
+One of these entries must be given for each input device being used in
+a session. Normally at least two are required, one each for the core
+pointer and keyboard devices. The
+.I idev-id
+field is mandatory, and specifies the name of the
+.B InputDevice
+section being referenced. Multiple
+.I option
+fields may be specified, each in double quotes. The options permitted
+here are any that may also be given in the
+.B InputDevice
+sections. Normally only session-specific input device options would
+be used here. The most commonly used options are:
+.PP
+.RS 11
+.nf
+.B """CorePointer"""
+.B """CoreKeyboard"""
+.B """SendCoreEvents"""
+.fi
+.RE
+.PP
+.RS 7
+and the first two should normally be used to indicate the core pointer
+and core keyboard devices respectively.
+.RE
+.TP 7
+.B Options
+Any option permitted in the
+.B ServerFlags
+section may also be specified here. When the same option appears in both
+places, the value given here overrides the one given in the
+.B ServerFlags
+section.
+.PP
+Here is an example of a
+.B ServerLayout
+section for a dual headed configuration with two mice:
+.PP
+.RS 4
+.nf
+.B "Section ""ServerLayout"""
+.B " Identifier ""Layout 1"""
+.B " Screen ""MGA 1"""
+.B " Screen ""MGA 2"" RightOf ""MGA 1"""
+.B " InputDevice ""Keyboard 1"" ""CoreKeyboard"""
+.B " InputDevice ""Mouse 1"" ""CorePointer"""
+.B " InputDevice ""Mouse 2"" ""SendCoreEvents"""
+.B " Option ""BlankTime"" ""5"""
+.B "EndSection"
+.fi
+.RE
+.SH DRI SECTION
+This optional section is used to provide some information for the
+Direct Rendering Infrastructure. Details about the format of this section
+can be found in the README.DRI document, which is also available on-line
+at
+.IR <http://www.xfree86.org/current/DRI.html> .
+.SH VENDOR SECTION
+The optional
+.B Vendor
+section may be used to provide vendor-specific configuration information.
+Multiple
+.B Vendor
+sections may be present, and they may contain an
+.B Identifier
+entry and multiple
+.B Option
+flags. The data therein is not used in this release.
+.PP
+.SH FILES
+For an example of an XF86Config file, see the file installed as
+__projectroot__/lib/X11/XF86Config.eg.
+.fi
+.SH "SEE ALSO"
+X(1), Xserver(1), XFree86(1),
+apm(__drivermansuffix__),
+ati(__drivermansuffix__),
+chips(__drivermansuffix__),
+cirrus(__drivermansuffix__),
+cyrix(__drivermansuffix__),
+fbdev(__drivermansuffix__),
+glide(__drivermansuffix__),
+glint(__drivermansuffix__),
+i740(__drivermansuffix__),
+i810(__drivermansuffix__),
+mga(__drivermansuffix__),
+neomagic(__drivermansuffix__),
+nv(__drivermansuffix__),
+r128(__drivermansuffix__),
+rendition(__drivermansuffix__),
+s3virge(__drivermansuffix__),
+sis(__drivermansuffix__),
+tdfx(__drivermansuffix__),
+tga(__drivermansuffix__),
+trident(__drivermansuffix__),
+tseng(__drivermansuffix__),
+v4l(__drivermansuffix__),
+vga(__drivermansuffix__),
+.IR README ,
+.IR RELNOTES ,
+.IR README.mouse ,
+.IR README.DRI ,
+.IR Status ,
+.IR Install .
+.SH AUTHORS
+This manual page was largely rewritten for XFree86 4.0 by David Dawes
+.IR <dawes@xfree86.org> .
diff --git a/xc/programs/Xserver/hw/xfree86/XFree86.cpp b/xc/programs/Xserver/hw/xfree86/XFree86.cpp
new file mode 100644
index 000000000..b215dc64c
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/XFree86.cpp
@@ -0,0 +1,577 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/XFree86.cpp,v 1.1 2000/03/07 01:37:42 dawes Exp $
+.TH XFree86 1 "Version 4.0" "XFree86"
+.SH NAME
+XFree86 - X11R6 X server
+.SH SYNOPSIS
+.B XFree86
+[:display] [option ...]
+.SH DESCRIPTION
+XFree86 is an X servers for UNIX-like OSs on Intel x86 and other platforms.
+This work is derived from
+.I "X386\ 1.2"
+which was contributed to X11R5 by Snitily Graphics Consulting Service.
+The current XFree86 release is based on X11R6.3.
+The XFree86 X server architecture was redesigned for the 4.0 release, and
+it includes among other things a loadable module system donated by
+Metro Link, Inc.
+.SH CONFIGURATIONS
+.PP
+.I XFree86
+operates under the following operating systems:
+.RS .5i
+.na
+.PP
+-- SVR3.2: SCO 3.2.2, 3.2.4, ISC 3.x, 4.x
+.br
+-- SVR4.0: ESIX, Microport, Dell, UHC, Consensys, MST, ISC, AT&T, NCR
+.br
+-- SVR4.2: Consensys, Univel (UnixWare)
+.br
+-- Solaris (x86) 2.5, 2.6
+.br
+-- FreeBSD 2.1.x, 2.2.x, 3.0-current
+.br
+-- NetBSD 1.2, 1.3
+.br
+-- OpenBSD
+.ig
+.br
+-- BSD/386 version 1.1 and BSD/OS 2.0
+.br
+-- Mach (from CMU)
+..
+.br
+-- Linux
+.ig
+.br
+-- Amoeba version 5.1
+.br
+-- Minix-386vm version 1.6.25.1
+..
+.br
+-- LynxOS AT versions 2.2.1, 2.3.0 and 2.4.0, LynxOS microSPARC 2.4.0
+.ad
+.RE
+.PP
+.SH "NETWORK CONNECTIONS"
+\fIXFree86\fP supports connections made using the following reliable
+byte-streams:
+.TP 4
+.I "Local"
+\fIXFree86\fP supports local connections via Streams pipe via various mechanisms,
+using the following paths (\fIn\fP represents the display number):
+.sp .5v
+.in 8
+.nf
+/dev/X/server.\fBn\fR (SVR3 and SVR4)
+/dev/X/Nserver.\fBn\fR (SVR4)
+.ig
+/tmp/.X11-unix/X\fBn\fR (ISC SVR3)
+..
+/dev/X\fBn\fRS and /dev/X\fBn\fRR (SCO SVR3)
+.fi
+.in
+.sp .5v
+On SVR4.0.4, if the \fIAdvanced Compatibility Package\fP
+is installed, and in SVR4.2, \fIXFree86\fP supports local connections
+from clients for SCO XSight/ODT, and (with modifications to the binary)
+clients for ISC SVR3.
+.TP 4
+.I "Unix Domain"
+\fIXFree86\fP uses \fI/tmp/.X11-unix/X\fBn\fR as the filename for the socket,
+where \fIn\fP is the display number.
+.TP 4
+.I TCP\/IP
+\fIXFree86\fP listens on port htons(6000+\fIn\fP), where \fIn\fP is the display
+number.
+.ig
+.TP 4
+.I "Amoeba RPC"
+This is the default communication medium used under native Amoeba.
+Note that under Amoeba, the server should be started
+with a ``\fIhostname\fP:\fIdisplaynumber\fP'' argument.
+..
+.SH "ENVIRONMENT VARIABLES"
+For operating systems that support local connections other than Unix Domain
+sockets (SVR3 and SVR4), there is a compiled-in list specifying the order
+in which local connections should be attempted. This list can be overridden by
+the \fIXLOCAL\fP environment variable described below. If the display name
+indicates a best-choice connection should be made (e.g. \fI:0.0\fP), each
+connection mechanism is tried until a connection succeeds or no more
+mechanisms are available. Note: for these OSs, the Unix Domain socket
+connection is treated differently from the other local connection types.
+To use it the connection must be made to \fIunix:0.0\fP.
+.PP
+The \fIXLOCAL\fP environment variable should contain a list of one more
+more of the following:
+.sp .5v
+.in 8
+.nf
+NAMED
+PTS
+SCO
+ISC
+.fi
+.in
+.sp .5v
+which represent SVR4 Named Streams pipe, Old-style USL
+Streams pipe, SCO XSight Streams pipe, and ISC Streams pipe, respectively.
+You can select a single mechanism (e.g. \fIXLOCAL=NAMED\fP), or an ordered
+list (e.g. \fIXLOCAL="NAMED:PTS:SCO"\fP). This variable overrides the
+compiled-in defaults. For SVR4 it is recommended that \fINAMED\fP be
+the first preference connection. The default setting is
+\fIPTS:NAMED:ISC:SCO\fP.
+.PP
+To globally override the compiled-in defaults, you should define (and
+export if using \fIsh\fP or \fIksh\fP) \fIXLOCAL\fP globally. If you
+use \fIstartx/xinit\fP, the definition should be at the top of
+your \fI.xinitrc\fP file. If you use \fIxdm\fP, the definitions should be
+early on in the \fI<XRoot>/lib/X11/xdm/Xsession\fP script.
+.SH OPTIONS
+In addition to the normal server options described in the \fIXserver(1)\fP
+manual page, \fIXFree86\fP accepts the following command line switches:
+.TP 8
+.B vt\fIXX\fP
+\fIXX\fP specifies the Virtual Terminal device number which
+\fIXFree86\fP will use. Without this option, \fIXFree86\fP will pick the first
+available Virtual Terminal that it can locate. This option applies only
+to SVR3, SVR4, Linux, and BSD OSs with the `syscons' or `pcvt' driver.
+.TP 8
+.B -crt /dev/tty\fIXX\fP
+SCO only. This is the same as the \fBvt\fP option, and is provided for
+compatibility with the native SCO X server.
+.TP 8
+.B \-probeonly
+Causes the server to exit after the device probing stage. The XF86Config file
+is still used when this option is given, so information that can be
+auto-detected should be commented out.
+.TP 8
+.B \-quiet
+Suppress most informational messages at startup.
+.TP 8
+.B \-bpp \fIn\fP
+No longer supported. Use \fB\-depth\fP to set the color depth, and
+use \fB\-fbbpp\fP if you really need to force a non-default
+framebuffer (hardware) pixel format.
+.TP 8
+.B \-depth \fIn\fP
+Sets the default color depth. Legal values are 8, 15, 16, and 24.
+Not all servers support all values.
+.TP 8
+.B \-fbbpp \fIn\fP
+Sets the number of framebuffer bits per pixel. You should only set
+this if you're sure it's necessary; normally the server can deduce the
+correct value from \fB\-depth\fP above. Useful if you want to run a
+depth 24 configuration with a 24 bpp framebuffer rather than the
+(possibly default) 32 bpp framebuffer. Legal values are 8, 16, 24,
+32. Not all servers support all values.
+.TP 8
+.B \-weight \fInnn\fP
+Set RGB weighting at 16 bpp. The default is 565. This applies
+only to those servers which support 16 bpp.
+.TP 8
+.B \-flipPixels
+Swap the default values for the black and white pixels.
+.TP 8
+.B \-disableVidMode
+Disable the the parts of the VidMode extension used by the xvidtune client
+that can be used to change the video modes.
+.TP 8
+.B \-allowNonLocalXvidtune
+Allow the xvidtune client to connect from another host. By default non-local
+connections are not allowed.
+.TP 8
+.B \-disableModInDev
+Disable dynamic modification of input device settings.
+.TP 8
+.B \-allowNonLocalModInDev
+Allow changes to keyboard and mouse settings from non-local clients.
+By default, connections from non-local clients are not allowed to do this.
+.TP
+.B \-allowMouseOpenFail
+Allow the server to start up even if the mouse device can't be opened or
+initialised.
+.TP 8
+.B \-gamma \fIvalue\fP
+Set the gamma correction. \fIvalue\fP must be between 0.1 and 10. The
+default is 1.0
+This value is applied equally to the R, G and B values. Not all servers
+support this.
+.TP 8
+.B \-rgamma \fIvalue\fP
+Set the red gamma correction. \fIvalue\fP must be between 0.1 and 10. The
+default is 1.0
+Not all servers support this.
+.TP 8
+.B \-ggamma \fIvalue\fP
+Set the green gamma correction. \fIvalue\fP must be between 0.1 and 10. The
+default is 1.0
+Not all servers support this.
+.TP 8
+.B \-bgamma \fIvalue\fP
+Set the blue gamma correction. \fIvalue\fP must be between 0.1 and 10. The
+default is 1.0
+Not all servers support this.
+.TP 8
+.B \-showconfig
+Print out the server version, patchlevel, and a list of screen drivers
+configured in the server.
+.TP 8
+.B \-verbose
+Multiple occurrences of this flag increase the amount of information printed on
+stderr (more than the default).
+.TP 8
+.B \-version
+Same as \fB\-showconfig\fP.
+.TP 8
+.B \-xf86config \fIfile\fP
+Read the server configuration from \fIfile\fP. This option will work
+for any file when the server is run as root (i.e, with real-uid 0), or
+for files relative to a directory in the config search path for all
+other users.
+.TP 8
+.B \-keeptty
+Prevent the server from detaching its initial controlling terminal. This
+option is only useful when debugging the server.
+.SH "KEYBOARD"
+Multiple key presses recognized directly by \fIXFree86\fP are:
+.TP 8
+.B Ctrl+Alt+Backspace
+Immediately kills the server -- no questions asked. (Can be disabled by
+specifying "DontZap" in the \fBServerFlags\fP section of the XF86Config file.)
+.TP 8
+.B Ctrl+Alt+Keypad-Plus
+Change video mode to next one specified in the configuration file,
+(increasing video resolution order).
+.TP 8
+.B Ctrl+Alt+Keypad-Minus
+Change video mode to previous one specified in the configuration file,
+(decreasing video resolution order).
+.TP 8
+.B Ctrl+Alt+F1...F12
+For BSD systems using the syscons driver and Linux, these keystroke
+combinations are used to switch to Virtual
+Console 1 through 12.
+.SH SETUP
+.I XFree86
+uses a configuration file called \fBXF86Config\fP for its initial setup.
+Refer to the
+.I XF86Config(4/5)
+manual page for more information.
+.SH FILES
+.TP 30
+/etc/XF86Config
+Server configuration file
+.TP 30
+/etc/X11/XF86Config
+Server configuration file
+.TP 30
+/usr/X11R6/etc/XF86Config
+Server configuration file
+.TP 30
+<XRoot>/lib/X11/XF86Config.\fIhostname\fP
+Server configuration file
+.TP 30
+<XRoot>/lib/X11/XF86Config
+Server configuration file
+.TP 30
+<XRoot>/bin/\(**
+Client binaries
+.TP 30
+<XRoot>/include/\(**
+Header files
+.TP 30
+<XRoot>/lib/\(**
+Libraries
+.TP 30
+<XRoot>/lib/X11/fonts/\(**
+Fonts
+.TP 30
+<XRoot>/lib/X11/rgb.txt
+Color names to RGB mapping
+.TP 30
+<XRoot>/lib/X11/XErrorDB
+Client error message database
+.TP 30
+<XRoot>/lib/X11/app-defaults/\(**
+Client resource specifications
+.TP 30
+<XRoot>/man/man?/\(**
+Manual pages
+.TP 30
+/etc/X\fIn\fP.hosts
+Initial access control list for display \fIn\fP
+.LP
+Note: <XRoot> refers to the root of the X11 install tree.
+.SH "SEE ALSO"
+X(1), Xserver(1), xdm(1), xinit(1), XF86Config(4/5), xf86config(1),
+XF86_SVGA(1), XF86_VGA16(1), XF86_Mono(1), XF86_Accel(1), xvidtune(1)
+.SH AUTHORS
+.PP
+For X11R5, \fIXF86 1.2\fP was provided by:
+.TP 8
+Thomas Roell, \fIroell@informatik.tu-muenchen.de\fP
+TU-Muenchen: Server and SVR4 stuff
+.TP 8
+Mark W. Snitily, \fImark@sgcs.com\fP
+SGCS: SVR3 support, X Consortium Sponsor
+.PP
+ ... and many more people out there on the net who helped with ideas and
+bug-fixes.
+.PP
+XFree86 was integrated into X11R6 by the following team:
+.PP
+.nf
+Stuart Anderson \fIanderson@metrolink.com\fP
+Doug Anson \fIdanson@lgc.com\fP
+Gertjan Akkerman \fIakkerman@dutiba.twi.tudelft.nl\fP
+Mike Bernson \fImike@mbsun.mlb.org\fP
+Robin Cutshaw \fIrobin@XFree86.org\fP
+David Dawes \fIdawes@XFree86.org\fP
+Marc Evans \fImarc@XFree86.org\fP
+Pascal Haible \fIhaible@izfm.uni-stuttgart.de\fP
+Matthieu Herrb \fIMatthieu.Herrb@laas.fr\fP
+Dirk Hohndel \fIhohndel@XFree86.org\fP
+David Holland \fIdavidh@use.com\fP
+Alan Hourihane \fIalanh@fairlite.demon.co.uk\fP
+Jeffrey Hsu \fIhsu@soda.berkeley.edu\fP
+Glenn Lai \fIglenn@cs.utexas.edu\fP
+Ted Lemon \fImellon@ncd.com\fP
+Rich Murphey \fIrich@XFree86.org\fP
+Hans Nasten \fInasten@everyware.se\fP
+Mark Snitily \fImark@sgcs.com\fP
+Randy Terbush \fIrandyt@cse.unl.edu\fP
+Jon Tombs \fItombs@XFree86.org\fP
+Kees Verstoep \fIversto@cs.vu.nl\fP
+Paul Vixie \fIpaul@vix.com\fP
+Mark Weaver \fIMark_Weaver@brown.edu\fP
+David Wexelblat \fIdwex@XFree86.org\fP
+Philip Wheatley \fIPhilip.Wheatley@ColumbiaSC.NCR.COM\fP
+Thomas Wolfram \fIwolf@prz.tu-berlin.de\fP
+Orest Zborowski \fIorestz@eskimo.com\fP
+.fi
+.PP
+The \fIXFree86\fP enhancement package was provided by:
+.TP 8
+David Dawes, \fIdawes@XFree86.org\fP
+Release coordination, administration of FTP repository and mailing lists.
+Source tree management
+and integration, accelerated server integration, fixing, and coding.
+.TP 8
+Glenn Lai, \fIglenn@cs.utexas.edu\fP
+The SpeedUp code for ET4000 based SVGA cards, and ET4000/W32 accelerated
+server.
+.TP 8
+Jim Tsillas, \fIjtsilla@ccs.neu.edu\fP
+Many server speedups from the fX386 series of enhancements.
+.TP 8
+David Wexelblat, \fIdwex@XFree86.org\fP
+Integration of the fX386 code into the default server,
+many driver fixes, and driver documentation, assembly of the VGA
+card/monitor database, development of the generic video mode listing.
+Accelerated server integration, fixing, and coding.
+.TP 8
+Dirk Hohndel, \fIhohndel@XFree86.org\fP
+Linux shared libraries and release coordination. Accelerated server
+integration and fixing. Generic administrivia and documentation.
+.PP
+.TP 8
+Amancio Hasty Jr., \fIhasty@netcom.com\fP
+Porting to \fB386BSD\fP version 0.1 and XS3 development.
+.TP 8
+Rich Murphey, \fIrich@XFree86.org\fP
+Ported to \fB386BSD\fP version 0.1 based on the original port by Pace Willison.
+Support for \fB386BSD\fP, \fBFreeBSD\fP, and \fBNetBSD\fP.
+.TP 8
+Robert Baron, \fIRobert.Baron@ernst.mach.cs.cmu.edu\fP
+Ported to \fBMach\fP.
+.TP 8
+Orest Zborowski, \fIorestz@eskimo.com\fP
+Ported to \fBLinux\fP.
+.TP 8
+Doug Anson, \fIdanson@lgc.com\fP
+Ported to \fBSolaris x86\fP.
+.TP 8
+David Holland, \fIdavidh@use.com\fP
+Ported to \fBSolaris x86\fP.
+.TP 8
+David McCullough, \fIdavidm@stallion.oz.au\fP
+Ported to \fBSCO SVR3\fP.
+.TP 8
+Michael Rohleder, \fImichael.rohleder@stadt-frankfurt.de\fP
+Ported to \fBISC SVR3\fP.
+.TP 8
+Kees Verstoep, \fIversto@cs.vu.nl\fP
+Ported to \fBAmoeba\fP based on Leendert van Doorn's original Amoeba port of
+X11R5.
+.TP 8
+Marc Evans, \fIMarc@XFree86.org\fP
+Ported to \fBOSF/1\fP.
+.TP 8
+Philip Homburg, \fIphilip@cs.vu.nl\fP
+Ported to \fBMinix-386vm\fP.
+.TP 8
+Thomas Mueller, \fItm@systrix.de\fP
+Ported to \fBLynxOS\fP.
+.TP 8
+Jon Tombs, \fItombs@XFree86.org\fP
+S3 server and accelerated server coordination.
+.TP 8
+Harald Koenig, \fIkoenig@tat.physik.uni-tuebingen.de\fP
+S3 server development.
+.TP 8
+Bernhard Bender, \fIbr@elsa.mhs.compuserve.com\fP
+S3 server development.
+.TP 8
+Kevin Martin, \fImartin@cs.unc.edu\fP
+Overall work on the base accelerated servers (ATI and 8514/A), and Mach64
+server.
+.TP 8
+Rik Faith, \fIfaith@cs.unc.edu\fP
+Overall work on the base accelerated servers (ATI and 8514/A).
+.TP 8
+Tiago Gons, \fItiago@comosjn.hobby.nl\fP
+Mach8 and 8514/A server development
+.TP 8
+Hans Nasten, \fInasten@everyware.se\fP
+Mach8, 8514/A, and S3 server development and BSD/386 support
+.TP 8
+Mike Bernson, \fImike@mbsun.mlb.org\fP
+Mach32 server development.
+.TP 8
+Mark Weaver, \fIMark_Weaver@brown.edu\fP
+Mach32 server development.
+.TP 8
+Craig Groeschel, \fIcraig@metrolink.com\fP
+Mach32 server development.
+.TP 8
+Henry Worth, \fIHenry.Worth@amail.amdahl.com\fP
+AGX server.
+.TP 8
+Erik Nygren, \fInygren@mit.edu\fP
+P9000 server.
+.TP 8
+Harry Langenbacher \fIharry@brain.jpl.nasa.gov\fP
+P9000 server.
+.TP 8
+Chris Mason, \fImason@mail.csh.rit.edu\fP
+P9000 server.
+.TP 8
+Henrik Harmsen \fIharmsen@eritel.se\fP
+P9000 server.
+.TP 8
+Simon Cooper, \fIscooper@vizlab.rutgers.edu\fP
+Cirrus accelerated code (based on work by Bill Reynolds).
+.TP 8
+Harm Hanemaayer, \fIhhanemaa@cs.ruu.nl\fP
+Cirrus accelerated code, and ARK driver.
+.TP 8
+Thomas Zerucha, \fIzerucha@shell.portal.com\fP
+Support for Cirrus CL-GD7543.
+.TP 8
+Leon Bottou, \fIbottou@laforia.ibp.fr\fP
+ARK driver.
+.TP 8
+Mike Tierney, \fIfloyd@eng.umd.edu\fP
+WD accelerated code.
+.TP 8
+Bill Conn, \fIconn@bnr.ca\fP
+WD accelerated code.
+.TP 8
+Brad Bosch, \fIbrad@lachman.com\fP
+WD 90C24A support.
+.TP 8
+Alan Hourihane, \fIalanh@fairlite.demon.co.uk\fP
+Trident SVGA driver, SiS SVGA driver and DEC 21030 server.
+.TP 8
+Marc Aurele La France, \fItsi@ualberta.ca\fP
+ATI SVGA driver
+.TP 8
+Steve Goldman, \fIsgoldman@encore.com\fP
+Oak 067/077 SVGA driver.
+.TP 8
+Jorge Delgado, \fIernar@dit.upm.es\fP
+Oak SVGA driver, and 087 accelerated code.
+.TP 8
+Bill Conn, \fIconn@bnr.ca\fP
+WD accelerated code.
+.TP 8
+Paolo Severini, \fIlendl@dist.dist.unige.it\fP
+AL2101 SVGA driver
+.TP 8
+Ching-Tai Chiu, \fIcchiu@netcom.com\fP
+Avance Logic ALI SVGA driver
+.TP 8
+Manfred Brands, \fImb@oceonics.nl\fP
+Cirrus 64xx SVGA driver
+.TP 8
+Randy Hendry, \fIrandy@sgi.com\fP
+Cirrus 6440 support in the cl64xx SVGA driver
+.TP 8
+Frank Dikker, \fIdikker@cs.utwente.nl\fP
+MX SVGA driver
+.TP 8
+Regis Cridlig, \fIcridlig@dmi.ens.fr\fP
+Chips & Technologies driver
+.TP 8
+Jon Block, \fIblock@frc.com\fP
+Chips & Technologies driver
+.TP 8
+Mike Hollick, \fIhollick@graphics.cis.upenn.edu\fP
+Chips & Technologies driver
+.TP 8
+Nozomi Ytow
+Chips & Technologies driver
+.TP 8
+Egbert Eich, \fIEgbert.Eich@Physik.TH-Darmstadt.DE\fP
+Chips & Technologies driver
+.TP 8
+David Bateman, \fIdbateman@ee.uts.edu.au\fP
+Chips & Technologies driver
+.TP 8
+Xavier Ducoin, \fIxavier@rd.lectra.fr\fP
+Chips & Technologies driver
+.TP 8
+Peter Trattler, \fIpeter@sbox.tu-graz.ac.at\fP
+RealTek SVGA driver
+.TP 8
+Craig Struble, \fIcstruble@acm.vt.edu\fP
+Video7 SVGA driver
+.TP 8
+Gertjan Akkerman, \fIakkerman@dutiba.twi.tudelft.nl\fP
+16 colour VGA server, and XF86Config parser.
+.TP 8
+Davor Matic, \fIdmatic@Athena.MIT.EDU\fP
+Hercules driver.
+.TP 8
+Pascal Haible, \fIhaible@izfm.uni-stuttgart.de\fP
+Banked monochrome VGA support, Hercules support, and mono frame buffer
+support for dumb monochrome devices
+.TP 8
+Martin Schaller,
+.TP 8
+Geert Uytterhoeven,\fIGeert.Uytterhoeven@cs.kuleuven.ac.be\fP
+Linux/m68k Frame Buffer Device driver
+.TP 8
+Andreas Schwab, \fIschwab@issan.informatik.uni-dortmund.de\fP
+Linux/m68k Frame Buffer Device driver
+.TP 8
+Guenther Kelleter, \fIguenther@Pool.Informatik.RWTH-Aachen.de\fP
+Linux/m68k Frame Buffer Device driver
+.TP 8
+Frederic Lepied, \fLepied@XFree86.Org\fP
+XInput extension integration. Wacom, joystick and extended mouse drivers.
+.TP 8
+Patrick Lecoanet, \flecoanet@cena.dgac.fr\fP
+Elographics touchscreen driver.
+.TP 8
+Steven Lang, \ftiger@tyger.org\fP
+SummaSketch tablet driver.
+.PP
+ ... and many more people out there on the net who helped with beta-testing
+this enhancement.
+.PP
+\fIXFree86\fP source is available from the FTP server
+\fIftp.XFree86.org\fP, among others. Send email to
+\fIXFree86@XFree86.org\fP for details.
+.\" $XConsortium: XFree86.man /main/25 1996/12/09 17:33:22 kaleb $
diff --git a/xc/programs/Xserver/hw/xfree86/common/Imakefile b/xc/programs/Xserver/hw/xfree86/common/Imakefile
index c6fc95405..eb1b75975 100644
--- a/xc/programs/Xserver/hw/xfree86/common/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/common/Imakefile
@@ -4,7 +4,7 @@ XCOMM $XConsortium: Imakefile /main/34 1996/10/27 11:05:08 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/common/Imakefile,v 3.112 2000/02/12 20:45:17 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/common/Imakefile,v 3.114 2000/02/24 05:36:48 tsi Exp $
@@ -148,9 +148,8 @@ OFILES = \
-I$(SERVERSRC)/Xi -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
-I$(FONTLIBSRC)/include -I$(XF86SRC) -I$(XF86PARSERSRC) \
-I$(XF86SRC)/loader $(VGAINCLUDES) -I$(XF86SRC)/rac \
- -I$(XF86SRC)/scanpci
-
-
+ -I$(XF86SRC)/scanpci -I$(XF86OSSRC)/vbe -I$(XF86SRC)/int10 \
+ -I$(XF86SRC)/ddc
OSNAME = OSName
OSVENDOR = OSVendor
@@ -158,7 +157,11 @@ OFILES = \
CONSDEFINES = XFree86ConsoleDefines
EXP_DEFINES = -DEXPIRY_TIME=XF86ServerExpiry $(EXP_FORCE_DEFINES)
PROJECTROOT = ProjectRoot
-XCONFIGDEFINES = -DPROJECTROOT='"$(PROJECTROOT)"'
+ DRIVERS = XF86CardDrivers
+ IDRIVERS = mouse XInputDrivers
+XCONFIGDEFINES = -DPROJECTROOT='"$(PROJECTROOT)"' \
+ -DDRIVERS='"$(DRIVERS)"' \
+ -DIDRIVERS='"$(IDRIVERS)"'
#if defined(SunArchitecture) && defined(SVR4Architecture) && OSMinorVersion >= 8
OSDEFINES = -DSOL8
diff --git a/xc/programs/Xserver/hw/xfree86/common/compiler.h b/xc/programs/Xserver/hw/xfree86/common/compiler.h
index b130d7c11..621a2f3b1 100644
--- a/xc/programs/Xserver/hw/xfree86/common/compiler.h
+++ b/xc/programs/Xserver/hw/xfree86/common/compiler.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/compiler.h,v 3.55 2000/02/21 18:05:44 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/compiler.h,v 3.58 2000/03/05 16:59:10 dawes Exp $ */
/*
* Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
*
@@ -363,6 +363,34 @@ static __inline__ void stw_u(unsigned long r5, unsigned short * r11)
#define write_mem_barrier() mem_barrier()
#endif
+
+#elif defined(linux) && defined(__ia64__)
+#define inline __inline__
+
+#include <stdlib.h>
+#include <asm/types.h>
+#include <asm/system.h>
+#include <sys/io.h>
+#include <asm/unaligned.h>
+
+#define ldq_u(p) __uldq(p)
+#define ldl_u(p) __uldl(p)
+#define ldw_u(p) __uldw(p)
+#define stq_u(v,p) __ustq(v,p)
+#define stl_u(v,p) __ustl(v,p)
+#define stw_u(v,p) __ustw(v,p)
+
+#define mem_barrier() __asm__ __volatile__ ("mf" ::: "memory")
+#define write_mem_barrier() __asm__ __volatile__ ("mf" ::: "memory")
+
+#undef outb
+#undef outw
+#undef outl
+
+#define outb(a,b) _outb(b,a)
+#define outw(a,b) _outw(b,a)
+#define outl(a,b) _outl(b,a)
+
#elif (defined(linux) || defined(Lynx)) && defined(__sparc__)
#if !defined(Lynx)
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86.h b/xc/programs/Xserver/hw/xfree86/common/xf86.h
index 5cea1c84b..a6b1ec176 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86.h,v 3.128 2000/02/21 19:22:51 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86.h,v 3.131 2000/03/02 23:15:03 tsi Exp $ */
/*
* Copyright (c) 1997 by The XFree86 Project, Inc.
@@ -23,9 +23,7 @@
/* General parameters */
extern int xf86DoConfigure;
-extern int FoundPciCards;
-extern pciVideoPtr ConfiguredPciCard;
-extern int ConfiguredIsaCard;
+extern Bool xf86DoConfigurePass1;
extern int xf86ScreenIndex; /* Index into pScreen.devPrivates */
extern int xf86CreateRootWindowIndex; /* Index into pScreen.devPrivates */
extern int xf86PixmapIndex;
@@ -123,6 +121,9 @@ Bool xf86DeregisterStateChangeNotificationCallback(xf86StateChangeNotificationCa
Bool xf86QueueAsyncEvent(void (*func)(pointer),pointer arg);
#endif
+/* xf86Configure.c */
+GDevPtr xf86AddDeviceToConfigure(const char *driver, pciVideoPtr pVideo,
+ int chipset);
/* xf86Cursor.c */
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Bus.c b/xc/programs/Xserver/hw/xfree86/common/xf86Bus.c
index e80fc27f9..ecef40d68 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Bus.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Bus.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.43 2000/02/12 23:59:09 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.44 2000/03/05 23:47:44 dawes Exp $ */
/*
* Copyright (c) 1997-1999 by The XFree86 Project, Inc.
*/
@@ -2357,15 +2357,15 @@ xf86PostPreInit()
needRAC = TRUE;
#ifdef XFree86LOADER
- ErrorF("do I need RAC?\n");
+ xf86MsgVerb(X_INFO, 3, "do I need RAC?");
if (needRAC) {
- ErrorF(" Yes, I do.\n");
+ xf86ErrorFVerb(3, " Yes, I do.\n");
if (!xf86LoadOneModule("rac",NULL))
FatalError("Cannot load RAC module\n");
} else
- ErrorF(" No, I don't.\n");
+ xf86ErrorFVerb(3, " No, I don't.\n");
#endif
xf86MsgVerb(X_INFO, 3, "resource ranges after preInit:\n");
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Bus.h b/xc/programs/Xserver/hw/xfree86/common/xf86Bus.h
index 1c25e7d87..2668d1f0d 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Bus.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Bus.h
@@ -1,5 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.h,v 1.12 2000/02/12 23:59:09 eich Exp $ */
-#define DEBUG
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.h,v 1.13 2000/03/05 17:04:10 dawes Exp $ */
/*
* Copyright (c) 1997 by The XFree86 Project, Inc.
*/
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Config.c b/xc/programs/Xserver/hw/xfree86/common/xf86Config.c
index 22d22dc37..d611d5ea0 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Config.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Config.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 3.209 2000/02/18 00:47:35 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 3.214 2000/03/08 05:38:36 dawes Exp $ */
/*
@@ -50,15 +50,19 @@ extern DeviceAssocRec mouse_assoc;
"%E," "%F," \
"/etc/X11/%F," "%P/etc/X11/%F," \
"%D/%X," \
- "/etc/X11/%X," "/etc/%X," "%P/etc/X11/%X.%H," \
- "%P/etc/X11/%X," "%P/lib/X11/%X.%H," \
+ "/etc/X11/%X-%M," "/etc/X11/%X," "/etc/%X," \
+ "%P/etc/X11/%X.%H," "%P/etc/X11/%X-%M," \
+ "%P/etc/X11/%X," \
+ "%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \
"%P/lib/X11/%X"
#endif
#ifndef USER_CONFIGPATH
#define USER_CONFIGPATH "/etc/X11/%S," "%P/etc/X11/%S," \
"/etc/X11/%G," "%P/etc/X11/%G," \
- "/etc/X11/%X," "/etc/%X," "%P/etc/X11/%X.%H," \
- "%P/etc/X11/%X," "%P/lib/X11/%X.%H," \
+ "/etc/X11/%X-%M," "/etc/X11/%X," "/etc/%X," \
+ "%P/etc/X11/%X.%H," "%P/etc/X11/%X-%M," \
+ "%P/etc/X11/%X," \
+ "%P/lib/X11/%X.%H," "%P/lib/X11/%X-%M," \
"%P/lib/X11/%X"
#endif
#ifndef PROJECTROOT
@@ -242,6 +246,8 @@ xf86ModulelistFromConfig(pointer **optlist)
optarray[count] = NULL;
if (optlist)
*optlist = optarray;
+ else
+ xfree(optarray);
return modulearray;
}
@@ -380,6 +386,134 @@ xf86InputDriverlistFromConfig()
/*
+ * Generate a compiled-in list of driver names. This is used to produce a
+ * consistent probe order. For the loader server, we also look for vendor-
+ * provided modules, pre-pending them to our own list.
+ */
+static char **
+GenerateDriverlist(char * dirname, char * drivernames)
+{
+ char *cp, **driverlist;
+ int count;
+
+ /* Count the number needed */
+ count = 0;
+ cp = drivernames;
+ while (*cp) {
+ while (*cp && isspace(*cp)) cp++;
+ if (!*cp) break;
+ count++;
+ while (*cp && !isspace(*cp)) cp++;
+ }
+
+ if (!count)
+ return NULL;
+
+ /* Now allocate the array of pointers to 0-terminated driver names */
+ driverlist = (char **)xnfalloc((count + 1) * sizeof(char *));
+ count = 0;
+ cp = drivernames;
+ while (*cp) {
+ while (*cp && isspace(*cp)) cp++;
+ if (!*cp) break;
+ driverlist[count++] = cp;
+ while (*cp && !isspace(*cp)) cp++;
+ if (!*cp) break;
+ *cp++ = 0;
+ }
+ driverlist[count] = NULL;
+
+#ifdef XFree86LOADER
+ {
+ const char *subdirs[] = {NULL, NULL};
+ static const char *patlist[] = {"(.*)_drv\\.so", "(.*)_drv\\.o", NULL};
+ char **dlist, **clist, **dcp, **ccp;
+
+ subdirs[0] = dirname;
+
+ /* Get module list */
+ dlist = LoaderListDirs(subdirs, patlist);
+ if (!dlist) {
+ xfree(driverlist);
+ return NULL; /* No modules, no list */
+ }
+
+ clist = driverlist;
+
+ /* The resulting list cannot be longer than the module list */
+ for (dcp = dlist, count = 0; *dcp++; count++);
+ driverlist = (char **)xnfalloc((count + 1) * sizeof(char *));
+
+ /* First, add modules not in compiled-in list */
+ for (count = 0, dcp = dlist; *dcp; dcp++) {
+ for (ccp = clist; ; ccp++) {
+ if (!*ccp) {
+ driverlist[count++] = *dcp;
+ break;
+ }
+ if (!strcmp(*ccp, *dcp))
+ break;
+ }
+ }
+
+ /* Next, add compiled-in names that are also modules */
+ for (ccp = clist; *ccp; ccp++) {
+ for (dcp = dlist; *dcp; dcp++) {
+ if (!strcmp(*ccp, *dcp)) {
+ driverlist[count++] = *ccp;
+ break;
+ }
+ }
+ }
+
+ driverlist[count++] = NULL;
+ xfree(clist);
+ xfree(dlist);
+ driverlist = xnfrealloc(driverlist, count * sizeof(char *));
+ }
+#endif /* XFree86LOADER */
+
+ return driverlist;
+}
+
+
+char **
+xf86DriverlistFromCompile(void)
+{
+ static char **driverlist = NULL;
+ static Bool generated = FALSE;
+
+ /* This string is modified in-place */
+ static char drivernames[] = DRIVERS;
+
+ if (!generated) {
+ generated = TRUE;
+ driverlist = GenerateDriverlist("drivers", drivernames);
+ }
+
+ return driverlist;
+}
+
+
+char **
+xf86InputDriverlistFromCompile(void)
+{
+ static char **driverlist = NULL;
+ static Bool generated = FALSE;
+
+ /* This string is modified in-place */
+ static char drivernames[] = IDRIVERS;
+
+ if (!generated) {
+ generated = TRUE;
+ driverlist = GenerateDriverlist("input", drivernames);
+ }
+
+ return driverlist;
+}
+
+
+/*
* xf86ConfigError --
* Print a READABLE ErrorMessage!!! All information that is
* available is printed.
@@ -573,6 +707,8 @@ static OptionInfoRec FlagOptions[] = {
{0}, FALSE },
{ FLAG_PIXMAP, "Pixmap", OPTV_INTEGER,
{0}, FALSE },
+ { FLAG_PC98, "PC98", OPTV_BOOLEAN,
+ {0}, FALSE },
{ FLAG_ESTIMATE_SIZES_AGGRESSIVELY,"EstimateSizesAggressively",OPTV_INTEGER,
{0}, FALSE },
{ FLAG_NOPM, "NoPM", OPTV_BOOLEAN,
@@ -671,6 +807,10 @@ configServerFlags(XF86ConfFlagsPtr flagsconf, XF86OptionPtr layoutopts)
xf86Info.pciFlags = PCIForceConfig1;
if (xf86IsOptionSet(FlagOptions, FLAG_PCIFORCECONFIG2))
xf86Info.pciFlags = PCIForceConfig2;
+ /*
+ * XXX This should be handled like a proper boolean option -- see further
+ * above for examples.
+ */
if (xf86IsOptionSet(FlagOptions, FLAG_NOPM))
xf86Info.pmFlag = FALSE;
else
@@ -1174,7 +1314,6 @@ configLayout(serverLayoutPtr servlayoutp, XF86ConfLayoutPtr conf_layout,
}
}
-#define LAYOUT_DEBUG
#ifdef LAYOUT_DEBUG
ErrorF("Layout \"%s\"\n", conf_layout->lay_identifier);
for (i = 0; i < count; i++) {
@@ -1662,9 +1801,6 @@ configDevice(GDevPtr devicep, XF86ConfDevicePtr conf_device, Bool active)
xf86Msg(X_CONFIG, "|-->Inactive Device \"%s\"\n",
conf_device->dev_identifier);
- /*
- * some things (like clocks) are missing here
- */
devicep->identifier = conf_device->dev_identifier;
devicep->vendor = conf_device->dev_vendor;
devicep->board = conf_device->dev_board;
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Config.h b/xc/programs/Xserver/hw/xfree86/common/xf86Config.h
index 6f6001b3c..6a24df0e0 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Config.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Config.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.h,v 1.4 1999/05/05 14:29:51 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.h,v 1.5 2000/02/24 05:36:50 tsi Exp $ */
/*
* Copyright 1997 by The XFree86 Project, Inc
*/
@@ -18,7 +18,9 @@ extern XF86ConfigPtr xf86configptr;
*/
char ** xf86ModulelistFromConfig(pointer **);
char ** xf86DriverlistFromConfig(void);
+char ** xf86DriverlistFromCompile(void);
char ** xf86InputDriverlistFromConfig(void);
+char ** xf86InputDriverlistFromCompile(void);
Bool xf86BuiltinInputDriver(const char *);
Bool xf86HandleConfigFile(void);
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Configure.c b/xc/programs/Xserver/hw/xfree86/common/xf86Configure.c
index 83f2c827c..35428bc26 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Configure.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Configure.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Configure.c,v 3.15 2000/02/18 00:47:36 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Configure.c,v 3.27 2000/03/04 03:58:05 dawes Exp $ */
/*
* Copyright 2000 by Alan Hourihane, Sychdyn, North Wales.
*
@@ -33,35 +33,47 @@
#include "loaderProcs.h"
#endif
#include "xf86.h"
+#include "xf86Config.h"
#include "xf86Priv.h"
#include "xf86PciInfo.h"
#include "xf86Parser.h"
#include "xf86tokens.h"
#include "Configint.h"
+#include "vbe.h"
+#include "xf86DDC.h"
-pciVideoPtr ConfiguredPciCard;
-int ConfiguredIsaCard;
-int FoundPciCards = 0;
-static int haveVGA = -1;
-Bool havePrimary = FALSE;
+typedef struct _DevToConfig {
+ GDevRec GDev;
+ pciVideoPtr pVideo;
+ int iDriver;
+} DevToConfigRec, *DevToConfigPtr;
+
+static DevToConfigPtr DevToConfig = NULL;
+static int nDevToConfig = 0, CurrentDriver;
+
+xf86MonPtr ConfiguredMonitor;
+Bool xf86DoConfigurePass1 = TRUE;
+Bool foundMouse = FALSE;
static void
-GetPciCard(int id, int *vendor1, int *vendor2, int *card)
+GetPciCard(int vendor, int chipType, int *vendor1, int *vendor2, int *card)
{
int k, j;
+
k = 0;
while (xf86PCIVendorNameInfo[k].token) {
- if (xf86PCIVendorNameInfo[k].token == ConfiguredPciCard[id].vendor)
+ if (xf86PCIVendorNameInfo[k].token == vendor) {
*vendor1 = k;
+ break;
+ }
k++;
}
k = 0;
while(xf86PCIVendorInfo[k].VendorID) {
- if (xf86PCIVendorInfo[k].VendorID == ConfiguredPciCard[id].vendor) {
+ if (xf86PCIVendorInfo[k].VendorID == vendor) {
j = 0;
while (xf86PCIVendorInfo[k].Device[j].DeviceName) {
- if (xf86PCIVendorInfo[k].Device[j].DeviceID ==
- ConfiguredPciCard[id].chipType) {
+ if (xf86PCIVendorInfo[k].Device[j].DeviceID == chipType) {
*vendor2 = k;
*card = j;
break;
@@ -74,23 +86,115 @@ GetPciCard(int id, int *vendor1, int *vendor2, int *card)
}
}
-XF86ConfInputPtr
+/*
+ * This is called by the driver, either through xf86Match???Instances() or
+ * directly. We allocate a GDevRec and fill it in as much as we can, letting
+ * the caller fill in the rest and/or change it as it sees fit.
+ */
+GDevPtr
+xf86AddDeviceToConfigure(const char *driver, pciVideoPtr pVideo, int chipset)
+{
+ int busType, i, j;
+
+ if (xf86DoProbe || !xf86DoConfigure || !xf86DoConfigurePass1)
+ return NULL;
+
+ /* Check for duplicates */
+ if (pVideo) {
+ for (i = 0; i < nDevToConfig; i++)
+ if ((DevToConfig[i].pVideo->bus == pVideo->bus) &&
+ (DevToConfig[i].pVideo->device == pVideo->device) &&
+ (DevToConfig[i].pVideo->func == pVideo->func))
+ return NULL;
+ } else {
+ /*
+ * This needs to be revisited as it doesn't allow for non-PCI
+ * multihead.
+ */
+ if (!xf86IsPrimaryIsa())
+ return NULL;
+ for (i = 0; i < nDevToConfig; i++)
+ if (!DevToConfig[i].pVideo)
+ return NULL;
+ }
+
+ /* Allocate new structure occurrence */
+ i = nDevToConfig++;
+ DevToConfig =
+ xnfrealloc(DevToConfig, nDevToConfig * sizeof(DevToConfigRec));
+ memset(DevToConfig + i, 0, sizeof(DevToConfigRec));
+
+# define NewDevice DevToConfig[i]
+
+ NewDevice.GDev.chipID = NewDevice.GDev.chipRev = NewDevice.GDev.irq = -1;
+
+ NewDevice.iDriver = CurrentDriver;
+ NewDevice.pVideo = pVideo;
+
+ /* Fill in what we know, converting the driver name to lower case */
+ NewDevice.GDev.driver = xnfalloc(strlen(driver) + 1);
+ for (j = 0; (NewDevice.GDev.driver[j] = tolower(driver[j])); j++);
+
+ if (pVideo) {
+ int vendor1, vendor2, card;
+
+ GetPciCard(pVideo->vendor, pVideo->chipType,
+ &vendor1, &vendor2, &card);
+
+# define VendorName xf86PCIVendorNameInfo[vendor1].name
+# define CardName xf86PCIVendorInfo[vendor2].Device[card].DeviceName
+
+ NewDevice.GDev.identifier =
+ xnfalloc(strlen(VendorName) + strlen(CardName) + 2);
+ sprintf(NewDevice.GDev.identifier, "%s %s", VendorName, CardName);
+
+ NewDevice.GDev.vendor = (char *)VendorName;
+ NewDevice.GDev.board = CardName;
+
+ NewDevice.GDev.busID = xnfalloc(16);
+ sprintf(NewDevice.GDev.busID, "PCI:%d:%d:%d",
+ pVideo->bus, pVideo->device, pVideo->func);
+
+ NewDevice.GDev.chipID = pVideo->chipType;
+ NewDevice.GDev.chipRev = pVideo->chipRev;
+
+# undef VendorName
+# undef CardName
+
+ busType = BUS_PCI;
+ if (chipset < 0)
+ chipset = (pVideo->vendor << 16) || pVideo->chipType;
+ } else {
+ NewDevice.GDev.identifier = "ISA Adapter";
+ NewDevice.GDev.busID = "ISA";
+ busType = BUS_ISA;
+ }
+
+ /* Get driver's available options */
+ if (xf86DriverList[CurrentDriver]->AvailableOptions)
+ NewDevice.GDev.options =
+ (*xf86DriverList[CurrentDriver]->AvailableOptions)(chipset,
+ busType);
+
+ return &NewDevice.GDev;
+
+# undef NewDevice
+}
+
+static XF86ConfInputPtr
configureInputSection (void)
{
XF86ConfInputPtr mouse = NULL;
- Bool foundMouse = FALSE;
parsePrologue (XF86ConfInputPtr, XF86ConfInputRec)
- ptr->inp_identifier = "Keyboard1";
+ ptr->inp_identifier = "Keyboard0";
ptr->inp_driver = "keyboard";
ptr->list.next = NULL;
-/*
-ErrorF("Supported Mice are : 0x%x\n",SupportedInterfaces());
-*/
/* Crude mechanism to auto-detect mouse (os dependent) */
{
int fd;
+
fd = open("/dev/mouse", 0);
if (fd != -1) {
foundMouse = TRUE;
@@ -98,23 +202,20 @@ ErrorF("Supported Mice are : 0x%x\n",SupportedInterfaces());
}
}
- if (foundMouse) {
- mouse = xf86confmalloc(sizeof(XF86ConfInputRec));
- memset((XF86ConfInputPtr)mouse,0,sizeof(XF86ConfInputRec));
- mouse->inp_identifier = "Mouse1";
- mouse->inp_driver = "mouse";
- mouse->list.next = NULL;
- mouse->inp_option_lst =
+ mouse = xf86confmalloc(sizeof(XF86ConfInputRec));
+ memset((XF86ConfInputPtr)mouse,0,sizeof(XF86ConfInputRec));
+ mouse->inp_identifier = "Mouse0";
+ mouse->inp_driver = "mouse";
+ mouse->inp_option_lst =
addNewOption(mouse->inp_option_lst, "Protocol", "auto");
- mouse->inp_option_lst =
+ mouse->inp_option_lst =
addNewOption(mouse->inp_option_lst, "Device", "/dev/mouse");
- ptr = (XF86ConfInputPtr)addListItem((glp)ptr, (glp)mouse);
- }
+ ptr = (XF86ConfInputPtr)addListItem((glp)ptr, (glp)mouse);
return ptr;
}
-XF86ConfDRIPtr
+static XF86ConfDRIPtr
configureDRISection (void)
{
parsePrologue (XF86ConfDRIPtr, XF86ConfDRIRec)
@@ -122,162 +223,81 @@ configureDRISection (void)
return ptr;
}
-XF86ConfVendorPtr
+static XF86ConfVendorPtr
configureVendorSection (void)
{
parsePrologue (XF86ConfVendorPtr, XF86ConfVendorRec)
- ptr->vnd_identifier = "Vendor1";
-
+ return NULL;
+#if 0
return ptr;
+#endif
}
-XF86ConfScreenPtr
-configureScreenSection (char *driver)
+static XF86ConfScreenPtr
+configureScreenSection (int screennum)
{
- pciVideoPtr xf86PciCard;
- int i = 0;
- int vendor1, vendor2, card;
+ int i;
+ int depths[] = { 1, 4, 8, 15, 16, 24 };
parsePrologue (XF86ConfScreenPtr, XF86ConfScreenRec)
- ptr->scrn_identifier = "Screen1";
- ptr->scrn_monitor_str = "Monitor1";
-
- xf86PciCard = ConfiguredPciCard;
- for (i = 0; i < FoundPciCards; i++) {
- if (xf86IsPrimaryPci(xf86PciCard)) {
- havePrimary = TRUE;
- GetPciCard(i, &vendor1, &vendor2, &card);
- ptr->scrn_device_str = xalloc(
- strlen(xf86PCIVendorNameInfo[vendor1].name) +
- strlen(xf86PCIVendorInfo[vendor2].Device[card].DeviceName) + 2);
- sprintf(ptr->scrn_device_str, "%s %s",
- xf86PCIVendorNameInfo[vendor1].name,
- xf86PCIVendorInfo[vendor2].Device[card].DeviceName);
- }
- xf86PciCard++;
- }
- if (xf86IsPrimaryIsa()) {
- havePrimary = TRUE;
- ptr->scrn_device_str = "ISA Card";
- }
-
- /* Make sure we use depth 4 for vga driver and depth 8 for direct */
- /* Just to get a usable 640x480 display */
- if ((driver == NULL) && (haveVGA != -1))
- ptr->scrn_defaultdepth = 4;
- else
- ptr->scrn_defaultdepth = 8;
+ ptr->scrn_identifier = xf86confmalloc(18);
+ sprintf(ptr->scrn_identifier, "Screen%d", screennum);
+ ptr->scrn_monitor_str = xf86confmalloc(19);
+ sprintf(ptr->scrn_monitor_str, "Monitor%d", screennum);
+ ptr->scrn_device_str = strdup(DevToConfig[screennum].GDev.identifier);
+ for (i=0; i<6; i++)
{
XF86ConfDisplayPtr display;
- display = xf86confmalloc(sizeof(XF86ConfDisplayRec));
- memset((XF86ConfDisplayPtr)display,0,sizeof(XF86ConfDisplayRec));
- /* Make sure we use depth 4 for vga driver and depth 8 for direct */
- /* Just to get a usable 640x480 display */
- if ((driver == NULL) && (haveVGA != -1))
- display->disp_depth = 4;
- else
- display->disp_depth = 8;
- display->disp_mode_lst =
- display->list.next = NULL;
- ptr->scrn_display_lst = (XF86ConfDisplayPtr)addListItem(
- (glp)ptr->scrn_display_lst, (glp)display);
- {
- XF86ModePtr mode;
- mode = xf86confmalloc(sizeof(XF86ModeRec));
- memset((XF86ModePtr)mode,0,sizeof(XF86ModeRec));
- mode->mode_name = "640x480";
- mode->list.next = NULL;
- display->disp_mode_lst = (XF86ModePtr)addListItem(
- (glp)display->disp_mode_lst, (glp)mode);
- }
- }
-
- {
- XF86ConfDisplayPtr display;
- display = xf86confmalloc(sizeof(XF86ConfDisplayRec));
- memset((XF86ConfDisplayPtr)display,0,sizeof(XF86ConfDisplayRec));
- display->disp_depth = 15;
- display->disp_mode_lst =
- display->list.next = NULL;
- ptr->scrn_display_lst = (XF86ConfDisplayPtr)addListItem(
- (glp)ptr->scrn_display_lst, (glp)display);
- {
- XF86ModePtr mode;
- mode = xf86confmalloc(sizeof(XF86ModeRec));
- memset((XF86ModePtr)mode,0,sizeof(XF86ModeRec));
- mode->mode_name = "640x480";
- mode->list.next = NULL;
- display->disp_mode_lst = (XF86ModePtr)addListItem(
- (glp)display->disp_mode_lst, (glp)mode);
- }
- }
-
- {
- XF86ConfDisplayPtr display;
- display = xf86confmalloc(sizeof(XF86ConfDisplayRec));
- memset((XF86ConfDisplayPtr)display,0,sizeof(XF86ConfDisplayRec));
- display->disp_depth = 16;
- display->disp_mode_lst =
- display->list.next = NULL;
- ptr->scrn_display_lst = (XF86ConfDisplayPtr)addListItem(
- (glp)ptr->scrn_display_lst, (glp)display);
- {
- XF86ModePtr mode;
- mode = xf86confmalloc(sizeof(XF86ModeRec));
- memset((XF86ModePtr)mode,0,sizeof(XF86ModeRec));
- mode->mode_name = "640x480";
- mode->list.next = NULL;
- display->disp_mode_lst = (XF86ModePtr)addListItem(
- (glp)display->disp_mode_lst, (glp)mode);
- }
- }
- {
- XF86ConfDisplayPtr display;
display = xf86confmalloc(sizeof(XF86ConfDisplayRec));
memset((XF86ConfDisplayPtr)display,0,sizeof(XF86ConfDisplayRec));
- display->disp_depth = 24;
- display->disp_mode_lst =
- display->list.next = NULL;
+ display->disp_depth = depths[i];
ptr->scrn_display_lst = (XF86ConfDisplayPtr)addListItem(
(glp)ptr->scrn_display_lst, (glp)display);
- {
- XF86ModePtr mode;
- mode = xf86confmalloc(sizeof(XF86ModeRec));
- memset((XF86ModePtr)mode,0,sizeof(XF86ModeRec));
- mode->mode_name = "640x480";
- mode->list.next = NULL;
- display->disp_mode_lst = (XF86ModePtr)addListItem(
- (glp)display->disp_mode_lst, (glp)mode);
- }
}
return ptr;
}
-XF86ConfDevicePtr
-configureDeviceSection (char *driver, OptionInfoPtr devoptions)
+static XF86ConfDevicePtr
+configureDeviceSection (int screennum)
{
OptionInfoPtr p;
- pciVideoPtr xf86PciCard;
int i = 0;
- int vendor1, vendor2, card;
Bool foundFBDEV = FALSE;
parsePrologue (XF86ConfDevicePtr, XF86ConfDeviceRec)
- ptr->dev_driver = driver;
- ptr->dev_chipid = -1;
- ptr->dev_chiprev = -1;
- ptr->dev_irq = -1;
+ /* Move device info to parser structure */
+ ptr->dev_identifier = DevToConfig[screennum].GDev.identifier;
+ ptr->dev_vendor = DevToConfig[screennum].GDev.vendor;
+ ptr->dev_board = DevToConfig[screennum].GDev.board;
+ ptr->dev_chipset = DevToConfig[screennum].GDev.chipset;
+ ptr->dev_busid = DevToConfig[screennum].GDev.busID;
+ ptr->dev_driver = DevToConfig[screennum].GDev.driver;
+ ptr->dev_ramdac = DevToConfig[screennum].GDev.ramdac;
+ for (i = 0; (i < MAXDACSPEEDS) && (i < CONF_MAXDACSPEEDS); i++)
+ ptr->dev_dacSpeeds[i] = DevToConfig[screennum].GDev.dacSpeeds[i];
+ ptr->dev_videoram = DevToConfig[screennum].GDev.videoRam;
+ ptr->dev_textclockfreq = DevToConfig[screennum].GDev.textClockFreq;
+ ptr->dev_bios_base = DevToConfig[screennum].GDev.BiosBase;
+ ptr->dev_mem_base = DevToConfig[screennum].GDev.MemBase;
+ ptr->dev_io_base = DevToConfig[screennum].GDev.IOBase;
+ ptr->dev_clockchip = DevToConfig[screennum].GDev.clockchip;
+ for (i = 0; (i < MAXCLOCKS) && (i < DevToConfig[screennum].GDev.numclocks); i++)
+ ptr->dev_clock[i] = DevToConfig[screennum].GDev.clock[i];
+ ptr->dev_clocks = i;
+ ptr->dev_chipid = DevToConfig[screennum].GDev.chipID;
+ ptr->dev_chiprev = DevToConfig[screennum].GDev.chipRev;
+ ptr->dev_irq = DevToConfig[screennum].GDev.irq;
/* Make sure older drivers don't segv */
- if (devoptions != NULL) {
+ if (DevToConfig[screennum].GDev.options) {
/* Fill in the available driver options for people to use */
- ptr->dev_comment = xalloc(32 + 1);
+ ptr->dev_comment = xnfalloc(32 + 1);
strcpy(ptr->dev_comment, "Available Driver options are:-\n");
- for (p = devoptions; p->name != NULL; p++) {
+ for (p = DevToConfig[screennum].GDev.options; p->name != NULL; p++) {
ptr->dev_comment = xrealloc(ptr->dev_comment,
strlen(ptr->dev_comment) + strlen(p->name) + 24 + 1);
strcat(ptr->dev_comment, " #Option \"");
@@ -286,38 +306,12 @@ configureDeviceSection (char *driver, OptionInfoPtr devoptions)
}
}
- xf86PciCard = ConfiguredPciCard;
- for (i = 0; i < FoundPciCards; i++) {
- ErrorF("Card Found vendor = 0x%x, card = 0x%x, %s\n",
- xf86PciCard->vendor,
- xf86PciCard->chipType,(xf86IsPrimaryPci(xf86PciCard) ?
- "Primary! - Configuring this one." : "Secondary."));
- if (xf86IsPrimaryPci(xf86PciCard)) {
- havePrimary = TRUE;
- GetPciCard(i, &vendor1, &vendor2, &card);
- ptr->dev_identifier = xalloc(
- strlen(xf86PCIVendorNameInfo[vendor1].name) +
- strlen(xf86PCIVendorInfo[vendor2].Device[card].DeviceName) + 2);
- sprintf(ptr->dev_identifier, "%s %s",
- xf86PCIVendorNameInfo[vendor1].name,
- xf86PCIVendorInfo[vendor2].Device[card].DeviceName);
- ptr->dev_busid = xalloc(9 + 1);
- sprintf(ptr->dev_busid, "PCI:%d:%d:%d", xf86PciCard->bus,
- xf86PciCard->device, xf86PciCard->func);
- }
- xf86PciCard++;
- }
- if (xf86IsPrimaryIsa()) {
- havePrimary = TRUE;
- ptr->dev_identifier = "ISA Card";
- ptr->dev_busid = "ISA";
- }
-
/* Crude mechanism to auto-detect fbdev (os dependent) */
/* Skip it for now. Options list it anyway, and we can't
* determine which screen/driver this belongs too anyway.
{
int fd;
+
fd = open("/dev/fb0", 0);
if (fd != -1) {
foundFBDEV = TRUE;
@@ -327,6 +321,7 @@ configureDeviceSection (char *driver, OptionInfoPtr devoptions)
if (foundFBDEV) {
XF86OptionPtr fbdev;
+
fbdev = xf86confmalloc(sizeof(XF86OptionRec));
memset((XF86OptionPtr)fbdev,0,sizeof(XF86OptionRec));
fbdev->opt_name = "UseFBDev";
@@ -339,47 +334,15 @@ configureDeviceSection (char *driver, OptionInfoPtr devoptions)
return ptr;
}
-XF86ConfLayoutPtr
+static XF86ConfLayoutPtr
configureLayoutSection (void)
{
pciVideoPtr xf86PciCard;
int i = 0;
- int vendor1, vendor2, card;
+ int scrnum = 0;
parsePrologue (XF86ConfLayoutPtr, XF86ConfLayoutRec)
- xf86PciCard = ConfiguredPciCard;
- for (i = 0; i < FoundPciCards; i++) {
- if (xf86IsPrimaryPci(xf86PciCard)) {
- havePrimary = TRUE;
- GetPciCard(i, &vendor1, &vendor2, &card);
- ptr->lay_identifier = xalloc(
- strlen(xf86PCIVendorNameInfo[vendor1].name) +
- strlen(xf86PCIVendorInfo[vendor2].Device[card].DeviceName) + 2);
- sprintf(ptr->lay_identifier, "%s %s",
- xf86PCIVendorNameInfo[vendor1].name,
- xf86PCIVendorInfo[vendor2].Device[card].DeviceName);
- }
- xf86PciCard++;
- }
- if (xf86IsPrimaryIsa()) {
- havePrimary = TRUE;
- ptr->lay_identifier = "ISA Card";
- }
-
- {
- XF86ConfAdjacencyPtr aptr;
-
- aptr = xf86confmalloc (sizeof (XF86ConfAdjacencyRec));
- aptr->list.next = NULL;
- aptr->adj_x = 0;
- aptr->adj_y = 0;
- aptr->adj_refscreen = NULL;
- aptr->adj_scrnum = 1;
- aptr->adj_screen_str = "Screen1";
- aptr->adj_where = CONF_ADJ_ABSOLUTE;
- ptr->lay_adjacency_lst = (XF86ConfAdjacencyPtr)
- addListItem ((glp) ptr->lay_adjacency_lst, (glp) aptr);
- }
+ ptr->lay_identifier = "XFree86 Configured";
{
XF86ConfInputrefPtr iptr;
@@ -387,7 +350,7 @@ configureLayoutSection (void)
iptr = xf86confmalloc (sizeof (XF86ConfInputrefRec));
iptr->list.next = NULL;
iptr->iref_option_lst = NULL;
- iptr->iref_inputdev_str = "Mouse1";
+ iptr->iref_inputdev_str = "Mouse0";
iptr->iref_option_lst =
addNewOption (iptr->iref_option_lst, "CorePointer", NULL);
ptr->lay_input_lst = (XF86ConfInputrefPtr)
@@ -400,17 +363,34 @@ configureLayoutSection (void)
iptr = xf86confmalloc (sizeof (XF86ConfInputrefRec));
iptr->list.next = NULL;
iptr->iref_option_lst = NULL;
- iptr->iref_inputdev_str = "Keyboard1";
+ iptr->iref_inputdev_str = "Keyboard0";
iptr->iref_option_lst =
addNewOption (iptr->iref_option_lst, "CoreKeyboard", NULL);
ptr->lay_input_lst = (XF86ConfInputrefPtr)
addListItem ((glp) ptr->lay_input_lst, (glp) iptr);
}
+ for (scrnum = 0; scrnum < nDevToConfig; scrnum++) {
+ XF86ConfAdjacencyPtr aptr;
+
+ aptr = xf86confmalloc (sizeof (XF86ConfAdjacencyRec));
+ aptr->list.next = NULL;
+ aptr->adj_x = 0;
+ aptr->adj_y = 0;
+ aptr->adj_refscreen = 0;
+ aptr->adj_scrnum = 0;
+ aptr->adj_screen_str = xnfalloc(18);
+ sprintf(aptr->adj_screen_str, "Screen%d", scrnum);
+ aptr->adj_where = CONF_ADJ_ABSOLUTE;
+ ptr->lay_adjacency_lst =
+ (XF86ConfAdjacencyPtr)addListItem((glp)ptr->lay_adjacency_lst,
+ (glp)aptr);
+ }
+
return ptr;
}
-XF86ConfModesPtr
+static XF86ConfModesPtr
configureModesSection (void)
{
parsePrologue (XF86ConfModesPtr, XF86ConfModesRec)
@@ -418,7 +398,7 @@ configureModesSection (void)
return ptr;
}
-XF86ConfVideoAdaptorPtr
+static XF86ConfVideoAdaptorPtr
configureVideoAdaptorSection (void)
{
parsePrologue (XF86ConfVideoAdaptorPtr, XF86ConfVideoAdaptorRec)
@@ -429,7 +409,7 @@ configureVideoAdaptorSection (void)
#endif
}
-XF86ConfFlagsPtr
+static XF86ConfFlagsPtr
configureFlagsSection (void)
{
parsePrologue (XF86ConfFlagsPtr, XF86ConfFlagsRec)
@@ -437,11 +417,11 @@ configureFlagsSection (void)
return ptr;
}
-XF86ConfModulePtr
+static XF86ConfModulePtr
configureModuleSection (void)
{
- char **elist, **el;
#ifdef XFree86LOADER
+ char **elist, **el;
/* Find the list of extension modules. */
const char *esubdirs[] = {
"extensions",
@@ -455,19 +435,21 @@ configureModuleSection (void)
if (elist) {
for (el = elist; *el; el++) {
XF86LoadPtr module;
+
module = xf86confmalloc(sizeof(XF86LoadRec));
memset((XF86LoadPtr)module,0,sizeof(XF86LoadRec));
module->load_name = *el;
ptr->mod_load_lst = (XF86LoadPtr)addListItem(
(glp)ptr->mod_load_lst, (glp)module);
}
+ xfree(elist);
}
#endif
return ptr;
}
-XF86ConfFilesPtr
+static XF86ConfFilesPtr
configureFilesSection (void)
{
parsePrologue (XF86ConfFilesPtr, XF86ConfFilesRec)
@@ -475,22 +457,54 @@ configureFilesSection (void)
return ptr;
}
-XF86ConfMonitorPtr
-configureMonitorSection (void)
+static XF86ConfMonitorPtr
+configureMonitorSection (int screennum)
{
parsePrologue (XF86ConfMonitorPtr, XF86ConfMonitorRec)
- ptr->mon_identifier = "Monitor1";
- ptr->mon_vendor = "Monitor Vendor";
- ptr->mon_modelname = "Monitor Model";
+ ptr->mon_identifier = xf86confmalloc(19);
+ sprintf(ptr->mon_identifier, "Monitor%d", screennum);
+ ptr->mon_vendor = strdup("Monitor Vendor");
+ ptr->mon_modelname = strdup("Monitor Model");
- /* Set monitor for allowable 640x480@25MHz */
- ptr->mon_n_hsync = 1;
- ptr->mon_hsync[0].lo = 28;
- ptr->mon_hsync[0].hi = 33;
- ptr->mon_n_vrefresh = 1;
- ptr->mon_vrefresh[0].lo = 43;
- ptr->mon_vrefresh[0].hi = 72;
+ return ptr;
+}
+
+static XF86ConfMonitorPtr
+configureDDCMonitorSection (int screennum)
+{
+ int i = 0;
+ parsePrologue (XF86ConfMonitorPtr, XF86ConfMonitorRec)
+
+ ptr->mon_identifier = xf86confmalloc(19);
+ sprintf(ptr->mon_identifier, "Monitor%d", screennum);
+ ptr->mon_vendor = strdup(ConfiguredMonitor->vendor.name);
+ ptr->mon_modelname = xf86confmalloc(12);
+ sprintf(ptr->mon_modelname, "%x", ConfiguredMonitor->vendor.prod_id);
+
+ for (i=0;i<4;i++) {
+ switch (ConfiguredMonitor->det_mon[i].type) {
+ case DT:
+ case DS_STD_TIMINGS:
+ case DS_WHITE_P:
+ case DS_NAME:
+ case DS_ASCII_STR:
+ case DS_SERIAL:
+ break;
+ case DS_RANGES:
+ ptr->mon_n_hsync = 1;
+ ptr->mon_hsync[0].lo =
+ ConfiguredMonitor->det_mon[i].section.ranges.min_h;
+ ptr->mon_hsync[0].hi =
+ ConfiguredMonitor->det_mon[i].section.ranges.max_h;
+ ptr->mon_n_vrefresh = 1;
+ ptr->mon_vrefresh[0].lo =
+ ConfiguredMonitor->det_mon[i].section.ranges.min_v;
+ ptr->mon_vrefresh[0].hi =
+ ConfiguredMonitor->det_mon[i].section.ranges.max_v;
+ break;
+ }
+ }
return ptr;
}
@@ -498,164 +512,84 @@ configureMonitorSection (void)
void
DoConfigure()
{
- int i;
- Bool probeResultPci = FALSE;
- Bool probeResultIsa = FALSE;
- char *foundDriver = NULL;
+ int i,j, screennum = -1;
char *home = NULL;
char *filename = NULL;
- OptionInfoPtr options = NULL;
XF86ConfigPtr xf86config = NULL;
- char **vlist, **ilist, **vl, **il;
+ char **vlist, **vl;
-#ifdef XFree86LOADER
- /* Find the list of video driver modules. */
- const char *vsubdirs[] = {
- "drivers",
- NULL
- };
- const char *isubdirs[] = {
- "input",
- NULL
- };
+ vlist = xf86DriverlistFromCompile();
- vlist = LoaderListDirs(vsubdirs, NULL);
- ilist = LoaderListDirs(isubdirs, NULL);
- if (vlist) {
- ErrorF("List of video driver modules:\n");
- for (vl = vlist; *vl; vl++)
- ErrorF("\t%s\n", *vl);
- } else {
- ErrorF("No video driver modules found\n");
- }
- if (ilist) {
- ErrorF("List of input modules:\n");
- for (il = ilist; *il; il++)
- ErrorF("\t%s\n", *il);
- } else {
- ErrorF("No input modules found\n");
+ if (!vlist) {
+ ErrorF("Missing output drivers. Configuration failed.\n");
+ goto bail;
}
+ ErrorF("List of video drivers:\n");
+ for (vl = vlist; *vl; vl++)
+ ErrorF("\t%s\n", *vl);
+
+#ifdef XFree86LOADER
/* Load all the drivers that were found. */
xf86LoadModules(vlist, NULL);
- xf86LoadModules(ilist, NULL);
-#endif
+#endif /* XFree86LOADER */
+
+ xfree(vlist);
/* Disable PCI devices */
+ xf86ResourceBrokerInit();
xf86AccessInit();
xf86FindPrimaryDevice();
- vl = vlist;
+ /* Create XF86Config file structure */
+ xf86config = malloc(sizeof(XF86ConfigRec));
+ memset ((XF86ConfigPtr)xf86config, 0, sizeof(XF86ConfigRec));
+ xf86config->conf_device_lst = NULL;
+ xf86config->conf_screen_lst = NULL;
+ xf86config->conf_monitor_lst = NULL;
+
/* Call all of the probe functions, reporting the results. */
- for (i = 0; i < xf86NumDrivers; i++) {
- probeResultPci = FALSE;
- probeResultIsa = FALSE;
-
- /* We don't allow vga as we want direct support */
- /* Then fallback later if no driver found */
- if (strcmp(*vl,"vga")) {
- if (xf86DriverList[i]->Probe != NULL)
- probeResultPci = xf86DriverList[i]->Probe(xf86DriverList[i],
- PROBE_DETECTPCI);
- if (!probeResultPci)
- probeResultIsa = xf86DriverList[i]->Probe(xf86DriverList[i],
- PROBE_DETECTISA);
-
- } else {
- haveVGA = i;
- }
+ for (CurrentDriver = 0; CurrentDriver < xf86NumDrivers; CurrentDriver++) {
- /* Bail when we find the primary card ! */
- if (probeResultPci) {
- ErrorF("We have found a PCI %s driver\n",*vl);
- if (foundDriver == NULL) {
- foundDriver = *vl;
- if (xf86DriverList[i]->Identify != NULL)
- xf86DriverList[i]->Identify(0);
- if (xf86DriverList[i]->AvailableOptions != NULL)
- options = xf86DriverList[i]->AvailableOptions(
- (ConfiguredPciCard->vendor << 16) |
- ConfiguredPciCard->chipType, BUS_PCI);
- }
- } else
- if (probeResultIsa) {
- ErrorF("We have found an ISA %s driver\n",*vl);
- if (foundDriver == NULL) {
- foundDriver = *vl;
- if (xf86DriverList[i]->Identify != NULL)
- xf86DriverList[i]->Identify(0);
- if (xf86DriverList[i]->AvailableOptions != NULL)
- options = xf86DriverList[i]->AvailableOptions(
- ConfiguredIsaCard, BUS_ISA);
- }
- }
+ if (xf86DriverList[CurrentDriver]->Probe == NULL) continue;
- vl++;
+ if ((*xf86DriverList[CurrentDriver]->Probe)(
+ xf86DriverList[CurrentDriver], PROBE_DETECT) &&
+ xf86DriverList[CurrentDriver]->Identify)
+ (*xf86DriverList[CurrentDriver]->Identify)(0);
}
- /* Try vga driver if we haven't found any direct modules */
- if ((haveVGA != -1) && (foundDriver == NULL)) {
- probeResultPci = FALSE;
- probeResultIsa = FALSE;
-
- if (xf86DriverList[haveVGA]->Probe != NULL) {
- probeResultPci =
- xf86DriverList[haveVGA]->Probe(xf86DriverList[haveVGA],
- PROBE_DETECTPCI);
- if (!probeResultPci)
- xf86DriverList[haveVGA]->Probe(xf86DriverList[haveVGA],
- PROBE_DETECTISA);
- }
-
- /* Bail when we find the primary card ! */
- if (probeResultPci) {
- ErrorF("Failed to find a direct driver but....\n");
- ErrorF("We have found a PCI vga driver\n");
- foundDriver = "vga";
- if (xf86DriverList[haveVGA]->Identify != NULL)
- xf86DriverList[haveVGA]->Identify(0);
- if (xf86DriverList[haveVGA]->AvailableOptions != NULL)
- options = xf86DriverList[i]->AvailableOptions((
- ConfiguredPciCard->vendor << 16) |
- ConfiguredPciCard->chipType, BUS_PCI);
- }
- if (probeResultIsa) {
- ErrorF("Failed to find a direct driver but....\n");
- ErrorF("We have found an ISA vga driver\n");
- foundDriver = "vga";
- if (xf86DriverList[haveVGA]->Identify != NULL)
- xf86DriverList[haveVGA]->Identify(0);
- if (xf86DriverList[haveVGA]->AvailableOptions != NULL)
- options = xf86DriverList[i]->AvailableOptions(
- ConfiguredIsaCard, BUS_ISA);
- }
+ if (nDevToConfig <= 0) {
+ ErrorF("No devices to configure. Configuration failed.\n");
+ goto bail;
}
- if ((haveVGA == -1) && (foundDriver == NULL)) {
- ErrorF("Unable to configure XFree86 - no able drivers found.\n");
- goto bail;
+ /* Add device, monitor and screen sections for detected devices */
+ for (screennum = 0; screennum < nDevToConfig; screennum++) {
+ XF86ConfDevicePtr DevicePtr;
+ XF86ConfMonitorPtr MonitorPtr;
+ XF86ConfScreenPtr ScreenPtr;
+
+ DevicePtr = configureDeviceSection(screennum);
+ xf86config->conf_device_lst = (XF86ConfDevicePtr)addListItem(
+ (glp)xf86config->conf_device_lst, (glp)DevicePtr);
+ MonitorPtr = configureMonitorSection(screennum);
+ xf86config->conf_monitor_lst = (XF86ConfMonitorPtr)addListItem(
+ (glp)xf86config->conf_monitor_lst, (glp)MonitorPtr);
+ ScreenPtr = configureScreenSection(screennum);
+ xf86config->conf_screen_lst = (XF86ConfScreenPtr)addListItem(
+ (glp)xf86config->conf_screen_lst, (glp)ScreenPtr);
}
- /* Let's write the config file now ! */
- xf86config = malloc(sizeof(XF86ConfigRec));
- memset ((XF86ConfigPtr)xf86config, 0, sizeof(XF86ConfigRec));
- xf86config->conf_monitor_lst = configureMonitorSection();
xf86config->conf_files = configureFilesSection();
xf86config->conf_modules = configureModuleSection();
xf86config->conf_flags = configureFlagsSection();
xf86config->conf_videoadaptor_lst = configureVideoAdaptorSection();
xf86config->conf_modes_lst = configureModesSection();
- xf86config->conf_layout_lst = configureLayoutSection();
- xf86config->conf_device_lst = configureDeviceSection(foundDriver, options);
- xf86config->conf_screen_lst = configureScreenSection(foundDriver);
xf86config->conf_vendor_lst = configureVendorSection();
xf86config->conf_dri = configureDRISection();
xf86config->conf_input_lst = configureInputSection();
-
- if (!havePrimary) {
- ErrorF("Unable to configure XFree86 - Primary card driver not found.\n");
- goto bail;
- }
+ xf86config->conf_layout_lst = configureLayoutSection();
if (!(home = getenv("HOME")))
home = "/";
@@ -677,17 +611,76 @@ DoConfigure()
xf86WriteConfigFile(filename, xf86config);
- ErrorF("\nXFree86 has configured your server for your primary card\n");
- ErrorF("\nYour XF86Config file is located in %s\n",home);
- ErrorF("\nTo test the server, type 'cd <return>' to take you back to\n");
- ErrorF("Your home directory. Then type 'XFree86 -xf86config XF86Config.new'\n");
+ xf86DoConfigurePass1 = FALSE;
+ /* Try to get DDC information filled in */
+ xf86ConfigFile = filename;
+ if (!xf86HandleConfigFile()) {
+ goto bail;
+ }
-bail:
-#ifdef XFree86LOADER
- LoaderFreeDirList(vlist);
- LoaderFreeDirList(ilist);
-#endif /* XFree86LOADER */
+ xf86DoConfigurePass1 = FALSE;
+
+ for (screennum = 0; screennum < nDevToConfig; screennum++) {
+ i = DevToConfig[screennum].iDriver;
+ (*xf86DriverList[i]->Probe)(xf86DriverList[i], 0);
+
+ xf86SetPciVideo(NULL,NONE);
+ }
+
+ xf86PostProbe();
+ xf86EntityInit();
+
+ for (j = 0; j < xf86NumScreens; j++) {
+ xf86Screens[j]->scrnIndex = j;
+ }
+
+ freeMonitorList(xf86config->conf_monitor_lst);
+ xf86config->conf_monitor_lst = NULL;
+ freeScreenList(xf86config->conf_screen_lst);
+ xf86config->conf_screen_lst = NULL;
+ for (j = 0; j < xf86NumScreens; j++) {
+ XF86ConfMonitorPtr MonitorPtr;
+ XF86ConfScreenPtr ScreenPtr;
+
+ ConfiguredMonitor = NULL;
+
+ xf86EnableAccess(xf86Screens[j]);
+ if ((*xf86Screens[j]->PreInit)(xf86Screens[j], PROBE_DETECT) &&
+ ConfiguredMonitor) {
+ MonitorPtr = configureDDCMonitorSection(j);
+ } else {
+ MonitorPtr = configureMonitorSection(j);
+ }
+ ScreenPtr = configureScreenSection(j);
+ xf86config->conf_monitor_lst = (XF86ConfMonitorPtr)addListItem(
+ (glp)xf86config->conf_monitor_lst, (glp)MonitorPtr);
+ xf86config->conf_screen_lst = (XF86ConfScreenPtr)addListItem(
+ (glp)xf86config->conf_screen_lst, (glp)ScreenPtr);
+ }
+
+ xf86WriteConfigFile(filename, xf86config);
+
+ ErrorF("\n");
+
+ if (!foundMouse) {
+ ErrorF("\nXFree86 is not able to detect your mouse.\n"
+ "Edit the file and correct the Device.\n");
+ } else {
+ ErrorF("\nXFree86 detected your mouse at device /dev/mouse.\n"
+ "Please check your config if the mouse is still not\n"
+ "operational, as by default XFree86 tries to autodetect\n"
+ "the protocol.\n");
+ }
+
+ if (xf86NumScreens > 1) {
+ ErrorF("\nXFree86 has configured a multihead system, please check your config.\n");
+ }
+
+ ErrorF("\nYour XF86Config file is %s\n\n", filename);
+ ErrorF("To test the server, run 'XFree86 -xf86config %s'\n\n", filename);
+
+bail:
OsCleanup();
AbortDDX();
fflush(stderr);
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c b/xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c
index 81d79ddd0..c87684639 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c
@@ -1,5 +1,5 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c,v 1.7 2000/02/18 17:16:25 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DoProbe.c,v 1.9 2000/03/01 16:00:51 tsi Exp $ */
/*
* finish setting up the server
* Load the driver modules and call their probe functions.
@@ -15,7 +15,8 @@
#include "os.h"
#ifdef XFree86LOADER
#include "loaderProcs.h"
-#endif
+#include "xf86Config.h"
+#endif /* XFree86LOADER */
#include "xf86.h"
#include "xf86Priv.h"
@@ -28,22 +29,13 @@ void
DoProbe()
{
int i;
- Bool probeResultISA, probeResultPCI, probeResultFBDEV;
+ Bool probeResult;
#ifdef XFree86LOADER
/* Find the list of video driver modules. */
- char **list, **l;
- const char *subdirs[] = {
- "drivers",
- NULL
- };
- const char *patlist[] = {
- "(.*)_drv\\.so",
- "(.*)_drv\\.o",
- NULL
- };
+ char **list = xf86DriverlistFromCompile();
+ char **l;
- list = LoaderListDirs(subdirs, NULL);
if (list) {
ErrorF("List of video driver modules:\n");
for (l = list; *l; l++)
@@ -61,38 +53,21 @@ DoProbe()
/* Call all of the probe functions, reporting the results. */
for (i = 0; i < xf86NumDrivers; i++) {
- probeResultISA = probeResultPCI = probeResultFBDEV = FALSE;
- if (xf86DriverList[i]->Probe != NULL) {
- probeResultISA =
- xf86DriverList[i]->Probe(xf86DriverList[i], PROBE_DETECTISA);
- ErrorF("Probe ISA capabilities in driver `%s' returns %s\n",
- xf86DriverList[i]->driverName, BOOLTOSTRING(probeResultISA));
- }
- if (xf86DriverList[i]->Probe != NULL) {
- probeResultPCI =
- xf86DriverList[i]->Probe(xf86DriverList[i], PROBE_DETECTPCI);
- ErrorF("Probe PCI capabilities in driver `%s' returns %s\n",
- xf86DriverList[i]->driverName, BOOLTOSTRING(probeResultPCI));
- }
- if (xf86DriverList[i]->Probe != NULL) {
- probeResultFBDEV =
- xf86DriverList[i]->Probe(xf86DriverList[i], PROBE_DETECTFBDEV);
- ErrorF("Probe FBDEV capabilities in driver `%s' returns %s\n",
- xf86DriverList[i]->driverName, BOOLTOSTRING(probeResultFBDEV));
- }
+ if (xf86DriverList[i]->Probe == NULL) continue;
+
+ probeResult =
+ (*xf86DriverList[i]->Probe)(xf86DriverList[i], PROBE_DETECT);
+ ErrorF("Probe in driver `%s' returns %s\n",
+ xf86DriverList[i]->driverName, BOOLTOSTRING(probeResult));
/* If we have a result, then call driver's Identify function */
- if (probeResultISA || probeResultPCI || probeResultFBDEV) {
+ if (probeResult) {
if (xf86DriverList[i]->Identify != NULL) {
- xf86DriverList[i]->Identify(0);
+ (*xf86DriverList[i]->Identify)(0);
}
}
}
-#ifdef XFree86LOADER
- LoaderFreeDirList(list);
-#endif /* XFree86LOADER */
-
OsCleanup();
AbortDDX();
fflush(stderr);
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c b/xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c
index 13e2ff0ee..005172770 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c
@@ -1,5 +1,5 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c,v 1.10 2000/02/21 20:34:30 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DoScanPci.c,v 1.11 2000/02/24 05:36:50 tsi Exp $ */
/*
* finish setting up the server
* call the functions from the scanpci module
@@ -27,9 +27,11 @@
void DoScanPci(int argc, char **argv, int i)
{
int j,skip,globalVerbose,scanpciVerbose;
- void (*xf86ScanPciFunc)(int);
- void (*DataSetupFunc)(SymTabPtr *, pciVendorDeviceInfo **,
- pciVendorCardInfo **);
+ typedef void ScanPciFuncType(int);
+ typedef void DataSetupFuncType(SymTabPtr *, pciVendorDeviceInfo **,
+ pciVendorCardInfo **);
+ ScanPciFuncType *xf86ScanPciFunc;
+ DataSetupFuncType *DataSetupFunc;
#ifdef XFree86LOADER
int errmaj, errmin;
#endif
@@ -80,8 +82,8 @@ void DoScanPci(int argc, char **argv, int i)
/* For now, just a warning */
xf86Msg(X_WARNING, "Some symbols could not be resolved!\n");
}
- xf86ScanPciFunc = LoaderSymbol("xf86DisplayPCICardInfo");
- DataSetupFunc = LoaderSymbol("xf86SetupScanPci");
+ xf86ScanPciFunc = (ScanPciFuncType *)LoaderSymbol("xf86DisplayPCICardInfo");
+ DataSetupFunc = (DataSetupFuncType *)LoaderSymbol("xf86SetupScanPci");
#else
xf86ScanPciFunc = xf86DisplayPCICardInfo;
DataSetupFunc = xf86SetupScanPci;
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Globals.c b/xc/programs/Xserver/hw/xfree86/common/xf86Globals.c
index de3c11b88..4ce0bd06a 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Globals.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Globals.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Globals.c,v 1.27 2000/01/25 00:18:28 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Globals.c,v 1.28 2000/03/08 05:38:37 dawes Exp $ */
/*
* Copyright (c) 1997 by The XFree86 Project, Inc.
@@ -133,10 +133,12 @@ xf86InfoRec xf86Info = {
FALSE, /* miscModInDevAllowNonLocal */
PCIProbe1, /* pciFlags */
Pix24DontCare, /* pixmap24 */
- X_DEFAULT /* pix24From */
+ X_DEFAULT, /* pix24From */
#if defined(i386) || defined(__i386__)
- ,FALSE /* pc98 */
+ FALSE, /* pc98 */
#endif
+ TRUE, /* pmFlag */
+ 0 /* estimateSizesAggressively */
};
const char *xf86ConfigFile = NULL;
const char *xf86ModulePath = DEFAULT_MODULE_PATH;
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Helper.c b/xc/programs/Xserver/hw/xfree86/common/xf86Helper.c
index 25168e670..22e476346 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Helper.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Helper.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c,v 1.76 2000/02/21 19:22:52 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c,v 1.83 2000/03/06 19:07:15 dawes Exp $ */
/*
* Copyright (c) 1997-1998 by The XFree86 Project, Inc.
@@ -137,6 +137,7 @@ xf86AllocateScreen(DriverPtr drv, int flags)
xf86Screens[i]->CurrentAccess = &xf86CurrentAccess;
xf86Screens[i]->resourceType = MEM_IO;
+#ifdef DEBUG
/* OOps -- What's this ? */
ErrorF("xf86AllocateScreen - xf86Screens[%d]->pScreen = %p\n",
i, xf86Screens[i]->pScreen );
@@ -144,6 +145,7 @@ xf86AllocateScreen(DriverPtr drv, int flags)
ErrorF("xf86Screens[%d]->pScreen->CreateWindow = %p\n",
i, xf86Screens[i]->pScreen->CreateWindow );
}
+#endif
return xf86Screens[i];
}
@@ -1448,8 +1450,12 @@ xf86MatchDevice(const char *drivername, GDevPtr **driversectlist)
static int count[MAXDRIVERS];
confScreenPtr screensecptr;
int i,j;
+
+ *driversectlist = NULL;
-if (xf86DoProbe || xf86DoConfigure) return 1;
+ if (xf86DoProbe) return 1;
+
+ if (xf86DoConfigure && xf86DoConfigurePass1) return 1;
/*
* This is a very important function that matches the device sections
@@ -1554,7 +1560,6 @@ if (xf86DoProbe || xf86DoConfigure) return 1;
return count[i];
}
-#define DEBUG
struct Inst {
pciVideoPtr pci;
GDevPtr dev;
@@ -1603,6 +1608,7 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
instances[allocatedInstances - 1].claimed = FALSE;
instances[allocatedInstances - 1].foundHW = TRUE;
instances[allocatedInstances - 1].chip = id->numChipset;
+ numFound++;
}
}
}
@@ -1618,6 +1624,7 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
instances[allocatedInstances - 1].claimed = FALSE;
instances[allocatedInstances - 1].foundHW = TRUE;
instances[allocatedInstances - 1].chip = id->numChipset;
+ numFound++;
}
}
}
@@ -1639,6 +1646,7 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
instances[allocatedInstances - 1].chip
= id->numChipset;
instances[allocatedInstances - 1].foundHW = TRUE;
+ numFound++;
break;
}
}
@@ -1654,28 +1662,30 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
xfree(instances);
return 0;
}
- if (xf86DoProbe) return 1;
- if (xf86DoConfigure) {
- pciVideoPtr ConfCard;
+ if (xf86DoProbe) {
+ xfree(instances);
+ return numFound;
+ }
+
+ if (xf86DoConfigure && xf86DoConfigurePass1) {
+ GDevPtr pGDev;
int actualcards = 0;
- ConfiguredPciCard = xnfrealloc((pciVideoPtr)ConfiguredPciCard, sizeof(pciVideoRec) * (allocatedInstances + FoundPciCards));
- ConfCard = ConfiguredPciCard;
- for (i = 0; i < FoundPciCards; i++)
- ConfCard++;
for (i = 0; i < allocatedInstances; i++) {
if (instances[i].foundHW) {
actualcards++;
- pPci = instances[i].pci;
- ConfCard->vendor = pPci->vendor;
- ConfCard->chipType = pPci->chipType;
- ConfCard->device = pPci->device;
- ConfCard->bus = pPci->bus;
- ConfCard->func = pPci->func;
- ConfCard++;
+ pGDev = xf86AddDeviceToConfigure(driverName,
+ instances[i].pci, -1);
+ if (pGDev) {
+ /*
+ * XF86Match???Instances() treat chipID and chipRev as
+ * overrides, so clobber them here.
+ */
+ pGDev->chipID = pGDev->chipRev = -1;
+ }
}
}
- FoundPciCards += actualcards;
+ xfree(instances);
return actualcards;
}
@@ -1815,6 +1825,7 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
* Of the claimed instances, check that another driver hasn't already
* claimed its slot.
*/
+ numFound = 0;
for (i = 0; i < allocatedInstances && numClaimedInstances > 0; i++) {
if (!instances[i].claimed)
@@ -1836,7 +1847,6 @@ xf86MatchPciInstances(const char *driverName, int vendorID,
pPci->func,drvp, instances[i].chip,
instances[i].dev,instances[i].dev->active ?
TRUE : FALSE);
-
}
xfree(instances);
if (numFound > 0) {
@@ -1856,25 +1866,24 @@ xf86MatchIsaInstances(const char *driverName, SymTabPtr chipsets,
IsaChipsets *Chips;
int i;
int numFound = 0;
+ int foundChip = -1;
int *retEntities = NULL;
*foundEntities = NULL;
- /* For now, bail here when xf86DoProbe is set. */
- if (xf86DoProbe)
+ if (xf86DoProbe || (xf86DoConfigure && xf86DoConfigurePass1)) {
+ if (FindIsaDevice &&
+ ((foundChip = (*FindIsaDevice)(NULL)) != -1)) {
+ xf86AddDeviceToConfigure(driverName, NULL, foundChip);
+ return 1;
+ }
return 0;
-
- if (xf86DoConfigure) {
- if (FindIsaDevice) ConfiguredIsaCard = (*FindIsaDevice)(NULL);
- if (ConfiguredIsaCard != -1) return 1;
- else return 0;
}
for (i = 0; i < numDevs; i++) {
MessageType from = X_CONFIG;
GDevPtr dev = NULL;
GDevPtr devBus = NULL;
- int foundChip = -1;
if (devList[i]->busID && *devList[i]->busID) {
if (xf86ParseIsaBusString(devList[i]->busID)) {
@@ -2545,8 +2554,10 @@ xf86RegisterRootWindowProperty(int ScrnIndex, Atom property, Atom type,
PropertyPtr pNewProp, pRegProp;
int i;
-ErrorF("xf86RegisterRootWindowProperty(%d, %d, %d, %d, %d, %p)\n",
- ScrnIndex, property, type, format, len, value);
+#ifdef DEBUG
+ ErrorF("xf86RegisterRootWindowProperty(%d, %d, %d, %d, %d, %p)\n",
+ ScrnIndex, property, type, format, len, value);
+#endif
if (ScrnIndex<0 || ScrnIndex>=xf86NumScreens) {
return(BadMatch);
@@ -2566,11 +2577,15 @@ ErrorF("xf86RegisterRootWindowProperty(%d, %d, %d, %d, %d, %p)\n",
*/
pNewProp->next = NULL;
+#ifdef DEBUG
ErrorF("new property filled\n");
+#endif
if (NULL==xf86RegisteredPropertiesTable) {
+#ifdef DEBUG
ErrorF("creating xf86RegisteredPropertiesTable[] size %d\n",
xf86NumScreens);
+#endif
if ( NULL==(xf86RegisteredPropertiesTable=(PropertyPtr*)xnfcalloc(sizeof(PropertyPtr),xf86NumScreens) )) {
return(BadAlloc);
}
@@ -2579,22 +2594,28 @@ ErrorF("xf86RegisterRootWindowProperty(%d, %d, %d, %d, %d, %p)\n",
}
}
+#ifdef DEBUG
ErrorF("xf86RegisteredPropertiesTable %p\n",
xf86RegisteredPropertiesTable);
ErrorF("xf86RegisteredPropertiesTable[%d] %p\n",
ScrnIndex, xf86RegisteredPropertiesTable[ScrnIndex]);
+#endif
if ( xf86RegisteredPropertiesTable[ScrnIndex] == NULL) {
xf86RegisteredPropertiesTable[ScrnIndex] = pNewProp;
} else {
pRegProp = xf86RegisteredPropertiesTable[ScrnIndex];
while (pRegProp->next != NULL) {
+#ifdef DEBUG
ErrorF("- next %p\n", pRegProp);
+#endif
pRegProp = pRegProp->next;
}
pRegProp->next = pNewProp;
}
-ErrorF("xf86RegisterRootWindowProperty succeeded\n");
+#ifdef DEBUG
+ ErrorF("xf86RegisterRootWindowProperty succeeded\n");
+#endif
return(Success);
}
@@ -2613,5 +2634,3 @@ xf86IsUnblank(int mode)
return TRUE;
}
}
-
-
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Init.c b/xc/programs/Xserver/hw/xfree86/common/xf86Init.c
index d1c3f2252..8f8b90e57 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Init.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Init.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.152 2000/02/21 19:22:52 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.157 2000/03/05 23:47:46 dawes Exp $ */
/*
* Copyright 1991-1999 by The XFree86 Project, Inc.
@@ -115,7 +115,9 @@ xf86CreateRootWindow(WindowPtr pWin)
CreateWindowProcPtr CreateWindow =
(CreateWindowProcPtr)(pScreen->devPrivates[xf86CreateRootWindowIndex].ptr);
-ErrorF("xf86CreateRootWindow(%p)\n", pWin);
+#ifdef DEBUG
+ ErrorF("xf86CreateRootWindow(%p)\n", pWin);
+#endif
if ( pScreen->CreateWindow != xf86CreateRootWindow ) {
/* Can't find hook we are hung on */
@@ -162,23 +164,22 @@ ErrorF("xf86CreateRootWindow(%p)\n", pWin);
/* free memory */
pOldRegProp = xf86RegisteredPropertiesTable[pScreen->myNum];
- while (pOldRegProp!=NULL) {
- xfree(pOldRegProp->data);
- pOldRegProp->data = NULL;
-
+ while (pOldRegProp!=NULL) {
pRegProp = pOldRegProp->next;
xfree(pOldRegProp);
pOldRegProp = pRegProp;
}
xf86RegisteredPropertiesTable[pScreen->myNum] = NULL;
} else {
- ErrorF("xf86CreateRootWindow unexpectedly called with non-root window %p (parent %p)\n",
- pWin, pWin->parent);
+ xf86Msg(X_ERROR, "xf86CreateRootWindow unexpectedly called with "
+ "non-root window %p (parent %p)\n", pWin, pWin->parent);
ret = FALSE;
}
}
+#ifdef DEBUG
ErrorF("xf86CreateRootWindow() returns %d\n", ret);
+#endif
return (ret);
}
@@ -348,18 +349,25 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
#ifdef XFree86LOADER
/* Load all modules specified explicitly in the config file */
- if ((modulelist = xf86ModulelistFromConfig(&optionlist)))
+ if ((modulelist = xf86ModulelistFromConfig(&optionlist))) {
xf86LoadModules(modulelist, optionlist);
+ xfree(modulelist);
+ xfree(optionlist);
+ }
/* Load all driver modules specified in the config file */
- if ((modulelist = xf86DriverlistFromConfig()))
+ if ((modulelist = xf86DriverlistFromConfig())) {
xf86LoadModules(modulelist, NULL);
+ xfree(modulelist);
+ }
/* Setup the builtin input drivers */
xf86AddInputDriver(&xf86KEYBOARD, NULL, 0);
/* Load all input driver modules specified in the config file. */
- if ((modulelist = xf86InputDriverlistFromConfig()))
+ if ((modulelist = xf86InputDriverlistFromConfig())) {
xf86LoadModules(modulelist, NULL);
+ xfree(modulelist);
+ }
/*
* It is expected that xf86AddDriver()/xf86AddInputDriver will be
@@ -808,10 +816,12 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv)
FatalError("AddScreen/ScreenInit failed for driver %d\n", i);
}
+#ifdef DEBUG
ErrorF("InitOutput - xf86Screens[%d]->pScreen = %p\n",
i, xf86Screens[i]->pScreen );
ErrorF("xf86Screens[%d]->pScreen->CreateWindow = %p\n",
i, xf86Screens[i]->pScreen->CreateWindow );
+#endif
screenInfo.screens[scr_index]->devPrivates[xf86CreateRootWindowIndex].ptr
= (void*)(xf86Screens[i]->pScreen->CreateWindow);
@@ -1431,7 +1441,12 @@ ddxProcessArgument(int argc, char **argv, int i)
}
if (!strcmp(argv[i], "-configure"))
{
+ if (getuid() != 0) {
+ ErrorF("The '-configure' option can only be used by root.\n");
+ exit(1);
+ }
xf86DoConfigure = TRUE;
+ xf86AllowMouseOpenFail = TRUE;
return 1;
}
/* OS-specific processing */
@@ -1455,7 +1470,7 @@ ddxUseMsg()
ErrorF("-xf86config file specify a configuration file\n");
ErrorF("-modulepath paths specify the module search path\n");
ErrorF("-logfile file specify a log file name\n");
- ErrorF("-scanpci execute the scanpci module and exit\n");
+ ErrorF("-configure probe for devices and write an XF86Config\n");
}
else
{
@@ -1463,6 +1478,7 @@ ddxUseMsg()
ErrorF(" XF86Config search path, only root can use absolute\n");
}
ErrorF("-probeonly probe for devices, then exit\n");
+ ErrorF("-scanpci execute the scanpci module and exit\n");
ErrorF("-verbose [n] verbose startup messages\n");
ErrorF("-logverbose [n] verbose log messages\n");
ErrorF("-quiet minimal startup messages\n");
@@ -1479,6 +1495,7 @@ ddxUseMsg()
ErrorF("-screen name specify the Screen section name\n");
ErrorF("-keyboard name specify the core keyboard InputDevice name\n");
ErrorF("-pointer name specify the core pointer InputDevice name\n");
+ ErrorF("-nosilk disable Silken Mouse\n");
ErrorF("-flipPixels swap default black/white Pixel values\n");
#ifdef XF86VIDMODE
ErrorF("-disableVidMode disable mode adjustments with xvidtune\n");
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c b/xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c
index 28be0ad8b..6eb915b10 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c
@@ -1,7 +1,7 @@
/*
* Copyright (c) 1999 by The XFree86 Project, Inc.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c,v 1.3 1999/09/04 13:04:34 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86MiscExt.c,v 1.4 2000/03/05 17:04:15 dawes Exp $ */
/*
* This file contains the Pointer/Keyboard functions needed by the
@@ -36,7 +36,6 @@
#include "../input/mouse/mouse.h"
const char * xf86ProtocolIDToName(ProtocolID id);
-#define DEBUG
#ifdef DEBUG
# define DEBUG_P(x) ErrorF(x"\n");
#else
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Mode.c b/xc/programs/Xserver/hw/xfree86/common/xf86Mode.c
index 1daad11ef..0f6d495f5 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Mode.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Mode.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Mode.c,v 1.25 1999/12/13 01:39:46 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Mode.c,v 1.27 2000/03/05 23:47:47 dawes Exp $ */
/*
* Copyright (c) 1997,1998 by The XFree86 Project, Inc.
@@ -1106,14 +1106,20 @@ xf86ValidateModes(ScrnInfoPtr scrp, DisplayModePtr availModes,
strategy &= ~LOOKUP_OPTIONAL_TOLERANCES;
} else {
if (scrp->monitor->nHsync <= 0) {
- ErrorF("xf86ValidateModes: called with missing monitor horizontal"
- " sync rates\n");
- return -1;
+ xf86DrvMsg(scrp->scrnIndex, X_WARNING,
+ "%s: Using default hsync range of 28-33kHz\n",
+ scrp->monitor->id);
+ scrp->monitor->hsync[0].lo = 28;
+ scrp->monitor->hsync[0].hi = 33;
+ scrp->monitor->nHsync = 1;
}
if (scrp->monitor->nVrefresh <= 0) {
- ErrorF("xf86ValidateModes: called with missing monitor vertical"
- " refresh rates\n");
- return -1;
+ xf86DrvMsg(scrp->scrnIndex, X_WARNING,
+ "%s: using default vrefresh range of 43-72Hz\n",
+ scrp->monitor->id);
+ scrp->monitor->vrefresh[0].lo = 43;
+ scrp->monitor->vrefresh[0].hi = 72;
+ scrp->monitor->nVrefresh = 1;
}
}
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Module.h b/xc/programs/Xserver/hw/xfree86/common/xf86Module.h
index 9917cb21f..b1939622c 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Module.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Module.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Module.h,v 1.20 2000/02/08 13:13:05 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Module.h,v 1.21 2000/03/01 23:54:33 dawes Exp $ */
/*
* Copyright (c) 1997-1999 by The XFree86 Project, Inc.
@@ -63,9 +63,9 @@ typedef enum {
*/
#define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 1)
#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(0, 1)
-#define ABI_XINPUT_VERSION SET_ABI_VERSION(0, 0)
-#define ABI_EXTENSION_VERSION SET_ABI_VERSION(0, 0)
-#define ABI_FONT_VERSION SET_ABI_VERSION(0, 0)
+#define ABI_XINPUT_VERSION SET_ABI_VERSION(0, 1)
+#define ABI_EXTENSION_VERSION SET_ABI_VERSION(0, 1)
+#define ABI_FONT_VERSION SET_ABI_VERSION(0, 1)
#define MODINFOSTRING1 0xef23fdc5
#define MODINFOSTRING2 0x10dc023a
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h b/xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h
index 78a381356..9194084e4 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h,v 1.50 2000/02/12 20:45:18 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h,v 1.51 2000/02/24 20:39:14 dawes Exp $ */
/*
* PCI Probe
*
@@ -933,7 +933,7 @@ static pciVendorDeviceInfo xf86PCIVendorInfoData[] = {
{0x0001, "PT86C52x Vesuvius",0 },
{0x0000, NULL,0}}},
{PCI_VENDOR_MYLEX, {
- {0x0010, "AccelRAID 250",0 },
+ {0x0010, "RAID Controller",0 },
{0x0000, NULL,0}}},
{PCI_VENDOR_APPLE, {
{0x0001, "Bandit",0 },
@@ -1270,7 +1270,7 @@ static pciVendorDeviceInfo xf86PCIVendorInfoData[] = {
{0x1223, "SAA7116",0},
{0x1226, "82596",0},
{0x1227, "82865",0},
- {0x1229, "82557/8 10/100MBit network controller",0 },
+ {0x1229, "82557/8/9 10/100MBit network controller",0 },
{0x122D, "82437 Triton",0},
{0x122E, "82471 Triton",0},
{0x1230, "82371 bus-master IDE controller",0},
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86Priv.h b/xc/programs/Xserver/hw/xfree86/common/xf86Priv.h
index fbca1e5a5..6dc85ea0f 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86Priv.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86Priv.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h,v 3.64 2000/02/08 13:13:06 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h,v 3.65 2000/03/08 05:38:37 dawes Exp $ */
/*
* Copyright (c) 1997 by The XFree86 Project, Inc.
@@ -68,7 +68,6 @@ extern confDRIRec xf86ConfigDRI;
extern unsigned short xf86MouseCflags[];
extern Bool xf86SupportedMouseTypes[];
extern int xf86NumMouseTypes;
-extern int xf86EstimateSizesAggressively;
#ifdef XFree86LOADER
extern DriverPtr *xf86DriverList;
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c b/xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c
index 4e583bf9c..3fb5b6ba4 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c,v 3.10 2000/02/21 18:09:59 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c,v 3.13 2000/03/05 23:47:48 dawes Exp $ */
/*
* Copyright (c) 1997-1999 by The XFree86 Project, Inc.
@@ -7,7 +7,6 @@
/*
* This file contains the interfaces to the bus-specific code
*/
-#define DEBUG
#include <ctype.h>
#include <stdlib.h>
#include <unistd.h>
@@ -350,35 +349,35 @@ FindPCIVideoInfo(void)
xf86Msg(X_PROBED, "PCI: (%d:%d:%d) ", info->bus, info->device,
info->func);
if (vendorname)
- ErrorF("%s ", vendorname);
+ xf86ErrorF("%s ", vendorname);
else
- ErrorF("unknown vendor (0x%04x) ", info->vendor);
+ xf86ErrorF("unknown vendor (0x%04x) ", info->vendor);
if (chipname)
- ErrorF("%s ", chipname);
+ xf86ErrorF("%s ", chipname);
else
- ErrorF("unknown chipset (0x%04x) ", info->chipType);
- ErrorF("rev %d", info->chipRev);
+ xf86ErrorF("unknown chipset (0x%04x) ", info->chipType);
+ xf86ErrorF("rev %d", info->chipRev);
for (i = 0; i < 6; i++) {
if (info->memBase[i]) {
if (!memdone) {
- ErrorF(", Mem @ ");
+ xf86ErrorF(", Mem @ ");
memdone = TRUE;
} else
- ErrorF(", ");
- ErrorF("0x%08x/%d", info->memBase[i], info->size[i]);
+ xf86ErrorF(", ");
+ xf86ErrorF("0x%08x/%d", info->memBase[i], info->size[i]);
}
}
for (i = 0; i < 6; i++) {
if (info->ioBase[i]) {
if (!iodone) {
- ErrorF(", I/O @ ");
+ xf86ErrorF(", I/O @ ");
iodone = TRUE;
} else
- ErrorF(", ");
- ErrorF("0x%04x/%d", info->ioBase[i], info->size[i]);
+ xf86ErrorF(", ");
+ xf86ErrorF("0x%04x/%d", info->ioBase[i], info->size[i]);
}
}
- ErrorF("\n");
+ xf86ErrorF("\n");
}
}
}
@@ -1397,14 +1396,15 @@ getValidBIOSBase(PCITAG tag, int num)
void
xf86PciProbe(void)
{
- void (* DataSetupFunc)(SymTabPtr *, pciVendorDeviceInfo **,
- pciVendorCardInfo **);
+ typedef void DataSetupFuncType(SymTabPtr *, pciVendorDeviceInfo **,
+ pciVendorCardInfo **);
+ DataSetupFuncType *DataSetupFunc;
#ifdef XFree86LOADER
/*
* we need to get the pointer to the pci data structures initialized
*/
- DataSetupFunc = LoaderSymbol("xf86SetupPciData");
+ DataSetupFunc = (DataSetupFuncType *)LoaderSymbol("xf86SetupPciData");
#else
DataSetupFunc = xf86SetupScanPci;
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86str.h b/xc/programs/Xserver/hw/xfree86/common/xf86str.h
index f1c6dbb0b..b8412cddd 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86str.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86str.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86str.h,v 1.66 2000/02/12 23:59:10 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86str.h,v 1.67 2000/03/01 16:00:54 tsi Exp $ */
/*
* Copyright (c) 1997-2000 by The XFree86 Project, Inc.
@@ -669,10 +669,8 @@ typedef struct {
* Flags for driver Probe() functions.
*/
#define PROBE_DEFAULT 0x00
-#define PROBE_DETECTPCI 0x01
-#define PROBE_DETECTISA 0x02
-#define PROBE_DETECTFBDEV 0x04
-#define PROBE_DETECT (PROBE_DETECTPCI | PROBE_DETECTISA | PROBE_DETECTFBDEV)
+#define PROBE_DETECT 0x01
+#define PROBE_TRYHARD 0x02
/*
* ScrnInfoRec
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86xv.c b/xc/programs/Xserver/hw/xfree86/common/xf86xv.c
index b23513c11..d7d69a67d 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86xv.c
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86xv.c
@@ -6,7 +6,7 @@
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xv.c,v 1.18 2000/02/11 20:39:20 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xv.c,v 1.19 2000/02/22 01:58:06 mvojkovi Exp $ */
#include "misc.h"
#include "xf86.h"
@@ -102,36 +102,48 @@ int (*XvScreenInitProc)(ScreenPtr) = XvScreenInit;
#endif
-static XF86VideoAdaptorPtr *GenAdaptors = NULL;
-static int NumGenAdaptors = 0;
+static xf86XVInitGenericAdaptorPtr *GenDrivers = NULL;
+static int NumGenDrivers = 0;
int
-xf86XVRegisterGenericAdaptor(
- XF86VideoAdaptorPtr *adaptors,
- int num
+xf86XVRegisterGenericAdaptorDriver(
+ xf86XVInitGenericAdaptorPtr InitFunc
){
- int i;
- XF86VideoAdaptorPtr *newadaptors;
+ xf86XVInitGenericAdaptorPtr *newdrivers;
- newadaptors = xrealloc(GenAdaptors, sizeof(XF86VideoAdaptorPtr) *
- (num + NumGenAdaptors));
- if (!newadaptors)
+ newdrivers = xrealloc(GenDrivers, sizeof(xf86XVInitGenericAdaptorPtr) *
+ (1 + NumGenDrivers));
+ if (!newdrivers)
return 0;
- GenAdaptors = newadaptors;
+ GenDrivers = newdrivers;
- for (i=0; i<num && NumGenAdaptors <= 4; i++, NumGenAdaptors++) {
- GenAdaptors[NumGenAdaptors] = adaptors[i];
- }
+ GenDrivers[NumGenDrivers++] = InitFunc;
- return i;
+ return 1;
}
int
xf86XVListGenericAdaptors(
- XF86VideoAdaptorPtr **adaptors
+ ScrnInfoPtr pScrn,
+ XF86VideoAdaptorPtr **adaptors
){
- *adaptors = GenAdaptors;
- return NumGenAdaptors;
+ int i,j,n,num;
+ XF86VideoAdaptorPtr *DrivAdap,*new;
+
+ num = 0;
+ *adaptors = NULL;
+ for (i = 0; i < NumGenDrivers; i++) {
+ n = GenDrivers[i](pScrn,&DrivAdap);
+ if (0 == n)
+ continue;
+ new = xrealloc(*adaptors, sizeof(XF86VideoAdaptorPtr) * (num+n));
+ if (NULL == new)
+ continue;
+ *adaptors = new;
+ for (j = 0; j < n; j++, num++)
+ (*adaptors)[num] = DrivAdap[j];
+ }
+ return num;
}
Bool
@@ -1672,3 +1684,43 @@ xf86XVQueryImageAttributes(
}
+/**************** Offscreen surface stuff *******************/
+
+typedef struct {
+ XF86OffscreenImagePtr images;
+ int num;
+} OffscreenImageRec;
+
+static OffscreenImageRec OffscreenImages[MAXSCREENS];
+static Bool offscreenInited = FALSE;
+
+Bool
+xf86XVRegisterOffscreenImages(
+ ScreenPtr pScreen,
+ XF86OffscreenImagePtr images,
+ int num
+){
+ if(!offscreenInited) {
+ bzero(OffscreenImages, sizeof(OffscreenImages[MAXSCREENS]));
+ offscreenInited = TRUE;
+ }
+
+ OffscreenImages[pScreen->myNum].num = num;
+ OffscreenImages[pScreen->myNum].images = images;
+
+ return TRUE;
+}
+
+XF86OffscreenImagePtr
+xf86XVQueryOffscreenImages(
+ ScreenPtr pScreen,
+ int *num
+){
+ if(!offscreenInited) {
+ *num = 0;
+ return NULL;
+ }
+
+ *num = OffscreenImages[pScreen->myNum].num;
+ return OffscreenImages[pScreen->myNum].images;
+}
diff --git a/xc/programs/Xserver/hw/xfree86/common/xf86xv.h b/xc/programs/Xserver/hw/xfree86/common/xf86xv.h
index 6e4590199..1ff73f11a 100644
--- a/xc/programs/Xserver/hw/xfree86/common/xf86xv.h
+++ b/xc/programs/Xserver/hw/xfree86/common/xf86xv.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xv.h,v 1.10 2000/02/11 20:39:20 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xv.h,v 1.13 2000/03/08 01:14:00 mvojkovi Exp $ */
#ifndef _XVDIX_H_
#define _XVDIX_H_
@@ -42,6 +42,16 @@ typedef struct {
} XF86ImageRec, *XF86ImagePtr;
+typedef struct {
+ ScrnInfoPtr pScrn;
+ int id;
+ unsigned short width, height;
+ int *pitches; /* bytes */
+ int *offsets; /* in bytes from start of framebuffer */
+ DevUnion devPrivate;
+} XF86SurfaceRec, *XF86SurfacePtr;
+
+
typedef int (* PutVideoFuncPtr)( ScrnInfoPtr pScrn,
short vid_x, short vid_y, short drw_x, short drw_y,
short vid_w, short vid_h, short drw_w, short drw_h,
@@ -125,6 +135,29 @@ typedef struct {
QueryImageAttributesFuncPtr QueryImageAttributes;
} XF86VideoAdaptorRec, *XF86VideoAdaptorPtr;
+typedef struct {
+ XF86ImagePtr image;
+ int flags;
+ int (*alloc_surface)(ScrnInfoPtr pScrn,
+ int id,
+ unsigned short width,
+ unsigned short height,
+ XF86SurfacePtr surface);
+ int (*free_surface)(XF86SurfacePtr surface);
+ int (*display) (XF86SurfacePtr surface,
+ short vid_x, short vid_y,
+ short drw_x, short drw_y,
+ short vid_w, short vid_h,
+ short drw_w, short drw_h,
+ RegionPtr clipBoxes);
+ int (*stop) (XF86SurfacePtr surface);
+ int (*getAttribute) (XF86SurfacePtr surface, Atom attr, INT32 *value);
+ int (*setAttribute) (XF86SurfacePtr surface, Atom attr, INT32 value);
+ int max_width;
+ int max_height;
+ int num_attributes;
+ XF86AttributePtr attributes;
+} XF86OffscreenImageRec, *XF86OffscreenImagePtr;
Bool
xf86XVScreenInit(
@@ -133,17 +166,33 @@ xf86XVScreenInit(
int num
);
+typedef int (* xf86XVInitGenericAdaptorPtr)(ScrnInfoPtr pScrn,
+ XF86VideoAdaptorPtr **Adaptors);
+
int
-xf86XVRegisterGenericAdaptor(
- XF86VideoAdaptorPtr *Adaptors,
- int num
+xf86XVRegisterGenericAdaptorDriver(
+ xf86XVInitGenericAdaptorPtr InitFunc
);
int
xf86XVListGenericAdaptors(
- XF86VideoAdaptorPtr **Adaptors
+ ScrnInfoPtr pScrn,
+ XF86VideoAdaptorPtr **Adaptors
);
+Bool
+xf86XVRegisterOffscreenImages(
+ ScreenPtr pScreen,
+ XF86OffscreenImagePtr images,
+ int num
+);
+
+XF86OffscreenImagePtr
+xf86XVQueryOffscreenImages(
+ ScreenPtr pScreen,
+ int *num
+);
+
/*** These are DDX layer privates ***/
diff --git a/xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c b/xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c
index 926a2c404..4ad9a88da 100644
--- a/xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c
+++ b/xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c
@@ -3,7 +3,7 @@
*
* Copyright 1999 by Andrew C Aitchison <A.C.Aitchison@dpmms.cam.ac.uk>
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c,v 1.2 1999/11/19 14:59:16 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c,v 1.3 2000/03/05 23:47:50 dawes Exp $ */
#include "misc.h"
#include "xf86.h"
@@ -27,15 +27,19 @@ xf86SetDDCproperties(ScrnInfoPtr pScrnInfo, xf86MonPtr DDC)
CARD8 *VDIFrawdata = NULL;
int i, ret;
+#ifdef DEBUG
ErrorF("xf86SetXDDCprop(%p, %p)\n", pScrnInfo, DDC);
+#endif
if (pScrnInfo==NULL || pScrnInfo->monitor==NULL || DDC==NULL) {
return FALSE;
}
+#ifdef DEBUG
ErrorF("pScrnInfo->scrnIndex %d\n", pScrnInfo->scrnIndex);
ErrorF("pScrnInfo->monitor was %p\n", pScrnInfo->monitor);
+#endif
pScrnInfo->monitor->DDC = DDC;
@@ -52,11 +56,13 @@ xf86SetDDCproperties(ScrnInfoPtr pScrnInfo, xf86MonPtr DDC)
EDID1rawdata[i] = DDC->rawData[i];
}
+#ifdef DEBUG
ErrorF("xf86RegisterRootWindowProperty %p(%d,%d,%d,%d,%d,%p)\n",
xf86RegisterRootWindowProperty,
pScrnInfo->scrnIndex,
EDID1Atom, XA_STRING, 8,
128, (unsigned char *)EDID1rawdata );
+#endif
ret = xf86RegisterRootWindowProperty(pScrnInfo->scrnIndex,
EDID1Atom, XA_INTEGER, 8,
@@ -68,7 +74,9 @@ xf86SetDDCproperties(ScrnInfoPtr pScrnInfo, xf86MonPtr DDC)
EDID1_DUMMY_STRING
#endif
);
+#ifdef DEBUG
ErrorF("xf86RegisterRootWindowProperty returns %d\n", ret );
+#endif
} else if (DDC->ver.version == 2) {
if ( (EDID2rawdata = xalloc(256*sizeof(CARD8)))==NULL ) {
@@ -89,12 +97,14 @@ xf86SetDDCproperties(ScrnInfoPtr pScrnInfo, xf86MonPtr DDC)
if (DDC->vdif) {
#define VDIF_DUMMY_STRING "setting dummy VDIF property - please insert correct values\n"
+#ifdef DEBUG
ErrorF("xf86RegisterRootWindowProperty %p(%d,%d,%d,%d,%d,%p)\n",
xf86RegisterRootWindowProperty,
pScrnInfo->scrnIndex,
VDIFAtom, XA_STRING, 8,
strlen(VDIF_DUMMY_STRING), VDIF_DUMMY_STRING
);
+#endif
VDIFAtom = MakeAtom(VDIF_ATOM_NAME, sizeof(VDIF_ATOM_NAME), TRUE);
@@ -104,7 +114,9 @@ xf86SetDDCproperties(ScrnInfoPtr pScrnInfo, xf86MonPtr DDC)
strlen(VDIF_DUMMY_STRING),
VDIF_DUMMY_STRING
);
+#ifdef DEBUG
ErrorF("xf86RegisterRootWindowProperty returns %d\n", ret );
+#endif
}
return TRUE;
diff --git a/xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c b/xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c
index 932e4ee07..3157be12d 100644
--- a/xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c
+++ b/xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c,v 1.12 1999/12/03 19:17:26 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c,v 1.13 2000/03/06 19:07:16 dawes Exp $ */
/* xf86DDC.c
*
@@ -184,8 +184,8 @@ xf86DoEDID_DDC2(int scrnIndex, I2CBusPtr pBus)
#ifdef DEBUG
if (!tmp)
ErrorF("Cannot interpret EDID block\n");
-#endif
ErrorF("Sections to follow: %i\n",tmp->no_sections);
+#endif
VDIF_Block =
VDIFRead(scrnIndex, pBus, EDID1_LEN * (tmp->no_sections + 1));
tmp->vdif = xf86InterpretVdif(VDIF_Block);
@@ -276,7 +276,9 @@ VDIFRead(int scrnIndex, I2CBusPtr pBus, int start)
Buffer = DDCRead_DDC2(scrnIndex, pBus,start,64);
if (Buffer == NULL)
return NULL;
+#ifdef DEBUG
ErrorF("number of 64 bit blocks: %i\n",Buffer[0]);
+#endif
if ((num = Buffer[0]) > 0)
v_buffer = v_bufferp = xalloc(sizeof(unsigned char) * 64 * num);
diff --git a/xc/programs/Xserver/hw/xfree86/doc/BugReport b/xc/programs/Xserver/hw/xfree86/doc/BugReport
new file mode 100644
index 000000000..371d6de1b
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/BugReport
@@ -0,0 +1,55 @@
+ XFree86 Bug/Test Report Form
+
+Please fill in as many of the fields a possible, and return this form to
+XFree86@XFree86.org. Replace the comments in [] with your own text.
+
+VERSION:
+
+3.9.18
+
+VIDEO DRIVER:
+
+[e.g. mga]
+
+OPERATING SYSTEM:
+
+[e.g. Linux]
+
+VIDEO CARD:
+
+ [Fill out each relevant entry. If you don't know some of the details,
+ just leave them blank.]
+
+ MODEL:
+
+ [Include a precise description of the model. There are often subtle
+ differences in card model names.]
+
+ GRAPHICS CHIPSET:
+
+ [e.g. Matrox G200]
+
+ RAMDAC:
+
+ [Usually only relevant for old cards]
+
+ CLOCKCHIP:
+
+ [Usually only relevant for old cards]
+
+ VIDEO MEMORY:
+
+ [e.g. 2MB DRAM Include both the amount, and type (if known)]
+
+ BUS TYPE:
+
+ [e.g. PCI]
+
+REPORT:
+
+ [Include details of any problems you encountered. If you didn't have
+ any problems, just say "no problems". Indicate what modes and colour
+ depths you tested. If you found a bug, give a description of how to
+ reproduce it.]
+
+
diff --git a/xc/programs/Xserver/hw/xfree86/doc/DESIGN b/xc/programs/Xserver/hw/xfree86/doc/DESIGN
index df75586d6..1a105c44a 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/DESIGN
+++ b/xc/programs/Xserver/hw/xfree86/doc/DESIGN
@@ -6256,4 +6256,4 @@ eScreen() function.
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.23 2000/02/15 18:00:57 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/DESIGN,v 1.20 2000/02/21 22:44:16 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/DESIGN,v 1.21 2000/03/01 01:47:59 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/Imakefile b/xc/programs/Xserver/hw/xfree86/doc/Imakefile
index de59a8149..9a2a9a699 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/doc/Imakefile
@@ -4,7 +4,7 @@ XCOMM $XConsortium: Imakefile /main/33 1996/10/28 05:12:24 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/Imakefile,v 3.60 2000/01/23 21:59:53 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/Imakefile,v 3.67 2000/03/08 05:38:40 dawes Exp $
#include <Server.tmpl>
#include <lnxdoc.rules>
@@ -23,62 +23,62 @@ SUBDIRS = $(SGMLDIR) $(JAPANESEDIR) man
all::
-#if XFree86Version % 10
-REPORTFORM = BetaReport
-#endif
+REPORTFORM = BugReport
#if !BuildLinuxDocText
OSREADMES = \
/*ReadmeFile(Bsdi)*/ \
- ReadmeFile(DGux) \
- ReadmeFile(FreeBSD) \
+ /*ReadmeFile(DGUX)*/ \
+ /*ReadmeFile(FreeBSD)*/ \
ReadmeFile(isc) \
- ReadmeFile(Linux) \
+ /*ReadmeFile(Linux)*/ \
ReadmeFile(LynxOS) \
ReadmeFile(NetBSD) \
ReadmeFile(OpenBSD) \
- ReadmeFile(OS2) \
- OS2.Notes \
- ReadmeFile(SCO) \
- ReadmeFile(SOLX86) \
- ReadmeFile(SVR4) \
+ /*ReadmeFile(OS2)*/ \
+ /*OS2.Notes*/ \
+ /*ReadmeFile(SCO)*/ \
+ /*ReadmeFile(SOLX86)*/ \
+ /*ReadmeFile(SVR4)*/ \
$(_NULLENTRY_)
HWREADME = \
- ReadmeFile(3Dlabs) \
+ /*ReadmeFile(3Dlabs)*/ \
ReadmeFile(apm) \
/*ReadmeFile(agx)*/ \
/*ReadmeFile(ark)*/ \
ReadmeFile(ati) \
ReadmeFile(chips) \
- ReadmeFile(cirrus) \
- /*ReadmeFile(cyrix)*/ \
+ /*ReadmeFile(cirrus)*/ \
+ ReadmeFile(cyrix) \
ReadmeFile(DECtga) \
/*ReadmeFile(epson)*/ \
- ReadmeFile(fbdev) \
+ /*ReadmeFile(fbdev)*/ \
/*ReadmeFile(I128)*/ \
- /*ReadmeFile(i740)*/ \
+ ReadmeFile(i740) \
+ ReadmeFile(i810) \
/*ReadmeFile(Mach32)*/ \
/*ReadmeFile(Mach64)*/ \
- ReadmeFile(MGA) \
- ReadmeFile(NVIDIA) \
+ /*ReadmeFile(MGA)*/ \
+ /*ReadmeFile(NVIDIA)*/ \
/*ReadmeFile(Oak)*/ \
/*ReadmeFile(P9000)*/ \
+ ReadmeFile(r128) \
ReadmeFile(rendition) \
/*ReadmeFile(S3)*/ \
- ReadmeFile(SiS) \
ReadmeFile(s3virge) \
- ReadmeFile(trident) \
- ReadmeFile(tseng) \
+ ReadmeFile(SiS) \
+ /*ReadmeFile(trident)*/ \
+ /*ReadmeFile(tseng)*/ \
/*ReadmeFile(Video7)*/ \
/*ReadmeFile(WstDig)*/ \
$(_NULLENTRY_)
MAINDOCS = LICENSE README /*ReadmeFile(Config)*/ /*BUILD*/ RELNOTES \
- Status DESIGN
+ Install Status DESIGN
-OTHERDOCS = VideoModes.doc /*QuickStart.doc*/ xinput \
- ReadmeFile(fonts) ReadmeFile(mouse)
+OTHERDOCS = /*VideoModes.doc*/ /*QuickStart.doc*/ /*xinput*/ \
+ ReadmeFile(fonts) ReadmeFile(mouse) ReadmeFile(DRI)
#endif
MISCDOCS = ServersOnly /*LbxproxyOnly*/ $(REPORTFORM) ReadmeFile(DGA) \
diff --git a/xc/programs/Xserver/hw/xfree86/doc/Install b/xc/programs/Xserver/hw/xfree86/doc/Install
new file mode 100644
index 000000000..9cbed305e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/Install
@@ -0,0 +1,329 @@
+ Installation Details for XFree86[tm] 4.0
+
+ The XFree86 Project, Inc
+
+ 29 February 2000
+
+ Abstract
+
+ This document contains information about installing XFree86 4.0.
+
+1. Introduction
+
+This document contains information about installing XFree86 4.0 binary dis-
+tributions as provided by The XFree86 Project. The installation procedures
+for binary distributions provided by others may be different.
+
+The XFree86 binary distributions that we provide for UNIX-like OSs are pack-
+aged in the platform-independent gzipped tar format (referred to as "tar-
+balls"). Our tarballs can be identified by the ".tgz" suffix. We do not
+provide binaries in RPM format or any other platform specific package format.
+If you need them in such a format, you should contact your OS vendor.
+Together with the binary distributions, we provide a customised version of
+GNU tar called "extract", and an installation script. We recommend that
+these be used to install the binary distributions.
+
+2. How to get the XFree86 4.0 binary distributions
+
+We, The XFree86 Project, provide XFree86 4.0 binaries for a range of operat-
+ing systems at our ftp site <URL:ftp://ftp.xfree86.org/pub/XFree86/4.0/bina-
+ries/>. Our ftp site is also mirrored by many sites around the world. There
+is a sub-directory for each OS/platform that we have binaries for. The first
+thing you need to do is to decide which of these suits you. In most cases,
+the choice is straightforward. In some cases (e.g., Linux) there may be a
+number of choices depending on what architecture or libc version you are
+using. We recommend that you first download the Xinstall.sh script, and run
+it as follows to find out which binary distribution you should download.
+
+ sh Xinstall.sh -check
+
+This should tell you which binary distribution is the correct one for your
+system. Getting this right may save from wasting time downloading the wrong
+distribution.
+
+The next step is to download the necessary files. The mandatory files for
+all installations are listed below. All of them must be downloaded to do the
+installation. The installer script will complain if they are not all pre-
+sent.
+
+ Xinstall.sh The installer script
+ extract The utility for extracting tarballs
+ Xbin.tgz X clients/utilities and run-time libraries
+ Xlib.tgz Some data files required at run-time
+ Xman.tgz Manual pages
+ Xdoc.tgz XFree86 documentation
+ Xfnts.tgz Base set of fonts
+ Xfenc.tgz Base set of font encoding data
+ Xetc.tgz Run-time configuration files
+ Xvar.tgz Run-time data
+ Xxserv.tgz XFree86 X server
+ Xmod.tgz XFree86 X server modules
+
+NOTES:
+
+ o Some web browsers have a problem downloading the extract utility cor-
+ rectly. If you encounter this problem, download the version called
+ extract.exe instead. The ".exe" suffix is only there to make the trou-
+ blesome web browsers do the right thing. It is not a DOS/Windows exe-
+ cutable.
+
+ o A few distributions don't have or require the Xvar.tgz tarball. If it
+ is present in the binaries sub-directory for your platform, then it is
+ required.
+
+ o Some distributions may have additional mandatory tarballs. This is
+ rare. In these cases, the installer script will tell you if any are
+ missing.
+
+The following tarballs are optional. You should download the ones you want
+to install.
+
+ Xfsrv.tgz Font server
+ Xnest.tgz Nested X server
+ Xprog.tgz X header files, config files and compile-time libs
+ Xprt.tgz X Print server
+ Xvfb.tgz Virtual framebuffer X server
+ Xf100.tgz 100dpi fonts
+ Xfcyr.tgz Cyrillic fonts
+ Xflat2.tgz Latin-2 fonts
+ Xfnon.tgz Some large bitmap fonts
+ Xfscl.tgz Scalable fonts (Speedo and Type1)
+ Xhtml.tgz HTML version of the documentation
+ Xps.tgz PostScript version of the documentation
+ Xjdoc.tgz Documentation in Japanese
+
+NOTES:
+
+ o Some distributions may have some additional optional tarballs.
+
+If you miss some and want to install them later, you can do so by following
+the appropriate part of the section that describes manual installation.
+
+3. Installing XFree86 4.0 using the Xinstall.sh script
+
+We strongly recommend that our XFree86 4.0 binary distributions be installed
+using the Xinstall.sh script that we provide. The main reason that we make
+this recommendation is that there are a lot of steps in the manual installa-
+tion process, and those steps can vary according to the situation. There is,
+however, a description of the manual installation process for the most common
+cases below for those who might need it.
+
+Put all of the downloaded files into a single directory (choose some tempo-
+rary location with enough space). Become the super user (root), cd to that
+directory, then run the installer script as follows:
+
+ sh Xinstall.sh
+
+Answer the prompts that come up. If you are missing something that is
+required to run this version of XFree86, the installer may tell you to
+install it before trying again. If you don't have all of the mandatory files
+listed above, then the installer will tell you which ones are missing and ask
+you to download them before trying again.
+
+3.1 Answering the questions that the installer may ask
+
+The installer asks some questions that may not have obvious answers. The
+information here should help you answer them. In most cases, apart from the
+first question, the default answers should be OK.
+
+If you run the installer from within an X session (the installer checks if
+$DISPLAY is set), you will be warned that doing so is not a good idea.
+Unless you have a good reason for knowing that this won't be a problem, you
+should exit your X session, including stopping xdm or equivalent if it is
+running, before continuing. If you ignore this warning and run into prob-
+lems, well, you were warned!
+
+If you have an existing X installation, you will be warned that proceeding
+with this installation will overwrite it. Only those things that are part of
+our standard distribution will be overwritten. Other X applications that you
+may have installed will not be removed. Some configuration files may be
+overwritten though, but the installer should prompt you before doing so. As
+the opening greeting says, it is strongly recommended that you backup any
+existing installation before proceeding. If you want your old applications
+to still be there after you've installed, don't do the "backup" by simply
+renaming your old /usr/X11R6 directory. It is better to make a copy of it,
+and then install over the top of the original one. If you run into problems
+and want to revert to the old installation, you can then delete the overwrit-
+ten one and copy the saved version back.
+
+During the first part of the installation over an existing version, the
+script may remove some old files or directories that would get in the way of
+the new installation. It will list which files/directories have been
+removed. If none are listed, then none were removed.
+
+The next step when installing over an existing version is to check for exist-
+ing configuration files. As of XFree86 version 3.9.18, the run-time configu-
+ration files are installed by default under /etc/X11 instead of under
+/usr/X11R6/lib/X11. The installer will move the existing ones for you and
+create the necessary symbolic links. If you don't want to have these config-
+uration files under /etc/X11, then you should answer "no" when asked about
+it. Answering "no" here also means that the new configuration files will be
+installed in the old /usr/X11R6/lib/X11 location. Note: for the rare systems
+that don't have symbolic links, this question will not be asked. The default
+answer is "yes" because that is best for most situations. It is our new
+default. It makes it easier to share the /usr/X11R6 directory between multi-
+ple hosts, and allows it to be mounted read-only. If you don't need these
+features, then you can safely answer "no" if you don't want them moved.
+
+When installing over an existing version, you will be prompted before each
+set of configuration files is installed. If you haven't made any customisa-
+tions to your existing configuration files, then you can safely answer "yes"
+for each of these. If you have made customisations, you can try answering
+"no". If you run into problems later, you may need to manually merge your
+customisations into the the new version of the configuration files. The con-
+figuration files can all be found in the Xetc.tgz tarball. See the section
+below about manual installation for information about extracting them sepa-
+rately.
+
+After the configuration files have been dealt with, the other mandatory com-
+ponents of the binary distribution will be installed. This should proceed
+without any user intervention.
+
+If you downloaded any of the optional components, the installer will ask you
+about each one before it is installed. The default answer is "yes". If
+there are any that you've since decided that you don't want to install,
+answer "no" when prompted.
+
+After that is done, the main part of the installation is complete. The next
+steps are to tidy up some aspects of the installation. The first of these is
+to run "ldconfig" on systems that require it, so that the newly installed
+shared libraries are accessible. Then the fonts.dir files in some directo-
+ries are updated so that the fonts can be accessed correctly. Next, the
+installer checks to see if your system has a termcap file or terminfo files.
+If it finds the former, it tells you how my may update the entries in that
+file. If it finds the latter, it asks you if you want it to update them for
+you.
+
+Finally, the installer asks you if you want a link created for the rstart
+utility. On most modern systems, the link isn't essential, so the default
+answer is "no". Answer "yes" if you know that you need it. If you find
+later that you need it, you can create it easily by running:
+
+ rm -f /usr/bin/rstartd
+ ln -s /usr/X11R6/bin/rstartd /usr/bin/rstartd
+
+3.2 After the installation is complete
+
+The next step is to configure the X server. That is covered in detail in an
+as-yet unwritten document :-(. In the meantime, there are two ways to create
+a basic X server configuration file for XFree86 4.0. One is to run the
+xf86config utility. Another is to use the new -configure X server option:
+
+ XFree86 -configure
+
+The X server config file (XF86Config) format has changed compared to 3.3.x.
+Also, its default location is now /etc/X11. Finally, there is now only one X
+server for driving video hardware, and it is called "XFree86". Once you're
+satisfied with the operation of the new X server, you can safely remove the
+old XF86_* and/or XF98_* X server binaries from /usr/X11R6/bin.
+
+After the X server configuration is done, it may be advisable to reboot,
+especially if you run xdm (or equivalent) or the font server (xfs).
+
+4. Installing XFree86 4.0 manually
+
+This section describes how to manually install the XFree86 4.0 binary distri-
+butions. You should only use this method if you know what you're doing. The
+information here covers some common cases, but not every possible case.
+
+Put all of the downloaded files into a single directory (choose some tempo-
+rary location with enough space). Become the super user (root). All of the
+following commands should be run as root, and they should be run from the
+directory that has all of the downloaded files. The "extract" utility should
+be used to unpack the tarballs. This is a customised version of GNU tar that
+has the gzip code built-in, and which has a different usage when run under
+the name "extract". One important thing that extract does that most versions
+of tar do not do by default is that it unlinks existing files before writing
+new ones. This is important when installing over an existing version of X.
+If you choose to use some other utility to extract the tarballs, you're on
+your own.
+
+4.1 A new installation
+
+The simplest case is when there is no existing X installation. The installa-
+tion procedure for this case is as follows:
+
+ chmod +x extract
+ mkdir /usr/X11R6
+ mkdir /etc/X11
+ ./extract -C /usr/X11R6 X[a-df-uw-z]*.tgz
+ ./extract -C /usr/X11R6 Xvfb.tgz # If you are installing Xvfb
+ ./extract -C /etc/X11 Xetc.tgz
+ ./extract -C /var Xvar.tgz
+ ln -s /etc/X11/app-defaults /usr/X11R6/lib/X11
+ ln -s /etc/X11/fs /usr/X11R6/lib/X11
+ ln -s /etc/X11/lbxproxy /usr/X11R6/lib/X11
+ ln -s /etc/X11/proxymngr /usr/X11R6/lib/X11
+ ln -s /etc/X11/rstart /usr/X11R6/lib/X11
+ ln -s /etc/X11/twm /usr/X11R6/lib/X11
+ ln -s /etc/X11/xdm /usr/X11R6/lib/X11
+ ln -s /etc/X11/xinit /usr/X11R6/lib/X11
+ ln -s /etc/X11/xsm /usr/X11R6/lib/X11
+ ln -s /etc/X11/xserver /usr/X11R6/lib/X11
+ /sbin/ldconfig /usr/X11R6/lib # For Linux
+ /sbin/ldconfig -m /usr/X11R6/lib # For FreeBSD, NetBSD, OpenBSD
+ /usr/X11R6/bin/mkfontdir /usr/X11R6/lib/X11/fonts/misc
+
+4.2 Installing over an old installation
+
+If you have an existing installation of X, you should make a backup copy of
+it before installing the new version over the top of it.
+
+Before doing anything else, make sure the extract command is executable, and
+also link it to the name "gnu-tar" so that it can be used as a regular tar
+command:
+
+ chmod +x extract
+ rm -f gnu-tar
+ ln extract gnu-tar
+
+The first part of the procedure is to move the old run-time config files from
+/usr/X11R6/lib/X11 to /etc/X11. Create /etc/X11 if it doesn't already exist.
+For each of the following sub-directories (app-defaults, fs, lbxproxy, prox-
+ymngr, rstart, twm, xdm, xinit, xsm, xserver) that you want to move, check
+that there is a sub-directory of this name in /usr/X11R6/lib/X11. Create a
+sub-directory of the same name under /etc/X11, then copy the files over by
+running:
+
+ ./gnu-tar -C /usr/X11R6/lib/X11/subdir -c -f - . | \
+ ./gnu-tar -C /etc/X11/subdir -v -x -p -U -f -
+
+For each subdirectory that is moved, remove the one under /usr/X11R6/lib/X11
+and create a symbolic link to the new location:
+
+ rm -fr /usr/X11R6/lib/X11/subdir
+ ln -s /etc/X11/subdir /usr/X11R6/lib/X11
+
+For those subdirectories that didn't already exist under /usr/X11R6/lib/X11,
+create one under /etc/X11 and create the symbolic link to it:
+
+ mkdir /etc/X11/subdir
+ ln -s /etc/X11/subdir /usr/X11R6/lib/X11
+
+Once that is done, extract the config files from the Xetc.tgz tarball into a
+temporary directory:
+
+ mkdir tmpdir
+ ./extract -C tmpdir Xetc.tgz
+
+and then copy each sub-directory over to the installed location:
+
+ ./gnu-tar -C tmpdir/subdir -c -f - . | \
+ ./gnu-tar -C /usr/X11R6/lib/X11/subdir -v -x -p -U -f -
+
+If you have customised any config files in your old installation, you may
+want to omit those sub-directories, or copy selected files over by hand.
+
+Once that's done, the main part of the installation can be done:
+
+ ./extract -C /usr/X11R6 X[a-df-uw-z]*.tgz
+ ./extract -C /usr/X11R6 Xvfb.tgz # If you are installing Xvfb
+ ./extract -C /var Xvar.tgz
+ /sbin/ldconfig /usr/X11R6/lib # For Linux
+ /sbin/ldconfig -m /usr/X11R6/lib # For FreeBSD, NetBSD, OpenBSD
+ /usr/X11R6/bin/mkfontdir /usr/X11R6/lib/X11/fonts/misc
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml,v 1.4 2000/02/29 18:01:17 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/Install,v 1.3 2000/03/01 01:48:01 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/LICENSE b/xc/programs/Xserver/hw/xfree86/doc/LICENSE
index 31e14d9a7..066e2fd97 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/LICENSE
+++ b/xc/programs/Xserver/hw/xfree86/doc/LICENSE
@@ -552,7 +552,47 @@ Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved.
solely in object code form, Recipient may replace the words "this file" with
"this software" in both the first and second sentences.]
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.6 2000/01/19 22:37:33 dawes Exp $
+2.6 Bigelow & Holmes Inc and Y&Y Inc Lucidux font license
+Copyright (C) 2000 Bigelow & Holmes Inc. and Y&Y, Inc. Patents pending. All
+Rights Reserved. Lucidux is a trademark of Bigelow & Holmes Inc.
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/LICENSE,v 1.7 2000/02/21 22:44:18 dawes Exp $
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of these Fonts and associated documentation files (the "Font Software"), to
+deal in the Font Software, including without limitation the rights to use,
+copy, merge, publish, distribute, sublicense, and/or sell copies of the Font
+Software, and to permit persons to whom the Font Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright, trademark, patent notices and this permission notice
+shall be included in all copies of one or more of the Font Software.
+
+The Font Software may not be modified, altered, or added to, and in particu-
+lar the designs of glyphs or characters in the Fonts may not be modified nor
+may additional glyphs or characters be added to the Fonts, except that com-
+posite characters composed of two or more characters in the Fonts may be cre-
+ated using the seac (Standard Encoding Accented Character) Type 1 operator.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT,
+TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW & HOLMES INC. OR Y&Y,
+INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GEN-
+ERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN
+ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR
+INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFT-
+WARE.
+
+Except as contained in this notice, the names of Bigelow & Holmes Inc. and
+Y&Y, Inc. shall not be used in advertising or otherwise to promote the sale,
+use or other dealings in this Font Software without prior written authoriza-
+tion from the Bigelow & Holmes Inc. and Y&Y, Inc.
+
+For further information, contact:
+
+<sales@yandy.com> or <design@bigelowandholmes.com>
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.7 2000/03/06 22:59:23 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/LICENSE,v 1.9 2000/03/07 14:55:04 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/OS2.Notes b/xc/programs/Xserver/hw/xfree86/doc/OS2.Notes
index 8595acbfa..06f88af1e 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/OS2.Notes
+++ b/xc/programs/Xserver/hw/xfree86/doc/OS2.Notes
@@ -224,4 +224,4 @@ Well, you see, this was quite easy :-)
$XConsortium: OS2note.sgml /main/1 1996/02/24 10:08:59 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/OS2.Notes,v 3.13 2000/02/21 22:44:19 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/OS2.Notes,v 3.14 2000/03/01 01:48:02 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README b/xc/programs/Xserver/hw/xfree86/doc/README
index 0d4e96036..3a987b886 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README
+++ b/xc/programs/Xserver/hw/xfree86/doc/README
@@ -1,75 +1,75 @@
- README for XFree86[tm] 3.9.18
+ README for XFree86[tm] 4.0
The XFree86 Project, Inc
- 21 February 2000
+ 26 February 2000
Abstract
XFree86 is a port of X11R6.4 that supports several UNIX(R) and
UNIX-like operating systems on Intel and other platforms.
-1. What is XFree86 3.9.18?
-
-XFree86 3.9.18 is a ``work in progress'' snapshot of the XFree86 4.0 develop-
-ment code. It is one of a series of snapshot releases leading up the the 4.0
-release. The plan is to release a new snapshot every four to six weeks. The
-target audience for this release is developers and others who are comfortable
-on the bleeding edge. This release is not targeted at beginners. Also, most
-end users will find life easier using our latest 3.3.x release. While we
-welcome bug reports and feedback about this release, we don't have the
-resources to provide user-level support for it. If you're not comfortable
-dealing with those sorts of things yourself, then the snapshot releases are
-probably not for you.
-
-This code is very much work in progress. Many of the interfaces may change
-without notice between now and the 4.0 release. The driver design has
-changed significantly compared with the 3.3.x versions, and only a small num-
-ber of drivers have been converted so far. That means that this release does
-not support a wide range of video hardware. Some of the drivers and new fea-
-tures are well developed and reasonably stable, while others are not.
+1. What is XFree86 4.0?
+
+XFree86 4.0 is the first
+ full release of the new XFree86 4 series. The road to XFree86 4 began in
+mid 1997, with serious work starting in early 1998. The first pre-4.0 snap-
+shot was released in mid 1999, and 4.0 was released in early 2000. A lot has
+been completed in that time, and even more has been started since the "4.0"
+design was drafted. The result is that this release contains a lot of new
+features, some new drivers, and some significant performance improvements.
+This release contains components in various stages of development, ranging
+from stable and well tested to new and not-so-well tested. One the other
+side, there are drivers from the 3.3.x series that have not yet been ported
+to XFree86 4. Most of these are for old hardware. To find more information
+about which hardware is supported, see the Driver Status document.
+
+XFree86 4 uses a very modular design. We had hoped to finalise and fully
+document the driver module API/ABI in time for the 4.0 release, but instead
+we are planning to have this done for a subsequent release. We will try
+where possible to retain backward compatibility with the module interfaces in
+4.0 in future releases, but we can't make guarantees about that until the
+interfaces have been fully documented.
Information on this release's features and their status can be found in the
Release Notes.
-2. Redistribution of the Snapshots
+Information about obtaining and installing binary distributions of this
+release can be found in the Installation Document.
-While the XFree86 License doesn't prohibit vendors and others redistributing
-binaries of this release, we don't recommend it. We ask that if you do dis-
-tribute such binaries, you make it clear that people using then should con-
-tact you for support and not XFree86.
+Copyright and Licensing information for this release can be found in the
+License Document.
-3. Developers
+2. Developers
-If you would like to work on the development on XFree86 4.0, then it is rec-
-ommended that you join the XFree86 development team
+If you would like to work on the development of XFree86 4, then it is recom-
+mended that you join the XFree86 development team
<URL:http://www.xfree86.org:/developer.html>. That way you will have access
to the latest source and to other developers.
-4. How to get XFree86 3.9.18
+3. How to get XFree86 4.0
-XFree86 3.9.18 can be found at the XFree86 ftp server
-<URL:ftp://ftp.xfree86.org/pub/XFree86/snapshots/3.9.18/>, and at mirrors of
-this server. This snapshot is available primarily in source form. Binaries
-for some platforms may be made available at a later time.
+XFree86 4.0 can be found at the XFree86 ftp server
+<URL:ftp://ftp.xfree86.org/pub/XFree86/4.0/>, and at mirrors of this server.
+Information about obtaining and installing binary distributions of this
+release can be found in the Installation Document. Information about obtain-
+ing the release in source form is given below.
-The source for version 3.9.18 is split into three tarballs: X3918src-1.tgz,
-X3918src-2.tgz, X3918src-3.tgz. The first contains everything except the
-fonts and general X11 documentation. It is sufficient for building XFree86
-is you already have a set of fonts. The second contains the fonts and the
-source for the general X11 documentation. The third contains the general X11
-documentation in hardcopy format.
+The source for version 4.0 is split into three tarballs: X400src-1.tgz,
+X400src-2.tgz, X400src-3.tgz. The first contains everything except the fonts
+and general X11 documentation. It is sufficient for building XFree86 is you
+already have a set of fonts. The second contains the fonts and the source
+for the general X11 documentation. The third contains the general X11 docu-
+mentation in hardcopy format.
-A source patch relative to version 3.9.17 is also available. Because of its
-size, it is split into three parts. The patch files are
-3.9.17-3.9.18.diff1.gz, 3.9.17-3.9.18.diff2.gz and 3.9.17-3.9.18.diff3.gz.
-These patches should be applied to a clean 3.9.17 source tree, working from
-the directory containing the xc/ directory. The patches should be applied by
-running:
+A source patch relative to version 3.9.18 is also available. Because of its
+size, it is split into two parts. The patch files are 3.9.18-4.0.diff1.gz
+and 3.9.18-4.0.diff2.gz. These patches should be applied to a clean 3.9.18
+source tree, working from the directory containing the xc/ directory. The
+patches should be applied by running:
- gunzip < 3.9.17-3.9.18.diff1.gz | patch -p0 -E
- gunzip < 3.9.17-3.9.18.diff2.gz | patch -p0 -E
- gunzip < 3.9.17-3.9.18.diff3.gz | patch -p0 -E
+ gunzip < 3.9.18-4.0.diff1.gz | patch -p0 -E
+ gunzip < 3.9.18-4.0.diff2.gz | patch -p0 -E
The contrib part of the distribution has now been folded into the main source
tree, so a separate contrib tarball is no longer required.
@@ -77,7 +77,7 @@ tree, so a separate contrib tarball is no longer required.
To format the XFree86 documentation, the latest version of our doctools pack-
age. That is available as doctools-1.1.2.tgz.
-5. Reporting Bugs
+4. Reporting Bugs
Bugs should be reported to <XFree86@XFree86.org>. Before reporting bugs,
please check the X server log file, which can be found at
@@ -91,7 +91,7 @@ If you have patches (bug fixes or enhancements, etc) that you'd like to sub-
mit for inclusion in a future version of XFree86, please send them to
<fixes@XFree86.org>.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.100 2000/02/21 22:41:41 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.103 2000/03/08 20:36:43 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README,v 3.100 2000/02/21 22:44:20 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README,v 3.102 2000/03/08 20:39:21 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs b/xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs
index 53d92f80b..8fdaf0b6e 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs
@@ -96,4 +96,4 @@ This server supports the following 3DLabs chipsets:
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/3Dlabs.sgml,v 1.2 1999/08/24 02:01:07 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs,v 1.3 2000/02/21 22:44:20 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.3Dlabs,v 1.4 2000/03/01 01:48:04 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.DECtga b/xc/programs/Xserver/hw/xfree86/doc/README.DECtga
index eabaf6099..218c23ec4 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.DECtga
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.DECtga
@@ -2,14 +2,15 @@
The XFree86 Project, Inc.
- April 29th, 1999
+ March 5th, 2000
1. DEC 21030
- o The DEC 21030 is supported by XFree86 3.9.18. The driver is now par-
- tially accelerated. The built-in graphics on the Multia is supported in
+ o The DEC 21030 is supported by XFree86 4.0. The driver is now partially
+ accelerated. The built-in graphics on the Multia is supported in
8-plane mode, and PCI cards with 8 or 16 MB framebuffers are supported
- in 24-plane mode.
+ in 24-plane mode. TGA2 (aka PowerStorm 3D30/4D20) cards are not cur-
+ rently supported.
o Current Known Problems
@@ -21,7 +22,12 @@
3. After the server has been run using the hardware cursor, the Linux
TGA console cursor (which also uses the hardware cursor) is
- shifted down by one pixel.
+ shifted down by one pixel. This problem does not affect Linux ker-
+ nels 2.2.10 and above, which do not use the hardware cursor.
+
+ 4. The XAA PolySegment() method is buggy. If you experience server
+ crashes with SIGFPE, or server hangs, try disabling it (see
+ below).
o The following options may be specified for the 21030 driver:
@@ -31,7 +37,7 @@
bus, device, and function numbers in the 21030 section. On
a Multia, this should be "PCI:0:11:0".
- MemBase "0x???????"
+ MemBase 0x???????
If the server does not detect the base address of the 21030,
then check /proc/pci for the 21030 and look for the
"Prefetchable 32 bit memory at 0x???????" and enter this as
@@ -43,15 +49,20 @@
Option "swcursor"
Disables the hardware cursor.
+ Option "NoXaaPolySegment"
+ Disables the XAA PolySegment() method.
+
2. Authors
o Matthew Grossman, <mattg@oz.net>
o Alan Hourihane, <alanh@fairlite.demon.co.uk>
+ o Martin Lucina, <mato@kotelna.sk>
+
o Tim Rowley, <tor@cs.brown.edu>
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml,v 3.8 1999/07/19 13:36:20 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml,v 3.9 2000/03/06 22:59:23 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DECtga,v 3.13 2000/02/21 22:44:21 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DECtga,v 3.15 2000/03/07 14:55:05 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.DGA b/xc/programs/Xserver/hw/xfree86/doc/README.DGA
index 330030936..ab3f2ae6b 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.DGA
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.DGA
@@ -1,103 +1,481 @@
+ XFree86-DGA Extension version 2.0
- XFree86-DGA Extension
-
-The XFree86-DGA extension is an X server extension for allowing client
+ The XFree86-DGA extension is an X server extension for allowing client
programs direct access to the video frame buffer.
-This is a brief description of the programming interface for the
-XFree86-DGA extension. This describes version 1.0, which is the first
-official version. The interface should remain compatible in future
-versions. The functions described here are found in the library
-libXxf86dga.a.
+ This is a brief description of the programming interface for the
+XFree86-DGA extension. This describes version 2.0, which is the second
+official version. The functions described here are found in the library
+libXxf86dga.a, and their prototypes are in <X11/extensions/xf86dga.h>.
+
+ XFree86 DGA is not intended as a direct rendering API, but rather,
+as a mechanism to "get the X-Server out of the way" so that a direct
+rendering API, such as OpenGL, can have full access to the hardware.
+With this in mind, DGA does provide clients some direct access to
+the hardware without requiring a separate rendering API, but this
+access is limited to direct linear framebuffer access.
+
+ DGA is initialized by passing a number corresponding to a valid
+XDGAMode to XDGASetMode(). Clients can get a list of valid modes
+from XDGAQueryModes(). Each XDGAMode corresponds to a different
+framebuffer layout.
+
+typedef struct {
+ int num;
+ char *name;
+ float verticalRefresh;
+ int flags;
+ int imageWidth;
+ int imageHeight;
+ int pixmapWidth;
+ int pixmapHeight;
+ int bytesPerScanline;
+ int byteOrder;
+ int depth;
+ int bitsPerPixel;
+ unsigned long redMask;
+ unsigned long greenMask;
+ unsigned long blueMask;
+ short visualClass;
+ int viewportWidth;
+ int viewportHeight;
+ int xViewportStep;
+ int yViewportStep;
+ int maxViewportX;
+ int maxViewportY;
+ int viewportFlags;
+} XDGAMode;
+
+ num
+
+ A unique identifying number (num > 0) for the mode. This is the
+ number referenced when initializing the mode.
+
+ name
+
+ The name of the corresponding modeline as given in the XF86Config file.
+
+ verticalRefresh
+
+ The vertical refresh rate for the modeline (in Hz).
+
+ flags
+
+ Any of the following may be OR'd together:
+
+ XDGAConcurrentAccess
+
+ Indicates that concurrent client/server access to the
+ framebuffer is possible. If this flag is not set it is
+ very important to call XDGASync() before directly accessing
+ the framebuffer if a call to XDGAFillRectangle(),
+ XDGACopyArea() or XDGACopyTransparentArea() or any Xlib
+ rendering function has been made prior to such accesses.
+
+ XDGASolidFillRect
+
+ Indicates that XDGAFillRectangle() is supported.
+
+ XDGABlitRect
+
+ Indicates that XDGACopyArea() is supported.
+
+ XDGABlitTransRect
+
+ Indicates that XDGACopyTransparentArea() is supported.
+
+ XDGAPixmap
+
+ Indicates that a Pixmap will be returned when the mode is
+ initialized. This means that rendering with Xlib is possible
+ for this mode.
+
+ XDGAInterlaced
+ XDGADoublescan
+
+ Indicates that the mode is an interlaced or doublescan mode.
+
+
+ imageWidth
+ imageHeight
+
+ The width and height of the framebuffer area accessible by the client.
+ This rectangle is always justified to the upper left-hand corner.
+
+ pixmapWidth
+ pixmapHeight
+
+ The width and height of the framebuffer area accessible by Xlib.
+ This rectangle is always justified to the upper left-hand corner.
+ These fields are only valid if the XDGAPixmap flag is set in the
+ "flags" field.
+
+ bytesPerScanline
+
+ The pitch of the framebuffer in bytes.
+
+ byteOrder
+
+ MSBFirst or LSBFirst.
+
+ depth
+
+ The number of bits in each pixel which contain usable data.
+
+ bitsPerPixel
+
+ The number of bits taken up by each pixel.
+
+ redMask
+ greenMask
+ blueMask
+
+ The RGB masks. These do not apply to color-indexed modes.
+
+ visualClass
+
+ TrueColor, PseudoColor, DirectColor, etc...
+
+ viewportWidth
+ viewportHeight
+
+ The dimensions of the portion of the framebuffer which will be
+ displayed on the screen.
+
+ xViewPortStep
+ yViewPortStep
+
+ The granularity of the x,y viewport positioning possible with
+ the XDGASetViewport function.
+
+ maxViewportX
+ maxViewportY
+
+ The maximimum x and y positions possible with the XDGASetViewport
+ function.
+
+ viewportFlags
+
+ Any of the following may be OR'd together:
+
+ XDGAFlipRetrace
+
+ Indicates that the hardware can switch viewports during
+ the vertical retrace.
+
+ XDGAFlipImmediate
-Prototypes for these functions can be found in <X11/extensions/xf86dga.h>
+ Indicates that the hardware can switch viewports immediately
+ without waiting for the vertical retrace.
- XF86DGAQueryVersion(Display *display, int *majorVersion, int *minorVersion)
- query the XFree86-DGA version
+XDGAMode* XDGAQueryModes(
+ Display *dpy,
+ int screen,
+ int *num
+);
- XF86DGAQueryExtension(Display *display, int *eventBase, int *errorBase)
+ XDGAQueryModes() returns a pointer to an array of XDGAModes which
+are valid for the given screen. "num" is the number of elements in the
+array. The returned array can be freed with XFree();
+
- returns the eventBase and errorBase for the XFree86-DGA extension
+XDGADevice* XDGASetMode(
+ Display *dpy,
+ int screen,
+ int num
+);
- XF86DGAQueryDirectVideo(Display *display, int screen, int *flags)
+ A XDGAMode will be initialized when its "num" is passed to
+XDGASetMode(). To exit DGA mode and return to normal server operation,
+pass number zero to XDGASetMode(). XDGASetMode() returns a pointer
+to an XDGADevice if successful. The XDGADevice can be freed with
+XFree().
- Query the DirectVideo capabilities of the graphics device. Flags
- are returned, which may be interpreted as follows (bit masks):
+ struct {
+ XDGAMode mode;
+ unsigned char *data;
+ Pixmap pixmap;
+ } XDGADevice;
- XF86DGADirectPresent DirectVideo support is present
+ mode
- XF86DGAGetVideo(Display *display, int screen, char **addr, int *width,
- int *bankSize, int *memSize);
+ The XDGAMode structure, identical to the information returned
+ by XDGAQueryModes.
- returns a pointer to the start of the video framebuffer (*addr),
- the line width (*width), memory bank size (*bankSize) and total
- memory size (*memSize). Mapping the video framebuffer is a
- privileged operation on most OSs (usually mmap of /dev/mem),
- so a program using this must usually be setuid (or perhaps setgid)
- at least up until the point the function is called.
+ data
+ If direct framebuffer access is desired and possible, this field
+ will contain a pointer to the mapped framebuffer memory. Generally,
+ this field will be zero unless a call to XDGAOpenFramebuffer()
+ is made prior to initialization of the mode.
- XF86DGAGetViewPortSize(Display *display, int screen, int *width,
- int *height)
+ pixmap
- Returns the width (*width) and height (*height) of the view port,
- which is the part of the framebuffer that is visible on the monitor.
+ If the mode supports Xlib rendering as indicated by XDGAPixmap
+ in the flags field, this will contain a Pixmap handle suitable
+ for passing as the drawable argument to Xlib functions. This
+ field will be zero if Xlib rendering is not supported.
- XF86DGADirectVideo(Display *display, int screen, int flags)
+Bool XDGAQueryExtension(
+ Display *dpy,
+ int *eventBase,
+ int *errorBase
+);
- enables/disables Direct Video mode. When Direct Video mode is
- enabled, the X server gives up control of the framebuffer to the
- client. When flags is zero, Direct Video mode is disabled. flags
- may be a bit-wise combination of the following:
+ XDGAQueryExtension() checks for the prescence of the extension
+and returns the event and error bases.
- XF86DGADirectGraphics enable Direct Video mode
- XF86DGADirectMouse enable reporting of pointer movement
- as relative motion
- XF86DGADirectKeyb enable direct reporting of keyboard
- events
+Bool XDGAQueryVersion(
+ Display *dpy,
+ int *majorVersion,
+ int *minorVersion
+);
- XF86DGASetVidPage(Display *display, int screen, int page)
+ XDGAQueryVersion() returns the major and minor version numbers (duh).
- Set the framebuffer page. This is only required for hardware which
- has a banked memory layout (ie, bankSize < memSize).
+Bool XDGAOpenFramebuffer(
+ Display *dpy,
+ int screen
+);
- XF86DGASetViewPort(Display *display, int screen, int x, int y)
+void XDGACloseFramebuffer(
+ Display *dpy,
+ int screen
+);
+
- Set the coordinates of the upper-left corner of the view port to (x,y).
+ XDGAOpenFramebuffer() maps the framebuffer memory. The client
+needs sufficient privledges to be able to do this.
+ XDGAOpenFramebuffer() should be called prior to initializing
+a dga mode if direct framebuffer access is desired for that mode.
+XDGAOpenFramebuffer() does not need to be called if direct framebuffer
+access is not required. If the framebuffer is opened,
+XDGACloseFramebuffer() should be called prior to client exit to
+unmap the memory.
- Bool XF86DGAViewPortChanged(Display *display, int screen, int n)
- Checks whether a previous SetViewPort command has been performed
- by the hardware, that is, whether a vertical retrace has occurred
- since a previous SetViewPort. This can (must, in fact) be used
- with page-flipping; you can start writing to the next page only when
- this function returns TRUE. For some devices this will be the
- case immediately after SetViewPort, however this may be changed in
- in the future. The number of pages used is specified with n; it
- should be 2 for simple page flipping. If n is greater than two
- (triple or multi-buffering), the function checks whether the
- (n - 2)-before-last SetViewPort has been performed.
+void XDGAChangePixmapMode(
+ Display *dpy,
+ int screen,
+ int *x,
+ int *y,
+ int mode
+);
- XF86DGAInstallColormap(Display *display, int screen, Colormap cmap)
+ In the case where a Pixmap is available for Xlib rendering, this
+function allows changing between two pixmap sizes. The following
+values for "mode" are possible.
- Set the current colormap of the display to cmap. XF86DGADirectGraphics
- must be active on the display/screen before calling
- XF86DGAInstallColormap or it will produce the error XF86DGAScreenNotActive
- or XF86DGADirectNotActivated.
+ XDGAPixmapModeLarge
+
+ The pixmap size is defined by the pixmapWidth and pixmapHeight
+ fields in the XDGAMode structure. The "x" and "y" values are
+ ignored in this case.
+ XDGAPixmapModeSmall
+
+ The pixmap size is defined by the viewportWidth and viewportHeight
+ fields in the XDGAMode structure. In this mode, the "x" and "y"
+ values specify where in the framebuffer this pixmap rectangle
+ is located. It may be placed anywhere within the Xlib renderable
+ region described by the pixmapWidth and pixmapHeight fields in
+ the XDGAMode. The "x" and "y" values returned are the resultant
+ location of the pixmap and may be different from the requested
+ x,y location due to platform specific alignment constraints.
+ All Xlib rendering is clipped to this pixmap rectangle.
- int XF86DGAForkApp(int screen)
- Fork the app, parent process hangs around to return non DGA mode should
- the child exit for any reason. Returns 0, or error returned by fork().
+void XDGASetViewport(
+ Display *dpy,
+ int screen,
+ int x,
+ int y,
+ int flags
+);
+
+ Set the upper left-hand corner of the rectangle of framebuffer
+that is to be displayed on the screen. Not all locations may be
+supported by the hardware and requested locations will be adjusted
+according to the xViewPortStep and yViewPortStep fields in the XDGAMode.
+
+ "flags" can be XDGAFlipRetrace or XDGAFlipImmediate to adjust
+the viewport location at the next vertical retrace or immediately.
+Values other than the supported values advertised in the mode's
+viewportFlags field will result in hardware-specific default behavior.
+XDGAFlipImmediate will block until the flip is completed.
+XDGAFlipRetrace will generally NOT block so it is necessary to
+monitor the viewport status with XDGAGetViewportStatus().
+
+ FlipImmediate requests during pending FlipRetrace requests
+will be ignored.
+
+
+int XDGAGetViewportStatus(
+ Display *dpy,
+ int screen
+);
+
+
+ XDGAGetViewportStatus() keeps track of the XDGASetViewport()
+requests still pending. The return value of the function will
+have consecutive bits set (LSB justified), each bit representing
+a pending viewport change. For example:
+
+ while(XDGAGetViewportStatus(dpy, screen));
+
+ waits for all pending viewport changes to finish.
+
+ while(0x2 & XDGAGetViewportStatus(dpy, screen));
+
+ waits until all but the last viewport changes have completed.
+
+
+Colormap XDGACreateColormap(
+ Display *dpy,
+ int screen,
+ XDGADevice *device,
+ int alloc
+);
+
+void XDGAInstallColormap(
+ Display *dpy,
+ int screen,
+ Colormap cmap
+);
+
+ XDGACreateColormap() is similar to the Xlib function XCreateColormap()
+except that it takes an XDGADevice as an argument instead of a Window
+and Visual. Though XCreateColormap() may create useable colormaps in
+some cases, XDGACreateColormap() is the prefered method for creating
+colormaps in DGA since there may not be an advertised visual compatible
+with the DGA device.
+
+ XDGAInstallColormap() must be used to install colormaps in DGA
+mode. XInstallColormap() will not work.
+
+
+
+void XDGASelectInput(
+ Display *dpy,
+ int screen,
+ long event_mask
+);
+
+ DGA provides its own events. These can be enabled by calling
+XDGASelectInput(). This function is similar to XSelectInput()
+and all Xlib Key, Button and Motion masks are supported.
+
+
+ The following DGA events are defined.
+
+typedef struct {
+ int type; /* ButtonPress or ButtonRelease + the DGA event base*/
+ unsigned long serial; /* # or last request processed by the server */
+ Display *display; /* Display the event was read from */
+ int screen; /* The screen number the event came from */
+ Time time; /* milliseconds */
+ unsigned int state; /* key or button mask */
+ unsigned int button; /* detail */
+} XDGAButtonEvent;
+
+typedef struct {
+ int type; /* KeyPress or KeyRelease + the DGA event base*/
+ unsigned long serial; /* # or last request processed by the server */
+ Display *display; /* Display the event was read from */
+ int screen; /* The screen number the event came from */
+ Time time; /* milliseconds */
+ unsigned int state; /* key or button mask */
+ unsigned int keycode; /* detail */
+} XDGAKeyEvent;
+
+typedef struct {
+ int type; /* MotionNotify + the DGA event base*/
+ unsigned long serial; /* # or last request processed by the server */
+ Display *display; /* Display the event was read from */
+ int screen; /* The screen number the event came from */
+ Time time; /* milliseconds */
+ unsigned int state; /* key or button mask */
+ int dx; /* relative pointer motion */
+ int dy; /* relative pointer motion */
+} XDGAMotionEvent;
+
+
+void
+XDGAKeyEventToXKeyEvent(XDGAKeyEvent* dk, XKeyEvent* xk);
+
+ XDGAKeyEventToXKeyEvent() is a helper function to translate
+XDGAKeyEvents into XKeyEvents suitable for use with XLookupKeysym().
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DGA,v 3.5 1996/10/18 15:03:04 dawes Exp $
+
+void XDGAFillRectangle(
+ Display *dpy,
+ int screen,
+ int x,
+ int y,
+ unsigned int width,
+ unsigned int height,
+ unsigned long color
+);
+
+
+void XDGACopyArea(
+ Display *dpy,
+ int screen,
+ int srcx,
+ int srcy,
+ unsigned int width,
+ unsigned int height,
+ int dstx,
+ int dsty
+);
+
+
+void XDGACopyTransparentArea(
+ Display *dpy,
+ int screen,
+ int srcx,
+ int srcy,
+ unsigned int width,
+ unsigned int height,
+ int dstx,
+ int dsty,
+ unsigned long key /* source pixels of this value will not be copied */
+);
+
+ These three functions are included with some reserveration since
+DGA is not intended as a rendering API. These are merely convience
+routines and are optionally supported. The associated flags will
+be set in the XDGAMode's "flags" field if these functions are supported.
+These functions will be no-ops otherwise.
+
+ These functions do not provide direct access to the hardware,
+but are merely context-less operations performed by the server.
+
+
+void XDGASync(
+ Display *dpy,
+ int screen
+);
+
+ This function blocks until all server rendering to the framebuffer
+completes. If Xlib or the 3 rendering functions above are used, XDGASync()
+must be called before the client directly accesses the framebuffer as
+the server rendering is asynchronous with the client and may have not
+completed. This is especially important if the XDGAConcurrentAccess
+flag is not set in the XDGAMode's "flags" field since concurrent access
+by the server and client may result in a system lockup.
+
+
+
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DGA,v 3.6 2000/03/04 00:58:15 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.DGUX b/xc/programs/Xserver/hw/xfree86/doc/README.DGUX
new file mode 100644
index 000000000..ba22ea0f6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.DGUX
@@ -0,0 +1,695 @@
+ Instructions for Building XFree86 on an Intel Pentium Aviion machine with
+ DG/UX R4.20MU04
+
+ Takis Psarogiannakopoulos
+
+ July 27, 1999
+
+1. Whats new
+
+July 27, 1999
+
+DG has fix the streams bug in /usr/lib/tcpip.so . (Read below) The workaround
+in the July 25 source code has been removed. I've been told from DG that BSD
+sockets perform better in DGUX than SVR4 native STREAMS. From R4.20MU06 DG/UX
+will have the correct tcpip.so lib (no bug in STREAMS). If you have MU05,MU04
+and you want for some reason STREAMS definitely contact DG for an updated
+/usr/lib/tcpip.so in /usr/lib (patch for your MU04,5).
+
+DG/UX at the moment lacks the sysi86 syscall and the definition of SYSI86IOPL
+(that is in <sys/sysi86.h> but guarded by a UNIXWARE defintion that of course
+cannot be applicable to DG/UX). Until this header is accessible by a simple
+-DDGUX , and _sysi86, sysi86 subroutines added to libc (or some other extra
+library) we need to define the DG_NO_SYSI86 to be 1. If DG makes the above
+modifications , you will need to manually edit the files (before building!)
+xc/programs/Xserver/hw/xfree86/SuperProbe/OS_DGUX.c xc/pro-
+grams/Xserver/hw/xfree86/etc/scanpci.c xc/programs/Xserver/hw/xfree86/os-sup-
+port/dgux/dgux_video.c and eliminate DG_NO_SYSI86 flag by changing
+DG_NO_SYSI86 1-->0.
+
+July 25, 1999
+
+A major bug has now been corrected in this release. According to this since
+the STREAMS interface of DG/UX were broken the server was listening not to
+port 6000 (= 0x1770) but to 0x7017. All binaries that you have from 3.3.3.1,
+3.3.3 they will work locally (if you run them in the same machine) but NOT
+remotely because they use an Xlib that tries to connect to port 28365. If
+you want to run them remotely YOU MUST recompile them! Steve thank you for
+bringing this to my attention initially but was too busy then to look at it
+in detail... Perhaps I should have...
+
+We now use sockets instead of ioctls. But I've fix and tested the STREAMS
+also.
+
+David thanks for making me realize that this was indeed a problem in DG/UX.
+
+I've also take the trouble to port gdb-4.17/8 and ddd (X inter) in
+pub/XFree86/3.3.5/binaries/DGUX-ix86/GDB_BETA (both binaries and source code)
+in order to be able to send me traces of core files produced by Xservers. Try
+
+ gdb /usr/X11R6/bin/X location of core/core
+ gdb: where
+
+and send me what you see. (I suppose that the Xserver executable is in
+/usr/X11R6.3/bin)
+
+From 3.3.3.1: Several bugs are now fixed. DG/UX support is on this official
+patch. All configuration is in xc/config/cf/DGUX.cf and in xf86site.def. Also
+Imake autodetects (thanks to David Dawes) the DGUX OS (including Release ver-
+sion). So only a simple "make World" is needed anymore to build in ix86
+DG/UX. Usually the process to build is (after unpacking and patching the
+source "xc" tree) to go to xc/config/cf copy the file xf86site.def to
+site.def and edit the files DGUX.cf ,site.def for whatever changes you need
+to do.
+
+Default ProjectRoot in 3.3.5 is /usr/X11R6 (except if you set this specifi-
+cally in DGUX.cf either as /usr/X11R6.3-- --my choice, or in whatever you
+like).
+
+From: December 1, 1998 IMPORTANT: PLEASE READ THE FILE README-GCC-2.8.1 GCC
+VERSION 2.8.1 is recommended for the DGUX build of X11R6.3 You can ignore
+below the _old_ conversation about gcc compiler if you already run a
+gcc-2.8.1 in your machine.
+
+2. GENERAL:
+
+Get from ftp.xfree86.org the XFree 3.3.x source code:
+
+ ftp ftp.xfree86.org
+ login: ftp
+ passwd: your e-mail address
+ cd pub/XFree86/3.3.5/source
+ You need the files:
+ X335src-1.tgz
+ X335src-2.tgz
+ X335src-3.tgz
+
+Get also the contributed X software
+
+ cd /pub/XFree86/3.3.5/source
+ X335contrib.tgz
+
+If you have the source tarballs of 3.3.3 go to /pub/XFree86/3.3.5/bina-
+ries/DGUX-ix86/SOURCE get the DGUX source patch
+
+ 3.3.3-3.3.5-DGUX.diff.gz
+ X335contrib-DGUX.diff.gz (patch for the contrib software).
+
+to avoid downloading all the source code again.
+
+Sorry some DGUX changes they didn't make in time for the official release
+date of 3.3.4... I do this for free, so some times I may be excused for
+something like this...
+
+To build X11R6.3 you need also the tools for DG/UX (see discussion below).
+They will be in ftp dpmms.cam.ac.uk (University of Cambridge,Department of
+Pure Mathematics) in /pub/takis/DGUX-Tools/BuildXtools.tar.gz (anonymous ftp)
+or in the ftp.xfree86.org ... (pub/XFree86/3.3.5/binaries/DGUX-
+ix86/SOURCE/BUILD-TOOLS/ BuildXtools.tar.gz).
+
+Using a big filesystem (I use a virtual disk "xf86work" mounted on /xf86work
+of size 1400000 blocks) copy the source as:
+
+ cp X335src-1.tgz /xf86work/X335src-1.tar.gz
+ cp X335src-2.tgz /xf86work/X335src-2.tar.gz
+ cp X335src-3.tgz /xf86work/X335src-3.tar.gz
+
+(or X333src-1,2,3.tar.gz as above plus the DG/UX patch to 3.3.5 i.e. the file
+3.3.3-3.3.5-DGUX.diff.gz)
+
+And maybe the contributed software:
+
+ cp X335contrib.tgz /xf86work
+
+ (cp X335contrib-DGUX.diff.gz /xf86work).
+
+If you get the patches from DGUX-ix86, to build from source 3.3.3 your first
+problem is that in order to apply the source patch you need "patch" a very
+common GNU program that DG/UX doesn't have!? This program is in BuildX-
+tools.tar.gz (or ftp prep.ai.mit.edu cd/pub/gnu get patch-2.5.tar.gz) So lets
+speak about these tools before anything else: Using "sysadm" mount a filesys-
+tem usr_local under /usr/local with size 200000 blocks. Then copy the BuildX-
+tools file in /usr and give:
+
+ gzip -d < BuildXtools.tar.gz | tar xvf -
+
+It will unfold in the new filesystem /usr/local. Then go to your ".profile"
+(in your Home dir , mine eg is /admin) and add the /usr/local/bin in your
+path and the /usr/local/lib in your lib-path.
+
+What you need is like that: (vi .profile)
+
+ PATH=/usr/local/bin:/sbin:/usr/sbin:/usr/bin
+ if [ -d /usr/opt/X11/bin ]
+ then
+ PATH=$PATH:/usr/opt/X11/bin
+ fi
+ export PATH
+ (/usr/local/bin is before any other path!)
+
+ LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/ccs/lib
+ export LD_LIBRARY_PATH
+
+then exit and re-login so that your new modified .profile will take effect.
+
+Now do the following:
+
+ cd /usr/sbin
+ cp install install_dg
+ rm install
+ cp /usr/local/bin
+ cp install /usr/bin *(make the GNU install the default install)*
+ (DG/UX install is useless)
+ (Look also the file xc/config/cf/DGUX.cf , below).
+
+ (Or get GNU make-3.77 and copy install.sh (or -sh) to a /usr/bin/install)
+
+ cd /usr/bin
+ cp true /usr/local/bin
+ cd /usr/local/bin
+ ln -s true ranlib (Install true as ranlib in the DG/UX system)
+
+Usually giving -v,-V or --version will give you build info on all the tools
+in /usr/local/bin (try it).
+
+**Look the discussion for gcc before you build (below)**
+
+Now untar the source tree: In /xf86work (or whatever name you gave to the big
+filesystem for the build)
+
+ gzip -d < X335src-1.tar.gz | tar xvf -
+ gzip -d < X335src-2.tar.gz | tar xvf -
+ gzip -d < X335src-3.tar.gz | tar xvf -
+
+(If you have X-3.3.3 do the same for the 3.3.3 sources and then apply the
+3.3.5-DGUX source patch
+
+ gzip -d < 3.3.3-3.3.5-DGUX.diff.gz | patch -p0 -E).
+
+The directory xc in now present in your build filesystem.
+
+3. Configuration for the build:
+
+Almost all you need is in "DGUX.cf" located in xc/config/cf. Edit the file
+DGUX.cf and site.def and change what ever you need. Remember DGUX.cf over-
+writes site.def. The default ProjectRoot for XFree86-3.3.5 is now /usr/X11R6
+(located in site.def). If you want to change this to whatever you like (I
+prefer /usr/X11R6.3 and a link in /usr X11R6->X11R6.3) edit DGUX.cf and
+locate the entry:
+
+ #if 0
+ #define ProjectRoot /usr/X11R6.3
+ #endif
+
+Eliminate the #if 0 , #endif. Then change this to whatever you prefer. (I
+prefer the above for the pre-compiled binaries)
+
+The DG/UX malloc is crap and keeps bringing problems with some X software so
+I don't use it. Instead there is a port of GNU malloc in /usr/local (it came
+with the BuildXtools file). Don't try to build with the /lib/libmalloc.a of
+DG/UX and then send me e-mails that some programs they don't work properly.
+In my build I use tcl8.0 and tk8.0 since the xconfig of R4.20MU03 is report-
+ing incorrect values for the monitors and XF86Setup need to be build in order
+to manage to adjust the display. If you don't have this (or don't want this)
+comment out the lines about tcl,tk, (in DGUX.cf)
+
+ /*******TCL TK DEFINITIONS ***********/
+ #define HasTk YES-->NO
+ ...
+ #define HasTcl YES-->NO
+
+Also 'GNU make' is required for the correct X11R6.3 build. (it is in Buildx-
+tools file). If you decide yes to tcl,tk obtain the files
+
+ tcl8.0.3.tar.gz
+ tk8.0.3.tar.gz (from some ftp)
+
+(or newer versions) and compile them before the building of X11R6.3 (Build
+first tcl8.0.3 then tk8.0.3).
+
+4. DISCUSSION ABOUT GCC
+
+There are so much things that I can say for the system gcc of DG/UX. If I was
+keeping track for the programs that fail using this compiler I will certainly
+have fill a book (conveniently for the DG of course). But my work is not to
+correct bugs for the DG/UX compiler or anything else) , and in particular to
+collect reports for the genius of DG. (DG:Sorry guys nothing personal. I am
+a pure Mathematician , I am doing all this work for pleasure, I don't want
+any money from DG or anybody else , I am not looking to become a employer of
+DG,and I am NOT a trouble shooter of the DG/UX in general. But maybe some
+times if you help I may be able to help you also).
+
+What I wanted to do is to build X11. Thats why you will find in BuildXtools a
+new gcc. This gcc is build for DG/UX R4.20MU02. so you have to upgrade your
+DG/UX OS version to the above. But it is solid to build not only X11 but
+whatever else you want. DO NOT use gcc of DG/UX. If you do I cannot tell you
+anything about any problems that you have. To complete the installation of
+this new gcc do the following:
+
+ cp -r /usr/local/gcc-dgux /usr/opt/sdk/sde/ix86dgux/usr/lib
+ cd /usr/opt/sdk/sde/ix86dgux/usr/lib
+ rm gcc
+ ln -s gcc-dgux gcc (set link gcc--->gcc-dgux)
+
+ cd /usr/local
+ cp -r /usr/local/gcc-dgux /usr/sde/ix86dgux/usr/lib
+ cd /usr/sde/ix86dgux/usr/lib
+ rm gcc
+ ln -s gcc-dgux gcc (set link gcc-->gcc-dgux)
+
+To come back to your old DG/UX gcc just change the above two links gcc-->gcc-
+dgux to gcc-->gcc-2 with the command: (in both the above two dirs)
+
+ rm gcc
+ ln -s gcc-2 gcc
+
+/usr/bin/gcc -v should report the version that you have. To build success-
+fully this version of X11 gcc is a *MUST*.
+
+Dynamic loading Servers: Edit xc/config/cf/DGUX.cf and change the entry
+
+#ifndef BuildDynamicLoading #define BuildDynamicLoading NO --->YES. #endif
+
+Remember when you build you will see lots of errors and the servers will NOT
+build! This is because the dynamic linker doesn't know the locations of the
+newly created R6 libX's. So after the (seem faulty) building do a
+
+make DESTDIR=ProjectRoot/lib install
+
+(look below for install, ProjectRoot the location that you choose in the file
+xc/config/cf/DGUX.cf above)
+
+So that all your new libXR6 libraries will go there. (do a cd Project-
+Root/lib to make sure).
+
+Then go to your home dir and declare the path ProjectRoot/lib dir in you
+LD_LIBRARY_PATH (your profile) as:
+
+LD_LIBRARY_PATH=ProjectRoot/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH
+
+Then relogin!
+
+Now just _rebuild_ A FULL XFree86-3.3.5 with the entry
+
+#define BuildDynamicLoading YES in your DGUX.cf.
+
+This time you will build _all_ XFree86-3.3.5 correctly.
+
+5. BUILD
+
+In the usual X11R5 of DG (mwm) open an xterm and give: (/bin/sh = Bourne
+shell)
+
+ cd xc
+ make World > Build-dg.log
+
+In that way you will get all the error messages in your screen. Don't worry
+with messages about -znodefs.
+
+Note: the old command
+
+ make World BOOTSTRAPCFLAGS="-DDGUX" > Build-dg.log
+
+is no longer needed since imake will detect the DGUX OS (in Version =>
+3.3.3.1) and set up things. However this command will also work.
+
+And in another xterm give cd xc tail -f Build-dg.log to watch the building
+progress.
+
+To install X11R6.3 XFree version 3.3.5 after the build you must have a
+filesystem say usr_X11R6.3 mounted to the directory /usr/X11R6 size 350000
+blocks. (or whatever you choose to be your ProjectRoot, if you modify
+DGUX.cf for another ProjectRoot than the default /usr/X11R6 in site.def).
+Then give
+
+ make install
+ make install.man (install the man pages)
+
+The installation will not put an XF86Config in your /usr/X11R6.3/lib/X11/ and
+so if you give startx the new X11 will not start. Read the file README-
+X3331.DGUX in this ftp site (located in the binaries) about the whole instal-
+lation procedure of X11R6.3. Or quickly you can do: (I remind: DG/UX mouse
+device "/dev/mouse") cd /usr/X11R6.3/bin ln -s XF86_VGA16 X Then put in your
+.profile the path /usr/X11R6.3/bin and run the XF86Setup program. Adjust
+first the mouse device then everything else. (You need to read really the
+file README-DGUX.INSTALL-> look in the end of this file).
+
+To build the contributed software with XFree86-3.3.5 get the X335contrib.tgz
+and do
+
+ gzip -d < X335contrib.tgz | tar xvf -
+
+(Or for 3.3.3 sources unpack X333contrib.tgz and apply the DGUX patch as
+
+ gzip -d < X335contrib-DGUX.diff.gz | patch -p0 -E ).
+
+Please note: You must have already install and active the X11R6.3 that you
+build so that the imake is working properly for your system. Read below for
+how to install this X window system. After that you could do:
+
+ cd contrib
+ xmkmf -a
+ make
+ make install
+ make install.man (for installing the man pages)
+
+6. INSTALLATION OF THE BINARY:
+
+NOTE:This executable has been compiled with the macro -DPENTIUM_CHANGE (that
+all the new Aviion machines support). If you have an old i486 (rather
+unlikely) the executable will NOT RUN correctly. But we haven't use
+-mcpu=pentiumpro, so the executable will work on ALL PENTIUM machines.
+
+ o About Project Root: I choose as ProjectRoot for ix86 DG/UX the location
+ /usr/X11R6.3. The default (in 3.3.5 sources) is the /usr/X11R6. To cover
+ this we make a link in /usr as X11R6->X11R6.3 (read below); so don't
+ forget to do this link. I don't like the location /usr/opt/X11 (default
+ location of DG X11) that some of you have suggested to me, I believe it
+ is a good idea to keep the original X11 as is for several reasons.
+
+ o Make a filesystem,using sysadm, mounted under "/usr/X11R6.3". This is
+ the default location of X11R6.3 , you cannot change this except if you
+ recompile the whole source of X. (Please don't send e-mails about
+ this). The size of this filesystem should be around 175 MB(350000
+ blocks).
+
+ The list of files is:
+
+ X3353DL.tgz 3D_Labs XServer ... etc
+ X3358514.tgz
+ X335AGX.tgz
+ X335I128.tgz
+ X335Ma32.tgz Mach32 Xserver
+ X335Ma64.tgz Mach64 Xserver
+ X335Ma8.tgz
+ X335Mono.tgz
+ X335P9K.tgz
+ X335S3.tgz
+ X335S3V.tgz
+ X335SVGA.tgz SuperVGA Xserver (Supports AV3700 Cirrus)
+ X335VG16.tgz VGA16 Xserver (needed by XF86Setup)
+ X335W32.tgz
+ X335bin.tgz BIN (you must have this)
+ X335cfg.tgz
+ X335doc.tgz
+ X335f100.tgz
+ X335fcyr.tgz
+ X335fnon.tgz
+ X335fnts.tgz
+ X335fscl.tgz
+ X335fsrv.tgz
+ X335lib.tgz LIB (you must have this)
+ X335lkit.tgz Linkkit (X development)
+ X335man.tgz Man pages
+ X335nest.tgz
+ X335prog.tgz
+ X335prt.tgz
+ X335set.tgz
+ X335vfb.tgz
+ preinst.sh Install script
+ extract The XFree86 extract program (for ix86 DG/UX)
+
+ SUMS.md5 Checksums for the integrity of the files
+
+ (Try compile the GNU textutils-1.22.tar.gz from prep.ai.mit.edu
+ /pub/gnu. md5sum is there).
+
+ You need at least:
+
+ X335bin.tgz
+ X335lib.tgz
+
+ And the correct Xserver for your machine/Graphics card. In my opinion
+ take all files , in the future you may need to switch to another graph-
+ ics device etc ... (mget *). Generally it is good to have the full dis-
+ tribution of the X11R6.3 window system ,it should make life easier in
+ DG/UX.
+
+ (Trivial:you must have root privilege).
+
+ o Unpack the *.tgz files in your / so that it will go directly inside to
+ the new filesystem /usr/X11R6.3. After you do that cd /usr and do a link
+ : ln -s X11R6.3 X11R6. (Use the install script). This link will indi-
+ cate in XF86 programs like XF86Setup where the new X11 window system is.
+
+ o cd your home dir and backup your .profile as "cp .profile myprofile".
+ Then cd /usr/X11R6.3. Copy the file HOME.profile-X11R6.3 to your home
+ dir as "cp HOME.profile-X11R6.3 your home dir/.profile" ,then cd your
+ home dir and "chmod 644 .profile" to make sure that the new profile is
+ active. This is because you need to tell to the system to look for the X
+ software in a different location than the usual /usr/bin/X11 of DG/UX.
+ Also you need to tell to the system that the new X libraries are in
+ /usr/X11R6.3/lib.
+
+ **You NEED to re-login in order to make the new .profile active !** **
+ DO NOT GIVE "startx" AFTER THAT, READ Configuration below !**
+
+ o About Configuration: DG/UX has a program (actually a script) called
+ xconfig that makes the configuration for you. Usually when you run xcon-
+ fig in the DG/UX-X11R5 it creates a file XdgConfig in /var/X11/Xserver
+ which is the corresponding of the XF86-configuration file located in
+ /usr/X11R6.3/lib/X11/XF86Config. This file ,in the section monitor, has
+ all values for your monitor. Please Note: Unfortunately in DG/UX
+ R4.20MU02 things change. Instead of going forwards we going backwards...
+ xconfig reports crazy values for my DG-DA1765VA monitor. So if you have
+ a CDROM of DG/UX R4.11MU02,or MU03 use it to find an xconfig that will
+ give you reliable values for your monitor.
+
+ Your best bet is to use XF86Setup for correct adjustments.
+
+ Thats the reason that in this binary there is a minimum tcl,tk(version
+ 8.0). Before you run XF86Setup read the relevant documents found in
+ www.xfree86.org. (Or read below for a hand-made configuration).
+
+ Notice about XF86Setup: You will will see the message "The program is
+ running on a different virtual" "Please switch to the correct virtual
+ terminal"
+
+ DG/UX does NOT have any virtual terminals. But XF86Setup uses a script
+ that doesn't checks for this. So it is printing this message anyway.
+ Ignore it and don't send e-mails asking how to set the virtual terminal!
+ XF86Setup WORKS for SURE (if you use it correctly) to set your configu-
+ ration. Just remember:
+
+ 1. make a link in /usr/X11R6.3/bin: ln -s XF86_VGA16 X
+
+ 2. set mouse device in your XF86Config to /dev/mouse (this the mouse
+ in DGUX)
+
+ 3. set the correct mouse protocol. (usually for a typical AViiON
+ PS/2).
+
+ Or just cd /usr/X11R6.3/lib/X11 and copy XF86Config.eg.dgux to XF86Con-
+ fig (it is for a PS/2 protocol mouse that almost all AViiON's have) ,
+ then run XF86Setup and choose to use this XF86Config file as default (so
+ mouse works).
+
+ Alternatively, you can run xf86config, a non-graphical configuration
+ utility but you will need to enter manually the values for your monitor.
+ If you have the small booklet that came with the monitor they are
+ inside.
+
+ Hand made configuration: I have an DG/UX Medium resolution (1280x1024)
+ 17 inch DG-26059,DA1765VA. ONLY IF YOU HAVE THE ***EXACT SAME*** MONI-
+ TOR USE THE FILE XF86Config_SVGA_DGUX that you will find in
+ /usr/X11R6.3/. IT IS IN YOUR OWN RISK IF YOU DECIDE TO USE THIS FILE
+ WHEN YOU DON'T HAVE THE SAME MONITOR AS MINE. YOU CAN DAMAGE YOUR VIDEO
+ MONITOR OR YOUR GRAPHICS CARD.
+
+ An example of how to use the Accel Servers (eg ATI=XF86_Mach64) is in
+ the file XF86Config_ATI_DGUX. Again remember: I have an DG/UX Medium
+ resolution (1280x1024) 17 inch DG-26059,DA1765VA. ONLY IF YOU HAVE THE
+ ***EXACT SAME*** MONITOR USE THE FILE XF86Config_ATI_DGUX that you will
+ find in /usr/X11R6.3/. IT IS IN YOUR OWN RISK IF YOU DECIDE TO USE THIS
+ FILE WHEN YOU DON'T HAVE THE SAME MONITOR AS MINE. YOU CAN DAMAGE YOUR
+ VIDEO MONITOR.
+
+ Start with the file XF86Config.eg as a prototype. READ the README.Config
+ . In Cirrus chips you need to read the file README.cirrus located in
+ /usr/X11R6.3 There is a problem with the accelerated XAA code ,so you
+ need to try to put the following option in your XF86Config:
+
+ Option "no_mmio" (in Section Screen ,subsection display).
+
+ Look in the XF86Config_SVGA_DGUX to see how this can be done . If this
+ doesn't work (it will probably) try Option "noaccel" or "no_bit-
+ blt".Again READ the file README.cirrus (and README.Config). I suggest
+ to print (in paper) the file XdgConfig and have a look in it. Then it
+ should be quite trivial to figure out what you have to do with the XF86
+ file ie XF86Config in the sections mouse, keyboard, screen ... After
+ you have a correct XF86Config in /usr/X11R6.3/lib/X11 give
+
+ chmod 444 XF86Config.
+
+ Supposing that you have already re-login so that the new .profile is
+ active and you have the correct XF86Config file (as your XdgConfig sug-
+ gest) (DO not forget for a cirrus to put the Option "no_mmio" in section
+ screen !), give startx and the new X11 will start . Remember: You can
+ shut down at any point the Xserver by pressing CONTROL+ALT+BACKSPACE (if
+ something goes wrong). Also Xservers don't produce messages unless to
+ want them to do so. This is because the DG/UX console driver some times
+ causes corruption of the screen if you print text during the startup of
+ the Xserver. If you require messages try in bash shell to give: (bash#
+ )
+
+ X -verbose >& info1 or even
+ X -verbose -verbose >& info2 for more messages.
+
+ Then when the server is up press CONTROL+ALT+BACKSPACE to shutdown the
+ Xserver. File info1 (or info2) have all relevant info about your graph-
+ ics card , display memory etc ... I suggest you do that at least one
+ time before start using the new X11R6.3. Read this info file to see if
+ all ok. If not try change settings in your XF86Config to make thinks
+ correct.
+
+ If you have an ATI Rage II (or RageII+) use the server XF86_Mach64 (make
+ a link link X--->XF86_MACH64, or run xf86config, or use XF86Setup
+ above).
+
+ o If you want to compile programs with the X11R6.3 the headers in
+ /usr/include /X11 pointing to /usr/opt/X11 of DG/UX is a problem . Do:
+
+ a): unmounting the /usr/opt/X11 will prevent the sysadm to use the X
+ graphical interface. But this will be the only thing that you loose.
+ The correct thing to do for X11R6.3 is to delete the filesystem
+ /usr/opt/X11 and make a link /usr/opt/X11--->/usr/X11R6.3 , so that the
+ libraries from dglib and /usr/lib point correctly to the new ones in
+ /usr/X11r6.3/lib. Before you unmount this filesystem you need to do
+ this:
+
+ cd /usr/opt/X11/include
+ cp -r Mrm /usr/X11R6.3/include
+ cp -r uil /usr/X11R6.3/include
+ cp -r Xm /usr/X11R6.3/include
+ cd /usr/X11R6.3/include
+ ln -s uil Uil
+
+ LIBRARIES:
+
+ and cd /usr/opt/X11/lib
+ cp libXm.a /usr/X11R6.3/lib
+
+ and similarly copy the following libraries:
+
+ libX11.so.2, libX11.so.5, libXIM.so.1, libXaw.so.1, libXaw.so.2,
+ libXext.so.2, libXi.so.2, libXimp.so.1, libXm.so.2, libXmu.so.2,
+ libXsess.so.1, libXsi.so.1, libXt.so.2, libXt.so.5.0, libMrm.a,
+ libUil.a, libX11_s, libXR4sco_s
+
+ into /usr/X11R6.3/lib.
+
+ Then cd /usr/X11R6.3/lib and make links:
+
+ ln -s libXm.so.2 libXm.so
+ ln -s libXm.so.2 libXm.so.1
+ ln -s libXm.so.2 libXm.so.5.0
+
+ ln -s libX11.so.5.0 libX11.so.1
+
+ ln -s libXIM.so.1 libXIM.so.5.0
+
+ ln -s libXaw.so.2 libXaw.so.5.0
+
+ ln -s libXext.so.2 libXext.so.5.0
+ ln -s libXext.so.2 libXext.so.1
+
+ ln -s libXi.so.2 libXi.so.1
+ ln -s libXi.so.2 libXi.so.5.0
+
+ ln -s libXimp.so.1 libXimp.so.5.0
+
+ ln -s libXmu.so.2 libXmu.so.5.0
+
+ ln -s libXt.so.2 libXt.so.5.0
+
+ ln -s libXsi.so.1 libXi.so.5.0
+
+ cd /usr/X11R6.3/lib
+ rm libXmu.so (to avoid undefs when building X software)
+
+ Also you need to correct the links in /usr/dglib at least! (the correct
+ thing to do is modify also /usr/lib links to /usr/opt/X11 libs). Try
+
+ cd /usr/
+ tar -cvf dglib-orig.tar dglib
+ gzip dglib-orig.tar
+
+ (to minimize the space dglib-backup takes) then
+
+ cd /usr/dglib
+
+ and delete ALL links to libraries in /usr/opt/X11. Then copy the script
+ create_new_links_in_dglib (found in /usr/X11R6.3 to /usr/dglib and cd
+ /usr/dglib execute script. This will create all new links with the
+ X11R6.3 X window system.
+
+ But remember to do in the end :
+
+ cd /usr/dglib
+ rm *.a (no static libs links in dglib)
+
+ Then unmount (delete) the old X11 by giving "umount /usr/opt/X11".
+
+ NOTE: If you compile programs in the X11R6 make sure that you unmount
+ /usr/opt/X11 or you eliminate the links in /usr/lib to the OLD libX's in
+ /usr/opt/X11/lib. Otherwise gcc will link these old libraries! and the
+ binary will not run correctly. Always after an R6 compilation do "ldd
+ prog" to make sure that the binary loads only R6 version libraries
+ (except maybe the motif library libXm.so.2), --if you don't use the
+ static libXm.a
+
+ b:)
+
+ cd /usr/include
+ tar -cvf old-X11headers.tar X11
+ gzip old-X11headers.tar
+
+ so that you store your old headers in /usr/include.
+
+ Then cd /usr/include/ and delete
+
+ rm -r X11
+ rm Xm
+ rm Mrm
+ rm Uil
+ rm uil
+ Make new links as:
+ cd /usr/include
+ ln -s ../X11R6.3/include/X11 X11
+ ln -s ../X11R6.3/include/uil Uil
+ ln -s ../X11R6.3/include/uil uil
+ ln -s ../X11R6.3/include/Xm Xm
+ ln -s ../X11R6.3/include/Mrm Mrm
+
+7. What is about:
+
+This new X11R6 are not simply an upgrade of the servers to the latest ones.
+It is a new programming platform in your DG/UX system to allow you to import
+all this *FREE* or not software for the X window system. This software will
+not compile in the old (and ugly) X11 of Data General. The imake command
+that is implemented in almost all the (source) software for X11 (free or not)
+will not work with the totally broken "imake" command of /usr/opt/X11 of
+DG/UX.
+
+The imake of DG/UX X11R5 is badly broken: I have seen DG/UX releases
+R4.11,MU01, ...MU04, R420, R4.20MU02 ,R4.20MU03 and nobody bother to look in
+all these releases the imake command...
+
+While until now DG was rather hostile to the prospect of a new X11 in DG/UX
+some new folks there they have turn their interest in X11R6 (XFree86) these
+days. That is good of course because the ultimate target is to make XFree86
+(3.3.5 or whatever version) to run in _their_ DG/UX Unix! I will be able to
+make a much better X11 in DG/UX if I could had some access to DG/UX sources
+(i.e. the original R5 sources , but not only --eg kernel driver sources as
+for example the DG/UX kernel console driver sources).
+
+I have compile almost anything that runs for Linux in DG/UX using this X11.
+In doing this work in XFree86 I would like to express my thanks to David
+Dawes that he help me all the time with several technical questions. Also
+D.T. is one of the people that offer valuable help. Finally I want to
+express my thanks to John H. for enlightening me in some syscall issues.
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DGUX.sgml,v 1.1 2000/02/24 20:43:23 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DGUX,v 1.2 2000/03/01 01:48:04 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.DRI b/xc/programs/Xserver/hw/xfree86/doc/README.DRI
index 85048b17d..468b6ef6d 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.DRI
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.DRI
@@ -1,115 +1,544 @@
-Direct Rendering Infrastructure Alpha release
----------------------------------------------
-
-Patches for the final sample implementation (SI) of Precision Insight's
-Direct Rendering Infrastructure (DRI) have been submitted to XFree86.
-
-
-
-Please direct all comments about this release to glx@xfree86.org.
-
-
-
-
-* What comes with this release?
-
- There are four main parts of this patch:
-
- 1. the client- and server-side DRI,
- 2. a 2D DDX driver for 3Dlabs' GMX2000,
- 3. an OpenGL client side direct rendering driver for the GMX2000, and
- 4. a generic kernel driver for Linux 2.2.x (x <= 10) and Linux 2.3.y (y
- <= 8).
-
- The DRI handles the communication and synchronization between the X
- server, the client driver and the kernel driver.
-
- The 3Dlabs XFree86 DDX driver has been enhanced to support the
- GMX2000. It has also been extended to communicate with and provide
- callbacks for the DRI.
-
- The client driver implements a subset of OpenGL. The subset required
- for id Software's Quake 2 was chosen to demonstrate the capabilities
- of the DRI. This driver communicates with the device by filling DMA
- buffers and sending them to the kernel driver. Note that the Gamma
- chip implements OpenGL 1.1 in hardware, and therefore, does not use
- the Mesa internals at this time. However, support for the majority of
- current generation of 3D hardware devices will require integration
- with Mesa, so an example DRI driver using the Mesa software-only
- pipeline was implemented (and is mostly complete for the alpha
- release).
-
- The generic kernel driver handles the allocation of the DMA buffers,
- distribution of the buffers to the clients, sending the buffers to the
- device, and the management of synchronization between the client
- driver, the X server, and the kernel driver (this includes the device
- lock and a shared memory region). Note that hardware that does not
- support DMA or that does support special synchronization methods will
- only make use of a subset of these capabilities.
-
-* What changed between the alpha release and the sample implementation?
-
- - Dynamic loading of the OpenGL client driver is implemented
- - 3D client death while holding the drawable lock does not cause deadlock
- - The kernel module works with Linux 2.2.x [x <= 10] and 2.3.y [y <= 8]
- - A better authentication mechanism has been implemented
- - XF86Config options for the DRI are supported
-
-* What are the known problems and/or limitations of the sample
- implementation?
-
- Here are other problems that we did not have time to fix for the SI.
- However, we and other open source developers could continue developing
- and extending the DRI in follow-on projects.
-
- - The X server seg faults due to a context switching bug when there
- are 10 or more 3D clients running simultaneously
- - A better DMA buffer queuing algorithm needs to be implemented
- - A device specific shared memory region needs to be added to SAREA
- - The DRI protocol request for the framebuffer layout needs to be
- extended to support FB width and depth information (for 24 vs. 32
- bpp, 8+24 layouts, etc)
- - Direct rendering to a pixmap is not supported
- - A more sophisticated texture management routine is required to
- handle texture swapping efficiently
- - Multi-threaded OpenGL clients are not supported
- - glXCopyContext and glXUseXFont are not supported in the DRI
- - SwapBuffers does not wait on vertical retrace
- - Support wait for vertical retrace in kernel driver
- - Handling overlays is not currently supported
- - Integrate with DBE
- - Completing the software-only Mesa example driver
- - Completing the other OpenGL paths for the GMX2000
- - Support for video modes other than 640x480 in both the GMX2000 2D
- DDX driver and the 3D client driver
- - More than minimal 2D acceleration of the GMX2000 2D DDX driver
- should be implemented
- - Implement finer grained locking scheme in X server to improve
- interactivity
- - Only grab the drawable lock and update the drawable stamp when a 3D
- window is altered
- - The viewport does not scale properly when a 3D window is resized
- - Double buffered 3D windows are not clipped to the screen
- - glXSwapBuffers is not clipped to the client's viewport
- - Only one client is allowed to use texture memory
- - glFinish does not wait until the HW completes processing the
- outstanding DMA buffers
- - Version numbers of the DDX and kernel driver are not verified
- - Make lock available during SIGSTOP
- - Make drmFinish work while holding the device lock
- - Improve /proc/drm
- - Improve documentation
- - Improve example device-specific kernel driver (not used for SI)
-
-* Where can I get more information?
-
- We have made our design and implementation documents available on our
- website:
-
- http://www.precisioninsight.com/piinsights.html
-
- More documentation will be available with the SI release.
-
-* Where should I send comments?
-
- Please send all comments and questions to the glx@xfree86.org list
+ DRI Users Guide
+
+ Precision Insight, Inc.
+
+ 6 March 2000
+
+1. Preamble
+
+1.1 Copyright
+
+Copyright © 2000 by Precision Insight, Inc., Cedar Park, Texas. All Rights
+Reserved.
+
+Permission is granted to make and distribute verbatim copies of this document
+provided the copyright notice and this permission notice are preserved on all
+copies.
+
+1.2 Trademarks
+
+OpenGL is a registered trademark and SGI is a trademark of Silicon Graphics,
+Inc. Unix is a registered trademark of The Open Group. The `X' device and X
+Window System are trademarks of The Open Group. XFree86 is a trademark of
+The XFree86 Project. Linux is a registered trademark of Linus Torvalds.
+Intel is a registered trademark of Intel Corporation. 3Dlabs, GLINT, and
+Oxygen are either registered trademarks or trademarks of 3Dlabs Inc. Ltd.
+3dfx, Voodoo3, Voodoo4, and Voodoo5 are registered trademarks of 3dfx Inter-
+active, Incorporated. All other trademarks mentioned are the property of
+their respective owners.
+
+2. Introduction
+
+With XFree86 4.0 and Precision Insight's Direct Rendering Interface (DRI),
+hardware accelerated 3D graphics can be considered a standard feature on
+Linux workstations. Support for other operating systems, such as FreeBSD, is
+underway.
+
+This document describes how to use the DRI system and troubleshoot problems
+which may occur. Readers should have a basic understanding of Linux, X and
+OpenGL. See the resources section at the end for more documentation and
+software downloads.
+
+This document does not cover compilation or installation of XFree86 4.0; it
+is assumed that you've already installed a Linux distribution which includes
+XFree86 4.0.
+
+3. Supported Hardware
+
+3D acceleration is currently only available for systems with Intel-compatible
+CPUs. Support for Alpha, and perhaps other CPUs, should be available in the
+future.
+
+XFree86 4.0 includes 3D acceleration for the following graphics hardware:
+
+ o 3dfx:
+
+ o Voodoo3 3500 TV
+
+ o Voodoo3 3000 AGP
+
+ o Voodoo3 3000 PCI
+
+ o Voodoo3 2000 AGP
+
+ o Voodoo3 2000 PCI
+
+ o Voodoo Banshee
+
+ o Velocity 100/200
+
+ There are many configurations of 3dfx cards on the market. Not all have
+ been tested.
+
+ o 3Dlabs Oxygen GMX 2000 (MX/Gamma based)
+
+Support for the following hardware is underway:
+
+ o Intel i810
+
+ o Matrox G400
+
+ o ATI Rage 128
+
+ o 3dfx Voodoo4 and Voodoo5 series
+
+4. Prerequisite Software
+
+ o XFree86 4.0
+
+ o Linux kernel 2.2.x (later kernels will be supported in the near future,
+ and may be required for some chipsets)
+
+Mesa 3.3 (beta) is included with XFree86 4.0; there is no need to download
+the stand-alone Mesa distribution.
+
+5. X Server Start-up
+
+This section describes the steps needed to start the X server with 3D accel-
+eration support.
+
+5.1 Kernel module
+
+Before starting the X server you must install the correct kernel module for
+your hardware.
+
+This can be done by executing the following as root:
+
+ insmod XXX/drivername.o
+
+For example, on 3dfx hardware, the kernel module is called tdfx.o so you you
+would type insmod XXX/tdfx.o
+
+Verify that the kernel module was installed by checking that /proc/dri/0
+exists.
+
+5.2 XF86Config file
+
+First, the XF86Config file must load the GLX and DRI modules:
+
+ Section "Module"
+ ...
+ # This loads the GLX module
+ Load "glx"
+ # This loads the DRI module
+ Load "dri"
+ EndSection
+
+Next, the DRI section can be used to restrict access to direct rendering.
+
+If you want all of the users on your system to be able to use direct-render-
+ing, then use a simple DRI section:
+
+ Section "DRI"
+ Mode 0666
+ EndSection
+
+This section will allow any user with a current connection to the X server to
+use direct rendering.
+
+If you want to restrict the use of direct-rendering to a certain group of
+users, then create a group for those users by editing the /etc/group file on
+your system. For example, you may want to create a group called xf86dri and
+place two users (e.g., fred and jane) in that group. To do that, you might
+add the following line to /etc/group:
+
+ xf86dri:x:8000:fred,jane
+
+You have to be careful that the group id (8000 in this example) is unique.
+
+Then you would use the following DRI section:
+
+ Section "DRI"
+ Group "xf86dri"
+ Mode 0660
+ EndSection
+
+This would limit access to direct-rendering to those users in the xf86dri
+group (fred and jane in this example). When other users tried to use direct
+rendering, they would fall back to unaccelerated indirect rendering.
+
+[Note that there is a known bug in XFree86 4.0 that prevents some changes to
+the DRI section from taking effect. Until this bug is fixed, if you change
+the DRI section, please also remove the /dev/dri directory with the rm -rf
+/dev/dri command.]
+
+Next, the Device section of the XF86Config file must describe your particular
+hardware. For example, here's the Device section for a 3dfx Voodoo3 card:
+
+ Section "Device"
+ Identifier "Voodoo3"
+ VendorName "3dfx"
+ Driver "tdfx"
+ EndSection
+
+Finally, the Screen section of the XF86Config file may have to be specially
+configured as well. For example, Voodoo3 hardware acceleration is only
+available in 16bpp mode.
+
+ Section "Screen"
+ Identifier "Screen 1"
+ Device "Voodoo3"
+ Monitor "High Res Monitor"
+ DefaultDepth 16
+ Subsection "Display"
+ Depth 16
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ EndSection
+
+If there are errors in the XF86Config file, the X server will log errors to
+the file /var/log/XFree86.0.log
+
+5.3 Memory usage
+
+Using the 3D features of a graphics card requires more memory than when it's
+just used as a 2D device. Double buffering, depth buffering, stencil
+buffers, textures, etc. all require extra graphics memory. These features
+may require four times the memory used for a simple 2D display.
+
+If your graphics card doesn't have a lot of memory (less than 16MB, for exam-
+ple), you may have to reduce your screen size and/or color depth in order to
+use 3D features.
+
+The documentation included with your card should have information about maxi-
+mum screen size when using 3D.
+
+6. Using 3D Acceleration
+
+This section describes how to link your application with libGL.so and verify
+that you are in fact using 3D acceleration.
+
+6.1 libGL.so
+
+Your OpenGL program must link with the libGL.so.1.2 library provided by
+XFree86 4.0. The libGL.so.1.2 library contains a GLX protocol encoder for
+indirect/remote rendering and DRI code for accessing hardware drivers. In
+particular, be sure you're not using libGL.so from another source such as
+Mesa or the Utah GLX project.
+
+Unless it was built in a special way, the libGL.so library does not contain
+any 3D hardware driver code. Instead, libGL.so dynamically loads the appro-
+priate 3D driver during initialization.
+
+Most simple OpenGL programs also use the GLUT and GLU libraries. A source
+for these libraries is listed in the Resources section below.
+
+6.2 Compiling and linking an OpenGL program
+
+A simple GLUT/OpenGL program may be compiled and linked as follows:
+
+ gcc program.c -I/usr/local/include -L/usr/local/lib -L/usr/X11R6/lib -lglut -lGLU -lGL -o program
+
+The -I option is used to specify where the GL/glut.h (and possibly the
+GL/gl.h and GL/glu.h) header file may be found.
+
+The -L options specify where the libglut.so, libGLU.so and X libraries are
+located.
+
+The -lglut -lGLU -lGL arguments specify that the application should link with
+the GLUT, GLU and GL libraries.
+
+6.3 Running your OpenGL program
+
+Simply typing ./program in your shell should execute the program.
+
+If you get an error message such as
+
+ gears: error in loading shared libraries: libGL.so.1: cannot
+ open shared object file: No such file or directory
+
+if means that the libGL.so.1 file is not the right location. Proceed to the
+trouble shooting section.
+
+6.4 glxinfo
+
+glxinfo is a useful program for checking which version of libGL you're using
+as well as which DRI-based driver. Simply type glxinfo and examine the
+OpenGL vendor, renderer, and version lines. Among the output you should see
+something like this:
+
+ OpenGL vendor string: Precision Insight, Inc.
+ OpenGL renderer string: Mesa DRI Voodoo3 20000224
+ OpenGL version string: 1.2 Mesa 3.3 beta
+
+or this:
+
+ OpenGL vendor string: Precision Insight, Inc.
+ OpenGL renderer string: Mesa GLX Indirect
+ OpenGL version string: 1.2 Mesa 3.3 beta
+
+The first example indicates that the 3dfx driver is using Voodoo3 hardware.
+The second example indicates that no hardware driver was found and indirect,
+unaccelerated rendering is being used.
+
+If you see that indirect rendering is being used when direct rendering was
+expected, proceed to the troubleshooting section.
+
+glxinfo also lists all of the GLX-enhanced visuals available. Here you can
+determine which visuals may have depth buffers, stencil buffers, accumulation
+buffers, etc.
+
+6.5 Environment Variables
+
+The libGL.so library recognizes three environment variables. Normally, none
+of them need to be defined. If you're using the csh or tcsh shells, type
+setenv VARNAME value to set the variable. Otherwise, if you're using sh or
+bash, type export VARNAME=value.
+
+ 1. LIBGL_DEBUG, if defined will cause libGL.so to print error and diagnos-
+ tic messages. This can help to solve problems.
+
+ 2. LIBGL_ALWAYS_INDIRECT, if defined this will force libGL.so to always
+ use indirect rendering instead of hardware acceleration. This can be
+ useful to isolate rendering errors.
+
+ 3. LIBGL_DRIVERS_DIR can be used to override the default directory which
+ is searched for 3D drivers. In a typical XFree86 installation, the 3D
+ drivers should be in /usr/X11R6/lib/modules/dri/. This environment
+ variable can be used to specify a different directory. Note that this
+ feature is disabled for set-uid programs.
+
+Mesa-based drivers (this includes most of the drivers listed above) also
+observe many of the existing Mesa environment variables. These include the
+MESA_DEBUG and MESA_INFO variables.
+
+7. General Trouble Shooting
+
+This section contains information to help you diagnose general problems. See
+below for additional information for specific hardware.
+
+7.1 Starting the X server
+
+ 1. Before you start the X server, verify the appropriate 3D kernel module
+ is installed. Type lsmod and look for the appropriate kernel module.
+ For 3dfx hardware you should see tdfx, for example.
+
+ 2. Verify you're running XFree86 4.0 and not an older version. If you run
+ xdpyinfo and look for the following line near the top:
+
+ vendor release number: 4000
+
+ 3. Verify that your XF86Config file (usually found at /etc/X11/XF86Config)
+ loads the glx and dri modules and has a DRI section.
+
+ See the Software Resources section below for sample XF86Config files.
+
+ 4. Examine the messages printed during X server startup and check that the
+ DRM module loaded. Using the Voodoo3 as an example:
+
+ (==) TDFX(0): Write-combining range (0xf0000000,0x2000000)
+ (II) TDFX(0): Textures Memory 7.93 MB
+ (0): [drm] created "tdfx" driver at busid "PCI:1:0:0"
+ (0): [drm] added 4096 byte SAREA at 0xc65dd000
+ (0): [drm] mapped SAREA 0xc65dd000 to 0x40013000
+ (0): [drm] framebuffer handle = 0xf0000000
+ (0): [drm] added 1 reserved context for kernel
+ (II) TDFX(0): [drm] Registers = 0xfc000000
+ (II) TDFX(0): visual configs initialized
+ (II) TDFX(0): Using XFree86 Acceleration Architecture (XAA)
+ Screen to screen bit blits
+ Solid filled rectangles
+ 8x8 mono pattern filled rectangles
+ Indirect CPU to Screen color expansion
+ Solid Lines
+ Dashed Lines
+ Offscreen Pixmaps
+ Driver provided NonTEGlyphRenderer replacement
+ Setting up tile and stipple cache:
+ 10 128x128 slots
+ (==) TDFX(0): Backing store disabled
+ (==) TDFX(0): Silken mouse enabled
+ (0): X context handle = 0x00000001
+ (0): [drm] installed DRM signal handler
+ (0): [DRI] installation complete
+ (II) TDFX(0): direct rendering enabled
+
+ 5. After the X server has started, verify that the required X server
+ extensions are loaded. Run xdpyinfo and look for the following entries
+ in the extensions list:
+
+ GLX
+ SGI-GLX
+ XFree86-DRI
+
+7.2 Linking, running and verifying 3D acceleration
+
+After you've verified that the X server and DRI have started correctly it's
+time to verify that the GL library and hardware drivers are working cor-
+rectly.
+
+ 1. Verify that you're using the correct libGL.so library with ldd. The
+ /usr/lib and /usr/X11R6/lib directories are expected locations for
+ libGL.so.
+
+ Example:
+
+ % ldd /usr/local/bin/glxinfo
+ libglut.so.3 => /usr/local/lib/libglut.so.3 (0x40019000)
+ libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x40051000)
+ libGL.so.1 => /usr/lib/libGL.so.1 (0x40076000)
+ libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x402ee000)
+ libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40301000)
+ libm.so.6 => /lib/libm.so.6 (0x40309000)
+ libc.so.6 => /lib/libc.so.6 (0x40325000)
+ libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40419000)
+ libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404bd000)
+ libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40509000)
+ libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40512000)
+ libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40529000)
+ libvga.so.1 => /usr/lib/libvga.so.1 (0x40537000)
+ libpthread.so.0 => /lib/libpthread.so.0 (0x4057d000)
+ /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
+
+ 2. You may also double check that libGL.so is in fact DRI-capable. Run
+ strings libGL.so.1.2 | grep DRI and look for symbols prefixed with
+ "XF86DRI", such as "XF86DRIQueryExtension".
+
+ 3. To be safe one should run ldconfig after installing libGL.so to be sure
+ the runtime loader will find the proper library.
+
+ 4. Verify that the appropriate 3D driver is in /usr/X11R6/lib/modules/dri/
+ For example, the 3dfx driver will be named tdfx_dri.so.
+
+ 5. Set the LIBGL_DEBUG environment variable. This will cause libGL.so to
+ print an error message if it fails to load a DRI driver. Any error
+ message printed should be self-explanatory.
+
+ 6. Run glxinfo. Note the line labeled "OpenGL renderer string". It
+ should have a value which starts with "Mesa DRI" followed by the name
+ of your hardware.
+
+ 7. Older Linux OpenGL applications may have been linked against Mesa's GL
+ library and will not automatically use libGL.so. In some cases, making
+ symbolic links from the Mesa GL library to libGL.so.1 will solve the
+ problem:
+
+ ln -s libGL.so.1 libMesaGL.so.3
+
+ In other cases, the application will have to be relinked against the
+ new XFree86 libGL.so.
+
+ It is reported that part of the problem is that running ldconfig will
+ silently rewrite symbolic links based on the SONAME field in libraries.
+
+If you're still having trouble, look in the next section for information spe-
+cific to your graphics card.
+
+8. Hardware-Specific Information and Troubleshooting
+
+This section presents hardware-specific information for normal use and trou-
+bleshooting.
+
+8.1 3dfx Voodoo3
+
+8.1.1 Troubleshooting
+
+ o 3D acceleration for Voodoo3 is only supported in the 16 bit/pixel screen
+ mode. Use xdpyinfo to verify that all your visuals are depth 16. Edit
+ your XF86Config file if needed.
+
+8.1.2 Performance
+
+ o Normally, buffer swapping in double-buffered applications is synchro-
+ nized to your monitor's refresh rate. This may be overridden by setting
+ the FX_GLIDE_SWAPINTERNVAL environment variable. The value of this
+ variable indicates the maximum number of swap buffer commands can be
+ buffered. Zero allows maximum frame rate.
+
+ o The glTexEnv mode GL_BLEND is not directly supported by the 3dfx hard-
+ ware. It can be accomplished with a multipass algorithm but it's not
+ implemented at this time. Applications which use that mode, such as the
+ Performer Town demo, may become sluggish when falling back to software
+ rendering to render in that mode.
+
+8.1.3 Known Problems
+
+ o SSystem has problems because of poorly set near and far clipping planes.
+ The office.unc Performer model also suffers from this problem.
+
+8.2 Intel i810
+
+8.3 Matrox G400
+
+8.4 ATI Rage 128
+
+8.5 3DLabs Oxygen GMX 2000
+
+The driver for this hardware was experimental and is no longer being devel-
+oped or supported.
+
+9. Limitations and Known Bugs
+
+9.1 OpenGL
+
+The following OpenGL features are not supported at this time: overlays,
+stereo, hardware-accelerated indirect rendering.
+
+OpenGL-like functionality is provided with the Mesa library. XFree86 4.0
+uses a beta version Mesa 3.3. When newer versions of Mesa are available, the
+3D drivers can be updated without reinstalling XFree86 or libGL.so.
+
+9.2 GLX
+
+The GLX 1.3 API is exported but none of the new 1.3 functions are opera-
+tional.
+
+The new glXGetProcAddressARB function is fully supported.
+
+9.3 Signal Handling
+
+There are several understood, but unresolved problems relating to hardware
+locking and signal handling. Hitting CTRL-z to suspend a 3D application can
+sometimes cause the X server to lock-up if executing device driver code at
+that moment. Also, using a debugger to step through OpenGL/Mesa device
+driver functions code could cause a lock-up. These problems will be fixed in
+the future.
+
+9.4 Scheduling
+
+When you run multiple GL applications at once you may notice poor time slic-
+ing. This is due to an interaction problem with the Linux scheduler which
+will be addressed in the future.
+
+9.5 Bug Database
+
+The DRI bug database which includes bugs related to specific drivers is at
+the SourceForge DRI Bug Database
+
+Please scan both the open and closed bug lists to determine if your problem
+has already been reported and perhaps fixed.
+
+10. Resources
+
+10.1 Software
+
+A collection of useful configuration files, libraries, headers, utilities and
+demo programs is available from http://dri.source-
+forge.net/resources/resources.html
+
+10.2 Documentation
+
+ o General OpenGL information is available at the OpenGL Home Page
+
+ o XFree86 information is available at the XFree86 Home Page
+
+ o Information about the design of the DRI is available from Precision
+ Insight, Inc.
+
+ o Visit the DRI project on SourceForge.net for the latest development news
+ about the DRI and 3D drivers.
+
+10.3 Support
+
+ o The DRI-users mailing list at SourceForge is a forum for people to dis-
+ cuss DRI problems.
+
+ o XXX IHV support?
+
+ o XXX Linux distro support?
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml,v 1.3 2000/03/08 05:38:41 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DRI,v 1.4 2000/03/08 20:39:22 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD b/xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD
index 8bc2bd2c5..f7c6d1ecd 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD
@@ -298,4 +298,4 @@ Many thanks to:
$XConsortium: FreeBSD.sgml /main/12 1996/10/28 05:43:08 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD,v 1.5 2000/02/21 22:44:21 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.FreeBSD,v 1.6 2000/03/01 01:48:05 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.I128 b/xc/programs/Xserver/hw/xfree86/doc/README.I128
index a98ac4725..ba2627684 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.I128
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.I128
@@ -92,4 +92,4 @@ and special help from:
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/I128.sgml,v 1.3 1999/08/28 10:43:32 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.I128,v 1.5 2000/02/21 22:44:22 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.I128,v 1.6 2000/03/01 01:48:05 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.Linux b/xc/programs/Xserver/hw/xfree86/doc/README.Linux
index 1693e5838..de8849c1a 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.Linux
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.Linux
@@ -125,4 +125,4 @@ systems.
$XConsortium: Linux.sgml /main/6 1996/10/28 04:47:37 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Linux,v 3.25 2000/02/21 22:44:22 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Linux,v 3.26 2000/03/01 01:48:05 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.LynxOS b/xc/programs/Xserver/hw/xfree86/doc/README.LynxOS
index 9b40b504e..dd52cc624 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.LynxOS
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.LynxOS
@@ -1,54 +1,50 @@
- README for XFree86 on LynxOS
+ README for XFree86 4.0 on LynxOS
Thomas Mueller
- Last modified on: 30 May 1999
+ 25 February 2000
1. What and Where is XFree86?
-XFree86 is a port of X11R6.3 that supports several versions of Intel-based
+XFree86 is a port of X11R6.4 that supports several versions of Intel-based
Unix. It is derived from X386 1.2, which was the X server distributed with
X11R5. This release consists of many new features and performance improve-
-ments as well as many bug fixes. The release is available as source patches
-against the X Consortium X11R6.3 code, as well as binary distributions for
-many architectures.
+ments as well as many bug fixes.
-See the Copyright Notice in Copyright Notice.
+See the Copyright Notice.
-The sources for XFree86 are available by anonymous ftp from:
+The sources for XFree86 4.0 are available by anonymous ftp from:
-ftp://ftp.XFree86.org/pub/XFree86/current
+ftp://ftp.XFree86.org/pub/XFree86/4.0
-Binaries of XFree86 for LynxOS AT are available from:
+Binaries of XFree86 for LynxOS x86 are available from:
-ftp://ftp.XFree86.org/pub/XFree86/current/binaries/LynxOS
+ftp://ftp.XFree86.org/pub/XFree86/4.0/binaries/LynxOS
-The binaries were built on `LynxOS x86 3.0.1'. Because of changes made to the
-object format they don't run on LynxOS versions earlier than 3.0.0.
+A list of mirror sites is provided by ftp://ftp.XFree86.org/pub/XFree86/MIR-
+RORS
+
+The binaries on the FTP site were built on the latest released LynxOS version
+at the time XFree86 4.0 was released. In this case it is `LynxOS x86 3.0.1'.
+Because of changes made to the object format they don't run on LynxOS ver-
+sions earlier than 3.0.0.
Building of this XFree86 version has never been tested on LynxOS versions
-earlier than 2.4.0. Binaries built on LynxOS 2.4.0 are expected to run on
-2.3.0 as well.
+earlier than 2.5.1.
-XFree86 supports LynxOS on the AT, on the microSPARC and on the PowerPC plat-
-form. X servers are currently available on the AT and microSPARC platform.
-Refer to section Building on microSPARC and PowerPC (section 7., page 1) for
-details on XFree86 on the non-AT platforms.
+XFree86 4.0 supports LynxOS on the x86 and on the PowerPC platform. X servers
+are currently available only on the x86 platform. The X server may work with
+some PowerPC platforms supported by LynxOS though this has not (yet) been
+thoroughly tested.
If you need binaries for other platforms than the one on the XFree86 FTP
-server contact me (tmueller@sysgo.de).
-
-Send email to tmueller@sysgo.de (Thomas Mueller) or XFree86@XFree86.org if
-you have comments or suggestions about this file and we'll revise it.
+server or if you have comments or suggestions about this document contact me
+(<tmueller@sysgo.de>).
2. Installing the Binaries
-Please refer to section "Installing the XFree86 3.3.4 Release" of the Release
-Notes for detailed installation instructions.
-
-If you plan to install XF86Setup you'll have to install X333prog as well
-since XF86Setup checks for the existence of a certain file name pattern which
-is satisfied only if you install the library files from X333prog.
+Please refer to the Installation Document for detailed installation instruc-
+tions.
It may be necessary to increase the process stack limit in order to run
XFree86 on your system. Edit /etc/startab and reboot your system to make the
@@ -60,96 +56,91 @@ Refer to the next section Running XFree86 (section 3., page 1) for further
information on necessary configuration steps before running XFree86 on
LynxOS.
+2.1 Accessing XFree86 manual pages
+
+Include /usr/X11R6/man in the MANPATH environment variable or add the direc-
+tory /usr/X11R6/man to /usr/Lib/man.config
+
3. Running XFree86
This section describes the changes to the LynxOS environment which may be
necessary to successfully run XFree86.
-Read Quick-Start Guide to XFree86 Setup to learn more about how to configure
-XFree86 for your hardware.
-
-3.1 System requirements
-
-A minimum of 16MB of memory is required to run X. If you want to run real-
-world applications you should think of upgrading to 32MB (or more).
-
-3.2 System tuning
+3.1 System tuning
-3.2.1 Tunable parameters
+3.1.1 Tunable parameters
To reasonably run XFree86 you may have to adjust a few system parameters.
On LynxOS 2.5.x and 3.0.x include a line
- #define X_WINDOWS
+ #define X_WINDOWS
in /sys/lynx.os/uparam.h.
-For earlier versions you'll have to edit /usr/include/param.h:
+3.1.2 Adjustment for "nv" driver for NVidia graphics cards
- Tunable Old New
- USR_NFDS number of open files per process 20 64
- NPROC number of tasks 50 150
- NFILES number of open files in system 100 250
- NINODES number of incore inodes (same value as NFILES)
- QUANTUM clock ticks until preemption 64 20
- CACHEBLKS number of cache memory blocks 202 >= 4096
+If you're using the "nv" driver (Riva 128, nVidia TNT, TNT2, GeForce), you
+will have to increase the value of the SMEMS parameter in
+/sys/lynx.os/uparam.h from 10 to 20.
-The new values are those suggested by the LynxOS documentation for their X
-Window package.
+3.1.3 Increase number of ptys
-3.2.2 Adjustment for Riva 128 and Riva TNT driver>
+You should also increase the number of ptys to be able run a couple more
+xterms. You may replace /sys/cfg/pty.cfg with /usr/X11R6/lib/X11/etc/pty.cfg.
-If you're using the nVidia driver (Riva 128, TNT, TNT2) of the SVGA server,
-you will have to increase the value of the SMEMS parameter in
-/sys/lynx.os/uparam.h from 10 to 20."
+3.1.4 MTRR device driver
-3.2.3 Increase number of ptys
+If you're using an Intel PentiumPRO or Pentium II (or higher) class CPU you
+might want to install the MTRR device driver. This driver enables the XFree86
+X server to manipulate the CPU memory type range registers which may improve
+performance on certain systems.
-You should also increase the number of ptys to be able run a couple more
-xterms. You may replace /sys/lynx.os/pty.cfg with
-/usr/X11R6/lib/X11/etc/pty.cfg.
+To install the driver (on LynxOS x86 2.5.0 systems an higher) follow these
+steps:
+
+ # cd /
+ # bash /usr/X11R6/lib/X11/etc/MTRR-Lynx.shar
+ # cd sys/drivers/mtrr
+ # make install
+
+Then add a line
-3.2.4 Kernel build
+ I:../drivers/mtrr/mtrr.cfg
-If you plan to use PS/2 or Bus mice refer to the following section before
-rebuilding the kernel, if not, you should rebuild the kernel now:
+to /sys/lynx.os/CONFIG.TBL and rebuild the kernel (see next section).
+
+3.1.5 Kernel build
+
+If you plan to use a PS/2 mouse to the following sections before rebuilding
+the kernel, if not, you should rebuild the kernel now:
# cd /sys/lynx.os
# make install
# reboot -N
-3.3 Mouse support in XFree86
+3.2 Mouse support in XFree86
XFree86 includes support for PnP mice (see also Mouse Support in XFree86).
The current LynxOS TTY device driver doesn't allow the necessary manipulation
of the RTS line and therefore the support for PnP mice has been disabled for
LynxOS.
-3.4 Bus mouse drivers
-
-Starting with LynxOS AT 2.4.0 LynxOS includes a PS/2 mouse driver. Currently
-this driver is not fully supported by XFree86 (you'll probably have to spec-
-ify the mouse type as Microsoft regardless of real mouse type and in some
-cases you won't have all mouse buttons supported).
-/usr/X11R6/lib/X11/etc/BM-Lynx.shar contains a LynxOS port of the Linux bus
-mouse drivers. To install the drivers unpack the shar archive
+3.3 PS/2 mouse drivers
- # cd /
- # bash /usr/X11R6/lib/X11/etc/BM-Lynx.shar
+LynxOS x86 comes with a PS/2 mouse driver. If it is not currently installed
+on your system install it with /usr/bin/Install.ps2mouse. Older versions of
+this driver contained code to translate the PS/2 mouse protocol to the format
+of a serial mouse, thus you'll have to specify "Microsoft" as the mouse pro-
+tocol format. The mouse driver contained in LynxOS x86 patchlevel 015 (and
+higher) does no longer perform the protocol translation an therefore can be
+defined as "PS/2" protocol format.
-and follow the notes in /BMOUSE.Readme for further installation and configu-
-ration notes.
+3.4 ATC console driver and VT switching
-The XFree86 PS/2 mouse driver works also with MetroLink X 2.3.3.1 as shipped
-with LynxOS AT 2.4.0 unless you have the LynxOS patch 000055-00 installed.
-
-3.5 ATC console driver and VT switching
-
-The XFree86 servers will only run with the default LynxOS console driver,
-sorry for those of you who use the alternative vdt console driver. Currently
-there is no support for virtual terminal switching once the server has
-started.
+Currently there is no support for virtual terminal switching once the server
+has started. Support for this feature may be added in future versions (it
+requires a patch to the vt100 LynxOS terminal driver).
You will need a free console which the X server will use for keyboard input.
You must disable login on at least one of the four virtual terminals in
@@ -164,253 +155,69 @@ to
/dev/atc3:0:default:vt100at:/bin/login
^
-3.6 X Server debug diagnostics output and other VT peculiarities
+3.5 X Server debug diagnostics output and other VT peculiarities
-The XFree86 X servers will produce a lot of diagnostics output on stderr dur-
-ing startup. This output will be lost after the server reached a certain
-point in its console initialization process. You should redirect stdout and
-stderr if you want to analyze the diagnostics produced by the server.
+Output made by the XFree86 X on its stdout or stderr will be lost after the
+server switches to graphics mode. The XFree86 4.0 server stores its output in
+/usr/adm/XFree86.n.log (where n is the screen number).
When the X server is running output made to other consoles will be lost.
After server shutdown the screen contents of other consoles may be inconsis-
tent with what one would expect (i.e. random).
-4. Installing XFree86 manual pages
-
-LynxOS uses cat-able manual pages, and because a doc preparation system is
-definitely not a vital component of a real-time operating system you must
-first install groff-1.09 (or newer). Starting with LynxOS 2.3.0 it should
-compile right out of the box (or better tar archive).
-
-XFree86 manual pages may be installed using
-
- make install.man
-
-The index and whatis database for the XFree86 manual pages will be created
-automatically. If you already have a whatis database or index file in the
-destination directories you should perform a sort/uniq operation to remove
-duplicate entries:
-
- for i in 1 3 5
- do
- rm -f /tmp/tmpfile
- sort /usr/X11R6/man/cat$i/LIST$i | uniq > /tmp/tmpfile
- mv /tmp/tmpfile /usr/X11R6/man/cat$i/LIST$i
- done
- sort /usr/X11R6/man/whatis | uniq > /tmp/tmpfile
- mv /tmp/tmpfile /usr/X11R6/man/whatis
-
-With LynxOS 2.3.0 you should include /usr/X11R6/man in the MANPATH environ-
-ment variable.
-
- bash: MANPATH=$MANPATH:/usr/X11R6/man
-
-The man command of LynxOS 2.2.1 does not support the MANPATH environment
-variable properly. The XFree86 manual pages must be copied (or linked) to the
-standard manual page locations (/usr/man/catx) in order to be read the man
-command:
-
- for i in 1 3 5
- do
- ln -s /usr/X11R6/man/cat$i/*.* /usr/man/cat$i
- cat /usr/X11R6/man/cat$i/LIST$i >> /usr/man/cat$i/LIST$i
- sort -o /usr/man/cat$i/LIST$i /usr/man/cat$i/LIST$i
- cat /usr/X11R6/man/cat$i/whatis$i >> /usr/man/whatis
- done
-
-5. Using XFree86 with Motif
-
-The Motif libraries shipped with LynxOS AT 2.3.0 and 2.4.0 can be used with
-the XFree86 libraries. Follow the steps outlined below after you have
-installed XFree86 and LynxOS Motif on your system.
-
-5.1 Copy Motif files
-
-You must create symbolic links for the Motif libraries and utilities in the
-/usr/X11R6 directory tree.
-
- ln -s /usr/bin/X11/uil /usr/X11R6/bin
- ln -s /usr/lib/libUil.a /usr/X11R6/lib
- ln -s /usr/lib/libMrm.a /usr/X11R6/lib
- ln -s /usr/lib/libXm.a /usr/X11R6/lib
- ln -s /usr/lib/X11/uid /usr/X11R6/lib/X11
- ln -s /usr/include/Xm /usr/X11R6/include
- ln -s /usr/include/Mrm /usr/X11R6/include
- ln -s /usr/include/uil /usr/X11R6/include
-
-The Motif imake-configuration files are part of the LynxOS X Window package.
-They must be copied to the /usr/X11R6 directory tree.
-
- cp /usr/lib/X11/config/Motif.* /usr/X11R6/lib/X11/config
-
-5.2 Motif library patch for LynxOS AT 2.3.0
-
-The XFree86 libraries are compiled with the -mposix compiler option while the
-Motif libraries shipped with LynxOS AT 2.3.0 are not. This incompatibility
-will cause Motif XmFileSelection widgets to be linked with the wrong (i.e.
-POSIX) directory routines. To circumvent this problem apply the following
-patch to the library:
-
- cp /usr/lib/libXm.a /usr/X11R6/lib
- ar x /usr/X11R6/lib/libXm.a Xmos.o
- ar x /lib/libc.a directory.s.o
- ld -r -o x.o Xmos.o directory.s.o
- mv x.o Xmos.o
- ar r /usr/X11R6/lib/libXm.a Xmos.o
-
-This patch is not necessary for LynxOS revisions after 2.3.0.
-
-5.3 X11R6 config file patch
-
-Edit /usr/X11R6/lib/X11/config/lynx.cf and change the definition of HasMotif
-from
-
- #define HasMotif NO
-
-to
-
- #define HasMotif YES
-
-5.4 Motif config file patch
-
-The file Motif.tmpl shipped with LynxOS Motif must be modified to work with
-XFree86. In every reference to UnsharedLibReferences the first argument must
-be changed from
-
- UnsharedLibReferences(<Something>LIB, Arg2, Arg3)
-
-to
-
- UnsharedLibReferences(<Something>, Arg2, Arg3)
+4. Compiling the XFree86 Distribution
-Be sure to apply the change to the file copied to /usr/X11R6/lib/X11/config.
+The next sections contain LynxOS specific notes with respect to the build
+process.
-6. Compiling the XFree86 Distribution
-
-Before trying to rebuild XFree86 from source read Building XFree86 for a
-detailed description of the build process. The next sections contain LynxOS
-specific notes with respect to the build process.
-
-6.1 Disk space requirements
+4.1 Disk space requirements
Currently there is no support for shared libraries in the LynxOS XFree86
port. A complete binary installation along with manual pages will require
-approximately 90-100 MBytes of disk space. To compile the system you will
-need at least 230 MBytes of free disk space.
+approximately 100 MBytes of disk space. To compile the system you will need
+at least 250 MBytes of free disk space.
-6.2 Changes to system environment (LynxOS AT)
+4.2 Changes to system environment (LynxOS x86)
Before compiling the XFree86 distribution you will have to make a few little
adjustments to your system:
- LynxOS AT 2.5
-
- o Create a shell script named /lib/cpp as follows:
-
- #!/bin/sh
- /usr/lib/gcc-lib/i386-unknown-lynxos2.5/2.7-96q1/cpp \
- -traditional "$@"
-
- On other platforms than the AT the paths for the compiler
- support programs are different. You may use
-
- gcc -v
-
- to find out the correct path. Set the file mode of /lib/cpp
- with
-
- # chown root /lib/cpp
- # chmod 755 /lib/cpp
-
- o Modify /lib/liblynx.a. The X servers need the smem_create()
- system call to map the frame buffer into their address
- space. The system call is in liblynx library along with
- other Lynx proprietary calls which (unfortunately) overlap
- with calls in libc. To reduce confusion you should modify
- liblynx as follows:
-
- # mv /lib/liblynx.a /lib/liblynx.a.ORG
- # mkdir /tmp/xx; cd /tmp/xx
- # ar xv /lib/liblynx.a.ORG
- # ar rv /lib/liblynx.a *smem*
- # ranlib /lib/liblynx.a
-
- LynxOS AT 2.4
-
- o Use the CYGNUS GNU-C Compiler to build XFree86. With LynxOS
- 2.4.0 you must execute the shell script /CYGNUS.bash to
- apply the necessary changes to your environment.
-
- o Create a shell script named /lib/cpp as follows:
-
- #!/bin/sh
- /cygnus/94q4-lynxos-x86/lib/gcc-lib/i386-lynx/2.6-94q4/cpp \
- -traditional "$@"
-
- It is possible that future releases use a different path for
- the CYGNUS compiler support programs. You may use
-
- gcc -v
-
- to find out the correct path. Set the file mode of /lib/cpp
- with
-
- # chown root /lib/cpp
- # chmod 755 /lib/cpp
-
- LynxOS AT 2.3
- This has actually not been tested, but the steps for described
- for 2.4 should apply to 2.3 as well.
-
- LynxOS AT 2.2.1
- This has actually never been tested, be prepared that the build
- will fail somewhere!
-
- o Create a shell script named /lib/cpp as follows:
+ o If not already installed on your system create a shell script named
+ /lib/cpp as follows:
- #!/bin/sh
- /usr/local/lib/gcc-cpp -traditional "$@"
+ #!/bin/sh
+ /usr/lib/gcc-lib/i386-unknown-lynxos2.5/2.7-96q1/cpp \
+ -traditional "$@"
- o The loader /bin/ld of LynxOS 2.2.1 does not support the -L
- option which is heavily used by X11R6 makefiles. To work
- around this problem you must install a small wrapper program
- which replaces the original /bin/ld program. Use the follow-
- ing steps to install it:
+ On other platforms than the x86 the paths for the compiler support pro-
+ grams are different. You may use
- # cd xc/programs/Xserver/hw/xfree/etc
- # cc -o ld ld-wrapper.c
- # mv /bin/ld /bin/ld.org
- # mv ld /bin/ld
- # chmod 511 /bin/ld
- # chown root /bin/ld
+ gcc -v
- o Modify system header files as follows:
+ to find out the correct path. Set the file mode of /lib/cpp with
- /usr/include/uio.h
- surrounded by
+ # chown root /lib/cpp
+ # chmod 755 /lib/cpp
- #ifndef _UIO_H
- #define _UIO_H
- ...
- #endif
+ o Modify /lib/liblynx.a. The X servers need the smem_create() system call
+ to map the frame buffer into their address space. The system call is in
+ liblynx library along with other Lynx proprietary calls which (unfortu-
+ nately) overlap with calls in libc. To reduce confusion you should mod-
+ ify liblynx as follows:
- /usr/include/utmp.h
- surrounded by
+ # mv /lib/liblynx.a /lib/liblynx.a.ORG
+ # mkdir /tmp/xx; cd /tmp/xx
+ # ar xv /lib/liblynx.a.ORG
+ # ar rv /lib/liblynx.a *smem*
+ # ranlib /lib/liblynx.a
- #ifndef _UTMP_H
- #define _UTMP_H
- ...
- #endif
+4.3 make World
- /usr/include/unistd.h
- add
+If you have the MTRR device driver installed, add a line
- extern int read();
+ #define HasMTRRSupport YES
-6.3 make World
-
-Read Building XFree86 before trying to rebuild XFree86 from the source dis-
-tribution.
+to the config/cf/host.def file.
You may then issue a
@@ -422,73 +229,36 @@ the XFree86 system) you can install the software using
make install
You must be logged in as super-user (root) when you invoke `make install'.
-Be sure to set your environment to use the same compiler (LynxOS 2.3.0/2.4.0,
-CYGNUS GNU-C) as you did during the `make World'. To install the LinkKit use
-
- make install.linkkit
-
-With LynxOS 2.2.1 programs will not be stripped during installation. This is
-due to a problem with the strip program which shows up when installing across
-file system boundaries.
-
-Refer to section Installing XFree86 manual pages (section 4., page 1) for
-manual page installation.
-
-On LynxOS AT 2.5.0 you may encounter problems with make in deeply nested sub-
-directories (eg core dumps, hangups). In this case update to GNU make version
-3.75 or higher.
-
-7. Building on microSPARC and PowerPC
-
-XFree86 3.3 compiles on LynxOS microSPARC and on LynxOS PPC as well. On the
-microSPARC there is X server support for the colour frame buffers CG3 and CG6
-while on the PPC there is no X server available at this time. Before you
-start the build (on versions earlier than 2.5.0) you must create a symbolic
-link from the CYGNUS gcc to a file named cc somewhere in a directory included
-in your PATH environment variable.
-7.1 Console driver patch for microSPARC
+On LynxOS x86 2.5.0 you may encounter problems with make in deeply nested
+subdirectories (eg core dumps, hangups). In this case update to GNU make ver-
+sion 3.75 or higher.
-Before building on the microSPARC you should install the patch for the con-
-sole driver supplied in xc/programs/Xserver/hw/sunLynx/patch.Console.
-(xc/programs/Xserver/hw/sunLynx/patch.Console-2.4.0 for LynxOS revisions ear-
-lier than 2.5.0). The patch fixes minor problems in the original LynxOS
-driver and adds functionalities to detect the keyboard type and control the
-key click. To create a backup of the original driver and install the patch
-issue the commands
+4.4 Installing XFree86 manual pages
- # cd /
- # tar cf /sys/drivers/console.tar /sys/drivers/console
- # patch -p -E < xc/programs/Xserver/hw/sunLynx/patch.Console
- # cd /sys/drivers/console
- # make install
- # cd /sys/lynx.os
- # make install
- # reboot -a
-
-If you opt not to install the patch you must edit xc/config/cf/lynx.cf and
-change the definition of SparcConsoleDefines from
-
- #define SparcConsoleDefines -DPATCHED_CONSOLE
-
-to
-
- #define SparcConsoleDefines /* -DPATCHED_CONSOLE */
+LynxOS uses cat-able manual pages, and because a doc preparation system is
+definitely not a vital component of a real-time operating system you must
+first install groff-1.09 (or newer).
-7.2 Known Bug of the microSPARC server
+XFree86 manual pages may be installed using
-On the first start of the X server on the microSPARC you will notice that the
-pointer follows mouse movements with a certain delay (especially if you're
-moving the mouse real fast). You will also notice that moving windows with
-certain window managers (eg mwm) is not working correctly. These effects
-should go away on the next server start.
+ make install.man
-The server for monochrome cards builds properly if you enable it in lynx.cf
-but it has never been tested (reports are welcome).
+The index and whatis database for the XFree86 manual pages will be created
+automatically. If you already have a whatis database or index file in the
+destination directories you should perform a sort/uniq operation to remove
+duplicate entries:
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml,v 3.17 1999/08/23 06:38:47 dawes Exp $
+ for i in 1 3 5
+ do
+ rm -f /tmp/tmpfile
+ sort /usr/X11R6/man/cat$i/LIST$i | uniq > /tmp/tmpfile
+ mv /tmp/tmpfile /usr/X11R6/man/cat$i/LIST$i
+ done
+ sort /usr/X11R6/man/whatis | uniq > /tmp/tmpfile
+ mv /tmp/tmpfile /usr/X11R6/man/whatis
- $XConsortium: LynxOS.sgml /main/10 1996/10/28 05:13:07 kaleb $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml,v 3.19 2000/03/03 21:28:08 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.LynxOS,v 3.24 2000/02/21 22:44:23 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.LynxOS,v 3.26 2000/03/04 00:51:29 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.MGA b/xc/programs/Xserver/hw/xfree86/doc/README.MGA
index 2e2d559e2..c4fdff061 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.MGA
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.MGA
@@ -195,4 +195,4 @@ and:
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/MGA.sgml,v 3.9 1999/11/19 13:54:27 hohndel Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.MGA,v 3.13 2000/02/21 22:44:23 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.MGA,v 3.14 2000/03/01 01:48:07 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA b/xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA
index a5a5648fd..594313950 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA
@@ -54,4 +54,4 @@ Riva128, Riva TNT and Riva TNT2.
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NVIDIA.sgml,v 1.2 1999/08/23 06:18:33 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA,v 1.4 2000/02/21 22:44:24 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.NVIDIA,v 1.5 2000/03/01 01:48:07 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.NetBSD b/xc/programs/Xserver/hw/xfree86/doc/README.NetBSD
index a6965b2f1..802e64573 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.NetBSD
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.NetBSD
@@ -1,4 +1,4 @@
- README for XFree86 3.9.18 on NetBSD
+ README for XFree86 4.0 on NetBSD
Rich Murphey, David Dawes, Marc Wandschneider, Mark Weaver, Matthieu Herrb
@@ -15,10 +15,10 @@ See the Copyright Notice.
The sources for XFree86 are available by anonymous ftp from:
-ftp://ftp.XFree86.org/pub/XFree86/snapshots/3.9.18
+ftp://ftp.XFree86.org/pub/XFree86/4.0
Binaries for NetBSD 1.3 and later are available from:
-ftp://ftp.XFree86.org/pub/XFree86/snapshots/3.9.18/binaries/NetBSD
+ftp://ftp.XFree86.org/pub/XFree86/4.0/binaries/NetBSD
A list of mirror sites is provided by ftp://ftp.XFree86.org/pub/XFree86/MIR-
RORS
@@ -30,19 +30,23 @@ XFree86 also supports NetBSD on PC98 machines.
2. Bug Reports for This Document
-Send email to herrb@XFree86.Org (Matthieu Herrb) or XFree86@XFree86.org if
-you have comments or suggestions about this file and we'll revise it.
+Send email to <herrb@XFree86.Org> (Matthieu Herrb) or <XFree86@XFree86.org>
+if you have comments or suggestions about this file and we'll revise it.
-3. New OS dependant features
+3. New OS dependent features
-See the Release Notes for non-OS dependent new features in XFree86 3.9.18.
+See the Release Notes for non-OS dependent new features in XFree86 4.0.
-3.1 New OS dependent features in 3.9.18
+3.1 New OS dependent features in 4.0
+
+ o Preliminary APM support.
+
+3.2 New OS dependent features in 3.9.18
o Soft-booting secondary cards through the int10 BIOS interface is now
possible using the x86emu real mode emulator.
-3.2 New OS dependent features in 3.9.17
+3.3 New OS dependent features in 3.9.17
o Support for silken mouse with the wsmouse protocol has been added.
@@ -51,8 +55,7 @@ See the Release Notes for non-OS dependent new features in XFree86 3.9.18.
4. Installing the Binaries
-Refer to section 5 of the Release Notes for detailed installation instruc-
-tions.
+Refer to the Installation Document for detailed installation instructions.
5. Configuring X for Your Hardware
@@ -84,10 +87,10 @@ Only standard PS/2 mice are supported by this driver. Newest PS/2 mice that
send more than three bytes at a time (especially Intellimouse, or MouseMan+
with a ``3D'' roller) are not supported yet.
-XFree86 3.9.18 also has support for the mouse driver included in the new
-wscons console driver introduced by NetBSD 1.4. Specify ``wsmouse'' as the
-protocol and ``/dev/wsmouse0'' as the device in /etc/XF86Config if you're
-using NetBSD 1.4 with wscons.
+XFree86 4.0 also has support for the mouse driver included in the new wscons
+console driver introduced by NetBSD 1.4. Specify ``wsmouse'' as the protocol
+and ``/dev/wsmouse0'' as the device in /etc/XF86Config if you're using NetBSD
+1.4 with wscons.
See README.mouse for general instruction on mouse configuration in XFree86.
@@ -191,14 +194,14 @@ By default NetBSD include the BSD 4.4 kernel security feature that disable
access to the /dev/mem device when in multi-users mode. But XFree86 servers
can take advantage (or require) linear access to the display memory.
-Most XFree86 3.9.18 card drivers require linear memory access. There are two
+Most XFree86 4.0 card drivers require linear memory access. There are two
ways to allow XFree86 to access linear memory:
The first way is to disable the kernel security feature by adding ``option
INSECURE'' in the kernel configuration file and build a new kernel.
The second way is to install the aperture driver, included in source form in
-xc/programs/Xserver/hw/xfree86/etc/apNetBSD.shar in the XFree86 3.9.18 source
+xc/programs/Xserver/hw/xfree86/etc/apNetBSD.shar in the XFree86 4.0 source
distribution. Unpack it in a new directory of your choice by running:
sh apNetBSD.shar
@@ -245,9 +248,6 @@ to your kernel config file.
8. Rebuilding the XFree86 Distribution
-See INSTALL for instructions on unbundling and building the source distribu-
-tion.
-
You should configure the distribution by editing xc/config/cf/host.def
before compiling. To compile the sources, invoke ``make World'' in the xc
directory.
@@ -318,7 +318,7 @@ Many thanks to all people who contributed to make XFree86 work on *BSD, in
particular, David Dawes, Pace Willison, Amancio Hasty, Christoph Robitschko,
Nate Williams, Rod Grimes, Jack Velte and Michael Smith.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml,v 3.52 2000/02/21 18:05:47 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml,v 3.55 2000/03/03 21:28:09 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.NetBSD,v 3.66 2000/02/21 22:44:24 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.NetBSD,v 3.68 2000/03/04 00:51:30 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.OS2 b/xc/programs/Xserver/hw/xfree86/doc/README.OS2
index d6b9107ce..1b2fe9fea 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.OS2
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.OS2
@@ -686,4 +686,4 @@ Many thanks to:
$XConsortium: OS2.sgml /main/4 1996/03/11 10:46:06 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.OS2,v 3.20 2000/02/21 22:44:25 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.OS2,v 3.21 2000/03/01 01:48:08 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.Oak b/xc/programs/Xserver/hw/xfree86/doc/README.Oak
index f25e07880..9ec345b63 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.Oak
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.Oak
@@ -168,4 +168,4 @@ will work on all ISA boards, VLB ones work flawlessly.
$XConsortium: Oak.sgml /main/8 1996/05/12 20:58:00 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Oak,v 3.21 2000/02/21 22:44:26 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Oak,v 3.22 2000/03/01 01:48:09 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD b/xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD
index d1d094628..728907d23 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD
@@ -1,4 +1,4 @@
- README for XFree86 3.9.18 on OpenBSD
+ README for XFree86 4.0 on OpenBSD
Matthieu Herrb
@@ -13,13 +13,13 @@ ments as well as many bug fixes.
See the Copyright Notice.
-The sources for XFree86 3.9.18 are available by anonymous ftp from:
+The sources for XFree86 4.0 are available by anonymous ftp from:
-ftp://ftp.XFree86.org/pub/XFree86/snapshots/3.9.18
+ftp://ftp.XFree86.org/pub/XFree86/4.0
Binaries for OpenBSD/i386 2.6 and later are available from:
-ftp://ftp.XFree86.org/pub/XFree86/snapshots/3.9.18/binaries/OpenBSD
+ftp://ftp.XFree86.org/pub/XFree86/4.0/binaries/OpenBSD
A list of mirror sites is provided by ftp://ftp.XFree86.org/pub/XFree86/MIR-
RORS
@@ -29,21 +29,28 @@ other architectures (section 8.2, page 1) for details.
2. Bug Reports for This Document
-Send email to herrb@xfree86.org (Matthieu Herrb) or XFree86@XFree86.org if
-you have comments or suggestions about this file and we'll revise it.
+Send email to <herrb@xfree86.org> (Matthieu Herrb) or <XFree86@XFree86.org>
+if you have comments or suggestions about this file and we'll revise it.
-3. New OS dependant features
+3. New OS dependent features
-See the Release Notes for non-OS dependent new features in XFree86 3.9.18.
+See the Release Notes for non-OS dependent new features in XFree86 4.0.
-3.1 New OS dependent features in 3.9.18
+3.1 New OS dependent features in 4.0
+
+ o Multi-thread safe libraries are built by default on OpenBSD 2.6 and
+ later,
+
+ o Preliminary APM support.
+
+3.2 New OS dependent features in 3.9.18
o Support for USB mices has been added on OpenBSD.
o Soft-booting secondary cards through the int10 BIOS interface is now
possible using the x86emu real mode emulator.
-3.2 New OS dependent features in 3.9.17
+3.3 New OS dependent features in 3.9.17
o Silken mouse is supported for serial mices, and, under post 2.6 OpenBSD-
current for PS/2 mices.
@@ -52,8 +59,7 @@ See the Release Notes for non-OS dependent new features in XFree86 3.9.18.
4. Installing the Binaries
-Refer to section 5 of the Release Notes for detailed installation instruc-
-tions.
+Refer to the Installation Document for detailed installation instructions.
5. Configuring X for Your Hardware
@@ -184,9 +190,6 @@ imum amount of disk space. Just unpack it, make the appropriate changes to
the xf86site.def, type ``./mkmf'' and ``make'' to link the server. See
/usr/X11R6/lib/Server/README for more info.
-See INSTALL for instructions on unbundling and building the source distribu-
-tion.
-
You should configure the distribution by editing xc/config/cf/host.def
before compiling. To compile the sources, invoke ``make World'' in the xc
directory.
@@ -226,7 +229,7 @@ Many thanks to all people who contributed to make XFree86 work on *BSD, in
particular, David Dawes, Pace Willison, Amancio Hasty, Christoph Robitschko,
Nate Williams, Rod Grimes, Jack Velte and Michael Smith.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml,v 1.7 2000/02/21 18:05:47 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml,v 1.10 2000/03/03 21:28:10 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD,v 1.9 2000/02/21 22:44:26 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD,v 1.11 2000/03/04 00:51:31 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.P9000 b/xc/programs/Xserver/hw/xfree86/doc/README.P9000
index d59f0433e..278cb7127 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.P9000
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.P9000
@@ -469,4 +469,4 @@ tion, etc. Please send any patches to me (nygren@mit.edu).
$XConsortium: P9000.sgml /main/9 1996/05/12 20:58:05 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.P9000,v 3.39 2000/02/21 22:44:27 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.P9000,v 3.40 2000/03/01 01:48:10 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.S3 b/xc/programs/Xserver/hw/xfree86/doc/README.S3
index e2efa7457..bfdfa4a09 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.S3
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.S3
@@ -810,4 +810,4 @@ force the server to use this address with the MemBase field in the XF86Config
$XConsortium: S3.sgml /main/14 1996/02/21 17:45:58 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.S3,v 3.55 2000/02/21 22:44:28 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.S3,v 3.56 2000/03/01 01:48:11 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.SCO b/xc/programs/Xserver/hw/xfree86/doc/README.SCO
index c03247e4d..c3638ff0b 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.SCO
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.SCO
@@ -549,4 +549,4 @@ site for the binary distribution.
$XConsortium: SCO.sgml /main/11 1996/10/23 11:45:55 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SCO,v 3.30 2000/02/21 22:44:29 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SCO,v 3.31 2000/03/01 01:48:12 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.SOLX86 b/xc/programs/Xserver/hw/xfree86/doc/README.SOLX86
index d4a011f65..41d6ff236 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.SOLX86
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.SOLX86
@@ -228,4 +228,4 @@ danson@lgc.com.
$XConsortium: SOLX86.sgml /main/7 1996/10/28 05:43:28 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SOLX86,v 3.26 2000/02/21 22:44:32 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SOLX86,v 3.27 2000/03/01 01:48:13 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.SVR4 b/xc/programs/Xserver/hw/xfree86/doc/README.SVR4
index 636be92b0..5f7ace269 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.SVR4
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.SVR4
@@ -405,4 +405,4 @@ may be affected too. The problem with the MGA driver is now fixed.
$XConsortium: SVR4.sgml /main/8 1996/10/27 11:06:06 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SVR4,v 3.28 2000/02/21 22:44:32 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SVR4,v 3.29 2000/03/01 01:48:13 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.SiS b/xc/programs/Xserver/hw/xfree86/doc/README.SiS
index 232f7ad7a..1a0e3e210 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.SiS
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.SiS
@@ -1,8 +1,8 @@
Information for SiS Users
- Juanjo Santamarta (santamarta@ctv.es)
+ Juanjo Santamarta (<santamarta@ctv.es>)
- 17 April 1999
+ 5 March 2000
1. Introduction
@@ -22,21 +22,11 @@ The driver supports :
o XAA support (XFree86 Acceleration Architecture)
-2. Supported chips
-
- SiS 530, SiS 86c2x5, SiS 5597/5598, SiS 6326
-
-This driver needs linear framebuffer support in the card. Because this SiS
-86C201 and 86C202 based cards don't work with this driver.
-
-Color expansion is not supported by the engine in 16M-color graphic mode.
-
-3. XF86Config Options
+2. XF86Config Options
The following options are of particular interest for the SiS driver. Each of
-them must be specified in the `svga' driver section of the XF86Config file,
-within the Screen subsections of the depths to which they are applicable (you
-can enable options for all depths by specifying them in the Device section).
+them must be specified in the Device section of the XF86Config file for this
+card.
Option "SetMclk"
This option lets you to modify the memory clocking of your card.
@@ -69,7 +59,19 @@ can enable options for all depths by specifying them in the Device section).
reduces the possibility of glitches and noise on high resolution
modes.
-4. Modelines
+ Option "PciRetry"
+
+ Option "NoAccel"
+ Disables various hardware accelerations.
+
+ VideoRAM size
+ The SiS chips can only directly address 4096K bytes of video RAM.
+ Some video cards using these chips are shipped with additional
+ video RAM. The videoRAM must be explicitly limited to 4096 for
+ those cards. Attempting to use the additional RAM leads to a
+ variety of scrambled screen artifacts.
+
+3. Modelines
When constructing a modeline for use with the Sis driver you'll need to con-
sider several points:
@@ -101,17 +103,14 @@ sider several points:
1600x1200 :
4, 8 bpp at 65Hz Non-interlaced
-5. Troubleshooting
-
-The generic VGA driver don't work with 6326, so XF86Setup can't be used for
-this card. Please use xf86config instead.
+4. Troubleshooting
Some video modes with high dot-clocks don't work at all, resulting on black
screen. Lowering dotclock in that case could solve the problem.
Document based on 3.3 version written by Xavier Ducoin.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml,v 3.6 1999/10/13 04:21:08 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml,v 3.7 2000/03/06 22:59:24 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SiS,v 3.12 2000/02/21 22:44:33 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SiS,v 3.14 2000/03/07 14:55:06 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.Video7 b/xc/programs/Xserver/hw/xfree86/doc/README.Video7
index e033b5514..59bc0b8c2 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.Video7
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.Video7
@@ -99,4 +99,4 @@ Craig Struble (cstruble@acm.vt.edu) Video 7 driver
$XConsortium: Video7.sgml /main/3 1996/02/21 17:46:22 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Video7,v 3.18 2000/02/21 22:44:33 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Video7,v 3.19 2000/03/01 01:48:17 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.WstDig b/xc/programs/Xserver/hw/xfree86/doc/README.WstDig
index 79932095a..6267d100b 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.WstDig
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.WstDig
@@ -193,4 +193,4 @@ WD90C24 specific code. You can reach me (Brad Bosch) at brad@Lachman.com.
$XConsortium: WstDig.sgml /main/5 1996/02/21 17:46:29 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.WstDig,v 3.20 2000/02/21 22:44:34 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.WstDig,v 3.21 2000/03/01 01:48:18 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.agx b/xc/programs/Xserver/hw/xfree86/doc/README.agx
index d59b0527a..eb79b1cb8 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.agx
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.agx
@@ -534,4 +534,4 @@ known whether the clockprobing will work. Some XGA-1 chips may support 16bpp.
$XConsortium: agx.sgml /main/9 1996/10/19 18:03:50 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.agx,v 3.40 2000/02/21 22:44:34 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.agx,v 3.41 2000/03/01 01:48:18 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.apm b/xc/programs/Xserver/hw/xfree86/doc/README.apm
index cfc81b96d..88e2f1ed4 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.apm
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.apm
@@ -1,17 +1,19 @@
Information for Alliance Promotion chipset users
- Henrik Harmsen (Henrik.Harmsen@erv.ericsson.se)
+ Loïc Grenié (<grenie@math.jussieu.fr>), Henrik Harmsen (<Henrik.Harm-
+ sen@erv.ericsson.se>)
- 23 February 1998
+ 6 March 2000
1. Support chipsets
-The apm driver in the SVGA server is for Alliance Promotion (www.alsc.com)
-graphics chipsets. The following chipsets are supported:
+The apm driver in the SVGA server is for Alliance Promotion graphics
+chipsets. The following chipsets are supported:
o 6422
- Old chipset without color expansion hardware (text accel).
+ Old chipset. The driver is still very unstable, including computer
+ crashes. You would prefer using XFree86 3.3.x for this chipset.
o AT24
@@ -34,26 +36,61 @@ server. It has support for the following acceleration:
o Filled rectangles
- o CPU->Screen colour expansion (text accel). Not for 6422.
+ o CPU->Screen image transfers.
- o Hardware cursor
+ o CPU->Screen colour expansion (text accel).
-All in 8, 16 and 32 bpp modes. No 24bpp mode is supported. Also VESA DPMS
-power save mode is fully supported with "standby", "suspend" and "off" modes
-(set with with the "xset dpms" command).
+ o Screen->Screen colour expansion (cached text accel).
-3. Configuration
+ o Mono 8x8 pattern fill. Not for 6422.
-First: Please run the XF86Setup program to create a correct configuration.
+ o Colour 8x8 pattern fill (in 8bpp). Not for 6422.
+
+ o Hardware cursor.
+
+ o Pixmap caching.
+
+All in 8, 16 and 32 bpp modes. In 24bpp mode only Bitblts and Filled rectan-
+gles is supported. Also VESA DPMS power save mode is fully supported with
+"standby", "suspend" and "off" modes (set with with the "xset dpms" command).
+
+3. DGA
+
+Full DGA 2.0 support with framebuffer access and drawing acceleration.
+
+4. Video
+
+A limited hardware support for video decoding on AT24 and AT25/3D. It can
+display an image in YUV colours inside the desktop. There are some more
+exotic formats (YUV 4.1.1, YUV 4.0.0, RGB 8,16.32bpp).
+
+5. Shadow framebuffer
+
+There is a mode, called shadow framebuffer, where the graphics is only used
+to display the images. All rendering is done in memory in a so-called shadow
+framebuffer. This mode is useful if you need lots of reading in the video
+memory. You will have to put
+
+ Option "ShadowFB"
+
+in your XF86Config file.
+
+6. Configuration
+
+First: Please run the xf86config program to create a correct configuration.
You can turn off hardware cursor by inserting the following line in the
Device section of the XF86Config file:
-Option "sw_cursor"
+ Option "SWcursor"
Or turn off hardware acceleration:
-Option "noaccel"
+ Option "noaccel"
+
+Or turn off MMIO
+
+ Option "nolinear"
Please don't specify the amount of video RAM you have or which chipset you
have in the config file, let the driver probe for this. Also please don't put
@@ -62,7 +99,16 @@ grammable clock that can take (almost) any modeline you throw at it. It might
fail at some specific clock values but you should just try a slightly differ-
ent clock and it should work.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml,v 1.2 1999/08/23 06:18:33 dawes Exp $
+7. glide2x
+
+There is support for the XF86Rush extension for use with the glide2x library.
+
+8. Questions
+
+Any questions regarding this driver should be sent to Loïc Grenié. It should
+be possible to add support for the 3210 chipset if someone needs it.
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml,v 1.3 2000/03/08 05:38:43 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.apm,v 1.4 2000/02/21 22:44:35 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.apm,v 1.6 2000/03/08 20:39:22 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.ark b/xc/programs/Xserver/hw/xfree86/doc/README.ark
index 7bf673c01..4584d4c1e 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.ark
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.ark
@@ -205,4 +205,4 @@ releases at the XFree86 web site <URL:http://www.xfree86.org>.
$XConsortium: ark.sgml /main/6 1996/10/28 05:24:04 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.ark,v 3.17 2000/02/21 22:44:35 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.ark,v 3.18 2000/03/01 01:48:20 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.ati b/xc/programs/Xserver/hw/xfree86/doc/README.ati
index f91b29829..f7ee2cc3c 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.ati
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.ati
@@ -576,4 +576,4 @@ driver API of XFree86 4.0.
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ati.sgml,v 3.29 2000/02/18 12:19:08 tsi Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.ati,v 3.45 2000/02/21 22:44:36 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.ati,v 3.46 2000/03/01 01:48:20 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.chips b/xc/programs/Xserver/hw/xfree86/doc/README.chips
index 161ca8f38..d1bded81c 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.chips
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.chips
@@ -1,13 +1,13 @@
Information for Chips and Technologies Users
- David Bateman (dbateman@eng.uts.edu.au),
- Egbert Eich (Egbert.Eich@Physik.TH-Darmstadt.DE)
+ David Bateman (<dbateman@club-internet.fr>),
+ Egbert Eich (<eich@xfree86.org>)
19th July 1999
1. Introduction
-With the release of XFree86 version 3.9.18, the Chips and Technologies driver
+With the release of XFree86 version 4.0, the Chips and Technologies driver
has been extensively rewritten and contains many new features. This driver
must be considered work in progress, and those users wanting stability are
encouraged to use the older XFree86 3.3.x versions. However this version of
@@ -788,7 +788,7 @@ cause damage.
startx -- -depth 24 -fbbpp 32 8-8-8 RGB truecolor
- however as XFree86 version 3.9.18 allows 32bpp pixmaps to be used
+ however as XFree86 version 4.0 allows 32bpp pixmaps to be used
with framebuffers operating in 24bpp, this mode of operating will
cost performance for no gain in functionality.
@@ -816,8 +816,8 @@ the screen is having problems.
If you are having driver-related problems that are not addressed by this doc-
ument, or if you have found bugs in accelerated functions, you can try con-
tacting the XFree86 team (the current driver maintainer can be reached at
-dbateman@eng.uts.edu.au or Egbert.Eich@Physik.TH-Darmstadt.DE), or post in
-the Usenet newsgroup "comp.windows.x.i386unix".
+<dbateman@club-internet.fr> or <eich@xfree86.org>), or post in the Usenet
+newsgroup "comp.windows.x.i386unix".
7. Disclaimer
@@ -858,7 +858,7 @@ Contributors (In no particular order)
We also thank the many people on the net who have contributed by reporting
bugs and extensively testing this server.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml,v 3.29 1999/08/28 11:18:16 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml,v 3.30 2000/03/05 16:59:11 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.chips,v 3.28 2000/02/21 22:44:37 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.chips,v 3.30 2000/03/07 14:55:07 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.cirrus b/xc/programs/Xserver/hw/xfree86/doc/README.cirrus
index 601376aff..0a1de7aef 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.cirrus
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.cirrus
@@ -887,4 +887,4 @@ Changes since XFree86 3.2:
$XConsortium: cirrus.sgml /main/12 1996/10/28 05:43:32 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.cirrus,v 3.40 2000/02/21 22:44:38 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.cirrus,v 3.41 2000/03/01 01:48:22 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.cyrix b/xc/programs/Xserver/hw/xfree86/doc/README.cyrix
index 8dace0032..76c583475 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.cyrix
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.cyrix
@@ -2,13 +2,12 @@
The XFree86 Project Inc.
- 22 June 1999
+ 7 March 2000
1. Supported hardware
-This driver (as used in the SVGA (VGA256), VGA16 and VGA_Mono servers) sup-
-ports a single chipset `mediagx' that should work on the following Cyrix CPUs
-with integrated graphics:
+This driver supports a single chipset `mediagx' that should work on the fol-
+lowing Cyrix CPUs with integrated graphics:
o MediaGX
@@ -18,63 +17,37 @@ with integrated graphics:
2. Features
- o accelerated
-
- o hardware cursor
-
- o support color depths 1, 4, 8 and 16
+ o Rather sparse (color depth hardcoded to 8)
3. XF86Config Option
Option "sw_cursor"
- disable the hardware cursor.
+ disable the hardware cursor. (Code not verified yet!)
Option "no_accel"
completely disables acceleration. Usually not recommended.
4. Bugs and Limitations
+ o As a first cut at the new design, known problems are everywhere. The
+ console font is corrupted upon exit. The server seems stable if the
+ virtual desktop and resolution size match. I found 1024x768 usable and
+ that's why I released this version. Geeks can have fun with this but
+ NEWBIES should use the 3.3.3.1 release instead!
+
o On some older chipsets, the driver may trigger an illegal instruction
just after probing for the ``scratchpad size''. If this is the case,
- email to hecker@cat.dfrc.nasa.gov with the output of
+ email to <hecker@cat.dfrc.nasa.gov> with the output of
- XF86_SVGA -probeonly -verbose
+ XFree86 -probeonly -verbose
and this will be fixed.
- o There are limitations to the modeline values that can be specified.
- Particularly, the difference between the first two horizontal timings
- (e.g. 640 656, 1024 1048) must be at least 16 and at most 24. The mode-
- line values are not used in the 3.3.4 server since there is a static
- array used to load the registers. The modeline only identifies that a
- particular resolution is desired. The standard VESA modes up to
- 1280x768 are supported. For more specific information, consult the
- source code.
-
- o The 4 colour server is slow due to the VGA banking mode used. Moreover,
- it does not work the way it is run by XF86Setup, which is probably due
- to the timing limitations.
-
- o The 3.3.4 server MAY totally hang the machine at times. It is reported
- to be stable on a BSD platform using twm. It has crashed when using
- resolutions greater than 800x600 on a Linux (Debian based) system using
- wm as the window manager. The safest course is to use the 3.3.3.1
- server instead. Efforts are under way to resolve this issue and provide
- a more robust server under the 4.x release.
-
5. Authors
- o Annius Groenink <Annius.Groenink@cwi.nl>
-
- o Dirk Hohndel <hohndel@XFree86.org>
-
- o Brian Falardeau
-
- o Special thanks to Cyrix and Wyse for helping us with the development of
- this server. Brian, a Cyrix employee, made the 3.3.4 update possible
- since the new 4.0 server has been our top priority.
+ o Richard Hecker <hecker@cat.dfrc.nasa.gov>
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml,v 1.2 1999/08/23 06:18:33 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml,v 1.3 2000/03/08 05:38:43 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.cyrix,v 1.4 2000/02/21 22:44:39 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.cyrix,v 1.6 2000/03/08 20:39:23 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.epson b/xc/programs/Xserver/hw/xfree86/doc/README.epson
index db127bb09..5cb5b5387 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.epson
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.epson
@@ -131,4 +131,4 @@ loaner system and documentation to get things started.
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/epson.sgml,v 1.3 1999/08/28 10:43:33 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.epson,v 1.5 2000/02/21 22:44:39 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.epson,v 1.6 2000/03/01 01:48:24 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.fbdev b/xc/programs/Xserver/hw/xfree86/doc/README.fbdev
index 89cffb804..db8565366 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.fbdev
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.fbdev
@@ -338,4 +338,4 @@ The frame buffer device abstraction was designed by Martin Schaller.
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fbdev.sgml,v 1.2 1999/08/23 06:38:53 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fbdev,v 1.4 2000/02/21 22:44:39 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fbdev,v 1.5 2000/03/01 01:48:24 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.fonts b/xc/programs/Xserver/hw/xfree86/doc/README.fonts
index 36d5ea79c..aac021b95 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.fonts
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.fonts
@@ -2,12 +2,11 @@
Juliusz Chroboczek, Juliusz.Chroboczek@ens.fr
- 14 February 2000
+ 5 March 2000
-This version of XFree86 includes a number of improvements to the handling of
-fonts, including
+XFree86 contains a number of improvements related to fonts, including
- o new Unicode-encoded bitmap fonts;
+ o inclusion of new fonts;
o internationalisation of the scalable font backends (Type 1, Speedo, and
TrueType);
@@ -97,14 +96,16 @@ the two standards are always equivalent, and this document uses the terms
When used in X11, Unicode-encoded fonts should have the last two fields of
their XLFD set to `iso10646-1'.
-2. Unicode-encoded bitmap fonts
+2. New fonts
+
+2.1 Bitmap fonts
XFree86 includes two new Unicode-encoded fonts with a large collection of
non-ideographic glyphs. While it is possible to use these fonts as main
fonts, applications may also use them as fallbacks when a given glyph is not
available in the current font.
-2.1 The Unicode `fixed' font
+2.1.1 The Unicode `fixed' font
The font file
@@ -134,7 +135,7 @@ with XLFD
The standard aliases `fixed' and `6x13' still point at the ISO 8859-1 ver-
sions of the font.
-2.2 The ClearlyU Unicode font
+2.1.2 The ClearlyU Unicode font
The ClearlyU font set of fonts provides a set of 12pt, 100dpi proportional
fonts with many of the glyphs needed for Unicode text. Together, the fonts
@@ -158,6 +159,44 @@ Additional ClearlyU fonts include
-mutt-ClearlyU PUA-medium-r-normal--17-120-100-100-p-111-iso10646-1
+2.2 Scalable fonts
+
+XFree86 includes the ``Lucidux'' family of Type 1 fonts. This family con-
+sists of the fonts ``Lucidux Serif'', with XLFD
+
+ -b&h-lucidux serif-medium-*-normal--*-*-*-*-p-*-*-*
+
+``Lucidux Sans'', with XLFD
+
+ -b&h-lucidux sans-medium-*-normal--*-*-*-*-p-*-*-*
+
+and ``Lucidux Mono'', with XLFD
+
+ -b&h-lucidux mono-medium-*-normal--*-*-*-*-m-*-*-*
+
+Each of these fonts currently comes in Roman and oblique variants (bold vari-
+ants will be included in a future release) and has 337 glyphs covering the
+basic ``ASCII'' glyph set, the Latin 1 glyph set, as well as the ``Extended
+Latin'' glyph set. In particular, these fonts include all the glyphs needed
+for ISO 8859 parts 1, 2, 3, 4, 9 and 15.
+
+The Lucidux fonts are original designs by Charles Bigelow and Kris Holmes.
+Lucidux fonts include seriffed, sans-serif, and monospaced styles which share
+the same stem weight, x-height, capital height, ascent and descent. Lucidux
+fonts harmonise with Lucida (R) fonts of the same vertical proportions and
+weights. The character width metrics of Lucidux roman fonts match those of
+core fonts bundled with several window systems.
+
+Each PFA file has a copy of the license terms in PS comment lines. The
+license terms are also included in the file COPYRIGHT.BH for convenience, and
+in the License document.
+
+The design and font outlines were donated by Charles Bigelow and Kris Holmes
+from Bigelow and Holmes Inc., and the hinting was donated by Berthold Horn
+and Blenda Horn from Y&Y, Inc. For more information, please contact
+<design@bigelowandholmes.com> or <sales@yandy.com>, or consult Y&Y's web site
+<URL:http://www.yandy.com>.
+
3. Internationalisation of scalable font backends.
The scalable font backends (Type 1, Speedo, TrueType) can now automatically
@@ -730,7 +769,7 @@ used for horizontal text (e.g. the CMap `KSC-EUC-H' will be used, but not
`KSC-EUC-V'). This limitation is due to the fact that the core X11 protocol
only provides support for horizontal writing.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.6 2000/02/14 19:20:44 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.7 2000/03/06 22:59:25 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.7 2000/02/21 22:44:40 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.9 2000/03/07 14:55:08 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.i740 b/xc/programs/Xserver/hw/xfree86/doc/README.i740
index 6020b7e09..bbdafe1db 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.i740
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.i740
@@ -6,16 +6,16 @@
1. Supported Hardware
- o Intel 740 based cards
+ o Intel 740 based cards.
2. Features
- o Full support for 8, 15, 16, 24 and 32 bit per pixel depths.
+ o Full support for 8, 15, 16, and 24 bit pixel depths.
o Hardware cursor support to reduce sprite flicker.
o Hardware accelerated 2D drawing engine support for 8, 15, 16 and 24 bit
- per pixel depths.
+ pixel depths.
o Support for high resolution video modes up to 1600x1200.
@@ -29,7 +29,8 @@
3. Technical Notes
- o Hardware acceleration is not possible in 32 bit per pixel depth.
+ o Hardware acceleration is not possible when using the framebuffer in 32
+ bit per pixel format.
o Interlace modes cannot be supported.
@@ -118,10 +119,11 @@ card. The only lines you need in the "Device" section of your XF86Config
file are:
Section "Device"
- Identifier "i740"
+ Identifier "Intel i740"
+ Driver "i740"
EndSection
-or let xf86config or XF86Setup do this for you.
+or let xf86config do this for you.
However, if you have problems with auto-detection, you can specify:
@@ -135,15 +137,20 @@ However, if you have problems with auto-detection, you can specify:
6. Driver Options
- o "hw_cursor" - request hardware cursor (default)
+ o "NoAccel" - Turn off hardware acceleration
- o "sw_cursor" - software cursor only
+ o "SWCursor" - Request a software cursor (hardware is default)
- o "no_accel" - software rendering only
+ o "SDRAM" - Force the use of SDRAM timings
- o "sgram" - force the use of SGRAM timing info
+ o "SGRAM" - Force the use of SGRAM timings
- o "sdram" - force the use of SDRAM timing info
+ o "SlowRam" - Force the use of slower ram timings
+
+ o "Dac6Bit" - Force the use of a 6 Bit Dac (8 Bit is the default)
+
+ o "UsePIO - Force the use of programmed IO (Memory mapped is the
+ default)
Note: the i740 X server should automatically detect whether your card has
SGRAM or SDRAM. Use the "sgram" and "sdram" options if it is incorrectly
@@ -151,12 +158,14 @@ detected.
7. Known Limitations
- o Certain drawing operations are very slow when using 24 bit per pixel
- depth mode. We hope to fix this in a future release.
+ o Certain drawing operations are very slow when using 24 bit pixel depth
+ mode.
8. Author
- o Kevin E. Martin <kevin@precisioninsight.com>
+ o Original version by Kevin E Martin <kevin@precisioninsight.com>
+
+ o Daryll Strauss <daryll@precisioninsight.com>
This driver was donated to The XFree86 Project by:
@@ -166,7 +175,7 @@ This driver was donated to The XFree86 Project by:
http://www.precisioninsight.com
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml,v 1.2 1999/08/23 06:18:34 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml,v 1.3 2000/03/04 00:26:30 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.i740,v 1.4 2000/02/21 22:44:40 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.i740,v 1.6 2000/03/04 00:51:32 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.i810 b/xc/programs/Xserver/hw/xfree86/doc/README.i810
new file mode 100644
index 000000000..05b5759a8
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.i810
@@ -0,0 +1,110 @@
+ Information for i810 Users
+
+ Precision Insight, Inc.
+
+ 3 March 2000
+
+1. Supported Hardware
+
+ o Intel 810 motherboards:
+
+ o i810,
+
+ o i810-dc100,
+
+ o i810e
+
+2. Features
+
+ o Full support for 8, 15, 16, and 24 bit pixel depths.
+
+ o Hardware cursor support to reduce sprite flicker.
+
+ o Hardware accelerated 2D drawing engine support for 8, 15, 16 and 24 bit
+ pixel depths.
+
+ o Support for high resolution video modes up to 1600x1200.
+
+ o Fully programmable clock supported.
+
+ o Robust text mode restore for VT switching.
+
+3. Technical Notes
+
+ o Hardware acceleration is not possible when using the framebuffer in 32
+ bit per pixel format, and this mode is not supported by this driver.
+
+ o Interlace modes cannot be supported.
+
+ o This driver currently only works for Linux/ix86, and normal use requires
+ the agpgart.o kernel module, included in Linux kernels 2.3.42 and
+ higher.
+
+4. Reported Working Video Cards
+
+ o Intel evaluation hardware - i810, i810-dc100 and i810e.
+
+ o Tyan Tomcat Motherboard.
+
+ o HappyPC set-top box.
+
+5. Configuration
+
+The driver auto-detects all device information necessary to initialize the
+card. The only lines you need in the "Device" section of your XF86Config
+file are:
+
+ Section "Device"
+ Identifier "Intel i810"
+ Driver "i810"
+ EndSection
+
+or let xf86config do this for you.
+
+However, if you have problems with auto-detection, you can specify:
+
+ o DacSpeed - in MHz
+
+ o MemBase - physical address of the linear framebuffer
+
+ o IOBase - physical address of the memory mapped IO registers
+
+In order to use most resolutions, it is necessary to install the 'agpgart.o'
+module. You will probably have to compile the module yourself (see the notes
+in the module).
+
+Note: the i810 driver detects whether your motherboard has display cache
+video memory. This memory is has reduced bandwidth compared to normal system
+memory, and isn't used by the server. The main function of this memory is
+for ancillary buffers (eg. z buffer) in a forthcoming 3d capable server.
+
+6. Driver Options
+
+ o "NoAccel" - Turn off hardware acceleration
+
+ o "SWCursor" - Request a software cursor (hardware is default)
+
+ o "Dac6Bit" - Force the use of a 6 Bit Dac (8 Bit is the default)
+
+7. Known Limitations
+
+ o No 3D support in this release.
+
+ o Running two X servers on different VTs is not supported at this time.
+
+8. Author
+
+ o Keith Whitwell
+
+This driver was donated to The XFree86 Project by:
+
+ Precision Insight, Inc.
+ Cedar Park, TX
+ USA
+
+http://www.precisioninsight.com
+
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml,v 1.2 2000/03/04 00:00:30 dawes Exp $
+
+
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.i810,v 1.3 2000/03/04 00:51:32 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.isc b/xc/programs/Xserver/hw/xfree86/doc/README.isc
index 4fdbf4747..43c6ff8a7 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.isc
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.isc
@@ -2,7 +2,7 @@
Michael Rohleder
- 06 March 1999
+ 05 March 2000
1. X11R6/XFree86 on Interactive Unix
@@ -27,6 +27,11 @@ consuming if you want to build X11-clients with X11R6. Best you mix X11R6
Server with X11R5 and X11R4 clients. And only compile clients who need the
new facilities provided in the X11R6 Libraries against them.
+ Please note:
+ XFree86 Version 4.0 will be the last version which is known
+ to compile on Interactive Unix.
+ I've only tested this version on Interactive Unix, Version 4.1mu.
+
2. Things needed for compiling the sources
gcc
@@ -312,105 +317,53 @@ Please add the following at the bottom of math.h, before the last #endif
3Dlabs GLINT Permedia rev 1
3Dlabs GLINT Delta rev 1
-6. XKeyboard Extension
-
- o Sample Setup ...
-
- Here is a sample XKeyboard Definition to include inside the Keyboard
- Section of your XF86Config File.
-
- Xkbkeycodes "xfree86"
- /* XkbSymbols "us(pc101)+de_nodead" */
- /* This has changed between 3.1.2E and 3.1.2F */
- /* it is now: */
- XkbSymbols "us(pc102)+de(nodeadkeys)"
- XkbTypes "default"
- XkbCompat "default"
- XkbGeometry "pc"
-
- or you could use this one with the new Options:
-
- XkbRules "xfree86"
- XkbModel "pc102"
- XkbLayout "de"
- XkbVariant "nodeadkeys"
-
-7. Multibuffer Extension
+6. Multibuffer Extension
This is an obsolete Extension. Anyway, if you want to include this Extension
inside your build, you have to add: #define BuildMultibuffer YES
inside xf86site.def Please note, this Extension should be disabled when
building the Loader Server.
-8. Default Definitions
+7. Default Definitions
These are default options defined inside isc.cf. You can redefine them
inside host.def.
- /* Disable the use of /var/X11 */
- #ifndef HasVarDirectory
- #define HasVarDirectory NO
- #endif
+Here is a sample host.def (the one I use for XFree86 4.0):
- /* Use mmap Driver */
- #ifndef HasSVR3mmapDrv
- # define HasSVR3mmapDrv YES
- #endif
+ /* Disable the use of /var/X11 and /etc/X11 */
+ #define HasVarDirectory NO
+ #define UseEtcX11 NO
/* Use inline Math from linux ;-) package inline-math-2.6.tar.gz */
/* should be available on your favorite linux ftp */
- #ifndef UseInlineMath
# define UseInlineMath YES
- #endif
/* Use cbrt from liboptm.a (Interactive icc Compiler) */
- #ifndef HasCbrt
# define HasCbrt YES
- #endif
/* Use GNUs MallocLibrary (and the Location for the Lib) */
- #ifndef UseGnuMalloc
# define UseGnuMalloc YES
- #endif
-
- /* Install Zlib Headers - used in lib/zlib/Imakefile */
- #ifndef OsNeedZlibHeaders
- # define OsNeedZlibHeaders YES
- #endif
/* Expand Manual Pages (needs S5L) */
- #ifndef ExpandManNames
# define ExpandManNames YES
- #endif
/* if you have groff or the TextProcessingWorkbench - don't preformat*/
- #ifndef FormattedManPages
# define FormattedManPages NO
- #endif
-
- #ifndef HasSgmlFmt /* HasLinuxDoc */
- # define HasSgmlFmt YES
- #endif
/* XF86Setup Util */
- #ifndef HasTk
- #define HasTk YES
- #define HasTcl YES
- #endif
-
- #ifndef HasPosixRegex /* Need extra/regex since 3.9Ns */
- #define HasPosixRegex NO
- #endif
+ # define HasTk YES
+ # define HasTcl YES
- #ifndef DoLoadableServer
- #define DoLoadableServer YES
- #endif
+ /* use doctools */
+ # define HasSgmlFmt YES
+ # define BuildAllDocs YES
+ # define BuildLinuxDocText NO
+ # define BuildLinuxDocPS NO
- #ifndef CpuOption
- #define CpuOption -mpentium
- #endif
+ #define GlxBuiltInMesa YES
-9. Installation
+8. Installation
After your make World BOOTSTRAPCFLAGS="... succeed,
@@ -425,10 +378,6 @@ another filesystem.
to install the compressed nroff versions of the manual pages into
/usr/X11R6/man. This directory will be generated if it doesn't exist.
- make install.linkkit
-
-to install the server binary LinkKit into /usr/X11R6/lib/Server.
-
You should tune the Kernel using the command-file
/usr/X11R6/lib/X11/etc/xf86install
@@ -468,26 +417,13 @@ You also should increase MAXUMEM to its maximum, else programs may die with:
You could do this automatically with menu entry no. 5.
-10. Using ...
+9. Using ...
o Xprt:
The new Xprint Server is configured to use lpr as its print helper so
you have to install and configure lpr to use Xprt.
- o Keyboard:
-
- You don't need any modmap-File to get your keyboard working with any
- iso-8859-1 Font. Simply enable
-
- o LeftAlt Meta
-
- o RightAlt ModeShift
-
- o RightCtl Compose
-
- in your XF86Config - Section "Keyboard"
-
o xpcterm:
if you want to get the German 'Umlaut' inside your ISC X11R4 client xpc-
@@ -544,13 +480,13 @@ You could do this automatically with menu entry no. 5.
This message either isn't critical. Interactive doesn't support
this kind of connection.
-11. Acknowledgements
+10. Acknowledgements
All thanks should go to the members of the XFree86 Team for their great work
and the X Consortium for their Public Release of X11R6, as to all who con-
tribute to this excellent piece of free software.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml,v 3.22 1999/08/28 10:43:33 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml,v 3.24 2000/03/06 22:59:25 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.isc,v 3.34 2000/02/21 22:44:40 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.isc,v 3.37 2000/03/07 14:55:09 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.mouse b/xc/programs/Xserver/hw/xfree86/doc/README.mouse
index 29783cc73..9f2678dd7 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.mouse
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.mouse
@@ -6,7 +6,7 @@
1. Introduction
-This document describes mouse support in XFree86 3.9.18.
+This document describes mouse support in XFree86 4.0.
Mouse configuration has often been mysterious task for novice users. How-
ever, once you learn several basics, it is straightforward to write the mouse
@@ -406,8 +406,7 @@ too.
5.2 ZAxisMappping
-This option maps the Z axis (wheel) motion to a pair of buttons or to another
-axis.
+This option maps the Z axis (wheel) motion to buttons or to another axis.
Option "ZAxisMapping" "X"
Option "ZAxisMapping" "Y"
@@ -423,10 +422,21 @@ used and the buttons N1 or N2 actually exists in the mouse, their actions
won't be detected by the X server.
The last example is useful for the mouse with two wheels of which the second
-wheel is used to generate horizontal scroll action. The motion of the second
-wheel will be mapped to the buttons N3, for the negative direction, and N4,
-for the positive direction. If the buttons N3 and N4 actually exist in this
-mouse, their actions won't be detected by the X server.
+wheel is used to generate horizontal scroll action, and the mouse which has a
+knob or a stick which can detect the horizontal force applied by the user.
+The motion of the second wheel will be mapped to the buttons N3, for the neg-
+ative direction, and N4, for the positive direction. If the buttons N3 and
+N4 actually exist in this mouse, their actions won't be detected by the X
+server.
+
+NOTE #1: horizontal movement may not always be detected by the current ver-
+sion of the XFree86 X servers, because there appears to be no accepted stan-
+dard as to how the horizontal direction is encoded in mouse data.
+
+NOTE #2: Some mice think left is the negative horizontal direction, others
+may think otherwise. Moreover, there are some mice whose two wheels are both
+mounted vertically, and the direction of the second vertical wheel does not
+match the first one's.
Currently this option can not be set in the XF86Setup program. You need to
edit the XF86Config file by hand to add this option.
@@ -843,7 +853,7 @@ This can be done by the following command:
xmodmap -e "pointer = 1 6 3 2 4 5"
-After this command is run, the correspondance between the buttons and button
+After this command is run, the correspondence between the buttons and button
numbers will be as shown in the following table.
Physical Buttons Reported as:
@@ -869,7 +879,7 @@ the following InputDevice section.
The IntelliMouse Explorer has 5 buttons, thus, you should give "7" to the
Buttons option if you want to map the wheel movement to buttons (6 and 7).
-With this configuration, the correspondance between the buttons and button
+With this configuration, the correspondence between the buttons and button
numbers will be as follows:
Physical Buttons Reported as:
@@ -915,7 +925,7 @@ have the following InputDevice section.
The movement of the first wheel is mapped to the button 4 and 5. The second
wheel's movement will be reported as the buttons 6 and 7.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml,v 1.9 2000/02/12 20:45:20 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml,v 1.11 2000/03/01 00:25:23 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.mouse,v 1.8 2000/02/21 22:44:41 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.mouse,v 1.9 2000/03/01 01:48:26 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.neomagic b/xc/programs/Xserver/hw/xfree86/doc/README.neomagic
index 636e4d921..ae3b2b005 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.neomagic
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.neomagic
@@ -195,4 +195,4 @@ http://www.precisioninsight.com
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/neomagic.sgml,v 1.1 1999/08/23 06:59:39 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.neomagic,v 1.2 2000/02/21 22:44:42 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.neomagic,v 1.3 2000/03/01 01:48:26 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.r128 b/xc/programs/Xserver/hw/xfree86/doc/README.r128
index 138c77d7d..ff7f6a56d 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.r128
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.r128
@@ -11,7 +11,7 @@
2. Features
o Full support (including hardware accelerated 2D drawing) for 8, 15, 16,
- 24, and 32 bit per pixel depths.
+ 24 bit pixel depths.
o Hardware cursor support to reduce sprite flicker.
@@ -44,11 +44,11 @@ card. The only lines you need in the "Device" section of your XF86Config
file are:
Section "Device"
- Identifier "Rage 128"
- Driver "r128"
+ Identifier "Rage 128"
+ Driver "r128"
EndSection
-or let xf86config or XF86Setup do this for you.
+or let xf86config do this for you.
However, if you have problems with auto-detection, you can specify:
@@ -74,31 +74,31 @@ However, if you have problems with auto-detection, you can specify:
7. Known Limitations
- o None
+ o DGA is not supported yet
8. Authors
-The XFree86 3.9 driver was ported from XFree86 3.3 and enhanced by:
+The XFree86 4 driver was ported from XFree86 3.3.x and enhanced by:
o Rickard E. (Rik) Faith <faith@precisioninsight.com>
o Kevin E. Martin <kevin@precisioninsight.com>
-The XFree86 3.9 driver was funded by ATI and was donated to The XFree86 Pro-
-ject by:
+The XFree86 4 driver was funded by ATI and was donated to The XFree86 Project
+by:
Precision Insight, Inc.
Cedar Park, TX
USA
-The XFree86 3.3 driver used for the port was written by:
+The XFree86 3.3.x driver used for the port was written by:
o Rickard E. (Rik) Faith <faith@precisioninsight.com>
o Kevin E. Martin <kevin@precisioninsight.com>
-The XFree86 3.3 driver was funded by ATI and was donated to The XFree86 Pro-
-ject by Precision Insight, Inc. It was based in part on an earlier driver
+The XFree86 3.3.x driver was funded by ATI and was donated to The XFree86
+Project by Precision Insight, Inc. It was based in part on an earlier driver
that was written by:
o Alan Hourihane <alanh@fairlite.demon.co.uk>
@@ -116,7 +116,7 @@ http://www.precisioninsight.com
http://www.suse.com
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.4 2000/01/24 19:38:30 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.7 2000/03/08 15:14:48 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.r128,v 1.5 2000/02/21 22:44:42 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.r128,v 1.10 2000/03/08 20:39:23 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.rendition b/xc/programs/Xserver/hw/xfree86/doc/README.rendition
index 98aa7482f..71411f8ba 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.rendition
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.rendition
@@ -8,8 +8,8 @@
All cards based on the V1000 or the V2x00 should be supported. The server was
tested on a miroCRYSTAL VRX (V1000), Intergraph Intense-100 3D (V1000), Dia-
-mond Stealth II S220 (V2100), Hercules Thriller3D (V2200) and Innovision War-
-rior3D (V2200).
+mond Stealth II S220 (V2100), Hercules Thriller3D (V2200), Innovision War-
+rior3D (V2200) and Genoa V-Raptor (v2200).
2. Limitations
@@ -81,15 +81,41 @@ revert back to software cursor.
poses. This might change before final XFree86 4.0 release. Safe
to disable if you experience problems during startup of X-server.
+ Option "ShadowFB"
+ If this option is enabled, the driver will cause the CPU to do
+ each drawing operation first into a shadow frame buffer in system
+ virtual memory and then copy the result into video memory. If
+ this option is not active, the CPU will draw directly into video
+ memory. Enabling this option is beneficial for those systems
+ where reading from video memory is, on average, slower than the
+ corresponding read/modify/write operation in system virtual mem-
+ ory. This is normally the case for PCI or AGP adapters, and, so,
+ this option is enabled by default unless acceleration is enabled.
+
+ Option "Rotate"
+ The option expect a value "CW" for clockwise or "CCW" for coun-
+ terclockwise rotation of the screen. This is useful when you need
+ more height then width on the screen. Desktop publishing is one
+ example where a monitor could display the whole page at once on a
+ monitor laying on the side. Notice that this option requires
+ "ShadowFB" and automatically enable it. It also disables the
+ acceleration. The option is not activated by default.
+
6. News in this release
o Acceleration! Disabled for the moment.
-7. Major fixes in this release
+7. Major changes in this release
+
+ o ShadowFB support added
o To be determined before final release.
-8. Known problems in current driver
+8. Bugfixes
+
+ o 8bpp finally works correctly again
+
+9. Known problems in current driver
o The acceleration code hangs the computer during X-server startup.
@@ -103,13 +129,13 @@ revert back to software cursor.
around. V2x00 does not exhibit this problem. Probably a bug in the
driver rather than a limitation of the chip.
-9. Work in progress (not finished in time for release)
+10. Work in progress (not finished in time for release)
o Acceleration is disabled for the moment. If you want to play with it
enable the "USE_ACCEL" define in rendition.c file! Beware as it has sev-
eral bugs left to clear out before if is stable for general use.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml,v 1.6 2000/01/24 19:38:30 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml,v 1.8 2000/03/01 23:54:34 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.rendition,v 1.7 2000/02/21 22:44:42 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.rendition,v 1.9 2000/03/04 00:51:33 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.s3virge b/xc/programs/Xserver/hw/xfree86/doc/README.s3virge
index f7906e79d..86449d4d8 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.s3virge
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.s3virge
@@ -6,7 +6,7 @@
1. Supported hardware
-The s3virge driver in XFree86 3.9.18 supports the S3 ViRGE, ViRGE DX, GX, MX,
+The s3virge driver in XFree86 4.0 supports the S3 ViRGE, ViRGE DX, GX, MX,
MX+, and VX chipsets. A majority of testing is done on ViRGE DX chips, mak-
ing them the most stable to date. This release has improved support for 24
bit color depths and resolves all the known issues with Netscape and other
@@ -62,4 +62,4 @@ tact our support email address <XFree86@Xfree86.org>
Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/s3virge.sgml,v 1.2 1999/07/10 12:17:25 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.s3virge,v 1.3 2000/02/21 22:44:42 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.s3virge,v 1.4 2000/03/01 01:48:27 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.trident b/xc/programs/Xserver/hw/xfree86/doc/README.trident
index f1b0814cb..304ccb501 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.trident
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.trident
@@ -177,4 +177,4 @@ wait states etc. on the card and in the BIOS setup.
$XConsortium: trident.sgml /main/11 1996/10/28 04:24:08 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.trident,v 3.37 2000/02/21 22:44:43 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.trident,v 3.38 2000/03/01 01:48:28 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/README.tseng b/xc/programs/Xserver/hw/xfree86/doc/README.tseng
index 119f0c5d0..9ef862786 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/README.tseng
+++ b/xc/programs/Xserver/hw/xfree86/doc/README.tseng
@@ -1014,4 +1014,4 @@ incomplete):
$XConsortium: tseng.sgml /main/6 1996/10/27 11:06:09 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.tseng,v 3.40 2000/02/21 22:44:43 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.tseng,v 3.41 2000/03/01 01:48:28 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/RELNOTES b/xc/programs/Xserver/hw/xfree86/doc/RELNOTES
index 3d35f61aa..1d5fc91a6 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/RELNOTES
+++ b/xc/programs/Xserver/hw/xfree86/doc/RELNOTES
@@ -1,143 +1,79 @@
- Release Notes for XFree86[tm] 3.9.18
+ Release Notes for XFree86[tm] 4.0
The XFree86 Project, Inc
- 21 February 2000
+ 7 March 2000
Abstract
This document contains some information about the features present
- in XFree86 3.9.18 and their status.
-
-1. Summary of new features in 3.9.18 compared with 3.9.17.
-
-This section contains a brief summary of what has changed since the previous
-snapshot. Unfortunately, only a small number of changes are listed here.
-For detailed information, refer to the CHANGELOG file in the xc/pro-
-grams/Xserver/hw/xfree86 directory in the source tree. The sections that
-follow this one have details of features that are new to the pre-4.0 snapshot
-series.
-
- o The NVIDIA (nv) driver now uses MMIO for VGA port access and has DDC
- support.
-
- o The 8+24 support used by the Matrox (mga) and 3Dlabs (glint) drivers is
- now a non-destructive overlay.
-
- o The Xinerama extension has been completely rewritten for improved per-
- formance and correctness.
-
- o The server can now load/initialise extension modules that it doesn't
- have built-in knowledge of.
-
- o More PS/2 mice (Microsoft IntelliMouse Explorer, Genius NetScroll Mouse
- Optical, IBM ScrollPoint) and serial PnP mice (A4 Tech 4D/4D+, MouseSys-
- tems SmartScroll, Logitech Cordless MouseMan Wheel, 8D Scroll mouse) are
- recognized and supported. USB mice support is also available in FreeBSD
- and OpenBSD.
-
- o A DPS extension for XFree86 is currently under development. The DPS
- client library is now part of the XFree86 source tree; the extension
- code itself, however, cannot be integrated for licensing reasons and is
- distributed separately. For more information, please consult the DPS
- site at SourceForge <URL:http://dps.sourceforge.net>.
-
- o The "apm" driver (Alliance Pro Motion) has been updated. Support for
- the AT24 has been added in this release, and acceleration has been
- improved. Further details can be found in the APM section (section
- 4.12.1, page 1) below.
-
- o Preliminary support has been added to the X server for the extended keys
- on some "Internet" keyboards.
-
- o A new X server extension has been added for optimising access to metric
- data for large fonts.
-
-2. Summary of new features in 3.9.17 compared with 3.9.16.
-
- o The 3dfx driver is now supported by the DRI.
-
- o Tiny-X for the Itsy has been added.
-
- o Significant font and font server enhancements.
-
- o New driver for ATI Rage 128. The driver is called "r128".
-
- o Xterm enhancements and fixes.
-
- o DPS support hooks have been added. Display Postscript support is being
- maintained outside of the server tree due to licensing issues. A web
- page for DPS resources under XFree86 will be available shortly.
-
- o DRI enhancements including Mesa update to version 3.2, full support and
- fifo code for 3dfx hardware, and device driver updates for Linux 2.3
- kernels.
-
- o Significant enhancements to Xv including support for XvImages (YUV XIm-
- ages).
-
- o Add initial VESA VBE support including initialization and DDC.
-
- o Several PCI enhancements.
-
- o "SilkenMouse" (asynchronous pointer handling) for smoother mouse move-
- ment.
-
- o Add GeForce/Quadro support to the NVIDIA driver.
-
- o Int10 "soft-booting" support for Linux.
-
- o Resource allocation infrastructure added.
-
- o Syntax of the layout section has changed to make multi-head configura-
- tion easier.
-
- o Some Xinerama bug fixes.
-
- o The DGA 2.0 interface is mostly finalized and includes some preliminary
- documentation.
-
- o ViRGE MX Melco BIOS support has been added.
-
- o Keyboard AutoRepeat now works correctly on Linux. This means that the
- AutoRepeat keyword in XF86Config is now obeyed; you may be more comfort-
- able using "250 30" rather than the default setting of "500 5".
-
-3. Summary of new features in 3.9.16 compared with 3.9.15.
-
- o The "apm" driver has been updated. See the APM section (section 4.12.1,
- page 1) below.
-
- o A driver for NVIDIA chipsets is now included. The driver is called
- "nv". Some very basic information can be found in the nv(4) man page.
-
- o The default xdm config file now has a line to disable listening for
- XDMCP requests. This is fine when xdm is only managing a local X
- server. The line must be commented out when xdm is used to manage
- external X servers (e.g., X terminals).
-
- o New driver for Intel i740. The driver is called "i740".
-
- o New driver for 3Dfx Banshee and Voodoo 3. The driver is called "tdfx".
-
- o Some work on adding WYSIWYG capabilities to the Xaw text widget.
-
- o Some preliminary support for programming modes has been added to xedit.
-
-4. X server
+ in XFree86 4.0 and their status.
+
+1. Introduction
+
+XFree86 4.0 is the first official release of the new XFree86 4. XFree86 4
+represents a significant redesign of the XFree86 X server. It is very impor-
+tant to keep in mind that XFree86 4 is still very much in development, and it
+contains a lot of new work. That means two things: there is a lot of new
+exciting stuff to try, but being new code, it hasn't had nearly as much of a
+workout as the stable 3.3.x releases. If you're looking for a well-tested,
+stable release, and can't afford the inconveniences that new software can
+sometimes cause, then you are probably better off sticking with the 3.3.x
+releases for now. If you have the resources to try out the new version and
+investigate its features, or if you just like being on the bleeding edge,
+then please try 4.0!
+
+This release isn't quite as complete as we would have liked. The main miss-
+ing pieces are a nice configuration tool and support for some of the hardware
+that 3.3.x supports. The first point means that configuring the server might
+be more painful than usual. The second means that your hardware might not be
+supported by 4.0, or it might be supported at a lesser level (conversely,
+some hardware is better supported in 4.0). We've attempted to provide some
+information about the second point in our Driver Status document. Please
+check there first before trying 4.0. Unfortunately that document is still
+fairly basic, but it should at least give you an idea of whether you're
+likely to be able to use 4.0 at all or not.
+
+On the subject of configuration, we have updated the basic text-based tool
+"xf86config" to generate config files in the format required by 4.0 (3.3.x
+config files won't really work with 4.0). We're also working on some other
+configuration tools, including one that is built-in to the X server. An
+early version of this is included in the release, and it works well for some
+hardware. To try it out, just run (as root) "XFree86 -configure". Both of
+these configuration options will at worst give you a reasonable starting
+point for a suitable configuration file. We've put some effort into docu-
+menting the 4.0 config file format, and you can find that information in the
+XF86Config manual page. Please check that and the driver manual pages and
+related documentation for further information about that.
+
+Oh, another thing you might notice is that our documentation is rather
+patchy. Most of what is present should be in reasonable shape, but there are
+gaps. We thought it better to leave out docs that were very out of date
+rather than providing inaccurate and misleading information.
+
+Finally, before you download and install the binary distributions for this
+release, please have a quick read through the Installation Document. It may
+save you some time.
+
+If those cautionary notes haven't turned you away (and we certainly hope
+not), please read on... The sections below describe some of the new features
+and changes between 3.3.x and 4.0. There is a lot of new stuff, and we defi-
+nitely don't have enough space to cover it all here.
+
+2. X server
Unlike XFree86 3.3.x where there are multiple X server binaries, each of
-which drive different hardware, XFree86 3.9.18 has a single X server binary
-(called XFree86). This binary can either have one or more video drivers
-linked in statically, or, more usually, dynamically load the video drivers
-and other modules that are needed.
+which drive different hardware, XFree86 4.0 has a single X server binary
+called XFree86. This binary can either have one or more video drivers linked
+in statically, or, more usually, dynamically load the video drivers and other
+modules that are needed.
-XFree86 3.9.18 has X server support for most UNIX(R) and UNIX-like operating
+XFree86 4.0 has X server support for most UNIX(R) and UNIX-like operating
systems on Intel/x86 platforms, plus support for Linux on Alpha and PowerPC
-platforms. Support for additional architectures and operating systems is
-planned for future releases.
+platforms. Work on support for additional architectures and operating sys-
+tems is in progress, and is planned for future releases.
-4.1 Loader and Modules
+2.1 Loader and Modules
The XFree86 X server has a built-in run-time loader, donated by Metro Link
<URL:http://www.metrolink.com>. This loader can load normal object files and
@@ -149,41 +85,47 @@ of CPU architecture). This means that, for example, a module compiled on
Linux/x86 can be loaded by an X server running on Solaris/x86, or FreeBSD, or
even OS/2. One of the main benefits of this is that when modules are
updated, they don't need to be recompiled for each different operating sys-
-tem.
+tem. We're planning to take advantage of this to provide more frequent
+driver module updates in between major releases.
-The loader in version 3.9.18 has support for Intel (x86), Alpha and PowerPC
-platforms. It also has preliminary support for Sparc platforms.
+The loader in version 4.0 has support for Intel (x86), Alpha and PowerPC
+platforms. It also has preliminary support for Sparc platforms but this
+isn't used yet.
The X server makes use of modules for video drivers, X server extensions,
font rasterisers, input device drivers, framebuffer layers (like mfb, cfb,
etc), and internal components used by some drivers (like XAA),
-The module interfaces (API and ABI) used in the snapshot releases are subject
-to change without notice. This means that there is no guarantee that modules
-built for one snapshot release will function with another snapshot release.
-As of the 4.0 release we plan to make every effort to provide backward com-
-patibility for the module interfaces (that means older modules working with
-newer core X server binaries).
+The module interfaces (API and ABI) used in this release is still subject to
+change without notice. While we'll attempt to provide backward compatibility
+for the module interfaces as of the 4.0 release (meaning that 4.0 modules
+will work with future core X server binaries), we can't guarantee that this
+will be the case. We are planning to fully document and stabilise the module
+interfaces in a future release, and at that point backward compatibility will
+be easier to achieve.
Note about module security
The XFree86 X server runs with root privileges, which means that
the X server loadable modules also run with these privileges. For
this reason we recommend that all users be careful to only use
- loadable modules from reliable sources. By the time that XFree86
- 4.0 is released, we hope to have implemented a method for sign-
- ing/verifying modules that we provide.
+ loadable modules from reliable sources. We hope to have a mecha-
+ nism for signing/verifying the modules that we provide available in
+ a future release.
-4.2 Configuration File
+2.2 Configuration File
The X server configuration file format has been extended to handle some of
the new functionality. The xf86config utility can be used to generate a
-basic config file, that may require some manual editing. Alternatively, the
-sample config file XF86Config.eg that is installed in /usr/X11R6/lib/X11 may
-be used as a starting point. The XF86Setup utility is currently not usable,
-but work is continuing in this area.
+basic config file, that may require some manual editing. The X server also
+has preliminary support for generating a basic config file. This is done by
+running (as root) "XFree86 -configure". Alternatively, the sample config
+file XF86Config.eg that is installed in /usr/X11R6/lib/X11 may be used as a
+starting point. The XF86Setup utility is currently not usable, but work is
+continuing in this area.
-The main changes are:
+The main changes are covered here, but please refer to the XF86Config manual
+page for more comprehensive information:
o The Module section is used to load server extension modules and font
modules, but not XInput drivers. The .so suffix should no longer be
@@ -191,11 +133,13 @@ The main changes are:
loading the module via a SubSection instead of the usual Load keyword.
The bitmap module is the only font module that is loaded by default. No
server extensions are loaded by default, but some are built-in to the
- server. The following example shows how to load all the server exten-
- sions plus the Type1 and TrueType fonts support, and a commented example
- that shows how to pass options to an extension (this one is for loading
- the misc extensions (extmod) with the XFree86-VidModeExtension dis-
- abled):
+ server. It is strongly recommended that the extension module containing
+ a range of small miscellaneous extensions (extmod) be loaded because
+ some commonly used things won't work correctly without it. The follow-
+ ing example shows how to load all the server extensions plus the Type1
+ and TrueType fonts support, and a commented example that shows how to
+ pass options to an extension (this one is for loading the misc exten-
+ sions (extmod) with the XFree86-VidModeExtension disabled):
Section "Module"
@@ -236,7 +180,8 @@ The main changes are:
false. Frequency options can have the strings Hz, kHz, or MHz appended
to the numerical value specified.
- Note: the value must always be enclosed in double quotes (").
+ Note: the value must always be enclosed in double quotes ("), even when
+ it is numerical.
o The ServerFlags section now accepts its parameters as Options instead of
as special keywords. The older keyword format is still recognised for
@@ -249,15 +194,15 @@ The main changes are:
Option "blank time" "10"
Option "standby time" "20"
Option "suspend time" "30"
- Option "off time" "60"
+ Option "off time" "40"
o The Keyboard, Pointer and XInput sections have been replaced by a more
general InputDevice section. The old Keyboard and Pointer sections are
still recognised for compatibility purposes, but they are deprecated and
- support for them may be dropped in future releases. The keywords from
- the old sections are expressed as Options in the InputDevice sections.
- The following example shows typical InputDevice sections for the core
- mouse and keyboard.
+ support for them may be dropped in future releases. The old XInput sec-
+ tions are no longer recognised. The keywords from the old sections are
+ expressed as Options in the InputDevice sections. The following example
+ shows typical InputDevice sections for the core mouse and keyboard.
Section "InputDevice"
Identifier "Keyboard 1"
@@ -272,23 +217,21 @@ The main changes are:
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/mouse"
- SampleRate 80
+ Option "SampleRate" "80"
EndSection
- Note: Additional sample rates have been added for some mice. Matching
- the mouse sampling rate with the vertical refresh rate can yield very
- noticeable improvements in smoothness of pointer event driven operations
- such as window moves and scrolling.
-
o The Monitor section is mostly unchanged. The main difference is that a
set of VESA modes is defined internally in the server, and so for most
monitors, it isn't necessary to specify any modes explicitly in the Mon-
- itor section. The Monitor section may also include Options. Options
- that are monitor-specific, like the "DPMS" and "Sync on Green" options
- are best specified in the Monitor sections.
+ itor section. There is also a new Modes section that can be used to
+ define a set of modes separately from the Monitor section, and the Moni-
+ tor section may "include" them with the "UseModes" keyword. The Monitor
+ section may also include Options. Options that are monitor-specific,
+ like the "DPMS" and "Sync on Green" options are best specified in the
+ Monitor sections.
o The Device sections are mostly unchanged. The main difference is the
- new (and mandatory) Driver keyword, that specifies which video driver
+ new (and mandatory) Driver keyword that specifies which video driver
should be loaded to drive the video card. Another difference is the
BusID keyword that is used to specify which of possibly multiple video
cards the Device section is for. The following is an example for a
@@ -323,13 +266,14 @@ The main changes are:
Option "BlankTime" "5"
EndSection
- See the document xc/programs/Xserver/hw/xfree86/doc/DESIGN for a more
- detailed explanation of the new ServerLayout section syntax.
+ See the XF86Config man page for a more detailed explanation of the for-
+ mat of the new ServerLayout section.
The config file search patch has been extended, with the directories /etc/X11
-and /usr/X11R6/etc being added.
+and /usr/X11R6/etc/X11 being added. The full search path details are docu-
+mented in the XF86Config manual page.
-4.3 Command Line Options
+2.3 Command Line Options
The following new X server command line options have been added:
@@ -408,16 +352,13 @@ The following new X server command line options have been added:
-logfile file
This specifies the log file name. When specified here,
- it overrides the value specified in the config file.
- This option is only available when the server is started
- by the root user.
+ it overrides the default value. This option is only
+ available when the server is started by the root user.
-scanpci
This specifies that the scanpci module should be loaded
- and executed. This does a scan of the PCI bus. This
- option is only available when the server is started by
- the root user.
+ and executed. This does a scan of the PCI bus.
-logverbose [n]
@@ -443,29 +384,29 @@ The following X server command line options have been changed since 3.3.x:
This makes it possible for users to choose from multiple
config files that the the sysadmin has provided.
-4.4 XAA
+2.4 XAA
The XFree86 Acceleration Architecture (XAA) has been completely rewritten
from scratch. Most drivers implement acceleration by making use of the XAA
module.
-4.5 Multi-head
+2.5 Multi-head
Some multi-head configurations are supported in this release, primarily with
multiple PCI/AGP cards. However, this is an area that is still being worked
on, and we expect that the range of configurations for which it works well
-will increase in future snapshots. A configuration that is known to work
-well in most cases is multiple (supported) Matrox cards.
+will increase in future releases. A configuration that is known to work well
+in most cases is multiple (supported) Matrox cards.
One of the main problems is with drivers not sufficiently initialising cards
-that were not initialised at boot time. Normally only the primary video card
-gets initialised at boot time. Some combinations can be made to work better
-by changing which card is the primary card (either by using a different PCI
-slot, or by changing the system BIOS's preference for the primary card). We
-are investigating options for ``soft-booting'' secondary video cards to deal
-with this problem, and we've had some very encouraging results.
+that were not initialised at boot time. This has been improved somewhat with
+the INT10 support that is used by most drivers (which allows secondary card
+to be "soft-booted", but in some cases there are other issues that still need
+to be resolved. Some combinations can be made to work better by changing
+which card is the primary card (either by using a different PCI slot, or by
+changing the system BIOS's preference for the primary card).
-4.6 Xinerama
+2.6 Xinerama
Xinerama is an X server extension that allows multiple physical screens to
behave as a single screen. With traditional multi-head in X11, windows can-
@@ -477,98 +418,72 @@ with a 16-bit screen in Xinerama mode.
Xinerama is not enabled by default, and can be enabled with the +xinerama
command line option for the X server.
-Xinerama was included with X11R6.4. The version included in this snapshot
-contains many bug fixes. This is an area that we are still working on, and
-we expect it to be improved further in future snapshots.
+Xinerama was included with X11R6.4. The version included in this release was
+completely rewritten for improved performance and correctness.
Known problems:
- o It appears that there are still some bugs that cause unexpected
- behaviour from time to time.
-
o Most (all?) window managers are not Xinerama-aware, and so some opera-
tions like window placement and resizing might not behave in an ideal
way. This is an issue that needs to be dealt with in the individual
window managers, and isn't specifically an XFree86 problem.
-4.7 DGA version 2
+2.7 XVideo extension
+
+The XVideo extension is included in this release, but nobody seems interested
+in writing up some information about it.
+
+2.8 DGA version 2
DGA 2.0 is nearly completed but still not implemented by all drivers. Pre-
liminary documentation for the client libraries can be found in the xc/pro-
grams/Xserver/hw/xfree86/DGA document. Some degree of backwards compatibil-
-ity with version 1.0 is provided.
-
-4.8 DDC
-
-The VESA(R) Display Data Channel (DDC[tm]) standard (related to, but separate
-from, the VESA(R) Plug and Display standard) allows the monitor to tell the
-video card (or on some cases the computer directly) about itself; particu-
-larly the supported screen resolutions and refresh rates.
-
-Partial or complete DDC support is available in the following hardware mod-
-ules:
+ity with version 1.0 is provided. This information is out of date.
- o APM
+2.9 DDC
- o Chips
-
- o Cirrus
-
- o Glint
-
- o MGA
-
- o Neomagic
-
- o S3 ViRGE
-
- o SIS
-
- o Trident
+The VESA(R) Display Data Channel (DDC[tm]) standard allows the monitor to
+tell the video card (or on some cases the computer directly) about itself;
+particularly the supported screen resolutions and refresh rates.
+Partial or complete DDC support is available in most of the video drivers.
DDC is enabled by default, but can be disabled with a "Device" section entry:
Option "NoDDC". We have support for DDC versions 1 and 2; these can be dis-
abled independently with Option "NoDDC1" and Option "NoDDC2".
At startup the server prints out DDC information from the display, but it
-does not yet use it the determine modelines.
+does not yet use it the determine modelines. For some drivers, the X
+server's new -configure option uses the DDC information when generating the
+config file.
Changed behavior caused by DDC. Several drivers uses DDC information to set
-the monitor gamma (brightness) curve, and the screen size and pitch.
-
- o The gamma is particularly noticeable; every monitor I have tried has a
- gamma setting > 2, which means that the picture is much lighter than
- under 3.3.x or without DDC. To revert to the previous behavior put
-
- Gamma 1.0 1.0 1.0
-
- in the appropriate "Monitor" section of the config file.
+the screen size and pitch. This can be overridden by explicitly resetting it
+to the and non-DDC default value 75 with the -dpi 75 command line option for
+the X server, or by specifying appropriate screen dimensions with the "Dis-
+playSize" keyword in the "Monitor" section of the config file.
- o Similarly, you can override the DDC probed "dpi" value by explicitly
- resetting it to the 3.3.x and non-DDC default value 75 with the -dpi 75
- command line option for the X server, or by specifying appropriate
- screen dimensions with the "DisplaySize" keyword in the "Monitor" sec-
- tion of the config file.
-
-4.9 GLX and the Direct Rendering Infrastructure (DRI)
+2.10 GLX and the Direct Rendering Infrastructure (DRI)
Precision Insight <URL:http://www.precisioninsight.com> has been provided
-with funding and support from Red Hat <URL:http://www.redhat.com> and SGI
-<URL:http://www.sgi.com> to integrate the GLX extension for 3D rendering in
-an X11 window. The 3D core rendering component is the Mesa
-<URL:http://www.mesa3d.org> library. SGI has released the sources to the
+with funding and support from Red Hat <URL:http://www.redhat.com>, SGI
+<URL:http://www.sgi.com>, 3Dfx <URL:http://www.3dfx.com>, Intel
+<URL:http://www.intel.com>, ATI <URL:http://www.ati.com>, and Matrox
+<URL:http://www.matrox.com> to integrate the GLX extension for 3D rendering
+in an X11 window. The 3D core rendering component is the Mesa
+<URL:http://www.mesa3d.org> library. SGI has released the sources to the GLX
extension framework under an open license, which essentially provides the
glue between the 3D library and this windowing system. Precision Insight has
-integrated these components into this XFree86 X Server and added a Direct
-Rendering Infrastructure. Direct Rendering provides a highly optimized path
-for sending 3D data directly to the graphics hardware. This release demon-
-strates a sample implementation of direct rendering <URL:http://www.preci-
-sioninsight.com/demo.html> by providing a single path of 3D hardware acceler-
-ated rendering for the GMX2000 and 3dfx voodoo graphics cards. Future
-releases will support much broader implementations of hardware accelerated
-direct rendering on a wide range of 3D capable graphics devices.
-
-4.10 X-Video Extension (Xv)
+integrated these components into the XFree86 X Server and added a Direct Ren-
+dering Infrastructure (DRI). Direct Rendering provides a highly optimized
+path for sending 3D data directly to the graphics hardware. This release
+provides a complete implementation of direct rendering support for the 3Dfx
+Banshee and Voodoo3 graphics cards. Additional direct rendering drivers will
+be available for 3Dfx, Intel, ATI and Matrox boards during the second quarter
+of 2000. Updated information on DRI compatible drivers can be found at the
+DRI Project <URL:http://dri.sourceforge.net> on SourceForge
+<URL:http://www.sourceforge.net>.
+
+2.11 X-Video Extension (Xv)
An XvQueryPortAttributes function has been added as well as support for XvIm-
ages. XvImages are XImages in alternate color spaces such as YUV and can be
@@ -576,10 +491,10 @@ passed to the server through shared memory segments. This allows clients to
display YUV data with high quality hardware scaling and filtering. XvImages
are only supported by the Matrox G200/G400 cards at the moment.
-4.11 Other extensions
+2.12 Other extensions
The XFree86-Misc extension has not been fully ported to the new server archi-
-tecture yet. This should be completed in a future snapshot.
+tecture yet. This should be completed in a future release.
The XFree86-VidModeExtension extension has been updated, and mostly ported to
the new server architecture. The area of mode validation needs further work,
@@ -587,11 +502,11 @@ and the extension should be used with care. This extension has support for
changing the gamma setting at run-time, for modes where this is possible.
The new xgamma utility makes use of this feature. Compatibility with the
3.3.x version of the extension is provided. The missing parts of this exten-
-sion and some new features should be completed in a future snapshot.
+sion and some new features should be completed in a future release.
-4.12 Drivers
+2.13 Drivers
-XFree86 3.9.18 includes the following drivers:
+XFree86 4.0 includes the following drivers:
+------------+----------------------+
|Driver Name | Description |
@@ -603,7 +518,7 @@ XFree86 3.9.18 includes the following drivers:
|cyrix (*) | Cyrix MediaGX |
|fbdev | Linux fbdev |
|glide | Glide2x (3Dfx) |
- |glint | 3Dlabs |
+ |glint | 3Dlabs, TI |
|i740 | Intel i740 |
|i810 | Intel i810 |
|mga | Matrox |
@@ -623,41 +538,23 @@ XFree86 3.9.18 includes the following drivers:
Drivers marked with (*) are present in a preliminary form in this release,
but are not complete and/or stable yet.
-4.12.1 APM
-
-It's the driver for Alliance AT3D/AT25 and AT24 chips. There is a rather com-
-plete support for the functions with acceleration at 8,15,16,24 and 32 bits
-(limited by the chip at 24bpp). There is preliminary, still buggy, support
-for the AP6422 chip, which is still supported in 3.3.x servers. The Xv driver
-is almost ok. The Rush extension for glide2x works, with some additions,
-including overlay of the result. DGA and DGA2 have been tested ok.
-
-Main useful options:
-
- SetMclk
- to set the memory clock (default should be OK).
+2.13.1 APM
- SWCursor
- to force the software cursor.
+This is the driver for Alliance AT3D/AT25 and AT24 chips. There is a rather
+complete support for the functions with acceleration at 8,15,16,24 and 32
+bits (limited by the chip at 24bpp). There is preliminary, still buggy, sup-
+port for the AP6422 chip, which is still supported in 3.3.x servers. The Xv
+driver is almost ok. The Rush extension for glide2x works, with some addi-
+tions, including overlay of the result. DGA and DGA2 have been tested ok.
+Further information can be found in README.apm.
- HWCursor
- to force the hardware cursor.
-
- NoAccel
- to disable (XAA) acceleration.
-
- ShadowFB
- to enable shadow framebuffer operation (the rendering is done in
- system memory and then copied to the framebuffer, useful when
- acceleration is disabled).
-
-4.12.2 Chips & Technologies
+2.13.2 Chips & Technologies
Information about the C&T driver can be found in README.chips.
-4.12.3 s3virge
+2.13.3 s3virge
-The s3virge driver is a port of the 3.3.3.1 SVGA S3 ViRGE driver. As such it
+The s3virge driver is a port of the 3.3.x SVGA S3 ViRGE driver. As such it
should be as stable and functional as previous XFree86 releases. There are a
couple additional benefits included primarily due to common enhancements:
@@ -672,27 +569,33 @@ couple additional benefits included primarily due to common enhancements:
o The s3virge man page lists options and has configuration notes for this
release of the driver.
+ o Trio 3D and Trio 3D/2X support has been added, matching the 3.3.6
+ driver.
+
+ o Supports screen rotation and shadow framebuffer.
+
Outstanding items not implemented or fully tested:
o DGA support is implemented, but preliminary and untested.
-4.12.4 TGA
+Further information can be found in README.s3virge.
+
+2.13.4 TGA
The TGA driver is now accelerated and supports both 8 and 32 plane frame-
buffers. It is known to work under Linux/Alpha. Please see the
README.DECtga file for further information.
-4.12.5 Matrox
+2.13.5 Matrox
The MGA driver supports the same range or hardware as XFree86 3.3.4, but has
-a number of enhancements including multi-head support and support for over-
-lays (8-bit + 24-bit).
+a number of enhancements including multi-head support and support for (non-
+destructive) overlays (8-bit + 24-bit).
Option "overlay" when the server is started in 32bpp (-fbbpp 32) will enable
the 8+24 mode. The current implementation doesn't optimize away unnecessary
exposures yet so the performance of this option will be better in future
-snapshots. The option is not supported on the G100 due to a missing hardware
-feature. By default, the color key for the overlays is 255, but this can be
+release. By default, the color key for the overlays is 255, but this can be
changed with the "ColorKey" option to work around problems in specific pro-
grams. Valid values for the key are 2-255.
@@ -702,21 +605,20 @@ improved memory autodetection support.
Further information can be found in the mga man page.
-4.12.6 ATI
+2.13.6 ATI
Information about the ATI driver can be found in README.ati <URL:ati.html>.
The current version is not accelerated. Acceleration support is planned for
-a future snapshot.
+a future release.
-4.12.7 NVIDIA
+2.13.7 NVIDIA
The "nv" driver supports all Riva TNT accelerators as well as the new GeForce
-and Quadro accelerators. 3.9.17 adds DGA 2.0 support and performance
-improvements as well as resolving some rendering correctness issues.
+and Quadro accelerators. DGA 2.0 support is included.
Further information can be found in the nv man page.
-4.12.8 Glide
+2.13.8 Glide
This driver is for Voodoo 1 and Voodoo 2 boards. It runs X on top of the 3DFX
Glide API (where this is available, like for Linux). You need to have Glide
@@ -737,9 +639,19 @@ man page.
For Voodoo Banshee and Voodoo 3 boards or later: Please use the tdfx driver
which talks directly to the hardware and is much faster.
-5. X libraries and clients
+2.13.9 GLINT
+
+The "glint" driver supports most 3Dlabs/Texas Instruments GLINT/Permedia
+chips. There is a rather complete support (better than in 3.3.x) for acceler-
+ation at 8, 15, 16, and 24 bit depths (limited by some chips at some depths).
+8+24 overlay is supported. The Xv extension is supported for some boards.
+
+Further information about this driver can be found in the 'glint' driver man
+page.
-5.1 Xaw
+3. X libraries and clients
+
+3.1 Xaw
Two versions of the Xaw library are provided in this release. A version with
bug fixes and a few binary compatible improvements and a new version with
@@ -786,12 +698,6 @@ New features:
o Text indentation support is also available.
- o This snapshot shows the current state of the work to add to the Xaw text
- widget WYSIWYG capabilities. The state is very initial, and can be seen
- as a candidate to a candidate to a very early alpha snapshot. There is
- no public interface for programming yet, because the current one is very
- likely to change before ready to use.
-
Bug fixes:
o The simple menu widget geometry management code was improved to solve
@@ -804,11 +710,11 @@ Bug fixes:
o Several bugs were fixed in the text code, while some code was rewritten
from scratch.
-5.2 Xpm
+3.2 Xpm
Version 3.4k of the Xpm (X pixmap) library is now integrated into XFree86.
-5.3 xterm
+3.3 xterm
New Features:
@@ -985,7 +891,7 @@ Bug fixes/improvements:
o Various improvements to configure script, e.g., tests for utmp.
-5.4 xedit
+3.4 xedit
Xedit have been changed to use most of the new features added to the new ver-
sion of the Xaw library, and some xedit only features were added. Emacs users
@@ -1019,27 +925,23 @@ xedit. These include:
o The interface also checks for repeated words.
- o A first tentative to add programming modes was done. Currently, there
- are two modes:
+ o A first tentative to add programming modes was done. Currently, there is
+ one mode:
o C-mode: this mode is expected to be stable, and fully usable.
- o Html-mode: a lot of work needs to be done yet. It is included in
- this snapshot only to show what the new text widget capabilities
- can do.
-
-6. Fonts and Internationalisation
+4. Fonts and Internationalisation
Details about the font support in this version of XFree86 can be found in the
README.fonts document.
-6.1 TrueType support
+4.1 TrueType support
This version of XFree86 comes with two TrueType backends, known as `xfsft'
(the "freetype" module) and `X-TrueType' (the "xtt" module). Both of these
backends are based on the FreeType library.
-6.2 CID font support
+4.2 CID font support
Support for CID-keyed fonts is included in this version of XFree86. The CID-
keyed font format was designed by Adobe Systems <URL:http://www.adobe.com>
@@ -1047,7 +949,7 @@ for fonts with large character sets. The CID-keyed font support in XFree86
was donated by SGI <URL:http://www.sgi.com>. See the LICENSE document for a
copy of the CID Font Code Public License.
-6.3 Internationalisation of the scalable font backends
+4.3 Internationalisation of the scalable font backends
A new ``fontenc'' layer has been added to allow the scalable font backends to
use a common method of font re-encoding. This re-encoding makes it possible
@@ -1056,21 +958,37 @@ layer is used by the Type1 and Speedo backends and the `xfsft' version of the
TrueType backend. The `X-TrueType' version of the TrueType backend uses a
different re-encoding method based on loadable encoding modules.
-6.4 Large font optimisation
+4.4 Large font optimisation
The glyph metrics array, which all the X clients using a particular font have
access to, is now placed in shared memory, so as to reduce redundant memory
-consumption. For non-local clients, the glyph metrics array is trasmitted in
-a compressed format.
+consumption. For non-local clients, the glyph metrics array is transmitted
+in a compressed format.
-6.5 Unicode support
+4.5 Unicode/ISO 10646 support
What is included:
- o ISO 10646-1 extension of ``fixed'' BDF fonts added that cover over 2000
- characters including all Latin, Greek, Cyrillic, Armenian, and Gregorian
- characters, plus numerous scientific and technical symbols (further
- fonts are under preparation).
+ o All ``-misc-fixed-*'' BDF fonts are now available in the ISO10646-1
+ encoding and cover at least the 614 characters found in ISO
+ 8859-{1-5,7-10,14,15}, CP1252, and MES-1. The non-bold fonts also cover
+ all Windows Glyph List 4 (WGL4) characters, including those found in all
+ 8-bit MS-DOS/Windows code pages. The 8-bit variants of the ``-misc-
+ fixed-*'' BDF fonts (ISO8859-1, ISO8859-2, KOI8-R, etc.) have all been
+ automatically generated from the new ISO10646-1 master fonts.
+
+ o Some ``-misc-fixed-*'' BDF ISO10646-1 fonts now cover a comprehensive
+ Unicode repertoire of over 3000 characters including all Latin, Greek,
+ Cyrillic, Armenian, Gregorian, Hebrew, IPA, and APL characters, plus
+ numerous scientific, typographic, technical, and backwards-compatibility
+ symbols. Some of these fonts also cover Arabic, Ethiopian, Thai,
+ Han/Kanji, Hangul, full ISO 8859, and more. For the 6x13 font there is
+ now a 12x13ja Kanji extension and for the 9x18 font there is a 18x18ja
+ Kanji/Han/Hangul extension, which covers all ISO-2022-JP-2 (RFC 1554)
+ characters. The 9x18 font can also be used to implement simple combining
+ characters by accent overstriking. For more information, read Markus
+ Kuhn's UTF-8 and Unicode FAQ <URL:http://www.cl.cam.ac.uk/~mgk25/uni-
+ code.html>.
o Mark Leisher's ClearlyU proportional font (similar to Computer Modern).
@@ -1082,29 +1000,48 @@ What is included:
Known problems:
- o Xlib does not yet support UTF-8 as a locale, which means that xterm
- UTF-8 keyboard support is at the moment a temporary hack.
+ o Xlib does not yet fully support UTF-8 as a locale, which means that
+ xterm UTF-8 keyboard support is at the moment a temporary hack.
+
+ o Most ISO10646-1 fonts encode no characters above U+31FF. This avoids the
+ inefficient allocation and transmission of a >700 kB large XFontStruct
+ structure, which would happen if the (not very important) ligatures and
+ symbols above U+f000 were present.
+
+ o ISO 10646 Level 2 combining characters are not yet supported by xterm
+ (will be needed for instance for Thai and IPA).
+
+ o Switching between a half-width and full-width font pair (such as 9x18
+ and 18x18ja) is not yet supported by xterm (will be needed for CJK
+ scripts).
- o ISO 10646-1 cell-spaced fonts such as ``fixed'' work nicely, but mono-
- spaced and proportional fonts are handled inefficiently by the X proto-
- col, resulting in metrics for 64k glyphs even if only 2000 glyphs are
- used.
+4.6 Lucidux fonts from Bigelow and Holmes
- o ISO 10646 Level 2 combining characters not yet supported by xterm (will
- be needed for instance for the Thai script).
+XFree86 now includes the ``Lucidux'' family of professionally hinted Type 1
+fonts. This family consists of the fonts ``Lucidux Serif'', ``Lucidux Sans''
+and ``Lucidux Mono'' in Roman and oblique variants, and includes over 370
+glyphs in each font covering among others the glyphs needed for ISO 8859-1,
+2, 3, 4, 9 and 15. Bold variants will be included in a future release. The
+design and font outlines were donated by Charles Bigelow and Kris Holmes from
+Bigelow and Holmes Inc., and the hinting was donated by Berthold Horn and
+Blenda Horn from Y&Y, Inc. For more information, please contact
+<design@bigelowandholmes.com> or <sales@yandy.com>, or consult Y&Y's web site
+<URL:http://www.yandy.com>.
-7. Miscellaneous
+5. Miscellaneous
-7.1 Directory rearrangements
+5.1 Directory rearrangements
-Some changes to the installed XFree86 directory structure have been planned
-for 4.0. Not all of these changes have been implemented in this snapshot,
-and they will appear in a future snapshot. One important change that has
-been implemented is a modified search path for the X server's XF86Config
-file. The details of this can be found above in the Configuration File (sec-
-tion 4.2, page 1) section.
+Some changes to the installed XFree86 directory structure have been imple-
+mented for 4.0. One important change is a modified search path for the X
+server's XF86Config file. The details of this can be found in the XF86Config
+manual page. The other main change is moving most of the run-time configura-
+tion files to /etc/X11, with symbolic links in the old /usr/X11R6/lib/X11
+location pointing to the new location. Some run-time generated files are now
+located under the appropriate subdirectories of /var, again with the relevant
+symbolic links in the old location.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.29 2000/02/21 22:29:07 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.37 2000/03/08 20:11:55 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/RELNOTES,v 3.78 2000/02/21 22:44:45 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/RELNOTES,v 3.82 2000/03/08 20:39:24 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/Status b/xc/programs/Xserver/hw/xfree86/doc/Status
index 5512ce18a..6e04e1887 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/Status
+++ b/xc/programs/Xserver/hw/xfree86/doc/Status
@@ -1,23 +1,23 @@
- Driver Status for XFree86[tm] 3.9.18
+ Driver Status for XFree86[tm] 4.0
The XFree86 Project, Inc
- 12 February 2000
+ 3 March 2000
Abstract
This document provides information about the status of the driver
- and hardware support in XFree86 3.9.18 compared with that in
- XFree86 3.3.6. Please send updates for this document to
+ and hardware support in XFree86 4.0 compared with that in XFree86
+ 3.3.6. Please send updates for this document to
<fixes@xfree86.org>
1. Introduction
This document contains one section per vendor (organised alphabetically) for
-each chipset family that is supported in XFree86 3.3.6 or XFree86 3.9.18. It
+each chipset family that is supported in XFree86 3.3.6 or XFree86 4.0. It
includes information about the status of the drivers and the hardware they
support, including a comparison of the level of support between versions
-3.3.6 and 3.9.18.
+3.3.6 and 4.0.
NOTE: Status information needs to be checked carefully and expanded where
possible. E.g., include information about acceleration, multi-head, known
@@ -31,7 +31,7 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support is provided by the XF86_SVGA server with the tdfx
driver).
- 3.9.18:
+ 4.0:
Support for Voodoo 1 and Voodoo 2 via glide on platforms where
glide is available (Linux and FreeBSD(?)). Support is provided
by the "glide" driver (requires Glide 2x).
@@ -40,7 +40,7 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support is provided by the "tdfx" driver.
Summary:
- All hardware supported in 3.3.6 is also supported in 3.9.18.
+ All hardware supported in 3.3.6 is also supported in 4.0.
3. 3Dlabs
@@ -50,13 +50,13 @@ architectures known to work on (e.g., Alpha, PPC), etc.
ramdacs), Permedia with IBM RGB526 ramdac, Permedia 2, 2a, 2v.
Support is provided by the XF86_3DLabs server.
- 3.9.18:
+ 4.0:
Support (including acceleration) for Permedia, Permedia 2, 2v
(and 2a??) GLINT 500TX, GLINT MX, GLINT Gamma, and Glint Delta
coproc. Support is provided by the "glint" driver.
Summary:
- All hardware supported in 3.3.6 is also supported in 3.9.18.
+ All hardware supported in 3.3.6 is also supported in 4.0.
4. Alliance
@@ -64,15 +64,14 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support (including acceleration) for the AT24, AP6422, AT3D.
Support is provided by the XF86_SVGA server with the apm driver.
- 3.9.18:
+ 4.0:
Support (including acceleration?) for the AT24, AT25 and AT3D.
This support is provided by the "apm" driver. This driver cur-
- rently has only incomplete support for the AP6422. NEED TO CHECK
- IF THESE CARDS WILL WORK WITH fbdev.
+ rently has only incomplete support for the AP6422.
Summary:
- The AP6422 is supported in 3.3.6 but not fully in 3.9.18. The
- AT25 is supported in 3.9.18 but not in 3.3.6.
+ The AP6422 is supported in 3.3.6 but not fully in 4.0. The AT25
+ is supported in 4.0 but not in 3.3.6.
5. ARK Logic
@@ -81,13 +80,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
and ARK2000MT. Support is provided by the XF86_SVGA server with
the ark driver.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No ARK Logic chips are supported in 3.9.18.
+ No ARK Logic chips are supported in 4.0.
6. ATI
@@ -105,16 +103,16 @@ architectures known to work on (e.g., Alpha, PPC), etc.
driver. Accelerated support is provided for the Rage 128 chips
by the XF86_SVGA server with the r128 driver.
- 3.9.18:
+ 4.0:
Accelerated support is provided for the Rage 128 chips by the
"r128" driver. Unaccelerated support is provided for all of the
others except the Mach8 and some early Mach32 chips by the "ati"
driver.
Summary:
- All chips supported in 3.3.6 are supported in 3.9.18 except for
- Mach8 and some old Mach32 chips. The support in 3.9.18 is, how-
- ever, unaccelerated for all chips except the Rage 128.
+ All chips supported in 3.3.6 are supported in 4.0 except for
+ Mach8 and some old Mach32 chips. The support in 4.0 is, however,
+ unaccelerated for all chips except the Rage 128.
7. Avance Logic
@@ -126,13 +124,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
don't have any recent test reports, and these drivers have no
maintainer.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old drivers
- have not been ported. NEED TO CHECK IF THESE CARDS WILL WORK
- WITH fbdev.
+ have not been ported.
Summary:
- No Avance Logic chips are supported in 3.9.18.
+ No Avance Logic chips are supported in 4.0.
8. Chips and Technologies
@@ -142,13 +139,13 @@ architectures known to work on (e.g., Alpha, PPC), etc.
64300. This support is provided by the XF86_SVGA server with the
chips driver.
- 3.9.18:
+ 4.0:
Support (accelerated) for the 65520, 65525, 65530, 65535, 65540,
65545, 65546, 65548, 65550, 65554, 65555, 68554, 69000, 64200 and
64300. This support is provided by the "chips" driver.
Summary:
- All chips supported in 3.3.6 are also supported in 3.9.18.
+ All chips supported in 3.3.6 are also supported in 4.0.
9. Cirrus Logic
@@ -160,16 +157,15 @@ architectures known to work on (e.g., Alpha, PPC), etc.
7541, 7542, 7543, 7548, 7555 and 7556 is provided by the
XF86_SVGA server with the cirrus driver.
- 3.9.18:
+ 4.0:
Support (accelerated) for the Alpine (5430, 5434, 5436, 5446,
5480), and Laguna (5462, 5464, 5465) chips is provided by the
- "cirrus" driver. NEED TO CHECK IF THE OTHERS WILL WORK WITH
- fbdev.
+ "cirrus" driver.
Summary:
- The following chips are supported in 3.3.6 but not in 3.9.18:
- 6410, 6412, 6420, 6440, 5420, 5422, 5424, 5426, 5428, 5429, 6205,
- 6215, 6225, 6235, 7541, 7542, 7543, 7548, 7555 and 7556.
+ The following chips are supported in 3.3.6 but not in 4.0: 6410,
+ 6412, 6420, 6440, 5420, 5422, 5424, 5426, 5428, 5429, 6205, 6215,
+ 6225, 6235, 7541, 7542, 7543, 7548, 7555 and 7556.
10. Compaq/Digital
@@ -183,7 +179,7 @@ architectures known to work on (e.g., Alpha, PPC), etc.
24 plane 3D chips (on Alpha platforms) is provided by the
XF86_TGA server.
- 3.9.18:
+ 4.0:
No support for the Compaq AVGA (driver hasn't been ported).
Support (accelerated) for the DEC 21030 TGA 8 plane, 24 plane and
@@ -191,8 +187,8 @@ architectures known to work on (e.g., Alpha, PPC), etc.
the "tga" driver.
Summary:
- No Compaq AVGA support in 3.9.18. DEC TGA support is equivalent
- in both versions.
+ No Compaq AVGA support in 4.0. DEC TGA support is equivalent in
+ both versions.
11. Cyrix
@@ -200,13 +196,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support (accelerated) for the Cyrix MediaGX is provided by the
XF86_SVGA server with the cyrix driver.
- 3.9.18:
+ 4.0:
A preliminary port of the driver is available, but it isn't ready
- for widespread use. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ for widespread use.
Summary:
- No Cyrix chips are well-supported in 3.9.18.
+ No Cyrix chips are well-supported in 4.0.
12. Epson
@@ -214,13 +209,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support (accelerated) for the Epson SPC8110 is provided by the
XF86_SVGA server with the spc8100 driver.
- 3.9.18:
+ 4.0:
No native support for this chipset, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No Epson chips are supported in 3.9.18.
+ No Epson chips are supported in 4.0.
13. Genoa
@@ -230,13 +224,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
because we don't have any recent test reports, and this driver
has no maintainer.
- 3.9.18:
+ 4.0:
No native support for this chipset, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No Genoa chips are supported in 3.9.18.
+ No Genoa chips are supported in 4.0.
14. IBM
@@ -251,7 +244,7 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support for the IBM XGA-2 chip is provided by the XF86_AGX
server.
- 3.9.18:
+ 4.0:
Support for the standard IBM VGA chip (and compatibles) is pro-
vided by the "vga" driver.
@@ -260,7 +253,7 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Summary:
The standard VGA core is supported in both versions, but there is
- no support for the 8514/A or XGA-2 in 3.9.18.
+ no support for the 8514/A or XGA-2 in 4.0.
15. IIT
@@ -268,13 +261,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support (accelerated) for the AGX-016, AGX-015 and AGX-014 is
provided by the XF86_AGX server..
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No IIT chips are supported in 3.9.18.
+ No IIT chips are supported in 4.0.
16. Intel
@@ -285,14 +277,15 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Linux, and requires the agpgart.o kernel module in order to use
modes that require more than 1MB of video memory.
- 3.9.18:
+ 4.0:
Support (accelerated) for the Intel i740 is provided by the
- "i740" driver. The i810 driver has not yet been ported and/or
- contributed.
+ "i740" driver, and support for the Intel i810 is provided by the
+ "i810" driver. The "i810" driver is currently Linux-only, and
+ requires the agpgart.o kernel module.
Summary:
- The i740 is supported in both version, but the i810 is not sup-
- ported in 3.9.18 or on non-Linux/x86 platforms.
+ The i740 and i810 are supported in both versions, but the i810 is
+ only supported on Linux/x86 platforms at present.
17. Matrox
@@ -301,13 +294,13 @@ architectures known to work on (e.g., Alpha, PPC), etc.
(Mystique), MGA2164W (Millennium II) (PCI and AGP), G100, G200
and G400 is provided by the XF86_SVGA server with the mga driver.
- 3.9.18:
+ 4.0:
Support (accelerated) for the MGA2064W (Millennium I), MGA1064SG
(Mystique), MGA2164W (Millennium II) (PCI and AGP), G100, G200
and G400 is provided by the "mga" driver.
Summary:
- All chips supported in 3.3.6 are also supported in 3.9.18.
+ All chips supported in 3.3.6 are also supported in 4.0.
18. MX (???)
@@ -317,13 +310,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
is unknown because we don't have any recent test reports, and
this driver has no maintainer.
- 3.9.18:
+ 4.0:
No native support for this chipset, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No MX (???) chips are supported in 3.9.18.
+ No MX (???) chips are supported in 4.0.
19. NCR
@@ -332,13 +324,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
XF86_SVGA server and the ncr77c22 driver. The status of this
support is unknown because we don't have any recent test reports.
- 3.9.18:
+ 4.0:
No native support for this chipset, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No NCR chips are supported in 3.9.18.
+ No NCR chips are supported in 4.0.
20. NeoMagic
@@ -347,13 +338,13 @@ architectures known to work on (e.g., Alpha, PPC), etc.
NM2097, NM2160 and NM2200 chipsets is provided by the XF86_SVGA
server with the neo driver.
- 3.9.18:
+ 4.0:
Support (accelerated) for the NeoMagic NM2070, NM2090, NM2093,
NM2097, NM2160 and NM2200 chipsets is provided by the "neomagic"
driver.
Summary:
- All chips supported in 3.3.6 are also supported in 3.9.18.
+ All chips supported in 3.3.6 are also supported in 4.0.
21. NVIDIA
@@ -362,14 +353,14 @@ architectures known to work on (e.g., Alpha, PPC), etc.
(Ultra, Vanta, M64), GeForce (DDR) and Quadro is provided by the
XF86_SVGA server and the nv driver.
- 3.9.18:
+ 4.0:
Support (accelerated) for the Riva 128, 128ZX, TNT, TNT2 (Ultra,
Vanta, M64), GeForce (DDR) and Quadro is provided by the
XF86_SVGA server and the nv driver.
Summary:
All chipsets supported in 3.3.6 except the NV1 are also supported
- in 3.9.18.
+ in 4.0.
22. Number Nine
@@ -377,13 +368,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support (accelerated) for the Imagine 128, Ticket 2 Ride, Revolu-
tion 3D and Revolution IV is provided by the XF86_I128 server.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No Number Nine chips are supported in 3.9.18.
+ No Number Nine chips are supported in 4.0.
23. Oak Technologies Inc
@@ -392,13 +382,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
acceleration) is provided by the XF86_SVGA server and the oak
driver.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No Oak chips are supported in 3.9.18.
+ No Oak chips are supported in 4.0.
24. Paradise/Western Digital
@@ -409,13 +398,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
port for some of these chipsets is uncertain because we don't
have any recent test reports, and this driver has no maintainer.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No Paradise/Western Digital chips are supported in 3.9.18.
+ No Paradise/Western Digital chips are supported in 4.0.
25. RealTek
@@ -425,13 +413,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
unknown because we don't have any recent test reports, and this
driver has no maintainer.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No RealTek chips are supported in 3.9.18.
+ No RealTek chips are supported in 4.0.
26. Rendition/Micron
@@ -439,12 +426,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
Support for the Verite 1000, 2100 and 2200 is provided by the
XF86_SVGA server with the rendition driver.
- 3.9.18:
+ 4.0:
Support for the Verite 1000, 2100 and 2200 is provided by the
"rendition" driver.
Summary:
- All chips supported in 3.3.6 are also supported in 3.9.18.
+ All chips supported in 3.3.6 are also supported in 4.0.
27. S3
@@ -462,15 +449,15 @@ architectures known to work on (e.g., Alpha, PPC), etc.
by the XF86_SVGA server with the s3_savage driver (CHECK: is this
support Linux-only?).
- 3.9.18:
+ 4.0:
Support (accelerated) for the ViRGE, ViRGE/VX, ViRGE/DX,
ViRGE/GX, ViRGE/GX2, ViRGE/MX, ViRGE/MX+, Trio3D and Trio3D/2X is
provided by the "s3virge" driver. Support for the other S3
chipsets has not yet been ported.
Summary:
- Only the ViRGE and Trio3D chipsets are supported in 3.9.18. All
- of the other chipsets are only supported in 3.3.6.
+ Only the ViRGE and Trio3D chipsets are supported in 4.0. All of
+ the other chipsets are only supported in 3.3.6.
28. Silicon Integrated Systems (SiS)
@@ -479,16 +466,15 @@ architectures known to work on (e.g., Alpha, PPC), etc.
86C225, 5597, 5598, 6326, 530, 620, 300, 630 and 540 is provided
by the XF86_SVGA server with the sis driver.
- 3.9.18:
+ 4.0:
Support (accelerated) for the SiS
530, 620, 6326 is provided by the "sis" driver. The 630, 300,
and 540 are also supported, but this code is new and there are
some problems with it in this version.
Summary:
- Support for the older (CHECK: are they all older than the sup-
- ported chips?) chips: 86C201, 86C202 and 620, is only available
- in 3.3.6.
+ Support for the 86C201, 86C202, 86C215, 86C225, 5597 and 5598 is
+ currently only available in 3.3.6.
29. Silicon Motion, Inc
@@ -497,12 +483,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
LynxEM+ and Lynx3DM chips is provided by the XF86_SVGA server
with the smi driver.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the driver has not
- been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
+ been ported.
Summary:
- No SMI chips are supported in 3.9.18.
+ No SMI chips are supported in 4.0.
30. Trident Microsystems
@@ -517,18 +503,17 @@ architectures known to work on (e.g., Alpha, PPC), etc.
CyberBlade/DSTN/i7 and CyberBlade/i1 is provided by the XF86_SVGA
server with the tvga8900 driver.
- 3.9.18:
+ 4.0:
Support (accelerated where the chip supports it) for the
TVGA8900D, TGUI9420DGi, TGUI9440AGi, TGUI9660, TGUI9680, ProVidia
9682, ProVidia 9685, Cyber9320, Cyber9382, Cyber9385, Cyber9388,
Cyber9397, Cyber9520, Cyber9397/DVD, Cyber9525/DVD, 3DImage975,
3DImage875, Blade3D, CyberBlade/i7, CyberBlade/DSTN/i7 and
- CyberBlade/i1 is provided by the "trident" driver. NEED TO CHECK
- IF THE OTHERS WILL WORK WITH fbdev.
+ CyberBlade/i1 is provided by the "trident" driver.
Summary:
The following (older) chipsets that are supported in 3.3.6 are
- not supported in 3.9.18: TVGA8200LX, TVGA8800CS, TVGA8900B,
+ not supported in 4.0: TVGA8200LX, TVGA8800CS, TVGA8900B,
TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i, TVGA9100B,
TVGA9200CXr, TGUI9400CXi, TGUI9420, TGUI9430DGi.
@@ -542,14 +527,14 @@ architectures known to work on (e.g., Alpha, PPC), etc.
driver. Support (accelerated) for the ET4000/W32 series and the
ET6000 is also provided by the deprecated XF86_W32 server.
- 3.9.18:
+ 4.0:
Support for the ET4000AX, and accelerated support for the
ET4000/W32, ET4000/W32i, ET4000/W32p, ET6000 and ET6100 is pro-
vided by the "tseng" driver.
Summary:
- All cards supported by 3.3.6 are also supported by 3.9.18 except
- for the old ET3000.
+ All cards supported by 3.3.6 are also supported by 4.0 except for
+ the old ET3000.
32. Video 7
@@ -559,13 +544,12 @@ architectures known to work on (e.g., Alpha, PPC), etc.
unknown because we don't have any recent test reports, and this
driver has no maintainer.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old driver has
- not been ported. NEED TO CHECK IF THESE CARDS WILL WORK WITH
- fbdev.
+ not been ported.
Summary:
- No Video 7 chips are supported in 3.9.18.
+ No Video 7 chips are supported in 4.0.
33. Weitek
@@ -574,15 +558,14 @@ architectures known to work on (e.g., Alpha, PPC), etc.
server and accelerated support for the P9100 is provided by the
XF86_SVGA server with the p9x00 driver.
- 3.9.18:
+ 4.0:
No native support for these chipsets, because the old drivers
- have not been ported. NEED TO CHECK IF THESE CARDS WILL WORK
- WITH fbdev.
+ have not been ported.
Summary:
- No Weitek chips are supported in 3.9.18.
+ No Weitek chips are supported in 4.0.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml,v 1.13 2000/02/21 22:29:08 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml,v 1.15 2000/03/03 21:28:10 dawes Exp $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/Status,v 1.8 2000/02/21 22:44:46 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/Status,v 1.11 2000/03/04 00:51:35 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc b/xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc
index be02a1acb..31e67be0e 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc
+++ b/xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc
@@ -1123,7 +1123,7 @@ Here is a copy of modeplot:
#
# Do `modeplot -?' to see the control options.
#
- # ($Id: VideoModes.doc,v 1.1.1.2 2000/02/22 15:43:00 kem Exp $)
+ # (Id: video-modes.sgml,v 1.2 1997/08/08 15:07:24 esr Exp $)
# Monitor description. Bandwidth in MHz, horizontal frequencies in kHz
# and vertical frequencies in Hz.
@@ -1162,7 +1162,7 @@ Here is a copy of modeplot:
The modeplot tool was created by Eric S. Raymond <esr@thyrsus.com> based on
analysis and scratch code by Martin Lottermoser <Martin.Lottermoser@mch.sni.de>
- This is modeplot $Revision: 1.1.1.2 $
+ This is modeplot Revision: 1.2 $
EOF
exit;;
esac
@@ -1314,9 +1314,9 @@ using gnuplot to make mode diagrams and did the mathematical analysis behind
modeplot. The distributed modeplot was redesigned and generalized by ESR
from Martin's original gnuplot code for one case.
- Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml,v 3.15 2000/01/24 19:38:29 dawes Exp $
+ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml,v 3.16 2000/02/23 20:30:16 dawes Exp $
$XConsortium: VidModes.sgml /main/7 1996/02/21 17:46:17 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc,v 3.20 2000/02/21 22:44:46 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/VideoModes.doc,v 3.22 2000/03/01 01:48:31 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/man/Imakefile b/xc/programs/Xserver/hw/xfree86/doc/man/Imakefile
index c0c19a6bc..35bf9773e 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/man/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/doc/man/Imakefile
@@ -1,15 +1,31 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/man/Imakefile,v 3.4 1999/08/01 07:57:14 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/man/Imakefile,v 3.5 2000/03/04 01:07:33 dawes Exp $
MANDIR = $(LIBMANDIR)
MANSUFFIX = $(LIBMANSUFFIX)
all::
+#if 0
+
InstallManPage(XF86DGA,$(MANDIR))
+#if ExpandNamNames
+InstallManPageAliases(XF86DGA,$(MANDIR),XF86DGAQueryExtension XF86DGAQueryVersion XF86DGAQueryDirectVideo XF86DGAGetVideo XF86DGADirectVideo XF86DGASetVidPage XF86DGASetViewPort XF86DGAViewPortChanged XF86DGAGetViewPortSize XF86DGAInstallColormap XF86DGAForkApp)
+#endif
+
+#endif
+
+#if 0
+
InstallManPage(XF86Misc,$(MANDIR))
+#if ExpandNamNames
+InstallManPageAliases(XF86Misc,$(MANDIR),XF86MiscQueryExtension XF86MiscQueryVersion XF86MiscGetSaver XF86MiscSetSaver XF86MiscGetMouseSettings XF86MiscSetMouseSettings XF86MiscGetKbdSettings XF86MiscSetKbdSettings)
+#endif
+
+#endif
+
+/* XXX Check if this is up to date */
InstallManPageLong(XF86VM,$(MANDIR),XF86VidMode)
#if ExpandManNames
-InstallManPageAliases(XF86DGA,$(MANDIR),XF86DGAQueryExtension XF86DGAQueryVersion XF86DGAQueryDirectVideo XF86DGAGetVideo XF86DGADirectVideo XF86DGASetVidPage XF86DGASetViewPort XF86DGAViewPortChanged XF86DGAGetViewPortSize XF86DGAInstallColormap XF86DGAForkApp)
-InstallManPageAliases(XF86Misc,$(MANDIR),XF86MiscQueryExtension XF86MiscQueryVersion XF86MiscGetSaver XF86MiscSetSaver XF86MiscGetMouseSettings XF86MiscSetMouseSettings XF86MiscGetKbdSettings XF86MiscSetKbdSettings)
InstallManPageAliases(XF86VidMode,$(MANDIR),XF86VidModeQueryExtension XF86VidModeQueryVersion XF86VidModeGetModeLine XF86VidModeGetAllModeLines XF86VidModeDeleteModeLine XF86VidModeModModeLine XF86VidModeSwitchMode XF86VidModeSwitchToMode XF86VidModeLockModeSwitch XF86VidModeGetMonitor XF86VidModeGetViewPort XF86VidModeSetViewPort)
#endif
+
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml
index 5e891379a..3dba59b1a 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml
@@ -5,10 +5,10 @@
<title>Information for DEC 21030 Users (aka TGA)
<author>The XFree86 Project, Inc.
-<date>April 29th, 1999
+<date>March 5th, 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml,v 3.8 1999/07/19 13:36:20 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml,v 3.9 2000/03/06 22:59:23 dawes Exp $
</ident>
<toc>
@@ -20,7 +20,8 @@ $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml,v 3.8 1999/07/19 1
<item>The DEC 21030 is supported by XFree86 &relvers;. The driver is now
partially accelerated. The built-in graphics on the Multia is
supported in 8-plane mode, and PCI cards with 8 or 16 MB framebuffers
-are supported in 24-plane mode.
+are supported in 24-plane mode. TGA2 (aka PowerStorm 3D30/4D20)
+cards are not currently supported.
<item>Current Known Problems
@@ -34,7 +35,11 @@ ramdac, ie the Multia.
<item>After the server has been run using the hardware cursor, the
Linux TGA console cursor (which also uses the hardware cursor) is
-shifted down by one pixel.
+shifted down by one pixel. This problem does not affect Linux kernels
+2.2.10 and above, which do not use the hardware cursor.
+
+<item>The XAA PolySegment() method is buggy. If you experience server
+crashes with SIGFPE, or server hangs, try disabling it (see below).
</enum>
@@ -46,7 +51,7 @@ shifted down by one pixel.
numbers in the 21030 section. On a Multia, this should be
&dquot;PCI:0:11:0&dquot;.
-<tag>MemBase "0x???????"</tag> If the server does not
+<tag>MemBase 0x???????</tag> If the server does not
detect the base address of the 21030, then check /proc/pci for
the 21030 and look for the "Prefetchable 32 bit memory
at 0x???????" and enter this as your MemBase setting.
@@ -57,6 +62,9 @@ shifted down by one pixel.
<tag>Option "swcursor"</tag>
Disables the hardware cursor.
+<tag>Option "NoXaaPolySegment"</tag>
+ Disables the XAA PolySegment() method.
+
</descrip>
</itemize>
@@ -65,6 +73,7 @@ shifted down by one pixel.
<itemize>
<item>Matthew Grossman, <email>mattg@oz.net</email>
<item>Alan Hourihane, <email>alanh@fairlite.demon.co.uk</email>
+<item>Martin Lucina, <email>mato@kotelna.sk</email>
<item>Tim Rowley, <email>tor@cs.brown.edu</email>
</itemize>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/DGUX.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/DGUX.sgml
new file mode 100644
index 000000000..6d39f0f82
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/DGUX.sgml
@@ -0,0 +1,789 @@
+
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
+
+<article>
+
+<title>Instructions for Building XFree86 on an Intel Pentium Aviion machine with DG/UX R4.20MU04
+<author>Takis Psarogiannakopoulos
+<date>July 27, 1999
+<toc>
+
+<sect>Whats new <p>
+
+July 27, 1999<p>
+ DG has fix the streams bug in /usr/lib/tcpip.so . (Read below)
+ The workaround in the July 25 source code has been removed.
+ I've been told from DG that BSD sockets perform better in DGUX
+ than SVR4 native STREAMS. From R4.20MU06 DG/UX will have the correct
+ tcpip.so lib (no bug in STREAMS). If you have MU05,MU04 and you
+ want for some reason STREAMS definitely contact DG for an updated
+ /usr/lib/tcpip.so in /usr/lib (patch for your MU04,5).
+<p>
+ DG/UX at the moment lacks the sysi86 syscall and the definition
+ of SYSI86IOPL (that is in &lt;sys/sysi86.h&gt; but guarded by a
+ UNIXWARE defintion that of course cannot be applicable to DG/UX).
+ Until this header is accessible by a simple -DDGUX , and _sysi86,
+ sysi86 subroutines added to libc (or some other extra library)
+ we need to define the DG_NO_SYSI86 to be 1. If DG makes the above
+ modifications , you will need to manually edit the files (before
+ building!)
+ xc/programs/Xserver/hw/xfree86/SuperProbe/OS_DGUX.c
+ xc/programs/Xserver/hw/xfree86/etc/scanpci.c
+ xc/programs/Xserver/hw/xfree86/os-support/dgux/dgux_video.c
+ and eliminate DG_NO_SYSI86 flag by changing DG_NO_SYSI86 1-->0.
+<p>
+July 25, 1999<p>
+ A major bug has now been corrected in this release. According to this
+ since the STREAMS interface of DG/UX were broken the server was
+ listening not to port 6000 (= 0x1770) but to 0x7017.
+ All binaries that you have from 3.3.3.1, 3.3.3 they will work
+ locally (if you run them in the same machine) but NOT remotely
+ because they use an Xlib that tries to connect to port 28365.
+ If you want to run them remotely YOU MUST recompile them!
+ Steve thank you for bringing this to my attention initially but
+ was too busy then to look at it in detail... Perhaps I should
+ have...
+<p>
+ We now use sockets instead of ioctls.
+ But I've fix and tested the STREAMS also.
+<p>
+ David thanks for making me realize that this was indeed a problem
+ in DG/UX.
+<p>
+ I've also take the trouble to port gdb-4.17/8 and ddd (X inter)
+ in pub/XFree86/3.3.5/binaries/DGUX-ix86/GDB_BETA (both binaries
+ and source code) in order to be able to send me traces of core
+ files produced by Xservers. Try
+<verb>
+ gdb /usr/X11R6/bin/X location of core/core
+ gdb: where
+</verb>
+ and send me what you see.
+ (I suppose that the Xserver executable is in /usr/X11R6.3/bin)
+<p>
+ From 3.3.3.1:
+ Several bugs are now fixed. DG/UX support is on this official
+ patch. All configuration is in xc/config/cf/DGUX.cf and in
+ xf86site.def. Also Imake autodetects (thanks to David Dawes)
+ the DGUX OS (including Release version). So only a simple
+ "make World" is needed anymore to build in ix86 DG/UX.
+ Usually the process to build is (after unpacking and patching
+ the source "xc" tree) to go to xc/config/cf copy the file
+ xf86site.def to site.def and edit the files DGUX.cf ,site.def
+ for whatever changes you need to do.
+<p>
+ Default ProjectRoot in 3.3.5 is /usr/X11R6 (except if you
+ set this specifically in DGUX.cf either as /usr/X11R6.3--
+ --my choice, or in whatever you like).
+<p>
+ From:
+ December 1, 1998
+ IMPORTANT: PLEASE READ THE FILE README-GCC-2.8.1
+ GCC VERSION 2.8.1 is recommended for the DGUX build of X11R6.3
+ You can ignore below the _old_ conversation about gcc compiler
+ if you already run a gcc-2.8.1 in your machine.
+
+<sect> GENERAL: <p>
+
+ Get from ftp.xfree86.org the XFree 3.3.x source code:
+<verb>
+ ftp ftp.xfree86.org
+ login: ftp
+ passwd: your e-mail address
+ cd pub/XFree86/3.3.5/source
+ You need the files:
+ X335src-1.tgz
+ X335src-2.tgz
+ X335src-3.tgz
+</verb>
+<p>
+ Get also the contributed X software
+<verb>
+ cd /pub/XFree86/3.3.5/source
+ X335contrib.tgz
+</verb>
+<p>
+ If you have the source tarballs of 3.3.3 go to
+ /pub/XFree86/3.3.5/binaries/DGUX-ix86/SOURCE get the DGUX source
+ patch
+<p>
+<verb>
+ 3.3.3-3.3.5-DGUX.diff.gz
+ X335contrib-DGUX.diff.gz (patch for the contrib software).
+</verb>
+<p>
+ to avoid downloading all the source code again.
+<p>
+ Sorry some DGUX changes they didn't make in time for the official
+ release date of 3.3.4...
+ I do this for free, so some times I may be excused for something
+ like this...
+<p>
+ To build X11R6.3 you need also the tools for DG/UX (see discussion
+ below). They will be in
+ ftp dpmms.cam.ac.uk
+ (University of Cambridge,Department of Pure Mathematics)
+ in /pub/takis/DGUX-Tools/BuildXtools.tar.gz (anonymous ftp)
+ or in the ftp.xfree86.org ...
+ (pub/XFree86/3.3.5/binaries/DGUX-ix86/SOURCE/BUILD-TOOLS/
+ BuildXtools.tar.gz).
+<p>
+ Using a big filesystem (I use a virtual disk "xf86work" mounted on
+ /xf86work of size 1400000 blocks) copy the source as:
+<p>
+<verb>
+ cp X335src-1.tgz /xf86work/X335src-1.tar.gz
+ cp X335src-2.tgz /xf86work/X335src-2.tar.gz
+ cp X335src-3.tgz /xf86work/X335src-3.tar.gz
+</verb>
+<p>
+ (or X333src-1,2,3.tar.gz as above plus the DG/UX patch to 3.3.5
+ i.e. the file 3.3.3-3.3.5-DGUX.diff.gz)
+<p>
+ And maybe the contributed software:
+<verb>
+ cp X335contrib.tgz /xf86work
+
+ (cp X335contrib-DGUX.diff.gz /xf86work).
+</verb>
+<p>
+ If you get the patches from DGUX-ix86, to build from source 3.3.3
+ your first problem is that in order to apply the source patch you
+ need "patch" a very common GNU program that DG/UX doesn't have!?
+ This program is in BuildXtools.tar.gz
+ (or ftp prep.ai.mit.edu cd/pub/gnu get patch-2.5.tar.gz)
+ So lets speak about these tools before anything else:
+ Using "sysadm" mount a filesystem usr_local under /usr/local with
+ size 200000 blocks. Then copy the BuildXtools file in /usr and give:
+<verb>
+ gzip -d < BuildXtools.tar.gz | tar xvf -
+</verb>
+<p>
+ It will unfold in the new filesystem /usr/local.
+ Then go to your ".profile" (in your Home dir , mine eg is /admin)
+ and add the /usr/local/bin in your path and the /usr/local/lib in
+ your lib-path.
+<p>
+ What you need is like that:
+ (vi .profile)
+<p>
+<verb>
+ PATH=/usr/local/bin:/sbin:/usr/sbin:/usr/bin
+ if [ -d /usr/opt/X11/bin ]
+ then
+ PATH=$PATH:/usr/opt/X11/bin
+ fi
+ export PATH
+ (/usr/local/bin is before any other path!)
+
+ LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/usr/ccs/lib
+ export LD_LIBRARY_PATH
+</verb>
+<p>
+ then exit and re-login so that your new modified .profile will take effect.
+<p>
+ Now do the following:
+<verb>
+ cd /usr/sbin
+ cp install install_dg
+ rm install
+ cp /usr/local/bin
+ cp install /usr/bin *(make the GNU install the default install)*
+ (DG/UX install is useless)
+ (Look also the file xc/config/cf/DGUX.cf , below).
+
+ (Or get GNU make-3.77 and copy install.sh (or -sh) to a /usr/bin/install)
+
+ cd /usr/bin
+ cp true /usr/local/bin
+ cd /usr/local/bin
+ ln -s true ranlib (Install true as ranlib in the DG/UX system)
+</verb>
+ Usually giving -v,-V or --version will give you build info on all
+ the tools in /usr/local/bin (try it).
+<p>
+ **Look the discussion for gcc before you build (below)**
+<p>
+ Now untar the source tree:
+ In /xf86work (or whatever name you gave to the big filesystem for the build)
+<verb>
+ gzip -d < X335src-1.tar.gz | tar xvf -
+ gzip -d < X335src-2.tar.gz | tar xvf -
+ gzip -d < X335src-3.tar.gz | tar xvf -
+</verb>
+
+ (If you have X-3.3.3 do the same for the 3.3.3 sources and
+ then apply the 3.3.5-DGUX source patch
+
+<verb>
+ gzip -d < 3.3.3-3.3.5-DGUX.diff.gz | patch -p0 -E).
+</verb>
+
+ The directory xc in now present in your build filesystem.
+
+
+<sect> Configuration for the build:<p>
+ Almost all you need is in "DGUX.cf" located in xc/config/cf.
+ Edit the file DGUX.cf and site.def and change what ever you need.
+ Remember DGUX.cf overwrites site.def.
+ The default ProjectRoot for XFree86-3.3.5 is now /usr/X11R6
+ (located in site.def). If you want to change this to whatever
+ you like (I prefer /usr/X11R6.3 and a link in /usr X11R6->X11R6.3)
+ edit DGUX.cf and locate the entry:
+<p>
+<verb>
+ #if 0
+ #define ProjectRoot /usr/X11R6.3
+ #endif
+</verb>
+ Eliminate the #if 0 , #endif.
+ Then change this to whatever you prefer.
+ (I prefer the above for the pre-compiled binaries)
+<p>
+ The DG/UX malloc is crap and keeps bringing problems with some
+ X software so I don't use it. Instead there is a port of GNU
+ malloc in /usr/local (it came with the BuildXtools file).
+ Don't try to build with the /lib/libmalloc.a of DG/UX and then
+ send me e-mails that some programs they don't work properly.
+ In my build I use tcl8.0 and tk8.0 since the xconfig of R4.20MU03
+ is reporting incorrect values for the monitors and XF86Setup
+ need to be build in order to manage to adjust the display.
+ If you don't have this (or don't want this) comment out the lines
+ about tcl,tk, (in DGUX.cf)
+<p>
+<verb>
+ /*******TCL TK DEFINITIONS ***********/
+ #define HasTk YES-->NO
+ ...
+ #define HasTcl YES-->NO
+</verb>
+ Also 'GNU make' is required for the correct X11R6.3 build.
+ (it is in Buildxtools file).
+ If you decide yes to tcl,tk obtain the files
+<verb>
+ tcl8.0.3.tar.gz
+ tk8.0.3.tar.gz (from some ftp)
+</verb>
+ (or newer versions) and compile them before the building
+ of X11R6.3 (Build first tcl8.0.3 then tk8.0.3).
+<p>
+<sect> DISCUSSION ABOUT GCC<p>
+ There are so much things that I can say for the system gcc of
+ DG/UX. If I was keeping track for the programs that fail using
+ this compiler I will certainly have fill a book (conveniently
+ for the DG of course).
+ But my work is not to correct bugs for the DG/UX compiler or
+ anything else) , and in particular to collect reports for
+ the genius of DG.
+ (DG:Sorry guys nothing personal. I am a pure Mathematician ,
+ I am doing all this work for pleasure, I don't want any money
+ from DG or anybody else , I am not looking to become a employer
+ of DG,and I am NOT a trouble shooter of the DG/UX in general.
+ But maybe some times if you help I may be able to help you also).
+<p>
+ What I wanted to do is to build X11. Thats why you will find
+ in BuildXtools a new gcc. This gcc is build for DG/UX R4.20MU02.
+ so you have to upgrade your DG/UX OS version to the above.
+ But it is solid to build not only X11 but whatever else you want.
+ DO NOT use gcc of DG/UX. If you do I cannot tell you anything
+ about any problems that you have.
+ To complete the installation of this new gcc do the following:
+<p>
+<verb>
+ cp -r /usr/local/gcc-dgux /usr/opt/sdk/sde/ix86dgux/usr/lib
+ cd /usr/opt/sdk/sde/ix86dgux/usr/lib
+ rm gcc
+ ln -s gcc-dgux gcc (set link gcc--->gcc-dgux)
+
+ cd /usr/local
+ cp -r /usr/local/gcc-dgux /usr/sde/ix86dgux/usr/lib
+ cd /usr/sde/ix86dgux/usr/lib
+ rm gcc
+ ln -s gcc-dgux gcc (set link gcc-->gcc-dgux)
+</verb>
+
+ To come back to your old DG/UX gcc just change the above two
+ links gcc-->gcc-dgux
+ to gcc-->gcc-2
+ with the command: (in both the above two dirs)
+<verb>
+ rm gcc
+ ln -s gcc-2 gcc
+</verb>
+
+ /usr/bin/gcc -v should report the version that you have.
+ To build successfully this version of X11 gcc is a *MUST*.
+<p>
+ Dynamic loading Servers:
+ Edit xc/config/cf/DGUX.cf and change the entry
+<p>
+ #ifndef BuildDynamicLoading
+ #define BuildDynamicLoading NO --->YES.
+ #endif
+<p>
+ Remember when you build you will see lots of errors and the servers
+ will NOT build! This is because the dynamic linker doesn't know
+ the locations of the newly created R6 libX's.
+ So after the (seem faulty) building do a
+<p>
+ make DESTDIR=ProjectRoot/lib install
+<p>
+ (look below for install, ProjectRoot the location that you choose
+ in the file xc/config/cf/DGUX.cf above)
+<p>
+ So that all your new libXR6 libraries will go there.
+ (do a cd ProjectRoot/lib to make sure).
+<p>
+ Then go to your home dir and declare the path ProjectRoot/lib dir
+ in you LD_LIBRARY_PATH (your profile) as:
+<p>
+ LD_LIBRARY_PATH=ProjectRoot/lib:$LD_LIBRARY_PATH
+ export LD_LIBRARY_PATH
+<p>
+ Then relogin!
+<p>
+ Now just _rebuild_ A FULL XFree86-3.3.5 with the entry
+<p>
+ #define BuildDynamicLoading YES in your DGUX.cf.
+<p>
+ This time you will build _all_ XFree86-3.3.5 correctly.
+<p>
+
+<sect> BUILD <p>
+ In the usual X11R5 of DG (mwm) open an xterm and give:
+ (/bin/sh = Bourne shell)
+<p>
+<verb>
+ cd xc
+ make World > Build-dg.log
+</verb>
+
+ In that way you will get all the error messages in your
+ screen.
+ Don't worry with messages about -znodefs.
+<p>
+ Note: the old command
+<verb>
+ make World BOOTSTRAPCFLAGS="-DDGUX" > Build-dg.log
+</verb>
+ is no longer needed since imake will detect the DGUX OS
+ (in Version => 3.3.3.1) and set up things. However this
+ command will also work.
+<p>
+ And in another xterm give cd xc
+ tail -f Build-dg.log to watch the building progress.
+<p>
+ To install X11R6.3 XFree version 3.3.5 after the build
+ you must have a filesystem say usr_X11R6.3 mounted to
+ the directory /usr/X11R6 size 350000 blocks.
+ (or whatever you choose to be your ProjectRoot, if you
+ modify DGUX.cf for another ProjectRoot than the default
+ /usr/X11R6 in site.def).
+ Then give
+<verb>
+ make install
+ make install.man (install the man pages)
+</verb>
+ The installation will not put an XF86Config in your
+ /usr/X11R6.3/lib/X11/ and so if you give startx the new
+ X11 will not start. Read the file README-X3331.DGUX in
+ this ftp site (located in the binaries) about the whole
+ installation procedure of X11R6.3.
+ Or quickly you can do:
+ (I remind: DG/UX mouse device "/dev/mouse")
+ cd /usr/X11R6.3/bin
+ ln -s XF86_VGA16 X
+ Then put in your .profile the path /usr/X11R6.3/bin and
+ run the XF86Setup program. Adjust first the mouse device
+ then everything else.
+ (You need to read really the file README-DGUX.INSTALL-> look
+ in the end of this file).
+<p>
+ To build the contributed software with XFree86-3.3.5 get
+ the X335contrib.tgz and do
+<verb>
+ gzip -d < X335contrib.tgz | tar xvf -
+</verb>
+
+ (Or for 3.3.3 sources unpack X333contrib.tgz and apply the DGUX
+ patch as
+<verb>
+ gzip -d < X335contrib-DGUX.diff.gz | patch -p0 -E ).
+</verb>
+ Please note:
+ You must have already install and active the X11R6.3 that you
+ build so that the imake is working properly for your system.
+ Read below for how to install this X window system.
+ After that you could do:
+
+<verb>
+ cd contrib
+ xmkmf -a
+ make
+ make install
+ make install.man (for installing the man pages)
+</verb>
+
+
+<sect> INSTALLATION OF THE BINARY:<p>
+
+ NOTE:This executable has been compiled with the macro -DPENTIUM_CHANGE
+ (that all the new Aviion machines support). If you have an old i486
+ (rather unlikely) the executable will NOT RUN correctly.
+ But we haven't use -mcpu=pentiumpro, so the executable will work on
+ ALL PENTIUM machines.
+
+<itemize>
+<item> About Project Root: I choose as ProjectRoot for ix86 DG/UX the location
+ /usr/X11R6.3. The default (in 3.3.5 sources) is the /usr/X11R6. To
+ cover this we make a link in /usr as X11R6->X11R6.3 (read below);
+ so don't forget to do this link. I don't like the location /usr/opt/X11
+ (default location of DG X11) that some of you have suggested to me, I
+ believe it is a good idea to keep the original X11 as is for several
+ reasons.
+
+<item> Make a filesystem,using sysadm, mounted under "/usr/X11R6.3".
+ This is the default location of X11R6.3 , you cannot change this
+ except if you recompile the whole source of X.
+ (Please don't send e-mails about this).
+ The size of this filesystem should be around 175 MB(350000 blocks).
+
+ The list of files is:
+
+<verb>
+ X3353DL.tgz 3D_Labs XServer ... etc
+ X3358514.tgz
+ X335AGX.tgz
+ X335I128.tgz
+ X335Ma32.tgz Mach32 Xserver
+ X335Ma64.tgz Mach64 Xserver
+ X335Ma8.tgz
+ X335Mono.tgz
+ X335P9K.tgz
+ X335S3.tgz
+ X335S3V.tgz
+ X335SVGA.tgz SuperVGA Xserver (Supports AV3700 Cirrus)
+ X335VG16.tgz VGA16 Xserver (needed by XF86Setup)
+ X335W32.tgz
+ X335bin.tgz BIN (you must have this)
+ X335cfg.tgz
+ X335doc.tgz
+ X335f100.tgz
+ X335fcyr.tgz
+ X335fnon.tgz
+ X335fnts.tgz
+ X335fscl.tgz
+ X335fsrv.tgz
+ X335lib.tgz LIB (you must have this)
+ X335lkit.tgz Linkkit (X development)
+ X335man.tgz Man pages
+ X335nest.tgz
+ X335prog.tgz
+ X335prt.tgz
+ X335set.tgz
+ X335vfb.tgz
+ preinst.sh Install script
+ extract The XFree86 extract program (for ix86 DG/UX)
+
+ SUMS.md5 Checksums for the integrity of the files
+</verb>
+ (Try compile the GNU textutils-1.22.tar.gz from
+ prep.ai.mit.edu /pub/gnu. md5sum is there).
+<p>
+ You need at least:
+<verb>
+ X335bin.tgz
+ X335lib.tgz
+</verb>
+ And the correct Xserver for your machine/Graphics card.
+ In my opinion take all files , in the future you may need to
+ switch to another graphics device etc ... (mget *).
+ Generally it is good to have the full distribution of the
+ X11R6.3 window system ,it should make life easier in DG/UX.
+<p>
+ (Trivial:you must have root privilege).
+<p>
+<item> Unpack the *.tgz files in your / so that it will go directly inside to
+ the new filesystem /usr/X11R6.3. After you do that cd /usr and do a link :
+ ln -s X11R6.3 X11R6. (Use the install script).
+ This link will indicate in XF86 programs like XF86Setup where the new X11
+ window system is.
+
+<item> cd your home dir and backup your .profile as "cp .profile myprofile". Then
+ cd /usr/X11R6.3. Copy the file HOME.profile-X11R6.3 to your home dir as
+ "cp HOME.profile-X11R6.3 your home dir/.profile" ,then cd your home dir and
+ "chmod 644 .profile" to make sure that the new profile is active. This is
+ because you need to tell to the system to look for the X software in a
+ different location than the usual /usr/bin/X11 of DG/UX. Also you need
+ to tell to the system that the new X libraries are in /usr/X11R6.3/lib.
+<p>
+ **You NEED to re-login in order to make the new .profile active !**
+ ** DO NOT GIVE "startx" AFTER THAT, READ Configuration below !**
+
+<item> About Configuration:
+ DG/UX has a program (actually a script) called xconfig that makes the
+ configuration for you. Usually when you run xconfig in the DG/UX-X11R5
+ it creates a file XdgConfig in /var/X11/Xserver which is the corresponding
+ of the XF86-configuration file located in /usr/X11R6.3/lib/X11/XF86Config.
+ This file ,in the section monitor, has all values for your monitor.
+ Please Note:
+ Unfortunately in DG/UX R4.20MU02 things change. Instead of going forwards we
+ going backwards... xconfig reports crazy values for my DG-DA1765VA monitor.
+ So if you have a CDROM of DG/UX R4.11MU02,or MU03 use it to find an xconfig
+ that will give you reliable values for your monitor.
+<p>
+ Your best bet is to use XF86Setup for correct adjustments.
+<p>
+ Thats the reason that in this binary there is a minimum tcl,tk(version 8.0).
+ Before you run XF86Setup read the relevant documents found in www.xfree86.org.
+ (Or read below for a hand-made configuration).
+<p>
+ Notice about XF86Setup: You will will see the message
+ "The program is running on a different virtual"
+ "Please switch to the correct virtual terminal"
+<p>
+ DG/UX does NOT have any virtual terminals. But XF86Setup uses a script
+ that doesn't checks for this. So it is printing this message anyway.
+ Ignore it and don't send e-mails asking how to set the virtual terminal!
+ XF86Setup WORKS for SURE (if you use it correctly) to set your configuration.
+ Just remember:
+ <enum>
+ <item> make a link in /usr/X11R6.3/bin: ln -s XF86_VGA16 X
+ <item> set mouse device in your XF86Config to /dev/mouse (this the mouse in DGUX)
+ <item> set the correct mouse protocol. (usually for a typical AViiON PS/2).
+ </enum>
+ Or just cd /usr/X11R6.3/lib/X11 and copy XF86Config.eg.dgux to XF86Config
+ (it is for a PS/2 protocol mouse that almost all AViiON's have) , then
+ run XF86Setup and choose to use this XF86Config file as default (so mouse
+ works).
+<p>
+ Alternatively, you can run xf86config, a non-graphical configuration utility
+ but you will need to enter manually the values for your monitor.
+ If you have the small booklet that came with the monitor they are inside.
+<p>
+ Hand made configuration:
+ I have an DG/UX Medium resolution (1280x1024) 17 inch DG-26059,DA1765VA.
+<bf>
+ ONLY IF YOU HAVE THE
+ ***EXACT SAME***
+ MONITOR USE THE FILE XF86Config_SVGA_DGUX that you will find in /usr/X11R6.3/.
+ IT IS IN YOUR OWN RISK IF YOU DECIDE TO USE THIS FILE WHEN YOU DON'T HAVE THE
+ SAME MONITOR AS MINE. YOU CAN DAMAGE YOUR VIDEO MONITOR OR YOUR GRAPHICS CARD.
+</bf>
+<p>
+ An example of how to use the Accel Servers (eg ATI=XF86_Mach64) is in the file
+ XF86Config_ATI_DGUX.
+ Again remember:
+ I have an DG/UX Medium resolution (1280x1024) 17 inch DG-26059,DA1765VA.
+<bf>
+ ONLY IF YOU HAVE THE
+ ***EXACT SAME***
+ MONITOR USE THE FILE XF86Config_ATI_DGUX that you will find in /usr/X11R6.3/.
+ IT IS IN YOUR OWN RISK IF YOU DECIDE TO USE THIS FILE WHEN YOU DON'T HAVE THE
+ SAME MONITOR AS MINE. YOU CAN DAMAGE YOUR VIDEO MONITOR.
+</bf>
+<p>
+ Start with the file XF86Config.eg as a prototype. READ the README.Config .
+ In Cirrus chips you need to read the file README.cirrus located in /usr/X11R6.3
+ There is a problem with the accelerated XAA code ,so you need to try to put
+ the following option in your XF86Config:
+<verb>
+ Option "no_mmio" (in Section Screen ,subsection display).
+</verb>
+ Look in the XF86Config_SVGA_DGUX to see how this can be done .
+ If this doesn't work (it will probably) try Option "noaccel" or "no_bitblt".Again
+ READ the file README.cirrus (and README.Config).
+ I suggest to print (in paper) the file XdgConfig and have a look in it. Then it
+ should be quite trivial to figure out what you have to do with the XF86 file
+ ie XF86Config in the sections mouse, keyboard, screen ...
+ After you have a correct XF86Config in /usr/X11R6.3/lib/X11 give
+<verb>
+ chmod 444 XF86Config.
+</verb>
+<p>
+ Supposing that you have already re-login so that the new .profile is active
+ and you have the correct XF86Config file (as your XdgConfig suggest) (DO not
+ forget for a cirrus to put the Option "no_mmio" in section screen !), give
+ startx and the new X11 will start .
+ Remember: You can shut down at any point the Xserver by pressing
+ CONTROL+ALT+BACKSPACE (if something goes wrong).
+ Also Xservers don't produce messages unless to want them to do so. This is
+ because the DG/UX console driver some times causes corruption of the screen
+ if you print text during the startup of the Xserver.
+ If you require messages try in bash shell to give: (bash# )
+<verb>
+ X -verbose >& info1 or even
+ X -verbose -verbose >& info2 for more messages.
+</verb>
+ Then when the server is up press CONTROL+ALT+BACKSPACE to shutdown the
+ Xserver. File info1 (or info2) have all relevant info about your graphics
+ card , display memory etc ...
+ I suggest you do that at least one time before start using the new X11R6.3.
+ Read this info file to see if all ok. If not try change settings in your
+ XF86Config to make thinks correct.
+<p>
+ If you have an ATI Rage II (or RageII+) use the server XF86_Mach64 (make
+ a link link X--->XF86_MACH64, or run xf86config, or use XF86Setup above).
+
+<item> If you want to compile programs with the X11R6.3 the headers in /usr/include
+ /X11 pointing to /usr/opt/X11 of DG/UX is a problem .
+ Do:
+<p>
+ a): unmounting the /usr/opt/X11 will prevent the sysadm to use the X
+ graphical interface. But this will be the only thing that you loose.
+ The correct thing to do for X11R6.3 is to delete the filesystem /usr/opt/X11
+ and make a link /usr/opt/X11--->/usr/X11R6.3 , so that the libraries
+ from dglib and /usr/lib point correctly to the new ones in /usr/X11r6.3/lib.
+ Before you unmount this filesystem you need to do this:
+<verb>
+ cd /usr/opt/X11/include
+ cp -r Mrm /usr/X11R6.3/include
+ cp -r uil /usr/X11R6.3/include
+ cp -r Xm /usr/X11R6.3/include
+ cd /usr/X11R6.3/include
+ ln -s uil Uil
+</verb>
+
+ LIBRARIES:
+<verb>
+ and cd /usr/opt/X11/lib
+ cp libXm.a /usr/X11R6.3/lib
+</verb>
+
+ and similarly copy the following libraries:
+
+<verb>
+ libX11.so.2, libX11.so.5, libXIM.so.1, libXaw.so.1, libXaw.so.2,
+ libXext.so.2, libXi.so.2, libXimp.so.1, libXm.so.2, libXmu.so.2,
+ libXsess.so.1, libXsi.so.1, libXt.so.2, libXt.so.5.0, libMrm.a,
+ libUil.a, libX11_s, libXR4sco_s
+</verb>
+
+ into /usr/X11R6.3/lib.
+<p>
+ Then cd /usr/X11R6.3/lib and make links:
+
+<verb>
+ ln -s libXm.so.2 libXm.so
+ ln -s libXm.so.2 libXm.so.1
+ ln -s libXm.so.2 libXm.so.5.0
+
+ ln -s libX11.so.5.0 libX11.so.1
+
+ ln -s libXIM.so.1 libXIM.so.5.0
+
+ ln -s libXaw.so.2 libXaw.so.5.0
+
+ ln -s libXext.so.2 libXext.so.5.0
+ ln -s libXext.so.2 libXext.so.1
+
+ ln -s libXi.so.2 libXi.so.1
+ ln -s libXi.so.2 libXi.so.5.0
+
+ ln -s libXimp.so.1 libXimp.so.5.0
+
+ ln -s libXmu.so.2 libXmu.so.5.0
+
+ ln -s libXt.so.2 libXt.so.5.0
+
+ ln -s libXsi.so.1 libXi.so.5.0
+
+ cd /usr/X11R6.3/lib
+ rm libXmu.so (to avoid undefs when building X software)
+</verb>
+
+ Also you need to correct the links in /usr/dglib at least!
+ (the correct thing to do is modify also /usr/lib links to
+ /usr/opt/X11 libs).
+ Try
+<verb>
+ cd /usr/
+ tar -cvf dglib-orig.tar dglib
+ gzip dglib-orig.tar
+</verb>
+ (to minimize the space dglib-backup takes) then
+<verb>
+ cd /usr/dglib
+</verb>
+ and delete ALL links to libraries in
+ /usr/opt/X11. Then copy the script create_new_links_in_dglib (found
+ in /usr/X11R6.3 to /usr/dglib and cd /usr/dglib execute script.
+ This will create all new links with the X11R6.3 X window system.
+<p>
+ But remember to do in the end :
+<p>
+<verb>
+ cd /usr/dglib
+ rm *.a (no static libs links in dglib)
+</verb>
+
+ Then unmount (delete) the old X11 by giving "umount /usr/opt/X11".
+<p>
+ NOTE: If you compile programs in the X11R6 make sure that you
+ unmount /usr/opt/X11 or you eliminate the links in /usr/lib
+ to the OLD libX's in /usr/opt/X11/lib.
+ Otherwise gcc will link these old libraries! and the binary will
+ not run correctly.
+ Always after an R6 compilation do "ldd prog" to make sure that the
+ binary loads only R6 version libraries (except maybe the motif
+ library libXm.so.2), --if you don't use the static libXm.a
+<p>
+ b:)
+<verb>
+ cd /usr/include
+ tar -cvf old-X11headers.tar X11
+ gzip old-X11headers.tar
+</verb>
+ so that you store your old headers in /usr/include.
+
+ Then cd /usr/include/ and delete
+<verb>
+ rm -r X11
+ rm Xm
+ rm Mrm
+ rm Uil
+ rm uil
+ Make new links as:
+ cd /usr/include
+ ln -s ../X11R6.3/include/X11 X11
+ ln -s ../X11R6.3/include/uil Uil
+ ln -s ../X11R6.3/include/uil uil
+ ln -s ../X11R6.3/include/Xm Xm
+ ln -s ../X11R6.3/include/Mrm Mrm
+</verb>
+</itemize>
+
+<sect> What is about:<p>
+ This new X11R6 are not simply an upgrade of the servers to the latest ones.
+ It is a new programming platform in your DG/UX system to allow you to import
+ all this *FREE* or not software for the X window system.
+ This software will not compile in the old (and ugly) X11 of Data General.
+ The imake command that is implemented in almost all the (source) software
+ for X11 (free or not) will not work with the totally broken "imake" command
+ of /usr/opt/X11 of DG/UX.
+<p>
+ The imake of DG/UX X11R5 is badly broken:
+ I have seen DG/UX releases R4.11,MU01, ...MU04, R420, R4.20MU02 ,R4.20MU03
+ and nobody bother to look in all these releases the imake command...
+<p>
+ While until now DG was rather hostile to the prospect of a new X11 in DG/UX
+ some new folks there they have turn their interest in X11R6 (XFree86) these
+ days. That is good of course because the ultimate target is to make XFree86
+ (3.3.5 or whatever version) to run in _their_ DG/UX Unix! I will be able to
+ make a much better X11 in DG/UX if I could had some access to DG/UX sources
+ (i.e. the original R5 sources , but not only --eg kernel driver sources as
+ for example the DG/UX kernel console driver sources).
+<p>
+ I have compile almost anything that runs for Linux in DG/UX using this X11.
+ In doing this work in XFree86 I would like to express my thanks to David Dawes
+ that he help me all the time with several technical questions. Also D.T. is one
+ of the people that offer valuable help.
+ Finally I want to express my thanks to John H. for enlightening me in some syscall
+ issues.
+
+
+<verb>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DGUX.sgml,v 1.1 2000/02/24 20:43:23 dawes Exp $
+</verb>
+
+</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml
new file mode 100644
index 000000000..895ce09a7
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml
@@ -0,0 +1,719 @@
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
+
+<!-- Created: Mon Feb 28 13:00:00 2000 by brian@precisioninsight.com -->
+<!-- Revised: Mon Mar 6 20:10:02 2000 by kevin@precisioninsight.com -->
+
+ <article>
+
+ <title>DRI Users Guide
+ <author><htmlurl url="http://www.precisioninsight.com/"
+ name="Precision Insight, Inc.">
+ <date>6 March 2000
+
+ <ident>
+ $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml,v 1.3 2000/03/08 05:38:41 dawes Exp $
+ </ident>
+
+ <toc>
+
+ <sect>Preamble
+<p>
+ <sect1>Copyright
+<p>
+ <bf>Copyright &copy; 2000 by Precision Insight, Inc.,
+ Cedar Park, Texas.
+ All Rights Reserved.</bf>
+ <p>
+ <bf>Permission is granted to make and distribute verbatim copies
+ of this document provided the copyright notice and this permission
+ notice are preserved on all copies.</bf>
+
+ <sect1>Trademarks
+<p>
+ OpenGL is a registered trademark and SGI is a trademark of
+ Silicon Graphics, Inc.
+ Unix is a registered trademark of The Open Group.
+ The `X' device and X Window System are trademarks of The Open Group.
+ XFree86 is a trademark of The XFree86 Project.
+ Linux is a registered trademark of Linus Torvalds.
+ Intel is a registered trademark of Intel Corporation.
+ 3Dlabs, GLINT, and Oxygen are either registered trademarks or
+ trademarks of 3Dlabs Inc. Ltd.
+ 3dfx, Voodoo3, Voodoo4, and Voodoo5 are registered trademarks of
+ 3dfx Interactive, Incorporated.
+ All other trademarks mentioned are the property of their
+ respective owners.
+
+ <sect>Introduction
+<p>
+ With XFree86 4.0 and Precision Insight's Direct Rendering Interface
+ (DRI), hardware accelerated 3D graphics can be considered a standard
+ feature on Linux workstations.
+ Support for other operating systems, such as FreeBSD, is underway.
+ <p>
+ This document describes how to use the DRI system and troubleshoot
+ problems which may occur.
+ Readers should have a basic understanding of Linux, X and OpenGL.
+ See the resources section at the end for more documentation and
+ software downloads.
+ <p>
+ This document does not cover compilation or installation of
+ XFree86 4.0;
+ it is assumed that you've already installed a Linux distribution which
+ includes XFree86 4.0.
+
+ <sect>Supported Hardware
+<p>
+ 3D acceleration is currently only available for systems with
+ Intel-compatible CPUs.
+ Support for Alpha, and perhaps other CPUs, should be available in the
+ future.
+ <p>
+ XFree86 4.0 includes 3D acceleration for the following
+ graphics hardware:
+
+ <itemize>
+ <item>3dfx:
+ <itemize>
+ <item>Voodoo3 3500 TV
+ <item>Voodoo3 3000 AGP
+ <item>Voodoo3 3000 PCI
+ <item>Voodoo3 2000 AGP
+ <item>Voodoo3 2000 PCI
+ <item>Voodoo Banshee
+ <item>Velocity 100/200
+ </itemize>
+ There are many configurations of 3dfx cards on the market.
+ Not all have been tested.
+ <item>3Dlabs Oxygen GMX 2000 (MX/Gamma based)
+ </itemize>
+
+ <p>
+ Support for the following hardware is underway:
+ <itemize>
+ <item>Intel i810
+ <item>Matrox G400
+ <item>ATI Rage 128
+ <item>3dfx Voodoo4 and Voodoo5 series
+ </itemize>
+
+
+ <sect>Prerequisite Software
+<p>
+ <itemize>
+ <item>XFree86 4.0
+ <item>Linux kernel 2.2.x (later kernels will be supported in
+ the near future, and may be required for some chipsets)
+ </itemize>
+ <p>
+ Mesa 3.3 (beta) is included with XFree86 4.0; there is no need to
+ download the stand-alone Mesa distribution.
+
+
+ <sect>X Server Start-up
+<p>
+ This section describes the steps needed to start the X server with
+ 3D acceleration support.
+
+ <sect1>Kernel module
+<p>
+ Before starting the X server you must install the correct kernel
+ module for your hardware.
+ <p>
+ This can be done by executing the following as root:
+ <verb>
+ insmod XXX/drivername.o
+ </verb>
+ <p>
+ For example, on 3dfx hardware, the kernel module is called tdfx.o
+ so you you would type insmod XXX/tdfx.o
+
+ <p>
+ Verify that the kernel module was installed by checking that
+ /proc/dri/0 exists.
+
+ <sect1>XF86Config file
+<p>
+ First, the XF86Config file must load the GLX and DRI modules:
+
+ <verb>
+ Section "Module"
+ ...
+ # This loads the GLX module
+ Load "glx"
+ # This loads the DRI module
+ Load "dri"
+ EndSection
+ </verb>
+
+ Next, the DRI section can be used to restrict access to direct
+ rendering.
+ <p>
+ If you want all of the users on your system to be able to use
+ direct-rendering, then use a simple DRI section:
+ <verb>
+ Section "DRI"
+ Mode 0666
+ EndSection
+ </verb>
+ <p>
+ This section will allow any user with a current connection to the X
+ server to use direct rendering.
+ <p>
+ If you want to restrict the use of direct-rendering to a
+ certain group of users, then create a group for those users by
+ editing the <tt>/etc/group</tt> file on your system.
+ For example, you may want to create a group called <tt>xf86dri</tt>
+ and place two users (e.g., <tt>fred</tt> and <tt>jane</tt>) in
+ that group.
+ To do that, you might add the following line to <tt>/etc/group</tt>:
+
+ <verb>
+ xf86dri:x:8000:fred,jane
+ </verb>
+
+ You have to be careful that the group id (8000 in this example)
+ is unique.
+ <p>
+ Then you would use the following DRI section:
+
+ <verb>
+ Section "DRI"
+ Group "xf86dri"
+ Mode 0660
+ EndSection
+ </verb>
+
+ This would limit access to direct-rendering to those users in the
+ <tt>xf86dri</tt> group (<tt>fred</tt> and <tt>jane</tt> in this
+ example). When other users tried to use direct rendering, they
+ would fall back to unaccelerated indirect rendering.
+ <p>
+ [Note that there is a known bug in XFree86 4.0 that prevents some
+ changes to the DRI section from taking effect. Until this bug is
+ fixed, if you change the DRI section, please also remove the
+ <tt>/dev/dri</tt> directory with the <tt>rm -rf /dev/dri</tt>
+ command.]
+ <p>
+ Next, the Device section of the XF86Config file must describe your
+ particular hardware.
+ For example, here's the Device section for a 3dfx Voodoo3 card:
+
+ <verb>
+ Section "Device"
+ Identifier "Voodoo3"
+ VendorName "3dfx"
+ Driver "tdfx"
+ EndSection
+ </verb>
+
+ <p>
+ Finally, the Screen section of the XF86Config file may have to be
+ specially configured as well.
+ For example, Voodoo3 hardware acceleration is only available
+ in 16bpp mode.
+ <verb>
+ Section "Screen"
+ Identifier "Screen 1"
+ Device "Voodoo3"
+ Monitor "High Res Monitor"
+ DefaultDepth 16
+ Subsection "Display"
+ Depth 16
+ Modes "1280x1024" "1024x768" "800x600" "640x480"
+ ViewPort 0 0
+ EndSubsection
+ EndSection
+ </verb>
+
+ <p>
+ If there are errors in the XF86Config file, the X server will
+ log errors to the file /var/log/XFree86.0.log
+
+ <sect1>Memory usage
+<p>
+ Using the 3D features of a graphics card requires more memory
+ than when it's just used as a 2D device.
+ Double buffering, depth buffering, stencil buffers, textures,
+ etc. all require extra graphics memory.
+ These features may require four times the memory used for a simple
+ 2D display.
+ <p>
+ If your graphics card doesn't have a lot of memory (less than 16MB,
+ for example), you may have to reduce your screen size and/or
+ color depth in order to use 3D features.
+ <p>
+ The documentation included with your card should have information
+ about maximum screen size when using 3D.
+
+
+ <sect>Using 3D Acceleration
+<p>
+ This section describes how to link your application with libGL.so
+ and verify that you are in fact using 3D acceleration.
+
+ <sect1>libGL.so
+<p>
+ Your OpenGL program must link with the libGL.so.1.2 library provided
+ by XFree86 4.0.
+ The libGL.so.1.2 library contains a GLX protocol encoder for
+ indirect/remote rendering and DRI code for accessing hardware
+ drivers.
+ In particular, be sure you're not using libGL.so from another
+ source such as Mesa or the Utah GLX project.
+ <p>
+ Unless it was built in a special way, the libGL.so library does
+ not contain any 3D hardware driver code.
+ Instead, libGL.so dynamically loads the appropriate 3D driver
+ during initialization.
+ <p>
+ Most simple OpenGL programs also use the GLUT and GLU libraries.
+ A source for these libraries is listed in the Resources
+ section below.
+
+ <sect1>Compiling and linking an OpenGL program
+<p>
+ A simple GLUT/OpenGL program may be compiled and linked as follows:
+ <verb>
+ gcc program.c -I/usr/local/include -L/usr/local/lib -L/usr/X11R6/lib -lglut -lGLU -lGL -o program
+ </verb>
+ <p>
+ The <tt/-I/ option is used to specify where the GL/glut.h (and
+ possibly the GL/gl.h and GL/glu.h) header file may be found.
+ <p>
+ The <tt/-L/ options specify where the libglut.so, libGLU.so and
+ X libraries are located.
+ <p>
+ The <tt/-lglut -lGLU -lGL/ arguments specify that the application
+ should link with the GLUT, GLU and GL libraries.
+
+ <sect1>Running your OpenGL program
+<p>
+ Simply typing ./program in your shell should execute the program.
+ <p>
+ If you get an error message such as
+ <verb>
+ gears: error in loading shared libraries: libGL.so.1: cannot
+ open shared object file: No such file or directory
+ </verb>
+ if means that the libGL.so.1 file is not the right location.
+ Proceed to the trouble shooting section.
+
+ <sect1>glxinfo
+<p>
+ glxinfo is a useful program for checking which version of
+ libGL you're using as well as which DRI-based driver.
+ Simply type <tt/glxinfo/ and examine the OpenGL vendor, renderer,
+ and version lines.
+ Among the output you should see something like this:
+ <p>
+ <verb>
+ OpenGL vendor string: Precision Insight, Inc.
+ OpenGL renderer string: Mesa DRI Voodoo3 20000224
+ OpenGL version string: 1.2 Mesa 3.3 beta
+ </verb>
+ <p>
+ or this:
+ <p>
+ <verb>
+ OpenGL vendor string: Precision Insight, Inc.
+ OpenGL renderer string: Mesa GLX Indirect
+ OpenGL version string: 1.2 Mesa 3.3 beta
+ </verb>
+ <p>
+ The first example indicates that the 3dfx driver is using
+ Voodoo3 hardware.
+ The second example indicates that no hardware driver was
+ found and indirect, unaccelerated rendering is being used.
+ <p>
+ If you see that indirect rendering is being used when direct
+ rendering was expected, proceed to the troubleshooting section.
+ <p>
+ <tt/glxinfo/ also lists all of the GLX-enhanced visuals available.
+ Here you can determine which visuals may have depth buffers, stencil
+ buffers, accumulation buffers, etc.
+
+ <sect1>Environment Variables
+<p>
+ The libGL.so library recognizes three environment variables.
+ Normally, none of them need to be defined.
+ If you're using the csh or tcsh shells, type
+ <tt/setenv VARNAME value/ to set the variable.
+ Otherwise, if you're using sh or bash, type
+ <tt/export VARNAME=value/.
+ <enum>
+ <item>
+ <tt/LIBGL_DEBUG/, if defined will cause libGL.so to print error
+ and diagnostic messages. This can help to solve problems.
+ <item>
+ <tt/LIBGL_ALWAYS_INDIRECT/, if defined this will force libGL.so
+ to always use indirect rendering instead of hardware
+ acceleration.
+ This can be useful to isolate rendering errors.
+ <item>
+ <tt/LIBGL_DRIVERS_DIR/ can be used to override the default
+ directory which is searched for 3D drivers.
+ In a typical XFree86 installation, the 3D drivers should be in
+ /usr/X11R6/lib/modules/dri/.
+ This environment variable can be used to specify a different
+ directory.
+ Note that this feature is disabled for set-uid programs.
+ </enum>
+ <p>
+ Mesa-based drivers (this includes most of the drivers listed
+ above) also observe many of the existing Mesa environment variables.
+ These include the <tt/MESA_DEBUG/ and <tt/MESA_INFO/ variables.
+
+
+ <sect>General Trouble Shooting
+<p>
+ This section contains information to help you diagnose general
+ problems.
+ See below for additional information for specific hardware.
+
+ <sect1>Starting the X server
+<p>
+ <enum>
+ <item>
+ Before you start the X server, verify the appropriate 3D kernel
+ module is installed.
+ Type <tt/lsmod/ and look for the appropriate kernel module.
+ For 3dfx hardware you should see <tt/tdfx/, for example.
+
+ <item>
+ Verify you're running XFree86 4.0 and not an older version.
+ If you run <tt/xdpyinfo/ and look for the following line near
+ the top:
+ <verb>
+ vendor release number: 4000
+ </verb>
+
+ <item>
+ Verify that your XF86Config file (usually found at
+ /etc/X11/XF86Config) loads the glx and dri modules and
+ has a DRI section.
+ <p>
+ See the Software Resources section below for sample
+ XF86Config files.
+
+ <item>
+ Examine the messages printed during X server startup and check
+ that the DRM module loaded.
+ Using the Voodoo3 as an example:
+ <verb>
+ (==) TDFX(0): Write-combining range (0xf0000000,0x2000000)
+ (II) TDFX(0): Textures Memory 7.93 MB
+ (0): [drm] created "tdfx" driver at busid "PCI:1:0:0"
+ (0): [drm] added 4096 byte SAREA at 0xc65dd000
+ (0): [drm] mapped SAREA 0xc65dd000 to 0x40013000
+ (0): [drm] framebuffer handle = 0xf0000000
+ (0): [drm] added 1 reserved context for kernel
+ (II) TDFX(0): [drm] Registers = 0xfc000000
+ (II) TDFX(0): visual configs initialized
+ (II) TDFX(0): Using XFree86 Acceleration Architecture (XAA)
+ Screen to screen bit blits
+ Solid filled rectangles
+ 8x8 mono pattern filled rectangles
+ Indirect CPU to Screen color expansion
+ Solid Lines
+ Dashed Lines
+ Offscreen Pixmaps
+ Driver provided NonTEGlyphRenderer replacement
+ Setting up tile and stipple cache:
+ 10 128x128 slots
+ (==) TDFX(0): Backing store disabled
+ (==) TDFX(0): Silken mouse enabled
+ (0): X context handle = 0x00000001
+ (0): [drm] installed DRM signal handler
+ (0): [DRI] installation complete
+ (II) TDFX(0): direct rendering enabled
+ </verb>
+
+ <item>
+ After the X server has started, verify that the required X server
+ extensions are loaded.
+ Run <tt/xdpyinfo/ and look for the following entries in the
+ extensions list:
+ <verb>
+ GLX
+ SGI-GLX
+ XFree86-DRI
+ </verb>
+
+ </enum>
+
+ <sect1>Linking, running and verifying 3D acceleration
+<p>
+ After you've verified that the X server and DRI have started
+ correctly it's time to verify that the GL library and hardware
+ drivers are working correctly.
+
+ <enum>
+ <item>
+ Verify that you're using the correct libGL.so library with
+ <tt/ldd/.
+ The /usr/lib and /usr/X11R6/lib directories are expected
+ locations for libGL.so.
+ <p>
+ Example:
+ <verb>
+ % ldd /usr/local/bin/glxinfo
+ libglut.so.3 => /usr/local/lib/libglut.so.3 (0x40019000)
+ libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x40051000)
+ libGL.so.1 => /usr/lib/libGL.so.1 (0x40076000)
+ libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6 (0x402ee000)
+ libXi.so.6 => /usr/X11R6/lib/libXi.so.6 (0x40301000)
+ libm.so.6 => /lib/libm.so.6 (0x40309000)
+ libc.so.6 => /lib/libc.so.6 (0x40325000)
+ libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x40419000)
+ libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0x404bd000)
+ libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0x40509000)
+ libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0x40512000)
+ libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x40529000)
+ libvga.so.1 => /usr/lib/libvga.so.1 (0x40537000)
+ libpthread.so.0 => /lib/libpthread.so.0 (0x4057d000)
+ /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
+ </verb>
+
+ <item>
+ You may also double check that libGL.so is in fact DRI-capable.
+ Run <tt/strings libGL.so.1.2 | grep DRI/ and look for
+ symbols prefixed with "XF86DRI", such as "XF86DRIQueryExtension".
+
+ <item>
+ To be safe one should run <tt/ldconfig/ after installing libGL.so
+ to be sure the runtime loader will find the proper library.
+
+ <item>
+ Verify that the appropriate 3D driver is in
+ /usr/X11R6/lib/modules/dri/
+ For example, the 3dfx driver will be named <tt/tdfx_dri.so/.
+
+ <item>
+ Set the <tt/LIBGL_DEBUG/ environment variable.
+ This will cause libGL.so to print an error message if it fails
+ to load a DRI driver.
+ Any error message printed should be self-explanatory.
+
+ <item>
+ Run <tt/glxinfo/. Note the line labeled "OpenGL renderer string".
+ It should have a value which starts with "Mesa DRI" followed by
+ the name of your hardware.
+
+ <item>
+ Older Linux OpenGL applications may have been linked against
+ Mesa's GL library and will not automatically use libGL.so.
+ In some cases, making symbolic links from the Mesa GL library
+ to libGL.so.1 will solve the problem:
+ <verb>
+ ln -s libGL.so.1 libMesaGL.so.3
+ </verb>
+ In other cases, the application will have to be relinked
+ against the new XFree86 libGL.so.
+ <P>
+ It is reported that part of the problem is that running
+ <tt/ldconfig/ will silently rewrite symbolic links based
+ on the SONAME field in libraries.
+ </enum>
+
+ <p>
+ If you're still having trouble, look in the next section for
+ information specific to your graphics card.
+
+
+
+ <sect>Hardware-Specific Information and Troubleshooting
+<p>
+ This section presents hardware-specific information for normal
+ use and troubleshooting.
+
+ <sect1>3dfx Voodoo3
+<p>
+ <sect2>Troubleshooting
+<p>
+ <itemize>
+ <item>
+ 3D acceleration for Voodoo3 is only supported in the 16
+ bit/pixel screen mode.
+ Use <tt/xdpyinfo/ to verify that all your visuals are depth 16.
+ Edit your XF86Config file if needed.
+ </itemize>
+
+ <sect2>Performance
+<p>
+ <itemize>
+ <item>
+ Normally, buffer swapping in double-buffered applications is
+ synchronized to your monitor's refresh rate.
+ This may be overridden by setting the <tt/FX_GLIDE_SWAPINTERNVAL/
+ environment variable.
+ The value of this variable indicates the maximum number of
+ swap buffer commands can be buffered.
+ Zero allows maximum frame rate.
+ <item>
+ The <tt/glTexEnv/ mode <tt/GL_BLEND/ is not directly supported
+ by the 3dfx hardware.
+ It can be accomplished with a multipass algorithm but it's not
+ implemented at this time.
+ Applications which use that mode, such as the Performer Town
+ demo, may become sluggish when falling back to software
+ rendering to render in that mode.
+ </itemize>
+ <sect2>Known Problems
+<p>
+ <itemize>
+ <item>
+ SSystem has problems because of poorly set near and far
+ clipping planes.
+ The office.unc Performer model also suffers from this problem.
+ </itemize>
+
+
+ <sect1>Intel i810
+<p>
+ <sect1>Matrox G400
+<p>
+ <sect1>ATI Rage 128
+<p>
+ <sect1>3DLabs Oxygen GMX 2000
+<p>
+ The driver for this hardware was experimental and is no longer being
+ developed or supported.
+
+
+ <sect>Limitations and Known Bugs
+<p>
+ <sect1>OpenGL
+<p>
+ The following OpenGL features are not supported at this time:
+ overlays, stereo, hardware-accelerated indirect rendering.
+ <p>
+ OpenGL-like functionality is provided with the Mesa library.
+ XFree86 4.0 uses a beta version Mesa 3.3.
+ When newer versions of Mesa are available, the 3D drivers can
+ be updated without reinstalling XFree86 or libGL.so.
+
+ <sect1>GLX
+<p>
+ The GLX 1.3 API is exported but none of the new 1.3 functions
+ are operational.
+ <p>
+ The new <tt/glXGetProcAddressARB/ function is fully supported.
+
+ <sect1>Signal Handling
+<p>
+ There are several understood, but unresolved problems relating
+ to hardware locking and signal handling.
+ Hitting CTRL-z to suspend a 3D application can sometimes cause
+ the X server to lock-up if executing device driver code at that
+ moment.
+ Also, using a debugger to step through OpenGL/Mesa device driver
+ functions code could cause a lock-up.
+ These problems will be fixed in the future.
+
+ <sect1>Scheduling
+<p>
+ When you run multiple GL applications at once you may notice poor
+ time slicing.
+ This is due to an interaction problem with the Linux scheduler
+ which will be addressed in the future.
+
+
+ <sect1>Bug Database
+<p>
+ The DRI bug database which includes bugs related to specific
+ drivers is at the
+ <htmlurl url="http://sourceforge.net/bugs/?group_id=387"
+ name="SourceForge DRI Bug Database">
+ <p>
+ Please scan both the open and closed bug lists to determine if your
+ problem has already been reported and perhaps fixed.
+
+
+ <sect>Resources
+<p>
+ <sect1>Software
+<p>
+ A collection of useful configuration files, libraries, headers,
+ utilities and demo programs is available from
+ <htmlurl url="http://dri.sourceforge.net/resources/resources.html"
+ name="http://dri.sourceforge.net/resources/resources.html">
+
+ <sect1>Documentation
+<p>
+ <itemize>
+ <item>General OpenGL information is available at the
+ <htmlurl url="http://www.opengl.org" name="OpenGL Home Page">
+ <item>XFree86 information is available at the
+ <htmlurl url="http://www.xfree86.org" name="XFree86 Home Page">
+ <item>Information about the design of the DRI is available from
+ <htmlurl url="http://www.precisioninsight.com/piinsights.html"
+ name="Precision Insight, Inc.">
+ <item>Visit the <htmlurl url="http://dri.sourceforge.net"
+ name="DRI project on SourceForge.net"> for the latest development
+ news about the DRI and 3D drivers.
+ </itemize>
+
+ <sect1>Support
+<p>
+ <itemize>
+ <item>
+ The DRI-users mailing list at
+ <htmlurl url="http://sourceforge.net/mail/?group_id=387"
+ name="SourceForge"> is a forum for people to discuss DRI problems.
+ <item>
+ XXX IHV support?
+ <item>
+ XXX Linux distro support?
+ </itemize>
+
+ </article>
+
+
+<!--
+1. Introduction
+2. Supported Hardware
+3. Prerequisite Software
+4. Start-Up
+5. Using 3D Acceleration
+ 5.1 libGL.so
+ 5.2 glxinfo
+ 5.3 Environment variables
+6. General Trouble Shooting
+7. Hardware-Specific Information
+ 7.1 3dfx
+ 7.2 Intel i810
+ 7.3 Matrox G400
+ 7.4 ATI Rage 128
+ 7.5 3DLabs Gamma
+8. Limitation and Known Bugs
+ 8.1 OpenGL
+ 8.2 GLX
+ 8.3 Signal Handling
+ 8.4 Scheduling
+ 8.5 Bug Database
+9. Resources
+ 9.1 Software Resources
+ GLU
+ GLUT
+ Glide3
+ Utilities and demos
+ Sample XF86Config files
+ 9.2 Documentation
+ www.XFree86.org
+ www.opengl.org
+ www.linux.com
+ www.precisioninsight.com
+ sourceforge.net
+ 9.3 Support
+ IHVs
+ RedHat
+ -->
+
+ <!-- Local Variables: -->
+ <!-- fill-column: 72 -->
+ <!-- End: -->
+
+
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile b/xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile
index f7d2b2592..b5f23d1c4 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile
@@ -3,88 +3,111 @@ XCOMM $XConsortium: Imakefile /main/16 1996/10/28 05:13:04 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile,v 3.52 2000/01/25 01:06:46 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile,v 3.61 2000/03/08 05:38:42 dawes Exp $
#include <Server.tmpl>
#include <lnxdoc.rules>
SGMLDEPENDS = defs.ent
- INDEXLIST = README.sgml RELNOTES.sgml Status.sgml LICENSE.sgml DESIGN.sgml \
- mouse.sgml fonts.sgml \
- isc.sgml NetBSD.sgml OpenBSD.sgml \
- ati.sgml chips.sgml DECtga.sgml r128.sgml rendition.sgml \
- s3virge.sgml SiS.sgml
-
-#if 0
+ INDEXLIST = README.sgml RELNOTES.sgml Status.sgml LICENSE.sgml Install.sgml \
+ DESIGN.sgml \
+ mouse.sgml fonts.sgml DRI.sgml \
+ isc.sgml LynxOS.sgml NetBSD.sgml OpenBSD.sgml \
+ apm.sgml ati.sgml chips.sgml cyrix.sgml DECtga.sgml \
+ i740.sgml i810.sgml \
+ r128.sgml rendition.sgml s3virge.sgml SiS.sgml
+
+#ifdef DEADDOCS
LinuxDocReadmeTarget(Bsdi)
#endif
-LinuxDocReadmeTarget(DGux)
+#ifdef OUTOFDATE
+LinuxDocReadmeTarget(DGUX)
LinuxDocReadmeTarget(FreeBSD)
-LinuxDocReadmeTarget(NetBSD)
-LinuxDocReadmeTarget(OpenBSD)
+#endif
+LinuxDocReadmeTarget(isc)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(Linux)
+#endif
LinuxDocReadmeTarget(LynxOS)
-LinuxDocReadmeTarget(SCO)
-LinuxDocReadmeTarget(isc)
+LinuxDocReadmeTarget(NetBSD)
+LinuxDocReadmeTarget(OpenBSD)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(OS2)
LinuxDocTargetLong(OS2note.sgml,OS2.Notes,OS2Notes)
+LinuxDocReadmeTarget(SCO)
LinuxDocReadmeTarget(SOLX86)
LinuxDocReadmeTarget(SVR4)
+#endif
/* Hardware docs */
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(3Dlabs)
-LinuxDocReadmeTarget(DECtga)
-LinuxDocReadmeTarget(I128)
-LinuxDocReadmeTarget(Mach32)
-LinuxDocReadmeTarget(Mach64)
-LinuxDocReadmeTarget(MGA)
-LinuxDocReadmeTarget(NVIDIA)
-LinuxDocReadmeTarget(Oak)
-LinuxDocReadmeTarget(P9000)
-LinuxDocReadmeTarget(Video7)
-LinuxDocReadmeTarget(S3)
-LinuxDocReadmeTarget(SiS)
-LinuxDocReadmeTarget(WstDig)
+#endif
LinuxDocReadmeTarget(apm)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(ark)
LinuxDocReadmeTarget(agx)
+#endif
LinuxDocReadmeTarget(ati)
LinuxDocReadmeTarget(chips)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(cirrus)
+#endif
LinuxDocReadmeTarget(cyrix)
+LinuxDocReadmeTarget(DECtga)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(epson)
LinuxDocReadmeTarget(fbdev)
+LinuxDocReadmeTarget(I128)
+#endif
LinuxDocReadmeTarget(i740)
-LinuxDocReadmeTarget(r128)
+LinuxDocReadmeTarget(i810)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(neomagic)
+LinuxDocReadmeTarget(Mach32)
+LinuxDocReadmeTarget(Mach64)
+LinuxDocReadmeTarget(MGA)
+LinuxDocReadmeTarget(NVIDIA)
+LinuxDocReadmeTarget(Oak)
+LinuxDocReadmeTarget(P9000)
+#endif
+LinuxDocReadmeTarget(r128)
LinuxDocReadmeTarget(rendition)
+#ifdef OUTOFDATE
+LinuxDocReadmeTarget(S3)
+#endif
LinuxDocReadmeTarget(s3virge)
+LinuxDocReadmeTarget(SiS)
+#ifdef OUTOFDATE
LinuxDocReadmeTarget(trident)
LinuxDocReadmeTarget(tseng)
+LinuxDocReadmeTarget(Video7)
+LinuxDocReadmeTarget(WstDig)
+#endif
/* Main docs */
-LinuxDocTarget(LICENSE)
-LinuxDocTarget(RELNOTES)
-LinuxDocTarget(Status)
-#ifdef UPTODATE
-LinuxDocReadmeTarget(Config)
+#ifdef OUTOFDATE
LinuxDocTarget(BUILD)
+LinuxDocReadmeTarget(Config)
#endif
-LinuxDocTarget(README)
LinuxDocTarget(DESIGN)
-#ifdef UPTODATE
+LinuxDocTarget(Install)
+LinuxDocTarget(LICENSE)
+#ifdef OUTOFDATE
LinuxDocTargetLong(QStart.sgml,QuickStart.doc,QuickStart)
#endif
-LinuxDocTarget(DocIndex)
+LinuxDocTarget(README)
+LinuxDocTarget(RELNOTES)
+LinuxDocTarget(Status)
/* Other docs */
-LinuxDocTarget(xinput)
-LinuxDocReadmeTarget(mouse)
LinuxDocReadmeTarget(fonts)
+LinuxDocReadmeTarget(mouse)
+#ifdef OUTOFDATE
LinuxDocTargetLong(VidModes.sgml,VideoModes.doc,VideoModes)
-#ifdef UPTODATE
-LinuxDocTargetLong(VGADriv.sgml,VGADriver.Doc,VGADriver)
+LinuxDocTarget(xinput)
#endif
+LinuxDocReadmeTarget(DRI)
/* Generate the documentation index */
index.sgml: $(INDEXLIST) index.pre index.post add.sh Imakefile $(SGMLDEPENDS)
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml
new file mode 100644
index 000000000..8aebef382
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml
@@ -0,0 +1,398 @@
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
+
+<article>
+
+<title>Installation Details for XFree86&trade; &relvers;
+<author>The XFree86 Project, Inc
+<date>29 February 2000
+
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml,v 1.4 2000/02/29 18:01:17 dawes Exp $
+</ident>
+
+<abstract>
+
+This document contains information about installing
+XFree86 &relvers;.
+
+</abstract>
+
+<toc>
+
+<sect>Introduction
+<p>
+This document contains information about installing XFree86 &relvers;
+binary distributions as provided by The XFree86 Project. The installation
+procedures for binary distributions provided by others may be different.
+
+The XFree86 binary distributions that we provide for UNIX-like OSs are
+packaged in the platform-independent gzipped tar format (referred to as
+"tarballs"). Our tarballs can be identified by the "<tt>.tgz</tt>"
+suffix. We do not provide binaries in RPM format or any other platform
+specific package format. If you need them in such a format, you should
+contact your OS vendor. Together with the binary distributions, we
+provide a customised version of GNU tar called "extract", and an
+installation script. We recommend that these be used to install the
+binary distributions.
+
+<sect>How to get the XFree86 &relvers; binary distributions
+<p>
+We, The XFree86 Project, provide XFree86 &relvers; binaries for a range
+of operating systems at our
+<![ %snapshot; [
+<url name="ftp site"
+url="ftp://ftp.xfree86.org/pub/XFree86/snapshots/&relvers/binaries/">.
+]]>
+<![ %release; [
+<url name="ftp site"
+url="ftp://ftp.xfree86.org/pub/XFree86/&relvers/binaries/">.
+]]>
+Our ftp site is also mirrored by many sites around the world. There is
+a sub-directory for each OS/platform that we have binaries for. The
+first thing you need to do is to decide which of these suits you. In
+most cases, the choice is straightforward. In some cases (e.g., Linux)
+there may be a number of choices depending on what architecture or libc
+version you are using. We recommend that you first download the
+<tt>Xinstall.sh</tt> script, and run it as follows to find out which
+binary distribution you should download.
+
+<tscreen><verb>
+sh Xinstall.sh -check
+</verb></tscreen>
+
+This should tell you which binary distribution is the correct one for
+your system. Getting this right may save from wasting time downloading
+the wrong distribution.
+
+The next step is to download the necessary files. The mandatory files
+for all installations are listed below. All of them must be downloaded
+to do the installation. The installer script will complain if they are not
+all present.
+
+<quote><verb>
+Xinstall.sh The installer script
+extract The utility for extracting tarballs
+Xbin.tgz X clients/utilities and run-time libraries
+Xlib.tgz Some data files required at run-time
+Xman.tgz Manual pages
+Xdoc.tgz XFree86 documentation
+Xfnts.tgz Base set of fonts
+Xfenc.tgz Base set of font encoding data
+Xetc.tgz Run-time configuration files
+Xvar.tgz Run-time data
+Xxserv.tgz XFree86 X server
+Xmod.tgz XFree86 X server modules
+</verb></quote>
+
+NOTES:
+<itemize>
+ <item>Some web browsers have a problem downloading the <tt>extract</tt>
+ utility correctly. If you encounter this problem, download the
+ version called <tt>extract.exe</tt> instead. The "<tt>.exe</tt>"
+ suffix is only there to make the troublesome web browsers do
+ the right thing. It is not a DOS/Windows executable.
+
+ <item>A few distributions don't have or require the <tt>Xvar.tgz</tt>
+ tarball. If it is present in the <tt>binaries</tt> sub-directory
+ for your platform, then it is required.
+
+ <item>Some distributions may have additional mandatory tarballs. This
+ is rare. In these cases, the installer script will tell you
+ if any are missing.
+
+</itemize>
+
+The following tarballs are optional. You should download the ones you
+want to install.
+
+<quote><verb>
+Xfsrv.tgz Font server
+Xnest.tgz Nested X server
+Xprog.tgz X header files, config files and compile-time libs
+Xprt.tgz X Print server
+Xvfb.tgz Virtual framebuffer X server
+Xf100.tgz 100dpi fonts
+Xfcyr.tgz Cyrillic fonts
+Xflat2.tgz Latin-2 fonts
+Xfnon.tgz Some large bitmap fonts
+Xfscl.tgz Scalable fonts (Speedo and Type1)
+Xhtml.tgz HTML version of the documentation
+Xps.tgz PostScript version of the documentation
+Xjdoc.tgz Documentation in Japanese
+</verb></quote>
+
+NOTES:
+<itemize>
+ <item>Some distributions may have some additional optional tarballs.
+
+</itemize>
+
+If you miss some and want to install them later, you can do so by following
+the appropriate part of the section that describes manual installation.
+
+<sect>Installing XFree86 &relvers; using the <tt>Xinstall.sh</tt> script
+<p>
+We strongly recommend that our XFree86 &relvers; binary distributions
+be installed using the <tt>Xinstall.sh</tt> script that we provide.
+The main reason that we make this recommendation is that there are a lot
+of steps in the manual installation process, and those steps can vary
+according to the situation. There is, however, a description of the
+manual installation process for the most common cases below for those who
+might need it.
+
+Put all of the downloaded files into a single directory (choose some
+temporary location with enough space). Become the super user (root),
+cd to that directory, then run the installer script as follows:
+
+<tscreen><verb>
+sh Xinstall.sh
+</verb></tscreen>
+
+Answer the prompts that come up. If you are missing something that is
+required to run this version of XFree86, the installer may tell you to
+install it before trying again. If you don't have all of the mandatory
+files listed above, then the installer will tell you which ones are
+missing and ask you to download them before trying again.
+
+<sect1>Answering the questions that the installer may ask
+<p>
+The installer asks some questions that may not have obvious answers. The
+information here should help you answer them. In most cases, apart from
+the first question, the default answers should be OK.
+
+If you run the installer from within an X session (the installer checks
+if <tt>$DISPLAY</tt> is set), you will be warned that doing so is not
+a good idea. Unless you have a good reason for knowing that this won't
+be a problem, you should exit your X session, including stopping xdm or
+equivalent if it is running, before continuing. If you ignore this
+warning and run into problems, well, you were warned!
+
+If you have an existing X installation, you will be warned that proceeding
+with this installation will overwrite it. Only those things that are
+part of our standard distribution will be overwritten. Other X
+applications that you may have installed will not be removed. Some
+configuration files may be overwritten though, but the installer should
+prompt you before doing so. As the opening greeting says, it is
+<bf>strongly</bf> recommended that you backup any existing installation
+before proceeding. If you want your old applications to still be there
+after you've installed, don't do the "backup" by simply renaming
+your old <tt>/usr/X11R6</tt> directory. It is better to make a copy of
+it, and then install over the top of the original one. If you run into
+problems and want to revert to the old installation, you can then
+delete the overwritten one and copy the saved version back.
+
+During the first part of the installation over an existing version, the
+script may remove some old files or directories that would get in the
+way of the new installation. It will list which files/directories have
+been removed. If none are listed, then none were removed.
+
+The next step when installing over an existing version is to check for
+existing configuration files. As of XFree86 version 3.9.18, the run-time
+configuration files are installed by default under <tt>/etc/X11</tt>
+instead of under <tt>/usr/X11R6/lib/X11</tt>. The installer will move
+the existing ones for you and create the necessary symbolic links. If
+you don't want to have these configuration files under <tt>/etc/X11</tt>,
+then you should answer "no" when asked about it. Answering "no" here
+also means that the new configuration files will be installed in the
+old <tt>/usr/X11R6/lib/X11</tt> location. Note: for the rare systems
+that don't have symbolic links, this question will not be asked.
+The default answer is "yes" because that is best for most situations.
+It is our new default. It makes it easier to share the <tt>/usr/X11R6</tt>
+directory between multiple hosts, and allows it to be mounted read-only.
+If you don't need these features, then you can safely answer "no" if you
+don't want them moved.
+
+When installing over an existing version, you will be prompted before
+each set of configuration files is installed. If you haven't made any
+customisations to your existing configuration files, then you can safely
+answer "yes" for each of these. If you have made customisations, you
+can try answering "no". If you run into problems later, you may need
+to manually merge your customisations into the the new version of the
+configuration files. The configuration files can all be found in
+the <tt>Xetc.tgz</tt> tarball. See the section below about manual
+installation for information about extracting them separately.
+
+After the configuration files have been dealt with, the other mandatory
+components of the binary distribution will be installed. This should
+proceed without any user intervention.
+
+If you downloaded any of the optional components, the installer will
+ask you about each one before it is installed. The default answer is
+"yes". If there are any that you've since decided that you don't want
+to install, answer "no" when prompted.
+
+After that is done, the main part of the installation is complete. The
+next steps are to tidy up some aspects of the installation. The first
+of these is to run "<tt>ldconfig</tt>" on systems that require it, so
+that the newly installed shared libraries are accessible. Then
+the <tt>fonts.dir</tt> files in some directories are updated so that
+the fonts can be accessed correctly. Next, the installer checks to
+see if your system has a termcap file or terminfo files. If it finds
+the former, it tells you how my may update the entries in that file.
+If it finds the latter, it asks you if you want it to update them
+for you.
+
+Finally, the installer asks you if you want a link created for the
+<tt>rstart</tt> utility. On most modern systems, the link isn't essential,
+so the default answer is "no". Answer "yes" if you know that you need
+it. If you find later that you need it, you can create it easily by
+running:
+
+<tscreen><verb>
+rm -f /usr/bin/rstartd
+ln -s /usr/X11R6/bin/rstartd /usr/bin/rstartd
+</verb></tscreen>
+
+<sect1>After the installation is complete
+<p>
+The next step is to configure the X server. That is covered in detail
+in an as-yet unwritten document :-(. In the meantime, there are two
+ways to create a basic X server configuration file for XFree86 &relvers;.
+One is to run the <tt>xf86config</tt> utility. Another is to use the
+new <tt>-configure</tt> X server option:
+
+<tscreen><verb>
+XFree86 -configure
+</verb></tscreen>
+
+The X server config file (<tt>XF86Config</tt>) format has changed
+compared to 3.3.x. Also, its default location is now <tt>/etc/X11</tt>.
+Finally, there is now only one X server for driving video hardware,
+and it is called "<tt>XFree86</tt>". Once you're satisfied with the
+operation of the new X server, you can safely remove the old
+<tt>XF86_*</tt> and/or <tt>XF98_*</tt> X server binaries from
+<tt>/usr/X11R6/bin</tt>.
+
+After the X server configuration is done, it may be advisable to reboot,
+especially if you run xdm (or equivalent) or the font server (xfs).
+
+<sect>Installing XFree86 &relvers; manually
+<p>
+This section describes how to manually install the XFree86 &relvers; binary
+distributions. You should only use this method if you know what you're
+doing. The information here covers some common cases, but not every
+possible case.
+
+Put all of the downloaded files into a single directory (choose some
+temporary location with enough space). Become the super user (root).
+All of the following commands should be run as root, and they should be
+run from the directory that has all of the downloaded files. The
+"<tt>extract</tt>" utility should be used to unpack the tarballs. This
+is a customised version of GNU tar that has the gzip code built-in, and
+which has a different usage when run under the name "extract". One
+important thing that <tt>extract</tt> does that most versions of tar do
+not do by default is that it unlinks existing files before writing new
+ones. This is important when installing over an existing version of X.
+If you choose to use some other utility to extract the tarballs, you're
+on your own.
+
+<sect1>A new installation
+<p>
+The simplest case is when there is no existing X installation. The
+installation procedure for this case is as follows:
+
+<tscreen><verb>
+chmod +x extract
+mkdir /usr/X11R6
+mkdir /etc/X11
+./extract -C /usr/X11R6 X[a-df-uw-z]*.tgz
+./extract -C /usr/X11R6 Xvfb.tgz # If you are installing Xvfb
+./extract -C /etc/X11 Xetc.tgz
+./extract -C /var Xvar.tgz
+ln -s /etc/X11/app-defaults /usr/X11R6/lib/X11
+ln -s /etc/X11/fs /usr/X11R6/lib/X11
+ln -s /etc/X11/lbxproxy /usr/X11R6/lib/X11
+ln -s /etc/X11/proxymngr /usr/X11R6/lib/X11
+ln -s /etc/X11/rstart /usr/X11R6/lib/X11
+ln -s /etc/X11/twm /usr/X11R6/lib/X11
+ln -s /etc/X11/xdm /usr/X11R6/lib/X11
+ln -s /etc/X11/xinit /usr/X11R6/lib/X11
+ln -s /etc/X11/xsm /usr/X11R6/lib/X11
+ln -s /etc/X11/xserver /usr/X11R6/lib/X11
+/sbin/ldconfig /usr/X11R6/lib # For Linux
+/sbin/ldconfig -m /usr/X11R6/lib # For FreeBSD, NetBSD, OpenBSD
+/usr/X11R6/bin/mkfontdir /usr/X11R6/lib/X11/fonts/misc
+</verb></tscreen>
+
+<sect1>Installing over an old installation
+<p>
+If you have an existing installation of X, you should make a backup copy
+of it before installing the new version over the top of it.
+
+Before doing anything else, make sure the <tt>extract</tt> command is
+executable, and also link it to the name "<tt>gnu-tar</tt>" so that it
+can be used as a regular <tt>tar</tt> command:
+
+<tscreen><verb>
+chmod +x extract
+rm -f gnu-tar
+ln extract gnu-tar
+</verb></tscreen>
+
+The first part of the procedure is to move the old run-time config files
+from <tt>/usr/X11R6/lib/X11</tt> to <tt>/etc/X11</tt>. Create
+<tt>/etc/X11</tt> if it doesn't already exist. For each of the following
+sub-directories (<tt>app-defaults</tt>, <tt>fs</tt>, <tt>lbxproxy</tt>,
+<tt>proxymngr</tt>, <tt>rstart</tt>, <tt>twm</tt>, <tt>xdm</tt>,
+<tt>xinit</tt>, <tt>xsm</tt>, <tt>xserver</tt>) that you want to move,
+check that there is a sub-directory of this name in
+<tt>/usr/X11R6/lib/X11</tt>. Create a sub-directory of the same name
+under <tt>/etc/X11</tt>, then copy the files over by running:
+
+<tscreen><verb>
+./gnu-tar -C /usr/X11R6/lib/X11/subdir -c -f - . | \
+ ./gnu-tar -C /etc/X11/subdir -v -x -p -U -f -
+</verb></tscreen>
+
+For each subdirectory that is moved, remove the one under
+<tt>/usr/X11R6/lib/X11</tt> and create a symbolic link to the new
+location:
+
+<tscreen><verb>
+rm -fr /usr/X11R6/lib/X11/subdir
+ln -s /etc/X11/subdir /usr/X11R6/lib/X11
+</verb></tscreen>
+
+For those subdirectories that didn't already exist under
+<tt>/usr/X11R6/lib/X11</tt>, create one under <tt>/etc/X11</tt> and
+create the symbolic link to it:
+
+<tscreen><verb>
+mkdir /etc/X11/subdir
+ln -s /etc/X11/subdir /usr/X11R6/lib/X11
+</verb></tscreen>
+
+Once that is done, extract the config files from the <tt>Xetc.tgz</tt>
+tarball into a temporary directory:
+
+<tscreen><verb>
+mkdir tmpdir
+./extract -C tmpdir Xetc.tgz
+</verb></tscreen>
+
+and then copy each sub-directory over to the installed location:
+
+<tscreen><verb>
+./gnu-tar -C tmpdir/subdir -c -f - . | \
+ ./gnu-tar -C /usr/X11R6/lib/X11/subdir -v -x -p -U -f -
+</verb></tscreen>
+
+If you have customised any config files in your old installation, you
+may want to omit those sub-directories, or copy selected files over by
+hand.
+
+Once that's done, the main part of the installation can be done:
+
+<tscreen><verb>
+./extract -C /usr/X11R6 X[a-df-uw-z]*.tgz
+./extract -C /usr/X11R6 Xvfb.tgz # If you are installing Xvfb
+./extract -C /var Xvar.tgz
+/sbin/ldconfig /usr/X11R6/lib # For Linux
+/sbin/ldconfig -m /usr/X11R6/lib # For FreeBSD, NetBSD, OpenBSD
+/usr/X11R6/bin/mkfontdir /usr/X11R6/lib/X11/fonts/misc
+</verb></tscreen>
+
+
+</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml
index 6d748365b..9aa0de66a 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml
@@ -8,7 +8,7 @@
<date>1999</date>
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.6 2000/01/19 22:37:33 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.7 2000/03/06 22:59:23 dawes Exp $
</ident>
<sect>XFree86 License
@@ -611,5 +611,49 @@ Copyright (c) 1994-1999 Silicon Graphics, Inc. All Rights Reserved.
solely in object code form, Recipient may replace the words "this file" with
"this software" in both the first and second sentences.]
+<sect1>Bigelow &amp; Holmes Inc and Y&amp;Y Inc Lucidux font license
+<p>
+
+Copyright (C) 2000 Bigelow &amp; Holmes Inc. and Y&amp;Y, Inc. Patents pending.
+All Rights Reserved. Lucidux is a trademark of Bigelow &amp; Holmes Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of these Fonts and associated documentation files (the "Font
+Software"), to deal in the Font Software, including without limitation the
+rights to use, copy, merge, publish, distribute, sublicense, and/or sell
+copies of the Font Software, and to permit persons to whom the Font
+Software is furnished to do so, subject to the following conditions:
+
+The above copyright, trademark, patent notices and this permission notice
+shall be included in all copies of one or more of the Font Software.
+
+The Font Software may not be modified, altered, or added to, and in
+particular the designs of glyphs or characters in the Fonts may not be
+modified nor may additional glyphs or characters be added to the Fonts,
+except that composite characters composed of two or more characters in the
+Fonts may be created using the seac (Standard Encoding Accented Character)
+Type 1 operator.
+
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF
+COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL BIGELOW &amp;
+HOLMES INC. OR Y&amp;Y, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR
+CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
+
+Except as contained in this notice, the names of Bigelow &amp; Holmes Inc. and
+Y&amp;Y, Inc. shall not be used in advertising or otherwise to promote the
+sale, use or other dealings in this Font Software without prior written
+authorization from the Bigelow &amp; Holmes Inc. and Y&amp;Y, Inc.
+
+For further information, contact:
+
+<email>sales@yandy.com</email>
+or
+<email>design@bigelowandholmes.com</email>
+
</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml
index 992c14123..9b65056e3 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml
@@ -1,65 +1,62 @@
-<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
<article>
-
-<title>README for XFree86 on LynxOS
+<title>README for XFree86 &relvers; on LynxOS
<author>Thomas Mueller
-<date>Last modified on: 30 May 1999
+<date>25 February 2000
+
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml,v 3.19 2000/03/03 21:28:08 dawes Exp $
+</ident>
+
<toc>
-<sect>What and Where is XFree86?<p>
-XFree86 is a port of X11R6.3 that supports several versions of
+<sect>What and Where is XFree86?
+<p>
+XFree86 is a port of X11R6.4 that supports several versions of
Intel-based Unix. It is derived from X386 1.2, which was the X server
distributed with X11R5. This release consists of many new features
-and performance improvements as well as many bug fixes. The release
-is available as source patches against the X Consortium X11R6.3 code, as
-well as binary distributions for many architectures.
+and performance improvements as well as many bug fixes.
-See the Copyright Notice in <htmlurl url="COPYRIGHT.html"
-name="Copyright Notice">.
+See the <htmlurl url="COPYRIGHT.html" name="Copyright Notice">.
-The sources for XFree86 are available by anonymous ftp from:
+The sources for XFree86 &relvers; are available by anonymous ftp from:
-<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/current"
-url="ftp://ftp.XFree86.org/pub/XFree86/current">
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/&relvers;"
+url="ftp://ftp.XFree86.org/pub/XFree86/&relvers;">
-Binaries of XFree86 for LynxOS AT are available from:
+Binaries of XFree86 for LynxOS x86 are available from:
-<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/current/binaries/LynxOS"
-url="ftp://ftp.XFree86.org/pub/XFree86/current/binaries/LynxOS">
-
-The binaries were built on `LynxOS x86 3.0.1'. Because of changes
-made to the object format they don't run on LynxOS versions earlier
-than 3.0.0.
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/&relvers;/binaries/LynxOS"
+url="ftp://ftp.XFree86.org/pub/XFree86/&relvers;/binaries/LynxOS">
+
+A list of mirror sites is provided by
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/MIRRORS"
+url="ftp://ftp.XFree86.org/pub/XFree86/MIRRORS">
+
+The binaries on the FTP site were built on the latest released LynxOS
+version at the time XFree86 &relvers; was released. In this case it is
+`LynxOS x86 3.0.1'. Because of changes made to the object format they
+don't run on LynxOS versions earlier than 3.0.0.
Building of this XFree86 version has never been tested on LynxOS versions
-earlier than 2.4.0. Binaries built on LynxOS 2.4.0 are expected to run
-on 2.3.0 as well.
+earlier than 2.5.1.
-XFree86 supports LynxOS on the AT, on the microSPARC and
-on the PowerPC platform. X servers are currently available on
-the AT and microSPARC platform. Refer to section <ref id="others"
-name="Building on microSPARC and PowerPC"> for details on XFree86
-on the non-AT platforms.
+XFree86 &relvers; supports LynxOS on the x86 and on
+the PowerPC platform. X servers are currently available only on the
+x86 platform. The X server may work with some PowerPC platforms
+supported by LynxOS though this has not (yet) been thoroughly tested.
If you need binaries for other platforms than the one on the
-XFree86 FTP server contact me (<htmlurl name="tmueller@sysgo.de"
-url="mailto:tmueller@sysgo.de">).
-
-Send email to <it>tmueller@sysgo.de</it> (Thomas Mueller) or
-<it>XFree86@XFree86.org</it> if you have comments or suggestions about
-this file and we'll revise it.
+XFree86 FTP server or if you have comments or suggestions about this
+document contact me (<email>tmueller@sysgo.de</email>).
<sect>Installing the Binaries
<p>
-Please refer to section "Installing the XFree86 3.3.4 Release" of the
-<htmlurl url="RELNOTES.html" name="Release Notes"> for detailed
-installation instructions.
-
-If you plan to install XF86Setup you'll have to install
-<tt/X333prog/ as well since XF86Setup checks for the existence of
-a certain file name pattern which is satisfied only if you install
-the library files from <tt/X333prog/.
+Please refer to the <htmlurl name="Installation Document"
+url="Install.html"> for detailed installation instructions.
It may be necessary to increase the process stack limit in order to
run XFree86 on your system. Edit <tt>/etc/startab</tt> and reboot your
@@ -72,109 +69,111 @@ Refer to the next section <ref id="running" name="Running XFree86"> for
further information on necessary configuration steps before running
XFree86 on LynxOS.
+<sect1>Accessing XFree86 manual pages
+<p>
+Include <tt>/usr/X11R6/man</tt> in the MANPATH environment variable or add
+the directory <tt>/usr/X11R6/man</tt> to <tt>/usr/Lib/man.config</tt>
+
+
<sect>Running XFree86<p><label id="running">
This section describes the changes to the LynxOS environment
which may be necessary to successfully run XFree86.
+<!--
Read <htmlurl url="QuickStart.html" name="Quick-Start Guide
to XFree86 Setup"> to learn more about how to configure XFree86 for
your hardware.
-
-<sect1>System requirements<p>
- A minimum of 16MB of memory is required to run X. If you want to run
- real-world applications you should think of upgrading to 32MB (or more).
+-->
<sect1>System tuning<p>
<sect2>Tunable parameters<p>
- To reasonably run XFree86 you may have to adjust a few system parameters.
+To reasonably run XFree86 you may have to adjust a few system parameters.
- On LynxOS 2.5.x and 3.0.x include a line
+On LynxOS 2.5.x and 3.0.x include a line
<verb>
- #define X_WINDOWS
+#define X_WINDOWS
</verb>
- in <tt>/sys/lynx.os/uparam.h</tt>.
-
- For earlier versions you'll have to edit <tt>/usr/include/param.h</tt>:
-<verb>
- Tunable Old New
- USR_NFDS number of open files per process 20 64
- NPROC number of tasks 50 150
- NFILES number of open files in system 100 250
- NINODES number of incore inodes (same value as NFILES)
- QUANTUM clock ticks until preemption 64 20
- CACHEBLKS number of cache memory blocks 202 >= 4096
-</verb>
+in <tt>/sys/lynx.os/uparam.h</tt>.
- The new values are those suggested by the LynxOS documentation for
- their X Window package.
+<sect2>Adjustment for "nv" driver for NVidia graphics cards<p>
-<sect2>Adjustment for Riva 128 and Riva TNT driver>
-
-If you're using the nVidia driver (Riva 128, TNT, TNT2) of the SVGA
-server, you will have to increase the value of the SMEMS parameter in
+If you're using the "nv" driver (Riva 128, nVidia TNT, TNT2, GeForce),
+you will have to increase the value of the SMEMS parameter in
<tt>/sys/lynx.os/uparam.h</tt> from 10 to 20.
<sect2>Increase number of ptys<p>
- You should also increase the number of ptys to be able run a couple
- more xterms. You may replace <tt>/sys/lynx.os/pty.cfg</tt> with
- <tt>/usr/X11R6/lib/X11/etc/pty.cfg</tt>.
+You should also increase the number of ptys to be able run a couple
+more xterms. You may replace <tt>/sys/cfg/pty.cfg</tt> with
+<tt>/usr/X11R6/lib/X11/etc/pty.cfg</tt>.
-<sect2>Kernel build<p>
+<sect2>MTRR device driver<p>
- If you plan to use PS/2 or Bus mice refer to the following section
- before rebuilding the kernel, if not, you should rebuild the kernel
- now:
+If you're using an Intel PentiumPRO or Pentium II (or higher) class
+CPU you might want to install the MTRR device driver. This driver
+enables the XFree86 X server to manipulate the CPU memory type range
+registers which may improve performance on certain systems.
- <tscreen><verb>
- # cd /sys/lynx.os
- # make install
- # reboot -N
- </verb></tscreen>
+To install the driver (on LynxOS x86 2.5.0 systems an higher) follow
+these steps:
-<sect1>Mouse support in XFree86<p>
+<tscreen><verb>
+ # cd /
+ # bash /usr/X11R6/lib/X11/etc/MTRR-Lynx.shar
+ # cd sys/drivers/mtrr
+ # make install
+</verb></tscreen>
- XFree86 includes support for PnP mice (see also
- <htmlurl url="mouse.html" name="Mouse Support in XFree86">). The
- current LynxOS TTY device driver doesn't allow the necessary
- manipulation of the RTS line and therefore the support for
- PnP mice has been disabled for LynxOS.
+Then add a line
+<tscreen><verb>
+ I:../drivers/mtrr/mtrr.cfg
+</verb></tscreen>
+to <tt>/sys/lynx.os/CONFIG.TBL</tt> and rebuild the kernel (see next section).
-<sect1>Bus mouse drivers<p>
+<sect2>Kernel build<p>
- Starting with LynxOS AT 2.4.0 LynxOS includes a PS/2 mouse driver.
- Currently this driver is not fully supported by XFree86 (you'll
- probably have to specify the mouse type as <em>Microsoft</em>
- regardless of real mouse type and in some cases you won't have
- all mouse buttons supported).
- <tt>/usr/X11R6/lib/X11/etc/BM-Lynx.shar</tt> contains a LynxOS port
- of the Linux bus mouse drivers. To install the drivers
- unpack the shar archive
+If you plan to use a PS/2 mouse to the following sections
+before rebuilding the kernel, if not, you should rebuild the kernel
+now:
<tscreen><verb>
- # cd /
- # bash /usr/X11R6/lib/X11/etc/BM-Lynx.shar
+ # cd /sys/lynx.os
+ # make install
+ # reboot -N
</verb></tscreen>
- and follow the notes in <tt>/BMOUSE.Readme</tt> for further installation and
- configuration notes.
+<sect1>Mouse support in XFree86<p>
- The XFree86 PS/2 mouse driver works also with MetroLink X 2.3.3.1 as
- shipped with LynxOS AT 2.4.0 unless you have the LynxOS patch
- 000055-00 installed.
+XFree86 includes support for PnP mice (see also <htmlurl
+url="mouse.html" name="Mouse Support in XFree86">). The current LynxOS
+TTY device driver doesn't allow the necessary manipulation of the RTS
+line and therefore the support for PnP mice has been disabled for
+LynxOS.
+
+<sect1>PS/2 mouse drivers<p>
+
+LynxOS x86 comes with a PS/2 mouse driver. If it is not currently
+installed on your system install it with
+<tt>/usr/bin/Install.ps2mouse</tt>. Older versions of this driver
+contained code to translate the PS/2 mouse protocol to the format of a
+serial mouse, thus you'll have to specify "Microsoft" as the mouse
+protocol format. The mouse driver contained in LynxOS x86 patchlevel
+015 (and higher) does no longer perform the protocol translation an
+therefore can be defined as "PS/2" protocol format.
+
<sect1> ATC console driver and VT switching<p>
- The XFree86 servers will only run with the default LynxOS console
- driver, sorry for those of you who use the alternative vdt console
- driver. Currently there is no support for virtual terminal switching
- once the server has started.
+Currently there is no support for virtual terminal switching
+once the server has started. Support for this feature may be added in
+future versions (it requires a patch to the vt100 LynxOS terminal
+driver).
- You will need a free console which the X server will use for
- keyboard input. You must disable login on at least one of the four
- virtual terminals in <tt>/etc/ttys</tt>, e.g. <tt>/dev/atc3</tt>:
+You will need a free console which the X server will use for keyboard
+input. You must disable login on at least one of the four virtual
+terminals in <tt>/etc/ttys</tt>, e.g. <tt>/dev/atc3</tt>:
<tscreen>
change
@@ -189,67 +188,17 @@ server, you will have to increase the value of the SMEMS parameter in
<sect1>X Server debug diagnostics output and other VT peculiarities<p>
- The XFree86 X servers will produce a lot of diagnostics output on
- stderr during startup. This output will be lost after the server
- reached a certain point in its console initialization process. You
- should redirect stdout and stderr if you want to analyze the
- diagnostics produced by the server.
+Output made by the XFree86 X on its stdout or stderr will be lost
+after the server switches to graphics mode. The XFree86 &relvers;
+server stores its output in <tt>/usr/adm/XFree86.n.log</tt> (where
+<tt>n</tt> is the screen number).
- When the X server is running output made to other consoles will be
- lost. After server shutdown the screen contents of other consoles
- may be inconsistent with what one would expect (i.e. random).
+When the X server is running output made to other consoles will be
+lost. After server shutdown the screen contents of other consoles may
+be inconsistent with what one would expect (i.e. random).
-<sect>Installing XFree86 manual pages<p><label id="installman">
-
- LynxOS uses cat-able manual pages, and because a doc preparation
- system is definitely not a vital component of a real-time operating
- system you must first install groff-1.09 (or newer). Starting with
- LynxOS 2.3.0 it should compile right out of the box (or better tar archive).
-
- XFree86 manual pages may be installed using
-
- <tscreen><verb>
- make install.man
- </verb></tscreen>
-
- The index and whatis database for the XFree86 manual pages will be
- created automatically. If you already have a whatis database or
- index file in the destination directories you should perform a
- sort/uniq operation to remove duplicate entries:
-
- <tscreen><verb>
- for i in 1 3 5
- do
- rm -f /tmp/tmpfile
- sort /usr/X11R6/man/cat$i/LIST$i | uniq > /tmp/tmpfile
- mv /tmp/tmpfile /usr/X11R6/man/cat$i/LIST$i
- done
- sort /usr/X11R6/man/whatis | uniq > /tmp/tmpfile
- mv /tmp/tmpfile /usr/X11R6/man/whatis
- </verb></tscreen>
-
- With LynxOS 2.3.0 you should include <tt>/usr/X11R6/man</tt> in the MANPATH
- environment variable.
-
- <tscreen>
- bash: <tt>MANPATH=&dollar;MANPATH:/usr/X11R6/man</tt>
- </tscreen>
-
- The man command of LynxOS 2.2.1 does not support the MANPATH
- environment variable properly. The XFree86 manual pages must be
- copied (or linked) to the standard manual page locations
- (<tt>/usr/man/catx</tt>) in order to be read the man command:
-
- <tscreen><verb>
- for i in 1 3 5
- do
- ln -s /usr/X11R6/man/cat$i/*.* /usr/man/cat$i
- cat /usr/X11R6/man/cat$i/LIST$i >> /usr/man/cat$i/LIST$i
- sort -o /usr/man/cat$i/LIST$i /usr/man/cat$i/LIST$i
- cat /usr/X11R6/man/cat$i/whatis$i >> /usr/man/whatis
- done
- </verb></tscreen>
+<!--
<sect>Using XFree86 with Motif<p>
The Motif libraries shipped with LynxOS AT 2.3.0 and 2.4.0 can be
@@ -311,9 +260,9 @@ server, you will have to increase the value of the SMEMS parameter in
<sect1>Motif config file patch<p>
- The file <tt>Motif.tmpl</tt> shipped with LynxOS Motif must be modified
- to work with XFree86. In every reference to <tt>UnsharedLibReferences</tt>
- the first argument must be changed
+The file <tt>Motif.tmpl</tt> shipped with LynxOS Motif must be
+modified to work with XFree86. In every reference to
+<tt>UnsharedLibReferences</tt> the first argument must be changed
<tscreen>
from
<verb>
@@ -326,167 +275,126 @@ server, you will have to increase the value of the SMEMS parameter in
Be sure to apply the change to the file copied to
<tt>/usr/X11R6/lib/X11/config</tt>.
+-->
+
<sect>Compiling the XFree86 Distribution<p>
+<!-- out of date
Before trying to rebuild XFree86 from source read <htmlurl url="BUILD.html"
name="Building XFree86"> for a detailed description of the build
-process. The next sections contain LynxOS specific notes with
+process. -->The next sections contain LynxOS specific notes with
respect to the build process.
-
<sect1>Disk space requirements<p>
Currently there is no support for shared libraries in the LynxOS
XFree86 port. A complete binary installation along with manual pages
-will require approximately 90-100 MBytes of disk space. To compile
-the system you will need at least 230 MBytes of free disk space.
+will require approximately 100 MBytes of disk space. To compile
+the system you will need at least 250 MBytes of free disk space.
-<sect1>Changes to system environment (LynxOS AT)<p>
+<sect1>Changes to system environment (LynxOS x86)<p>
Before compiling the XFree86 distribution you will have to make a
few little adjustments to your system:
- <descrip>
- <tag>LynxOS AT 2.5</tag>
- <itemize>
- <item>Create a shell script named <tt>/lib/cpp</tt> as follows:
- <tscreen><verb>
- #!/bin/sh
- /usr/lib/gcc-lib/i386-unknown-lynxos2.5/2.7-96q1/cpp \
- -traditional "$@"
- </verb></tscreen>
- On other platforms than the AT the paths for the compiler support
- programs are different. You may use
- <tscreen><verb>
- gcc -v
- </verb></tscreen>
- to find out the correct path. Set the file mode of <tt>/lib/cpp</tt> with
- <tscreen><verb>
- # chown root /lib/cpp
- # chmod 755 /lib/cpp
- </verb></tscreen>
- <item>Modify <tt>/lib/liblynx.a</tt>. The X servers need the
- <tt>smem_create()</tt> system call to map the frame buffer into their
- address space. The system call is in <tt>liblynx</tt> library along
- with other Lynx proprietary calls which (unfortunately) overlap
- with calls in <tt>libc</tt>. To reduce confusion you should modify
- <tt>liblynx</tt> as follows:
- <tscreen><verb>
- # mv /lib/liblynx.a /lib/liblynx.a.ORG
- # mkdir /tmp/xx; cd /tmp/xx
- # ar xv /lib/liblynx.a.ORG
- # ar rv /lib/liblynx.a *smem*
- # ranlib /lib/liblynx.a
- </verb></tscreen>
+<itemize>
+<item>If not already installed on your system create a shell script
+named <tt>/lib/cpp</tt> as follows:
+<tscreen><verb>
+ #!/bin/sh
+ /usr/lib/gcc-lib/i386-unknown-lynxos2.5/2.7-96q1/cpp \
+ -traditional "$@"
+</verb></tscreen>
+On other platforms than the x86 the paths for the compiler support
+programs are different. You may use
+<tscreen><verb>
+ gcc -v
+</verb></tscreen>
+to find out the correct path. Set the file mode of <tt>/lib/cpp</tt> with
+<tscreen><verb>
+ # chown root /lib/cpp
+ # chmod 755 /lib/cpp
+</verb></tscreen>
- </itemize>
- <tag>LynxOS AT 2.4</tag>
- <itemize>
- <item>Use the CYGNUS GNU-C Compiler to build XFree86. With LynxOS
- 2.4.0 you must execute the shell script <tt>/CYGNUS.bash</tt> to
- apply the necessary changes to your environment.
- <item>Create a shell script named <tt>/lib/cpp</tt> as follows:
- <tscreen><verb>
- #!/bin/sh
- /cygnus/94q4-lynxos-x86/lib/gcc-lib/i386-lynx/2.6-94q4/cpp \
- -traditional "$@"
- </verb></tscreen>
- It is possible that future releases use a different path for
- the CYGNUS compiler support programs. You may use
- <tscreen><verb>
- gcc -v
- </verb></tscreen>
- to find out the correct path. Set the file mode of <tt>/lib/cpp</tt> with
- <tscreen><verb>
- # chown root /lib/cpp
- # chmod 755 /lib/cpp
- </verb></tscreen>
- </itemize>
- <tag>LynxOS AT 2.3</tag>
- This has actually not been tested, but the steps for described
- for 2.4 should apply to 2.3 as well.
- <tag>LynxOS AT 2.2.1</tag>
- This has actually never been tested, be prepared that the build will
- fail somewhere!
- <itemize>
- <item>Create a shell script named <tt>/lib/cpp</tt> as follows:
- <tscreen><verb>
- #!/bin/sh
- /usr/local/lib/gcc-cpp -traditional "$@"
- </verb></tscreen>
- <item>The loader /bin/ld of LynxOS 2.2.1 does not support the -L option
- which is heavily used by X11R6 makefiles. To work around this
- problem you must install a small wrapper program which replaces
- the original /bin/ld program. Use the following steps to install
- it:
- <tscreen><verb>
- # cd xc/programs/Xserver/hw/xfree/etc
- # cc -o ld ld-wrapper.c
- # mv /bin/ld /bin/ld.org
- # mv ld /bin/ld
- # chmod 511 /bin/ld
- # chown root /bin/ld
- </verb></tscreen>
- <item>Modify system header files as follows:
- <descrip>
- <tag><tt>/usr/include/uio.h</tt></tag> surrounded by
- <tscreen><verb>
- #ifndef _UIO_H
- #define _UIO_H
- ...
- #endif
- </verb></tscreen>
- <tag><tt>/usr/include/utmp.h</tt></tag> surrounded by
- <tscreen><verb>
- #ifndef _UTMP_H
- #define _UTMP_H
- ...
- #endif
- </verb></tscreen>
- <tag><tt>/usr/include/unistd.h</tt></tag> add
- <tscreen><verb>
- extern int read();
- </verb></tscreen>
- </descrip>
- </itemize>
- </descrip>
+<item>Modify <tt>/lib/liblynx.a</tt>. The X servers need the
+<tt>smem_create()</tt> system call to map the frame buffer into their
+address space. The system call is in <tt>liblynx</tt> library along
+with other Lynx proprietary calls which (unfortunately) overlap with
+calls in <tt>libc</tt>. To reduce confusion you should modify
+<tt>liblynx</tt> as follows:
+
+<tscreen><verb>
+ # mv /lib/liblynx.a /lib/liblynx.a.ORG
+ # mkdir /tmp/xx; cd /tmp/xx
+ # ar xv /lib/liblynx.a.ORG
+ # ar rv /lib/liblynx.a *smem*
+ # ranlib /lib/liblynx.a
+</verb></tscreen>
+</itemize>
<sect1> make World<p>
- Read <htmlurl url="BUILD.html" name="Building XFree86"> before
- trying to rebuild XFree86 from the source distribution.
+<!-- out of date
+Read <htmlurl url="BUILD.html" name="Building XFree86"> before trying
+to rebuild XFree86 from the source distribution.
+-->
- You may then issue a
+If you have the MTRR device driver installed, add a line
+
+ <tscreen><verb>
+ #define HasMTRRSupport YES
+ </verb></tscreen>
+
+to the <tt>config/cf/host.def</tt> file.
+
+You may then issue a
<tscreen><verb>
make World
</verb></tscreen>
- to compile XFree86. After a few hours (and hopefully a successful
- build of the XFree86 system) you can install the software using
+to compile XFree86. After a few hours (and hopefully a successful
+build of the XFree86 system) you can install the software using
<tscreen><verb>
make install
</verb></tscreen>
- You must be logged in as super-user (root) when you invoke `make
- install'. Be sure to set your environment to use the same compiler
- (LynxOS 2.3.0/2.4.0, CYGNUS GNU-C) as you did during the `make World'. To
- install the LinkKit use
+You must be logged in as super-user (root) when you invoke `make
+install'.
+
+On LynxOS x86 2.5.0 you may encounter problems with <tt>make</tt> in
+deeply nested subdirectories (eg core dumps, hangups). In this case
+update to GNU make version 3.75 or higher.
+
+<sect1>Installing XFree86 manual pages<p><label id="installman">
+
+LynxOS uses cat-able manual pages, and because a doc preparation
+system is definitely not a vital component of a real-time operating
+system you must first install groff-1.09 (or newer).
+
+XFree86 manual pages may be installed using
<tscreen><verb>
- make install.linkkit
+ make install.man
</verb></tscreen>
- With LynxOS 2.2.1 programs will not be stripped during
- installation. This is due to a problem with the strip program which
- shows up when installing across file system boundaries.
+The index and whatis database for the XFree86 manual pages will be
+created automatically. If you already have a whatis database or index
+file in the destination directories you should perform a sort/uniq
+operation to remove duplicate entries:
- Refer to section <ref id="installman" name="Installing XFree86 manual pages">
- for manual page installation.
-
- On LynxOS AT 2.5.0 you may encounter problems with <tt>make</tt> in
- deeply nested subdirectories (eg core dumps, hangups). In this case
- update to GNU make version 3.75 or higher.
+ <tscreen><verb>
+ for i in 1 3 5
+ do
+ rm -f /tmp/tmpfile
+ sort /usr/X11R6/man/cat$i/LIST$i | uniq > /tmp/tmpfile
+ mv /tmp/tmpfile /usr/X11R6/man/cat$i/LIST$i
+ done
+ sort /usr/X11R6/man/whatis | uniq > /tmp/tmpfile
+ mv /tmp/tmpfile /usr/X11R6/man/whatis
+ </verb></tscreen>
+
+<!--
<sect>Building on microSPARC and PowerPC<label id="others"><p>
XFree86 3.3 compiles on LynxOS microSPARC and on LynxOS PPC as well. On the
@@ -539,14 +447,6 @@ few little adjustments to your system:
The server for monochrome cards builds properly if you enable it in
<tt>lynx.cf</tt> but it has never been tested (reports are welcome).
+-->
-<verb>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml,v 3.17 1999/08/23 06:38:47 dawes Exp $
-
-
-
-
-
-$XConsortium: LynxOS.sgml /main/10 1996/10/28 05:13:07 kaleb $
-</verb>
</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml
index e96875808..f2ad0e480 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml
@@ -12,7 +12,7 @@ Matthieu Herrb
<Date>Last modified on: 20 February 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml,v 3.52 2000/02/21 18:05:47 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml,v 3.55 2000/03/03 21:28:09 dawes Exp $
</ident>
<toc>
@@ -29,12 +29,12 @@ See the <htmlurl url="COPYRIGHT.html" name="Copyright Notice">.
The sources for XFree86 are available by anonymous ftp from:
-<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/snapshots/&relvers;"
-url="ftp://ftp.XFree86.org/pub/XFree86/current">
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/&relvers;"
+url="ftp://ftp.XFree86.org/pub/XFree86/&relvers;">
Binaries for NetBSD 1.3 and later are available from:
-<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/snapshots/&relvers;/binaries/NetBSD"
-url="ftp://ftp.XFree86.org/pub/XFree86/snapshots/&relvers;/NetBSD">
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/&relvers;/binaries/NetBSD"
+url="ftp://ftp.XFree86.org/pub/XFree86/&relvers;/NetBSD">
A list of mirror sites is provided by
@@ -51,14 +51,21 @@ XFree86 also supports NetBSD on PC98 machines.
<sect>Bug Reports for This Document
<p>
-Send email to <em/herrb@XFree86.Org/ (Matthieu Herrb) or
-<em/XFree86@XFree86.org/ if you have comments or suggestions about
+Send email to <email>herrb@XFree86.Org</email> (Matthieu Herrb) or
+<email>XFree86@XFree86.org</email> if you have comments or suggestions about
this file and we'll revise it.
-<sect>New OS dependant features
+<sect>New OS dependent features
<p>
See the <htmlurl url="RELNOTES.html" name="Release Notes"> for
non-OS dependent new features in XFree86 &relvers;.
+
+<sect1>New OS dependent features in 4.0
+<p>
+<itemize>
+<item>Preliminary APM support.
+</itemize>
+
<sect1>New OS dependent features in 3.9.18
<p>
<itemize>
@@ -79,8 +86,8 @@ support is included.
<sect>Installing the Binaries
<p>
-Refer to section 5 of the <htmlurl url="RELNOTES.html" name="Release
-Notes"> for detailed installation instructions.
+Refer to the <htmlurl url="Install.html" name="Installation Document">
+for detailed installation instructions.
<sect>Configuring X for Your Hardware
@@ -318,8 +325,10 @@ extension.
<sect> Rebuilding the XFree86 Distribution
<p>
+<!-- out of date
See <htmlurl url="INSTALL.html" name="INSTALL"> for instructions on
unbundling and building the source distribution.
+-->
You should configure the distribution by editing
<tt>xc/config/cf/host.def</tt> before compiling. To compile the
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml
index 5e7453bb5..a7b70c75d 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml
@@ -9,7 +9,7 @@ Matthieu Herrb
<Date>Last modified on: 20 February 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml,v 1.7 2000/02/21 18:05:47 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml,v 1.10 2000/03/03 21:28:10 dawes Exp $
</ident>
<toc>
@@ -27,13 +27,13 @@ See the <htmlurl url="COPYRIGHT.html" name="Copyright Notice">.
The sources for XFree86 &relvers; are available by anonymous ftp from:
-<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/snapshots/&relvers;"
-url="ftp://ftp.XFree86.org/pub/XFree86/snapshots">
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/&relvers;"
+url="ftp://ftp.XFree86.org/pub/XFree86/&relvers;">
Binaries for OpenBSD/i386 2.6 and later are available from:
-<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/snapshots/&relvers;/binaries/OpenBSD"
-url="ftp://ftp.XFree86.org/pub/XFree86/snapshots/&relvers;/binaries/OpenBSD">
+<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/&relvers;/binaries/OpenBSD"
+url="ftp://ftp.XFree86.org/pub/XFree86/&relvers;/binaries/OpenBSD">
A list of mirror sites is provided by
<htmlurl name="ftp://ftp.XFree86.org/pub/XFree86/MIRRORS"
@@ -48,14 +48,23 @@ XFree86 also builds on other OpenBSD architectures. See section
<sect>Bug Reports for This Document
<p>
-Send email to <em/herrb@xfree86.org/ (Matthieu Herrb) or
-<em/XFree86@XFree86.org/ if you have comments or suggestions about
+Send email to <email>herrb@xfree86.org</email> (Matthieu Herrb) or
+<email>XFree86@XFree86.org</email> if you have comments or suggestions about
this file and we'll revise it.
-<sect>New OS dependant features
+<sect>New OS dependent features
<p>
See the <htmlurl url="RELNOTES.html" name="Release Notes"> for
non-OS dependent new features in XFree86 &relvers;.
+
+<sect1>New OS dependent features in 4.0
+<p>
+<itemize>
+<item>Multi-thread safe libraries are built by default on OpenBSD 2.6
+ and later,
+<item>Preliminary APM support.
+</itemize>
+
<sect1>New OS dependent features in 3.9.18
<p>
<itemize>
@@ -75,8 +84,8 @@ post 2.6 OpenBSD-current for PS/2 mices.
<sect>Installing the Binaries
<p>
-Refer to section 5 of the <htmlurl url="RELNOTES.html" name="Release
-Notes"> for detailed installation instructions.
+Refer to the <htmlurl url="Install.html" name="Installation Document">
+for detailed installation instructions.
<sect>Configuring X for Your Hardware
<p>
@@ -242,8 +251,10 @@ changes to the <tt/xf86site.def/, type ``<tt>./mkmf</tt>'' and
``<tt/make/'' to link the server. See <tt>/usr/X11R6/lib/Server/README</tt>
for more info.
+<!-- out of date
See <htmlurl url="INSTALL.html" name="INSTALL"> for instructions on
unbundling and building the source distribution.
+-->
You should configure the distribution by editing
<tt>xc/config/cf/host.def</tt> before compiling. To compile the
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml
index fcfcd4d67..4cc3953fd 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml
@@ -1,8 +1,8 @@
<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
<!ENTITY % defs SYSTEM "defs.ent"> %defs;
<!ENTITY % onediff 'IGNORE'> <!-- patch is a single diff file -->
-<!ENTITY % twodiffs 'IGNORE'> <!-- patch is split into two diff files -->
-<!ENTITY % threediffs 'INCLUDE'> <!-- patch is split into three diff files -->
+<!ENTITY % twodiffs 'INCLUDE'> <!-- patch is split into two diff files -->
+<!ENTITY % threediffs 'IGNORE'> <!-- patch is split into three diff files -->
]>
@@ -10,10 +10,10 @@
<title>README for XFree86&tm; &relvers;
<author>The XFree86 Project, Inc
-<date>21 February 2000
+<date>26 February 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.100 2000/02/21 22:41:41 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.103 2000/03/08 20:36:43 dawes Exp $
</ident>
<abstract>
@@ -28,6 +28,7 @@ operating systems on Intel and other platforms.
<sect>What is XFree86 &relvers;?
<p>
+<![ %snapshot [
XFree86 &relvers; is a ``work in progress'' snapshot of the XFree86 4.0
development code. It is <![ %latersnap; [one of]]>
<![ %firstsnap; [the first in]]>
@@ -48,10 +49,44 @@ compared with the 3.3.x versions, and only a small number of drivers have
been converted so far. That means that this release does not support a
wide range of video hardware. Some of the drivers and new features are
well developed and reasonably stable, while others are not.
+]]>
+
+<![ %release [
+XFree86 &relvers; is <![ %firstrel; [the first]]>
+<![ %laterrel; [a]]> full release of the <![ %earlyrel; [new]]> XFree86 4
+series.
+The road to XFree86 4 began in mid 1997, with serious work starting in
+early 1998. The first pre-4.0 snapshot was released in mid 1999, and
+4.0 was released in early 2000. A lot has been completed in that time,
+and even more has been started since the "4.0" design was drafted. The
+result is that this release contains a lot of new features, some new
+drivers, and some significant performance improvements. This release
+contains components in various stages of development, ranging from stable
+and well tested to new and not-so-well tested. One the other side,
+there are drivers from the 3.3.x series that have not yet been ported
+to XFree86 4. Most of these are for old hardware. To find more
+information about which hardware is supported, see the <htmlurl
+name="Driver Status document" url="Status.html">.
+
+XFree86 4 uses a very modular design. We had hoped to finalise and fully
+document the driver module API/ABI in time for the 4.0 release, but instead
+we are planning to have this done for a subsequent release. We will try
+where possible to retain backward compatibility with the module interfaces
+in 4.0 in future releases, but we can't make guarantees about that until
+the interfaces have been fully documented.
+]]>
Information on this release's features and their status can be found in
the <htmlurl name="Release Notes" url="RELNOTES.html">.
+Information about obtaining and installing binary distributions of this
+release can be found in the <htmlurl name="Installation Document"
+url="Install.html">.
+
+Copyright and Licensing information for this release can be found in
+the <htmlurl name="License Document" url="LICENSE.html">.
+
+<![ %snapshot [
<sect>Redistribution of the Snapshots
<p>
@@ -60,22 +95,35 @@ prohibit vendors and others redistributing binaries of this release, we
don't recommend it. We ask that if you do distribute such binaries,
you make it clear that people using then should contact you for support
and not XFree86.
+]]>
<sect>Developers
<p>
-If you would like to work on the development on XFree86 4.0, then it is
+If you would like to work on the development of XFree86 4, then it is
recommended that you <url name="join the XFree86 development team"
-url="http://www.xfree86.org:/developer.html">. That way you will have access
-to the latest source and to other developers.
+url="http://www.xfree86.org:/developer.html">. That way you will have
+access to the latest source and to other developers.
<sect>How to get XFree86 &relvers;
<p>
+<![ %snapshot; [
XFree86 &relvers; can be found at the <url name="XFree86 ftp server"
url="ftp://ftp.xfree86.org/pub/XFree86/snapshots/&relvers;/">, and at
mirrors of this server. This snapshot is available primarily in source
-form. Binaries for some platforms may be made available at a later time.
+form. Binaries for some platforms may be made available at a later
+time.
+]]>
+
+<![ %release; [
+XFree86 &relvers; can be found at the <url name="XFree86 ftp server"
+url="ftp://ftp.xfree86.org/pub/XFree86/&relvers;/">,
+and at mirrors of this server. Information about obtaining and installing
+binary distributions of this release can be found in the
+<htmlurl name="Installation Document" url="Install.html">. Information about
+obtaining the release in source form is given below.
+]]>
The source for version &relvers; is split into three tarballs:
<tt>X&srcvers;src-1.tgz</tt>, <tt>X&srcvers;src-2.tgz</tt>,
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml
index b36f2411b..a90c11317 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml
@@ -6,10 +6,10 @@
<title>Release Notes for XFree86&trade; &relvers;
<author>The XFree86 Project, Inc
-<date>21 February 2000
+<date>7 March 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.29 2000/02/21 22:29:07 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.37 2000/03/08 20:11:55 dawes Exp $
</ident>
<abstract>
@@ -21,8 +21,70 @@ in XFree86 &relvers; and their status.
<toc>
+<sect>Introduction
+<p>
+XFree86 4.0 is the first official release of the new XFree86 4. XFree86
+4 represents a significant redesign of the XFree86 X server. It is very
+important to keep in mind that XFree86 4 is still very much in development,
+and it contains a lot of new work. That means two things: there is a
+lot of new exciting stuff to try, but being new code, it hasn't had
+nearly as much of a workout as the stable 3.3.x releases. If you're
+looking for a well-tested, stable release, and can't afford the
+inconveniences that new software can sometimes cause, then you are
+probably better off sticking with the 3.3.x releases for now. If you
+have the resources to try out the new version and investigate its
+features, or if you just like being on the bleeding edge, then please
+try &relvers;!
+
+This release isn't quite as complete as we would have liked. The main
+missing pieces are a nice configuration tool and support for some of
+the hardware that 3.3.x supports. The first point means that configuring
+the server might be more painful than usual. The second means that your
+hardware might not be supported by &relvers;, or it might be supported at a
+lesser level (conversely, some hardware is better supported in &relvers;).
+We've attempted to provide some information about the second point in
+our <htmlurl name="Driver Status document" url="Status.html">. Please
+check there first before trying &relvers;. Unfortunately that document is
+still fairly basic, but it should at least give you an idea of whether
+you're likely to be able to use &relvers; at all or not.
+
+On the subject of configuration, we have updated the basic text-based
+tool "<tt>xf86config</tt>" to generate config files in the format required
+by &relvers; (3.3.x config files won't really work with &relvers;). We're also
+working on some other configuration tools, including one that is built-in
+to the X server. An early version of this is included in the release,
+and it works well for some hardware. To try it out, just run (as root)
+"<tt>XFree86 -configure</tt>". Both of these configuration options will
+at worst give you a reasonable starting point for a suitable configuration
+file. We've put some effort into documenting the &relvers; config file format,
+and you can find that information in the XF86Config manual page. Please
+check that and the driver manual pages and related documentation for
+further information about that.
+
+Oh, another thing you might notice is that our documentation is rather
+patchy. Most of what is present should be in reasonable shape, but
+there are gaps. We thought it better to leave out docs that were
+very out of date rather than providing inaccurate and misleading
+information.
+
+Finally, before you download and install the binary distributions for
+this release, please have a quick read through the <htmlurl
+name="Installation Document" url="Install.html">. It may save you some
+time.
+
+If those cautionary notes haven't turned you away (and we certainly hope
+not), please read on... The sections below describe some of the new
+features and changes between 3.3.x and &relvers;. There is a lot of new
+stuff, and we definitely don't have enough space to cover it all here.
+
+<!--
<sect>Summary of new features in &relvers; compared with &prevrelvers;.
<p>
+-->
+
+<!--
+<sect>Summary of new features in 3.9.18 compared with 3.9.17.
+<p>
This section contains a brief summary of what has changed since the
previous snapshot. Unfortunately, only a small number of changes are
listed here. For detailed information, refer to the <tt>CHANGELOG</tt>
@@ -123,19 +185,20 @@ that are new to the pre-4.0 snapshot series.
<item>Some work on adding WYSIWYG capabilities to the Xaw text widget.
<item>Some preliminary support for programming modes has been added to xedit.
</itemize>
+-->
<sect>X server
<p>
Unlike XFree86 3.3.x where there are multiple X server binaries, each
of which drive different hardware, XFree86 &relvers; has a single X server
-binary (called <tt>XFree86</tt>). This binary can either have one or
+binary called <tt>XFree86</tt>. This binary can either have one or
more video drivers linked in statically, or, more usually, dynamically
load the video drivers and other modules that are needed.
XFree86 &relvers; has X server support for most UNIX(R) and UNIX-like
operating systems on Intel/x86 platforms, plus support for Linux on
-Alpha and PowerPC platforms. Support for additional architectures and
-operating systems is planned for future releases.
+Alpha and PowerPC platforms. Work on support for additional architectures
+and operating systems is in progress, and is planned for future releases.
<sect1>Loader and Modules
<p>
@@ -149,30 +212,34 @@ and makes it possible for the modules to be operating system independent
that, for example, a module compiled on Linux/x86 can be loaded by an
X server running on Solaris/x86, or FreeBSD, or even OS/2. One of the
main benefits of this is that when modules are updated, they don't need
-to be recompiled for each different operating system.
+to be recompiled for each different operating system. We're planning to
+take advantage of this to provide more frequent driver module updates in
+between major releases.
The loader in version &relvers; has support for Intel (x86), Alpha and
-PowerPC platforms. It also has preliminary support for Sparc platforms.
+PowerPC platforms. It also has preliminary support for Sparc platforms
+but this isn't used yet.
The X server makes use of modules for video drivers, X server extensions,
font rasterisers, input device drivers, framebuffer layers (like mfb,
cfb, etc), and internal components used by some drivers (like XAA),
-The module interfaces (API and ABI) used in the snapshot releases are
-subject to change without notice. This means that there is no guarantee
-that modules built for one snapshot release will function with another
-snapshot release. As of the 4.0 release we plan to make every effort
-to provide backward compatibility for the module interfaces (that means
-older modules working with newer core X server binaries).
+The module interfaces (API and ABI) used in this release is still subject
+to change without notice. While we'll attempt to provide backward
+compatibility for the module interfaces as of the 4.0 release (meaning
+that 4.0 modules will work with future core X server binaries), we can't
+guarantee that this will be the case. We are planning to fully document
+and stabilise the module interfaces in a future release, and at that
+point backward compatibility will be easier to achieve.
<bf>Note about module security</bf>
<quote><p>
- The XFree86 X server runs with root privileges, which means that the
- X server loadable modules also run with these privileges. For this
- reason we recommend that all users be careful to only use loadable
- modules from reliable sources. By the time that XFree86 4.0 is
- released, we hope to have implemented a method for signing/verifying
- modules that we provide.
+ The XFree86 X server runs with root privileges, which means that
+ the X server loadable modules also run with these privileges.
+ For this reason we recommend that all users be careful to only
+ use loadable modules from reliable sources. We hope to have a
+ mechanism for signing/verifying the modules that we provide
+ available in a future release.
</quote>
@@ -182,12 +249,15 @@ older modules working with newer core X server binaries).
The X server configuration file format has been extended to handle some
of the new functionality. The <tt>xf86config</tt> utility can be used
to generate a basic config file, that may require some manual editing.
+The X server also has preliminary support for generating a basic config
+file. This is done by running (as root) "<tt>XFree86 -configure</tt>".
Alternatively, the sample config file <tt>XF86Config.eg</tt> that is
installed in <tt>/usr/X11R6/lib/X11</tt> may be used as a starting point.
The <tt>XF86Setup</tt> utility is currently not usable, but work is
continuing in this area.
-The main changes are:
+The main changes are covered here, but please refer to the XF86Config
+manual page for more comprehensive information:
<itemize>
<item>The Module section is used to load server extension modules and
@@ -197,7 +267,10 @@ The main changes are:
instead of the usual Load keyword. The <tt>bitmap</tt> module
is the only font module that is loaded by default. No server
extensions are loaded by default, but some are built-in to the
- server. The following example shows how to load all the server
+ server. It is strongly recommended that the extension module
+ containing a range of small miscellaneous extensions (<tt>extmod</tt>)
+ be loaded because some commonly used things won't work correctly
+ without it. The following example shows how to load all the server
extensions plus the Type1 and TrueType fonts support, and a
commented example that shows how to pass options to an extension
(this one is for loading the misc extensions (<tt>extmod</tt>)
@@ -252,7 +325,7 @@ EndSection
specified.
Note: the value must always be enclosed in double quotes
- (<tt>"</tt>).
+ (<tt>"</tt>), even when it is numerical.
<item>The ServerFlags section now accepts its parameters as Options
instead of as special keywords. The older keyword format is
@@ -267,16 +340,17 @@ EndSection
Option "blank time" "10"
Option "standby time" "20"
Option "suspend time" "30"
- Option "off time" "60"
+ Option "off time" "40"
</verb></quote>
<item>The Keyboard, Pointer and XInput sections have been replaced by a
more general InputDevice section. The old Keyboard and Pointer
sections are still recognised for compatibility purposes, but
they are deprecated and support for them may be dropped in future
- releases. The keywords from the old sections are expressed as
- Options in the InputDevice sections. The following example shows
- typical InputDevice sections for the core mouse and keyboard.
+ releases. The old XInput sections are no longer recognised.
+ The keywords from the old sections are expressed as Options in
+ the InputDevice sections. The following example shows typical
+ InputDevice sections for the core mouse and keyboard.
<quote><verb>
Section "InputDevice"
@@ -292,27 +366,32 @@ Section "InputDevice"
Driver "mouse"
Option "Protocol" "PS/2"
Option "Device" "/dev/mouse"
- SampleRate 80
+ Option "SampleRate" "80"
EndSection
</verb></quote>
+<!-- what is this doing in the middle of information about the config file??
+j
Note: Additional sample rates have been added for some mice.
Matching the mouse sampling rate with the vertical refresh
rate can yield very noticeable improvements in smoothness of
pointer event driven operations such as window moves and
scrolling.
-
+-->
<item>The Monitor section is mostly unchanged. The main difference is
that a set of VESA modes is defined internally in the server,
and so for most monitors, it isn't necessary to specify any modes
- explicitly in the Monitor section. The Monitor section may also
+ explicitly in the Monitor section. There is also a new Modes section
+ that can be used to define a set of modes separately from the
+ Monitor section, and the Monitor section may "include" them
+ with the "<tt>UseModes</tt>" keyword. The Monitor section may also
include Options. Options that are monitor-specific, like the
<tt>"DPMS"</tt> and <tt>"Sync on Green"</tt> options are best
specified in the Monitor sections.
<item>The Device sections are mostly unchanged. The main difference
- is the new (and mandatory) Driver keyword, that specifies which
+ is the new (and mandatory) Driver keyword that specifies which
video driver should be loaded to drive the video card. Another
difference is the BusID keyword that is used to specify which of
possibly multiple video cards the Device section is for. The
@@ -352,14 +431,15 @@ Section "ServerLayout"
EndSection
</verb></quote>
- See the document xc/programs/Xserver/hw/xfree86/doc/DESIGN for a
- more detailed explanation of the new ServerLayout section syntax.
+See the XF86Config man page for a more detailed explanation of the format
+of the new ServerLayout section.
</itemize>
The config file search patch has been extended, with the directories
-<tt>/etc/X11</tt> and <tt>/usr/X11R6/etc</tt> being added.
+<tt>/etc/X11</tt> and <tt>/usr/X11R6/etc/X11</tt> being added. The full
+search path details are documented in the XF86Config manual page.
<sect1>Command Line Options
@@ -458,17 +538,15 @@ The following new X server command line options have been added:
<tt>-logfile</tt> <it>file</it>
<quote><p>
This specifies the log file name. When specified here, it
- overrides the value specified in the config file. This option
- is only available when the server is started by the <tt>root</tt>
- user.
+ overrides the default value. This option is only available when
+ the server is started by the <tt>root</tt> user.
</quote>
<tt>-scanpci</tt>
<quote><p>
This specifies that the <tt>scanpci</tt> module should be loaded and
- executed. This does a scan of the PCI bus. This option is only
- available when the server is started by the <tt>root</tt> user.
+ executed. This does a scan of the PCI bus.
</quote>
@@ -521,17 +599,17 @@ XAA module.
Some multi-head configurations are supported in this release, primarily
with multiple PCI/AGP cards. However, this is an area that is still
being worked on, and we expect that the range of configurations for which
-it works well will increase in future snapshots. A configuration that
+it works well will increase in future releases. A configuration that
is known to work well in most cases is multiple (supported) Matrox cards.
One of the main problems is with drivers not sufficiently initialising
-cards that were not initialised at boot time. Normally only the primary
-video card gets initialised at boot time. Some combinations can be made
-to work better by changing which card is the primary card (either by
-using a different PCI slot, or by changing the system BIOS's preference for
-the primary card). We are investigating options for ``soft-booting''
-secondary video cards to deal with this problem, and we've had some very
-encouraging results.
+cards that were not initialised at boot time. This has been improved
+somewhat with the INT10 support that is used by most drivers (which
+allows secondary card to be "soft-booted", but in some cases there are
+other issues that still need to be resolved. Some combinations can be
+made to work better by changing which card is the primary card (either
+by using a different PCI slot, or by changing the system BIOS's preference
+for the primary card).
<sect1>Xinerama
<p>
@@ -545,15 +623,11 @@ an 8-bit screen together with a 16-bit screen in Xinerama mode.
Xinerama is not enabled by default, and can be enabled with the
<tt>+xinerama</tt> command line option for the X server.
-Xinerama was included with X11R6.4. The version included in this snapshot
-contains many bug fixes. This is an area that we are still working on, and
-we expect it to be improved further in future snapshots.
+Xinerama was included with X11R6.4. The version included in this release
+was completely rewritten for improved performance and correctness.
Known problems:
<itemize>
- <item>It appears that there are still some bugs that cause unexpected
- behaviour from time to time.
-
<item>Most (all?) window managers are not Xinerama-aware, and so some
operations like window placement and resizing might not behave
in an ideal way. This is an issue that needs to be dealt with
@@ -562,10 +636,11 @@ Known problems:
</itemize>
-<!--
<sect1>XVideo extension
<p>
--->
+
+The XVideo extension is included in this release, but nobody seems
+interested in writing up some information about it.
<sect1>DGA version 2
<p>
@@ -573,82 +648,58 @@ Known problems:
DGA 2.0 is nearly completed but still not implemented by all drivers.
Preliminary documentation for the client libraries can be found in the
xc/programs/Xserver/hw/xfree86/DGA document. Some degree of backwards
-compatibility with version 1.0 is provided.
+compatibility with version 1.0 is provided. This information is out of date.
<sect1>DDC
<p>
-The VESA(R) Display Data Channel (DDC&trade;) standard (related to, but
-separate from, the VESA(R) Plug and Display standard) allows the
-monitor to tell the video card (or on some cases the computer
-directly) about itself; particularly the supported screen resolutions
-and refresh rates.
-
-Partial or complete DDC support is available in the following hardware modules:
-<itemize>
- <item>APM
- <item>Chips
- <item>Cirrus
- <item>Glint
- <item>MGA
- <item>Neomagic
- <item>S3 ViRGE
- <item>SIS
- <item>Trident
-</itemize>
+The VESA(R) Display Data Channel (DDC&trade;) standard allows the monitor
+to tell the video card (or on some cases the computer directly) about
+itself; particularly the supported screen resolutions and refresh rates.
-DDC is enabled by default, but can be disabled
-with a "Device" section entry:
-<tt>Option "NoDDC"</tt>.
-We have support for DDC versions 1 and 2; these can be disabled independently
-with <tt>Option "NoDDC1"</tt> and <tt>Option "NoDDC2"</tt>.
+Partial or complete DDC support is available in most of the video drivers.
+DDC is enabled by default, but can be disabled with a "Device" section
+entry: <tt>Option "NoDDC"</tt>. We have support for DDC versions 1
+and 2; these can be disabled independently with <tt>Option "NoDDC1"</tt>
+and <tt>Option "NoDDC2"</tt>.
At startup the server prints out DDC information from the display,
-but it does not yet use it the determine modelines.
+but it does not yet use it the determine modelines. For some drivers,
+the X server's new <tt>-configure</tt> option uses the DDC information
+when generating the config file.
Changed behavior caused by DDC. Several drivers uses DDC information to
-set the monitor gamma (brightness) curve, and the screen size and
-pitch.
-<itemize>
- <item>The gamma is particularly noticeable; every monitor I have tried has
- a gamma setting >&nbsp;2, which means that the picture is much
- lighter than under 3.3.x or without DDC. To revert to the previous
- behavior put
-
- <tscreen>
-Gamma 1.0 1.0 1.0
- </tscreen>
-
- in the appropriate "Monitor" section of the config file.
+set the screen size and pitch. This can be overridden by explicitly
+resetting it to the and non-DDC default value 75 with the <tt>-dpi
+75</tt> command line option for the X server, or by specifying appropriate
+screen dimensions with the "DisplaySize" keyword in the "Monitor" section
+of the config file.
- <item>Similarly, you can override the DDC probed "dpi" value by explicitly
- resetting it to the 3.3.x and non-DDC default value 75 with the
- <tt>-dpi 75</tt> command line option for the X server, or by
- specifying appropriate screen dimensions with the "DisplaySize"
- keyword in the "Monitor" section of the config file.
-
-</itemize>
<sect1>GLX and the Direct Rendering Infrastructure (DRI)
<p>
<url name="Precision Insight" url="http://www.precisioninsight.com">
has been provided with funding and support from <url name="Red Hat"
-url="http://www.redhat.com"> and <url name="SGI" url="http://www.sgi.com">
-to integrate the GLX extension for 3D rendering in an X11 window. The
-3D core rendering component is the <url name="Mesa"
-url="http://www.mesa3d.org"> library. SGI has released the sources to
-the extension framework under an open license, which essentially provides
-the glue between the 3D library and this windowing system. Precision
-Insight has integrated these components into this XFree86 X Server and
-added a Direct Rendering Infrastructure. Direct Rendering provides a
-highly optimized path for sending 3D data directly to the graphics
-hardware. This release <url name="demonstrates a sample implementation
-of direct rendering" url="http://www.precisioninsight.com/demo.html">
-by providing a single path of 3D hardware accelerated rendering for
-the GMX2000 and 3dfx voodoo graphics cards. Future releases will support
-much broader implementations of hardware accelerated direct rendering on
-a wide range of 3D capable graphics devices.
+url="http://www.redhat.com">, <url name="SGI" url="http://www.sgi.com">,
+<url name="3Dfx" url="http://www.3dfx.com">, <url name="Intel"
+url="http://www.intel.com">, <url name="ATI" url="http://www.ati.com">,
+and <url name="Matrox" url="http://www.matrox.com"> to integrate the GLX
+extension for 3D rendering in an X11 window. The 3D core rendering
+component is the <url name="Mesa" url="http://www.mesa3d.org"> library.
+SGI has released the sources to the GLX extension framework under an
+open license, which essentially provides the glue between the 3D
+library and this windowing system. Precision Insight has integrated
+these components into the XFree86 X Server and added a Direct Rendering
+Infrastructure (DRI). Direct Rendering provides a highly optimized
+path for sending 3D data directly to the graphics hardware. This
+release provides a complete implementation of direct rendering support
+for the 3Dfx Banshee and Voodoo3 graphics cards. Additional direct
+rendering drivers will be available for 3Dfx, Intel, ATI and Matrox
+boards during the second quarter of 2000. Updated information on DRI
+compatible drivers can be found at the <url name="DRI Project"
+url="http://dri.sourceforge.net"> on <url name="SourceForge"
+url="http://www.sourceforge.net">.
<sect1>X-Video Extension (Xv)
<p>
@@ -664,7 +715,7 @@ by the Matrox G200/G400 cards at the moment.
<p>
The XFree86-Misc extension has not been fully ported to the new server
-architecture yet. This should be completed in a future snapshot.
+architecture yet. This should be completed in a future release.
The XFree86-VidModeExtension extension has been updated, and mostly
ported to the new server architecture. The area of mode validation
@@ -673,7 +724,7 @@ extension has support for changing the gamma setting at run-time, for
modes where this is possible. The new <tt>xgamma</tt> utility makes
use of this feature. Compatibility with the 3.3.x version of the
extension is provided. The missing parts of this extension and some
-new features should be completed in a future snapshot.
+new features should be completed in a future release.
<sect1>Drivers
@@ -692,7 +743,7 @@ XFree86 &relvers; includes the following drivers:
<tabrow><tt>cyrix</tt> (*)<colsep>Cyrix MediaGX</tabrow>
<tabrow><tt>fbdev</tt><colsep>Linux fbdev</tabrow>
<tabrow><tt>glide</tt><colsep>Glide2x (3Dfx)</tabrow>
- <tabrow><tt>glint</tt><colsep>3Dlabs</tabrow>
+ <tabrow><tt>glint</tt><colsep>3Dlabs, TI</tabrow>
<tabrow><tt>i740</tt><colsep>Intel i740</tabrow>
<tabrow><tt>i810</tt><colsep>Intel i810</tabrow>
<tabrow><tt>mga</tt><colsep>Matrox</tabrow>
@@ -716,28 +767,13 @@ but are not complete and/or stable yet.
<sect2>APM <label id="apm">
<p>
-It's the driver for Alliance AT3D/AT25 and AT24 chips. There is a rather
+This is the driver for Alliance AT3D/AT25 and AT24 chips. There is a rather
complete support for the functions with acceleration at 8,15,16,24 and 32 bits
(limited by the chip at 24bpp). There is preliminary, still buggy, support
for the AP6422 chip, which is still supported in 3.3.x servers. The Xv driver
is almost ok. The Rush extension for glide2x works, with some additions,
including overlay of the result. DGA and DGA2 have been tested ok.
-
-Main useful options:
-<descrip>
-<tag>SetMclk</tag>
- to set the memory clock (default should be OK).
-<tag>SWCursor</tag>
- to force the software cursor.
-<tag>HWCursor</tag>
- to force the hardware cursor.
-<tag>NoAccel</tag>
- to disable (XAA) acceleration.
-<tag>ShadowFB</tag>
- to enable shadow framebuffer operation (the rendering is done in
- system memory and then copied to the framebuffer, useful when
- acceleration is disabled).
-</descrip>
+Further information can be found in <htmlurl name="README.apm" url="apm.html">.
<sect2>Chips &amp; Technologies
<p>
@@ -748,7 +784,7 @@ name="README.chips" url="chips.html">.
<sect2>s3virge
<p>
-The s3virge driver is a port of the 3.3.3.1 SVGA S3 ViRGE driver. As
+The s3virge driver is a port of the 3.3.x SVGA S3 ViRGE driver. As
such it should be as stable and functional as previous XFree86
releases. There are a couple additional benefits included primarily due
to common enhancements:
@@ -762,6 +798,9 @@ to common enhancements:
<item>Multi-head is reported to work.
<item>The <tt>s3virge</tt> man page lists options and has configuration
notes for this release of the driver.
+ <item>Trio 3D and Trio 3D/2X support has been added, matching the 3.3.6
+ driver.
+ <item>Supports screen rotation and shadow framebuffer.
</itemize>
@@ -771,6 +810,9 @@ Outstanding items not implemented or fully tested:
<item>DGA support is implemented, but preliminary and untested.
</itemize>
+Further information can be found in <htmlurl name="README.s3virge"
+url="s3virge.html">.
+
<sect2>TGA
<p>
@@ -784,13 +826,12 @@ information.
The MGA driver supports the same range or hardware as XFree86 3.3.4,
but has a number of enhancements including multi-head support and
-support for overlays (8-bit + 24-bit).
+support for (non-destructive) overlays (8-bit + 24-bit).
Option <tt>"overlay"</tt> when the server is started in 32bpp
(<tt>-fbbpp&nbsp;32</tt>) will enable the 8+24 mode. The current
implementation doesn't optimize away unnecessary exposures yet so the
-performance of this option will be better in future snapshots. The
-option is not supported on the G100 due to a missing hardware feature.
+performance of this option will be better in future release.
By default, the color key for the overlays is 255, but this can be
changed with the <tt>"ColorKey"</tt> option to work around problems in
specific programs. Valid values for the key are 2-255.
@@ -807,15 +848,13 @@ Further information can be found in the <tt>mga</tt> man page.
Information about the ATI driver can be found in <url name="README.ati"
url="ati.html">. The current version is not accelerated. Acceleration
-support is planned for a future snapshot.
+support is planned for a future release.
<sect2>NVIDIA
<p>
The "nv" driver supports all Riva TNT accelerators as well as the
-new GeForce and Quadro accelerators. 3.9.17 adds DGA 2.0 support
-and performance improvements as well as resolving some rendering
-correctness issues.
+new GeForce and Quadro accelerators. DGA 2.0 support is included.
Further information can be found in the nv man page.
@@ -842,6 +881,18 @@ reading this man page.
For Voodoo Banshee and Voodoo 3 boards or later: Please use the tdfx
driver which talks directly to the hardware and is much faster.
+<sect2>GLINT <label id="glint">
+<p>
+
+The "glint" driver supports most 3Dlabs/Texas Instruments GLINT/Permedia
+chips. There is a rather complete support (better than in 3.3.x) for
+acceleration at 8, 15, 16, and 24 bit depths (limited by some chips at
+some depths). 8+24 overlay is supported. The Xv extension is supported
+for some boards.
+
+Further information about this driver can be found in the 'glint' driver
+man page.
+
<sect>X libraries and clients
<p>
@@ -903,11 +954,13 @@ New features:
</itemize>
- <item>This snapshot shows the current state of the work to add to the Xaw
+<!-- is this still true?
+ <item>This release shows the current state of the work to add to the Xaw
text widget WYSIWYG capabilities. The state is very initial, and
can be seen as a candidate to a candidate to a very early alpha
snapshot. There is no public interface for programming yet, because
the current one is very likely to change before ready to use.
+-->
</itemize>
@@ -1177,15 +1230,17 @@ version of xedit. These include:
</itemize>
<item>A first tentative to add programming modes was done. Currently, there
- are two modes:
+ is one mode:
<itemize>
<item><bf>C-mode:</bf> this mode is expected to be stable, and fully
usable.
+<!-- This was removed, right?
<item><bf>Html-mode:</bf> a lot of work needs to be done yet. It is
included in this snapshot only to show what the new text widget
capabilities can do.
+-->
</itemize>
</itemize>
@@ -1235,17 +1290,36 @@ encoding modules.
The glyph metrics array, which all the X clients using a particular font
have access to, is now placed in shared memory, so as to reduce redundant
memory consumption. For non-local clients, the glyph metrics array is
-trasmitted in a compressed format.
+transmitted in a compressed format.
-<sect1>Unicode support
+<sect1>Unicode/ISO 10646 support
<p>
What is included:
<itemize>
- <item>ISO 10646-1 extension of ``fixed'' BDF fonts added that cover
- over 2000 characters including all Latin, Greek, Cyrillic,
- Armenian, and Gregorian characters, plus numerous scientific
- and technical symbols (further fonts are under preparation).
+ <item>All ``-misc-fixed-*'' BDF fonts are now available in the
+ ISO10646-1 encoding and cover at least the 614 characters
+ found in ISO 8859-{1-5,7-10,14,15}, CP1252, and MES-1. The
+ non-bold fonts also cover all Windows Glyph List 4 (WGL4)
+ characters, including those found in all 8-bit MS-DOS/Windows
+ code pages. The 8-bit variants of the ``-misc-fixed-*'' BDF
+ fonts (ISO8859-1, ISO8859-2, KOI8-R, etc.) have all been
+ automatically generated from the new ISO10646-1 master fonts.
+
+ <item>Some ``-misc-fixed-*'' BDF ISO10646-1 fonts now cover a
+ comprehensive Unicode repertoire of over 3000 characters
+ including all Latin, Greek, Cyrillic, Armenian, Gregorian,
+ Hebrew, IPA, and APL characters, plus numerous scientific,
+ typographic, technical, and backwards-compatibility
+ symbols. Some of these fonts also cover Arabic, Ethiopian,
+ Thai, Han/Kanji, Hangul, full ISO 8859, and more. For the 6x13
+ font there is now a 12x13ja Kanji extension and for the 9x18
+ font there is a 18x18ja Kanji/Han/Hangul extension, which
+ covers all ISO-2022-JP-2 (RFC 1554) characters. The 9x18 font
+ can also be used to implement simple combining characters by
+ accent overstriking. For more information, read Markus Kuhn's
+ <url name="UTF-8 and Unicode FAQ"
+ url="http://www.cl.cam.ac.uk/~mgk25/unicode.html">.
<item>Mark Leisher's ClearlyU proportional font (similar to Computer
Modern).
@@ -1262,19 +1336,39 @@ What is included:
Known problems:
<itemize>
- <item>Xlib does not yet support UTF-8 as a locale, which means that
+ <item>Xlib does not yet fully support UTF-8 as a locale, which means that
xterm UTF-8 keyboard support is at the moment a temporary hack.
- <item>ISO 10646-1 cell-spaced fonts such as ``fixed'' work nicely, but
- mono-spaced and proportional fonts are handled inefficiently
- by the X protocol, resulting in metrics for 64k glyphs even if
- only 2000 glyphs are used.
+ <item>Most ISO10646-1 fonts encode no characters above U+31FF. This
+ avoids the inefficient allocation and transmission of a
+ >700 kB large XFontStruct structure, which would happen if the
+ (not very important) ligatures and symbols above U+f000 were
+ present.
+
+ <item>ISO 10646 Level 2 combining characters are not yet supported by
+ xterm (will be needed for instance for Thai and IPA).
- <item>ISO 10646 Level 2 combining characters not yet supported by
- xterm (will be needed for instance for the Thai script).
+ <item>Switching between a half-width and full-width font pair (such
+ as 9x18 and 18x18ja) is not yet supported by xterm (will be
+ needed for CJK scripts).
</itemize>
+<sect1>Lucidux fonts from Bigelow and Holmes
+<p>
+
+XFree86 now includes the ``Lucidux'' family of professionally hinted
+Type 1 fonts. This family consists of the fonts ``Lucidux Serif'',
+``Lucidux Sans'' and ``Lucidux Mono'' in Roman and oblique variants,
+and includes over 370 glyphs in each font covering among others the
+glyphs needed for ISO 8859-1, 2, 3, 4, 9 and 15. Bold variants will be
+included in a future release. The design and font outlines were donated
+by Charles Bigelow and Kris Holmes from Bigelow and Holmes Inc., and
+the hinting was donated by Berthold Horn and Blenda Horn from Y&amp;Y, Inc.
+For more information, please contact
+<email>design@bigelowandholmes.com</email> or
+<email>sales@yandy.com</email>, or consult <url name="Y&amp;Y's web site"
+url="http://www.yandy.com">.
<sect>Miscellaneous
<p>
@@ -1283,11 +1377,16 @@ Known problems:
<p>
Some changes to the installed XFree86 directory structure have been
-planned for 4.0. Not all of these changes have been implemented in this
-snapshot, and they will appear in a future snapshot. One important
-change that has been implemented is a modified search path for the X
+implemented for 4.0.
+One important
+change is a modified search path for the X
server's <tt>XF86Config</tt> file. The details of this can be found
-above in the <ref id="config" name="Configuration File"> section.
+in the XF86Config manual page. The other main change is moving
+most of the run-time configuration files to <tt>/etc/X11</tt>, with
+symbolic links in the old <tt>/usr/X11R6/lib/X11</tt> location pointing
+to the new location. Some run-time generated files are now located
+under the appropriate subdirectories of <tt>/var</tt>, again with the
+relevant symbolic links in the old location.
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml
index 745190cb5..58d11cefa 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml
@@ -6,11 +6,11 @@
<!-- Title information -->
<title>Information for SiS Users
-<author>Juanjo Santamarta (<it>santamarta@ctv.es</it>)
-<date>17 April 1999
+<author>Juanjo Santamarta (<email>santamarta@ctv.es</email>)
+<date>5 March 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml,v 3.6 1999/10/13 04:21:08 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/SiS.sgml,v 3.7 2000/03/06 22:59:24 dawes Exp $
</ident>
<!-- Table of contents -->
@@ -30,6 +30,7 @@ The driver supports :
<item>XAA support (XFree86 Acceleration Architecture)
</itemize>
+<!-- this is incorrect
<sect> Supported chips <p>
<quote>
@@ -40,14 +41,13 @@ This driver needs linear framebuffer support in the card. Because this
SiS 86C201 and 86C202 based cards don't work with this driver.
Color expansion is not supported by the engine in 16M-color graphic mode.
+-->
<sect> XF86Config Options <p>
-The following options are of particular interest for the SiS driver. Each of
-them must be specified in the `svga' driver section of the XF86Config file,
-within the Screen subsections of the depths to which they are applicable
-(you can enable options for all depths by specifying them in the Device
-section).
+The following options are of particular interest for the SiS
+driver. Each of them must be specified in the Device section of the
+XF86Config file for this card.
<descrip>
<tag>Option "SetMclk"</tag>
@@ -62,6 +62,7 @@ section).
This option lets you to modify the maximum allowed dotclock).
<tag>Option "sw_cursor", "hw_cursor"</tag>
The default is for using the hardware cursor.
+<!-- Which of these chips is even supported? -->
<tag>Option "Turboqueue"</tag>
5597/8 and 6326 have the option to extend the engine command queue on
VRAM. With extended queue length, the driver only checks queue status
@@ -75,6 +76,17 @@ section).
Enables 1 cycle memory access. Try it. Increased memory bandwidth reduces
the possibility of glitches and noise on high resolution modes.
+<tag>Option "PciRetry"</tag>
+
+<tag>Option "NoAccel"</tag>
+ Disables various hardware accelerations.
+
+<tag>VideoRAM size</tag> The SiS chips can only directly address 4096K
+ bytes of video RAM. Some video cards using these chips are
+ shipped with additional video RAM. The videoRAM must be
+ explicitly limited to 4096 for those cards. Attempting to use
+ the additional RAM leads to a variety of scrambled screen
+ artifacts.
</descrip>
@@ -106,8 +118,10 @@ driver you'll need to consider several points:
<sect> Troubleshooting <p>
+<!-- don't have XF86Setup for 4.0
The generic VGA driver don't work with 6326, so XF86Setup can't be used
for this card. Please use xf86config instead.
+-->
Some video modes with high dot-clocks don't work at all, resulting on black
screen. Lowering dotclock in that case could solve the problem.
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml
index ce35a4d0e..36f767175 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml
@@ -6,10 +6,10 @@
<title>Driver Status for XFree86&trade; &relvers;
<author>The XFree86 Project, Inc
-<date>12 February 2000
+<date>3 March 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml,v 1.13 2000/02/21 22:29:08 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml,v 1.15 2000/03/03 21:28:10 dawes Exp $
</ident>
<abstract>
@@ -89,7 +89,6 @@ dependencies/limitations, other architectures known to work on
Support (including acceleration?) for the AT24, AT25 and AT3D.
This support is provided by the "apm" driver. This driver
currently has only incomplete support for the AP6422.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
The AP6422 is supported in &legacyvers; but not fully in
@@ -109,7 +108,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No ARK Logic chips are supported in &relvers;.
@@ -161,7 +159,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old drivers
have not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Avance Logic chips are supported in &relvers;.
@@ -203,7 +200,6 @@ dependencies/limitations, other architectures known to work on
Support (accelerated) for the Alpine (5430, 5434, 5436, 5446,
5480), and Laguna (5462, 5464, 5465) chips is provided by the
"cirrus" driver.
- NEED TO CHECK IF THE OTHERS WILL WORK WITH fbdev.
<tag>Summary:</tag>
The following chips are supported in &legacyvers; but not in
@@ -249,7 +245,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
A preliminary port of the driver is available, but it isn't
ready for widespread use.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Cyrix chips are well-supported in &relvers;.
@@ -266,7 +261,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for this chipset, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Epson chips are supported in &relvers;.
@@ -285,7 +279,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for this chipset, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Genoa chips are supported in &relvers;.
@@ -328,7 +321,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No IIT chips are supported in &relvers;.
@@ -347,12 +339,13 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
Support (accelerated) for the Intel i740 is provided by the
- "i740" driver. The i810 driver has not yet been ported and/or
- contributed.
+ "i740" driver, and support for the Intel i810 is provided by
+ the "i810" driver. The "i810" driver is currently Linux-only,
+ and requires the agpgart.o kernel module.
<tag>Summary:</tag>
- The i740 is supported in both version, but the i810 is not supported
- in &relvers; or on non-Linux/x86 platforms.
+ The i740 and i810 are supported in both versions, but the i810 is
+ only supported on Linux/x86 platforms at present.
</descrip>
@@ -387,7 +380,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for this chipset, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No MX (???) chips are supported in &relvers;.
@@ -406,7 +398,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for this chipset, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No NCR chips are supported in &relvers;.
@@ -462,7 +453,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Number Nine chips are supported in &relvers;.
@@ -480,7 +470,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Oak chips are supported in &relvers;.
@@ -500,7 +489,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Paradise/Western Digital chips are supported in &relvers;.
@@ -519,7 +507,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No RealTek chips are supported in &relvers;.
@@ -587,9 +574,8 @@ dependencies/limitations, other architectures known to work on
there are some problems with it in this version.
<tag>Summary:</tag>
- Support for the older (CHECK: are they all older than the
- supported chips?) chips: 86C201, 86C202 and 620,
- is only available in &legacyvers;.
+ Support for the 86C201, 86C202, 86C215, 86C225, 5597 and 5598
+ is currently only available in &legacyvers;.
</descrip>
@@ -604,7 +590,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No SMI chips are supported in &relvers;.
@@ -632,7 +617,6 @@ dependencies/limitations, other architectures known to work on
Cyber9397, Cyber9520, Cyber9397/DVD, Cyber9525/DVD, 3DImage975,
3DImage875, Blade3D, CyberBlade/i7, CyberBlade/DSTN/i7 and
CyberBlade/i1 is provided by the "trident" driver.
- NEED TO CHECK IF THE OTHERS WILL WORK WITH fbdev.
<tag>Summary:</tag>
The following (older) chipsets that are supported in &legacyvers;
@@ -676,7 +660,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old driver
has not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Video 7 chips are supported in &relvers;.
@@ -694,7 +677,6 @@ dependencies/limitations, other architectures known to work on
<tag>&relvers;:</tag>
No native support for these chipsets, because the old drivers
have not been ported.
- NEED TO CHECK IF THESE CARDS WILL WORK WITH fbdev.
<tag>Summary:</tag>
No Weitek chips are supported in &relvers;.
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml
index 019afa017..e9f8c6747 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml
@@ -1196,7 +1196,7 @@ Here is a copy of modeplot:
#
# Do `modeplot -?' to see the control options.
#
-# ($Id: VidModes.sgml,v 1.1.1.2 2000/02/22 15:43:16 kem Exp $)
+# (Id: video-modes.sgml,v 1.2 1997/08/08 15:07:24 esr Exp $)
# Monitor description. Bandwidth in MHz, horizontal frequencies in kHz
# and vertical frequencies in Hz.
@@ -1235,7 +1235,7 @@ output can be redirected to a printer. See gnuplot(1) for details.
The modeplot tool was created by Eric S. Raymond <esr@thyrsus.com> based on
analysis and scratch code by Martin Lottermoser <Martin.Lottermoser@mch.sni.de>
-This is modeplot $Revision: 1.1.1.2 $
+This is modeplot Revision: 1.2 $
EOF
exit;;
esac
@@ -1408,7 +1408,7 @@ mathematical analysis behind <TT>modeplot</TT>. The distributed
<TT>modeplot</TT> was redesigned and generalized by ESR from
Martin's original gnuplot code for one case.
<verb>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml,v 3.15 2000/01/24 19:38:29 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/VidModes.sgml,v 3.16 2000/02/23 20:30:16 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml
index 06aa60f9a..196c5b705 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml
@@ -1,20 +1,28 @@
-<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
<article>
<title> Information for Alliance Promotion chipset users
-<author> Henrik Harmsen (Henrik.Harmsen@erv.ericsson.se)
-<date> 23 February 1998
+<author> Loïc Grenié (<email>grenie@math.jussieu.fr</email>),
+ Henrik Harmsen (<email>Henrik.Harmsen@erv.ericsson.se</email>)
+<date> 6 March 2000
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml,v 1.3 2000/03/08 05:38:43 dawes Exp $
+</ident>
<toc>
<sect> Support chipsets
<p>
The apm driver in the SVGA server is for Alliance Promotion
-(www.alsc.com) graphics chipsets. The following chipsets are supported:
+graphics chipsets. The following chipsets are supported:
<itemize>
<item> 6422
- Old chipset without color expansion hardware (text accel).
+ Old chipset. The driver is still very unstable, including computer
+ crashes. You would prefer using XFree86 3.3.x for this chipset.
+
<item> AT24
@@ -22,9 +30,9 @@ The apm driver in the SVGA server is for Alliance Promotion
<item> AT25, AT3D
- AT3D is found in Hercules Stingray 128/3D. Most other Voodoo
- Rush based cards use the AT25 which is identical except it
- doesn't have the 3D stuff in it.
+ AT3D is found in Hercules Stingray 128/3D. Most other Voodoo
+ Rush based cards use the AT25 which is identical except it
+ doesn't have the 3D stuff in it.
</itemize>
<sect> Acceleration
@@ -36,27 +44,62 @@ SVGA server. It has support for the following acceleration:
<item> Bitblts (rectangle copy operation)
<item> Lines (solid, single pixel)
<item> Filled rectangles
-<item> CPU->Screen colour expansion (text accel). Not for 6422.
-<item> Hardware cursor
+<item> CPU->Screen image transfers.
+<item> CPU->Screen colour expansion (text accel).
+<item> Screen->Screen colour expansion (cached text accel).
+<item> Mono 8x8 pattern fill. Not for 6422.
+<item> Colour 8x8 pattern fill (in 8bpp). Not for 6422.
+<item> Hardware cursor.
+<item> Pixmap caching.
</itemize>
-All in 8, 16 and 32 bpp modes. No 24bpp mode is supported.
-Also VESA DPMS power save mode is fully supported with "standby",
+All in 8, 16 and 32 bpp modes. In 24bpp mode only Bitblts and Filled rectangles
+is supported. Also VESA DPMS power save mode is fully supported with "standby",
"suspend" and "off" modes (set with with the "xset dpms" command).
+<sect> DGA
+<p>
+Full DGA 2.0 support with framebuffer access and drawing acceleration.
+
+<sect> Video
+<p>
+A limited hardware support for video decoding on AT24 and AT25/3D. It can
+display an image in YUV colours inside the desktop. There are some more exotic
+formats (YUV 4.1.1, YUV 4.0.0, RGB 8,16.32bpp).
+
+<sect> Shadow framebuffer
+<p>
+There is a mode, called shadow framebuffer, where the graphics is only used
+to display the images. All rendering is done in memory in a so-called shadow
+framebuffer. This mode is useful if you need lots of reading in the video
+memory. You will have to put
+<verb>
+ Option "ShadowFB"
+</verb>
+
+in your XF86Config file.
+
<sect> Configuration
<p>
-First: Please run the XF86Setup program to create a correct
+First: Please run the xf86config program to create a correct
configuration.
You can turn off hardware cursor by inserting the following line in the
Device section of the XF86Config file:
-
- Option "sw_cursor"
+<verb>
+ Option "SWcursor"
+</verb>
Or turn off hardware acceleration:
-
+<verb>
Option "noaccel"
+</verb>
+
+Or turn off MMIO
+
+<verb>
+ Option "nolinear"
+</verb>
Please don't specify the amount of video RAM you have or which chipset
you have in the config file, let the driver probe for this. Also please
@@ -65,9 +108,14 @@ a fully programmable clock that can take (almost) any modeline you throw
at it. It might fail at some specific clock values but you should just
try a slightly different clock and it should work.
+<sect> glide2x
+<p>
+There is support for the XF86Rush extension for use with the glide2x library.
+
+<sect> Questions
+<p>
+Any questions regarding this driver should be sent to Loïc Grenié. It should
+be possible to add support for the 3210 chipset if someone needs it.
-<verb>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/apm.sgml,v 1.2 1999/08/23 06:18:33 dawes Exp $
-</verb>
</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml
index 170a1003a..cda9a90df 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml
@@ -6,12 +6,12 @@
<!-- Title information -->
<title> Information for Chips and Technologies Users
-<author> David Bateman (<it>dbateman@eng.uts.edu.au</it>),
- Egbert Eich (<it>Egbert.Eich@Physik.TH-Darmstadt.DE</it>)
+<author> David Bateman (<email>dbateman@club-internet.fr</email>),
+ Egbert Eich (<email>eich@xfree86.org</email>)
<date> 19th July 1999
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml,v 3.29 1999/08/28 11:18:16 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml,v 3.30 2000/03/05 16:59:11 dawes Exp $
</ident>
<!-- Table of contents -->
@@ -860,8 +860,8 @@ video processor beyond it capabilities won't cause damage.
If you are having driver-related problems that are not addressed by this
document, or if you have found bugs in accelerated functions, you can
try contacting the XFree86 team (the current driver maintainer can be
- reached at <it>dbateman@eng.uts.edu.au</it> or
- <it>Egbert.Eich@Physik.TH-Darmstadt.DE)</it>,
+ reached at <email>dbateman@club-internet.fr</email> or
+ <email>eich@xfree86.org</email>),
or post in the Usenet newsgroup "<it>comp.windows.x.i386unix</it>".
<sect> Disclaimer <p>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml
index 4da998ea0..a0861c91a 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml
@@ -1,14 +1,19 @@
-<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
<article>
<title>Information for Cyrix Chipset Users
<author>The XFree86 Project Inc.
-<date>22 June 1999
+<date>7 March 2000
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml,v 1.3 2000/03/08 05:38:43 dawes Exp $
+</ident>
<toc>
<sect>Supported hardware <p>
-This driver (as used in the SVGA (VGA256), VGA16 and VGA_Mono servers)
+This driver
supports a single chipset `mediagx' that should work on the following Cyrix
CPUs with integrated graphics:
@@ -20,62 +25,38 @@ CPUs with integrated graphics:
<sect>Features <p>
<itemize>
-<item>accelerated
-<item>hardware cursor
-<item>support color depths 1, 4, 8 and 16
+<item>Rather sparse (color depth hardcoded to 8)
</itemize>
<sect>XF86Config Option <p>
<descrip>
<tag>Option "sw_cursor"</tag>
-disable the hardware cursor.
+disable the hardware cursor. (Code not verified yet!)
<tag>Option "no_accel"</tag>
completely disables acceleration. Usually not recommended.
</descrip>
<sect>Bugs and Limitations<p>
<itemize>
+<item>As a first cut at the new design, known problems are everywhere.
+The console font is corrupted upon exit. The server seems stable if
+the virtual desktop and resolution size match. I found 1024x768 usable
+and that's why I released this version. Geeks can have fun with this
+but NEWBIES should use the 3.3.3.1 release instead!
<item>On some older chipsets, the driver may trigger an illegal instruction
just after probing for the ``scratchpad size''. If this is the case,
-email to hecker@cat.dfrc.nasa.gov with the output of
+email to <email>hecker@cat.dfrc.nasa.gov</email> with the output of
<verb>
-XF86_SVGA -probeonly -verbose
+XFree86 -probeonly -verbose
</verb>
and this will be fixed.
-<item>There are limitations to the modeline values that can be specified.
-Particularly, the difference between the first two horizontal
-timings (e.g. 640 656, 1024 1048) must be at least 16 and at most 24.
-The modeline values are not used in the 3.3.4 server since there is a
-static array used to load the registers. The modeline only identifies
-that a particular resolution is desired. The standard VESA modes up
-to 1280x768 are supported. For more specific information, consult
-the source code.
-<item>The 4 colour server is slow due to the VGA banking mode used.
-Moreover,
-it does not work the way it is run by XF86Setup, which is probably
-due to the timing limitations.
-<item>The 3.3.4 server MAY totally hang the machine at times. It is
-reported to be stable on a BSD platform using twm. It has crashed
-when using resolutions greater than 800x600 on a Linux (Debian
-based) system using wm as the window manager. The safest course is
-to use the 3.3.3.1 server instead. Efforts are under way to resolve
-this issue and provide a more robust server under the 4.x release.
-
</itemize>
<sect>Authors<p>
<itemize>
-<item>Annius Groenink <it>&lt;Annius.Groenink@cwi.nl&gt;</it>
-<item>Dirk Hohndel <it>&lt;hohndel@XFree86.org&gt;</it>
-<item>Brian Falardeau
-<item>Special thanks to Cyrix and Wyse for helping us with the development of
-this server. Brian, a Cyrix employee, made the 3.3.4 update possible since
-the new 4.0 server has been our top priority.
+<item>Richard Hecker <email>hecker@cat.dfrc.nasa.gov</email>
</itemize>
-<verb>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/cyrix.sgml,v 1.2 1999/08/23 06:18:33 dawes Exp $
-</verb>
</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent b/xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent
index 5f6b8135b..17c8c740f 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent
@@ -1,17 +1,25 @@
-<!-- $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent,v 1.7 2000/02/08 17:19:08 dawes Exp $ -->
+<!-- $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/defs.ent,v 1.11 2000/03/08 18:04:15 dawes Exp $ -->
<!-- shared entity definitions for the XFree86 documentation -->
<!-- XFree86 version string -->
-<!ENTITY relvers CDATA "3.9.18">
-<!ENTITY prevrelvers CDATA "3.9.17">
-<!ENTITY srcvers CDATA "3918">
-<!ENTITY prevsrcvers CDATA "3917">
+<!ENTITY relvers CDATA "4.0">
+<!ENTITY prevrelvers CDATA "3.9.18">
+<!ENTITY srcvers CDATA "400">
+<!ENTITY prevsrcvers CDATA "3918">
<!-- Version of the most recent 3.3.x release -->
<!ENTITY legacyvers CDATA "3.3.6">
-<!-- Swap these for the next snapshot -->
+<!-- SuperProbe version strings -->
+<!ENTITY spvers CDATA "2.22">
+<!ENTITY legacyspvers CDATA "2.21">
+
+<!-- These should be set according to which snapshot/release this is -->
<!ENTITY % firstsnap 'IGNORE'>
<!ENTITY % latersnap 'INCLUDE'>
-
+<!ENTITY % snapshot 'IGNORE'>
+<!ENTITY % release 'INCLUDE'>
+<!ENTITY % firstrel 'INCLUDE'>
+<!ENTITY % earlyrel 'INCLUDE'>
+<!ENTITY % laterrel 'IGNORE'>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml
index 871dffd4c..119cd0838 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml
@@ -6,18 +6,17 @@
<title>Fonts in XFree86
<author>Juliusz Chroboczek, <tt/Juliusz.Chroboczek@ens.fr/
-<date>14 February 2000</date>
+<date>5 March 2000</date>
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.6 2000/02/14 19:20:44 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.7 2000/03/06 22:59:25 dawes Exp $
</ident>
<toc>
-<p>This version of XFree86 includes a number of improvements to the
-handling of fonts, including
+<p>XFree86 contains a number of improvements related to fonts, including
<itemize>
-<item> new Unicode-encoded bitmap fonts;
+<item> inclusion of new fonts;
<item> internationalisation of the scalable font backends (Type 1, Speedo,
and TrueType);
<item> support for TrueType fonts;
@@ -113,14 +112,16 @@ When used in X11, Unicode-encoded fonts should have the last two
fields of their XLFD set to `<tt/iso10646-1/'.
-<sect>Unicode-encoded bitmap fonts
+<sect>New fonts
+
+<sect1>Bitmap fonts
<p>XFree86 includes two new Unicode-encoded fonts with a large
collection of non-ideographic glyphs. While it is possible to use
these fonts as main fonts, applications may also use them as fallbacks
when a given glyph is not available in the current font.
-<sect1>The Unicode `fixed' font
+<sect2>The Unicode `fixed' font
<p>The font file
<tscreen>
@@ -151,7 +152,7 @@ with XLFD
The standard aliases `<tt/fixed/' and `<tt/6x13/' still point at the
ISO&nbsp;8859-1 versions of the font.
-<sect1>The ClearlyU Unicode font
+<sect2>The ClearlyU Unicode font
<p>The ClearlyU font set of fonts provides a set of 12pt, 100dpi
proportional fonts with many of the glyphs needed for Unicode text.
@@ -173,6 +174,47 @@ Additional ClearlyU fonts include
<p>-mutt-ClearlyU&nbsp;PUA-medium-r-normal--17-120-100-100-p-111-iso10646-1
</tscreen>
+<sect1>Scalable fonts
+
+<p>XFree86 includes the ``Lucidux'' family of Type&nbsp;1 fonts. This
+family consists of the fonts ``Lucidux Serif'', with XLFD
+<tscreen>
+-b&amp;h-lucidux serif-medium-*-normal--*-*-*-*-p-*-*-*
+</tscreen>
+``Lucidux Sans'', with XLFD
+<tscreen>
+-b&amp;h-lucidux sans-medium-*-normal--*-*-*-*-p-*-*-*
+</tscreen>
+and ``Lucidux Mono'', with XLFD
+<tscreen>
+-b&amp;h-lucidux mono-medium-*-normal--*-*-*-*-m-*-*-*
+</tscreen>
+Each of these fonts currently comes in Roman and oblique variants
+(bold variants will be included in a future release) and has 337
+glyphs covering the basic ``ASCII'' glyph set, the Latin&nbsp;1 glyph
+set, as well as the ``Extended Latin'' glyph set. In particular,
+these fonts include all the glyphs needed for ISO&nbsp;8859 parts 1,
+2, 3, 4, 9 and 15.
+
+The Lucidux fonts are original designs by Charles Bigelow and Kris
+Holmes. Lucidux fonts include seriffed, sans-serif, and monospaced
+styles which share the same stem weight, x-height, capital height,
+ascent and descent. Lucidux fonts harmonise with Lucida (R) fonts of
+the same vertical proportions and weights. The character width
+metrics of Lucidux roman fonts match those of core fonts bundled with
+several window systems.
+
+Each PFA file has a copy of the license terms in PS comment lines.
+The license terms are also included in the file <tt/COPYRIGHT.BH/ for
+convenience, and in the <htmlurl name="License document" url="LICENSE.html">.
+
+The design and font outlines were donated by Charles Bigelow and
+Kris Holmes from Bigelow and Holmes Inc., and the hinting was donated
+by Berthold Horn and Blenda Horn from Y&amp;Y, Inc. For more information,
+please contact <email/design@bigelowandholmes.com/ or
+<email/sales@yandy.com/, or consult <url name="Y&amp;Y's web site"
+url="http://www.yandy.com">.
+
<sect>Internationalisation of scalable font backends.
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml
index 8bb8fe369..3c978ae80 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml
@@ -1,25 +1,30 @@
-<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN">
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
<article>
<title>Information for i740 Users
<author>Precision Insight, Inc.
<date>18 February 1999
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml,v 1.3 2000/03/04 00:26:30 dawes Exp $
+</ident>
<toc>
<sect>Supported Hardware
<p>
<itemize>
- <item>Intel 740 based cards
+ <item>Intel 740 based cards.
</itemize>
<sect>Features
<p>
<itemize>
- <item>Full support for 8, 15, 16, 24 and 32 bit per pixel depths.
+ <item>Full support for 8, 15, 16, and 24 bit pixel depths.
<item>Hardware cursor support to reduce sprite flicker.
<item>Hardware accelerated 2D drawing engine support for 8, 15, 16 and
- 24 bit per pixel depths.
+ 24 bit pixel depths.
<item>Support for high resolution video modes up to 1600x1200.
<item>Support for doublescan video modes (e.g., 320x200 and 320x240).
<item>Support for gamma correction at all pixel depths.
@@ -31,7 +36,8 @@
<sect>Technical Notes
<p>
<itemize>
- <item>Hardware acceleration is not possible in 32 bit per pixel depth.
+ <item>Hardware acceleration is not possible when using the framebuffer
+ in 32 bit per pixel format.
<item>Interlace modes cannot be supported.
</itemize>
@@ -87,10 +93,11 @@ initialize the card. The only lines you need in the "Device"
section of your XF86Config file are:
<verb>
Section "Device"
- Identifier "i740"
+ Identifier "Intel i740"
+ Driver "i740"
EndSection
</verb>
-or let xf86config or XF86Setup do this for you.
+or let <tt>xf86config</tt> do this for you.
However, if you have problems with auto-detection, you can specify:
<itemize>
@@ -104,11 +111,13 @@ However, if you have problems with auto-detection, you can specify:
<sect>Driver Options
<p>
<itemize>
- <item>"hw_cursor" - request hardware cursor (default)
- <item>"sw_cursor" - software cursor only
- <item>"no_accel" - software rendering only
- <item>"sgram" - force the use of SGRAM timing info
- <item>"sdram" - force the use of SDRAM timing info
+ <item>"NoAccel" - Turn off hardware acceleration
+ <item>"SWCursor" - Request a software cursor (hardware is default)
+ <item>"SDRAM" - Force the use of SDRAM timings
+ <item>"SGRAM" - Force the use of SGRAM timings
+ <item>"SlowRam" - Force the use of slower ram timings
+ <item>"Dac6Bit" - Force the use of a 6 Bit Dac (8 Bit is the default)
+ <item>"UsePIO - Force the use of programmed IO (Memory mapped is the default)
</itemize>
Note: the i740 X server should automatically detect whether your
@@ -119,15 +128,17 @@ if it is incorrectly detected.
<sect>Known Limitations
<p>
<itemize>
- <item>Certain drawing operations are very slow when using 24 bit per
- pixel depth mode. We hope to fix this in a future release.
+ <item>Certain drawing operations are very slow when using 24 bit
+ pixel depth mode.
</itemize>
<sect>Author
<p>
<itemize>
- <item>Kevin E. Martin <it>&lt;kevin@precisioninsight.com&gt;</it>
+ <item>Original version by Kevin E Martin
+ <email>kevin@precisioninsight.com</email>
+ <item>Daryll Strauss <email>daryll@precisioninsight.com</email>
</itemize>
This driver was donated to The XFree86 Project by:
@@ -140,8 +151,5 @@ This driver was donated to The XFree86 Project by:
<htmlurl name="http://www.precisioninsight.com"
url="http://www.precisioninsight.com">
-<verb>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i740.sgml,v 1.2 1999/08/23 06:18:34 dawes Exp $
-</verb>
</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml
new file mode 100644
index 000000000..ef8c09536
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml
@@ -0,0 +1,125 @@
+<!DOCTYPE linuxdoc PUBLIC "-//XFree86//DTD linuxdoc//EN" [
+<!ENTITY % defs SYSTEM "defs.ent"> %defs;
+]>
+
+<article>
+<title>Information for i810 Users
+<author>Precision Insight, Inc.
+<date>3 March 2000
+<ident>
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml,v 1.2 2000/03/04 00:00:30 dawes Exp $
+</ident>
+<toc>
+
+<sect>Supported Hardware
+<p>
+<itemize>
+ <item>Intel 810 motherboards:
+ <itemize>
+ <item>i810,
+ <item>i810-dc100,
+ <item>i810e
+ </itemize>
+</itemize>
+
+
+<sect>Features
+<p>
+<itemize>
+ <item>Full support for 8, 15, 16, and 24 bit pixel depths.
+ <item>Hardware cursor support to reduce sprite flicker.
+ <item>Hardware accelerated 2D drawing engine support for 8, 15, 16 and
+ 24 bit pixel depths.
+ <item>Support for high resolution video modes up to 1600x1200.
+ <item>Fully programmable clock supported.
+ <item>Robust text mode restore for VT switching.
+</itemize>
+
+
+<sect>Technical Notes
+<p>
+<itemize>
+ <item>Hardware acceleration is not possible when using the framebuffer
+ in 32 bit per pixel format, and this mode is not supported by
+ this driver.
+ <item>Interlace modes cannot be supported.
+ <item>This driver currently only works for Linux/ix86, and normal use
+ requires the agpgart.o kernel module, included in Linux kernels
+ 2.3.42 and higher.
+</itemize>
+
+
+<sect>Reported Working Video Cards
+<p>
+<itemize>
+ <item>Intel evaluation hardware - i810, i810-dc100 and i810e.
+ <item>Tyan Tomcat Motherboard.
+ <item>HappyPC set-top box.
+</itemize>
+
+
+<sect>Configuration
+<p>
+The driver auto-detects all device information necessary to
+initialize the card. The only lines you need in the "Device"
+section of your XF86Config file are:
+<verb>
+ Section "Device"
+ Identifier "Intel i810"
+ Driver "i810"
+ EndSection
+</verb>
+or let <tt>xf86config</tt> do this for you.
+
+However, if you have problems with auto-detection, you can specify:
+<itemize>
+ <item>DacSpeed - in MHz
+ <item>MemBase - physical address of the linear framebuffer
+ <item>IOBase - physical address of the memory mapped IO registers
+</itemize>
+
+In order to use most resolutions, it is necessary to install the
+'agpgart.o' module. You will probably have to compile the module yourself
+(see the notes in the module).
+
+Note: the i810 driver detects whether your motherboard has display cache
+video memory. This memory is has reduced bandwidth compared to normal
+system memory, and isn't used by the server. The main function of this
+memory is for ancillary buffers (eg. z buffer) in a forthcoming 3d
+capable server.
+
+
+<sect>Driver Options
+<p>
+<itemize>
+ <item>"NoAccel" - Turn off hardware acceleration
+ <item>"SWCursor" - Request a software cursor (hardware is default)
+ <item>"Dac6Bit" - Force the use of a 6 Bit Dac (8 Bit is the default)
+</itemize>
+
+<sect>Known Limitations
+<p>
+<itemize>
+ <item>No 3D support in this release.
+ <item>Running two X servers on different VTs is not supported at this time.
+</itemize>
+
+
+<sect>Author
+<p>
+<itemize>
+ <item>Keith Whitwell
+</itemize>
+
+This driver was donated to The XFree86 Project by:
+<verb>
+ Precision Insight, Inc.
+ Cedar Park, TX
+ USA
+</verb>
+
+<htmlurl name="http://www.precisioninsight.com"
+ url="http://www.precisioninsight.com">
+
+
+</article>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre b/xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre
index b798df3c1..2330554b5 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre
@@ -7,10 +7,10 @@
<!-- Title information -->
<title>Documentation for XFree86&trade; version &relvers;
<author>The XFree86 Project, Inc
-<date>31 August 1999
+<date>8 March 2000
<!--
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre,v 1.3 1999/08/31 08:39:09 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/index.pre,v 1.6 2000/03/08 05:38:44 dawes Exp $
-->
<p>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml
index 8eaadcd72..3f9d6aaa1 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml
@@ -7,10 +7,10 @@
<!-- made up title -->
<title> Information for ISC Users
<author> Michael Rohleder
-<date> 06 March 1999
+<date> 05 March 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml,v 3.22 1999/08/28 10:43:33 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/isc.sgml,v 3.24 2000/03/06 22:59:25 dawes Exp $
</ident>
<toc>
@@ -35,6 +35,13 @@ consuming if you want to build X11-clients with X11R6. Best you mix X11R6
Server with X11R5 and X11R4 clients. And only compile clients who need the
new facilities provided in the X11R6 Libraries against them.
+<code>
+Please note:
+ XFree86 Version 4.0 will be the last version which is known
+ to compile on Interactive Unix.
+ I've only tested this version on Interactive Unix, Version 4.1mu.
+</code>
+
<sect> Things needed for compiling the sources<p>
<descrip>
@@ -336,33 +343,6 @@ I could only test these cards on Interactive UNIX
</itemize>
-<sect>XKeyboard Extension<p>
-
-<itemize>
-<item>Sample Setup &hellip; <p>
-Here is a sample XKeyboard Definition to include inside the Keyboard Section
-of your XF86Config File.
-<verb>
- Xkbkeycodes "xfree86"
-/* XkbSymbols "us(pc101)+de_nodead" */
-/* This has changed between 3.1.2E and 3.1.2F */
-/* it is now: */
- XkbSymbols "us(pc102)+de(nodeadkeys)"
- XkbTypes "default"
- XkbCompat "default"
- XkbGeometry "pc"
-</verb>
-
-or you could use this one with the new Options:
-<verb>
- XkbRules "xfree86"
- XkbModel "pc102"
- XkbLayout "de"
- XkbVariant "nodeadkeys"
-</verb>
-
-</itemize>
-
<sect> Multibuffer Extension <p>
This is an obsolete Extension. Anyway, if you want to include this Extension
@@ -372,72 +352,44 @@ Please note, this Extension should be disabled when building the Loader Server.
<sect> Default Definitions <p>
-These are default options defined inside isc.cf.
+These are default options defined inside isc.cf.
You can redefine them inside host.def.
+Here is a sample host.def (the one I use for XFree86 4.0):
+
<verb>
-/* Disable the use of /var/X11 */
-#ifndef HasVarDirectory
-#define HasVarDirectory NO
-#endif
-/* Use mmap Driver */
-#ifndef HasSVR3mmapDrv
-# define HasSVR3mmapDrv YES
-#endif
+/* Disable the use of /var/X11 and /etc/X11 */
+#define HasVarDirectory NO
+#define UseEtcX11 NO
/* Use inline Math from linux ;-) package inline-math-2.6.tar.gz */
/* should be available on your favorite linux ftp */
-#ifndef UseInlineMath
# define UseInlineMath YES
-#endif
/* Use cbrt from liboptm.a (Interactive icc Compiler) */
-#ifndef HasCbrt
# define HasCbrt YES
-#endif
/* Use GNUs MallocLibrary (and the Location for the Lib) */
-#ifndef UseGnuMalloc
# define UseGnuMalloc YES
-#endif
-
-/* Install Zlib Headers - used in lib/zlib/Imakefile */
-#ifndef OsNeedZlibHeaders
-# define OsNeedZlibHeaders YES
-#endif
/* Expand Manual Pages (needs S5L) */
-#ifndef ExpandManNames
# define ExpandManNames YES
-#endif
/* if you have groff or the TextProcessingWorkbench - don't preformat*/
-#ifndef FormattedManPages
# define FormattedManPages NO
-#endif
-
-#ifndef HasSgmlFmt /* HasLinuxDoc */
-# define HasSgmlFmt YES
-#endif
/* XF86Setup Util */
-#ifndef HasTk
-#define HasTk YES
-#define HasTcl YES
-#endif
-
-#ifndef HasPosixRegex /* Need extra/regex since 3.9Ns */
-#define HasPosixRegex NO
-#endif
+# define HasTk YES
+# define HasTcl YES
-#ifndef DoLoadableServer
-#define DoLoadableServer YES
-#endif
+/* use doctools */
+# define HasSgmlFmt YES
+# define BuildAllDocs YES
+# define BuildLinuxDocText NO
+# define BuildLinuxDocPS NO
-#ifndef CpuOption
-#define CpuOption -mpentium
-#endif
+#define GlxBuiltInMesa YES
</verb>
@@ -456,10 +408,6 @@ make install.man
</verb>
to install the compressed nroff versions of the manual pages into
/usr/X11R6/man. This directory will be generated if it doesn't exist.
-<verb>
-make install.linkkit
-</verb>
-to install the server binary LinkKit into /usr/X11R6/lib/Server.
<code>
You should tune the Kernel using the command-file
@@ -517,20 +465,6 @@ You could do this automatically with menu entry no. 5.
The new Xprint Server is configured to use lpr as its print helper
so you have to install and configure lpr to use Xprt.<p>
-<item>Keyboard:<p>
- You don't need any modmap-File to get your keyboard
- working with any iso-8859-1 Font. Simply enable
-
- <itemize>
- <item>LeftAlt Meta
-
- <item>RightAlt ModeShift
-
- <item>RightCtl Compose
- </itemize>
-
- in your XF86Config - Section "Keyboard"
-
<item>xpcterm: <p>
if you want to get the German 'Umlaut' inside your ISC X11R4 client
xpcterm when you are using the ega/vga font. Set up the
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml
index 1740204fa..4ff052d40 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml
@@ -8,7 +8,7 @@
<date>9 February 2000
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml,v 1.9 2000/02/12 20:45:20 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/mouse.sgml,v 1.11 2000/03/01 00:25:23 dawes Exp $
</ident>
<toc>
@@ -440,7 +440,7 @@ of those buttons into <tt>N</tt> too.
</verb>
<sect1>ZAxisMappping <p>
-This option maps the Z axis (wheel) motion to a pair of buttons or to
+This option maps the Z axis (wheel) motion to buttons or to
another axis.
<verb>
@@ -460,12 +460,25 @@ or <tt>N2</tt> actually exists in the mouse,
their actions won't be detected by the X server.
The last example is useful for the mouse with two wheels of which
-the second wheel is used to generate horizontal scroll action.
+the second wheel is used to generate horizontal scroll action,
+and the mouse which has a knob or a stick which can detect the horizontal
+force applied by the user.
The motion of the second wheel will be mapped to the buttons <tt>N3</tt>,
for the negative direction, and <tt>N4</tt>, for the positive direction.
If the buttons <tt>N3</tt> and <tt>N4</tt> actually exist in this mouse,
their actions won't be detected by the X server.
+NOTE #1: horizontal movement may not always be detected
+by the current version of the XFree86 X servers,
+because there appears to be no accepted standard as to how the horizontal
+direction is encoded in mouse data.
+
+NOTE #2: Some mice think left is the negative horizontal direction,
+others may think otherwise.
+Moreover, there are some mice whose two wheels are both mounted vertically,
+and the direction of the second vertical wheel does not match the
+first one's.
+
Currently this option can not be set in the <tt>XF86Setup</tt> program.
You need to edit the <tt>XF86Config</tt> file by hand to add this option.
@@ -933,7 +946,7 @@ This can be done by the following command:
xmodmap -e "pointer = 1 6 3 2 4 5"
</verb>
-After this command is run, the correspondance between the buttons and
+After this command is run, the correspondence between the buttons and
button numbers will be as shown in the following table.
<verb>
@@ -964,7 +977,7 @@ EndSection
The IntelliMouse Explorer has 5 buttons, thus, you should give "7"
to the <tt>Buttons</tt> option if you want to map the wheel movement
to buttons (6 and 7).
-With this configuration, the correspondance between the buttons and
+With this configuration, the correspondence between the buttons and
button numbers will be as follows:
<verb>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml
index 94f3997bf..18fdb4a5e 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml
@@ -8,11 +8,8 @@
<date>12 November 1999
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.4 2000/01/24 19:38:30 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.7 2000/03/08 15:14:48 dawes Exp $
</ident>
-<!--
-$PI: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.2 1999/10/21 20:51:15 faith Exp $
--->
<toc>
@@ -27,7 +24,7 @@ $PI: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.2 1999/10/21 20:51:15
<p>
<itemize>
<item>Full support (including hardware accelerated 2D drawing) for 8, 15,
- 16, 24, and 32 bit per pixel depths.
+ 16, 24 bit pixel depths.
<item>Hardware cursor support to reduce sprite flicker.
<item>Support for high resolution video modes up to 1800x1440 @ 70Hz.
<item>Support for doublescan video modes (e.g., 320x200 and 320x240).
@@ -60,11 +57,11 @@ initialize the card. The only lines you need in the "Device"
section of your XF86Config file are:
<verb>
Section "Device"
- Identifier "Rage 128"
- Driver "r128"
+ Identifier "Rage 128"
+ Driver "r128"
EndSection
</verb>
-or let xf86config or XF86Setup do this for you.
+or let <tt>xf86config</tt> do this for you.
However, if you have problems with auto-detection, you can specify:
<itemize>
@@ -89,19 +86,19 @@ However, if you have problems with auto-detection, you can specify:
<sect>Known Limitations
<p>
<itemize>
- <item>None
+ <item>DGA is not supported yet
</itemize>
<sect>Authors
<p>
-The XFree86 3.9 driver was ported from XFree86 3.3 and enhanced by:
+The XFree86 4 driver was ported from XFree86 3.3.x and enhanced by:
<itemize>
<item>Rickard E. (Rik) Faith <email>faith@precisioninsight.com</email>
<item>Kevin E. Martin <email>kevin@precisioninsight.com</email>
</itemize>
<p>
-The XFree86 3.9 driver was funded by ATI and was donated to The XFree86
+The XFree86 4 driver was funded by ATI and was donated to The XFree86
Project by:
<verb>
Precision Insight, Inc.
@@ -109,12 +106,12 @@ Project by:
USA
</verb>
<p>
-The XFree86 3.3 driver used for the port was written by:
+The XFree86 3.3.x driver used for the port was written by:
<itemize>
<item>Rickard E. (Rik) Faith <email>faith@precisioninsight.com</email>
<item>Kevin E. Martin <email>kevin@precisioninsight.com</email>
</itemize>
-The XFree86 3.3 driver was funded by ATI and was donated to The XFree86
+The XFree86 3.3.x driver was funded by ATI and was donated to The XFree86
Project by Precision Insight, Inc. It was based in part on an earlier
driver that was written by:
<itemize>
diff --git a/xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml b/xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml
index a7c9ba916..f8a923a1c 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml
+++ b/xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml
@@ -8,14 +8,14 @@
<date>12 December 1999
<ident>
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml,v 1.6 2000/01/24 19:38:30 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml,v 1.8 2000/03/01 23:54:34 dawes Exp $
</ident>
<toc>
<sect>Supported hardware <p>
All cards based on the V1000 or the V2x00 should be supported. The server
-was tested on a miroCRYSTAL VRX (V1000), Intergraph Intense-100 3D (V1000), Diamond Stealth II S220 (V2100), Hercules Thriller3D (V2200) and Innovision Warrior3D (V2200).
+was tested on a miroCRYSTAL VRX (V1000), Intergraph Intense-100 3D (V1000), Diamond Stealth II S220 (V2100), Hercules Thriller3D (V2200), Innovision Warrior3D (V2200) and Genoa V-Raptor (v2200).
<sect>Limitations <p>
V1000 cards can only work as primary display card due to hardware limitations. <p>
@@ -56,6 +56,20 @@ Set custom ramdac limit. We have currently no way of knowing if the v2x00 chip i
If writecombine is disabled in BIOS, and you add this option in in configuration file, then the driver will try to request writecombined access to the framebuffer. This can drastically increase the performance on unaccelerated server. Requires that "MTRR"-support is compiled into the OS-kernel.
<tag>Option "NoDDC"</tag>
Disable probing of DDC-information from your monitor. This information is not used yet and is only there for informational purposes. This might change before final XFree86 4.0 release. Safe to disable if you experience problems during startup of X-server.
+<tag>Option "ShadowFB"</tag>
+If this option is enabled, the driver will cause the CPU to do each drawing
+operation first into a shadow frame buffer in system virtual memory and then
+copy the result into video memory.
+If this option is not active, the CPU will draw directly into video memory.
+Enabling this option is beneficial for those systems where reading from video
+memory is, on average, slower than the corresponding read/modify/write
+operation in system virtual memory.
+This is normally the case for PCI or AGP adapters, and, so, this option is
+enabled by default unless acceleration is enabled.
+<tag>Option "Rotate"</tag>
+The option expect a value "CW" for clockwise or "CCW" for counterclockwise rotation of the screen. This is useful when you need more height then width on the screen. Desktop publishing is one example where a monitor could display the whole page at once on a monitor laying on the side.
+Notice that this option requires "ShadowFB" and automatically enable it. It also disables the acceleration.
+The option is not activated by default.
</descrip>
<sect>News in this release <p>
@@ -63,11 +77,17 @@ Disable probing of DDC-information from your monitor. This information is not us
<item>Acceleration! Disabled for the moment.
</itemize>
-<sect>Major fixes in this release <p>
+<sect>Major changes in this release <p>
<itemize>
+<item>ShadowFB support added
<item>To be determined before final release.
</itemize>
+<sect>Bugfixes<p>
+<itemize>
+<item>8bpp finally works correctly again
+</itemize>
+
<sect>Known problems in current driver<p>
<itemize>
<item>The acceleration code hangs the computer during X-server startup.
diff --git a/xc/programs/Xserver/hw/xfree86/doc/xinput b/xc/programs/Xserver/hw/xfree86/doc/xinput
index e2e9aa3df..ba4432a20 100644
--- a/xc/programs/Xserver/hw/xfree86/doc/xinput
+++ b/xc/programs/Xserver/hw/xfree86/doc/xinput
@@ -239,4 +239,4 @@ Consult the man pages for details.
$XConsortium: xinput.sgml /main/3 1996/10/27 11:06:13 kaleb $
-$XFree86: xc/programs/Xserver/hw/xfree86/doc/xinput,v 3.10 2000/02/21 22:44:47 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/doc/xinput,v 3.11 2000/03/01 01:48:32 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/Imakefile
index 667283b06..8bf4ef3cb 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/Imakefile,v 1.14 1999/11/19 13:54:29 hohndel Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/Imakefile,v 1.15 2000/03/08 04:05:04 robin Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -15,7 +15,7 @@ OBJS = al2101/?*.o mx/?*.o oak/?*.o realtek/?*.o sis/?*.o trident/?*.o \
cirrus/?*.o cl64xx/?*.o compaq/?*.o et3000/?*.o glint/?*.o \
gvga/?*.o hercules/?*.o hgc1280/?*.o mga/?*.o ncr/?*.o \
nv/?*.o s3_pio/?*.o s3_newmmio/?*.o sigma/?*.o tseng/?*.o \
- vga/?*.o video7/?*.o wd/?*.o i740/?*.o r128/?.o
+ vga/?*.o video7/?*.o wd/?*.o i740/?*.o r128/?*.o
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile
index 346657691..088c2ba5b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile,v 1.16 2000/02/12 02:54:40 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/Imakefile,v 1.17 2000/03/03 01:05:33 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -38,6 +38,11 @@ ObjectModuleTarget(apm,$(OBJS))
InstallObjectModule(apm,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(apm,)
+InstallModuleManPage(apm)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/apm)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.cpp b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.cpp
new file mode 100644
index 000000000..ee527418f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm.cpp,v 1.1 2000/03/03 01:05:33 dawes Exp $
+.TH APM __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+apm \- Alliance ProMotion video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""apm"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B apm
+is an XFree86 driver for Alliance ProMotion video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B apm
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h
index 1a38635fa..00801bc6f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h,v 1.12 2000/02/14 19:20:45 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm.h,v 1.13 2000/02/29 03:09:17 dawes Exp $ */
/* Everything using inb/outb, etc needs "compiler.h" */
@@ -121,7 +121,7 @@ typedef struct {
int xbase;
unsigned char savedSR10;
CARD8 MiscOut;
- CARD8 c9, d9, db;
+ CARD8 c9, d9, db, Rush;
unsigned long saveCmd;
pointer FontInfo;
Bool hwCursor;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c
index a66780ee3..6f5415c77 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c,v 1.33 2000/02/21 19:22:56 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_driver.c,v 1.38 2000/03/08 19:25:09 dawes Exp $ */
#include "apm.h"
@@ -375,8 +375,6 @@ ApmProbe(DriverPtr drv, int flags)
EntityInfoPtr pEnt;
int foundScreen = FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
/*
* Check if there is a chipset override in the config file
*/
@@ -397,12 +395,10 @@ ApmProbe(DriverPtr drv, int flags)
ApmChipsets, ApmPciChipsets, DevSections, numDevSections,
drv, &usedChips);
- if ((numUsed > 0) && (flags & PROBE_DETECTPCI))
- return TRUE;
- if ((numUsed <= 0) && (flags & PROBE_DETECTPCI))
- return FALSE;
if (numUsed > 0) {
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
pEnt = xf86GetEntityInfo(usedChips[i]);
if (pEnt && pEnt->active) {
@@ -430,9 +426,9 @@ ApmProbe(DriverPtr drv, int flags)
ApmIsaChipsets, drv, ApmFindIsaDevice, DevSections,
numDevSections, &usedChips);
if (numUsed > 0) {
- if (flags & PROBE_DETECTISA)
- return TRUE;
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
/*
@@ -444,9 +440,10 @@ ApmProbe(DriverPtr drv, int flags)
NULL, NULL, NULL, NULL, NULL);
}
}
+#if 0 /* This causes problems with -configure? */
if (DevSections)
xfree(DevSections);
- DevSections = NULL;
+#endif
return foundScreen;
}
@@ -495,6 +492,8 @@ ApmPreInit(ScrnInfoPtr pScrn, int flags)
xf86MonPtr MonInfo = NULL;
double real;
+ if (flags & PROBE_DETECT) return FALSE;
+
/*
* Note: This function is only called once at server startup, and
* not at the start of each server generation. This means that
@@ -2053,7 +2052,7 @@ ApmEnterVT(int scrnIndex, int flags)
if (pApm->Chipset >= AT3D) {
if (!pApm->noLinear) {
/* If you change it, change it also in apm_funcs.c */
- WRXB(0xDB, (pApm->db & 0xF4) | 0x0A);
+ WRXB(0xDB, (pApm->db & 0xF4) | 0x0A | pApm->Rush);
WRXB(0xD9, (pApm->d9 & 0xCF) | 0x20);
}
else {
@@ -2068,9 +2067,10 @@ ApmEnterVT(int scrnIndex, int flags)
* Set color mode
*/
hwp->writeMiscOut(hwp, pApm->MiscOut | 0x0F);
- /* Should we re-save the text mode on each VT enter? */
+
if (!ApmModeInit(pScrn, pScrn->currentMode))
return FALSE;
+ ApmAdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
return TRUE;
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h
index df148614d..5f2699384 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h,v 1.6 2000/02/14 19:20:47 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_regs.h,v 1.7 2000/02/29 03:09:18 dawes Exp $ */
@@ -214,3 +214,6 @@
#define DEC_QUICKSTART_NONE (0 << 29)
#define DEC_START (1 << 31)
#define DEC_START_NO (0 << 31)
+
+#define AT3D_SST_STATUS 0x1F4
+#define SST_BUSY 1
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c
index 6910c8f20..109fc40a5 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c,v 1.6 2000/02/14 19:20:47 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_rush.c,v 1.8 2000/02/29 17:32:54 tsi Exp $ */
/*
* Copyright Loïc Grenié 1999
*/
@@ -6,6 +6,8 @@
#include "apm.h"
#include "xaalocal.h"
+extern DriverRec APM;
+
static Bool RushDestroyPixmap(PixmapPtr);
static __inline__ void __xf86UnlockPixmap(ApmPtr, PixmapLinkPtr);
static int xf86RushLockPixmap(int, PixmapPtr);
@@ -43,7 +45,7 @@ xf86RushLockPixmap(int scrnIndex, PixmapPtr pix)
FBAreaPtr area = pXAAPriv->offscreenArea;
int p2, width = (pScrn->displayWidth * pScrn->bitsPerPixel) / 8;
- if (strcmp(pScrn->chipset, "AT3D"))
+ if (pScrn->drv != &APM || pApm->Chipset != AT3D)
return 0;
pApm->apmLock = TRUE;
pApmPriv->num = 0;
@@ -235,7 +237,8 @@ __xf86UnlockPixmap(ApmPtr pApm, PixmapLinkPtr pLink)
area->RemoveAreaCallback = pApmPriv->RemoveAreaCallback;
area->devPrivate.ptr = pApmPriv->devPriv;
}
- if (i = pApmPriv->num) {
+ i = pApmPriv->num;
+ if (i) {
pApm->RushY[i - 1] = 0;
pix->drawable.y %= pApm->CurrentLayout.Scanlines;
}
@@ -247,7 +250,7 @@ xf86RushUnlockPixmap(int scrnIndex, PixmapPtr pix)
APMDECL(xf86Screens[scrnIndex]);
PixmapLinkPtr pLink = GET_XAAINFORECPTR_FROM_SCREEN(xf86Screens[scrnIndex]->pScreen)->OffscreenPixmaps;
- if (pApm->Chipset != AT3D)
+ if (xf86Screens[scrnIndex]->drv != &APM || pApm->Chipset != AT3D)
return;
if (pApm->apmLock) {
/*
@@ -255,12 +258,18 @@ xf86RushUnlockPixmap(int scrnIndex, PixmapPtr pix)
* registers.
*/
if (!pApm->noLinear) {
- WRXB(0xDB, (RDXB(0xDB) & 0xF4) | 0x0A);
+ CARD8 db;
+
+ db = RDXB(0xDB);
+ WRXB(0xDB, (db & 0xF4) | 0x0A);
ApmWriteSeq(0x1B, 0x20);
ApmWriteSeq(0x1C, 0x2F);
}
else {
- WRXB_IOP(0xDB, (RDXB_IOP(0xDB) & 0xF4) | 0x0A);
+ CARD8 db;
+
+ db = RDXB_IOP(0xDB);
+ WRXB_IOP(0xDB, (db & 0xF4) | 0x0A);
wrinx(0x3C4, 0x1B, 0x20);
wrinx(0x3C4, 0x1C, 0x2F);
}
@@ -278,12 +287,14 @@ xf86RushUnlockAllPixmaps()
int scrnIndex;
for (scrnIndex = 0; scrnIndex < screenInfo.numScreens; scrnIndex++) {
- PixmapLinkPtr pLink = GET_XAAINFORECPTR_FROM_SCREEN(xf86Screens[scrnIndex]->pScreen)->OffscreenPixmaps;
+ ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ APMDECL(pScrn);
+ PixmapLinkPtr pLink = GET_XAAINFORECPTR_FROM_SCREEN(pScrn->pScreen)->OffscreenPixmaps;
- if (APMPTR(xf86Screens[scrnIndex])->Chipset != AT3D)
+ if (pScrn->drv != &APM || pApm->Chipset != AT3D)
continue;
while(pLink) {
- __xf86UnlockPixmap(APMPTR(xf86Screens[scrnIndex]), pLink);
+ __xf86UnlockPixmap(pApm, pLink);
pLink = pLink->next;
}
}
@@ -317,6 +328,9 @@ static DISPATCH_PROC(ProcXF86RushUnlockAllPixmaps);
static DISPATCH_PROC(ProcXF86RushSetCopyMode);
static DISPATCH_PROC(ProcXF86RushSetPixelStride);
static DISPATCH_PROC(ProcXF86RushOverlayPixmap);
+static DISPATCH_PROC(ProcXF86RushStatusRegOffset);
+static DISPATCH_PROC(ProcXF86RushAT3DEnableRegs);
+static DISPATCH_PROC(ProcXF86RushAT3DDisableRegs);
static int rush_ext_generation = -1;
@@ -334,7 +348,8 @@ XFree86RushExtensionInit(ScreenPtr pScreen)
return;
#endif
if (rush_ext_generation == serverGeneration) {
- if (APMPTR(xf86Screens[pScreen->myNum])-> Chipset == AT3D) {
+ if (xf86Screens[pScreen->myNum]->drv == &APM &&
+ APMPTR(xf86Screens[pScreen->myNum])->Chipset == AT3D) {
pScreen->CreatePixmap = RushCreatePixmap;
pScreen->DestroyPixmap = RushDestroyPixmap;
}
@@ -350,7 +365,8 @@ XFree86RushExtensionInit(ScreenPtr pScreen)
StandardMinorOpcode))) {
RushReqCode = (unsigned char)extEntry->base;
RushErrorBase = extEntry->errorBase;
- if (APMPTR(xf86Screens[pScreen->myNum])-> Chipset == AT3D) {
+ if (xf86Screens[pScreen->myNum]->drv == &APM &&
+ APMPTR(xf86Screens[pScreen->myNum])->Chipset == AT3D) {
pScreen->CreatePixmap = RushCreatePixmap;
pScreen->DestroyPixmap = RushDestroyPixmap;
}
@@ -383,7 +399,7 @@ ProcXF86RushQueryVersion(register ClientPtr client)
swaps(&rep.sequenceNumber, n);
swapl(&rep.length, n);
}
- WriteToClient(client, sizeof(xXF86RushQueryVersionReply), (char *)&rep);
+ WriteToClient(client, sz_xXF86RushQueryVersionReply, (char *)&rep);
return (client->noClientException);
}
@@ -480,6 +496,12 @@ ProcXF86RushDispatch (register ClientPtr client)
return ProcXF86RushSetPixelStride(client);
case X_XF86RushOverlayPixmap:
return ProcXF86RushOverlayPixmap(client);
+ case X_XF86RushStatusRegOffset:
+ return ProcXF86RushStatusRegOffset(client);
+ case X_XF86RushAT3DEnableRegs:
+ return ProcXF86RushAT3DEnableRegs(client);
+ case X_XF86RushAT3DDisableRegs:
+ return ProcXF86RushAT3DDisableRegs(client);
default:
return BadRequest;
}
@@ -516,7 +538,8 @@ ProcXF86RushOverlayPixmap(ClientPtr client)
VALIDATE_DRAWABLE_AND_GC(stuff->drawable, pDraw, pGC, client);
pScrn = xf86Screens[pDraw->pScreen->myNum];
- if (strcmp(pScrn->chipset, "AT3D"))
+ pApm = APMPTR(pScrn);
+ if (pScrn->drv != &APM || pApm->Chipset != AT3D)
return (_XvBadPort);
if(!(pPort = LOOKUP_PORT(stuff->port, client) )) {
@@ -584,3 +607,118 @@ ProcXF86RushOverlayPixmap(ClientPtr client)
return status;
}
+
+static int
+ProcXF86RushStatusRegOffset(ClientPtr client)
+{
+ int scrnIndex;
+ ScrnInfoPtr pScrn;
+ ApmPtr pApm;
+ REQUEST(xXF86RushStatusRegOffsetReq);
+ xXF86RushStatusRegOffsetReply rep;
+ register int n;
+
+ REQUEST_SIZE_MATCH(xXF86RushStatusRegOffsetReq);
+ scrnIndex = stuff->screen;
+ if (scrnIndex < 0 || scrnIndex > screenInfo.numScreens)
+ return BadValue;
+ pScrn = xf86Screens[scrnIndex];
+ pApm = APMPTR(pScrn);
+ if (pScrn->drv != &APM || pApm->Chipset != AT3D)
+ return BadMatch;
+ rep.type = X_Reply;
+ rep.length = 0;
+ rep.sequenceNumber = client->sequence;
+ rep.offset = 0xFFEDF4;
+ if (client->swapped) {
+ swapl(&rep.offset, n);
+ }
+ WriteToClient(client, sz_xXF86RushStatusRegOffsetReply, (char *)&rep);
+
+ return client->noClientException;
+}
+
+static int
+ProcXF86RushAT3DEnableRegs(ClientPtr client)
+{
+ u32 db, tmp;
+ int scrnIndex;
+ ScrnInfoPtr pScrn;
+ ApmPtr pApm;
+ REQUEST(xXF86RushAT3DEnableRegsReq);
+
+ REQUEST_SIZE_MATCH(xXF86RushAT3DEnableRegsReq);
+ scrnIndex = stuff->screen;
+ if (scrnIndex < 0 || scrnIndex > screenInfo.numScreens)
+ return BadValue;
+ pScrn = xf86Screens[scrnIndex];
+ pApm = APMPTR(pScrn);
+ if (pScrn->drv != &APM || pApm->Chipset != AT3D)
+ return BadMatch;
+ pApm->Rush = 0x04;
+ if (!pApm->noLinear) {
+ db = RDXL(0xDB);
+ WRXL(0xDB, db | 0x04);
+ WRXB(0x110, 0x03);
+ tmp = RDXB(0x1F0);
+ WRXB(0x1F0, tmp | 0xD0);
+ tmp = RDXB(0x1F1);
+ WRXB(0x1F1, (tmp & ~0xC0) | 0x10);
+ tmp = RDXB(0x1F2);
+ WRXB(0x1F2, tmp | 0x10);
+ }
+ else {
+ db = RDXL(0xDB);
+ WRXL_IOP(0xDB, db | 0x04);
+ WRXB_IOP(0x110, 0x03);
+ tmp = RDXB_IOP(0x1F0);
+ WRXB_IOP(0x1F0, tmp | 0xD0);
+ tmp = RDXB_IOP(0x1F1);
+ WRXB_IOP(0x1F1, (tmp & ~0xC0) | 0x10);
+ tmp = RDXB_IOP(0x1F2);
+ WRXB_IOP(0x1F2, tmp | 0x10);
+ }
+
+ return client->noClientException;
+}
+
+static int
+ProcXF86RushAT3DDisableRegs(ClientPtr client)
+{
+ u32 db, tmp;
+ int scrnIndex;
+ ScrnInfoPtr pScrn;
+ ApmPtr pApm;
+ REQUEST(xXF86RushAT3DDisableRegsReq);
+
+ REQUEST_SIZE_MATCH(xXF86RushAT3DDisableRegsReq);
+ scrnIndex = stuff->screen;
+ if (scrnIndex < 0 || scrnIndex > screenInfo.numScreens)
+ return BadValue;
+ pScrn = xf86Screens[scrnIndex];
+ pApm = APMPTR(pScrn);
+ if (pScrn->drv != &APM || pApm->Chipset != AT3D)
+ return BadMatch;
+ if (!pApm->noLinear) {
+ tmp = RDXB(0x1F2);
+ WRXB(0x1F2, tmp & ~0x10);
+ tmp = RDXB(0x1F0);
+ WRXB(0x1F0, tmp & ~0xD0);
+ WRXB(0x110, 0);
+ pApm->Rush = 0x00;
+ db = RDXL(0xDB);
+ WRXL(0xDB, db & ~0x04);
+ }
+ else {
+ tmp = RDXB_IOP(0x1F2);
+ WRXB_IOP(0x1F2, tmp & ~0x10);
+ tmp = RDXB_IOP(0x1F0);
+ WRXB_IOP(0x1F0, tmp & ~0xD0);
+ WRXB_IOP(0x110, 0);
+ pApm->Rush = 0x00;
+ db = RDXL_IOP(0xDB);
+ WRXL_IOP(0xDB, db & ~0x04);
+ }
+
+ return client->noClientException;
+}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c
index f4cced36c..10fbb0f1b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c,v 1.4 2000/02/14 19:20:47 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/apm/apm_video.c,v 1.6 2000/02/29 03:09:18 dawes Exp $ */
#if PSZ != 24
#include "dixstruct.h"
@@ -49,7 +49,7 @@ void A(InitVideo)(ScreenPtr pScreen)
int num_adaptors;
Bool freeAdaptors = FALSE;
- num_adaptors = xf86XVListGenericAdaptors(&adaptors);
+ num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors);
if (pApm->Chipset >= AT24) {
if ((newAdaptor = A(SetupImageVideo)(pScreen))) {
@@ -121,6 +121,7 @@ static XF86AttributeRec Attributes[NUM_ATTRIBUTES] =
};
#define NUM_IMAGES 8
+typedef char c8;
static XF86ImageRec Images[NUM_IMAGES] =
{
@@ -197,7 +198,7 @@ static XF86ImageRec Images[NUM_IMAGES] =
XvYUV,
LSBFirst,
{'Y','V','1','2',
- 0x00,0x00,0x00,0x10,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71},
+ 0x00,0x00,0x00,0x10,(c8)0x80,0x00,0x00,(c8)0xAA,0x00,0x38,(c8)0x9B,0x71},
12,
XvPlanar,
3,
@@ -214,7 +215,7 @@ static XF86ImageRec Images[NUM_IMAGES] =
XvYUV,
LSBFirst,
{'U','Y','V','Y',
- 0x00,0x00,0x00,0x10,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71},
+ 0x00,0x00,0x00,0x10,(c8)0x80,0x00,0x00,(c8)0xAA,0x00,0x38,(c8)0x9B,0x71},
16,
XvPlanar,
1,
@@ -231,7 +232,7 @@ static XF86ImageRec Images[NUM_IMAGES] =
XvYUV,
LSBFirst,
{'Y','V','Y','U',
- 0x00,0x00,0x00,0x10,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71},
+ 0x00,0x00,0x00,0x10,(c8)0x80,0x00,0x00,(c8)0xAA,0x00,0x38,(c8)0x9B,0x71},
16,
XvPlanar,
1,
@@ -248,7 +249,7 @@ static XF86ImageRec Images[NUM_IMAGES] =
XvYUV,
LSBFirst,
{'V','Y','U','Y',
- 0x00,0x00,0x00,0x10,0x80,0x00,0x00,0xAA,0x00,0x38,0x9B,0x71},
+ 0x00,0x00,0x00,0x10,(c8)0x80,0x00,0x00,(c8)0xAA,0x00,0x38,(c8)0x9B,0x71},
16,
XvPlanar,
1,
@@ -857,32 +858,35 @@ A(PutImage)(ScrnInfoPtr pScrn, short src_x, short src_y,
break;
}
pPriv->Bps = pPriv->Bpp * pPriv->xden;
- offset = (area->box.y1 * pitch) + (top * dstPitch);
- dst_start = ((unsigned char *)pApm->FbBase) + (pPriv->data = offset + left);
- switch(id) {
- case 0x32315659:
- top &= ~1;
- tmp = ((top >> 1) * srcPitch2) + (left >> 2);
- offset2 += tmp;
- offset3 += tmp;
- nlines = ((((y2 + 0xffff) >> 16) + 1) & ~1) - top;
- ApmCopyMungedData(buf + (top * srcPitch) + (left >> 1),
- buf + offset2, buf + offset3, dst_start,
- srcPitch, srcPitch2, dstPitch, nlines, npixels);
- break;
- default:
- if (id == 0x32335652)
- npixels <<= 1;
- else if (id == 0x59595959)
- npixels >>= 1;
- buf += (top * srcPitch) + left;
- nlines = ((y2 + 0xffff) >> 16) - top;
- if (offscreen)
- ApmCopyData(buf, dst_start, srcPitch, dstPitch, nlines, npixels);
- else
- pPriv->data = buf - (unsigned char *)pApm->FbBase;
- break;
+ if (offscreen) {
+ offset = (area->box.y1 * pitch) + (top * dstPitch);
+ dst_start = ((unsigned char *)pApm->FbBase) +
+ (pPriv->data = offset + left);
+ switch(id) {
+ case 0x32315659:
+ top &= ~1;
+ tmp = ((top >> 1) * srcPitch2) + (left >> 2);
+ offset2 += tmp;
+ offset3 += tmp;
+ nlines = ((((y2 + 0xffff) >> 16) + 1) & ~1) - top;
+ ApmCopyMungedData(buf + (top * srcPitch) + (left >> 1),
+ buf + offset2, buf + offset3, dst_start,
+ srcPitch, srcPitch2, dstPitch, nlines, npixels);
+ break;
+ default:
+ if (id == 0x32335652)
+ npixels <<= 1;
+ else if (id == 0x59595959)
+ npixels >>= 1;
+ buf += (top * srcPitch) + left;
+ nlines = ((y2 + 0xffff) >> 16) - top;
+ if (offscreen)
+ ApmCopyData(buf, dst_start, srcPitch, dstPitch, nlines, npixels);
+ break;
+ }
}
+ else
+ pPriv->data = buf - (unsigned char *)pApm->FbBase;
pPriv->on = 1;
A(WaitForFifo)(pApm, 3);
WRXW(pPriv->reg + 0x02, dstPitch >> 2);
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile
index 862915c88..4c5b293aa 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile,v 1.12 2000/02/18 12:19:10 tsi Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/Imakefile,v 1.13 2000/03/03 01:05:34 dawes Exp $
XCOMM
XCOMM Copyright 1997 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
XCOMM
@@ -66,10 +66,13 @@ ObjectModuleTarget(ati,$(OBJS))
InstallObjectModule(ati,$(MODULEDIR),drivers)
-#ifndef OS2Architecture
-DependTarget()
+#if !defined(XF86DriverSDK)
+CppManTarget(ati,)
+InstallModuleManPage(ati)
#endif
+DependTarget()
+
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/ati)
InstallDriverSDKNonExecFile(ati.c,$(DRIVERSDKDIR)/drivers/ati)
InstallDriverSDKNonExecFile(ati.h,$(DRIVERSDKDIR)/drivers/ati)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/ati.cpp b/xc/programs/Xserver/hw/xfree86/drivers/ati/ati.cpp
new file mode 100644
index 000000000..28ba4ed72
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/ati.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ati.cpp,v 1.1 2000/03/03 01:05:34 dawes Exp $
+.TH ATI __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+ati \- ATI video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""ati"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B ati
+is an XFree86 driver for ATI video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B ati
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h
index 22ba9e291..ec2240b74 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h,v 1.5 2000/02/18 12:19:23 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiio.h,v 1.6 2000/03/01 16:00:57 tsi Exp $ */
/*
* Copyright 1997 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -117,12 +117,18 @@ extern void ATIAccessMach64PLLReg FunctionPrototype((ATIPtr, const CARD8,
{ \
while (inw(GP_STAT) & (GPBUSY | 1)); \
}
-#define ProbeWaitIdleEmpty() \
- { \
- int _i; \
- for (_i = 0; _i < 100000; _i++) \
- if (!(inw(GP_STAT) & (GPBUSY | 1))) \
- break; \
+#define ProbeWaitIdleEmpty() \
+ { \
+ int _i; \
+ CARD16 _value; \
+ for (_i = 0; _i < 100000; _i++) \
+ { \
+ _value = inw(GP_STAT); \
+ if (_value == (CARD16)(-1)) \
+ break; \
+ if (!(_value & (GPBUSY | 1))) \
+ break; \
+ } \
}
/* Wait until GP has data available */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c
index a75e5dc77..c69d77a21 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c,v 1.4 2000/02/18 12:19:24 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atilock.c,v 1.5 2000/03/07 16:13:34 tsi Exp $ */
/*
* Copyright 1999 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -113,13 +113,13 @@ ATIUnlock
outl(pATI->CPIO_GEN_TEST_CNTL, tmp | GEN_GUI_EN);
pATI->LockData.crtc_gen_cntl = inl(pATI->CPIO_CRTC_GEN_CNTL) &
~(CRTC_EN | CRTC_LOCK_REGS);
- tmp = pATI->LockData.crtc_gen_cntl & ~CRTC_EXT_DISP_EN;
+ tmp = pATI->LockData.crtc_gen_cntl & ~CRTC_EN;
if (pATI->Chip >= ATI_CHIP_264XL)
tmp = (tmp & ~CRTC_INT_ENS_X) | CRTC_INT_ACKS_X;
outl(pATI->CPIO_CRTC_GEN_CNTL, tmp | CRTC_EN);
outl(pATI->CPIO_CRTC_GEN_CNTL, tmp);
outl(pATI->CPIO_CRTC_GEN_CNTL, tmp | CRTC_EN);
- if (pATI->LCDPanelID >= 0)
+ if ((pATI->LCDPanelID >= 0) && (pATI->Chip != ATI_CHIP_264LT))
{
pATI->LockData.lcd_index = inl(pATI->CPIO_LCD_INDEX);
if (pATI->Chip >= ATI_CHIP_264XL)
@@ -476,7 +476,7 @@ ATILock
outl(pATI->CPIO_DAC_CNTL, pATI->LockData.dac_cntl);
if (pATI->Chip < ATI_CHIP_264CT)
outl(pATI->CPIO_MEM_INFO, pATI->LockData.mem_info);
- else if (pATI->LCDPanelID >= 0)
+ else if ((pATI->LCDPanelID >= 0) && (pATI->Chip != ATI_CHIP_264LT))
outl(pATI->CPIO_LCD_INDEX, pATI->LockData.lcd_index);
}
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c
index 39bc21762..4e8fdd07b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c,v 1.10 2000/02/18 12:19:25 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atimach64.c,v 1.12 2000/03/03 04:47:13 tsi Exp $ */
/*
* Copyright 1997 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -350,7 +350,7 @@ ATIMach64Save
pATIHW->config_cntl = inl(pATI->CPIO_CONFIG_CNTL);
/* Save draw engine state */
- if ((pATI->OptionAccel) && (pATIHW == &pATI->OldHW))
+ if (pATI->OptionAccel && (pATIHW == &pATI->OldHW))
{
ATIMach64WaitForIdle();
@@ -634,6 +634,7 @@ ATIMach64Set
/* Load draw engine */
if (pATI->OptionAccel)
{
+ pATI->EngineIsBusy = TRUE; /* Force engine poll */
ATIMach64WaitForIdle();
/* Load FIFO size */
@@ -763,47 +764,95 @@ ATIMach64Sync
}
/*
- * ATIMach64SetClippingRectangle --
+ * ATIMach64SetupForScreenToScreenCopy --
*
- * This function sets the draw engine's clipping rectangle.
+ * This function sets up the draw engine for a series of screen-to-screen copy
+ * operations.
*/
static void
-ATIMach64SetClippingRectangle
+ATIMach64SetupForScreenToScreenCopy
(
- ScrnInfoPtr pScreenInfo,
- int left,
- int top,
- int right,
- int bottom
+ ScrnInfoPtr pScreenInfo,
+ int xdir,
+ int ydir,
+ int rop,
+ unsigned int planemask,
+ int TransparencyColour
)
{
ATIPtr pATI = ATIPTR(pScreenInfo);
- ATIMach64WaitForFIFO(2);
- outm(SC_LEFT_RIGHT, SetWord(((right + 1) * pATI->PitchModifier) - 1, 1) |
- SetWord(left * pATI->PitchModifier, 0));
- outm(SC_TOP_BOTTOM, SetWord(bottom, 1) | SetWord(top, 0));
+ pATI->dst_cntl = 0;
+
+ if (ydir > 0)
+ pATI->dst_cntl |= DST_Y_DIR;
+ if (xdir > 0)
+ pATI->dst_cntl |= DST_X_DIR;
+
+ if (pATI->PitchModifier == 1)
+ {
+ ATIMach64WaitForFIFO(4);
+ outm(DST_CNTL, pATI->dst_cntl);
+ }
+ else
+ {
+ ATIMach64WaitForFIFO(3);
+ pATI->dst_cntl |= DST_24_ROT_EN;
+ }
+
+ outm(DP_MIX, SetBits(ATIMach64ALU[rop], DP_FRGD_MIX));
+ outm(DP_WRITE_MASK, planemask);
+ outm(DP_SRC, SetBits(DP_MONO_SRC_ALLONES, DP_MONO_SRC) |
+ SetBits(SRC_BLIT, DP_FRGD_SRC) | SetBits(SRC_BKGD, DP_BKGD_SRC));
}
/*
- * ATIMach64DisableClipping --
+ * ATIMach64SubsequentScreenToScreenCopy --
*
- * This function resets the draw engine's clipping rectangle to include the
- * entire virtual resolution.
+ * This function performs a screen-to-screen copy operation.
*/
static void
-ATIMach64DisableClipping
+ATIMach64SubsequentScreenToScreenCopy
(
- ScrnInfoPtr pScreenInfo
+ ScrnInfoPtr pScreenInfo,
+ int xSrc,
+ int ySrc,
+ int xDst,
+ int yDst,
+ int w,
+ int h
)
{
ATIPtr pATI = ATIPTR(pScreenInfo);
- ATIMach64WaitForFIFO(2);
- outm(SC_LEFT_RIGHT,
- SetWord(pATI->NewHW.sc_right, 1) | SetWord(pATI->NewHW.sc_left, 0));
- outm(SC_TOP_BOTTOM,
- SetWord(pATI->NewHW.sc_bottom, 1) | SetWord(pATI->NewHW.sc_top, 0));
+ xSrc *= pATI->PitchModifier;
+ xDst *= pATI->PitchModifier;
+ w *= pATI->PitchModifier;
+
+ if (!(pATI->dst_cntl & DST_X_DIR))
+ {
+ xSrc += w - 1;
+ xDst += w - 1;
+ }
+
+ if (!(pATI->dst_cntl & DST_Y_DIR))
+ {
+ ySrc += h - 1;
+ yDst += h - 1;
+ }
+
+ if (pATI->PitchModifier == 1)
+ ATIMach64WaitForFIFO(4);
+ else
+ {
+ ATIMach64WaitForFIFO(5);
+ outm(DST_CNTL, pATI->dst_cntl | SetBits((xDst / 4) % 6, DST_24_ROT));
+ }
+
+ outm(SRC_Y_X, SetWord(xSrc, 1) | SetWord(ySrc, 0));
+ outm(SRC_WIDTH1, w);
+ outm(DST_Y_X, SetWord(xDst, 1) | SetWord(yDst, 0));
+ outm(DST_HEIGHT_WIDTH, SetWord(w, 1) | SetWord(h, 0));
}
/*
@@ -830,8 +879,7 @@ ATIMach64SetupForSolidFill
outm(DST_CNTL, pATI->NewHW.dst_cntl);
}
- outm(DP_MIX, SetBits(ATIMach64ALU[rop], DP_FRGD_MIX) |
- SetBits(MIX_DST, DP_BKGD_MIX));
+ outm(DP_MIX, SetBits(ATIMach64ALU[rop], DP_FRGD_MIX));
outm(DP_WRITE_MASK, planemask);
outm(DP_SRC, SetBits(DP_MONO_SRC_ALLONES, DP_MONO_SRC) |
SetBits(SRC_FRGD, DP_FRGD_SRC) | SetBits(SRC_BKGD, DP_BKGD_SRC));
@@ -872,6 +920,50 @@ ATIMach64SubsequentSolidFillRect
}
/*
+ * ATIMach64SetClippingRectangle --
+ *
+ * This function sets the draw engine's clipping rectangle.
+ */
+static void
+ATIMach64SetClippingRectangle
+(
+ ScrnInfoPtr pScreenInfo,
+ int left,
+ int top,
+ int right,
+ int bottom
+)
+{
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+
+ ATIMach64WaitForFIFO(2);
+ outm(SC_LEFT_RIGHT, SetWord(((right + 1) * pATI->PitchModifier) - 1, 1) |
+ SetWord(left * pATI->PitchModifier, 0));
+ outm(SC_TOP_BOTTOM, SetWord(bottom, 1) | SetWord(top, 0));
+}
+
+/*
+ * ATIMach64DisableClipping --
+ *
+ * This function resets the draw engine's clipping rectangle to include the
+ * entire virtual resolution.
+ */
+static void
+ATIMach64DisableClipping
+(
+ ScrnInfoPtr pScreenInfo
+)
+{
+ ATIPtr pATI = ATIPTR(pScreenInfo);
+
+ ATIMach64WaitForFIFO(2);
+ outm(SC_LEFT_RIGHT,
+ SetWord(pATI->NewHW.sc_right, 1) | SetWord(pATI->NewHW.sc_left, 0));
+ outm(SC_TOP_BOTTOM,
+ SetWord(pATI->NewHW.sc_bottom, 1) | SetWord(pATI->NewHW.sc_top, 0));
+}
+
+/*
* ATIMach64AccelInit --
*
* This function fills in structure fields needed for acceleration on Mach64
@@ -897,6 +989,16 @@ ATIMach64AccelInit
/* Sync */
pXAAInfo->Sync = ATIMach64Sync;
+ /* Screen-to-screen copy */
+ pXAAInfo->ScreenToScreenCopyFlags = NO_TRANSPARENCY; /* For now */
+ pXAAInfo->SetupForScreenToScreenCopy = ATIMach64SetupForScreenToScreenCopy;
+ pXAAInfo->SubsequentScreenToScreenCopy =
+ ATIMach64SubsequentScreenToScreenCopy;
+
+ /* Solid fills */
+ pXAAInfo->SetupForSolidFill = ATIMach64SetupForSolidFill;
+ pXAAInfo->SubsequentSolidFillRect = ATIMach64SubsequentSolidFillRect;
+
/* Clips */
pXAAInfo->ClippingFlags = HARDWARE_CLIP_SCREEN_TO_SCREEN_COLOR_EXPAND |
HARDWARE_CLIP_SCREEN_TO_SCREEN_COPY | HARDWARE_CLIP_MONO_8x8_FILL |
@@ -905,9 +1007,5 @@ ATIMach64AccelInit
pXAAInfo->SetClippingRectangle = ATIMach64SetClippingRectangle;
pXAAInfo->DisableClipping = ATIMach64DisableClipping;
- /* Solid fills */
- pXAAInfo->SetupForSolidFill = ATIMach64SetupForSolidFill;
- pXAAInfo->SubsequentSolidFillRect = ATIMach64SubsequentSolidFillRect;
-
return TRUE;
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c
index 848349f90..0ed5146a1 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c,v 1.12 2000/02/18 12:19:28 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atipreinit.c,v 1.16 2000/03/07 16:31:53 tsi Exp $ */
/*
* Copyright 1999 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -349,6 +349,9 @@ ATIPreInit
int minPitch, maxPitch = 0xFFU, pitchInc;
LookupModeFlags Strategy = LOOKUP_CLOSEST_CLOCK;
+ if (flags & PROBE_DETECT)
+ return FALSE;
+
if (pScreenInfo->numEntities != 1)
{
xf86DrvMsg(pScreenInfo->scrnIndex, X_ERROR,
@@ -842,6 +845,8 @@ ATIPreInit
if (LCDPanelInfo > 0)
{
+ CARD8 ClockMask, PostMask, xpDiv, maxpDiv, pDiv;
+
pATI->LCDPanelID = BIOSByte(LCDPanelInfo);
pATI->LCDHorizontal = BIOSWord(LCDPanelInfo + 0x19U);
pATI->LCDVertical = BIOSWord(LCDPanelInfo + 0x1BU);
@@ -852,12 +857,17 @@ ATIPreInit
else
i = (inb(R_GENMO) & 0x0CU) >> 2;
- /* Get post divider */
- j = (GetBits(ATIGetMach64PLLReg(PLL_XCLK_CNTL),
- PLL_VCLK0_XDIV << i) *
- (MaxBits(PLL_VCLK0_POST_DIV) + 1)) |
- GetBits(ATIGetMach64PLLReg(PLL_VCLK_POST_DIV),
- PLL_VCLK0_POST_DIV << (i * 2));
+ /*
+ * Get post divider. A GCC bug has caused the following
+ * expression to be broken down into its individual
+ * components.
+ */
+ ClockMask = PLL_VCLK0_XDIV << i;
+ PostMask = PLL_VCLK0_POST_DIV << (i * 2);
+ xpDiv = GetBits(ATIGetMach64PLLReg(PLL_XCLK_CNTL), ClockMask);
+ maxpDiv = MaxBits(PLL_VCLK0_POST_DIV) + 1;
+ pDiv = GetBits(ATIGetMach64PLLReg(PLL_VCLK_POST_DIV), PostMask);
+ j = (xpDiv * maxpDiv) | pDiv;
/* Calculate clock of mode on entry */
Numerator = ATIGetMach64PLLReg(PLL_VCLK0_FB_DIV + i) *
@@ -1285,12 +1295,13 @@ ATIPreInit
if ((IOValue2 &= pGDev->MemBase) &&
(IOValue2 <= (MaxBits(CFG_MEM_AP_LOC) << 22)))
pATI->LinearBase = IOValue2;
- }
- if (pATI->LinearBase)
- {
- if ((pATI->BusType != ATI_BUS_PCI) &&
- (pATI->BusType != ATI_BUS_AGP))
+ if (!pATI->LinearBase)
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
+ "Linear aperture not configured. Specify"
+ " \"MemBase\" override in XF86Config \"Device\""
+ " section.\n");
+ else
{
if (pATI->VideoRAM < 4096)
pATI->LinearSize = 4 * 1024 * 1024;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c
index c22795f45..67e6174a7 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c,v 1.9 2000/02/18 12:19:30 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprint.c,v 1.11 2000/03/07 16:13:35 tsi Exp $ */
/*
* Copyright 1997 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -45,9 +45,12 @@ ATIPrintBIOS
unsigned int Index = Start & ~(16U - 1U);
unsigned char Printable[17];
+ if (xf86GetVerbosity() <= 4)
+ return;
+
memset(Printable, 0, SizeOf(Printable));
- xf86ErrorFVerb(4, "\n BIOS data at 0x%08X:", Start + pATI->BIOSBase);
+ xf86ErrorFVerb(5, "\n BIOS data at 0x%08X:", Start + pATI->BIOSBase);
for (; Index < ((End + (16U - 1U)) & ~(16U - 1U)); Index++)
{
@@ -56,20 +59,20 @@ ATIPrintBIOS
if (!(Index & (16U - 1U)))
{
if (Printable[0])
- xf86ErrorFVerb(4, " |%s|", Printable);
+ xf86ErrorFVerb(5, " |%s|", Printable);
Char = Printable;
- xf86ErrorFVerb(4, "\n 0x%08X: ", Index + pATI->BIOSBase);
+ xf86ErrorFVerb(5, "\n 0x%08X: ", Index + pATI->BIOSBase);
}
- xf86ErrorFVerb(4, " ");
+ xf86ErrorFVerb(5, " ");
}
if ((Index < Start) || (Index >= End))
{
- xf86ErrorFVerb(4, " ");
+ xf86ErrorFVerb(5, " ");
*Char++ = ' ';
}
else
{
- xf86ErrorFVerb(4, "%02X", BIOS[Index]);
+ xf86ErrorFVerb(5, "%02X", BIOS[Index]);
if (isprint(BIOS[Index]))
*Char++ = BIOS[Index];
else
@@ -77,7 +80,7 @@ ATIPrintBIOS
}
}
- xf86ErrorFVerb(4, " |%s|\n", Printable);
+ xf86ErrorFVerb(5, " |%s|\n", Printable);
}
/*
@@ -490,7 +493,7 @@ ATIPrintRegisters
if (pATI->pBlock[0])
{
xf86ErrorFVerb(4, " Block 0 aperture at 0x%08X.\n", pATI->pBlock[0]);
- if (inl(pATI->CPIOBase) == *((CARD32 *)pATI->pBlock[0]))
+ if (inl(pATI->CPIOBase) == MMIO_IN32(pATI->pBlock[0], 0))
xf86ErrorFVerb(4, " MMIO registers are correctly mapped.\n");
else
xf86ErrorFVerb(4, " MMIO mapping is in error!\n");
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c b/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c
index dac0fe833..36c5735a7 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c,v 1.17 2000/02/18 12:19:32 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atiprobe.c,v 1.19 2000/03/07 16:13:36 tsi Exp $ */
/*
* Copyright 1997 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -714,7 +714,9 @@ ATIAssignVGA
{
/*
* Some adapters are reputed to append ATI extended VGA registers
- * to the VGA Graphics controller registers.
+ * to the VGA Graphics controller registers. In particular, 0x01CE
+ * cannot, in general, be used in a PCI environment due to routing
+ * of I/O through the bus tree.
*/
pATI->CPIO_VGAWonder = GRAX;
ATIVGAWonderProbe(pATI, p8514, ProbeFlags);
@@ -833,14 +835,6 @@ ATIProbe
(_p)->iEntity = -2; \
} while (0)
- /*
- * This driver doesn't invoke, nor depend on, any support for fbdev. Also,
- * temporarily disable -configure support until it gets fixed to not depend
- * on optional driver behaviour.
- */
- if (flags & (PROBE_DETECTFBDEV | PROBE_DETECTPCI | PROBE_DETECTISA))
- return FALSE;
-
if (!(flags & PROBE_DETECT))
{
/*
@@ -1519,7 +1513,17 @@ NoVGAWonder:;
((pATI->Adapter != ATI_ADAPTER_8514A) ||
((pATI->VGAAdapter != ATI_ADAPTER_VGA) &&
(pATI->VGAAdapter != ATI_ADAPTER_NONE))))
+ {
nAdapter++;
+ pGDev = xf86AddDeviceToConfigure(ATI_DRIVER_NAME,
+ pATI->PCIInfo, ATI_CHIPSET_ATI);
+ if (pGDev)
+ {
+ /* Fill in additional information */
+ pGDev->vendor = ATI_NAME;
+ pGDev->chipset = (char *)ATIChipsetNames[ATI_CHIPSET_ATI];
+ }
+ }
xfree(pATI);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h
index 5aeb80cb9..7b6f65860 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h,v 1.11 2000/02/18 12:19:40 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/atistruct.h,v 1.12 2000/03/03 04:47:13 tsi Exp $ */
/*
* Copyright 1999 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -216,6 +216,7 @@ typedef struct _ATIRec
XAAInfoRecPtr pXAAInfo;
int nAvailableFIFOEntries, nFIFOEntries;
CARD8 EngineIsBusy, EngineIsLocked, PitchModifier;
+ CARD32 dst_cntl; /* For SetupFor/Subsequent communication */
/*
* Clock-related definitions.
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h b/xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h
index 65a55f442..160924266 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h,v 1.11 2000/02/18 12:19:43 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/ati/ativersion.h,v 1.13 2000/03/07 16:13:37 tsi Exp $ */
/*
* Copyright 1997 through 2000 by Marc Aurele La France (TSI @ UQV), tsi@ualberta.ca
*
@@ -27,12 +27,13 @@
#define ATI_NAME "ATI"
#define ATI_DRIVER_NAME "ati"
-#define ATI_VERSION_NAME "5.3.0"
+#define ATI_VERSION_NAME "5.3.2"
#define ATI_VERSION_MAJOR 5
#define ATI_VERSION_MINOR 3
-#define ATI_VERSION_PATCH 0
+#define ATI_VERSION_PATCH 2
-#define ATI_VERSION_CURRENT ((ATI_VERSION_MAJOR << 16) | ATI_VERSION_MINOR)
+#define ATI_VERSION_CURRENT \
+ ((ATI_VERSION_MAJOR << 20) | (ATI_VERSION_MINOR << 10) | ATI_VERSION_PATCH)
#endif /* ___ATIVERSION_H___ */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp b/xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp
index 5bd02cfb2..3c9842327 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp,v 1.2 1999/11/19 14:59:17 hohndel Exp $
-.TH CHIPS __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/chips.cpp,v 1.3 2000/03/03 01:05:34 dawes Exp $
+.TH CHIPS __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
chips \- Chips and Technologies video driver
.SH SYNOPSIS
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c
index 808283a2d..bf123fa87 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c,v 1.80 2000/02/21 19:22:58 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.c,v 1.84 2000/03/06 23:54:08 dawes Exp $ */
/*
* Copyright 1993 by Jon Block <block@frc.com>
@@ -7,20 +7,20 @@
*
* Major Contributors to XFree86 3.2
* Modified 1995/6 by Nozomi Ytow
- * Modified 1996 by Egbert Eich <Egbert.Eich@Physik.TH-Darmstadt.DE>
- * Modified 1996 by David Bateman <dbateman@ee.uts.edu.au>
+ * Modified 1996 by Egbert Eich <eich@xfree86.org>
+ * Modified 1996 by David Bateman <dbateman@club-internet.fr>
* Modified 1996 by Xavier Ducoin <xavier@rd.lectra.fr>
*
* Contributors to XFree86 3.2
* Modified 1995/6 by Ken Raeburn <raeburn@raeburn.org>
* Modified 1996 by Shigehiro Nomura <nomura@sm.sony.co.jp>
- * Modified 1996 by Marc de Courville <courvill@sig.enst.fr>
+ * Modified 1996 by Marc de Courville <marc@courville.org>
* Modified 1996 by Adam Sulmicki <adam@cfar.umd.edu>
* Modified 1996 by Jens Maurer <jmaurer@cck.uni-kl.de>
*
* Large parts rewritten for XFree86 4.0
- * Modified 1998 by David Bateman <dbateman@eng.uts.edu.au>
- * Modified 1998 by Egbert Eich <Egbert.Eich@Physik.TH-Darmstadt.DE>
+ * Modified 1998 by David Bateman <dbateman@club-internet.fr>
+ * Modified 1998 by Egbert Eich <eich@xfree86.org>
* Modified 1998 by Nozomi Ytow
*
* Permission to use, copy, modify, distribute, and sell this software and its
@@ -699,6 +699,11 @@ static const char *shadowSymbols[] = {
NULL
};
+static const char *vbeSymbols[] = {
+ "VBEInit",
+ NULL
+};
+
#ifdef XFree86LOADER
static MODULESETUPPROTO(chipsSetup);
@@ -743,7 +748,7 @@ chipsSetup(pointer module, pointer opts, int *errmaj, int *errmin)
*/
LoaderRefSymLists(vgahwSymbols, cfbSymbols, xaaSymbols,
ramdacSymbols, ddcSymbols, i2cSymbols,
- shadowSymbols, NULL);
+ shadowSymbols, vbeSymbols, NULL);
/*
* The return value must be non-NULL on success even though there
@@ -822,7 +827,6 @@ CHIPSProbe(DriverPtr drv, int flags)
int *usedChips;
int i;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* Find the config file Device sections that match this
* driver, and return if there are none.
@@ -837,12 +841,10 @@ CHIPSProbe(DriverPtr drv, int flags)
CHIPSChipsets, CHIPSPCIchipsets,
devSections,numDevSections, drv,
&usedChips);
- if ((numUsed > 0) && (flags & PROBE_DETECTPCI))
- return TRUE;
- if ((numUsed <= 0) && (flags & PROBE_DETECTPCI))
- return FALSE;
if (numUsed > 0) {
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
/* Allocate a ScrnInfoRec */
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
pScrn->driverVersion = VERSION;
@@ -860,6 +862,8 @@ CHIPSProbe(DriverPtr drv, int flags)
foundScreen = TRUE;
xf86ConfigActivePciEntity(pScrn,usedChips[i],CHIPSPCIchipsets,
NULL,NULL,NULL,NULL,NULL);
+ }
+ xfree(usedChips);
}
}
@@ -867,10 +871,10 @@ CHIPSProbe(DriverPtr drv, int flags)
numUsed = xf86MatchIsaInstances(CHIPS_NAME,CHIPSChipsets,CHIPSISAchipsets,
drv,chipsFindIsaDevice,devSections,
numDevSections,&usedChips);
- if(numUsed > 0)
- if (flags & PROBE_DETECTISA)
- return TRUE;
- for (i = 0; i < numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
pScrn->driverVersion = VERSION;
@@ -889,9 +893,9 @@ CHIPSProbe(DriverPtr drv, int flags)
xf86ConfigActiveIsaEntity(pScrn,usedChips[i],CHIPSISAchipsets,
NULL,NULL,NULL,NULL,NULL);
}
+ xfree(usedChips);
}
- if (devSections)
- xfree(devSections);
+ xfree(devSections);
return foundScreen;
}
@@ -991,6 +995,8 @@ CHIPSPreInit(ScrnInfoPtr pScrn, int flags)
const char *reqSym = NULL;
Bool res = FALSE;
+ if (flags & PROBE_DETECT) return FALSE;
+
/* The vgahw module should be loaded here when needed */
if (!xf86LoadSubModule(pScrn, "vgahw"))
return FALSE;
@@ -1040,12 +1046,10 @@ CHIPSPreInit(ScrnInfoPtr pScrn, int flags)
#endif
}
#endif
-#ifdef XFree86LOADER
if (xf86LoadSubModule(pScrn, "vbe")) {
cPtr->pVbe = VBEInit(NULL,cPtr->pEnt->index);
}
-#endif
/* Now that we've identified the chipset, setup the capabilities flags */
switch (cPtr->Chipset) {
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h b/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h
index 02ca8f3e5..c708efb8e 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h
@@ -1,7 +1,7 @@
/* $XConsortium: ct_driver.h /main/3 1996/10/27 11:49:29 kaleb $ */
/*
- * Modified 1996 by Egbert Eich <Egbert.Eich@Physik.TH-Darmstadt.DE>
- * Modified 1996 by David Bateman <dbateman@ee.uts.edu.au>
+ * Modified 1996 by Egbert Eich <eich@xfree86.org>
+ * Modified 1996 by David Bateman <dbateman@club-internet.fr>
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@ -22,7 +22,7 @@
* PERFORMANCE OF THIS SOFTWARE.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h,v 1.25 2000/02/08 13:13:12 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/chips/ct_driver.h,v 1.26 2000/03/05 16:59:13 dawes Exp $ */
#ifndef _CT_DRIVER_H_
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile
index 147d67d59..b7fa4ce61 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile,v 1.26 2000/02/16 14:43:51 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/Imakefile,v 1.27 2000/03/03 01:05:35 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the Cirrus Logic driver.
XCOMM
@@ -86,6 +86,11 @@ SubDriverObjectModuleTarget(cirrus_laguna,$(LOBJS))
InstallSubDriverObjectModule(cirrus_laguna,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(cirrus,)
+InstallModuleManPage(cirrus)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(CirrusClk.c,$(DRIVERSDKDIR)/drivers/cirrus)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c
index 2da62431a..4513adfa8 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c
@@ -9,7 +9,7 @@
* Guy DESBIEF
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c,v 1.6 2000/02/21 19:22:59 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/alp_driver.c,v 1.8 2000/02/27 02:45:26 alanh Exp $ */
/* Everything using inb/outb, etc needs "compiler.h" */
#include "compiler.h"
@@ -511,6 +511,8 @@ AlpPreInit(ScrnInfoPtr pScrn, int flags)
ClockRangePtr clockRanges;
char *mod = NULL;
char *s;
+
+ if (flags & PROBE_DETECT) return FALSE;
#ifdef ALP_DEBUG
ErrorF("AlpPreInit\n");
@@ -1627,7 +1629,7 @@ AlpScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n)
xf86XVScreenInit(pScreen, ptr, n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h
index 47533712e..016702037 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h,v 1.14 2000/02/08 13:13:14 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir.h,v 1.15 2000/03/05 23:47:50 dawes Exp $ */
/* (c) Itai Nahshon */
@@ -9,7 +9,9 @@
#include "xaa.h"
#include "xf86i2c.h"
+#if 0
#define CIR_DEBUG
+#endif
/* Card-specific driver information */
#define CIRPTR(p) ((CirPtr)((p)->driverPrivate))
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c
index b123cbb41..d7eb3a0c7 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c
@@ -9,7 +9,7 @@
* Guy DESBIEF
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c,v 1.51 2000/02/18 12:19:57 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/cir_driver.c,v 1.54 2000/03/08 21:21:29 dawes Exp $ */
/* All drivers should typically include these */
#include "xf86.h"
@@ -180,13 +180,32 @@ CIRAvailableOptions(int chipid, int busid)
int vendor = (chipid & 0xffff0000) >> 16;
int chip = chipid & 0xffff;
+#if 0
if (chip == PCI_CHIP_GD5462 ||
chip == PCI_CHIP_GD5464 ||
chip == PCI_CHIP_GD5464BD ||
chip == PCI_CHIP_GD5465)
- return LgAvailableOptions(chipid);
- else
- return AlpAvailableOptions(chipid);
+ if (!lg_loaded) {
+ if(!xf86LoadSubModule(pScrn, "cirrus_laguna")) {
+ return NULL;
+ }
+ xf86LoaderReqSymLists(lgSymbols, NULL);
+ lg_loaded = TRUE;
+ }
+ return LgAvailableOptions(chipid);
+ } else {
+ if (!alp_loaded) {
+ if (!xf86LoadSubModule(pScrn, "cirrus_alpine")) {
+ return NULL;
+ }
+ xf86LoaderReqSymLists(alpSymbols, NULL);
+ alp_loaded = TRUE;
+ }
+ return AlpAvailableOptions(chipid);
+ }
+#else
+ return NULL;
+#endif
}
/* Mandatory */
@@ -222,8 +241,6 @@ CIRProbe(DriverPtr drv, int flags)
* fits in with what is given in the config file, and allow the config
* file info to override any contradictions.
*/
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* All of the cards this driver supports are PCI, so the "probing" just
@@ -246,10 +263,9 @@ CIRProbe(DriverPtr drv, int flags)
devSections = NULL;
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
/* Allocate a ScrnInfoRec and claim the slot */
@@ -279,7 +295,7 @@ CIRProbe(DriverPtr drv, int flags)
xf86LoaderReqSymLists(lgSymbols, NULL);
lg_loaded = TRUE;
}
- subProbe = LgProbe;
+ subProbe = LgProbe;
} else {
if (!alp_loaded) {
if (!xf86LoadSubModule(pScrn, "cirrus_alpine")) {
@@ -289,7 +305,7 @@ CIRProbe(DriverPtr drv, int flags)
xf86LoaderReqSymLists(alpSymbols, NULL);
alp_loaded = TRUE;
}
- subProbe = AlpProbe;
+ subProbe = AlpProbe;
}
if (subProbe(usedChips[i], pScrn))
foundScreen = TRUE;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cirrus.cpp b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cirrus.cpp
new file mode 100644
index 000000000..a5c29e047
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/cirrus.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/cirrus.cpp,v 1.1 2000/03/03 01:05:35 dawes Exp $
+.TH CIRRUS __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+cirrus \- Cirrus Logic video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""cirrus"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B cirrus
+is an XFree86 driver for Cirrus Logic video chips.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B cirrus
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c
index 0dc8c579f..2c253390e 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c
@@ -13,7 +13,7 @@
* David Dawes, Andrew E. Mileski, Leonard N. Zubkoff,
* Guy DESBIEF, Itai Nahshon.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c,v 1.22 2000/02/21 19:23:00 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cirrus/lg_driver.c,v 1.24 2000/02/27 02:45:26 alanh Exp $ */
#define EXPERIMENTAL
@@ -431,6 +431,8 @@ LgPreInit(ScrnInfoPtr pScrn, int flags)
char *mod = NULL;
int fbPCIReg, ioPCIReg;
char *s;
+
+ if (flags & PROBE_DETECT) return FALSE;
#ifdef LG_DEBUG
ErrorF("LgPreInit\n");
@@ -1544,7 +1546,7 @@ LgScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n)
xf86XVScreenInit(pScreen, ptr, n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile
index b5c1a9c1f..2bc25102b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile,v 1.1 2000/02/13 00:56:09 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/Imakefile,v 1.2 2000/03/03 01:05:35 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the CYRIX driver.
XCOMM
@@ -26,4 +26,9 @@ ObjectModuleTarget(cyrix,$(OBJS))
InstallObjectModule(cyrix,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(cyrix,)
+InstallModuleManPage(cyrix)
+#endif
+
DependTarget()
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix.cpp b/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix.cpp
new file mode 100644
index 000000000..b88b832ac
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix.cpp,v 1.1 2000/03/03 01:05:36 dawes Exp $
+.TH CYRIX __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+cyrix \- Cyrix video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""cyrix"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B cyrix
+is an XFree86 driver for Cyrix video chips.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B cyrix
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c
index fe80b998c..40a61e271 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c
@@ -26,7 +26,7 @@
* Dirk H. Hohndel (hohndel@suse.de),
* Portions: the GGI project & confidential CYRIX databooks.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c,v 1.4 2000/02/21 19:23:01 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/cyrix/cyrix_driver.c,v 1.6 2000/03/01 16:01:07 tsi Exp $ */
#include "compiler.h"
#include "fb.h"
@@ -318,8 +318,6 @@ CYRIXProbe(DriverPtr drv, int flags)
int device_step, device_revision;
ScrnInfoPtr pScrn;
- if (flags & PROBE_DETECT) return FALSE;
-
/*
* The aim here is to find all cards that this driver can handle,
* and for the ones not already claimed by another driver, claim the
@@ -347,6 +345,9 @@ CYRIXProbe(DriverPtr drv, int flags)
CYRIXFindIsaDevice,devSections,
numDevSections,&usedChips);
+ if (numUsed <= 0)
+ return FALSE;
+
/* use register probing to decide whether the chip is
* `suitable' for us.
*/
@@ -386,6 +387,9 @@ CYRIXProbe(DriverPtr drv, int flags)
/* end GGI MediaGX driver based code */
if (padsize == 0) return (FALSE);
+ if (flags & PROBE_DETECT)
+ return TRUE;
+
xf86ErrorF("%s: GX_BASE: 0x%x\n",CYRIX_NAME, physbase);
xf86ErrorF("%s: Scratchpad size: %d kbytes\n",CYRIX_NAME, padsize);
@@ -417,9 +421,7 @@ CYRIXProbe(DriverPtr drv, int flags)
/* Free it since we don't need that list after this */
xfree(devSections);
- devSections = NULL;
- if (numUsed >= 0)
for (i=0; i < numUsed; i++) {
@@ -440,8 +442,8 @@ CYRIXProbe(DriverPtr drv, int flags)
pScrn->ValidMode = CYRIXValidMode;
xf86ConfigActiveIsaEntity(pScrn, usedChips[i], CYRIXISAChipsets,
NULL, NULL, NULL, NULL, NULL);
- return (TRUE);
}
+ return (TRUE);
}
static int
@@ -449,8 +451,7 @@ CYRIXFindIsaDevice(GDevPtr dev)
{
CARD32 CurrentValue, TestValue;
- /* Unlock VGA registers */
- VGAHW_UNLOCK(vgaIOBase);
+ /* No need to unlock VGA CRTC registers here */
/* VGA has one more read/write attribute register than EGA */
(void) inb(vgaIOBase + 0x0AU); /* Reset flip-flop */
@@ -461,9 +462,6 @@ CYRIXFindIsaDevice(GDevPtr dev)
TestValue = inb(0x3C1);
outb(0x3C0, CurrentValue);
- /* XXX: This should restore lock state, rather than relock */
- VGAHW_LOCK(vgaIOBase);
-
/* Quit now if no VGA is present */
if ((CurrentValue ^ 0x0F) != TestValue)
return -1;
@@ -482,6 +480,8 @@ CYRIXPreInit(ScrnInfoPtr pScrn, int flags)
char *mod = NULL;
const char *Sym;
+ if (flags & PROBE_DETECT) return FALSE;
+
/* Allocate the CYRIXRec driverPrivate */
if (!CYRIXGetRec(pScrn)) return FALSE;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile
index 76e6f413b..36f895c38 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile
@@ -1,7 +1,7 @@
XCOMM
XCOMM This is an Imakefile for the fbdev driver.
XCOMM
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile,v 1.6 1999/08/14 10:49:44 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/Imakefile,v 1.7 2000/02/25 18:28:10 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -15,11 +15,11 @@ INCLUDES = -I. -I../../include
INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(SERVERSRC)/mfb -I$(SERVERSRC)/mi \
-I$(SERVERSRC)/afb \
- -I$(SERVERSRC)/cfb -I$(XF86SRC)/xaa \
+ -I$(SERVERSRC)/fb -I$(XF86SRC)/xaa \
-I$(XF86SRC)/fbdevhw -I$(XF86SRC)/ramdac \
-I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
-I$(XF86SRC)/rac \
- -I$(SERVERSRC)/Xext -I$(XF86SRC)/xf8_32bpp\
+ -I$(SERVERSRC)/Xext -I$(XF86SRC)/xf24_32bpp\
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
-I$(XF86SRC)/shadowfb -I$(EXTINCSRC)
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c b/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c
index 11a876726..119bdbe92 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c
@@ -1,4 +1,9 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c,v 1.16 2000/02/15 18:01:06 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.c,v 1.20 2000/03/01 16:01:07 tsi Exp $ */
+
+/*
+ * Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk>
+ * Michel Dänzer, <michdaen@iiic.ethz.ch>
+ */
/* all driver need this */
#include "xf86.h"
@@ -13,12 +18,8 @@
#include "shadowfb.h"
/* for visuals */
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb16.h"
-#include "cfb24.h"
-#include "cfb32.h"
+#include "fb.h"
+#include "cfb24_32.h"
#ifdef USE_AFB
#include "afb.h"
#endif
@@ -58,6 +59,12 @@ static Bool FBDevSaveScreen(ScreenPtr pScreen, int mode);
/* -------------------------------------------------------------------- */
+/*
+ * This is intentionally screen-independent. It indicates the binding
+ * choice made in the first PreInit.
+ */
+static int pix24bpp = 0;
+
#define VERSION 4000
#define FBDEV_NAME "FBDev"
#define FBDEV_DRIVER_NAME "fbdev"
@@ -113,11 +120,8 @@ static const char *afbSymbols[] = {
};
static const char *cfbSymbols[] = {
- "cfbScreenInit",
- "cfb16ScreenInit",
- "cfb24ScreenInit",
- "cfb32ScreenInit",
- "cfbCreateDefColormap",
+ "fbScreenInit",
+ "cfb24_32ScreenInit",
NULL
};
@@ -249,9 +253,7 @@ FBDevProbe(DriverPtr drv, int flags)
TRACE("probe start");
/* For now, just bail out for PROBE_DETECT. */
- if ((flags & PROBE_DETECTISA) ||
- (flags & PROBE_DETECTFBDEV) ||
- (flags & PROBE_DETECTPCI))
+ if (flags & PROBE_DETECT)
return FALSE;
pScrn0 = xf86AllocateScreen(drv, 0);
@@ -332,6 +334,8 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
const char *reqSym = NULL;
Gamma zeros = {0.0, 0.0, 0.0};
+ if (flags & PROBE_DETECT) return FALSE;
+
TRACE_ENTER("PreInit");
/* Check the number of entities, and fail if it isn't one. */
@@ -365,6 +369,10 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
return FALSE;
xf86PrintDepthBpp(pScrn);
+ /* Get the depth24 pixmap format */
+ if (pScrn->depth == 24 && pix24bpp == 0)
+ pix24bpp = xf86GetBppFromDepth(pScrn, 24);
+
/* color weight */
if (pScrn->depth > 8) {
rgb zeros = { 0, 0, 0 };
@@ -403,7 +411,22 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
"Option ShadowFB is %s\n",fPtr->shadowFB ? "on" : "off");
/* select video modes */
+
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Checking Modes against framebuffer device...\n");
fbdevHWSetVideoModes(pScrn);
+
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Checking Modes against monitor...\n");
+ {
+ DisplayModePtr mode, first = mode = pScrn->modes;
+
+ if (mode != NULL) do {
+ mode->status = xf86CheckModeForMonitor(mode, pScrn->monitor);
+ mode = mode->next;
+ } while (mode != NULL && mode != first);
+
+ xf86PruneDriverModes(pScrn);
+ }
+
if (NULL == pScrn->modes)
fbdevHWUseBuildinMode(pScrn);
pScrn->currentMode = pScrn->modes;
@@ -421,47 +444,49 @@ FBDevPreInit(ScrnInfoPtr pScrn, int flags)
reqSym = "afbScreenInit";
break;
case FBDEVHW_PACKED_PIXELS:
+ mod = "fb";
+ reqSym = "fbScreenInit";
+
switch (pScrn->bitsPerPixel)
{
case 8:
- mod = "cfb";
- reqSym = "cfbScreenInit";
- break;
case 16:
- mod = "cfb16";
- reqSym = "cfb16ScreenInit";
+ case 32:
break;
case 24:
- mod = "cfb24";
- reqSym = "cfb24ScreenInit";
- break;
- case 32:
- mod = "cfb32";
- reqSym = "cfb32ScreenInit";
+ if (pix24bpp == 32)
+ {
+ mod = "xf24_32bpp";
+ reqSym = "cfb24_32ScreenInit";
+ }
break;
+ default:
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Unsupported bpp: %d", pScrn->bitsPerPixel);
+ return FALSE;
}
break;
case FBDEVHW_INTERLEAVED_PLANES:
/* Not supported yet, don't know what to do with this */
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "Interleaved Planes are not supprted yet by drivers/fbdev.");
- break;
+ "Interleaved Planes are not supported yet by drivers/fbdev.");
+ return FALSE;
case FBDEVHW_TEXT:
/* This should never happen ...
* we should check for this much much earlier ... */
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Text mode is not supprted by drivers/fbdev.\n"
"Why do you want to run the X in TEXT mode anyway ?");
- break;
+ return FALSE;
case FBDEVHW_VGA_PLANES:
/* Not supported yet */
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"EGA/VGA Planes are not supprted yet by drivers/fbdev.");
- break;
+ return FALSE;
default:
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Fbdev type (%d) not supported yet.");
- break;
+ return FALSE;
}
if (mod && xf86LoadSubModule(pScrn, mod) == NULL) {
FBDevFreeRec(pScrn);
@@ -600,25 +625,20 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
#endif
case FBDEVHW_PACKED_PIXELS:
switch (pScrn->bitsPerPixel) {
+ case 24:
+ if (pix24bpp == 32)
+ {
+ ret = cfb24_32ScreenInit
+ (pScreen, fPtr->fbstart, pScrn->virtualX, pScrn->virtualY,
+ pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth);
+ break;
+ }
case 8:
- ret = cfbScreenInit
- (pScreen, fPtr->fbstart, pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth);
- break;
case 16:
- ret = cfb16ScreenInit
- (pScreen, fPtr->fbstart, pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth);
- break;
- case 24:
- ret = cfb24ScreenInit
- (pScreen, fPtr->fbstart, pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth);
- break;
case 32:
- ret = cfb32ScreenInit
+ ret = fbScreenInit
(pScreen, fPtr->fbstart, pScrn->virtualX, pScrn->virtualY,
- pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth);
+ pScrn->xDpi, pScrn->yDpi, pScrn->displayWidth, pScrn->bitsPerPixel);
break;
default:
xf86DrvMsg(scrnIndex, X_ERROR,
@@ -697,7 +717,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
break;
#endif
case FBDEVHW_PACKED_PIXELS:
- if (!cfbCreateDefColormap(pScreen))
+ if (!miCreateDefColormap(pScreen))
return FALSE;
break;
case FBDEVHW_INTERLEAVED_PLANES:
@@ -734,7 +754,7 @@ FBDevScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
{
XF86VideoAdaptorPtr *ptr;
- int n = xf86XVListGenericAdaptors(&ptr);
+ int n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n) {
xf86XVScreenInit(pScreen,ptr,n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp b/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp
index d64701b92..2a75c3e60 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp,v 1.4 1999/08/22 13:04:25 dawes Exp $
-.TH FBDEV __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/fbdev/fbdev.cpp,v 1.5 2000/03/03 01:05:36 dawes Exp $
+.TH FBDEV __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
fbdev \- video driver for framebuffer device
.SH SYNOPSIS
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile
index 433f48917..518640402 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile
@@ -1,17 +1,17 @@
XCOMM
XCOMM This is an Imakefile for the glide driver.
XCOMM
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile,v 1.2 1999/08/14 10:49:44 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/Imakefile,v 1.3 2000/03/07 14:31:45 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
-#if !HasGlide || !defined(GlideIncDir)
+#if !HasGlide2 || !defined(Glide2IncDir)
all::
- @echo "This driver requires that you define HasGlide and GlideIncDir in host.def"
+ @echo "This driver requires that you define HasGlide2 and Glide2IncDir in host.def"
@exit 1
install::
- @echo "This driver requires that you define HasGlide and GlideIncDir in host.def"
+ @echo "This driver requires that you define HasGlide2 and Glide2IncDir in host.def"
@exit 1
#endif
@@ -21,7 +21,7 @@ OBJS = glide_driver.o
#if defined(XF86DriverSDK)
INCLUDES = -I. -I../../include
#else
-INCLUDES = -I. -I$(GLIDEINCDIR) -I$(XF86COMSRC) -I$(XF86OSSRC) \
+INCLUDES = -I. -I$(GLIDE2INCDIR) -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(SERVERSRC)/mfb -I$(SERVERSRC)/mi \
-I$(SERVERSRC)/cfb -I$(XF86SRC)/xaa \
-I$(XF86SRC)/vgahw -I$(XF86SRC)/ramdac \
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp b/xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp
index 6213314be..5ae2e5560 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp,v 1.6 1999/08/28 10:43:35 dawes Exp $
-.TH GLIDE __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide.cpp,v 1.7 2000/03/03 01:05:37 dawes Exp $
+.TH GLIDE __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
glide \- Glide video driver
.SH SYNOPSIS
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c
index 2689bd8ef..7e9f82c0d 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c
@@ -45,7 +45,7 @@
* Support static loading.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c,v 1.10 2000/02/15 18:01:06 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glide/glide_driver.c,v 1.12 2000/03/01 16:01:08 tsi Exp $ */
#include "xaa.h"
#include "xf86Cursor.h"
@@ -393,8 +393,10 @@ GLIDEProbe(DriverPtr drv, int flags)
/* hw.num_sst : number of Glide boards available */
- if (hw.num_sst > 0 && (flags & PROBE_DETECT))
+ if (hw.num_sst > 0 && (flags & PROBE_DETECT)) {
+ /* XXX Need to call xf886AddDeviceToConfigure() here */
return TRUE;
+ }
for (sst = 0; sst < hw.num_sst; sst++)
{
@@ -457,6 +459,8 @@ GLIDEPreInit(ScrnInfoPtr pScrn, int flags)
const char *reqSym = NULL;
int sst;
+ if (flags & PROBE_DETECT) return FALSE;
+
/* Check the number of entities, and fail if it isn't one. */
if (pScrn->numEntities != 1)
return FALSE;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt b/xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt
index 5e175996e..5bac4f31c 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt
@@ -9,8 +9,7 @@ Permission is granted to make and distribute verbatim copies
of this document provided the copyright notice and this permission
notice are preserved on all copies.
-$XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt,v 1.1 1999/06/14 07:31:50 dawes Exp $
-$PI: xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt,v 1.6 1999/05/27 03:46:29 jens Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/DRI.txt,v 1.2 2000/02/23 04:47:06 martin Exp $
GLINT State Transition Strategy
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile
index 399359d6c..c8624e19f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile
@@ -1,5 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile,v 1.20 2000/01/23 04:44:29 dawes Exp $
-XCOMM $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile,v 1.11 1999/06/26 03:13:53 faith Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/Imakefile,v 1.22 2000/03/03 01:05:37 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the GLINT driver.
XCOMM
@@ -49,6 +48,11 @@ ObjectModuleTarget(glint,$(OBJS))
InstallObjectModule(glint,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(glint,)
+InstallModuleManPage(glint)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(IBMramdac.c,$(DRIVERSDKDIR)/drivers/glint)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c
index 2fa291bb3..3d3e88d66 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c
@@ -27,8 +27,7 @@
* glintOutTIIndReg() and glintInTIIndReg() are used to access
* the indirect TI RAMDAC registers only.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c,v 1.1 1999/06/14 07:31:51 dawes Exp $ */
-/* $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c,v 1.4 1999/05/27 03:46:29 jens Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/TIramdac.c,v 1.2 2000/02/23 04:47:06 martin Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c
index ea8a2400e..a6d34a4bf 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c
@@ -28,8 +28,7 @@
* Modified version of tx_accel.c to support dual MX chips by
* Jens Owen, <jens@precisioninsight.com>
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c,v 1.5 2000/01/21 01:12:15 dawes Exp $ */
-/* $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c,v 1.15 1999/06/09 20:05:12 jens Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_accel.c,v 1.6 2000/02/23 04:47:06 martin Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c
index 1bc32ea8d..a17ab1c8b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c
@@ -27,8 +27,7 @@
* Modified version of tx_dac.c to support Dual MX rasterizers by
* Jens Owen <jens@precisioninsight.com>
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c,v 1.2 1999/07/04 06:38:56 dawes Exp $ */
-/* $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c,v 1.13 1999/06/09 20:05:12 jens Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/dualmx_dac.c,v 1.3 2000/02/23 04:47:07 martin Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.cpp b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.cpp
new file mode 100644
index 000000000..63baa3b28
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.cpp
@@ -0,0 +1,112 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint.cpp,v 1.2 2000/03/07 01:37:46 dawes Exp $
+.TH GLINT __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+glint \- GLINT/Permedia video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""glint"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B glint
+is an XFree86 driver for 3Dlabs & Texas Instruments GLINT/Permedia based video
+cards. The driver is rather fully accelerated, and provides support for the
+following framebuffer depths: 8, 15 (may give bad results with FBDev support),
+16, 24 (32 bpp recommended, 24 bpp has problems), 30, and an 8+24 overlay mode.
+.SH SUPPORTED HARDWARE
+The
+.B glint
+driver supports 3Dlabs (GLINT MX, GLINT 500TX, GLINT GAMMA, Permedia,
+Permedia 2, Permedia 2v) and Texas Instruments (Permedia, Permedia 2) chips.
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.PP
+The driver auto-detects the chipset type, but the following
+.B ChipSet
+names may optionally be specified in the config file
+.B """Device"""
+section, and will override the auto-detection:
+.PP
+.RS 4
+"ti_pm2", "ti_pm", "pm2v", "pm2", "pm", "500tx", "mx", "gamma".
+.RE
+.PP
+The driver will try to auto-detect the amount of video memory present for all
+chips. If it's not detected correctly, the actual amount of video memory should
+be specified with a
+.B VideoRam
+entry in the config file
+.B """Device"""
+section.
+.PP
+Additionally, you may need to specify the bus ID of your card with a
+.B BusID
+entry in the config file
+.B """Device"""
+section, especially with FBDev support.
+.PP
+The following driver
+.B Options
+are supported:
+.TP
+.BI "Option ""HWCursor"" """ boolean """
+Enable or disable the HW cursor. Default: on.
+.TP
+.BI "Option ""SWCursor"" """ boolean """
+Enable or disable the SW cursor. Default: off.
+This option disables the
+.B HWCursor
+option and vice versa.
+.TP
+.BI "Option ""NoAccel"" """ boolean """
+Disable or enable acceleration. Default: acceleration is enabled.
+.TP
+.BI "Option ""Overlay""
+Enable 8+24 overlay mode. Only appropriate for depth 24, 32 bpp.
+.RB ( Note:
+This hasn't been tested with FBDev support and probably won't work.)
+Recognized values are: "8,24", "24,8". Default: off.
+.TP
+.BI "Option ""PciRetry"" """ boolean """
+Enable or disable PCI retries.
+.RB ( Note:
+This doesn't work with Permedia2 based cards for Amigas.) Default: off.
+.TP
+.BI "Option ""ShadowFB"" """ boolean """
+Enable or disable use of the shadow framebuffer layer. See
+shadowfb(__drivermansuffix__) for further information.
+.RB ( Note:
+This disables hardware acceleration.) Default: off.
+.TP
+.BI "Option ""UseFBDev"" """ boolean """
+Enable or disable use of an OS-specific fb interface (which is not supported
+on all OSs). See fbdevhw(__drivermansuffix__) for further information.
+Default: off.
+.ig
+.TP
+.BI "Option ""RGBbits"" """ integer """
+Each gun of the RGB triple can have either 8 or 10 bits. Default: 8
+..
+.TP
+.BI "Option ""BlockWrite"" """ boolean """
+Enable or disable block writes for the various Permedia 2 chips. This improves
+acceleration in general, but disables it for some special cases. Default: off.
+.TP
+.BI "Option ""FireGL3000"" """ boolean """
+If you have a card of the same name, turn this on. Default: off.
+.TP
+.BI "Option ""SetMClk"" """ freq """
+The driver will try to auto-detect the memory clock for all chips. If it's not
+detected correctly, the actual value (in MHz) should be specified with this
+option.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: Alan Hourihane, Dirk Hohndel, Stefan Dirsch, Michel Dänzer
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h
index 3250fbd28..48c1d1a5e 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h,v 1.24 2000/01/18 18:40:12 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint.h,v 1.25 2000/02/26 03:33:43 dawes Exp $ */
/*
* Copyright 1997,1998 by Alan Hourihane <alanh@fairlite.demon.co.uk>
*
@@ -137,6 +137,7 @@ typedef struct {
DrawablePtr CurrentDrawable;
I2CBusPtr DDCBus, VSBus;
CARD8* XAAScanlineColorExpandBuffers[2];
+ CARD32 RasterizerSwap;
#ifdef XF86DRI
Bool directRenderingEnabled;
DRIInfoPtr pDRIInfo;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c
index a81cdaa76..9acce4b54 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c,v 1.10 2000/02/14 20:31:19 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c,v 1.12 2000/03/02 16:07:47 martin Exp $ */
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
@@ -31,7 +31,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Author:
* Jens Owen <jens@precisioninsight.com>
*
- * $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.c,v 1.54 1999/08/04 18:18:58 faith Exp $
*/
#include "xf86.h"
@@ -58,6 +57,9 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
static char GLINTKernelDriverName[] = "gamma";
static char GLINTClientDriverName[] = "gamma";
+static void GLINTDestroyContext(ScreenPtr pScreen, drmContext hwContext,
+ DRIContextType contextStore);
+
static int
GLINTDRIControlInitSingleMX(int drmSubFD, int irq)
{
@@ -415,8 +417,9 @@ GLINTDRIScreenInit(ScreenPtr pScreen)
pDRIInfo->contextSize = sizeof(GLINTDRIContextRec);
/* setup call backs */
- pDRIInfo->CreateContext = GLINTCreateContext;
- pDRIInfo->SwapContext = GLINTDRISwapContext;
+ pDRIInfo->CreateContext = GLINTCreateContext;
+ pDRIInfo->DestroyContext = GLINTDestroyContext;
+ pDRIInfo->SwapContext = GLINTDRISwapContext;
pDRIInfo->InitBuffers = GLINTDRIInitBuffers;
pDRIInfo->MoveBuffers = GLINTDRIMoveBuffers;
pDRIInfo->bufferRequests = DRI_ALL_WINDOWS;
@@ -554,7 +557,7 @@ GLINTDRIScreenInit(ScreenPtr pScreen)
pGlint->drmBufs->count);
/* tell the generic kernel driver how to handle Gamma DMA */
- if (!pGlint->irq) {
+ if (pGlint->irq <= 0) {
pGlint->irq = drmGetInterruptFromBusID(pGlint->drmSubFD,
((pciConfigPtr)pGlint->PciInfo
->thisCard)->busnum,
@@ -658,6 +661,13 @@ GLINTCreateContext(ScreenPtr pScreen,
return TRUE;
}
+static void
+GLINTDestroyContext(ScreenPtr pScreen,
+ drmContext hwContext,
+ DRIContextType contextStore)
+{
+}
+
Bool
GLINTDRIFinishScreenInit(ScreenPtr pScreen)
{
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h
index 2b6ff8307..03f4d9fed 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h,v 1.2 1999/06/27 14:08:05 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h,v 1.3 2000/02/23 04:47:10 martin Exp $ */
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
@@ -31,7 +31,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Author:
* Jens Owen <jens@precisioninsight.com>
*
- * $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dri.h,v 1.5 1999/06/15 17:46:16 faith Exp $
*/
/*
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h
index 26a0b3d30..fe29ffccf 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h,v 1.1 1999/06/14 07:31:53 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h,v 1.2 2000/02/23 04:47:10 martin Exp $ */
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
@@ -31,7 +31,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Author:
* Jens Owen <jens@precisioninsight.com>
*
- * $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_dripriv.h,v 1.13 1999/06/07 13:05:07 faith Exp $
*/
extern void GlxSetVisualConfigs(
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c
index 1febf2ef3..8c33db140 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c
@@ -27,8 +27,7 @@
* this work is sponsored by S.u.S.E. GmbH, Fuerth, Elsa GmbH, Aachen and
* Siemens Nixdorf Informationssysteme
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c,v 1.66 2000/02/21 19:23:01 dawes Exp $ */
-/* $PI: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c,v 1.37 1999/07/02 18:38:31 faith Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_driver.c,v 1.71 2000/03/07 01:37:47 dawes Exp $ */
#define PSZ 8
#include "cfb.h"
@@ -122,7 +121,7 @@ static Bool GLINTModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode);
* choice made in the first PreInit.
*/
static int pix24bpp = 0;
-static Bool FBDev = FALSE;
+static Bool FBDevProbed = FALSE;
#define VERSION 4000
#define GLINT_NAME "GLINT"
@@ -204,7 +203,6 @@ static OptionInfoRec GLINTOptions[] = {
{ OPTION_OVERLAY, "Overlay", OPTV_ANYSTR, {0}, FALSE },
{ OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_FBDEV, "UseFBDev", OPTV_BOOLEAN, {0}, FALSE },
- { OPTION_NOWRITEBITMAP, "NoWriteBitmap",OPTV_BOOLEAN, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
@@ -623,9 +621,6 @@ GLINTProbe(DriverPtr drv, int flags)
* specified.
*/
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE; /* SEE BELOW */
-
if ((numDevSections = xf86MatchDevice(GLINT_DRIVER_NAME,
&devSections)) <= 0) {
/*
@@ -674,12 +669,12 @@ GLINTProbe(DriverPtr drv, int flags)
/* Check for pm2fb */
if (strcmp(fbdevHWGetName(pScrn0),"Permedia2")) continue;
-#if 0 /* Need to find better way of detecting FBDEV */
- /* Probably to use BUSID FBDEV */
- if (flags & PROBE_DETECTFBDEV)
+ if (flags & PROBE_DETECT) {
+ xf86AddDeviceToConfigure(GLINT_NAME, NULL, -1);
return TRUE;
-#endif
- foundScreen = FBDev = TRUE;
+ }
+
+ foundScreen = FBDevProbed = TRUE;
pScrn = xf86AllocateScreen(drv, 0);
xf86LoadSubModule(pScrn, "fbdevhw");
xf86LoaderReqSymLists(fbdevHWSymbols, NULL);
@@ -734,10 +729,9 @@ GLINTProbe(DriverPtr drv, int flags)
devSections = NULL;
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
foundScreen = TRUE;
+ if (!(flags & PROBE_DETECT))
for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
@@ -969,6 +963,8 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
char *mod = NULL;
const char *s;
+ if (flags & PROBE_DETECT) return FALSE;
+
TRACE_ENTER("GLINTPreInit");
/*
@@ -1000,8 +996,6 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
return FALSE;
}
pGlint = GLINTPTR(pScrn);
- /* If the FBDev stuff was needed for probing, keep using it until the options are checked */
- pGlint->FBDev = FBDev;
/* Get the entities, and make sure they are PCI. */
pGlint->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
@@ -1069,7 +1063,7 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
* Our default depth is 8, so pass it to the helper function.
* We support both 24bpp and 32bpp layouts, so indicate that.
*/
- if (pGlint->FBDev) {
+ if (FBDevProbed) {
int default_depth;
if (!fbdevHWInit(pScrn,NULL,xf86FindOptionValue(pGlint->pEnt->device->options,"fbdev"))) {
@@ -1193,14 +1187,23 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
"Using \"Shadow Framebuffer\" - acceleration disabled\n");
}
- if (xf86ReturnOptValBool(GLINTOptions, OPTION_NOWRITEBITMAP, FALSE)) {
- pGlint->WriteBitmap = FALSE;
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
- "WriteBitmap() replacement disabled\n");
- } else pGlint->WriteBitmap = TRUE;
/* Check whether to use the FBDev stuff and fill in the rest of pScrn */
if (xf86ReturnOptValBool(GLINTOptions, OPTION_FBDEV, FALSE)) {
+ if (!FBDevProbed && !xf86LoadSubModule(pScrn, "fbdevhw"))
+ {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "couldn't load fbdevHW module!\n");
+ return FALSE;
+ }
+
+ xf86LoaderReqSymLists(fbdevHWSymbols, NULL);
+
+ if (!fbdevHWInit(pScrn,NULL,xf86FindOptionValue(pGlint->pEnt->device->options,"fbdev")))
+ {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "fbdevHWInit failed!\n");
+ return FALSE;
+ }
+
pGlint->FBDev = TRUE;
from = X_CONFIG;
@@ -1254,8 +1257,8 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
* Set the Chipset and ChipRev, allowing config file entries to
* override.
*/
- if (pGlint->FBDev) { /* pm2fb AFAIK only supports the Permedia2 */
- pScrn->chipset = "pm2";
+ if (FBDevProbed) { /* pm2fb so far only supports the Permedia2 */
+ pScrn->chipset = "ti_pm2";
pGlint->Chipset = xf86StringToToken(GLINTChipsets, pScrn->chipset);
from = X_PROBED;
} else {
@@ -1322,7 +1325,7 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
}
}
- if (!pGlint->FBDev) {
+ if (!FBDevProbed) {
if (pGlint->pEnt->device->MemBase != 0) {
/*
* XXX Should check that the config file value matches one of the
@@ -1365,6 +1368,9 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
else
pGlint->IOAddress = pGlint->PciInfo->memBase[0] & 0xFFFFC000;
}
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+ pGlint->IOAddress += 0x10000;
+#endif
xf86DrvMsg(pScrn->scrnIndex, from, "MMIO registers at 0x%lX\n",
(unsigned long)pGlint->IOAddress);
@@ -1405,7 +1411,7 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
pGlint->HwBpp = pScrn->bitsPerPixel;
pGlint->FbBase = NULL;
- if (!pGlint->FBDev) {
+ if (!FBDevProbed) {
if (pGlint->pEnt->device->videoRam != 0) {
pScrn->videoRam = pGlint->pEnt->device->videoRam;
from = X_CONFIG;
@@ -1653,7 +1659,7 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
break;
}
- if (pGlint->FBDev)
+ if (pGlint->FBDev || FBDevProbed)
pGlint->VGAcore = FALSE;
if (pGlint->VGAcore) {
@@ -1842,13 +1848,13 @@ GLINTPreInit(ScrnInfoPtr pScrn, int flags)
if (pGlint->HWCursor) {
- DisplayModePtr mode = pScrn->modes;
-
- while (mode) {
+ DisplayModePtr mode, first = mode = pScrn->modes;
+
+ do { /* We know there is at least the built-in mode */
mode->Flags |= V_PHSYNC | V_PVSYNC;
- if (mode->next != mode) mode = mode->next;
- else mode = NULL;
- }
+ mode->Flags &= ~V_NHSYNC | ~V_NVSYNC;
+ mode = mode->next;
+ } while (mode != NULL && mode != first);
}
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h
index 08ba5a9a1..f33e42c80 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h,v 1.14 1999/07/04 06:39:00 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/glint_regs.h,v 1.15 2000/03/07 01:37:47 dawes Exp $ */
/*
* glint register file
@@ -17,6 +17,8 @@
#ifndef _GLINTREG_H_
#define _GLINTREG_H_
+#include "compiler.h"
+
/**********************************************
* GLINT 500TX Configuration Region Registers *
***********************************************/
@@ -1147,15 +1149,18 @@
#define GLINT_WRITE_REG(v,r) \
do{ \
*(volatile CARD32 *)((char *)pGlint->IOBase+(r))=v; \
+ mem_barrier(); \
}while(0)
#define GLINT_READ_REG(r) \
(*(volatile CARD32 *)((char *)pGlint->IOBase+(r)))
-#endif
+#endif
#define GLINT_WAIT(n) \
do{ \
if(!pGlint->UsePCIRetry) \
- while(GLINT_READ_REG(InFIFOSpace)<(n)); \
+ while(GLINT_READ_REG(InFIFOSpace)<(n)){ \
+ mem_barrier(); \
+ } \
}while(0)
#define GLINT_MASK_WRITE_REG(v,m,r) \
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c
index 2a575f3ff..6d1863f0a 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c
@@ -30,7 +30,7 @@
*
* Permedia 2 accelerated options.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c,v 1.22 2000/02/12 20:45:21 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/glint/pm2_accel.c,v 1.23 2000/02/25 21:02:50 dawes Exp $ */
#include "Xarch.h"
#include "xf86.h"
@@ -144,9 +144,9 @@ static void Permedia2PolySegmentThinSolidWrapper(DrawablePtr pDraw, GCPtr pGC,
#define MAX_FIFO_ENTRIES 256
#if X_BYTE_ORDER == X_BIG_ENDIAN
-# define HOST_SWAP 1|0<<7|0<<15 /* Swap the bitmask - see manuals */
+# define STIPPLE_SWAP 1<<18 /* Mirror stipple pattern horizontally */
#else
-# define HOST_SWAP 0
+# define STIPPLE_SWAP 0
#endif
void
@@ -195,14 +195,26 @@ Permedia2InitializeEngine(ScrnInfoPtr pScrn)
GLINT_SLOW_WRITE_REG(UNIT_DISABLE, FBSourceBase);
GLINT_SLOW_WRITE_REG(UNIT_DISABLE, LBWindowBase);
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+ pGlint->RasterizerSwap = 1;
+#else
+ pGlint->RasterizerSwap = 0;
+#endif
+
switch (pScrn->bitsPerPixel) {
case 8:
pGlint->PixelWidth = 0x0; /* 8 Bits */
pGlint->TexMapFormat = pGlint->pprod;
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+ pGlint->RasterizerSwap |= 3<<15; /* Swap host data */
+#endif
break;
case 16:
pGlint->PixelWidth = 0x1; /* 16 Bits */
pGlint->TexMapFormat = pGlint->pprod | 1<<19;
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+ pGlint->RasterizerSwap |= 2<<15; /* Swap host data */
+#endif
break;
case 24:
pGlint->PixelWidth = 0x4; /* 24 Bits */
@@ -343,7 +355,6 @@ Permedia2AccelInit(ScreenPtr pScreen)
infoPtr->ColorExpandRange = MAX_FIFO_ENTRIES;
- if (pGlint->WriteBitmap)
infoPtr->WriteBitmap = Permedia2WriteBitmap;
if (pScrn->bitsPerPixel == 8)
@@ -568,6 +579,7 @@ Permedia2PolySegmentThinSolidWrapper(
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_GC(pGC);
GLINTPtr pGlint = GLINTPTR(infoRec->pScrn);
pGlint->CurrentGC = pGC;
+ pGlint->CurrentDrawable = pDraw;
if(infoRec->NeedToSync) (*infoRec->Sync)(infoRec->pScrn);
XAAPolySegment(pDraw, pGC, nseg, pSeg);
}
@@ -667,6 +679,7 @@ Permedia2SetupForFillRectSolid(ScrnInfoPtr pScrn, int color,
int rop, unsigned int planemask)
{
GLINTPtr pGlint = GLINTPTR(pScrn);
+ TRACE_ENTER("Permedia2SetupForFillRectSolid");
REPLICATE(color);
@@ -683,6 +696,7 @@ Permedia2SetupForFillRectSolid(ScrnInfoPtr pScrn, int color,
GLINT_WRITE_REG(pGlint->pprod|FBRM_DstEnable|FBRM_Packed, FBReadMode);
}
LOADROP(rop);
+ TRACE_EXIT("Permedia2SetupForFillRectSolid");
}
static void
@@ -699,6 +713,7 @@ Permedia2SubsequentFillRectSolid(ScrnInfoPtr pScrn, int x, int y, int w, int h)
{
GLINTPtr pGlint = GLINTPTR(pScrn);
int speed = 0;
+ TRACE_ENTER("Permedia2SubsequentFillRectSolid");
if (pGlint->ROP == GXcopy) {
GLINT_WAIT(3);
@@ -712,6 +727,7 @@ Permedia2SubsequentFillRectSolid(ScrnInfoPtr pScrn, int x, int y, int w, int h)
speed = 0;
}
GLINT_WRITE_REG(PrimitiveRectangle | XPositive | YPositive | speed, Render);
+ TRACE_EXIT("Permedia2SubsequentFillRectSolid");
}
static void MoveBYTE(
@@ -770,33 +786,6 @@ static void MoveDWORDS(
*(dest + 2) = *(src + 2);
}
-/* MoveDWORDS hacks for my Amiga (all Big Endian machines?) */
-
-static void MoveDWORDS16BE(
- register CARD32* dest,
- register unsigned short* src,
- register int dwords )
-{
- while(dwords) {
- *dest = *(src + 1) << 16 | *src;
- src += 2;
- dest += 1;
- dwords -= 1;
- }
-}
-
-static void MoveDWORDS8BE(
- register CARD32* dest,
- register unsigned char* src,
- register int dwords )
-{
- while(dwords) {
- *dest = *(src + 3) << 24 | *(src + 2) << 16 | *(src + 1) << 8 | *src;
- src += 4;
- dest += 1;
- dwords -= 1;
- }
-}
static void
Permedia2SetupForMono8x8PatternFill24bpp(ScrnInfoPtr pScrn,
@@ -840,6 +829,7 @@ Permedia2SetupForMono8x8PatternFill(ScrnInfoPtr pScrn,
unsigned int planemask)
{
GLINTPtr pGlint = GLINTPTR(pScrn);
+ TRACE_ENTER("Permedia2SetupForMono8x8PatternFill");
if (bg == -1) pGlint->FrameBufferReadMode = -1;
else pGlint->FrameBufferReadMode = 0;
@@ -849,6 +839,10 @@ Permedia2SetupForMono8x8PatternFill(ScrnInfoPtr pScrn,
REPLICATE(pGlint->ForeGroundColor);
REPLICATE(pGlint->BackGroundColor);
+#if DEBUG
+ ErrorF("patternx: %x patterny: %x\n", patternx, patterny);
+#endif
+
GLINT_WAIT(13);
DO_PLANEMASK(planemask);
GLINT_WRITE_REG((patternx & 0xFF), AreaStipplePattern0);
@@ -868,6 +862,7 @@ Permedia2SetupForMono8x8PatternFill(ScrnInfoPtr pScrn,
GLINT_WRITE_REG(pGlint->pprod | FBRM_DstEnable, FBReadMode);
}
LOADROP(rop);
+ TRACE_EXIT("Permedia2SetupForMono8x8PatternFill");
}
static void
@@ -884,7 +879,7 @@ Permedia2SubsequentMono8x8PatternFillRect24bpp(ScrnInfoPtr pScrn,
if (pGlint->FrameBufferReadMode != -1) {
GLINT_WRITE_REG(pGlint->BackGroundColor, ConstantColor);
GLINT_WRITE_REG(patternx<<7|patterny<<12| ASM_InvertPattern |
- UNIT_ENABLE, AreaStippleMode);
+ STIPPLE_SWAP | UNIT_ENABLE, AreaStippleMode);
GLINT_WRITE_REG(AreaStippleEnable | XPositive |
YPositive | PrimitiveRectangle, Render);
}
@@ -912,14 +907,14 @@ Permedia2SubsequentMono8x8PatternFillRect(ScrnInfoPtr pScrn,
if (pGlint->ROP == GXcopy) {
GLINT_WRITE_REG(pGlint->BackGroundColor, FBBlockColor);
GLINT_WRITE_REG(ASM_InvertPattern|patternx<<7|patterny<<12|
- UNIT_ENABLE, AreaStippleMode);
+ STIPPLE_SWAP | UNIT_ENABLE, AreaStippleMode);
GLINT_WRITE_REG(AreaStippleEnable | FastFillEnable |
XPositive | YPositive | PrimitiveRectangle, Render);
} else {
GLINT_WRITE_REG(pGlint->ForeGroundColor, ConstantColor);
GLINT_WRITE_REG(pGlint->BackGroundColor, Texel0);
GLINT_WRITE_REG(patternx<<7|patterny<<12|
- UNIT_ENABLE, AreaStippleMode);
+ STIPPLE_SWAP | UNIT_ENABLE, AreaStippleMode);
GLINT_WRITE_REG(AreaStippleEnable | XPositive | TextureEnable |
YPositive | PrimitiveRectangle, Render);
return;
@@ -933,7 +928,7 @@ Permedia2SubsequentMono8x8PatternFillRect(ScrnInfoPtr pScrn,
GLINT_WRITE_REG(pGlint->ForeGroundColor, ConstantColor);
pGlint->FrameBufferReadMode = 0;
}
- GLINT_WRITE_REG(patternx<<7|patterny<<12|UNIT_ENABLE, AreaStippleMode);
+ GLINT_WRITE_REG(patternx<<7|patterny<<12|STIPPLE_SWAP|UNIT_ENABLE, AreaStippleMode);
GLINT_WRITE_REG(AreaStippleEnable | pGlint->FrameBufferReadMode |
XPositive | YPositive | PrimitiveRectangle, Render);
@@ -973,11 +968,12 @@ Permedia2SetupForCPUToScreenColorExpandFill(
} else {
GLINT_WRITE_REG(fg, FBBlockColor);
}
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
pGlint->FrameBufferReadMode = FastFillEnable;
} else {
GLINT_WRITE_REG(UNIT_ENABLE, ColorDDAMode);
- GLINT_WRITE_REG(BitMaskPackingEachScanline|dobackground|HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(BitMaskPackingEachScanline|dobackground|
+ pGlint->RasterizerSwap,RasterizerMode);
GLINT_WRITE_REG(fg, ConstantColor);
if (dobackground) {
pGlint->FrameBufferReadMode = TextureEnable;
@@ -1042,11 +1038,12 @@ Permedia2SetupForScanlineCPUToScreenColorExpandFill(
pGlint->FrameBufferReadMode = FastFillEnable;
GLINT_WRITE_REG(UNIT_DISABLE, ColorDDAMode);
GLINT_WRITE_REG(fg, FBBlockColor);
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
} else {
GLINT_WRITE_REG(UNIT_ENABLE, ColorDDAMode);
GLINT_WRITE_REG(fg, ConstantColor);
- GLINT_WRITE_REG(BitMaskPackingEachScanline|dobackground|HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(BitMaskPackingEachScanline|dobackground|
+ pGlint->RasterizerSwap,RasterizerMode);
if (dobackground) {
GLINT_WRITE_REG(bg, Texel0);
pGlint->FrameBufferReadMode = TextureEnable;
@@ -1132,11 +1129,12 @@ Permedia2WriteBitmap(ScrnInfoPtr pScrn,
if ((pScrn->bitsPerPixel != 24) && (rop == GXcopy)) {
mode = FastFillEnable;
GLINT_WRITE_REG(UNIT_DISABLE, ColorDDAMode);
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
} else {
mode = 0;
GLINT_WRITE_REG(UNIT_ENABLE, ColorDDAMode);
- GLINT_WRITE_REG(BitMaskPackingEachScanline|HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(BitMaskPackingEachScanline|
+ pGlint->RasterizerSwap,RasterizerMode);
}
if(bg == -1) {
@@ -1198,18 +1196,18 @@ SECOND_PASS:
REPLICATE(bg);
GLINT_WAIT(3);
if ((pScrn->bitsPerPixel != 24) && (rop == GXcopy)) {
- GLINT_WRITE_REG(InvertBitMask|HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(InvertBitMask|pGlint->RasterizerSwap,RasterizerMode);
GLINT_WRITE_REG(bg, FBBlockColor);
} else {
- GLINT_WRITE_REG(InvertBitMask|BitMaskPackingEachScanline|HOST_SWAP,
- RasterizerMode);
+ GLINT_WRITE_REG(InvertBitMask|BitMaskPackingEachScanline|
+ pGlint->RasterizerSwap, RasterizerMode);
GLINT_WRITE_REG(bg, ConstantColor);
}
goto SECOND_PASS;
}
GLINT_WAIT(1);
- GLINT_WRITE_REG(0, RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap, RasterizerMode);
Permedia2DisableClipping(pScrn);
SET_SYNC_FLAG(infoRec);
TRACE_EXIT("Permedia2WriteBitmap");
@@ -1237,7 +1235,7 @@ Permedia2WritePixmap8bpp(
GLINT_WAIT(3);
DO_PLANEMASK(planemask);
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
if (rop == GXcopy) {
GLINT_WRITE_REG(pGlint->pprod | FBRM_Packed, FBReadMode);
} else {
@@ -1245,7 +1243,9 @@ Permedia2WritePixmap8bpp(
}
dwords = (w + 3) >> 2;
- if((!(x&3)) && (!(w&3))) FastTexLoad = TRUE;
+#if X_BYTE_ORDER == X_LITTLE_ENDIAN
+ if((!(x&3)) && (!(w&3))) FastTexLoad = TRUE;
+#endif
if((rop != GXcopy) || (planemask != ~0))
FastTexLoad = FALSE;
@@ -1279,13 +1279,8 @@ Permedia2WritePixmap8bpp(
/* (0x11 << 4) | 0x0D is the TAG for TextureData */
GLINT_WRITE_REG(((MAX_FIFO_ENTRIES - 2) << 16) | (0x11 << 4) |
0x0D, OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS8BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned char*)srcp, MAX_FIFO_ENTRIES - 1);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, MAX_FIFO_ENTRIES - 1);
-#endif
count -= MAX_FIFO_ENTRIES - 1;
address += MAX_FIFO_ENTRIES - 1;
srcp += MAX_FIFO_ENTRIES - 1;
@@ -1295,13 +1290,8 @@ Permedia2WritePixmap8bpp(
/* (0x11 << 4) | 0x0D is the TAG for TextureData */
GLINT_WRITE_REG(((count - 1) << 16) | (0x11 << 4) | 0x0D,
OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS8BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned char*)srcp, count);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, count);
-#endif
}
src += srcwidth;
y++;
@@ -1336,13 +1326,8 @@ Permedia2WritePixmap8bpp(
/* (0x15 << 4) | 0x05 is the TAG for FBSourceData */
GLINT_WRITE_REG(((MAX_FIFO_ENTRIES - 2) << 16) | (0x15 << 4) |
0x05, OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS8BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned char*)srcp, MAX_FIFO_ENTRIES - 1);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, MAX_FIFO_ENTRIES - 1);
-#endif
count -= MAX_FIFO_ENTRIES - 1;
srcp += MAX_FIFO_ENTRIES - 1;
}
@@ -1351,13 +1336,8 @@ Permedia2WritePixmap8bpp(
/* (0x15 << 4) | 0x05 is the TAG for FBSourceData */
GLINT_WRITE_REG(((count - 1) << 16) | (0x15 << 4) |
0x05, OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS8BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned char*)srcp, count);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, count);
-#endif
}
src += srcwidth;
}
@@ -1414,7 +1394,7 @@ Permedia2WritePixmap16bpp(
TRACE_ENTER("Permedia2WritePixmap16bpp");
GLINT_WAIT(3);
DO_PLANEMASK(planemask);
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
if (rop == GXcopy) {
GLINT_WRITE_REG(pGlint->pprod | FBRM_Packed, FBReadMode);
} else {
@@ -1423,7 +1403,9 @@ Permedia2WritePixmap16bpp(
FastTexLoad = FALSE;
dwords = (w + 1) >> 1;
+#if X_BYTE_ORDER == X_LITTLE_ENDIAN
if((!(x&1)) && (!(w&1))) FastTexLoad = TRUE;
+#endif
if((rop != GXcopy) || (planemask != ~0))
FastTexLoad = FALSE;
@@ -1456,13 +1438,8 @@ Permedia2WritePixmap16bpp(
/* (0x11 << 4) | 0x0D is the TAG for TextureData */
GLINT_WRITE_REG(((MAX_FIFO_ENTRIES - 2) << 16) | (0x11 << 4) |
0x0D, OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS16BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned short*)srcp, MAX_FIFO_ENTRIES - 1);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, MAX_FIFO_ENTRIES - 1);
-#endif
count -= MAX_FIFO_ENTRIES - 1;
address += MAX_FIFO_ENTRIES - 1;
srcp += MAX_FIFO_ENTRIES - 1;
@@ -1472,13 +1449,8 @@ Permedia2WritePixmap16bpp(
/* (0x11 << 4) | 0x0D is the TAG for TextureData */
GLINT_WRITE_REG(((count - 1) << 16) | (0x11 << 4) | 0x0D,
OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS16BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned short*)srcp, count);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, count);
-#endif
}
src += srcwidth;
y++;
@@ -1513,13 +1485,8 @@ Permedia2WritePixmap16bpp(
/* (0x15 << 4) | 0x05 is the TAG for FBSourceData */
GLINT_WRITE_REG(((MAX_FIFO_ENTRIES - 2) << 16) | (0x15 << 4) |
0x05, OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS16BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned short*)srcp, MAX_FIFO_ENTRIES - 1);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, MAX_FIFO_ENTRIES - 1);
-#endif
count -= MAX_FIFO_ENTRIES - 1;
srcp += MAX_FIFO_ENTRIES - 1;
}
@@ -1528,13 +1495,8 @@ Permedia2WritePixmap16bpp(
/* (0x15 << 4) | 0x05 is the TAG for FBSourceData */
GLINT_WRITE_REG(((count - 1) << 16) | (0x15 << 4) |
0x05, OutputFIFO);
-#if X_BYTE_ORDER == X_BIG_ENDIAN
- MoveDWORDS16BE((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
- (unsigned short*)srcp, count);
-#else
MoveDWORDS((CARD32*)((char*)pGlint->IOBase + OutputFIFO + 4),
(CARD32*)srcp, count);
-#endif
}
src += srcwidth;
}
@@ -1589,7 +1551,7 @@ Permedia2WritePixmap24bpp(
CARD32* srcp;
GLINT_WAIT(3);
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
GLINT_WRITE_REG(UNIT_DISABLE, ColorDDAMode);
if (rop == GXcopy) {
GLINT_WRITE_REG(pGlint->pprod, FBReadMode);
@@ -1691,7 +1653,7 @@ Permedia2WritePixmap32bpp(
GLINT_WAIT(3);
DO_PLANEMASK(planemask);
- GLINT_WRITE_REG(HOST_SWAP,RasterizerMode);
+ GLINT_WRITE_REG(pGlint->RasterizerSwap,RasterizerMode);
if (rop == GXcopy) {
GLINT_WRITE_REG(pGlint->pprod, FBReadMode);
} else {
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile
index 48c466ce3..11c60bd84 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile,v 1.2 1999/08/30 01:25:03 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/Imakefile,v 1.5 2000/03/03 01:05:38 dawes Exp $
XCOMM
XCOMM This is the Imakefile for the i740 driver.
XCOMM
@@ -18,9 +18,9 @@ INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(XF86SRC)/xaa -I$(XF86SRC)/rac \
-I$(SERVERSRC)/cfb -I$(XF86SRC)/xaa -I$(XF86SRC)/ramdac \
-I$(XF86SRC)/vgahw -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
- -I$(SERVERSRC)/Xext \
+ -I$(SERVERSRC)/Xext -I$(XF86OSSRC)/vbe \
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
- -I$(EXTINCSRC)
+ -I$(EXTINCSRC) -I$(XF86SRC)/int10
#endif
#if MakeHasPosixVariableSubstitutions
@@ -33,9 +33,10 @@ ObjectModuleTarget(i740,$(OBJS))
InstallObjectModule(i740,$(MODULEDIR),drivers)
-XCOMM To install a man page remove the x and add these lines
-XCOMM xCppManTarget(i740,)
-XCOMM xInstallModuleManPage(i740)
+#if !defined(XF86DriverSDK)
+CppManTarget(i740,)
+InstallModuleManPage(i740)
+#endif
DependTarget()
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.cpp b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.cpp
new file mode 100644
index 000000000..41150123e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740.cpp,v 1.1 2000/03/03 01:05:38 dawes Exp $
+.TH I740 __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+i740 \- Intel i740 video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""i740"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B i740
+is an XFree86 driver for Intel i740 video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B i740
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h
index 69773949d..96f33f1fd 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h,v 1.2 1999/12/03 19:17:34 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740.h,v 1.3 2000/02/23 04:47:12 martin Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
#ifndef _I740_H_
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c
index 71d52e9c0..4195a8e49 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c,v 1.2 1999/10/13 04:21:15 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_accel.c,v 1.3 2000/02/23 04:47:13 martin Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
#include <math.h>
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c
index 857855aca..2b914f8d7 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c,v 1.3 1999/10/13 04:21:15 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_cursor.c,v 1.4 2000/02/23 04:47:13 martin Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
#include "xf86.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c
index 05f56e0dd..44a78034f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c,v 1.11 2000/02/21 19:23:02 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_driver.c,v 1.18 2000/03/06 23:54:09 dawes Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
/*
@@ -93,6 +92,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xf86xv.h"
#include "Xv.h"
+#include "vbe.h"
+
/* Required Functions: */
static OptionInfoPtr I740AvailableOptions(int chipid, int busid);
@@ -242,6 +243,12 @@ static const char *ramdacSymbols[] = {
NULL
};
+static const char *vbeSymbols[] = {
+ "VBEInit",
+ "vbeDoEDID",
+ NULL
+};
+
#ifdef XFree86LOADER
static MODULESETUPPROTO(i740Setup);
@@ -283,7 +290,7 @@ i740Setup(pointer module, pointer opts, int *errmaj, int *errmin)
* might refer to.
*/
LoaderRefSymLists(vgahwSymbols, cfbSymbols, xaaSymbols,
- xf8_32bppSymbols, ramdacSymbols,
+ xf8_32bppSymbols, ramdacSymbols, vbeSymbols,
0 /* ddcsymbols */, 0 /* i2csymbols */, 0 /* shadowSymbols */,
0 /* fbdevsymbols */, NULL);
@@ -356,9 +363,6 @@ I740Probe(DriverPtr drv, int flags) {
Bool foundScreen = FALSE;
EntityInfoPtr pEnt;
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
/*
Find the config file Device sections that match this
driver, and return if there are none.
@@ -379,10 +383,10 @@ I740Probe(DriverPtr drv, int flags) {
devSections, numDevSections,
drv, &usedChips);
- if (numUsed > 0 && (flags & PROBE_DETECTPCI))
- return TRUE;
-
- for (i=0; i<numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i=0; i<numUsed; i++) {
pEnt = xf86GetEntityInfo(usedChips[i]);
if (pEnt->active) {
@@ -408,8 +412,9 @@ I740Probe(DriverPtr drv, int flags) {
xf86ConfigActivePciEntity(pScrn, usedChips[i], I740PciChipsets, 0, 0, 0, 0, 0);
}
xfree(pEnt);
+ }
+ xfree(usedChips);
}
- if (numUsed) xfree(usedChips);
/* Look for Real3D based chips */
numUsed = xf86MatchPciInstances(I740_NAME, PCI_VENDOR_REAL3D,
@@ -417,10 +422,10 @@ I740Probe(DriverPtr drv, int flags) {
devSections, numDevSections,
drv, &usedChips);
- if (numUsed > 0 && (flags & PROBE_DETECTPCI))
- return TRUE;
-
- for (i=0; i<numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i=0; i<numUsed; i++) {
pEnt = xf86GetEntityInfo(usedChips[i]);
if (pEnt->active) {
@@ -446,8 +451,9 @@ I740Probe(DriverPtr drv, int flags) {
xf86ConfigActivePciEntity(pScrn, usedChips[i], I740PciChipsets, 0, 0, 0, 0, 0);
}
xfree(pEnt);
+ }
+ xfree(usedChips);
}
- if (numUsed) xfree(usedChips);
if (devSections)
xfree(devSections);
@@ -455,6 +461,18 @@ I740Probe(DriverPtr drv, int flags) {
return foundScreen;
}
+extern xf86MonPtr ConfiguredMonitor;
+
+void
+I740ProbeDDC(ScrnInfoPtr pScrn, int index)
+{
+ vbeInfoPtr pVbe;
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ pVbe = VBEInit(NULL,index);
+ ConfiguredMonitor = vbeDoEDID(pVbe);
+ }
+}
+
/*
* I740PreInit --
*
@@ -476,14 +494,6 @@ I740PreInit(ScrnInfoPtr pScrn, int flags) {
if (pScrn->numEntities != 1) return FALSE;
- /* The vgahw module should be loaded here when needed */
- if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE;
-
- xf86LoaderReqSymLists(vgahwSymbols, NULL);
-
- /* Allocate a vgaHWRec */
- if (!vgaHWGetHWRec(pScrn)) return FALSE;
-
/* Allocate driverPrivate */
if (!I740GetRec(pScrn)) {
return FALSE;
@@ -494,6 +504,19 @@ I740PreInit(ScrnInfoPtr pScrn, int flags) {
pI740->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
if (pI740->pEnt->location.type != BUS_PCI) return FALSE;
+ if (flags & PROBE_DETECT) {
+ I740ProbeDDC(pScrn, pI740->pEnt->index);
+ return TRUE;
+ }
+
+ /* The vgahw module should be loaded here when needed */
+ if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE;
+
+ xf86LoaderReqSymLists(vgahwSymbols, NULL);
+
+ /* Allocate a vgaHWRec */
+ if (!vgaHWGetHWRec(pScrn)) return FALSE;
+
pI740->PciInfo = xf86GetPciInfoForEntity(pI740->pEnt->index);
pI740->PciTag = pciTag(pI740->PciInfo->bus, pI740->PciInfo->device,
pI740->PciInfo->func);
@@ -1540,7 +1563,7 @@ I740ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n) {
xf86XVScreenInit(pScreen, ptr, n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c
index 0c575852d..4f47b0199 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c
@@ -24,13 +24,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c,v 1.2 1999/12/03 19:17:34 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_io.c,v 1.3 2000/02/23 04:47:14 martin Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
#include "xf86.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h
index bdaf0a599..59c0b89d0 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h,v 1.1 1999/08/29 12:20:59 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_macros.h,v 1.2 2000/02/23 04:47:14 martin Exp $ */
/*
* Authors:
* Kevin E. Martin <kevin@precisioninsight.com>
*
- * $PI$
*/
#define WAIT_ENGINE_IDLE_PIO() { \
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h
index 2431605b7..0366d7ec2 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h,v 1.1 1999/08/29 12:20:59 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i740/i740_reg.h,v 1.2 2000/02/23 04:47:14 martin Exp $ */
/*
* Authors:
* Kevin E. Martin <kevin@precisioninsight.com>
*
- * $PI$
*/
/* I/O register offsets */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile
index b5ba45398..331396f38 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile,v 1.2 2000/02/14 06:27:22 martin Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/Imakefile,v 1.4 2000/03/03 01:05:38 dawes Exp $
XCOMM
XCOMM This is the Imakefile for the i810 driver.
XCOMM
@@ -9,14 +9,14 @@ XCOMM
#
# Uncomment these to build with DRI support when available
#
-#if 0
+#undef BuildXF86DRI
#if BuildXF86DRI
-DRISRCS = i810_dri.c
-DRIOBJS = i810_dri.o
-DRIINCLUDES = -I$(SERVERSRC)/GL/dri -I$(LIBSRC)/GL/dri
+DRISRCS = i810_dri.c i810_drm.c
+DRIOBJS = i810_dri.o i810_drm.o
+DRIINCLUDES = -I$(SERVERSRC)/GL/dri -I$(LIBSRC)/GL/dri \
+ -I$(XF86OSSRC)/linux/drm/kernel
DRIDEFINES = $(GLX_DEFINES)
#endif
-#endif
SRCS = i810_driver.c i810_cursor.c i810_accel.c i810_io.c \
i810_memory.c i810_wmark.c $(DRISRCS)
@@ -49,9 +49,10 @@ ObjectModuleTarget(i810,$(OBJS))
InstallObjectModule(i810,$(MODULEDIR),drivers)
-XCOMM To install a man page remove the x and add these lines
-XCOMM xCppManTarget(i810,)
-XCOMM xInstallModuleManPage(i810)
+#if !defined(XF86DriverSDK)
+CppManTarget(i810,)
+InstallModuleManPage(i810)
+#endif
DependTarget()
@@ -70,4 +71,3 @@ InstallDriverSDKNonExecFile(i810_macros.h,$(DRIVERSDKDIR)/drivers/i810)
InstallDriverSDKNonExecFile(i810_reg.h,$(DRIVERSDKDIR)/drivers/i810)
InstallDriverSDKObjectModule(i810,$(DRIVERSDKMODULEDIR),drivers)
-
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/README b/xc/programs/Xserver/hw/xfree86/drivers/i810/README
new file mode 100644
index 000000000..f7e30d386
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/README
@@ -0,0 +1,93 @@
+ Information for i810 Users
+ i810 Driver Version 2.0.0
+
+
+1. Supported Hardware
+
+ * Intel 810 motherboards:
+ i810,
+ i810-dc100,
+ i810e.
+
+
+2. Features
+
+ * Full support for 8, 15, 16 and 24 bit per pixel depths.
+ * Hardware cursor support to reduce sprite flicker.
+ * Hardware accelerated 2D drawing engine support for 8, 15, 16 and
+ 24 bit per pixel depths.
+ * Support for high resolution video modes up to 1600x1200.
+ * Fully programmable clock supported.
+ * Robust text mode restore for VT switching.
+
+
+3. Technical Notes
+
+ * Hardware acceleration is not possible in 32 bit per pixel depth,
+ and this mode is not supported by this driver.
+ * Interlace modes cannot be supported.
+ * Normal use requires the agpgart.o module, included in linux kernels
+ 2.3.42 and higher.
+
+
+4. Reported Working Video Cards
+
+ * Intel evaluation hardware - i810, i810-dc100 and i810e.
+ * Tyan Tomcat Motherboard.
+ * HappyPC set-top box.
+
+5. Configuration
+
+ The driver auto-detects all device information necessary to
+ initialize the card. The only lines you need in the "Device"
+ section of your XF86Config file are:
+
+ Section "Device"
+ Identifier "i810"
+ EndSection
+
+ If you have problems with auto-detection, you can specify:
+
+ DacSpeed - in MHz
+ MemBase - physical address of the linear framebuffer
+ IOBase - physical address of the memory mapped IO registers
+
+
+ In order to use most resolutions, it is necessary to install the
+ 'agpgart.o' module which accompanies this server. You will probably
+ have to compile the module yourself (see the notes in the module).
+
+ Note: the i810 X server detects whether your motherboard has
+ display cache video memory. This memory is has reduced bandwidth
+ compared to normal system memory, and isn't used by the server. The
+ main function of this memory is for ancillary buffers (eg. z buffer)
+ in a forthcoming 3d capable server.
+
+
+6. Driver Options
+
+ "no_accel" - software rendering only
+
+
+7. Known Limitations
+
+ - No 3d support in this release.
+ - No 32bpp support in this driver.
+ - Running Two Xservers on different VT's is not supported at this time.
+
+8. Author
+
+ Keith Whitwell
+ Precision Insight, Inc.
+ Cedar Park, TX
+ USA
+
+ http://www.precisioninsight.com
+
+9. Support
+
+ For detailed installation instructions and other Linux on i810
+ related matters, please consult:
+
+ http://support.intel.com/support/graphics/intel810/linuxinstal.htm
+
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.cpp b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.cpp
new file mode 100644
index 000000000..2587db57d
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810.cpp,v 1.1 2000/03/03 01:05:39 dawes Exp $
+.TH I810 __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+i810 \- Intel i810 video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""i810"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B i810
+is an XFree86 driver for Intel i810 video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B i810
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h
index 523eda66f..6aceea540 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h
@@ -25,21 +25,17 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h,v 1.2 2000/02/14 06:27:22 martin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810.h,v 1.4 2000/03/02 16:07:48 martin Exp $ */
/*
* Authors:
* Keith Whitwell <keithw@precisioninsight.com>
*
- * $PI$
*/
#ifndef _I810_H_
#define _I810_H_
-/* Temporarily turn off building in DRI support */
-#undef XF86DRI
-
#include "xf86PciInfo.h"
#include "xf86Pci.h"
@@ -47,6 +43,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xaa.h"
#include "xf86Cursor.h"
+#undef XF86DRI
#ifdef XF86DRI
@@ -71,11 +68,6 @@ typedef void (*I810WriteByteFunc)(I810Ptr pI810, int addr, char value);
typedef char (*I810ReadByteFunc)(I810Ptr pI810, int addr);
-#ifdef XF86DRI
-extern void FillPrivateDRI(I810Ptr pI810, I810DRIPtr pI810DRI);
-#endif
-
-
extern void I810SetTiledMemory(ScrnInfoPtr pScrn,
int nr,
unsigned start,
@@ -86,7 +78,6 @@ extern void I810SetTiledMemory(ScrnInfoPtr pScrn,
/* Linear region allocated in framebuffer.
*/
typedef struct {
-/* FBAreaPtr Fbarea; */
unsigned long Start;
unsigned long End;
unsigned long Size;
@@ -127,16 +118,10 @@ typedef struct {
unsigned int LprbStart;
unsigned int LprbLen;
- unsigned short IntrHwStatMask;
- unsigned short IntrEnabled;
- unsigned short IntrIdentity;
- unsigned short IntrMask;
- unsigned short ErrorMask;
+ unsigned int Fence[8];
} I810RegRec, *I810RegPtr;
-
-
typedef struct _I810Rec {
unsigned char *MMIOBase;
unsigned char *FbBase;
@@ -145,11 +130,15 @@ typedef struct _I810Rec {
int MaxClock;
unsigned int bufferOffset; /* for I810SelectBuffer */
-
+ Bool DoneFrontAlloc;
+ BoxRec FbMemBox;
I810MemRange FrontBuffer;
I810MemRange BackBuffer;
I810MemRange DepthBuffer;
I810MemRange TexMem;
+ I810MemRange Scratch;
+ I810MemRange BufferMem;
+
int auxPitch;
int auxPitchBits;
@@ -201,27 +190,29 @@ typedef struct _I810Rec {
int numVisualConfigs;
__GLXvisualConfig* pVisualConfigs;
I810ConfigPrivPtr pVisualConfigsPriv;
+ unsigned long dcacheHandle;
+ unsigned long backHandle;
+ unsigned long zHandle;
+ unsigned long cursorHandle;
+ unsigned long sysmemHandle;
+ Bool agpAcquired;
+ drmHandle buffer_map;
+ drmHandle ring_map;
#endif
-
-
+ Bool agpAcquired2d;
} I810Rec;
#define I810PTR(p) ((I810Ptr)((p)->driverPrivate))
-#define DRAW_STATE_CLIPPING 0x1
-#define DRAW_STATE_TRANSPARENT 0x2
-#define DRAW_STATE_CLIP1CHANGED 0x4
-
#define I810_FRONT 0
#define I810_BACK 1
#define I810_DEPTH 2
-#define I8102XCUTOFF 135000
-
-
extern Bool I810DRIScreenInit(ScreenPtr pScreen);
extern void I810DRICloseScreen(ScreenPtr pScreen);
extern Bool I810DRIFinishScreenInit(ScreenPtr pScreen);
+extern Bool I810drmInitDma(ScrnInfoPtr pScrn);
+extern Bool I810drmCleanupDma(ScrnInfoPtr pScrn);
#define I810PTR(p) ((I810Ptr)((p)->driverPrivate))
#define I810REGPTR(p) (&(I810PTR(p)->ModeReg))
@@ -239,6 +230,7 @@ extern unsigned long I810LocalToPhysical( ScrnInfoPtr pScrn,
unsigned long local );
extern int I810AllocLow( I810MemRange *result, I810MemRange *pool, int size );
extern int I810AllocHigh( I810MemRange *result, I810MemRange *pool, int size );
+extern Bool I810AllocateFront(ScrnInfoPtr pScrn);
extern void I810SetCursorPosition(ScrnInfoPtr pScrn, int x, int y);
@@ -288,13 +280,8 @@ extern void I810EmitInvarientState(ScrnInfoPtr pScrn);
if (n>2 && (I810_DEBUG&DEBUG_ALWAYS_SYNC)) I810Sync( pScrn ); \
if (pI810->LpRing.space < n*4) I810WaitLpRing( pScrn, n*4, 0); \
pI810->LpRing.space -= n*4; \
- if (I810_DEBUG & DEBUG_VERBOSE_RING) { \
- CARD32 tail = INREG(LP_RING+RING_TAIL); \
+ if (I810_DEBUG & DEBUG_VERBOSE_RING) \
ErrorF( "BEGIN_LP_RING %d in %s\n", n, __FUNCTION__); \
- if (tail != pI810->LpRing.tail) \
- FatalError("tail %x pI810->LpRing.tail %x\n", \
- tail, pI810->LpRing.tail); \
- } \
outring = pI810->LpRing.tail; \
ringmask = pI810->LpRing.tail_mask; \
virt = pI810->LpRing.virtual_start;
@@ -325,7 +312,7 @@ extern void I810EmitInvarientState(ScrnInfoPtr pScrn);
/* To remove all debugging, make sure I810_DEBUG is defined as a
* preprocessor symbol, and equal to zero.
*/
-/* #define I810_DEBUG 0 */
+#define I810_DEBUG 0
#ifndef I810_DEBUG
#warning "Debugging enabled - expect reduced performance"
extern int I810_DEBUG;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c
index 8ea98c9cd..0f67180d2 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_accel.c
@@ -30,15 +30,9 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Authors:
* Keith Whitwell <keithw@precisioninsight.com>
*
- * $PI$
*/
-#include <math.h>
-#include <stdio.h>
-#include <sys/mman.h>
-#include <sys/time.h>
-#include <signal.h>
-
+#include "xf86_ansic.h"
#include "xf86.h"
#include "i810.h"
@@ -116,7 +110,6 @@ I810AccelInit( ScreenPtr pScreen )
XAAInfoRecPtr infoPtr;
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
I810Ptr pI810 = I810PTR(pScrn);
- I810MemRange scratch; /* push into pI810 */
if (I810_DEBUG & DEBUG_VERBOSE_ACCEL)
ErrorF( "I810AccelInit\n");
@@ -161,6 +154,7 @@ I810AccelInit( ScreenPtr pScreen )
infoPtr->SubsequentScreenToScreenCopy = I810SubsequentScreenToScreenCopy;
}
+
/* 8x8 pattern fills
*/
{
@@ -181,15 +175,12 @@ I810AccelInit( ScreenPtr pScreen )
/* Scanline color expansion - Use the same scheme as the 3.3 driver.
*
*/
- if ( I810AllocLow( &scratch, &(pI810->SysMem), 64*1024 ) ||
- I810AllocLow( &scratch, &(pI810->SysMem), 16*1024 ) )
- {
+ if(pI810->Scratch.Size != 0) {
int i;
int width = ((pScrn->displayWidth + 31) & ~31) / 8;
- int nr_buffers = scratch.Size / width;
- unsigned char *ptr = pI810->FbBase + scratch.Start;
+ int nr_buffers = pI810->Scratch.Size / width;
+ unsigned char *ptr = pI810->FbBase + pI810->Scratch.Start;
-
pI810->NumScanlineColorExpandBuffers = nr_buffers;
pI810->ScanlineColorExpandBuffers = (unsigned char **)
xnfcalloc( nr_buffers, sizeof (unsigned char *) );
@@ -219,14 +210,12 @@ I810AccelInit( ScreenPtr pScreen )
I810SubsequentScanlineCPUToScreenColorExpandFill;
infoPtr->SubsequentColorExpandScanline =
- I810SubsequentColorExpandScanline;
-
+ I810SubsequentColorExpandScanline;
}
/* Possible todo: Image writes w/ non-GXCOPY rop.
*/
-
I810SelectBuffer(pScrn, I810_FRONT);
return XAAInit(pScreen, infoPtr);
@@ -242,15 +231,18 @@ I810WaitLpRing( ScrnInfoPtr pScrn, int n, int timeout_millis )
int start = 0;
int now = 0;
int last_head = 0;
-
+ int first = 0;
+
/* If your system hasn't moved the head pointer in 2 seconds, I'm going to
* call it crashed.
*/
if (timeout_millis == 0)
timeout_millis = 2000;
- if (I810_DEBUG & DEBUG_VERBOSE_ACCEL)
+ if (I810_DEBUG & DEBUG_VERBOSE_ACCEL) {
ErrorF( "I810WaitLpRing %d\n", n);
+ first = GetTimeInMillis();
+ }
while (ring->space < n)
{
@@ -265,11 +257,20 @@ I810WaitLpRing( ScrnInfoPtr pScrn, int n, int timeout_millis )
iters++;
now = GetTimeInMillis();
if ( start == 0 || now < start || ring->head != last_head) {
+ if (I810_DEBUG & DEBUG_VERBOSE_ACCEL)
+ if (now > start)
+ ErrorF( "space: %d wanted %d\n", ring->space, n );
start = now;
last_head = ring->head;
} else if ( now - start > timeout_millis ) {
I810PrintErrorState( pScrn );
ErrorF( "space: %d wanted %d\n", ring->space, n );
+#ifdef XF86DRI
+ if(pI810->directRenderingEnabled) {
+ DRIUnlock(screenInfo.screens[pScrn->scrnIndex]);
+ DRICloseScreen(screenInfo.screens[pScrn->scrnIndex]);
+ }
+#endif
FatalError("lockup\n");
}
@@ -277,6 +278,15 @@ I810WaitLpRing( ScrnInfoPtr pScrn, int n, int timeout_millis )
;
}
+ if (I810_DEBUG & DEBUG_VERBOSE_ACCEL)
+ {
+ now = GetTimeInMillis();
+ if (now - first) {
+ ErrorF("Elapsed %d ms\n", now - first);
+ ErrorF( "space: %d wanted %d\n", ring->space, n );
+ }
+ }
+
return iters;
}
@@ -292,9 +302,12 @@ I810Sync( ScrnInfoPtr pScrn )
/* VT switching tries to do this.
*/
if (!pI810->LockHeld) {
- ErrorF( "I810Sync called with lock not held\n" );
- return;
+ return;
}
+
+
+/* if (pI810->directRenderingEnabled) */
+/* DRIUnlockLockQueiscent( pScrn->pScreen ); */
#endif
/* Send a flush instruction and then wait till the ring is empty.
@@ -303,7 +316,7 @@ I810Sync( ScrnInfoPtr pScrn )
*/
{
BEGIN_LP_RING(2);
- OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH );
+ OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH | INST_FLUSH_MAP_CACHE );
OUT_RING( 0 ); /* pad to quadword */
ADVANCE_LP_RING();
}
@@ -314,7 +327,6 @@ I810Sync( ScrnInfoPtr pScrn )
pI810->nextColorExpandBuf = 0;
}
-
void
I810SetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop,
unsigned int planemask)
@@ -578,7 +590,7 @@ I810EmitFlush( ScrnInfoPtr pScrn )
I810Ptr pI810 = I810PTR(pScrn);
BEGIN_LP_RING(2);
- OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH );
+ OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH | INST_FLUSH_MAP_CACHE);
OUT_RING( 0 );
ADVANCE_LP_RING();
}
@@ -630,9 +642,9 @@ I810EmitInvarientState(ScrnInfoPtr pScrn)
I810Ptr pI810 = I810PTR(pScrn);
BEGIN_LP_RING( 8 );
- OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH );
+ OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH | INST_FLUSH_MAP_CACHE );
OUT_RING( GFX_CMD_CONTEXT_SEL | CS_UPDATE_USE | CS_USE_CTX0 );
- OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH );
+ OUT_RING( INST_PARSER_CLIENT | INST_OP_FLUSH | INST_FLUSH_MAP_CACHE);
OUT_RING( 0 );
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c
index 8c7d31632..903ecd5b9 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c,v 1.1 2000/02/11 17:25:51 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_cursor.c,v 1.2 2000/02/23 04:47:15 martin Exp $ */
/*
* Authors:
* Keith Whitwell <keithw@precisioninsight.com>
*
- * $PI$
*/
#include "xf86.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c
index ae4d01c52..c63f9ed20 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c,v 1.1 2000/02/11 17:25:51 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.c,v 1.2 2000/03/02 16:07:49 martin Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
@@ -46,7 +46,21 @@ extern void GlxSetVisualConfigs(int nconfigs,
__GLXvisualConfig *configs,
void **configprivs);
-
+static int i810_pitches[] = {
+ 512,
+ 1024,
+ 2048,
+ 4096,
+ 0
+};
+
+static int i810_pitch_flags[] = {
+ 0x0,
+ 0x1,
+ 0x2,
+ 0x3,
+ 0
+};
static Bool
I810InitVisualConfigs(ScreenPtr pScreen)
@@ -100,12 +114,12 @@ I810InitVisualConfigs(ScreenPtr pScreen)
pConfigs[0].vid = -1;
pConfigs[0].class = -1;
pConfigs[0].rgba = TRUE;
- pConfigs[0].redSize = 8;
- pConfigs[0].greenSize = 8;
- pConfigs[0].blueSize = 8;
- pConfigs[0].redMask = 0x00FF0000;
- pConfigs[0].greenMask = 0x0000FF00;
- pConfigs[0].blueMask = 0x000000FF;
+ pConfigs[0].redSize = 5;
+ pConfigs[0].greenSize = 6;
+ pConfigs[0].blueSize = 5;
+ pConfigs[0].redMask = 0x0000F800;
+ pConfigs[0].greenMask = 0x000007E0;
+ pConfigs[0].blueMask = 0x0000001F;
pConfigs[0].alphaMask = 0;
pConfigs[0].accumRedSize = 0;
pConfigs[0].accumGreenSize = 0;
@@ -114,7 +128,7 @@ I810InitVisualConfigs(ScreenPtr pScreen)
pConfigs[0].doubleBuffer = FALSE;
pConfigs[0].stereo = FALSE;
pConfigs[0].bufferSize = 16;
- pConfigs[0].depthSize = 0;
+ pConfigs[0].depthSize = 16;
pConfigs[0].stencilSize = 0;
pConfigs[0].auxBuffers = 0;
pConfigs[0].level = 0;
@@ -129,12 +143,12 @@ I810InitVisualConfigs(ScreenPtr pScreen)
pConfigs[1].vid = -1;
pConfigs[1].class = -1;
pConfigs[1].rgba = TRUE;
- pConfigs[1].redSize = 8;
- pConfigs[1].greenSize = 8;
- pConfigs[1].blueSize = 8;
- pConfigs[1].redMask = 0x00FF0000;
- pConfigs[1].greenMask = 0x0000FF00;
- pConfigs[1].blueMask = 0x000000FF;
+ pConfigs[1].redSize = 5;
+ pConfigs[1].greenSize = 6;
+ pConfigs[1].blueSize = 5;
+ pConfigs[1].redMask = 0x0000F800;
+ pConfigs[1].greenMask = 0x000007E0;
+ pConfigs[1].blueMask = 0x0000001F;
pConfigs[1].alphaMask = 0;
pConfigs[1].accumRedSize = 0;
pConfigs[1].accumGreenSize = 0;
@@ -158,12 +172,12 @@ I810InitVisualConfigs(ScreenPtr pScreen)
pConfigs[2].vid = -1;
pConfigs[2].class = -1;
pConfigs[2].rgba = TRUE;
- pConfigs[2].redSize = 8;
- pConfigs[2].greenSize = 8;
- pConfigs[2].blueSize = 8;
- pConfigs[2].redMask = 0x00FF0000;
- pConfigs[2].greenMask = 0x0000FF00;
- pConfigs[2].blueMask = 0x000000FF;
+ pConfigs[2].redSize = 5;
+ pConfigs[2].greenSize = 6;
+ pConfigs[2].blueSize = 5;
+ pConfigs[2].redMask = 0x0000F800;
+ pConfigs[2].greenMask = 0x000007E0;
+ pConfigs[2].blueMask = 0x0000001F;
pConfigs[2].alphaMask = 0;
pConfigs[2].accumRedSize = 0;
pConfigs[2].accumGreenSize = 0;
@@ -172,7 +186,7 @@ I810InitVisualConfigs(ScreenPtr pScreen)
pConfigs[2].doubleBuffer = TRUE;
pConfigs[2].stereo = FALSE;
pConfigs[2].bufferSize = 16;
- pConfigs[2].depthSize = 0;
+ pConfigs[2].depthSize = 16;
pConfigs[2].stencilSize = 0;
pConfigs[2].auxBuffers = 0;
pConfigs[2].level = 0;
@@ -187,12 +201,12 @@ I810InitVisualConfigs(ScreenPtr pScreen)
pConfigs[3].vid = -1;
pConfigs[3].class = -1;
pConfigs[3].rgba = TRUE;
- pConfigs[3].redSize = 8;
- pConfigs[3].greenSize = 8;
- pConfigs[3].blueSize = 8;
- pConfigs[3].redMask = 0x00FF0000;
- pConfigs[3].greenMask = 0x0000FF00;
- pConfigs[3].blueMask = 0x000000FF;
+ pConfigs[3].redSize = 5;
+ pConfigs[3].greenSize = 6;
+ pConfigs[3].blueSize = 5;
+ pConfigs[3].redMask = 0x0000F800;
+ pConfigs[3].greenMask = 0x000007E0;
+ pConfigs[3].blueMask = 0x0000001F;
pConfigs[3].alphaMask = 0;
pConfigs[3].accumRedSize = 0;
pConfigs[3].accumGreenSize = 0;
@@ -221,6 +235,15 @@ I810InitVisualConfigs(ScreenPtr pScreen)
return TRUE;
}
+
+static unsigned int mylog2(unsigned int n)
+{
+ unsigned int log2 = 1;
+ while (n>1) n >>= 1, log2++;
+ return log2;
+}
+
+
Bool I810DRIScreenInit(ScreenPtr pScreen)
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
@@ -229,14 +252,27 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
I810DRIPtr pI810DRI;
unsigned long tom;
unsigned long agpHandle;
-/* int bufs; */
+ unsigned long dcacheHandle;
+ int sysmem_size = 0;
+ int back_size = 0;
+ int pitch_idx = 0;
+ int bufs;
+ int width = pScrn->displayWidth * pI810->cpp;
+ int i;
+
+ /* ToDo : save agpHandles? */
+
pDRIInfo = DRICreateInfoRec();
if (!pDRIInfo) {
ErrorF("DRICreateInfoRec failed\n");
return FALSE;
}
+
+/* pDRIInfo->wrap.ValidateTree = 0; */
+/* pDRIInfo->wrap.PostValidateTree = 0; */
+
pI810->pDRIInfo = pDRIInfo;
pI810->LockHeld = 0;
@@ -251,7 +287,10 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
pDRIInfo->ddxDriverMinorVersion = 1;
pDRIInfo->ddxDriverPatchVersion = 0;
pDRIInfo->frameBufferPhysicalAddress = pI810->LinearAddr;
- pDRIInfo->frameBufferSize = pI810->FbMapSize;
+ pDRIInfo->frameBufferSize = (((pScrn->displayWidth *
+ pScrn->virtualY * pI810->cpp) +
+ 4096 - 1) / 4096) * 4096;
+
pDRIInfo->frameBufferStride = pScrn->displayWidth*pI810->cpp;
pDRIInfo->ddxDrawableTableEntry = I810_MAX_DRAWABLES;
@@ -263,7 +302,7 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
/* For now the mapping works by using a fixed size defined
* in the SAREA header
*/
- if (sizeof(XF86DRISAREARec)+sizeof(I810SAREAPriv)>SAREA_MAX) {
+ if (sizeof(XF86DRISAREARec)+sizeof(drm_i810_sarea_t)>SAREA_MAX) {
ErrorF("Data does not fit in SAREA\n");
return FALSE;
}
@@ -277,15 +316,15 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
pDRIInfo->devPrivate = pI810DRI;
pDRIInfo->devPrivateSize = sizeof(I810DRIRec);
pDRIInfo->contextSize = sizeof(I810DRIContextRec);
-
+
pDRIInfo->CreateContext = I810CreateContext;
pDRIInfo->DestroyContext = I810DestroyContext;
pDRIInfo->SwapContext = I810DRISwapContext;
pDRIInfo->InitBuffers = I810DRIInitBuffers;
pDRIInfo->MoveBuffers = I810DRIMoveBuffers;
pDRIInfo->bufferRequests = DRI_ALL_WINDOWS;
-
-
+
+
/* This adds the framebuffer as a drm map *before* we have asked agp
* to allocate it. Scary stuff, hold on...
*/
@@ -297,7 +336,7 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
pI810->pDRIInfo=0;
return FALSE;
}
-
+
pI810DRI->regsSize=I810_REG_SIZE;
if (drmAddMap(pI810->drmSubFD, (drmHandle)pI810->MMIOAddr,
pI810DRI->regsSize, DRM_REGISTERS, 0, &pI810DRI->regs)<0) {
@@ -307,9 +346,14 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
}
xf86DrvMsg(pScreen->myNum, X_INFO, "[drm] Registers = 0x%08lx\n",
pI810DRI->regs);
-
-
-
+
+ pI810->backHandle = 0;
+ pI810->zHandle = 0;
+ pI810->cursorHandle = 0;
+ pI810->sysmemHandle = 0;
+ pI810->agpAcquired = FALSE;
+ pI810->dcacheHandle = 0;
+
/* Agp Support - Need this just to get the framebuffer.
*/
if(drmAgpAcquire(pI810->drmSubFD) < 0) {
@@ -317,72 +361,176 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
DRICloseScreen(pScreen);
return FALSE;
}
-
-
-
- /* Now allocate and bind the agp space. This memory will include the
- * regular framebuffer as well as back and texture memory.
- *
- * --> What about the dcache???
- */
- agpHandle = drmAgpAlloc(pI810->drmSubFD, pScrn->videoRam * 1024, 0, NULL);
- if(agpHandle == 0) {
- ErrorF("drmAgpAlloc failed\n");
- DRICloseScreen(pScreen);
- return FALSE;
- }
-
- if(drmAgpBind(pI810->drmSubFD, agpHandle, 0) != 0) {
- ErrorF("drmAgpBind failed\n");
+ pI810->agpAcquired = TRUE;
+
+ if (drmAgpEnable(pI810->drmSubFD, 0) < 0) {
+ ErrorF("drmAgpEnable failed\n");
DRICloseScreen(pScreen);
return FALSE;
}
- pI810->SysMem.Start = 0;
- pI810->SysMem.Size = pScrn->videoRam * 1024;
- pI810->SysMem.End = pScrn->videoRam * 1024;
- pI810->SavedSysMem = pI810->SysMem;
-
- tom = pI810->SysMem.End;
-
xf86memset (&pI810->DcacheMem, 0, sizeof(I810MemRange));
+ xf86memset (&pI810->BackBuffer, 0, sizeof(I810MemRange));
+ xf86memset (&pI810->DepthBuffer, 0, sizeof(I810MemRange));
pI810->CursorPhysical = 0;
-
+
/* Dcache - half the speed of normal ram, but has use as a Z buffer
* under the DRI.
*/
+ dcacheHandle = drmAgpAlloc(pI810->drmSubFD, 4096 * 1024, 1, NULL);
+ pI810->dcacheHandle = dcacheHandle;
- /* Keep it 512K aligned for the sake of tiled regions.
- */
- tom += 0x7ffff;
- tom &= ~0x7ffff;
+
+#define Elements(x) sizeof(x)/sizeof(*x)
+ for (pitch_idx = 0 ; pitch_idx < Elements(i810_pitches) ; pitch_idx++)
+ if (width <= i810_pitches[pitch_idx])
+ break;
+
+ if (pitch_idx == Elements(i810_pitches)) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Couldn't find depth/back buffer pitch");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+ else {
+ back_size = i810_pitches[pitch_idx] * pScrn->virtualY;
+ back_size = ((back_size + 4096 - 1) / 4096) * 4096;
+ }
+
+ sysmem_size = pScrn->videoRam * 1024;
+ if(dcacheHandle != 0) {
+ if(back_size > 4*1024*1024) {
+ ErrorF("Backsize is larger then 4 meg\n");
+ sysmem_size = sysmem_size - 2*back_size;
+ drmAgpFree(pI810->drmSubFD, dcacheHandle);
+ pI810->dcacheHandle = dcacheHandle = 0;
+ } else {
+ sysmem_size = sysmem_size - back_size;
+ }
+ } else {
+ sysmem_size = sysmem_size - 2*back_size;
+ }
+
+ sysmem_size -= 4096;
+ if(sysmem_size > ((48*1024*1024) - 1) ) {
+ sysmem_size = (48*1024*1024) - (2*4096);
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "User requested more memory then fits in the agp aperture\n"
+ "Truncating to %d bytes of memory\n",
+ sysmem_size);
+ }
+ pI810->SysMem.Start = 0;
+ pI810->SysMem.Size = sysmem_size;
+ pI810->SysMem.End = sysmem_size;
+ tom = sysmem_size;
- agpHandle = drmAgpAlloc(pI810->drmSubFD, 4096 * 1024, 1, NULL);
- if (agpHandle != 0) {
- if(drmAgpBind(pI810->drmSubFD, agpHandle, tom) == 0) {
+ pI810->SavedSysMem = pI810->SysMem;
+
+ if (dcacheHandle != 0) {
+ /* The Z buffer is always aligned to the 48 mb mark in the aperture */
+
+ if(drmAgpBind(pI810->drmSubFD, dcacheHandle, 48*1024*1024) == 0) {
+ xf86memset (&pI810->DcacheMem, 0, sizeof(I810MemRange));
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"GART: Found 4096K Z buffer memory\n");
- pI810->DcacheMem.Start = tom;
+ pI810->DcacheMem.Start = 48*1024*1024;
pI810->DcacheMem.Size = 1024 * 4096;
pI810->DcacheMem.End = pI810->DcacheMem.Start + pI810->DcacheMem.Size;
- tom = pI810->DcacheMem.End;
+ if (!I810AllocLow(&(pI810->DepthBuffer),
+ &(pI810->DcacheMem),
+ back_size))
+ {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Depth buffer allocation failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
} else {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "GART: dcache bind failed\n");
- }
+ drmAgpFree(pI810->drmSubFD, dcacheHandle);
+ pI810->dcacheHandle = dcacheHandle = 0;
+ }
} else {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "GART: no dcache memory found\n");
}
-
-
- pI810->SavedDcacheMem = pI810->DcacheMem;
-
- /* Mouse cursor - needs the physical address for hardware.
+ agpHandle = drmAgpAlloc(pI810->drmSubFD, back_size, 0, NULL);
+ pI810->backHandle = agpHandle;
+
+ if(agpHandle != 0) {
+ /* The backbuffer is always aligned to the 56 mb mark in the aperture */
+ if(drmAgpBind(pI810->drmSubFD, agpHandle, 56*1024*1024) == 0) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Bound backbuffer memory\n");
+
+ pI810->BackBuffer.Start = 56*1024*1024;
+ pI810->BackBuffer.Size = back_size;
+ pI810->BackBuffer.End = (pI810->BackBuffer.Start +
+ pI810->BackBuffer.Size);
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Unable to bind backbuffer\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Unable to allocate backbuffer memory\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+
+ if(dcacheHandle == 0) {
+ /* The Z buffer is always aligned to the 48 mb mark in the aperture */
+ agpHandle = drmAgpAlloc(pI810->drmSubFD, back_size, 0,
+ NULL);
+ pI810->zHandle = agpHandle;
+
+ if(agpHandle != 0) {
+ if(drmAgpBind(pI810->drmSubFD, agpHandle, 48*1024*1024) == 0) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Bound depthbuffer memory\n");
+ pI810->DepthBuffer.Start = 48*1024*1024;
+ pI810->DepthBuffer.Size = back_size;
+ pI810->DepthBuffer.End = (pI810->DepthBuffer.Start +
+ pI810->DepthBuffer.Size);
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Unable to bind depthbuffer\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+ } else {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Unable to allocate depthbuffer memory\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+ }
+
+ /* Now allocate and bind the agp space. This memory will include the
+ * regular framebuffer as well as texture memory.
*/
+
+ agpHandle = drmAgpAlloc(pI810->drmSubFD, sysmem_size, 0, NULL);
+ if(agpHandle == 0) {
+ ErrorF("drmAgpAlloc failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+ pI810->sysmemHandle = agpHandle;
+
+ if(drmAgpBind(pI810->drmSubFD, agpHandle, 0) != 0) {
+ ErrorF("drmAgpBind failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+
agpHandle = drmAgpAlloc(pI810->drmSubFD, 4096, 2,
(unsigned long *)&pI810->CursorPhysical);
+ pI810->cursorHandle = agpHandle;
+
if (agpHandle != 0) {
+ tom = sysmem_size;
+
if(drmAgpBind(pI810->drmSubFD, agpHandle, tom) == 0) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"GART: Allocated 4K for mouse cursor image\n");
@@ -397,34 +545,114 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
pI810->CursorPhysical = 0;
}
+
+ I810SetTiledMemory(pScrn, 1,
+ pI810->DepthBuffer.Start,
+ i810_pitches[pitch_idx],
+ 8*1024*1024);
+
+ I810SetTiledMemory(pScrn, 2,
+ pI810->BackBuffer.Start,
+ i810_pitches[pitch_idx],
+ 8*1024*1024);
+
+ pI810->auxPitch = i810_pitches[pitch_idx];
+ pI810->auxPitchBits = i810_pitch_flags[pitch_idx];
+
+ pI810->SavedDcacheMem = pI810->DcacheMem;
+
+ pI810DRI->backbufferSize = pI810->BackBuffer.Size;
+ if (drmAddMap(pI810->drmSubFD, (drmHandle)pI810->BackBuffer.Start,
+ pI810->BackBuffer.Size, DRM_AGP, 0,
+ &pI810DRI->backbuffer) < 0) {
+ ErrorF("drmAddMap(backbuffer) failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+
+ pI810DRI->depthbufferSize = pI810->DepthBuffer.Size;
+ if (drmAddMap(pI810->drmSubFD, (drmHandle)pI810->DepthBuffer.Start,
+ pI810->DepthBuffer.Size, DRM_AGP, 0,
+ &pI810DRI->depthbuffer) < 0) {
+ ErrorF("drmAddMap(depthbuffer) failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+
+ /* Allocate FrontBuffer etc. */
+ I810AllocateFront(pScrn);
+
+ /* Allocate buffer memory */
+ I810AllocHigh( &(pI810->BufferMem), &(pI810->SysMem),
+ I810_DMA_BUF_NR * I810_DMA_BUF_SZ);
+
+ if(drmAddMap(pI810->drmSubFD, (drmHandle)pI810->BufferMem.Start,
+ pI810->BufferMem.Size, DRM_AGP, 0,
+ &pI810->buffer_map) < 0) {
+ ErrorF("drmAddMap(buffer_map) failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
-#if 0
- if((bufs = drmAddBufs(pI810->drmSubFD,
- 63,
- 65536,
- DRM_AGP_BUFFER)) <= 0) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] failure adding %d %d byte DMA buffers\n",
- 63,
- 65536);
+ pI810DRI->agp_buffers = pI810->buffer_map;
+ pI810DRI->agp_buf_size = pI810->BufferMem.Size;
+
+ if (drmAddMap(pI810->drmSubFD, (drmHandle)pI810->LpRing.mem.Start,
+ pI810->LpRing.mem.Size, DRM_AGP, 0,
+ &pI810->ring_map) < 0) {
+ ErrorF("drmAddMap(ring_map) failed\n");
DRICloseScreen(pScreen);
return FALSE;
}
+
+ /* Use the rest of memory for textures. */
+ pI810DRI->textureSize = pI810->SysMem.Size;
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] added %d %d byte DMA buffers\n",
- bufs, 65536);
- if (!(pI810DRI->drmBufs = drmMapBufs(pI810->drmSubFD))) {
+ i = mylog2(pI810DRI->textureSize / I810_NR_TEX_REGIONS);
+
+ if (i < I810_LOG_MIN_TEX_REGION_SIZE)
+ i = I810_LOG_MIN_TEX_REGION_SIZE;
+
+ pI810DRI->logTextureGranularity = i;
+ pI810DRI->textureSize = (pI810DRI->textureSize >> i) << i; /* truncate */
+
+
+ if(pI810DRI->textureSize < 512*1024) {
+ ErrorF("Less then 512k for textures\n");
+ DRICloseScreen(pScreen);
+ }
+
+ I810AllocLow( &(pI810->TexMem), &(pI810->SysMem),
+ pI810DRI->textureSize);
+
+
+ if (drmAddMap(pI810->drmSubFD, (drmHandle)pI810->TexMem.Start,
+ pI810->TexMem.Size, DRM_AGP, 0,
+ &pI810DRI->textures) < 0) {
+ ErrorF("drmAddMap(textures) failed\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
+
+ if((bufs = drmAddBufs(pI810->drmSubFD,
+ I810_DMA_BUF_NR,
+ I810_DMA_BUF_SZ,
+ DRM_AGP_BUFFER, pI810->BufferMem.Start)) <= 0) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "[drm] failure mapping DMA buffers\n");
+ "[drm] failure adding %d %d byte DMA buffers\n",
+ I810_DMA_BUF_NR,
+ I810_DMA_BUF_SZ);
DRICloseScreen(pScreen);
return FALSE;
}
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] buffers mapped with %p\n",
- pI810DRI->drmBufs);
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] %d DMA buffers mapped\n",
- pI810DRI->drmBufs->count);
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "[drm] added %d %d byte DMA buffers\n",
+ bufs, I810_DMA_BUF_SZ);
+
+ I810drmInitDma(pScrn);
+
+ /* Okay now initialize the dma engine */
if (!pI810DRI->irq) {
pI810DRI->irq = drmGetInterruptFromBusID(pI810->drmSubFD,
@@ -434,42 +662,92 @@ Bool I810DRIScreenInit(ScreenPtr pScreen)
->thisCard)->devnum,
((pciConfigPtr)pI810->PciInfo
->thisCard)->funcnum);
+ if((drmCtlInstHandler(pI810->drmSubFD, pI810DRI->irq)) != 0) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "[drm] failure adding irq handler, there is a device "
+ "already using that irq\n Consider rearranging your "
+ "PCI cards\n");
+ DRICloseScreen(pScreen);
+ return FALSE;
+ }
}
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"[drm] dma control initialized, using IRQ %d\n",
pI810DRI->irq);
-#endif
+ pI810DRI=(I810DRIPtr)pI810->pDRIInfo->devPrivate;
+ pI810DRI->deviceID=pI810->PciInfo->chipType;
+ pI810DRI->width=pScrn->virtualX;
+ pI810DRI->height=pScrn->virtualY;
+ pI810DRI->mem=pScrn->videoRam*1024;
+ pI810DRI->cpp=pI810->cpp;
+
+ pI810DRI->fbOffset=pI810->FrontBuffer.Start;
+ pI810DRI->fbStride=pI810->auxPitch;
+
+ pI810DRI->bitsPerPixel = pScrn->bitsPerPixel;
+
+
+ pI810DRI->textureOffset=pI810->TexMem.Start;
+
+ pI810DRI->backOffset=pI810->BackBuffer.Start;
+ pI810DRI->depthOffset=pI810->DepthBuffer.Start;
+
+ pI810DRI->ringOffset=pI810->LpRing.mem.Start;
+ pI810DRI->ringSize=pI810->LpRing.mem.Size;
+
+ pI810DRI->auxPitch = pI810->auxPitch;
+ pI810DRI->auxPitchBits = pI810->auxPitchBits;
if (!(I810InitVisualConfigs(pScreen))) {
ErrorF("I810InitVisualConfigs failed\n");
DRICloseScreen(pScreen);
return FALSE;
}
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "visual configs initialized\n" );
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "visual configs initialized\n" );
+ pI810->pDRIInfo->driverSwapMethod = DRI_HIDE_X_CONTEXT;
+
return TRUE;
}
void
I810DRICloseScreen(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- I810Ptr pI810 = I810PTR(pScrn);
-
- DRICloseScreen(pScreen);
-
- if (pI810->pDRIInfo) {
- if (pI810->pDRIInfo->devPrivate) {
- xfree(pI810->pDRIInfo->devPrivate);
- pI810->pDRIInfo->devPrivate=0;
- }
- DRIDestroyInfoRec(pI810->pDRIInfo);
- pI810->pDRIInfo=0;
- }
- if (pI810->pVisualConfigs) xfree(pI810->pVisualConfigs);
- if (pI810->pVisualConfigsPriv) xfree(pI810->pVisualConfigsPriv);
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ I810Ptr pI810 = I810PTR(pScrn);
+
+ I810drmCleanupDma(pScrn);
+
+ if(pI810->dcacheHandle) drmAgpFree(pI810->drmSubFD, pI810->dcacheHandle);
+ if(pI810->backHandle) drmAgpFree(pI810->drmSubFD, pI810->backHandle);
+ if(pI810->zHandle) drmAgpFree(pI810->drmSubFD, pI810->zHandle);
+ if(pI810->cursorHandle) drmAgpFree(pI810->drmSubFD, pI810->cursorHandle);
+ if(pI810->sysmemHandle) drmAgpFree(pI810->drmSubFD, pI810->sysmemHandle);
+
+ if(pI810->agpAcquired == TRUE) drmAgpRelease(pI810->drmSubFD);
+
+ pI810->backHandle = 0;
+ pI810->zHandle = 0;
+ pI810->cursorHandle = 0;
+ pI810->sysmemHandle = 0;
+ pI810->agpAcquired = FALSE;
+ pI810->dcacheHandle = 0;
+
+
+ DRICloseScreen(pScreen);
+
+ if (pI810->pDRIInfo) {
+ if (pI810->pDRIInfo->devPrivate) {
+ xfree(pI810->pDRIInfo->devPrivate);
+ pI810->pDRIInfo->devPrivate=0;
+ }
+ DRIDestroyInfoRec(pI810->pDRIInfo);
+ pI810->pDRIInfo=0;
+ }
+ if (pI810->pVisualConfigs) xfree(pI810->pVisualConfigs);
+ if (pI810->pVisualConfigsPriv) xfree(pI810->pVisualConfigsPriv);
}
static Bool
@@ -477,75 +755,24 @@ I810CreateContext(ScreenPtr pScreen, VisualPtr visual,
drmContext hwContext, void *pVisualConfigPriv,
DRIContextType contextStore)
{
- I810DRIContextPtr ctx;
-
- ctx=(I810DRIContextPtr)contextStore;
- return TRUE;
+ return TRUE;
}
static void
I810DestroyContext(ScreenPtr pScreen, drmContext hwContext,
DRIContextType contextStore)
{
- I810DRIContextPtr ctx;
- ctx=(I810DRIContextPtr)contextStore;
}
-static unsigned int mylog2(unsigned int n)
-{
- unsigned int log2 = 0;
- while (n>1) n >>= 1, log2++;
- return log2;
-}
Bool
I810DRIFinishScreenInit(ScreenPtr pScreen)
{
- ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- I810Ptr pI810 = I810PTR(pScrn);
- I810DRIPtr pI810DRI = (I810DRIPtr) pI810->pDRIInfo->devPrivate;
- I810SAREAPriv *sPriv = (I810SAREAPriv *)DRIGetSAREAPrivate(pScreen);
- int i;
-
- pI810->pDRIInfo->driverSwapMethod = DRI_HIDE_X_CONTEXT;
-
- pI810DRI->deviceID=pI810->PciInfo->chipType;
- pI810DRI->width=pScrn->virtualX;
- pI810DRI->height=pScrn->virtualY;
- pI810DRI->mem=pScrn->videoRam*1024;
- pI810DRI->cpp=pI810->cpp;
- pI810DRI->fbOffset=pI810->FrontBuffer.Start;
- pI810DRI->fbStride=pI810->auxPitch;
- pI810DRI->bitsPerPixel = pScrn->bitsPerPixel;
- pI810DRI->textureOffset=pI810->TexMem.Start;
- pI810DRI->textureSize=pI810->TexMem.Size;
- pI810DRI->backOffset=pI810->BackBuffer.Start;
- pI810DRI->depthOffset=pI810->DepthBuffer.Start;
- pI810DRI->ringOffset=pI810->LpRing.mem.Start;
- pI810DRI->ringSize=pI810->LpRing.mem.Size;
- pI810DRI->auxPitch = pI810->auxPitch;
- pI810DRI->auxPitchBits = pI810->auxPitchBits;
-
-
-#define I810_LOG_MIN_TEX_REGION_SIZE 18
-
- i = mylog2(pI810DRI->textureSize / I810_NR_TEX_REGIONS);
-
- if (i < I810_LOG_MIN_TEX_REGION_SIZE)
- i = I810_LOG_MIN_TEX_REGION_SIZE;
-
- pI810DRI->logTextureGranularity = i;
- pI810DRI->textureSize = (pI810DRI->textureSize >> i) << i; /* truncate */
-
- ErrorF( "texture granularity: 0x%x size: 0x%x\n",
- (1<<i), pI810DRI->textureSize );
-
+ drm_i810_sarea_t *sPriv = (drm_i810_sarea_t *)DRIGetSAREAPrivate(pScreen);
xf86memset( sPriv, 0, sizeof(sPriv) );
-
return DRIFinishScreenInit(pScreen);
}
-
void
I810DRISwapContext(ScreenPtr pScreen, DRISyncType syncType,
DRIContextType oldContextType, void *oldContext,
@@ -735,8 +962,8 @@ I810DRIMoveBuffers(WindowPtr pParent, DDXPointRec ptOldOrg,
int w = pbox->x2 - x1 + 1;
int h = pbox->y2 - y1 + 1;
- if ( destx < 0 ) w += destx, destx = 0;
- if ( desty < 0 ) h += desty, desty = 0;
+ if ( destx < 0 ) x1 -= destx, w += destx, destx = 0;
+ if ( desty < 0 ) y1 -= desty, h += desty, desty = 0;
if ( destx + w > screenwidth ) w = screenwidth - destx;
if ( desty + h > screenheight ) h = screenheight - desty;
if ( w <= 0 ) continue;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h
index fcfca517a..e593f36b2 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h
@@ -1,10 +1,10 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h,v 1.1 2000/02/11 17:25:52 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dri.h,v 1.2 2000/03/02 16:07:49 martin Exp $ */
#ifndef _I810_DRI_
#define _I810_DRI_
#include <xf86drm.h>
-#include "i810_sarea.h"
+#include "i810_drm_public.h"
#define I810_MAX_DRAWABLES 256
@@ -12,6 +12,19 @@ typedef struct {
drmHandle regs;
drmSize regsSize;
drmAddress regsMap;
+
+ drmSize backbufferSize;
+ drmHandle backbuffer;
+
+ drmSize depthbufferSize;
+ drmHandle depthbuffer;
+
+ drmHandle textures;
+ int textureSize;
+
+ drmHandle agp_buffers;
+ drmSize agp_buf_size;
+
int deviceID;
int width;
int height;
@@ -29,7 +42,6 @@ typedef struct {
int logTextureGranularity;
int textureOffset;
- int textureSize;
/* For non-dma direct rendering.
*/
@@ -41,8 +53,6 @@ typedef struct {
} I810DRIRec, *I810DRIPtr;
-
-
typedef struct {
/* Nothing here yet */
int dummy;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dripriv.h b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dripriv.h
new file mode 100644
index 000000000..b4bbab133
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dripriv.h
@@ -0,0 +1,24 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_dripriv.h,v 1.1 2000/03/02 16:07:50 martin Exp $ */
+
+#ifndef _I810_DRIPRIV_H_
+#define _I810_DRIPRIV_H_
+
+#define I810_MAX_DRAWABLES 256
+
+extern void GlxSetVisualConfigs(
+ int nconfigs,
+ __GLXvisualConfig *configs,
+ void **configprivs
+);
+
+typedef struct {
+ /* Nothing here yet */
+ int dummy;
+} I810ConfigPrivRec, *I810ConfigPrivPtr;
+
+typedef struct {
+ /* Nothing here yet */
+ int dummy;
+} I810DRIContextRec, *I810DRIContextPtr;
+
+#endif
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
index 34f108089..e489d17c9 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v 1.3 2000/02/21 19:23:03 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_driver.c,v 1.7 2000/03/02 16:07:50 martin Exp $ */
/*
* Authors:
* Keith Whitwell <keithw@precisioninsight.com>
*
- * $PI$
*/
/*
@@ -83,7 +82,7 @@ static Bool I810ScreenInit(int Index, ScreenPtr pScreen, int argc, char **argv);
static Bool I810EnterVT(int scrnIndex, int flags);
static void I810LeaveVT(int scrnIndex, int flags);
static Bool I810CloseScreen(int scrnIndex, ScreenPtr pScreen);
-static Bool I810SaveScreen(ScreenPtr pScreen, int mode);
+static Bool I810SaveScreen(ScreenPtr pScreen, Bool unblank);
static Bool I810SwitchMode(int scrnIndex, DisplayModePtr mode, int flags);
static void I810AdjustFrame(int scrnIndex, int x, int y, int flags);
static void I810FreeScreen(int scrnIndex, int flags);
@@ -255,25 +254,6 @@ static const char *driSymbols[] = {
#endif
-#ifdef XF86DRI
-static int i810_pitches[] = {
- 512,
- 1024,
- 2048,
- 4096,
- 0
-};
-
-static int i810_pitch_flags[] = {
- 0x0,
- 0x1,
- 0x2,
- 0x3,
- 0
-};
-#endif
-
-
#ifndef I810_DEBUG
int I810_DEBUG = (0
/* | DEBUG_ALWAYS_SYNC */
@@ -287,7 +267,15 @@ int I810_DEBUG = (0
);
#endif
-
+#ifdef XF86DRI
+static int i810_pitches[] = {
+ 512,
+ 1024,
+ 2048,
+ 4096,
+ 0
+};
+#endif
#ifdef XFree86LOADER
@@ -312,12 +300,12 @@ XF86ModuleData i810ModuleData = {&i810VersRec, i810Setup, 0};
static pointer
i810Setup(pointer module, pointer opts, int *errmaj, int *errmin)
{
- static Bool setupDone = FALSE;
+ static Bool setupDone = 0;
/* This module should be loaded only once, but check to be sure.
*/
if (!setupDone) {
- setupDone = TRUE;
+ setupDone = 1;
xf86AddDriver(&I810, module, 0);
/*
@@ -399,7 +387,7 @@ static Bool
I810Probe(DriverPtr drv, int flags) {
int i, numUsed, numDevSections, *usedChips;
GDevPtr *devSections;
- Bool foundScreen = FALSE;
+ Bool foundScreen = 0;
EntityInfoPtr pEnt;
/*
@@ -549,12 +537,6 @@ I810PreInit(ScrnInfoPtr pScrn, int flags) {
hwp = VGAHWPTR(pScrn);
pI810->cpp = pScrn->bitsPerPixel/8;
- ErrorF( "Depth %d BitsPerPixel %d cpp %d\n",
- pScrn->depth,
- pScrn->bitsPerPixel,
- pI810->cpp);
-
-
/* Process the options */
xf86CollectOptions(pScrn, NULL);
xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, I810Options);
@@ -661,7 +643,9 @@ I810PreInit(ScrnInfoPtr pScrn, int flags) {
xf86DrvMsg(pScrn->scrnIndex, from, "Will alloc AGP framebuffer: %d kByte\n",
pScrn->videoRam);
- pI810->FbMapSize = pScrn->videoRam*1024 + (4096*1024) + (4096);
+ /* Since we always want write combining on first 32 mb of framebuffer
+ * we pass a mapsize of 32 mb */
+ pI810->FbMapSize = 32*1024*1024;
/*
* If the driver can do gamma correction, it should call xf86SetGamma()
@@ -806,7 +790,7 @@ I810PreInit(ScrnInfoPtr pScrn, int flags) {
return TRUE;
}
-static Bool
+static Bool
I810MapMMIO(ScrnInfoPtr pScrn)
{
int mmioFlags;
@@ -919,6 +903,7 @@ DoSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, I810RegPtr i810Reg, Bool saveFonts)
{
I810Ptr pI810;
vgaHWPtr hwp;
+ int i;
pI810 = I810PTR(pScrn);
hwp = VGAHWPTR(pScrn);
@@ -958,11 +943,8 @@ DoSave(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, I810RegPtr i810Reg, Bool saveFonts)
i810Reg->DisplayControl = INREG8(DISPLAY_CNTL);
i810Reg->LMI_FIFO_Watermark = INREG(FWATER_BLC);
- i810Reg->IntrHwStatMask = INREG16(HWSTAM);
- i810Reg->IntrEnabled = INREG16(IER);
- i810Reg->IntrIdentity = INREG16(IIR);
- i810Reg->IntrMask = INREG16(IMR);
- i810Reg->ErrorMask = INREG16(EMR);
+ for (i = 0 ; i < 8 ; i++)
+ i810Reg->Fence[i] = INREG(FENCE+i*4);
i810Reg->LprbTail = INREG(LP_RING + RING_TAIL);
i810Reg->LprbHead = INREG(LP_RING + RING_HEAD);
@@ -1048,11 +1030,6 @@ static void i810PrintMode( vgaRegPtr vgaReg, I810RegPtr mode )
ErrorF(" LprbHead: %x\n", mode->LprbHead);
ErrorF(" LprbStart: %x\n", mode->LprbStart);
ErrorF(" LprbLen: %x\n", mode->LprbLen);
- ErrorF(" IntrHwStatMask: %x\n", mode->IntrHwStatMask);
- ErrorF(" IntrEnabled: %x\n", mode->IntrEnabled);
- ErrorF(" IntrIdentity: %x\n", mode->IntrIdentity);
- ErrorF(" IntrMask: %x\n", mode->IntrMask);
- ErrorF(" ErrorMask: %x\n", mode->ErrorMask);
}
@@ -1064,8 +1041,8 @@ DoRestore(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, I810RegPtr i810Reg,
I810Ptr pI810;
vgaHWPtr hwp;
unsigned char temp;
- unsigned short stemp;
unsigned int itemp;
+ int i;
pI810 = I810PTR(pScrn);
hwp = VGAHWPTR(pScrn);
@@ -1176,30 +1153,9 @@ DoRestore(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, I810RegPtr i810Reg,
temp &= ~DISPLAY_COLOR_MODE;
temp |= i810Reg->PixelPipeCfg1;
OUTREG8( PIXPIPE_CONFIG_1, temp );
-
- stemp = INREG16(HWSTAM);
- stemp &= INTR_RESERVED;
- stemp |= i810Reg->IntrHwStatMask;
- OUTREG16(HWSTAM, stemp);
-
- stemp = INREG16(IER);
- stemp &= INTR_RESERVED;
- stemp |= i810Reg->IntrEnabled;
- OUTREG16(IER, stemp);
-
- stemp = INREG16(IMR);
- stemp &= INTR_RESERVED;
- stemp |= i810Reg->IntrMask;
- OUTREG16(IMR, stemp);
-
+
OUTREG16(EIR, 0);
- stemp = INREG16(EMR);
- stemp &= ERROR_RESERVED;
- stemp |= i810Reg->ErrorMask;
- OUTREG16(EMR, stemp);
-
-
itemp = INREG(FWATER_BLC);
itemp &= ~(LM_BURST_LENGTH | LM_FIFO_WATERMARK |
MM_BURST_LENGTH | MM_FIFO_WATERMARK );
@@ -1207,6 +1163,12 @@ DoRestore(ScrnInfoPtr pScrn, vgaRegPtr vgaReg, I810RegPtr i810Reg,
OUTREG(FWATER_BLC, itemp);
+ for (i = 0 ; i < 8 ; i++) {
+ OUTREG( FENCE+i*4, i810Reg->Fence[i] );
+ if (I810_DEBUG & DEBUG_VERBOSE_VGA)
+ ErrorF("Fence Register : %x\n", i810Reg->Fence[i]);
+ }
+
/* First disable the ring buffer (Need to wait for empty first?, if so
* should probably do it before entering this section)
*/
@@ -1345,7 +1307,6 @@ I810CalcVCLK( ScrnInfoPtr pScrn, double freq )
m_best, n_best, p_best);
}
-
static Bool
I810SetMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
{
@@ -1354,9 +1315,6 @@ I810SetMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
vgaRegPtr pVga = &VGAHWPTR(pScrn)->ModeReg;
double dclk = mode->Clock/1000.0;
- ErrorF("I810SetMode, depth %d displayWidth %d\n",
- pScrn->depth, pScrn->displayWidth);
-
switch (pScrn->depth) {
case 8:
pVga->CRTC[0x13] = pScrn->displayWidth >> 3;
@@ -1446,13 +1404,6 @@ I810SetMode(ScrnInfoPtr pScrn, DisplayModePtr mode)
/* Calculate the FIFO Watermark and Burst Length. */
i810Reg->LMI_FIFO_Watermark = I810CalcWatermark(pScrn, dclk, FALSE);
-
- i810Reg->IntrHwStatMask = ~INTR_RESERVED;
- i810Reg->IntrEnabled = 0x0000;
- i810Reg->IntrIdentity = 0x0000;
- i810Reg->IntrMask = ~INTR_RESERVED; /* unmask all interrupts */
-
- i810Reg->ErrorMask = 0;
/* Setup the ring buffer */
i810Reg->LprbTail = 0;
@@ -1500,7 +1451,7 @@ I810ModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
#ifdef XF86DRI
if (pI810->directRenderingEnabled) {
- DRILock(screenInfo.screens[pScrn->scrnIndex]);
+ DRILock(screenInfo.screens[pScrn->scrnIndex], 0);
pI810->LockHeld = 1;
}
#endif
@@ -1570,8 +1521,59 @@ I810LoadPalette24(ScrnInfoPtr pScrn, int numColors, int *indices, LOCO *colors,
}
}
+Bool
+I810AllocateFront(ScrnInfoPtr pScrn) {
+ I810Ptr pI810 = I810PTR(pScrn);
+
+ if(pI810->DoneFrontAlloc)
+ return TRUE;
+
+ xf86memset(&(pI810->FbMemBox), 0, sizeof(BoxRec));
+ /* Alloc FrontBuffer/Ring/Accel memory */
+ pI810->FbMemBox.x1=0;
+ pI810->FbMemBox.x2=pScrn->displayWidth;
+ pI810->FbMemBox.y1=0;
+ pI810->FbMemBox.y2=pScrn->virtualY;
+
+ /* Make sure there is room for pixcache either beside or below
+ * the screen.
+ */
+ if (pScrn->displayWidth < pScrn->virtualX + 64)
+ pI810->FbMemBox.y2 += 64;
+
+ /* Reserve room for the framebuffer and pixcache. Put at the top
+ * of memory so we can have nice alignment for the tiled regions at
+ * the start of memory.
+ */
+ I810AllocLow( &(pI810->FrontBuffer),
+ &(pI810->SysMem),
+ ((pI810->FbMemBox.x2 *
+ pI810->FbMemBox.y2 *
+ pI810->cpp) + 4095) & ~4095);
+
+ xf86memset( &(pI810->LpRing), 0, sizeof( I810RingBuffer ) );
+ if(I810AllocLow( &(pI810->LpRing.mem), &(pI810->SysMem), 16*4096 )) {
+ if (I810_DEBUG & DEBUG_VERBOSE_MEMORY)
+ ErrorF( "ring buffer at local %lx\n",
+ pI810->LpRing.mem.Start);
+ pI810->LpRing.tail_mask = pI810->LpRing.mem.Size - 1;
+ pI810->LpRing.virtual_start = pI810->FbBase + pI810->LpRing.mem.Start;
+ pI810->LpRing.head = 0;
+ pI810->LpRing.tail = 0;
+ pI810->LpRing.space = 0;
+ }
+
+ if ( I810AllocLow( &pI810->Scratch, &(pI810->SysMem), 64*1024 ) ||
+ I810AllocLow( &pI810->Scratch, &(pI810->SysMem), 16*1024 ) ) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Allocated Scratch Memory\n");
+ }
+
+ pI810->DoneFrontAlloc = TRUE;
+ return TRUE;
+}
static Bool
I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
@@ -1579,7 +1581,6 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
vgaHWPtr hwp;
I810Ptr pI810;
VisualPtr visual;
- BoxRec MemBox;
pScrn = xf86Screens[pScreen->myNum];
pI810 = I810PTR(pScrn);
@@ -1592,29 +1593,41 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
if (!miSetVisualTypes(pScrn->depth, miGetDefaultVisualMask(pScrn->depth),
pScrn->rgbBits, pScrn->defaultVisual))
return FALSE;
+
+ {
+ I810RegPtr i810Reg = &pI810->ModeReg;
+ int i;
+
+ for (i = 0 ; i < 8 ; i++)
+ i810Reg->Fence[i] = 0;
+ }
/* Have to init the DRM earlier than in other drivers to get agp
* memory. Wonder if this is going to be a problem...
*/
-
#ifdef XF86DRI
/*
* Setup DRI after visuals have been established, but before cfbScreenInit
* is called. cfbScreenInit will eventually call into the drivers
* InitGLXVisuals call back.
*/
- pI810->directRenderingEnabled = I810DRIScreenInit(pScreen);
-#else
- if (!I810AllocateGARTMemory( pScrn )) {
- return FALSE;
+
+ if (!xf86ReturnOptValBool(I810Options, OPTION_NOACCEL, FALSE)) {
+ pI810->directRenderingEnabled = I810DRIScreenInit(pScreen);
+ } else {
+ pI810->directRenderingEnabled = FALSE;
}
+
+#else
+ if (!I810AllocateGARTMemory( pScrn ))
+ return FALSE;
+ I810AllocateFront(pScrn);
#endif
-
+
if (!I810MapMem(pScrn)) return FALSE;
-
pScrn->memPhysBase = (int)pI810->FbBase;
pScrn->fbOffset = 0;
@@ -1625,10 +1638,9 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
I810Save(pScrn);
if (!I810ModeInit(pScrn, pScrn->currentMode)) return FALSE;
- I810SaveScreen(pScreen, SCREEN_SAVER_ON);
+ I810SaveScreen(pScreen, FALSE);
I810AdjustFrame(scrnIndex, pScrn->frameX0, pScrn->frameY0, 0);
-
switch (pScrn->bitsPerPixel) {
case 8:
if (!cfbScreenInit(pScreen, pI810->FbBase + pScrn->fbOffset,
@@ -1711,76 +1723,34 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn, &ptr);
if (n) {
xf86XVScreenInit(pScreen, ptr, n);
}
}
#endif
-
-
- MemBox.x1=0;
- MemBox.x2=pScrn->displayWidth;
- MemBox.y1=0;
- MemBox.y2=pScrn->virtualY;
-
- /* Make sure there is room for pixcache either beside or below
- * the screen.
- */
- if (pScrn->displayWidth < pScrn->virtualX + 64)
- MemBox.y2 += 64;
-
-
- /* Reserve room for the framebuffer and pixcache. Put at the start
- * of memory because it's difficult to put it anywhere else.
- */
- I810AllocLow( &(pI810->FrontBuffer),
- &(pI810->SysMem),
- ((MemBox.x2 * MemBox.y2 * pI810->cpp) + 4095) & ~4095);
-
-
- ErrorF("Framebuffer 0x%x, size 0x%x\n",
- pI810->FrontBuffer.Start,
- pI810->FrontBuffer.Size);
+#ifdef XF86DRI
+ if (!pI810->directRenderingEnabled) {
+ pI810->DoneFrontAlloc = FALSE;
+ if (!I810AllocateGARTMemory( pScrn ))
+ return FALSE;
+ I810AllocateFront(pScrn);
+ }
+#endif
- ErrorF("DisplayWidth %d, virtualX %d\n",
- pScrn->displayWidth,
- pScrn->virtualX);
-
-
- if (!xf86InitFBManager(pScreen, &MemBox)) {
+ if (!xf86InitFBManager(pScreen, &(pI810->FbMemBox))) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
"Failed to init memory manager\n");
return FALSE;
}
-
-
- xf86memset( &(pI810->LpRing), 0, sizeof( I810RingBuffer ) );
-
if (!xf86ReturnOptValBool(I810Options, OPTION_NOACCEL, FALSE)) {
- if (
-#ifdef XF86DRI
- I810AllocLow( &(pI810->LpRing.mem), &(pI810->SysMem), 64*4096 ) ||
-#endif
- I810AllocLow( &(pI810->LpRing.mem), &(pI810->SysMem), 4096 )
- ) {
-
- if (I810_DEBUG & DEBUG_VERBOSE_MEMORY)
- ErrorF( "ring buffer at local %lx\n",
- pI810->LpRing.mem.Start);
-
- pI810->LpRing.tail_mask = pI810->LpRing.mem.Size - 1;
- pI810->LpRing.virtual_start = pI810->FbBase + pI810->LpRing.mem.Start;
- pI810->LpRing.head = 0;
- pI810->LpRing.tail = 0;
- pI810->LpRing.space = 0;
-
+ if (pI810->LpRing.mem.Size != 0) {
I810SetRingRegs( pScrn );
-
+
if (!I810AccelInit(pScreen)) {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "Hardware acceleration initialization failed\n");
+ "Hardware acceleration initialization failed\n");
}
}
}
@@ -1792,70 +1762,11 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
}
}
-
-#ifdef XF86DRI
-#define Elements(x) sizeof(x)/sizeof(*x)
+#if XF86DRI
if (pI810->LpRing.mem.Start == 0) {
pI810->directRenderingEnabled = 0;
I810DRICloseScreen(pScreen);
}
-
- if (pI810->directRenderingEnabled) {
- int width = MemBox.x2 * pI810->cpp;
- int i;
-
- for (i = 0 ; i < Elements(i810_pitches) ; i++)
- if (width <= i810_pitches[i])
- break;
-
- if (i == Elements(i810_pitches)) {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Couldn't find depth/back buffer pitch");
- pI810->directRenderingEnabled = 0;
- I810DRICloseScreen(pScreen);
- }
- else {
- int sz = i810_pitches[i] * pScrn->virtualY;
-
- /* Round to 512K for tiling - potentially wasteful.
- */
- sz += 0x7ffff;
- sz &= ~0x7ffff;
-
- if (I810AllocHigh(&(pI810->BackBuffer), &(pI810->SysMem), sz) &&
- (I810AllocLow(&(pI810->DepthBuffer), &(pI810->DcacheMem), sz) ||
- I810AllocHigh(&(pI810->DepthBuffer), &(pI810->SysMem), sz)))
- {
- /* Set up tiled regions for depth and back buffers.
- */
- if (1) {
- I810SetTiledMemory( pScrn, 1,
- pI810->DepthBuffer.Start,
- i810_pitches[i],
- sz );
-
- I810SetTiledMemory( pScrn, 2,
- pI810->BackBuffer.Start,
- i810_pitches[i],
- sz );
- }
-
- /* Use the rest of memory for textures.
- */
- I810AllocLow( &(pI810->TexMem), &(pI810->SysMem),
- pI810->SysMem.Size);
- pI810->auxPitch = i810_pitches[i];
- pI810->auxPitchBits = i810_pitch_flags[i];
- }
- else
- {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO,
- "Insufficient memory for back and/or depth buffers\n");
- pI810->directRenderingEnabled = 0;
- I810DRICloseScreen(pScreen);
- }
- }
- }
if (pI810->directRenderingEnabled) {
/* Now that mi, cfb, drm and others have done their thing,
@@ -1863,17 +1774,20 @@ I810ScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
*/
pI810->directRenderingEnabled = I810DRIFinishScreenInit(pScreen);
}
-
+#endif
+
if (pI810->directRenderingEnabled) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering: Enabled\n");
} else {
- xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering: Disabled\n");
- if (!I810AllocateGARTMemory( pScrn ))
- return FALSE;
+ if(pI810->agpAcquired2d == TRUE) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering: Disabled\n");
+ }
+ else {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO, "direct rendering: Failed\n");
+ return FALSE;
+ }
}
-#endif
-
pScreen->SaveScreen = I810SaveScreen;
pI810->CloseScreen = pScreen->CloseScreen;
pScreen->CloseScreen = I810CloseScreen;
@@ -1938,20 +1852,18 @@ I810AdjustFrame(int scrnIndex, int x, int y, int flags) {
static Bool
I810EnterVT(int scrnIndex, int flags) {
ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
+ I810Ptr pI810 = I810PTR(pScrn);
if (I810_DEBUG & DEBUG_VERBOSE_DRI)
ErrorF("\n\n\ENTER VT\n");
#ifdef XF86DRI
- {
- I810Ptr pI810 = I810PTR(pScrn);
- if (pI810->directRenderingEnabled) {
- if (I810_DEBUG & DEBUG_VERBOSE_DRI)
- ErrorF("calling dri unlock\n");
- DRIUnlock( screenInfo.screens[scrnIndex] );
- pI810->LockHeld = 0;
- }
+ if (pI810->directRenderingEnabled) {
+ if (I810_DEBUG & DEBUG_VERBOSE_DRI)
+ ErrorF("calling dri unlock\n");
+ DRIUnlock( screenInfo.screens[scrnIndex] );
+ pI810->LockHeld = 0;
}
#endif
@@ -1976,10 +1888,11 @@ I810LeaveVT(int scrnIndex, int flags) {
if (pI810->directRenderingEnabled) {
if (I810_DEBUG & DEBUG_VERBOSE_DRI)
ErrorF("calling dri lock\n");
- DRILock( screenInfo.screens[scrnIndex] );
+ DRILock( screenInfo.screens[scrnIndex], 0 );
pI810->LockHeld = 1;
}
#endif
+
I810RefreshRing( pScrn );
I810Sync( pScrn );
I810Restore(pScrn);
@@ -1995,13 +1908,7 @@ I810CloseScreen(int scrnIndex, ScreenPtr pScreen)
XAAInfoRecPtr infoPtr = pI810->AccelInfoRec;
-#ifndef XF86DRI
- /* Need to free this here as we are now allocating it in
- * I810ScreenInit() -- the question is will we always be able to
- * get it back...
- */
- I810FreeGARTMemory( pScrn );
-#else
+#ifdef XF86DRI
if (pI810->directRenderingEnabled) {
I810DRICloseScreen(pScreen);
pI810->directRenderingEnabled=FALSE;
@@ -2043,8 +1950,7 @@ I810CloseScreen(int scrnIndex, ScreenPtr pScreen)
static void
I810FreeScreen(int scrnIndex, int flags) {
I810FreeRec(xf86Screens[scrnIndex]);
- if (xf86LoaderCheckSymbol("vgaHWFreeHWRec"))
- vgaHWFreeHWRec(xf86Screens[scrnIndex]);
+ vgaHWFreeHWRec(xf86Screens[scrnIndex]);
}
static int
@@ -2061,9 +1967,9 @@ I810ValidMode(int scrnIndex, DisplayModePtr mode, Bool verbose, int flags) {
}
static Bool
-I810SaveScreen(ScreenPtr pScreen, Bool mode)
+I810SaveScreen(ScreenPtr pScreen, Bool unblack)
{
- return vgaHWSaveScreen(pScreen, mode);
+ return vgaHWSaveScreen(pScreen, unblack);
}
#ifdef DPMSExtension
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_drm.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_drm.c
new file mode 100644
index 000000000..13f2658e1
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_drm.c
@@ -0,0 +1,59 @@
+#include "xf86.h"
+#include "xf86_OSproc.h"
+#include "xf86Resources.h"
+#include "xf86_ansic.h"
+#include "compiler.h"
+#include "xf86PciInfo.h"
+#include "xf86Pci.h"
+#include "xf86Priv.h"
+#include "i810.h"
+
+#ifndef XFree86LOADER
+#include <sys/stat.h>
+#include <sys/mman.h>
+#endif
+
+#include "xf86drm.h"
+#include "drm.h"
+#include "i810_drm_public.h"
+
+Bool I810drmCleanupDma(ScrnInfoPtr pScrn)
+{
+ I810Ptr pI810 = I810PTR(pScrn);
+ drm_i810_init_t init;
+
+ memset(&init, 0, sizeof(drm_i810_init_t));
+ init.func = I810_CLEANUP_DMA;
+
+ if(ioctl(pI810->drmSubFD, DRM_IOCTL_I810_INIT, &init)) {
+ ErrorF("I810 Dma Cleanup Failed\n");
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+Bool I810drmInitDma(ScrnInfoPtr pScrn)
+{
+ I810Ptr pI810 = I810PTR(pScrn);
+ I810RingBuffer *ring = &(pI810->LpRing);
+
+ drm_i810_init_t init;
+
+ memset(&init, 0, sizeof(drm_i810_init_t));
+ init.func = I810_INIT_DMA;
+ init.ring_map_idx = 6;
+ init.buffer_map_idx = 5;
+ init.ring_start = ring->mem.Start;
+ init.ring_end = ring->mem.End;
+ init.ring_size = ring->mem.Size;
+ init.sarea_priv_offset = sizeof(XF86DRISAREARec);
+ ErrorF("I810 Dma Initialization start\n");
+
+ if(ioctl(pI810->drmSubFD, DRM_IOCTL_I810_INIT, &init)) {
+ ErrorF("I810 Dma Initialization Failed\n");
+ return FALSE;
+ }
+ ErrorF("I810 Dma Initialization done\n");
+ return TRUE;
+}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c
index 488ba2bb6..4378e060d 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c
@@ -24,13 +24,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c,v 1.1 2000/02/11 17:25:52 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/i810/i810_io.c,v 1.2 2000/02/23 04:47:16 martin Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
#include "xf86.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c
index 09ce091c2..2cedd9682 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_memory.c
@@ -1,3 +1,4 @@
+
/**************************************************************************
Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
@@ -29,7 +30,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Authors:
* Keith Whitwell <keithw@precisioninsight.com>
*
- * $PI$
*/
@@ -41,6 +41,8 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xf86Priv.h"
#include "xf86_OSlib.h"
+/* #include "xf86_ansic.h" */
+
#include "i810.h"
#include "i810_reg.h"
@@ -87,26 +89,40 @@ int I810AllocateGARTMemory( ScrnInfoPtr pScrn )
int pages = pScrn->videoRam / 4;
I810Ptr pI810 = I810PTR(pScrn);
long tom = 0;
+ int gartfd = -1;
- pI810->gartfd = xf86open("/dev/agpgart", O_RDWR, 0);
+ gartfd = xf86open("/dev/agpgart", O_RDWR, 0);
- if (pI810->gartfd == -1) {
+ if (gartfd == -1) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "unable to open /dev/agpgart\n");
return FALSE;
}
- if (xf86ioctl(pI810->gartfd, AGPIOC_ACQUIRE, 0) != 0) {
+ if (xf86ioctl(gartfd, AGPIOC_ACQUIRE, 0) != 0) {
+ if(pI810->agpAcquired2d == TRUE) {
+ xf86close(gartfd);
+ return TRUE;
+ }
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "AGPIOC_ACQUIRE failed\n");
return FALSE;
}
+ /* This allows the 2d only Xserver to regen */
+ pI810->agpAcquired2d = TRUE;
+ pI810->gartfd = gartfd;
+
if (xf86ioctl(pI810->gartfd, AGPIOC_INFO, &agpinf) != 0) {
xf86DrvMsg(pScrn->scrnIndex, X_INFO,
"error doing xf86ioctl(AGPIOC_INFO)\n");
return FALSE;
}
-
-
+
+ if (agpinf.version.major != 0 ||
+ agpinf.version.minor != 99) {
+ xf86DrvMsg(pScrn->scrnIndex, X_INFO,
+ "Agp kernel driver version not correct\n");
+ return FALSE;
+ }
/* Treat the gart like video memory - we assume we own all that is
@@ -234,19 +250,21 @@ void I810SetTiledMemory(ScrnInfoPtr pScrn,
unsigned size)
{
I810Ptr pI810 = I810PTR(pScrn);
+ I810RegPtr i810Reg = &pI810->ModeReg;
CARD32 val;
- if (nr > 7) {
+ if (nr < 0 || nr > 7) {
ErrorF("I810SetTiledMemory - fence %d out of range\n", nr);
return;
}
+ i810Reg->Fence[nr] = 0;
+
if (start & ~FENCE_START_MASK) {
ErrorF("I810SetTiledMemory %d: start (%x) is not 512k aligned\n",
nr, start);
return;
}
-
if (start % size) {
ErrorF("I810SetTiledMemory %d: start (%x) is not size (%x) aligned\n",
nr, start, size);
@@ -286,5 +304,5 @@ void I810SetTiledMemory(ScrnInfoPtr pScrn,
return;
}
- OUTREG( FENCE+nr*4, val );
+ i810Reg->Fence[nr] = val;
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h
index 1a21b79b9..db67793ab 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_reg.h
@@ -34,7 +34,6 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
* Kevin E. Martin <kevin@precisioninsight.com>
*
*
- * $PI$
*/
/* I/O register offsets
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_sarea.h b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_sarea.h
index 3dd0ada84..0f70d3535 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_sarea.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/i810/i810_sarea.h
@@ -1,44 +1,6 @@
#ifndef I810_SAPRIV_H
#define I810_SAPRIV_H
-/* Each region is a minimum of 32k, and there are at most 128 of them.
- */
-#define I810_NR_TEX_REGIONS 128
-
-
-
-typedef struct {
- unsigned char next, prev; /* array indices to form a circular LRU list */
- unsigned char in_use; /* owned by a client, or free? */
- int age; /* tracked by clients to update local LRU's */
-} i810TexRegion;
-
-typedef struct {
- int ringOwner; /* not used */
- int ctxOwner; /* last context to upload state */
-
- /* Maintain an LRU of contiguous regions of texture space. If
- * you think you own a region of texture memory, and it has an age
- * different to the one you set, then you are mistaken and it has
- * been stolen by another client. If texAge hasn't changed, there
- * is no need to walk the list.
- *
- * These regions can be used as a proxy for the fine-grained texture
- * information of other clients - by maintaining them in the same
- * lru which is used to age their own textures, clients have an
- * approximate lru for the whole of global texture space, and can
- * make informed decisions as to which areas to kick out. There is
- * no need to choose whether to kick out your own texture or someone
- * else's - simply eject them all in LRU order.
- */
- i810TexRegion texList[I810_NR_TEX_REGIONS+1]; /* Last element is sentinal */
- int texAge; /* Current age counter */
-
-
- int lastWrap;
- int lastSync;
- int ringAge;
-
-} I810SAREAPriv;
+#include "i810_drm_public.h"
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile
index 15e46b0f3..3150ec756 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile,v 1.31 2000/02/14 06:27:23 martin Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/Imakefile,v 1.32 2000/02/28 19:53:12 alanh Exp $
XCOMM
XCOMM This is an Imakefile for the MGA driver.
XCOMM
@@ -34,7 +34,7 @@ INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(SERVERSRC)/Xext -I$(XF86SRC)/xf8_32bpp\
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
-I$(XF86SRC)/xf24_32bpp -I$(XF86SRC)/shadowfb -I$(EXTINCSRC) \
- $(DRIINCLUDES)
+ -I$(XF86OSSRC)/vbe $(DRIINCLUDES)
#endif
DEFINES = $(DRIDEFINES)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp
index 334579fd0..87f97e2e0 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp,v 1.10 1999/11/19 13:54:40 hohndel Exp $
-.TH MGA __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga.cpp,v 1.13 2000/03/07 01:37:49 dawes Exp $
+.TH MGA __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
mga \- Matrox video driver
.SH SYNOPSIS
@@ -16,7 +16,7 @@ mga \- Matrox video driver
.B mga
is an XFree86 driver for Matrox video cards. The driver is fully
accelerated, and provides support for the following framebuffer depths:
-8, 15, 16, 24, and an 8+24 overlay mode (all chips except G100). All
+8, 15, 16, 24, and an 8+24 overlay mode. All
visual types are supported for depth 8, and both TrueColor and DirectColor
visuals are supported for the other depths except 8+24 mode which supports
PseudoColor, GrayScale and TrueColor. Multi-head configurations
@@ -81,7 +81,9 @@ Enable or disable the HW cursor. Default: on.
.BI "Option ""MGASDRAM"" """ boolean """
Specify whether G100 and G200 cards have SDRAM. The driver attempts to
auto-detect this based on the card's PCI subsystem ID. This option may
-be used to override that auto-detection. Default: auto-detected.
+be used to override that auto-detection. The mga driver is not able to
+auto-detect the prescence SDRAM on secondary heads in multihead configurations.
+Default: auto-detected.
.TP
.BI "Option ""NoAccel"" """ boolean """
Disable or enable acceleration. Default: acceleration is enabled.
@@ -91,7 +93,10 @@ Set clocks to values used by some commercial X-Servers (G100, G200 and G400
only). Default: off.
.TP
.BI "Option ""Overlay""
-Enable 8+24 overlay mode. Only appropriate for depth 24. Default: off.
+Enable 8+24 overlay mode. Only appropriate for depth 24.
+.RB ( Note:
+the G100 is unaccelerated in the 8+24 overlay mode due to a missing
+hardware feature) Default: off.
.TP
.BI "Option ""PciRetry"" """ boolean """
Enable or disable PCI retries. Default: off.
@@ -114,6 +119,10 @@ Default: off.
Enable or disable use of on OS-specific fb interface (and is not supported
on all OSs). See fbdevhw(__drivermansuffix__) for further information.
Default: off.
+.TP
+.BI "Option ""VideoKey"" """ integer """
+This sets the default pixel value for the YUV video overlay key.
+Default: undefined.
.SH "SEE ALSO"
XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
.SH AUTHORS
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h
index ee1e66301..2027171da 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h,v 1.54 2000/02/14 06:27:23 martin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga.h,v 1.57 2000/02/27 02:50:47 mvojkovi Exp $ */
/*
* MGA Millennium (MGA2064W) functions
*
@@ -200,6 +200,7 @@ typedef struct {
I2CBusPtr I2C;
Bool FBDev;
int colorKey;
+ int videoKey;
int fifoCount;
int Rotate;
MGAFBLayout CurrentLayout;
@@ -217,8 +218,6 @@ typedef struct {
MGADRIServerPrivatePtr DRIServerInfo;
#endif
- Bool timerIsOn;
- Time offTime;
XF86VideoAdaptorPtr adaptor;
} MGARec, *MGAPtr;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c
index 559481f32..6aabc62c3 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c
@@ -43,7 +43,7 @@
* Fixed 32bpp hires 8MB horizontal line glitch at middle right
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c,v 1.140 2000/02/21 19:23:04 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_driver.c,v 1.149 2000/03/07 01:37:49 dawes Exp $ */
/*
* This is a first cut at a non-accelerated version to work with the
@@ -77,7 +77,7 @@
#include "xf86DDC.h"
#include "xf86RAC.h"
-#include "xf86int10.h"
+#include "vbe.h"
/*
@@ -215,6 +215,7 @@ typedef enum {
OPTION_COLOR_KEY,
OPTION_SET_MCLK,
OPTION_OVERCLOCK_MEM,
+ OPTION_VIDEO_KEY,
OPTION_ROTATE
} MGAOpts;
@@ -232,6 +233,7 @@ static OptionInfoRec MGAOptions[] = {
{ OPTION_COLOR_KEY, "ColorKey", OPTV_INTEGER, {0}, FALSE },
{ OPTION_SET_MCLK, "SetMclk", OPTV_FREQ, {0}, FALSE },
{ OPTION_OVERCLOCK_MEM, "OverclockMem", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_VIDEO_KEY, "VideoKey", OPTV_INTEGER, {0}, FALSE },
{ OPTION_ROTATE, "Rotate", OPTV_ANYSTR, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
@@ -364,6 +366,12 @@ static const char *shadowSymbols[] = {
NULL
};
+static const char *vbeSymbols[] = {
+ "VBEInit",
+ "vbeDoEDID",
+ NULL
+};
+
static const char *fbdevHWSymbols[] = {
"fbdevHWInit",
"fbdevHWUseBuildinMode",
@@ -436,7 +444,7 @@ mgaSetup(pointer module, pointer opts, int *errmaj, int *errmin)
LoaderRefSymLists(vgahwSymbols, cfbSymbols, xaaSymbols,
xf8_32bppSymbols, ramdacSymbols,
ddcSymbols, i2cSymbols, shadowSymbols,
- fbdevHWSymbols,
+ fbdevHWSymbols, vbeSymbols,
#ifdef XF86DRI
drmSymbols, driSymbols,
#endif
@@ -537,8 +545,6 @@ MGAProbe(DriverPtr drv, int flags)
* data structures.
*/
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE; /* can't detect fbdev yet */
/*
* Check if there has been a chipset override in the config file.
* For this we must find out if there is an active device section which
@@ -583,10 +589,9 @@ MGAProbe(DriverPtr drv, int flags)
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
#ifdef DISABLE_VGA_IO
MgaSavePtr smga;
@@ -766,8 +771,6 @@ MGAReadBios(ScrnInfoPtr pScrn)
ErrorF("Pins[0x%02x] is 0x%02x\n", i,
((unsigned char *)pBios2)[i]);
#endif
- ErrorF("0x20 of Pins[0x34] is %s\n",
- (pBios2->VidCtrl & 0x20) ? "set" : "cleared");
return;
} else {
/* Set default MCLK values (scaled by 10 kHz) */
@@ -924,50 +927,6 @@ MGACountRam(ScrnInfoPtr pScrn)
return SizeFound;
}
-/*
- * GetAccelPitchValues -
- *
- * This function returns a list of display width (pitch) values that can
- * be used in accelerated mode.
- */
-#if 0
-static int *
-GetAccelPitchValues(ScrnInfoPtr pScrn)
-{
- int *linePitches = NULL;
- int i, n = 0;
- MGAPtr pMga = MGAPTR(pScrn);
-
- /* XXX ajv - 512, 576, and 1536 may not be supported
- line pitches. see sdk pp 4-59 for more
- details. Why anyone would want less than 640 is
- bizarre. (maybe lots of pixels tall?) */
-
- /* The only line pitches the accelerator supports */
-#if 0
- int accelWidths[] = { 512, 576, 640, 768, 800, 960,
- 1024, 1152, 1280, 1536, 1600, 1920, 2048, 0 };
-#else
- int accelWidths[] = { 640, 768, 800, 960, 1024, 1152, 1280,
- 1600, 1920, 2048, 0 };
-#endif
-
- for (i = 0; accelWidths[i] != 0; i++) {
- if (accelWidths[i] % pMga->Rounding == 0) {
- n++;
- linePitches = xnfrealloc(linePitches, n * sizeof(int));
- linePitches[n - 1] = accelWidths[i];
- }
- }
- /* Mark the end of the list */
- if (n > 0) {
- linePitches = xnfrealloc(linePitches, (n + 1) * sizeof(int));
- linePitches[n] = 0;
- }
- return linePitches;
-}
-#endif
-
static xf86MonPtr
MGAdoDDC(ScrnInfoPtr pScrn)
{
@@ -1011,7 +970,6 @@ MGAdoDDC(ScrnInfoPtr pScrn)
/* Initialize I2C bus - used by DDC if available */
if (pMga->i2cInit) {
pMga->i2cInit(pScrn);
- ErrorF("I2C initialized on %p\n",pMga->I2C);
}
/* Read and output monitor info using DDC2 over I2C bus */
if (pMga->I2C) {
@@ -1105,6 +1063,18 @@ VgaIOEnable(void *arg)
}
#endif /* DISABLE_VGA_IO */
+extern xf86MonPtr ConfiguredMonitor;
+
+void
+MGAProbeDDC(ScrnInfoPtr pScrn, int index)
+{
+ vbeInfoPtr pVbe;
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ pVbe = VBEInit(NULL,index);
+ ConfiguredMonitor = vbeDoEDID(pVbe);
+ }
+}
+
/* Mandatory */
static Bool
MGAPreInit(ScrnInfoPtr pScrn, int flags)
@@ -1137,6 +1107,23 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
if (pScrn->numEntities != 1)
return FALSE;
+ /* Allocate the MGARec driverPrivate */
+ if (!MGAGetRec(pScrn)) {
+ return FALSE;
+ }
+
+ pMga = MGAPTR(pScrn);
+
+ /* Get the entity, and make sure it is PCI. */
+ pMga->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
+ if (pMga->pEnt->location.type != BUS_PCI)
+ return FALSE;
+
+ if (flags & PROBE_DETECT) {
+ MGAProbeDDC(pScrn, pMga->pEnt->index);
+ return TRUE;
+ }
+
/* The vgahw module should be loaded here when needed */
if (!xf86LoadSubModule(pScrn, "vgahw"))
return FALSE;
@@ -1149,17 +1136,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
if (!vgaHWGetHWRec(pScrn))
return FALSE;
- /* Allocate the MGARec driverPrivate */
- if (!MGAGetRec(pScrn)) {
- return FALSE;
- }
- pMga = MGAPTR(pScrn);
-
- /* Get the entity, and make sure it is PCI. */
- pMga->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
- if (pMga->pEnt->location.type != BUS_PCI)
- return FALSE;
-
#if 0
/* This is causing problems with restoring the card to it's
original state. If this is to be done, it needs to happen
@@ -1282,19 +1258,54 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, MGAOptions);
/* Set the bits per RGB for 8bpp mode */
- if (pScrn->depth == 8) {
- /* XXX This is here just to test options. */
- /* Default to 8 */
+ if (pScrn->depth == 8)
pScrn->rgbBits = 8;
-#if 0
- if (xf86GetOptValInteger(MGAOptions, OPTION_RGB_BITS,
- &pScrn->rgbBits)) {
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Bits per RGB set to %d\n",
- pScrn->rgbBits);
- }
-#endif
+
+
+ /*
+ * Set the Chipset and ChipRev, allowing config file entries to
+ * override.
+ */
+ if (pMga->pEnt->device->chipset && *pMga->pEnt->device->chipset) {
+ pScrn->chipset = pMga->pEnt->device->chipset;
+ pMga->Chipset = xf86StringToToken(MGAChipsets, pScrn->chipset);
+ from = X_CONFIG;
+ } else if (pMga->pEnt->device->chipID >= 0) {
+ pMga->Chipset = pMga->pEnt->device->chipID;
+ pScrn->chipset = (char *)xf86TokenToString(MGAChipsets, pMga->Chipset);
+ from = X_CONFIG;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "ChipID override: 0x%04X\n",
+ pMga->Chipset);
+ } else {
+ from = X_PROBED;
+ pMga->Chipset = pMga->PciInfo->chipType;
+ pScrn->chipset = (char *)xf86TokenToString(MGAChipsets, pMga->Chipset);
+ }
+ if (pMga->pEnt->device->chipRev >= 0) {
+ pMga->ChipRev = pMga->pEnt->device->chipRev;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "ChipRev override: %d\n",
+ pMga->ChipRev);
+ } else {
+ pMga->ChipRev = pMga->PciInfo->chipRev;
+ }
+
+ /*
+ * This shouldn't happen because such problems should be caught in
+ * MGAProbe(), but check it just in case.
+ */
+ if (pScrn->chipset == NULL) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "ChipID 0x%04X is not recognised\n", pMga->Chipset);
+ return FALSE;
+ }
+ if (pMga->Chipset < 0) {
+ xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
+ "Chipset \"%s\" is not recognised\n", pScrn->chipset);
+ return FALSE;
}
+ xf86DrvMsg(pScrn->scrnIndex, from, "Chipset: \"%s\"\n", pScrn->chipset);
+
from = X_DEFAULT;
pMga->HWCursor = TRUE;
@@ -1337,10 +1348,7 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
}
if ((s = xf86GetOptValString(MGAOptions, OPTION_OVERLAY))) {
if (!*s || !xf86NameCmp(s, "8,24") || !xf86NameCmp(s, "24,8")) {
- if(pMga->Chipset == PCI_CHIP_MGAG100) {
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
- "Option \"Overlay\" is not supported by the G100\n");
- } else if(pScrn->bitsPerPixel == 32) {
+ if(pScrn->bitsPerPixel == 32) {
pMga->Overlay8Plus24 = TRUE;
if(!xf86GetOptValInteger(
MGAOptions, OPTION_COLOR_KEY,&(pMga->colorKey)))
@@ -1351,13 +1359,21 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
"PseudoColor overlay enabled\n");
} else {
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
- "Option \"Overlay\" is not supported in this configuration\n");
+ "Option \"Overlay\" is only supported in 32 bits per pixel\n");
}
} else {
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG,
"\"%s\" is not a valid value for Option \"Overlay\"\n", s);
}
- }
+ }
+ if(xf86GetOptValInteger(MGAOptions, OPTION_VIDEO_KEY, &(pMga->videoKey))) {
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "video key set to 0x%x\n",
+ pMga->videoKey);
+ } else {
+ pMga->videoKey = (1 << pScrn->offset.red) |
+ (1 << pScrn->offset.green) |
+ (((pScrn->mask.blue >> pScrn->offset.blue) - 1) << pScrn->offset.blue);
+ }
if (xf86ReturnOptValBool(MGAOptions, OPTION_SHADOW_FB, FALSE)) {
pMga->ShadowFB = TRUE;
pMga->NoAccel = TRUE;
@@ -1411,51 +1427,6 @@ MGAPreInit(ScrnInfoPtr pScrn, int flags)
}
}
-
- /*
- * Set the Chipset and ChipRev, allowing config file entries to
- * override.
- */
- if (pMga->pEnt->device->chipset && *pMga->pEnt->device->chipset) {
- pScrn->chipset = pMga->pEnt->device->chipset;
- pMga->Chipset = xf86StringToToken(MGAChipsets, pScrn->chipset);
- from = X_CONFIG;
- } else if (pMga->pEnt->device->chipID >= 0) {
- pMga->Chipset = pMga->pEnt->device->chipID;
- pScrn->chipset = (char *)xf86TokenToString(MGAChipsets, pMga->Chipset);
- from = X_CONFIG;
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "ChipID override: 0x%04X\n",
- pMga->Chipset);
- } else {
- from = X_PROBED;
- pMga->Chipset = pMga->PciInfo->chipType;
- pScrn->chipset = (char *)xf86TokenToString(MGAChipsets, pMga->Chipset);
- }
- if (pMga->pEnt->device->chipRev >= 0) {
- pMga->ChipRev = pMga->pEnt->device->chipRev;
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "ChipRev override: %d\n",
- pMga->ChipRev);
- } else {
- pMga->ChipRev = pMga->PciInfo->chipRev;
- }
-
- /*
- * This shouldn't happen because such problems should be caught in
- * MGAProbe(), but check it just in case.
- */
- if (pScrn->chipset == NULL) {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "ChipID 0x%04X is not recognised\n", pMga->Chipset);
- return FALSE;
- }
- if (pMga->Chipset < 0) {
- xf86DrvMsg(pScrn->scrnIndex, X_ERROR,
- "Chipset \"%s\" is not recognised\n", pScrn->chipset);
- return FALSE;
- }
-
- xf86DrvMsg(pScrn->scrnIndex, from, "Chipset: \"%s\"\n", pScrn->chipset);
-
if(pMga->HasSDRAM) { /* don't bother checking */ }
else if ((pMga->PciInfo->subsysCard == PCI_CARD_MILL_G200_SD) ||
(pMga->PciInfo->subsysCard == PCI_CARD_MARV_G200_SD) ||
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c
index 88c1784d4..26ee6f8dc 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c,v 1.8 2000/01/18 16:35:51 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/mga/mga_video.c,v 1.12 2000/03/08 01:14:27 mvojkovi Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
@@ -20,7 +20,14 @@
#include "xaalocal.h"
#include "dixstruct.h"
-#define OFF_DELAY 200 /* milliseconds */
+#define OFF_DELAY 200 /* milliseconds */
+#define FREE_DELAY 60000
+
+#define OFF_TIMER 0x01
+#define FREE_TIMER 0x02
+#define CLIENT_VIDEO_ON 0x04
+
+#define TIMER_MASK (OFF_TIMER | FREE_TIMER)
#ifndef XvExtension
void MGAInitVideo(ScreenPtr pScreen) {}
@@ -28,7 +35,7 @@ void MGAResetVideo(ScrnInfoPtr pScrn) {}
#else
static XF86VideoAdaptorPtr MGASetupImageVideoG(ScreenPtr);
-
+static void MGAInitOffscreenImages(ScreenPtr);
static void MGAStopVideoG(ScrnInfoPtr, pointer, Bool);
static int MGASetPortAttributeG(ScrnInfoPtr, Atom, INT32, pointer);
static int MGAGetPortAttributeG(ScrnInfoPtr, Atom ,INT32 *, pointer);
@@ -49,49 +56,55 @@ static Atom xvBrightness, xvContrast, xvColorKey;
void MGAInitVideo(ScreenPtr pScreen)
{
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- XF86VideoAdaptorPtr *adaptors, *newAdaptors;
- XF86VideoAdaptorPtr newAdaptor;
+ XF86VideoAdaptorPtr *adaptors, *newAdaptors = NULL;
+ XF86VideoAdaptorPtr newAdaptor = NULL;
MGAPtr pMga = MGAPTR(pScrn);
int num_adaptors;
- Bool freeAdaptors = FALSE;
- num_adaptors = xf86XVListGenericAdaptors(&adaptors);
-
if((pScrn->bitsPerPixel != 8) && !pMga->Overlay8Plus24 &&
((pMga->Chipset == PCI_CHIP_MGAG200) ||
(pMga->Chipset == PCI_CHIP_MGAG200_PCI) ||
(pMga->Chipset == PCI_CHIP_MGAG400)))
{
- if((newAdaptor = MGASetupImageVideoG(pScreen))) {
+ newAdaptor = MGASetupImageVideoG(pScreen);
+ MGAInitOffscreenImages(pScreen);
+ }
- newAdaptors = xalloc((num_adaptors + 1) *
- sizeof(XF86VideoAdaptorPtr*));
- if(newAdaptors) {
- if(num_adaptors)
- memcpy(newAdaptors, adaptors, num_adaptors *
+ num_adaptors = xf86XVListGenericAdaptors(pScrn, &adaptors);
+
+ if(newAdaptor) {
+ if(!num_adaptors) {
+ num_adaptors = 1;
+ adaptors = &newAdaptor;
+ } else {
+ newAdaptors = /* need to free this someplace */
+ xalloc((num_adaptors + 1) * sizeof(XF86VideoAdaptorPtr*));
+ if(newAdaptors) {
+ memcpy(newAdaptors, adaptors, num_adaptors *
sizeof(XF86VideoAdaptorPtr));
newAdaptors[num_adaptors] = newAdaptor;
adaptors = newAdaptors;
num_adaptors++;
- freeAdaptors = TRUE;
- }
+ }
}
}
if(num_adaptors)
xf86XVScreenInit(pScreen, adaptors, num_adaptors);
- if(freeAdaptors)
- xfree(adaptors);
+ if(newAdaptors)
+ xfree(newAdaptors);
}
/* client libraries expect an encoding */
static XF86VideoEncodingRec DummyEncoding[1] =
{
+ {
0,
"XV_IMAGE",
1024, 1024,
{1, 1}
+ }
};
#define NUM_FORMATS_G 3
@@ -170,12 +183,18 @@ static XF86ImageRec ImagesG[NUM_IMAGES_G] =
typedef struct {
unsigned char brightness;
unsigned char contrast;
- FBAreaPtr area;
- RegionRec clip;
- CARD32 colorKey;
+ FBAreaPtr area;
+ RegionRec clip;
+ CARD32 colorKey;
+ CARD32 videoStatus;
+ Time offTime;
+ Time freeTime;
} MGAPortPrivRec, *MGAPortPrivPtr;
+#define GET_PORT_PRIVATE(pScrn) \
+ (MGAPortPrivPtr)((MGAPTR(pScrn))->adaptor->pPortPrivates[0].ptr)
+
#define outMGAdreg(reg, val) OUTREG8(RAMDAC_OFFSET + (reg), val)
#define outMGAdac(reg, val) \
(outMGAdreg(MGA1064_INDEX, reg), outMGAdreg(MGA1064_DATA, val))
@@ -210,7 +229,6 @@ MGASetupImageVideoG(ScreenPtr pScreen)
MGAPtr pMga = MGAPTR(pScrn);
XF86VideoAdaptorPtr adapt;
MGAPortPrivPtr pPriv;
- int i;
if(!(adapt = xcalloc(1, sizeof(XF86VideoAdaptorRec) +
sizeof(MGAPortPrivRec) +
@@ -248,11 +266,11 @@ MGASetupImageVideoG(ScreenPtr pScreen)
adapt->PutImage = MGAPutImageG;
adapt->QueryImageAttributes = MGAQueryImageAttributesG;
+ pPriv->colorKey = pMga->videoKey;
+ pPriv->videoStatus = 0;
pPriv->brightness = 0;
pPriv->contrast = 128;
- pPriv->colorKey = (1 << pScrn->offset.red) | (1 << pScrn->offset.green) |
- (((pScrn->mask.blue >> pScrn->offset.blue) - 1) << pScrn->offset.blue);
-
+
/* gotta uninit this someplace */
REGION_INIT(pScreen, &pPriv->clip, NullBox, 0);
@@ -384,13 +402,18 @@ MGAStopVideoG(ScrnInfoPtr pScrn, pointer data, Bool exit)
REGION_EMPTY(pScrn->pScreen, &pPriv->clip);
if(exit) {
- OUTREG(MGAREG_BESCTL, 0);
- pMga->timerIsOn = FALSE;
+ if(pPriv->videoStatus & CLIENT_VIDEO_ON)
+ OUTREG(MGAREG_BESCTL, 0);
+ if(pPriv->area) {
+ xf86FreeOffscreenArea(pPriv->area);
+ pPriv->area = NULL;
+ }
+ pPriv->videoStatus = 0;
} else {
- /* if it's being clipped delay turning off video for a short
- while to avoid flicker */
- pMga->timerIsOn = TRUE;
- pMga->offTime = currentTime.milliseconds + OFF_DELAY;
+ if(pPriv->videoStatus & CLIENT_VIDEO_ON) {
+ pPriv->videoStatus |= OFF_TIMER;
+ pPriv->offTime = currentTime.milliseconds + OFF_DELAY;
+ }
}
}
@@ -440,7 +463,6 @@ MGAGetPortAttributeG(
pointer data
){
MGAPortPrivPtr pPriv = (MGAPortPrivPtr)data;
- MGAPtr pMga = MGAPTR(pScrn);
if(attribute == xvBrightness) {
*value = pPriv->brightness;
@@ -521,6 +543,108 @@ MGACopyMungedData(
}
+static FBAreaPtr
+MGAAllocateMemory(
+ ScrnInfoPtr pScrn,
+ FBAreaPtr area,
+ int numlines
+){
+ ScreenPtr pScreen;
+ FBAreaPtr new_area;
+
+ if(area) {
+ if((area->box.y2 - area->box.y1) >= numlines)
+ return area;
+
+ if(xf86ResizeOffscreenArea(area, pScrn->displayWidth, numlines))
+ return area;
+
+ xf86FreeOffscreenArea(area);
+ }
+
+ pScreen = screenInfo.screens[pScrn->scrnIndex];
+
+ new_area = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth,
+ numlines, 0, NULL, NULL, NULL);
+
+ if(!new_area) {
+ int max_w, max_h;
+
+ xf86QueryLargestOffscreenArea(pScreen, &max_w, &max_h, 0,
+ FAVOR_WIDTH_THEN_AREA, PRIORITY_EXTREME);
+
+ if((max_w < pScrn->displayWidth) || (max_h < numlines))
+ return NULL;
+
+ xf86PurgeUnlockedOffscreenAreas(pScreen);
+ new_area = xf86AllocateOffscreenArea(pScreen, pScrn->displayWidth,
+ numlines, 0, NULL, NULL, NULL);
+ }
+
+ return new_area;
+}
+
+static void
+MGADisplayVideo(
+ ScrnInfoPtr pScrn,
+ int id,
+ int offset,
+ short width, short height,
+ int pitch,
+ int x1, int y1, int x2, int y2,
+ BoxPtr dstBox,
+ short src_w, short src_h,
+ short drw_w, short drw_h
+){
+ MGAPtr pMga = MGAPTR(pScrn);
+ int tmp;
+
+ /* got 64 scanlines to do it in */
+ tmp = INREG(MGAREG_VCOUNT) + 64;
+ if(tmp > pScrn->currentMode->VDisplay)
+ tmp -= pScrn->currentMode->VDisplay;
+
+ switch(id) {
+ case 0x59565955:
+ OUTREG(MGAREG_BESGLOBCTL, 0x000000c3 | (tmp << 16));
+ break;
+ case 0x32595559:
+ default:
+ OUTREG(MGAREG_BESGLOBCTL, 0x00000083 | (tmp << 16));
+ break;
+ }
+
+ OUTREG(MGAREG_BESA1ORG, offset);
+
+ if(y1 & 0x00010000)
+ OUTREG(MGAREG_BESCTL, 0x00050c41);
+ else
+ OUTREG(MGAREG_BESCTL, 0x00050c01);
+
+ OUTREG(MGAREG_BESHCOORD, (dstBox->x1 << 16) | (dstBox->x2 - 1));
+ OUTREG(MGAREG_BESVCOORD, (dstBox->y1 << 16) | (dstBox->y2 - 1));
+
+ OUTREG(MGAREG_BESHSRCST, x1 & 0x03fffffc);
+ OUTREG(MGAREG_BESHSRCEND, (x2 - 0x00010000) & 0x03fffffc);
+ OUTREG(MGAREG_BESHSRCLST, (width - 1) << 16);
+
+ OUTREG(MGAREG_BESPITCH, pitch >> 1);
+
+ OUTREG(MGAREG_BESV1WGHT, y1 & 0x0000fffc);
+ OUTREG(MGAREG_BESV1SRCLST, height - 1 - (y1 >> 16));
+
+ tmp = ((src_h - 1) << 16)/drw_h;
+ if(tmp >= (32 << 16))
+ tmp = (32 << 16) - 1;
+ OUTREG(MGAREG_BESVISCAL, tmp & 0x001ffffc);
+
+ tmp = (((src_w - 1) << 16)/drw_w) << 1;
+ if(tmp >= (32 << 16))
+ tmp = (32 << 16) - 1;
+ OUTREG(MGAREG_BESHISCAL, tmp & 0x001ffffc);
+
+}
+
static int
MGAPutImageG(
ScrnInfoPtr pScrn,
@@ -534,14 +658,11 @@ MGAPutImageG(
RegionPtr clipBoxes, pointer data
){
MGAPortPrivPtr pPriv = (MGAPortPrivPtr)data;
- ScreenPtr pScreen = pScrn->pScreen;
MGAPtr pMga = MGAPTR(pScrn);
INT32 x1, x2, y1, y2;
- unsigned char *dst, *src;
unsigned char *dst_start;
- int i, j, pitch, Bpp, new_h, offset, offset2, offset3, visHeight;
- FBAreaPtr area;
- int srcPitch, dstPitch, srcPitch2;
+ int pitch, new_h, offset, offset2, offset3;
+ int srcPitch, srcPitch2, dstPitch;
int top, left, npixels, nlines;
BoxRec dstBox;
CARD32 tmp;
@@ -570,73 +691,36 @@ MGAPutImageG(
dstBox.y1 -= pScrn->frameY0;
dstBox.y2 -= pScrn->frameY0;
- Bpp = pScrn->bitsPerPixel >> 3;
- pitch = Bpp * pScrn->displayWidth;
+ pitch = pScrn->bitsPerPixel * pScrn->displayWidth >> 3;
+
+ dstPitch = ((width << 1) + 15) & ~15;
+ new_h = ((dstPitch * height) + pitch - 1) / pitch;
switch(id) {
case 0x32315659:
- dstPitch = ((width << 1) + 31) & ~31;
srcPitch = (width + 3) & ~3;
offset2 = srcPitch * height;
srcPitch2 = ((width >> 1) + 3) & ~3;
- offset = srcPitch2 * (height >> 1);
- offset3 = offset + offset2;
- offset += offset3;
- new_h = (offset + pitch - 1) / pitch;
+ offset3 = (srcPitch2 * (height >> 1)) + offset2;
break;
case 0x59565955:
case 0x32595559:
default:
srcPitch = (width << 1);
- dstPitch = (srcPitch + 15) & ~15;
- offset = dstPitch * height;
- new_h = (offset + pitch - 1) / pitch;
break;
}
- area = pPriv->area;
-
- /* Allocate offscreen memory */
- if(!area || ((area->box.y2 - area->box.y1) < new_h)) {
- Bool nukeMem = FALSE;
-
- if(!area) {
- if(!(area = xf86AllocateOffscreenArea(pScreen,
- pScrn->displayWidth, new_h, 0, NULL, NULL, NULL)))
- {
- nukeMem = TRUE;
- }
- } else {
- if(!xf86ResizeOffscreenArea(area, pScrn->displayWidth, new_h)) {
- xf86FreeOffscreenArea(area);
- pPriv->area = area = NULL;
- nukeMem = TRUE;
- }
- }
- if(nukeMem) {
- int max_w, max_h;
- xf86QueryLargestOffscreenArea(pScreen, &max_w, &max_h, 0,
- FAVOR_WIDTH_THEN_AREA, PRIORITY_EXTREME);
-
- if((max_w < pScrn->displayWidth) || (max_h < new_h))
- return BadAlloc;
-
- xf86PurgeUnlockedOffscreenAreas(pScreen);
- area = xf86AllocateOffscreenArea(pScreen,
- pScrn->displayWidth, new_h, 0, NULL, NULL, NULL);
- }
+ if(!(pPriv->area = MGAAllocateMemory(pScrn, pPriv->area, new_h)))
+ return BadAlloc;
- pPriv->area = area;
- }
-
/* copy data */
top = y1 >> 16;
left = (x1 >> 16) & ~1;
npixels = ((((x2 + 0xffff) >> 16) + 1) & ~1) - left;
left <<= 1;
- offset = (area->box.y1 * pitch) + (top * dstPitch);
+ offset = (pPriv->area->box.y1 * pitch) + (top * dstPitch);
dst_start = pMga->FbStart + offset + left;
switch(id) {
@@ -668,52 +752,11 @@ MGAPutImageG(
REGION_RECTS(clipBoxes));
}
- /* got 64 scanlines to do it in */
- tmp = INREG(MGAREG_VCOUNT) + 64;
- if(tmp > pScrn->currentMode->VDisplay)
- tmp -= pScrn->currentMode->VDisplay;
-
- switch(id) {
- case 0x59565955:
- OUTREG(MGAREG_BESGLOBCTL, 0x000000c3 | (tmp << 16));
- break;
- case 0x32595559:
- default:
- OUTREG(MGAREG_BESGLOBCTL, 0x00000083 | (tmp << 16));
- break;
- }
-
- OUTREG(MGAREG_BESA1ORG, offset);
- if(y1 & 0x00010000)
- OUTREG(MGAREG_BESCTL, 0x00050c41);
- else
- OUTREG(MGAREG_BESCTL, 0x00050c01);
-
- OUTREG(MGAREG_BESHCOORD, (dstBox.x1 << 16) | (dstBox.x2 - 1));
- OUTREG(MGAREG_BESVCOORD, (dstBox.y1 << 16) | (dstBox.y2 - 1));
-
- OUTREG(MGAREG_BESHSRCST, x1 & 0x03fffffc);
- OUTREG(MGAREG_BESHSRCEND, (x2 - 0x00010000) & 0x03fffffc);
- OUTREG(MGAREG_BESHSRCLST, (width - 1) << 16);
-
- OUTREG(MGAREG_BESPITCH, dstPitch >> 1);
+ MGADisplayVideo(pScrn, id, offset, width, height, dstPitch,
+ x1, y1, x2, y2, &dstBox, src_w, src_h, drw_w, drw_h);
-
- OUTREG(MGAREG_BESV1WGHT, y1 & 0x0000fffc);
- OUTREG(MGAREG_BESV1SRCLST, height - 1 - (y1 >> 16));
-
- tmp = ((src_h - 1) << 16)/drw_h;
- if(tmp >= (32 << 16))
- tmp = (32 << 16) - 1;
- OUTREG(MGAREG_BESVISCAL, tmp & 0x001ffffc);
-
- tmp = (((src_w - 1) << 16)/drw_w) << 1;
- if(tmp >= (32 << 16))
- tmp = (32 << 16) - 1;
- OUTREG(MGAREG_BESHISCAL, tmp & 0x001ffffc);
-
- pMga->timerIsOn = FALSE;
+ pPriv->videoStatus = CLIENT_VIDEO_ON;
return Success;
}
@@ -770,6 +813,7 @@ MGABlockHandler (
ScreenPtr pScreen = screenInfo.screens[i];
ScrnInfoPtr pScrn = xf86Screens[i];
MGAPtr pMga = MGAPTR(pScrn);
+ MGAPortPrivPtr pPriv = GET_PORT_PRIVATE(pScrn);
pScreen->BlockHandler = pMga->BlockHandler;
@@ -777,14 +821,237 @@ MGABlockHandler (
pScreen->BlockHandler = MGABlockHandler;
- if(pMga->timerIsOn) {
+ if(pPriv->videoStatus & TIMER_MASK) {
UpdateCurrentTime();
- if(pMga->offTime < currentTime.milliseconds) {
- pMga->timerIsOn = FALSE;
- OUTREG(MGAREG_BESCTL, 0);
- }
+ if(pPriv->videoStatus & OFF_TIMER) {
+ if(pPriv->offTime < currentTime.milliseconds) {
+ OUTREG(MGAREG_BESCTL, 0);
+ pPriv->videoStatus = FREE_TIMER;
+ pPriv->freeTime = currentTime.milliseconds + FREE_DELAY;
+ }
+ } else { /* FREE_TIMER */
+ if(pPriv->freeTime < currentTime.milliseconds) {
+ if(pPriv->area) {
+ xf86FreeOffscreenArea(pPriv->area);
+ pPriv->area = NULL;
+ }
+ pPriv->videoStatus = 0;
+ }
+ }
+ }
+}
+
+
+/****************** Offscreen stuff ***************/
+
+typedef struct {
+ FBAreaPtr area;
+ Bool isOn;
+} OffscreenPrivRec, * OffscreenPrivPtr;
+
+static int
+MGAAllocateSurface(
+ ScrnInfoPtr pScrn,
+ int id,
+ unsigned short w,
+ unsigned short h,
+ XF86SurfacePtr surface
+){
+ FBAreaPtr area;
+ int pitch, fbpitch, numlines;
+ OffscreenPrivPtr pPriv;
+
+ if((w > 1024) || (h > 1024))
+ return BadAlloc;
+
+ w = (w + 1) & ~1;
+ pitch = ((w << 1) + 15) & ~15;
+ fbpitch = pScrn->bitsPerPixel * pScrn->displayWidth >> 3;
+ numlines = ((pitch * h) + fbpitch - 1) / fbpitch;
+
+ if(!(area = MGAAllocateMemory(pScrn, NULL, numlines)))
+ return BadAlloc;
+
+ surface->width = w;
+ surface->height = h;
+
+ if(!(surface->pitches = xalloc(sizeof(int))))
+ return BadAlloc;
+ if(!(surface->offsets = xalloc(sizeof(int)))) {
+ xfree(surface->pitches);
+ return BadAlloc;
+ }
+ if(!(pPriv = xalloc(sizeof(OffscreenPrivRec)))) {
+ xfree(surface->pitches);
+ xfree(surface->offsets);
+ return BadAlloc;
}
+
+ pPriv->area = area;
+ pPriv->isOn = FALSE;
+
+ surface->pScrn = pScrn;
+ surface->id = id;
+ surface->pitches[0] = pitch;
+ surface->offsets[0] = area->box.y1 * fbpitch;
+ surface->devPrivate.ptr = (pointer)pPriv;
+
+ return Success;
}
+static int
+MGAStopSurface(
+ XF86SurfacePtr surface
+){
+ OffscreenPrivPtr pPriv = (OffscreenPrivPtr)surface->devPrivate.ptr;
+
+ if(pPriv->isOn) {
+ MGAPtr pMga = MGAPTR(surface->pScrn);
+ OUTREG(MGAREG_BESCTL, 0);
+ pPriv->isOn = FALSE;
+ }
+
+ return Success;
+}
+
+
+static int
+MGAFreeSurface(
+ XF86SurfacePtr surface
+){
+ OffscreenPrivPtr pPriv = (OffscreenPrivPtr)surface->devPrivate.ptr;
+
+ if(pPriv->isOn)
+ MGAStopSurface(surface);
+ xf86FreeOffscreenArea(pPriv->area);
+ xfree(surface->pitches);
+ xfree(surface->offsets);
+ xfree(surface->devPrivate.ptr);
+
+ return Success;
+}
+
+static int
+MGAGetSurfaceAttribute(
+ XF86SurfacePtr surface,
+ Atom attribute,
+ INT32 *value
+){
+ return MGAGetPortAttributeG(surface->pScrn, attribute, value,
+ (pointer)(GET_PORT_PRIVATE(surface->pScrn)));
+}
+
+static int
+MGASetSurfaceAttribute(
+ XF86SurfacePtr surface,
+ Atom attribute,
+ INT32 value
+){
+ return MGASetPortAttributeG(surface->pScrn, attribute, value,
+ (pointer)(GET_PORT_PRIVATE(surface->pScrn)));
+}
+
+
+static int
+MGADisplaySurface(
+ XF86SurfacePtr surface,
+ short src_x, short src_y,
+ short drw_x, short drw_y,
+ short src_w, short src_h,
+ short drw_w, short drw_h,
+ RegionPtr clipBoxes
+){
+ OffscreenPrivPtr pPriv = (OffscreenPrivPtr)surface->devPrivate.ptr;
+ ScrnInfoPtr pScrn = surface->pScrn;
+ MGAPortPrivPtr portPriv = GET_PORT_PRIVATE(pScrn);
+ INT32 x1, y1, x2, y2;
+ BoxRec dstBox;
+
+ x1 = src_x;
+ x2 = src_x + src_w;
+ y1 = src_y;
+ y2 = src_y + src_h;
+
+ dstBox.x1 = drw_x;
+ dstBox.x2 = drw_x + drw_w;
+ dstBox.y1 = drw_y;
+ dstBox.y2 = drw_y + drw_h;
+
+ MGAClipVideo(&dstBox, &x1, &x2, &y1, &y2,
+ REGION_EXTENTS(pScreen, clipBoxes),
+ surface->width, surface->height);
+
+ if((x1 >= x2) || (y1 >= y2))
+ return Success;
+
+ dstBox.x1 -= pScrn->frameX0;
+ dstBox.x2 -= pScrn->frameX0;
+ dstBox.y1 -= pScrn->frameY0;
+ dstBox.y2 -= pScrn->frameY0;
+
+ XAAFillSolidRects(pScrn, portPriv->colorKey, GXcopy, ~0,
+ REGION_NUM_RECTS(clipBoxes),
+ REGION_RECTS(clipBoxes));
+
+ MGADisplayVideo(pScrn, surface->id, surface->offsets[0],
+ surface->width, surface->height, surface->pitches[0],
+ x1, y1, x2, y2, &dstBox, src_w, src_h, drw_w, drw_h);
+
+ pPriv->isOn = TRUE;
+ if(portPriv->videoStatus & CLIENT_VIDEO_ON) {
+ REGION_EMPTY(pScrn->pScreen, &portPriv->clip);
+ UpdateCurrentTime();
+ portPriv->videoStatus = FREE_TIMER;
+ portPriv->freeTime = currentTime.milliseconds + FREE_DELAY;
+ }
+
+ return Success;
+}
+
+
+static void
+MGAInitOffscreenImages(ScreenPtr pScreen)
+{
+ ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
+ MGAPtr pMga = MGAPTR(pScrn);
+ int num = (pMga->Chipset == PCI_CHIP_MGAG400) ? 2 : 1;
+ XF86OffscreenImagePtr offscreenImages;
+
+ /* need to free this someplace */
+ if(!(offscreenImages = xalloc(num * sizeof(XF86OffscreenImageRec))))
+ return;
+
+ offscreenImages[0].image = &ImagesG[0];
+ offscreenImages[0].flags = VIDEO_OVERLAID_IMAGES |
+ VIDEO_CLIP_TO_VIEWPORT;
+ offscreenImages[0].alloc_surface = MGAAllocateSurface;
+ offscreenImages[0].free_surface = MGAFreeSurface;
+ offscreenImages[0].display = MGADisplaySurface;
+ offscreenImages[0].stop = MGAStopSurface;
+ offscreenImages[0].setAttribute = MGASetSurfaceAttribute;
+ offscreenImages[0].getAttribute = MGAGetSurfaceAttribute;
+ offscreenImages[0].max_width = 1024;
+ offscreenImages[0].max_height = 1024;
+ offscreenImages[0].num_attributes = (num == 1) ? 1 : 3;
+ offscreenImages[0].attributes = AttributesG;
+
+ if(num == 2) {
+ offscreenImages[1].image = &ImagesG[2];
+ offscreenImages[1].flags = VIDEO_OVERLAID_IMAGES |
+ VIDEO_CLIP_TO_VIEWPORT;
+ offscreenImages[1].alloc_surface = MGAAllocateSurface;
+ offscreenImages[1].free_surface = MGAFreeSurface;
+ offscreenImages[1].display = MGADisplaySurface;
+ offscreenImages[1].stop = MGAStopSurface;
+ offscreenImages[1].setAttribute = MGASetSurfaceAttribute;
+ offscreenImages[1].getAttribute = MGAGetSurfaceAttribute;
+ offscreenImages[1].max_width = 1024;
+ offscreenImages[1].max_height = 1024;
+ offscreenImages[1].num_attributes = 3;
+ offscreenImages[1].attributes = AttributesG;
+ }
+
+ xf86XVRegisterOffscreenImages(pScreen, offscreenImages, num);
+}
-#endif
+#endif /* !XvExtension */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile
index 79881aad9..fcd378f8a 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile,v 1.3 2000/02/08 13:13:18 eich Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/Imakefile,v 1.4 2000/03/03 01:05:39 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -33,10 +33,13 @@ ObjectModuleTarget(neomagic,$(OBJS))
InstallObjectModule(neomagic,$(MODULEDIR),drivers)
-#ifndef OS2Architecture
-DependTarget()
+#if !defined(XF86DriverSDK)
+CppManTarget(neomagic,)
+InstallModuleManPage(neomagic)
#endif
+DependTarget()
+
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/neomagic)
InstallDriverSDKNonExecFile(neo.h,$(DRIVERSDKDIR)/drivers/neomagic)
InstallDriverSDKNonExecFile(neo_2070.c,$(DRIVERSDKDIR)/drivers/neomagic)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c
index e22199a19..b14a1dc4b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c
@@ -22,7 +22,7 @@ RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
**********************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c,v 1.15 2000/02/21 19:23:05 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/neo_driver.c,v 1.18 2000/03/06 23:54:11 dawes Exp $ */
/*
* The original Precision Insight driver for
@@ -444,7 +444,6 @@ NEOProbe(DriverPtr drv, int flags)
int *usedChips;
int i;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* Find the config file Device sections that match this
* driver, and return if there are none.
@@ -461,12 +460,10 @@ NEOProbe(DriverPtr drv, int flags)
devSections,numDevSections,
drv, &usedChips);
- if (numUsed > 0 && (flags & PROBE_DETECTPCI))
- return TRUE;
- if (numUsed <= 0 && (flags & PROBE_DETECTPCI))
- return FALSE;
-
- for (i = 0; i < numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
/* Allocate a ScrnInfoRec and claim the slot */
pScrn = xf86AllocateScreen(drv,0);
@@ -485,19 +482,19 @@ NEOProbe(DriverPtr drv, int flags)
foundScreen = TRUE;
xf86ConfigActivePciEntity(pScrn, usedChips[i], NEOPCIchipsets,
NULL, NULL, NULL, NULL, NULL);
+ }
+ xfree(usedChips);
}
- if (numUsed > 0)
- xfree(usedChips);
}
/* Isa Bus */
numUsed = xf86MatchIsaInstances(NEO_NAME,NEOChipsets,NEOISAchipsets,
drv,neoFindIsaDevice,devSections,
numDevSections,&usedChips);
- if (numUsed > 0 && (flags & PROBE_DETECTISA))
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
pScrn = xf86AllocateScreen(drv,0);
@@ -516,12 +513,11 @@ NEOProbe(DriverPtr drv, int flags)
foundScreen = TRUE;
xf86ConfigActiveIsaEntity(pScrn, usedChips[i], NEOISAchipsets,
NULL, NULL, NULL, NULL, NULL);
+ }
+ xfree(usedChips);
}
- if (numUsed > 0)
- xfree(usedChips);
- if (devSections)
- xfree(devSections);
+ xfree(devSections);
return foundScreen;
}
@@ -574,6 +570,8 @@ NEOPreInit(ScrnInfoPtr pScrn, int flags)
int w;
int apertureSize;
char *s;
+
+ if (flags & PROBE_DETECT) return FALSE;
/* The vgahw module should be loaded here when needed */
if (!xf86LoadSubModule(pScrn, "vgahw"))
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neomagic.cpp b/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neomagic.cpp
new file mode 100644
index 000000000..8e41d5134
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/neomagic/neomagic.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/neomagic/neomagic.cpp,v 1.1 2000/03/03 01:05:40 dawes Exp $
+.TH NEOMAGIC __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+neomagic \- NeoMagic video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""neomagic"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B neomagic
+is an XFree86 driver for NeoMagic video chips.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B neomagic
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile
index fae203411..f242d6200 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile
@@ -1,10 +1,10 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile,v 1.10 2000/01/23 04:44:30 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile,v 1.11 2000/02/25 21:02:54 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the NVIDIA driver.
XCOMM
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile,v 1.10 2000/01/23 04:44:30 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/Imakefile,v 1.11 2000/02/25 21:02:54 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -26,7 +26,7 @@ INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(XF86SRC)/ramdac -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
-I$(SERVERSRC)/Xext -I$(XF86SRC)/int10 \
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
- -I$(XF86SRC)/shadowfb -I$(EXTINCSRC)
+ -I$(XF86SRC)/shadowfb -I$(EXTINCSRC) -I$(SERVERSRC)/fb
#endif
DEFINES = -DPSZ=8
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp
index 04260f046..490702f19 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp,v 1.5 1999/11/12 02:12:40 mvojkovi Exp $
-.TH NV __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv.cpp,v 1.6 2000/03/03 01:05:40 dawes Exp $
+.TH NV __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
nv \-NVIDIA video driver
.SH SYNOPSIS
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h
index aa92f4ff5..2fb4fc16a 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h,v 1.2 1999/08/01 12:17:40 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_const.h,v 1.3 2000/02/25 21:02:55 dawes Exp $ */
#ifndef __NV_CONST_H__
#define __NV_CONST_H__
@@ -10,6 +10,8 @@
#define NV_MINOR_VERSION 0
#define NV_PATCHLEVEL 0
+/*#define NV_USE_FB*/
+
#ifdef DEBUG_PRINT
#define DEBUG(x) x
#else
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c
index 4335c513e..e45e00f5a 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c
@@ -24,7 +24,7 @@
/* Hacked together from mga driver and 3.3.4 NVIDIA driver by Jarno Paananen
<jpaana@s2.org> */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v 1.34 2000/02/21 19:23:06 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c,v 1.40 2000/03/05 23:47:51 dawes Exp $ */
#include "nv_include.h"
@@ -142,6 +142,7 @@ static const char *vgahwSymbols[] = {
NULL
};
+#ifndef NV_USE_FB
static const char *cfbSymbols[] = {
"cfbScreenInit",
"cfb16ScreenInit",
@@ -152,6 +153,13 @@ static const char *cfbSymbols[] = {
"cfb32BresS",
NULL
};
+#else
+static const char *fbSymbols[] = {
+ "fbScreenInit",
+ "fbBres",
+ NULL
+};
+#endif
static const char *xaaSymbols[] = {
"XAADestroyInfoRec",
@@ -337,7 +345,12 @@ nvSetup(pointer module, pointer opts, int *errmaj, int *errmin)
* Tell the loader about symbols from other modules that this module
* might refer to.
*/
- LoaderRefSymLists(vgahwSymbols, cfbSymbols, xaaSymbols,
+ LoaderRefSymLists(vgahwSymbols, xaaSymbols,
+#ifndef NV_USE_FB
+ cfbSymbols,
+#else
+ fbSymbols,
+#endif
ramdacSymbols, shadowSymbols,
i2cSymbols, ddcSymbols,
fbdevHWSymbols, int10Symbols, NULL);
@@ -394,9 +407,6 @@ NVProbe(DriverPtr drv, int flags)
* data structures.
*/
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
/*
* Check if there has been a chipset override in the config file.
* For this we must find out if there is an active device section which
@@ -444,10 +454,9 @@ NVProbe(DriverPtr drv, int flags)
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
/* Allocate a ScrnInfoRec and claim the slot */
@@ -655,7 +664,9 @@ NVdoDDC(ScrnInfoPtr pScrn)
/* Initialize I2C bus - used by DDC if available */
if (pNv->i2cInit) {
pNv->i2cInit(pScrn);
+#if 0
ErrorF("I2C initialized on %p\n",pNv->I2C);
+#endif
}
/* Read and output monitor info using DDC2 over I2C bus */
if (pNv->I2C) {
@@ -698,6 +709,8 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
const char *reqSym = NULL;
const char *s;
+ if (flags & PROBE_DETECT) return FALSE;
+
DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, "NVPreInit\n"));
/*
* Note: This function is only called once at server startup, and
@@ -761,14 +774,12 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
resRange vgaio[] = { {ResShrIoBlock,0x3B0,0x3BB},
{ResShrIoBlock,0x3C0,0x3DF},
_END };
- resRange vga1mem[] = { {ResShrMemBlock,0xA0000,0xAFFFF},
+ resRange vgamem[] = { {ResShrMemBlock,0xA0000,0xAFFFF},
{ResShrMemBlock,0xB8000,0xBFFFF},
- _END };
- resRange vga2mem[] = { {ResShrMemBlock,0xB0000,0xB7FFF},
+ {ResShrMemBlock,0xB0000,0xB7FFF},
_END };
xf86SetOperatingState(vgaio, pNv->pEnt->index, ResUnusedOpr);
- xf86SetOperatingState(vga1mem, pNv->pEnt->index, ResDisableOpr);
- xf86SetOperatingState(vga2mem, pNv->pEnt->index, ResDisableOpr);
+ xf86SetOperatingState(vgamem, pNv->pEnt->index, ResDisableOpr);
}
/* Set pScrn->monitor */
@@ -1144,8 +1155,8 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
clockRanges->minClock = pNv->MinClock;
clockRanges->maxClock = pNv->MaxClock;
clockRanges->clockIndex = -1; /* programmable */
- clockRanges->interlaceAllowed = FALSE;
- clockRanges->doubleScanAllowed = FALSE;
+ clockRanges->interlaceAllowed = TRUE;
+ clockRanges->doubleScanAllowed = TRUE;
/*
* xf86ValidateModes will check that the mode HTotal and VTotal values
@@ -1205,7 +1216,8 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
* XXX This should be taken into account in some way in the mode valdation
* section.
*/
-
+
+#ifndef NV_USE_FB
/* Load bpp-specific modules */
switch (pScrn->bitsPerPixel) {
case 8:
@@ -1229,7 +1241,15 @@ NVPreInit(ScrnInfoPtr pScrn, int flags)
}
xf86LoaderReqSymbols(reqSym, NULL);
+#else
+ if (xf86LoadSubModule(pScrn, "fb") == NULL) {
+ NVFreeRec(pScrn);
+ return FALSE;
+ }
+ xf86LoaderReqSymLists(fbSymbols, NULL);
+#endif
+
/* Load XAA if needed */
if (!pNv->NoAccel) {
if (!xf86LoadSubModule(pScrn, "xaa")) {
@@ -1534,6 +1554,7 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
}
switch (pScrn->bitsPerPixel) {
+#ifndef NV_USE_FB
case 8:
ret = cfbScreenInit(pScreen, FBStart, width, height,
pScrn->xDpi, pScrn->yDpi, displayWidth);
@@ -1546,6 +1567,15 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
ret = cfb32ScreenInit(pScreen, FBStart, width, height,
pScrn->xDpi, pScrn->yDpi, displayWidth);
break;
+#else
+ case 8:
+ case 16:
+ case 32:
+ ret = fbScreenInit(pScreen, FBStart, pScrn->virtualX,
+ pScrn->virtualY, pScrn->xDpi, pScrn->yDpi,
+ displayWidth, pScrn->bitsPerPixel);
+ break;
+#endif
default:
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: invalid bpp (%d) in NVScreenInit\n",
@@ -1654,7 +1684,7 @@ NVScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n) {
xf86XVScreenInit(pScreen, ptr, n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h
index 443ad0f9c..4c9c5097f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h,v 1.6 2000/02/08 17:19:10 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_include.h,v 1.7 2000/02/25 21:02:56 dawes Exp $ */
#ifndef __NV_INCLUDE_H__
#define __NV_INCLUDE_H__
@@ -8,6 +8,7 @@
#include "xf86_OSproc.h"
#include "xf86Resources.h"
#include "compiler.h"
+#include "xf86_ansic.h"
/* Drivers for PCI hardware need this */
#include "xf86PciInfo.h"
@@ -26,6 +27,9 @@
#include "xf86DDC.h"
#include "xf86RAC.h"
+
+#include "nv_const.h"
+#ifndef NV_USE_FB
/*
* If using cfb, cfb.h is required. Select the others for the bpp values
* the driver supports.
@@ -36,6 +40,9 @@
#include "cfb16.h"
#include "cfb24.h"
#include "cfb32.h"
+#else
+#include "fb.h"
+#endif
#include "xaa.h"
#include "xf86cmap.h"
@@ -53,7 +60,6 @@
#include "region.h"
#include "nv_local.h"
-#include "nv_const.h"
#include "nv_type.h"
#include "nv_proto.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h
index 79b7f2da6..d259babdc 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h,v 1.10 2000/01/30 17:58:44 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_type.h,v 1.11 2000/02/25 21:02:57 dawes Exp $ */
#ifndef __NV_STRUCT_H__
#define __NV_STRUCT_H__
@@ -97,6 +97,9 @@ typedef struct {
int Rotate;
NVFBLayout CurrentLayout;
GCPtr CurrentGC;
+#ifdef NV_USE_FB
+ DrawablePtr CurrentDrawable;
+#endif
/* Cursor */
unsigned short curFg, curBg;
unsigned int curImage[MAX_CURS*2];
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c
index f930dbbaa..9ff7db70f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c
@@ -41,7 +41,7 @@
/* Hacked together from mga driver and 3.3.4 NVIDIA driver by
Jarno Paananen <jpaana@s2.org> */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c,v 1.13 2000/02/08 17:19:11 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/nv/nv_xaa.c,v 1.14 2000/02/25 21:02:57 dawes Exp $ */
#include "nv_include.h"
#include "xaalocal.h"
@@ -49,11 +49,7 @@
#include "nvreg.h"
#include "nvvga.h"
-#define PSZ 8
-#include "cfb.h"
-#undef PSZ
-#include "cfb16.h"
-#include "cfb32.h"
+
#include "miline.h"
/*
@@ -505,6 +501,9 @@ NVPolylinesThinSolidWrapper(
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_GC(pGC);
NVPtr pNv = NVPTR(infoRec->pScrn);
pNv->CurrentGC = pGC;
+#ifdef NV_USE_FB
+ pNv->CurrentDrawable = pDraw;
+#endif
if(infoRec->NeedToSync)
while (pNv->riva.Busy(&pNv->riva));
XAAPolyLines(pDraw, pGC, mode, npt, pPts);
@@ -520,6 +519,9 @@ NVPolySegmentThinSolidWrapper(
XAAInfoRecPtr infoRec = GET_XAAINFORECPTR_FROM_GC(pGC);
NVPtr pNv = NVPTR(infoRec->pScrn);
pNv->CurrentGC = pGC;
+#ifdef NV_USE_FB
+ pNv->CurrentDrawable = pDraw;
+#endif
if(infoRec->NeedToSync)
while (pNv->riva.Busy(&pNv->riva));
XAAPolySegment(pDraw, pGC, nseg, pSeg);
@@ -548,12 +550,14 @@ NVSubsequentSolidHorVertLine(
pNv->riva.Bitmap->UnclippedRectangle[0].WidthHeight = (w << 16) | h;
}
+#ifndef NV_USE_FB
static void (*LineFuncs[4])() = {
cfbBresS,
cfb16BresS,
NULL,
cfb32BresS
};
+#endif
static void
NVSubsequentSolidBresenhamLine(
@@ -563,6 +567,7 @@ NVSubsequentSolidBresenhamLine(
int e, int len, int octant
){
NVPtr pNv = NVPTR(pScrn);
+#ifndef NV_USE_FB
cfbPrivGCPtr devPriv;
int Bpp = pScrn->bitsPerPixel >> 3;
@@ -578,6 +583,13 @@ NVSubsequentSolidBresenhamLine(
(octant & YDECREASING) ? -1 : 1,
(octant & YMAJOR) ? Y_AXIS : X_AXIS,
x, y, dmin + e, dmin, dmin - dmaj, len);
+#else
+ fbBres(pNv->CurrentDrawable, pNv->CurrentGC, 0,
+ (octant & XDECREASING) ? -1 : 1,
+ (octant & YDECREASING) ? -1 : 1,
+ (octant & YMAJOR) ? Y_AXIS : X_AXIS,
+ x, y, dmin + e, dmin, -dmaj, len);
+#endif
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile
index 86cf766a4..e3f7178bf 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile,v 1.4 2000/02/14 19:20:49 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/Imakefile,v 1.6 2000/03/03 01:05:40 dawes Exp $
XCOMM
XCOMM This is the Imakefile for the ATI Rage 128 (r128) driver.
XCOMM
@@ -19,7 +19,7 @@ INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(SERVERSRC)/fb \
-I$(SERVERSRC)/cfb -I$(XF86SRC)/xaa -I$(XF86SRC)/ramdac \
-I$(XF86SRC)/vgahw -I$(XF86SRC)/fbdevhw \
- -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
+ -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c -I$(XF86OSSRC)/vbe \
-I$(XF86SRC)/int10 -I$(SERVERSRC)/Xext \
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
-I$(EXTINCSRC) -I$(XF86SRC)/xf24_32bpp
@@ -35,9 +35,10 @@ ObjectModuleTarget(r128,$(OBJS))
InstallObjectModule(r128,$(MODULEDIR),drivers)
-XCOMM To install a man page remove the x and add these lines
-XCOMM xCppManTarget(r128,)
-XCOMM xInstallModuleManPage(r128)
+#if !defined(XF86DriverSDK)
+CppManTarget(r128,)
+InstallModuleManPage(r128)
+#endif
DependTarget()
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/README b/xc/programs/Xserver/hw/xfree86/drivers/r128/README
index 74c69486b..27adcbbbd 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/README
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/README
@@ -44,7 +44,8 @@
section of your XF86Config file are:
Section "Device"
- Identifier "r128"
+ Identifier "Rage 128"
+ Driver "r128"
EndSection
or let xf86config or XF86Setup do this for you.
@@ -68,7 +69,7 @@
7. Known Limitations
- * None
+ * DGA is not supported yet
8. Authors
@@ -110,5 +111,4 @@
http://www.suse.com
-$XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/README,v 1.1 1999/11/19 13:54:42 hohndel Exp $
-$PI$
+$XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/README,v 1.3 2000/03/08 15:14:50 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.cpp b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.cpp
new file mode 100644
index 000000000..6d75efc5e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.cpp
@@ -0,0 +1,70 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128.cpp,v 1.3 2000/03/06 22:59:26 dawes Exp $
+.TH R128 __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+r128 \- ATI Rage 128 video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""r128"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B r128
+is an XFree86 driver for ATI Rage 128 based video cards. It contains
+full support for 8, 15, 16 and 24 bit pixel depths, hardware
+acceleration of drawing primitives, hardware cursor, video modes up to
+1800x1440 @ 70Hz, doublescan modes (e.g., 320x200 and 320x240), gamma
+correction at all pixel depths, a fully programming dot clock and robust
+text mode restoration for VT switching.
+.SH SUPPORTED HARDWARE
+The
+.B r128
+driver supports all ATI Rage 128 based video cards including the Rage
+Fury AGP 32MB, the XPERT 128 AGP 16MB and the XPERT 99 AGP 8MB.
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.PP
+The driver auto-detects all device information necessary to initialize
+the card. However, if you have problems with auto-detection, you can
+specify:
+.PP
+.RS 4
+VideoRam - in kilobytes
+.br
+MemBase - physical address of the linear framebuffer
+.br
+IOBase - physical address of the MMIO registers
+.br
+ChipID - PCI DEVICE ID
+.RE
+.PP
+In addition, the following driver
+.B Options
+are supported:
+.TP
+.BI "Option ""SWcursor"" """ boolean """
+Selects software cursor. The default is
+.B off.
+.TP
+.BI "Option ""NoAccel"" """ boolean """
+Enables or disables all hardware acceleration. The default is to
+.B enable
+hardware acceleration.
+.TP
+.BI "Option ""Dac6Bit"" """ boolean """
+Enables or disables the use of 6 bits per color component when in 8 bpp
+mode (emulates VGA mode). By default, all 8 bits per color component
+are used. The default is
+.B off.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+.nf
+Rickard E. (Rik) Faith \fIfaith@precisioninsight.com\fP
+Kevin E. Martin \fIkevin@precisioninsight.com\fP
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h
index bf282c937..d5d120153 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h,v 1.7 2000/02/18 16:23:22 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128.h,v 1.8 2000/02/23 04:47:18 martin Exp $ */
/**************************************************************************
Copyright 1999 ATI Technologies Inc. and Precision Insight, Inc.,
@@ -31,7 +31,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
* Rickard E. Faith <faith@precisioninsight.com>
* Kevin E. Martin <kevin@precisioninsight.com>
*
- * $PI$
*/
#ifndef _R128_H_
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c
index cb3faf061..5b0223661 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c,v 1.6 2000/02/13 19:33:55 martin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_accel.c,v 1.7 2000/02/23 04:47:18 martin Exp $ */
/**************************************************************************
Copyright 1999 ATI Technologies Inc. and Precision Insight, Inc.,
@@ -68,7 +68,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
* method slows down common operations. Perhaps additional
* XAA flags to use this only for some operations would help.
*
- * $PI$
*/
#define R128_CLIPPING 1
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c
index eb9f93381..a96872702 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c,v 1.4 2000/02/13 19:33:56 martin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_cursor.c,v 1.6 2000/03/06 22:59:26 dawes Exp $ */
/**************************************************************************
Copyright 1999 ATI Technologies Inc. and Precision Insight, Inc.,
@@ -40,7 +40,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
* RAGE 128 Software Development Manual (Technical Reference Manual P/N
* SDK-G04000 Rev. 0.01), ATI Technologies: June 1999.
*
- * $PI$
*/
/* X and server generic header files */
@@ -66,11 +65,17 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "r128_reg.h"
#if X_BYTE_ORDER == X_BIG_ENDIAN
-#define P_SWAP( a , b ) \
- ((char *)a)[0] = ((char *)b)[3]; \
- ((char *)a)[1] = ((char *)b)[2]; \
- ((char *)a)[2] = ((char *)b)[1]; \
+#define P_SWAP32( a , b ) \
+ ((char *)a)[0] = ((char *)b)[3]; \
+ ((char *)a)[1] = ((char *)b)[2]; \
+ ((char *)a)[2] = ((char *)b)[1]; \
((char *)a)[3] = ((char *)b)[0]
+
+#define P_SWAP16( a , b ) \
+ ((char *)a)[0] = ((char *)b)[1]; \
+ ((char *)a)[1] = ((char *)b)[0]; \
+ ((char *)a)[2] = ((char *)b)[3]; \
+ ((char *)a)[3] = ((char *)b)[2]
#endif
@@ -118,23 +123,50 @@ static void R128LoadCursorImage(ScrnInfoPtr pScrn, unsigned char *image)
save = INREG(R128_CRTC_GEN_CNTL);
OUTREG(R128_CRTC_GEN_CNTL, save & ~R128_CRTC_CUR_EN);
- for (y = 0; y < 64; y++) {
+
#if X_BYTE_ORDER == X_BIG_ENDIAN
- P_SWAP(d,s);
- d++; s++;
- P_SWAP(d,s);
- d++; s++;
- P_SWAP(d,s);
- d++; s++;
- P_SWAP(d,s);
- d++; s++;
+ switch(info->pixel_bytes) {
+ case 4:
+ case 3:
+ for (y = 0; y < 64; y++) {
+ P_SWAP32(d,s);
+ d++; s++;
+ P_SWAP32(d,s);
+ d++; s++;
+ P_SWAP32(d,s);
+ d++; s++;
+ P_SWAP32(d,s);
+ d++; s++;
+ }
+ break;
+ case 2:
+ for (y = 0; y < 64; y++) {
+ P_SWAP16(d,s);
+ d++; s++;
+ P_SWAP16(d,s);
+ d++; s++;
+ P_SWAP16(d,s);
+ d++; s++;
+ P_SWAP16(d,s);
+ d++; s++;
+ }
+ break;
+ default:
+ for (y = 0; y < 64; y++) {
+ *d++ = *s++;
+ *d++ = *s++;
+ *d++ = *s++;
+ *d++ = *s++;
+ }
+ }
#else
+ for (y = 0; y < 64; y++) {
*d++ = *s++;
*d++ = *s++;
*d++ = *s++;
*d++ = *s++;
-#endif
}
+#endif
OUTREG(R128_CRTC_GEN_CNTL, save);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c
index 11fdc40b1..b5da4cb6e 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c,v 1.18 2000/02/21 19:23:07 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_driver.c,v 1.26 2000/03/06 23:17:44 martin Exp $ */
/**************************************************************************
Copyright 1999 ATI Technologies Inc. and Precision Insight, Inc.,
@@ -52,7 +52,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
* overlay planes
* DGA
*
- * $PI$
*/
@@ -105,6 +104,9 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
/* DDC support */
#include "xf86DDC.h"
+ /* VESA support */
+#include "vbe.h"
+
/* Driver data structures */
#include "r128.h"
#include "r128_reg.h"
@@ -235,6 +237,12 @@ static const char *fbdevHWSymbols[] = {
NULL
};
+static const char *vbeSymbols[] = {
+ "VBEInit",
+ "vbeDoEDID",
+ NULL
+};
+
#if 0
/* Not used until DDC is supported. */
static const char *ddcSymbols[] = {
@@ -340,6 +348,7 @@ static pointer R128Setup(pointer module, pointer opts, int *errmaj,
xf8_32bppSymbols,
ramdacSymbols,
fbdevHWSymbols,
+ vbeSymbols,
0 /* ddcsymbols */,
0 /* i2csymbols */,
0 /* shadowSymbols */,
@@ -624,9 +633,6 @@ static Bool R128Probe(DriverPtr drv, int flags)
Bool foundScreen = FALSE;
int i;
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
if ((numDevSections = xf86MatchDevice(R128_NAME, &devSections)) <= 0)
return FALSE;
@@ -643,10 +649,9 @@ static Bool R128Probe(DriverPtr drv, int flags)
if (numUsed<=0) return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
pEnt = xf86GetEntityInfo(usedChips[i]);
if (pEnt->active) {
@@ -1048,6 +1053,18 @@ static Bool R128PreInitInt10(ScrnInfoPtr pScrn)
return TRUE;
}
+extern xf86MonPtr ConfiguredMonitor;
+
+static void
+R128ProbeDDC(ScrnInfoPtr pScrn, int index)
+{
+ vbeInfoPtr pVbe;
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ pVbe = VBEInit(NULL,index);
+ ConfiguredMonitor = vbeDoEDID(pVbe);
+ }
+}
+
/* R128PreInit is called once at server startup. */
static Bool R128PreInit(ScrnInfoPtr pScrn, int flags)
{
@@ -1056,19 +1073,25 @@ static Bool R128PreInit(ScrnInfoPtr pScrn, int flags)
R128TRACE(("R128PreInit\n"));
if (pScrn->numEntities != 1) return FALSE;
- if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE;
- xf86LoaderReqSymLists(vgahwSymbols, NULL);
- if (!vgaHWGetHWRec(pScrn)) return FALSE;
- if (!R128GetRec(pScrn)) {
- vgaHWFreeHWRec(pScrn);
- return FALSE;
- }
+ if (!R128GetRec(pScrn)) return FALSE;
info = R128PTR(pScrn);
info->pEnt = xf86GetEntityInfo(pScrn->entityList[0]);
if (info->pEnt->location.type != BUS_PCI) goto fail;
+ if (flags & PROBE_DETECT) {
+ R128ProbeDDC(pScrn, info->pEnt->index);
+ return TRUE;
+ }
+
+ if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE;
+ xf86LoaderReqSymLists(vgahwSymbols, NULL);
+ if (!vgaHWGetHWRec(pScrn)) {
+ R128FreeRec(pScrn);
+ return FALSE;
+ }
+
info->PciInfo = xf86GetPciInfoForEntity(info->pEnt->index);
info->PciTag = pciTag(info->PciInfo->bus,
info->PciInfo->device,
@@ -1414,7 +1437,7 @@ static Bool R128ScreenInit(int scrnIndex, ScreenPtr pScreen,
XF86VideoAdaptorPtr *ptr;
int n;
- if ((n = xf86XVListGenericAdaptors(&ptr)))
+ if ((n = xf86XVListGenericAdaptors(pScrn, &ptr)))
xf86XVScreenInit(pScreen, ptr, n);
}
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h
index e7b5e2b3d..86652affa 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h,v 1.5 2000/02/18 16:23:23 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/r128/r128_reg.h,v 1.6 2000/02/23 04:47:19 martin Exp $ */
/**************************************************************************
Copyright 1999 ATI Technologies Inc. and Precision Insight, Inc.,
@@ -40,7 +40,6 @@ USE OR OTHER DEALINGS IN THE SOFTWARE.
* RAGE 128 Software Development Manual (Technical Reference Manual P/N
* SDK-G04000 Rev. 0.01), ATI Technologies: June 1999.
*
- * $PI$
*/
#ifndef _R128_REG_H_
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile
index 17e683ecb..1e9ddad3e 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile,v 1.13 2000/01/23 04:44:30 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/Imakefile,v 1.15 2000/03/03 01:05:41 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the Rendition driver.
@@ -8,10 +8,10 @@ XCOMM
#include <Server.tmpl>
SRCS = rendition.c vboard.c vmodes.c vramdac.c v1krisc.c vvga.c \
- vmisc.c hwcursor.c vloaduc.c accel.c
+ vmisc.c hwcursor.c vloaduc.c accel.c rendition_shadow.c
OBJS = rendition.o vboard.o vmodes.o vramdac.o v1krisc.o vvga.o \
- vmisc.o hwcursor.o vloaduc.o accel.o
+ vmisc.o hwcursor.o vloaduc.o accel.o rendition_shadow.o
#if defined(XF86DriverSDK)
INCLUDES = -I. -I../../include
@@ -48,6 +48,11 @@ InstallObjectModule(rendition,$(MODULEDIR),drivers)
InstallNonExecFile(v10002d.uc,$(MODULEDIR))
InstallNonExecFile(v20002d.uc,$(MODULEDIR))
+#if !defined(XF86DriverSDK)
+CppManTarget(rendition,)
+InstallModuleManPage(rendition)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/rendition)
@@ -55,6 +60,8 @@ InstallDriverSDKNonExecFile(cscode.h,$(DRIVERSDKDIR)/drivers/rendition)
InstallDriverSDKNonExecFile(rendition.c,$(DRIVERSDKDIR)/drivers/rendition)
InstallDriverSDKNonExecFile(rendition.h,$(DRIVERSDKDIR)/drivers/rendition)
InstallDriverSDKNonExecFile(rendition_options.h,$(DRIVERSDKDIR)/drivers/rendition)
+InstallDriverSDKNonExecFile(rendition_shadow.c,$(DRIVERSDKDIR)/drivers/rendition)
+InstallDriverSDKNonExecFile(rendition_shadow.h,$(DRIVERSDKDIR)/drivers/rendition)
InstallDriverSDKNonExecFile(commonregs.h,$(DRIVERSDKDIR)/drivers/rendition)
InstallDriverSDKNonExecFile(vmisc.h,$(DRIVERSDKDIR)/drivers/rendition)
InstallDriverSDKNonExecFile(vmisc.c,$(DRIVERSDKDIR)/drivers/rendition)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c
index d2b3b8426..4678c192c 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c
@@ -3,7 +3,8 @@
*
* accelerator functions for X
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c,v 1.5 2000/01/18 16:35:51 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/accelX.c,v 1.6 2000/02/25 21:02:59 dawes Exp $ */
+
@@ -28,19 +29,21 @@
/*
* defines
*/
+#if 1
/* Global imported during compile-time */
char MICROCODE_DIR [PATH_MAX] = MODULEDIR;
+#endif
-#define waitfifo(size) { int c=0; \
+#define waitfifo(size) do { int c=0; \
while ((c++<0xfffff)&&((v_in8(iob+FIFOINFREE)&0x1f)<size)) /* if(!(c%0xffff))ErrorF("#1# !0x%x! -- ",v_in8(iob+FIFOINFREE)) */; \
if (c >= 0xfffff) { \
ErrorF("RENDITION: Input fifo full (1) FIFO in == %d\n",v_in8(iob+FIFOINFREE)&0x1f); \
- /* return; */\
+ return; \
} \
- }
+ } while (0)
-#define waitfifo2(size, rv) { int c=0; \
+#define waitfifo2(size, rv) do { int c=0; \
while ((c++<0xfffff)&&((v_in8(iob+FIFOINFREE)&0x1f)<size)) /* if(!(c%0xffff))ErrorF("#2# !0x%x! -- ",v_in8(iob+FIFOINFREE)) */; \
if (c >= 0xfffff) { \
ErrorF("RENDITION: Input fifo full (2) FIFO in ==%d\n",v_in8(iob+FIFOINFREE)&0x1f); \
@@ -48,7 +51,7 @@ char MICROCODE_DIR [PATH_MAX] = MODULEDIR;
pRendition->board.accel=0; \
return rv; \
} \
- }
+ } while (0)
#define P1(x) ((vu32)x)
#define P2(x, y) ((((vu16)x)<<16)+((vu16)y))
@@ -110,7 +113,8 @@ static int Rop2Rop[]={
* functions
*/
-void RENDITIONAccelPreInit(ScrnInfoPtr pScreenInfo)
+void
+RENDITIONAccelPreInit(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
int c;
@@ -125,6 +129,13 @@ void RENDITIONAccelPreInit(ScrnInfoPtr pScreenInfo)
memset (pRendition->board.vmem_base,0,MC_SIZE);
#endif
+#if 0
+ if (RENDITIONLoadUcode(pScreenInfo)){
+ ErrorF ("RENDITION: AccelPreInit - Warning. Loading of microcode failed!!\n");
+ }
+#endif
+
+#if 1 /* Test */
if (V1000_DEVICE == pRendition->board.chip){
c=v_load_ucfile(pScreenInfo, strcat ((char *)MICROCODE_DIR,"v10002d.uc"));
}
@@ -139,25 +150,27 @@ void RENDITIONAccelPreInit(ScrnInfoPtr pScreenInfo)
}
pRendition->board.ucode_entry=c;
- RENDITIONSaveUcode(pScreenInfo);
- pRendition->board.fbOffset += MC_SIZE;
+ ErrorF("UCode_Entry == 0x%x\n",pRendition->board.ucode_entry);
+#endif
#ifdef DEBUG
+ pRendition->board.fbOffset += MC_SIZE;
ErrorF("RENDITION: Offset is now %d\n",pRendition->board.fbOffset);
- ErrorF("RENDITION: RENDITIONAccelPreInit End \n");
sleep(2);
#endif
}
-void RENDITIONAccelXAAInit(ScreenPtr pScreen)
+void
+RENDITIONAccelXAAInit(ScreenPtr pScreen)
{
ScrnInfoPtr pScreenInfo = xf86Screens[pScreen->myNum];
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
XAAInfoRecPtr pXAAinfo;
BoxRec AvailFBArea;
+ int c;
#ifdef DEBUG
ErrorF("RENDITION: RENDITIONAccelInit called\n");
@@ -197,28 +210,32 @@ void RENDITIONAccelXAAInit(ScreenPtr pScreen)
RENDITIONSetupForSolidFill;
pXAAinfo->SubsequentSolidFillRect=
RENDITIONSubsequentSolidFillRect;
-#endif
-#if 0
/* line */
xf86AccelInfoRec.SubsequentTwoPointLine =
RENDITIONSubsequentTwoPointLine;
#endif /* #if 0 */
-#ifdef DEBUG
- ErrorF("RENDITION: RENDITIONAccelInit restore\n");
- sleep(2);
-#endif
+ if (RENDITIONLoadUcode(pScreenInfo)) return;
- /* Restore u-code previously loaded in PreInit-stage */
- RENDITIONRestoreUcode(pScreenInfo);
+#if 1 /* Testingcode */
+ if (V1000_DEVICE == pRendition->board.chip){
+ c=v_load_ucfile(pScreenInfo, MICROCODE_DIR);
+ }
+ else {
+ /* V2x00 chip */
+ c=v_load_ucfile(pScreenInfo, MICROCODE_DIR);
+ }
- if (RENDITIONLoadUcode(pScreenInfo)) return;
+ if (c == -1) {
+ ErrorF( "RENDITION: Microcode loading failed !!!\n");
+ return;
+ }
+ pRendition->board.ucode_entry=c;
+#endif
if (RENDITIONInitUcode(pScreenInfo)) return;
- RENDITIONSaveUcode(pScreenInfo);
-
v_check_csucode(pScreenInfo);
/* the remaining code was copied from s3v_accel.c.
* we need to check it if it is suitable <ml> */
@@ -257,7 +274,8 @@ void RENDITIONAccelXAAInit(ScreenPtr pScreen)
-void RENDITIONAccelNone(ScrnInfoPtr pScreenInfo)
+void
+RENDITIONAccelNone(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
XAAInfoRecPtr pXAAinfo=pRendition->AccelInfoRec;
@@ -282,7 +300,8 @@ void RENDITIONAccelNone(ScrnInfoPtr pScreenInfo)
-int RENDITIONLoadUcode(ScrnInfoPtr pScreenInfo)
+int
+RENDITIONLoadUcode(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -312,7 +331,8 @@ int RENDITIONLoadUcode(ScrnInfoPtr pScreenInfo)
}
-int RENDITIONInitUcode(ScrnInfoPtr pScreenInfo)
+int
+RENDITIONInitUcode(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob = pRendition->board.io_base;
@@ -335,19 +355,27 @@ int RENDITIONInitUcode(ScrnInfoPtr pScreenInfo)
stride1=1;
*/
+ ErrorF("#InitUcode(1)# FIFOIN_FREE 0x%x -- \n",v_in8(iob+FIFOINFREE));
+
/* init the ucode */
/* ... and start accelerator */
v1k_flushicache(pScreenInfo);
v1k_start(pScreenInfo, pRendition->board.csucode_base);
+ ErrorF("#InitUcode(2)# FIFOIN_FREE 0x%x -- \n",v_in8(iob+FIFOINFREE));
+
v_out32(iob, 0); /* a0 - ucode init command */
v_out32(iob, 0); /* a1 - 1024 byte context store area */
v_out32(iob, 0); /* a2 */
v_out32(iob, pRendition->board.ucode_entry);
+ ErrorF("#InitUcode(3)# FIFOIN_FREE 0x%x -- \n",v_in8(iob+FIFOINFREE));
+
waitfifo2(6, 1);
+ ErrorF("#InitUcode(4)# FIFOIN_FREE 0x%x -- \n",v_in8(iob+FIFOINFREE));
+
v_out32(iob, CMD_SETUP);
v_out32(iob, P2(pRendition->board.mode.virtualwidth,
pRendition->board.mode.virtualheight));
@@ -360,6 +388,8 @@ int RENDITIONInitUcode(ScrnInfoPtr pScreenInfo)
v_out32(iob, (pRendition->board.mode.stride1<<12)|
(pRendition->board.mode.stride0<<8));
+ ErrorF("#InitUcode(5)# FIFOIN_FREE 0x%x -- \n",v_in8(iob+FIFOINFREE));
+
#if 0
v_out32(iob+0x60, 129);
ErrorF("RENDITION: PC at %x\n", v_in32(iob+0x64));
@@ -368,7 +398,8 @@ int RENDITIONInitUcode(ScrnInfoPtr pScreenInfo)
return 0;
}
-void RENDITIONRestoreUcode(ScrnInfoPtr pScreenInfo)
+void
+RENDITIONRestoreUcode(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob = pRendition->board.io_base;
@@ -377,6 +408,10 @@ void RENDITIONRestoreUcode(ScrnInfoPtr pScreenInfo)
#ifdef DEBUG
ErrorF("RENDITION: RENDITIONRestoreUcode called\n");
+#endif
+
+#ifdef DEBUG
+ ErrorF("Restore...1\n");
sleep(2);
#endif
@@ -406,13 +441,14 @@ void RENDITIONRestoreUcode(ScrnInfoPtr pScreenInfo)
-void RENDITIONSaveUcode(ScrnInfoPtr pScreenInfo)
+void
+RENDITIONSaveUcode(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob = pRendition->board.io_base;
vu8 memend;
-#if 1
+#ifdef DEBUG
ErrorF("RENDITION: RENDITIONSaveUcode called\n");
sleep(2);
#endif
@@ -440,7 +476,8 @@ void RENDITIONSaveUcode(ScrnInfoPtr pScreenInfo)
/*
* synchronization -- wait for RISC and pixel engine to become idle
*/
-void RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
+void
+RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob = pRendition->board.io_base;
@@ -458,10 +495,11 @@ void RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
c=0;
/* empty output fifo,
i.e. if there is any valid data in the output fifo then read it */
+
while ((c++<0xfffff) && ((v_in8(iob+FIFOOUTVALID)&0x7)>0))
- (void)v_in32(iob);
+ (void)v_in32(iob);
-/* if(!(c%10000))ErrorF("#F1# !0x%x! -- ",v_in8(iob+FIFOOUTVALID)); */
+/* if(!(c%0xffff))ErrorF("#F1# !0x%x! -- ",v_in8(iob+FIFOOUTVALID)); */
if (c >= 0xfffff) {
ErrorF("RENDITION: RISC synchronization failed (1) FIFO out == %d!\n",
@@ -478,7 +516,8 @@ void RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
while ((c++<0xfffff) && ((v_in8(iob+FIFOOUTVALID)&0x7)>0))
(void)v_in32(iob);
-/* if(!(c%10000))ErrorF("#F2# !0x%x! -- ",v_in8(iob+FIFOOUTVALID)); */
+/* if(!(c%0xffff))ErrorF("#F2# !0x%x! -- ",v_in8(iob+FIFOOUTVALID)); */
+
if (c >= 0xfffff) {
ErrorF("RENDITION: RISC synchronization failed (2) FIFO out == %d!\n",
@@ -486,10 +525,6 @@ void RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
return;
}
- /* This assumes that there are data to read out! Check if correct */
- if (c < 0xffffff)
- (void)v_in32(iob);
-
/* sync pixel engine using csucode -- I suppose this is quite slow <ml> */
v1k_stop(pScreenInfo);
v1k_start(pScreenInfo, pRendition->board.csucode_base);
@@ -499,7 +534,7 @@ void RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
while ((c++<0xfffff) && ((v_in8(iob+FIFOOUTVALID)&0x7)>0))
(void)v_in32(iob);
-/* if(!(c%10000))ErrorF("#F3# !0x%x! -- ",v_in8(iob+FIFOOUTVALID)); */
+/* if(!(c%0xffff))ErrorF("#F3# !0x%x! -- ",v_in8(iob+FIFOOUTVALID)); */
if (c == 0xfffff) {
ErrorF("RENDITION: Pixel engine synchronization failed FIFO out == %d!\n",
@@ -533,7 +568,8 @@ void RENDITIONSyncV1000(ScrnInfoPtr pScreenInfo)
/*
* screen to screen copy
*/
-void RENDITIONSetupForScreenToScreenCopy(ScrnInfoPtr pScreenInfo,
+void
+RENDITIONSetupForScreenToScreenCopy(ScrnInfoPtr pScreenInfo,
int xdir, int ydir, int rop,
unsigned planemask, int trans_color)
{
@@ -548,7 +584,8 @@ void RENDITIONSetupForScreenToScreenCopy(ScrnInfoPtr pScreenInfo,
pRendition->board.Rop=Rop2Rop[rop];
}
-void RENDITIONSubsequentScreenToScreenCopy(ScrnInfoPtr pScreenInfo,
+void
+RENDITIONSubsequentScreenToScreenCopy(ScrnInfoPtr pScreenInfo,
int srcX, int srcY,
int dstX, int dstY,
int w, int h)
@@ -581,13 +618,14 @@ void RENDITIONSubsequentScreenToScreenCopy(ScrnInfoPtr pScreenInfo,
/*
* solid filled rectangles
*/
-void RENDITIONSetupForSolidFill(ScrnInfoPtr pScreenInfo,
+void
+RENDITIONSetupForSolidFill(ScrnInfoPtr pScreenInfo,
int color, int rop,
unsigned planemask)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
-#if 1 /* def DEBUG */
+#ifdef DEBUG
ErrorF("RENDITION: RENDITIONSetupForSolidFill called\n");
ErrorF("RENDITION: Rop is %x/%x\n", rop, Rop2Rop[rop]);
#endif
@@ -600,7 +638,8 @@ void RENDITIONSetupForSolidFill(ScrnInfoPtr pScreenInfo,
pRendition->board.Color|=(pRendition->board.Color<<8);
}
-void RENDITIONSubsequentSolidFillRect(ScrnInfoPtr pScreenInfo,
+void
+RENDITIONSubsequentSolidFillRect(ScrnInfoPtr pScreenInfo,
int x, int y, int w, int h)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -629,7 +668,8 @@ void RENDITIONSubsequentSolidFillRect(ScrnInfoPtr pScreenInfo,
* line
*/
-void RENDITIONSubsequentTwoPointLine(ScrnInfoPtr pScreenInfo,
+void
+RENDITIONSubsequentTwoPointLine(ScrnInfoPtr pScreenInfo,
int x1, int y1,
int x2, int y2,
int bias)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c
index 9ae2f17b3..808e393cc 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c,v 1.5 1999/12/30 03:38:34 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/hwcursor.c,v 1.6 2000/02/25 21:03:00 dawes Exp $ */
/*
* includes
*/
@@ -13,9 +13,7 @@
* defines
*/
-#ifdef DEBUG
#undef DEBUG
-#endif
/* use a 64x64 cursor, 32x32 otherwise */
/* note that V2K supports only 64x64 size */
@@ -26,7 +24,7 @@
*/
static Bool RENDITIONUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs);
-static void RENDITIONSetCursorColors(ScrnInfoPtr pScreenInfo, int fg, int bg);
+static void RENDITIONSetCursorColors(ScrnInfoPtr pScreenInfo, int bg, int fg);
static void RENDITIONSetCursorPosition(ScrnInfoPtr pScreenInfo, int x, int y);
static void RENDITIONHideCursor(ScrnInfoPtr pScreenInfo);
static void RENDITIONShowCursor(ScrnInfoPtr pScreenInfo);
@@ -41,6 +39,10 @@ RenditionHWCursorPreInit (ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug RenditionHWCursorPreInit called\n");
+#endif
+
pRendition->board.hwcursor_used = TRUE;
if (pRendition->board.chip==V1000_DEVICE){
/* V1K uses special space on BT-485 RAMDAC */
@@ -60,6 +62,10 @@ RenditionHWCursorRelease (ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug RenditionHWCursorRelease called\n");
+#endif
+
xf86DestroyCursorInfoRec(pRendition->CursorInfoRec);
pRendition->CursorInfoRec=NULL;
}
@@ -72,15 +78,15 @@ RenditionHWCursorInit(int scrnIndex, ScreenPtr pScreen)
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
xf86CursorInfoPtr infoPtr;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug RenditionHWCursorInit called\n");
+#endif
+
infoPtr = xf86CreateCursorInfoRec();
if(!infoPtr) return FALSE;
pRendition->CursorInfoRec = infoPtr;
-#ifdef DEBUG
- ErrorF( "RENDITION: RENDITIONHwCursorInit called\n");
-#endif
-
#ifdef BIGCURSOR
infoPtr->MaxWidth=64;
infoPtr->MaxHeight=64;
@@ -113,6 +119,10 @@ RenditionHWCursorInit(int scrnIndex, ScreenPtr pScreen)
static Bool
RENDITIONUseHWCursor(ScreenPtr pScreen, CursorPtr pCurs)
{
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug RENDITIONUseHWCursor called\n");
+#endif
+
/* have this return false for DoubleScan and Interlaced ? */
return TRUE;
}
@@ -128,7 +138,7 @@ RENDITIONShowCursor(ScrnInfoPtr pScreenInfo)
#endif
/* enable cursor - X11 mode */
- v_enablecursor(pScreenInfo, V_3COLORS,
+ v_enablecursor(pScreenInfo, V_3COLORS,
#ifdef BIGCURSOR
V_CURSOR64
#else
@@ -171,7 +181,7 @@ RENDITIONSetCursorColors(ScrnInfoPtr pScreenInfo, int bg, int fg)
ErrorF( "RENDITION: SetCursorColors(%x, %x) called\n", fg, bg);
#endif
- v_setcursorcolor(pScreenInfo, fg, bg);
+ v_setcursorcolor(pScreenInfo, bg, fg);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c
index 615e71849..95122b137 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c,v 1.24 2000/02/21 19:23:07 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.c,v 1.30 2000/03/06 23:54:12 dawes Exp $ */
/*
* Copyright (C) 1998 The XFree86 Project, Inc. All Rights Reserved.
*
@@ -59,6 +59,8 @@
#include "vmodes.h"
#include "vvga.h"
#include "accel.h"
+#include "vramdac.h"
+#include "rendition_shadow.h"
/*
* defines
@@ -97,6 +99,7 @@ static Bool renditionUnmapMem(ScrnInfoPtr pScreenInfo);
static xf86MonPtr renditionDDC(ScrnInfoPtr pScreenInfo);
static unsigned int renditionDDC1Read (ScrnInfoPtr pScreenInfo);
+static void renditionLoadPalette(ScrnInfoPtr, int, int *, LOCO *, VisualPtr);
/*
* global data
@@ -107,7 +110,9 @@ OptionInfoRec renditionOptions[]={
{ OPTION_SW_CURSOR, "SW_Cursor", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_OVERCLOCK_MEM,"Overclock_Mem", OPTV_BOOLEAN, {0}, FALSE },
- { OPTION_NO_DDC, "NoDDC", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_NO_DDC, "NoDDC", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_ROTATE, "Rotate", OPTV_ANYSTR, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
@@ -185,6 +190,13 @@ static const char *fbSymbols[]={
NULL
};
+static const char *shadowfbSymbols[] = {
+ "ShadowFBInit",
+ NULL
+};
+
+
+
#ifdef XFree86LOADER
/* Module loader interface */
@@ -218,7 +230,7 @@ renditionSetup(pointer Module, pointer Options, int *ErrorMajor,
xf86AddDriver(&RENDITION, Module, 0);
LoaderRefSymLists(vgahwSymbols, ramdacSymbols, fbSymbols,
xaaSymbols, ddcSymbols, int10Symbols,
- NULL);
+ shadowfbSymbols, NULL);
return (pointer)TRUE;
}
@@ -253,8 +265,7 @@ static PciChipsets renditionPCIchipsets[] = {
* functions
*/
-static
-OptionInfoPtr
+static OptionInfoPtr
renditionAvailableOptions(int chipid, int busid)
{
return renditionOptions;
@@ -283,9 +294,6 @@ renditionProbe(DriverPtr drv, int flags)
int *usedChips;
int c;
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
/* Find the config file Device sections that match this
* driver, and return if there are none. */
if ((numDevSections=xf86MatchDevice(RENDITION_NAME, &devSections)) <= 0)
@@ -297,10 +305,15 @@ renditionProbe(DriverPtr drv, int flags)
renditionChipsets, renditionPCIchipsets,
devSections, numDevSections, drv, &usedChips);
- if (numUsed > 0 && (flags & PROBE_DETECTPCI))
- return TRUE;
+ if (devSections)
+ xfree(devSections);
+ devSections = NULL;
+ if (numUsed <= 0)
+ return FALSE;
- for (c=0; c<numUsed; c++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (c=0; c<numUsed; c++) {
ScrnInfoPtr pScrn;
/* Allocate a ScrnInfoRec and claim the slot */
pScrn=xf86AllocateScreen(drv, 0);
@@ -320,10 +333,8 @@ renditionProbe(DriverPtr drv, int flags)
xf86ConfigActivePciEntity(pScrn, usedChips[c],
renditionPCIchipsets, NULL, NULL, NULL, NULL, NULL);
}
- if (numUsed > 0)
- xfree(usedChips);
}
- xfree(devSections);
+ xfree(usedChips);
return foundScreen;
}
@@ -451,7 +462,9 @@ renditionPreInit(ScrnInfoPtr pScreenInfo, int flags)
const char *Sym;
vgaHWPtr pvgaHW;
renditionPtr pRendition;
+ char *in_string;
+ if (flags & PROBE_DETECT) return FALSE;
#ifdef DEBUG
ErrorF("Rendition: renditionPreInit() called\n");
@@ -550,7 +563,7 @@ renditionPreInit(ScrnInfoPtr pScreenInfo, int flags)
/* determine colour weights */
pScreenInfo->rgbBits=8;
-
+
if (pScreenInfo->depth > 8) {
rgb defaultWeight = {0, 0, 0};
rgb defaultMask = {0, 0, 0};
@@ -654,8 +667,54 @@ renditionPreInit(ScrnInfoPtr pScreenInfo, int flags)
}
xf86LoaderReqSymLists(vgahwSymbols, NULL);
+
+ pRendition->board.shadowfb=TRUE;
+
+ if ((in_string = xf86GetOptValString(renditionOptions, OPTION_ROTATE))) {
+ if(!xf86NameCmp(in_string, "CW")) {
+ /* accel is disabled below for shadowFB */
+ pRendition->board.shadowfb = TRUE;
+ pRendition->board.rotate = 1;
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_CONFIG,
+ "Rotating screen clockwise - acceleration disabled\n");
+ } else if(!xf86NameCmp(in_string, "CCW")) {
+ pRendition->board.shadowfb = TRUE;
+ pRendition->board.rotate = -1;
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_CONFIG, "Rotating screen "
+ "counter clockwise - acceleration disabled\n");
+ } else {
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_CONFIG, "\"%s\" is not a valid"
+ "value for Option \"Rotate\"\n", in_string);
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
+ "Valid options are \"CW\" or \"CCW\"\n");
+ }
+ }
+ xf86MarkOptionUsedByName(renditionOptions,"Rotate");
+
+ if (xf86ReturnOptValBool(renditionOptions, OPTION_SHADOW_FB,1)||
+ pRendition->board.rotate) {
+ if (!xf86LoadSubModule(pScreenInfo, "shadowfb")) {
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
+ "Oops, \"ShadowFB\" module loading failed, disabling ShadowFB!\n");
+ }
+ else{
+ xf86LoaderReqSymLists(shadowfbSymbols, NULL);
+ pRendition->board.shadowfb=TRUE;
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
+ "Using \"Shadow Framebuffer\"\n");
+ }
+ }
+ else {
+ pRendition->board.shadowfb=FALSE;
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_CONFIG,
+ "\"Shadow Framebuffer\" disabled\n");
+ }
+ xf86MarkOptionUsedByName(renditionOptions,"ShadowFB");
+
+
/* Load Ramdac module if needed */
- if (!xf86ReturnOptValBool(renditionOptions, OPTION_SW_CURSOR,0)){
+ if (!xf86ReturnOptValBool(renditionOptions, OPTION_SW_CURSOR,0) &&
+ !pRendition->board.rotate){
if (!xf86LoadSubModule(pScreenInfo, "ramdac")) {
return FALSE;
}
@@ -665,9 +724,10 @@ renditionPreInit(ScrnInfoPtr pScreenInfo, int flags)
#if USE_ACCEL
/* Load XAA if needed */
- if (!xf86ReturnOptValBool(renditionOptions, OPTION_NOACCEL,0)) {
+ if (!xf86ReturnOptValBool(renditionOptions, OPTION_NOACCEL,0) &&
+ !pRendition->board.rotate) {
if (!xf86LoadSubModule(pScreenInfo, "xaa")) {
- return FALSE;
+ return FALSE;
}
xf86LoaderReqSymLists(xaaSymbols, NULL);
}
@@ -763,16 +823,23 @@ renditionPreInit(ScrnInfoPtr pScreenInfo, int flags)
pScreenInfo->chipset = (char *)renditionChipsets[0].name;
if(!xf86ReturnOptValBool(renditionOptions, OPTION_SW_CURSOR,0)){
- /* Do preemtive things for HW cursor */
- RenditionHWCursorPreInit(pScreenInfo);
- }
- else {
- ErrorF("RENDITION: Software cursor selected\n");
+ if(!pRendition->board.rotate)
+ /* Do preemtive things for HW cursor */
+ RenditionHWCursorPreInit(pScreenInfo);
+ else{
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_WARNING,
+ "Hardware cursor not supported on rotated screen\n");
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_INFO,
+ "Software cursor activated\n");
+ }
}
+ else
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_CONFIG,
+ "Software cursor selected\n");
renditionUnmapMem(pScreenInfo);
-#if USE_ACCEL
+#ifdef DEBUG
ErrorF("PreInit OK...!!!!\n");
sleep(2);
#endif
@@ -785,13 +852,13 @@ renditionPreInit(ScrnInfoPtr pScreenInfo, int flags)
static void
renditionSave(ScrnInfoPtr pScreenInfo)
{
-#if USE_ACCEL
+#ifdef DEBUG
ErrorF("Save...!!!!\n");
sleep(1);
#endif
vgaHWSave(pScreenInfo, &VGAHWPTR(pScreenInfo)->SavedReg,VGA_SR_ALL);
-#if USE_ACCEL
+#ifdef DEBUG
ErrorF("Save OK...!!!!\n");
sleep(1);
#endif
@@ -812,7 +879,6 @@ renditionRestore(ScrnInfoPtr pScreenInfo)
vgaHWProtect(pScreenInfo, FALSE);
v_setmode(pScreenInfo, &RENDITIONPTR(pScreenInfo)->mode);
-
#ifdef DEBUG
ErrorF("Restore OK...!!!!\n");
sleep(1);
@@ -922,9 +988,7 @@ renditionEnterGraphics(ScreenPtr pScreen, ScrnInfoPtr pScreenInfo)
#ifdef DEBUG
ErrorF("RENDITION: renditionEnterGraphics() called\n");
-
- ErrorF("Entergraphics...!!!!\n");
- sleep(1);
+ sleep(2);
#endif
/* Map VGA aperture */
@@ -1031,11 +1095,12 @@ static Bool
renditionScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
{
ScrnInfoPtr pScreenInfo = xf86Screens[scrnIndex];
-
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
renditionPtr prenditionPriv;
Bool Inited = FALSE;
- unsigned char *FBBase=RENDITIONPTR(pScreenInfo)->board.vmem_base;
+ unsigned char *FBBase;
VisualPtr visual;
+ int displayWidth,width,height;
vgaHWPtr pvgaHW;
@@ -1061,29 +1126,50 @@ renditionScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
if (!miSetVisualTypes(pScreenInfo->depth,
miGetDefaultVisualMask(pScreenInfo->depth),
pScreenInfo->rgbBits, pScreenInfo->defaultVisual))
- return FALSE;
+ return FALSE;
+
+ if (pRendition->board.rotate) {
+ height = pScreenInfo->virtualX;
+ width = pScreenInfo->virtualY;
+ } else {
+ width = pScreenInfo->virtualX;
+ height = pScreenInfo->virtualY;
+ }
+
+ if(pRendition->board.shadowfb) {
+ pRendition->board.shadowPitch = BitmapBytePad(pScreenInfo->bitsPerPixel * width);
+ pRendition->board.shadowPtr = xalloc(pRendition->board.shadowPitch * height);
+ displayWidth = pRendition->board.shadowPitch /
+ (pScreenInfo->bitsPerPixel >> 3);
+ FBBase = pRendition->board.shadowPtr;
+ } else {
+ pRendition->board.shadowPtr = NULL;
+ FBBase = pRendition->board.vmem_base+prenditionPriv->board.fbOffset;
+ displayWidth=pScreenInfo->displayWidth;
+ }
+
/* initialise the framebuffer */
switch (pScreenInfo->bitsPerPixel)
{
case 8:
- Inited = cfbScreenInit(pScreen, FBBase+prenditionPriv->board.fbOffset,
- pScreenInfo->virtualX, pScreenInfo->virtualY,
- pScreenInfo->xDpi, pScreenInfo->yDpi,
- pScreenInfo->displayWidth);
+ Inited = cfbScreenInit(pScreen, FBBase,
+ width, height,
+ pScreenInfo->xDpi, pScreenInfo->yDpi,
+ displayWidth);
break;
case 16:
- Inited = cfb16ScreenInit(pScreen, FBBase+prenditionPriv->board.fbOffset,
- pScreenInfo->virtualX, pScreenInfo->virtualY,
- pScreenInfo->xDpi, pScreenInfo->yDpi,
- pScreenInfo->displayWidth);
- break;
+ Inited = cfb16ScreenInit(pScreen, FBBase,
+ width, height,
+ pScreenInfo->xDpi, pScreenInfo->yDpi,
+ displayWidth);
+ break;
case 32:
- Inited = cfb32ScreenInit(pScreen, FBBase+prenditionPriv->board.fbOffset,
- pScreenInfo->virtualX, pScreenInfo->virtualY,
- pScreenInfo->xDpi, pScreenInfo->yDpi,
- pScreenInfo->displayWidth);
- break;
+ Inited = cfb32ScreenInit(pScreen, FBBase,
+ width, height,
+ pScreenInfo->xDpi, pScreenInfo->yDpi,
+ displayWidth);
+ break;
default:
xf86DrvMsg(scrnIndex, X_ERROR,
"Internal error: invalid bpp (%d) in renditionScreenInit\n",
@@ -1125,16 +1211,8 @@ renditionScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
visual->greenMask=0x7e0;
visual->blueMask=0x1f;
}
-/*
- visual->offsetRed=0;
- visual->offsetGreen=5;
- visual->offsetBlue=11;
- visual->redMask=0x1f;
- visual->greenMask=0x7e0;
- visual->blueMask=0xf800;
-*/
}
- }
+ }
}
xf86SetBlackWhitePixels(pScreen);
@@ -1151,23 +1229,49 @@ renditionScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
/* Initialise cursor functions */
miDCInitialize(pScreen, xf86GetPointerScreenFuncs());
- if(!xf86ReturnOptValBool(renditionOptions, OPTION_SW_CURSOR,0)){
+ if(!xf86ReturnOptValBool(renditionOptions, OPTION_SW_CURSOR,0)&&
+ !pRendition->board.rotate){
/* Initialise HW cursor */
- ErrorF("RENDITION: Hardware cursor used\n");
if(!RenditionHWCursorInit(scrnIndex, pScreen)){
- ErrorF("Hardware Cursor initalization failed!!\n");
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_ERROR,
+ "Hardware Cursor initalization failed!!\n");
}
}
- else {
- ErrorF("RENDITION: Software cursor selected\n");
+
+ if (pRendition->board.shadowfb) {
+ RefreshAreaFuncPtr refreshArea = renditionRefreshArea;
+
+ if(pRendition->board.rotate) {
+ if (!pRendition->board.PointerMoved) {
+ pRendition->board.PointerMoved = pScreenInfo->PointerMoved;
+ pScreenInfo->PointerMoved = renditionPointerMoved;
+ }
+
+ switch(pScreenInfo->bitsPerPixel) {
+ case 8: refreshArea = renditionRefreshArea8; break;
+ case 16: refreshArea = renditionRefreshArea16; break;
+ case 24: refreshArea = renditionRefreshArea24; break;
+ case 32: refreshArea = renditionRefreshArea32; break;
+ }
+ }
+
+ ShadowFBInit(pScreen, refreshArea);
}
/* Setup default colourmap */
- Inited = miCreateDefColormap(pScreen);
+ if (!miCreateDefColormap(pScreen))
+ return FALSE;
/* Try the new code based on the new colormap layer */
if (pScreenInfo->depth > 1)
- vgaHWHandleColormaps(pScreen);
+ if (!xf86HandleColormaps(pScreen, 256, pScreenInfo->rgbBits,
+ renditionLoadPalette, NULL,
+ CMAP_LOAD_EVEN_IF_OFFSCREEN|
+ CMAP_RELOAD_ON_MODE_SWITCH)) {
+ xf86DrvMsg(pScreenInfo->scrnIndex, X_ERROR, "Colormap initialization failed\n");
+ return FALSE;
+ }
+
#ifdef DPMSExtension
xf86DPMSInit(pScreen, renditionDPMSSet, 0);
@@ -1268,12 +1372,13 @@ renditionValidMode(int scrnIndex, DisplayModePtr pMode, Bool Verbose, int flags)
return MODE_OK;
}
-static Bool renditionMapMem(ScrnInfoPtr pScreenInfo)
+static Bool
+renditionMapMem(ScrnInfoPtr pScreenInfo)
{
Bool WriteCombine;
int mapOption;
-#ifdef DEBUG0
+#ifdef DEBUG
ErrorF("Mapping ...\n");
ErrorF("%d %d %d %x %d\n", pScreenInfo->scrnIndex, VIDMEM_FRAMEBUFFER,
RENDITIONPTR(pScreenInfo)->pcitag,
@@ -1314,9 +1419,10 @@ static Bool renditionMapMem(ScrnInfoPtr pScreenInfo)
#endif
}
-static Bool renditionUnmapMem(ScrnInfoPtr pScreenInfo)
+static Bool
+renditionUnmapMem(ScrnInfoPtr pScreenInfo)
{
-#ifdef DEBUG0
+#ifdef DEBUG
ErrorF("Unmapping ...\n");
#endif
xf86UnMapVidMem(pScreenInfo->scrnIndex,
@@ -1327,7 +1433,17 @@ static Bool renditionUnmapMem(ScrnInfoPtr pScreenInfo)
#endif
}
-static xf86MonPtr renditionDDC (ScrnInfoPtr pScreenInfo)
+static void
+renditionLoadPalette(ScrnInfoPtr pScreenInfo, int numColors,
+ int *indices, LOCO *colors,
+ VisualPtr pVisual)
+{
+ v_setpalette(pScreenInfo, numColors, indices, colors, pVisual);
+}
+
+
+static xf86MonPtr
+renditionDDC (ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob=pRendition->board.io_base;
@@ -1359,7 +1475,8 @@ static xf86MonPtr renditionDDC (ScrnInfoPtr pScreenInfo)
return MonInfo;
}
-static unsigned int renditionDDC1Read (ScrnInfoPtr pScreenInfo)
+static unsigned int
+renditionDDC1Read (ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob=pRendition->board.io_base;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.cpp b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.cpp
new file mode 100644
index 000000000..644cbc732
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.cpp
@@ -0,0 +1,112 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.cpp,v 1.2 2000/03/05 16:59:14 dawes Exp $
+.TH RENDITION __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+rendition \- Rendition video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""rendition"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B rendition
+is an XFree86 driver for Rendition/Micron based video cards. The driver
+supports following framebuffer depths: 8, 15 (Verite V1000 only), 16
+and 24. Acceleration and multi-head configurations are
+not supported yet, but are work in progress.
+.SH SUPPORTED HARDWARE
+The
+.B rendition
+driver supports PCI and AGP video cards based on the following Rendition/Micron chips:
+.TP 12
+.B V1000
+Verite V1000 based cards.
+.TP 12
+.B V2100
+Verite V2100 based cards. Diamond Stealth II S220 is the only known such card.
+.TP 12
+.B V2200
+Verite V2200 based cards.
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.PP
+The driver auto-detects the chipset type, but the following
+.B ChipSet
+names may optionally be specified in the config file
+.B """Device"""
+section, and will override the auto-detection:
+.PP
+.RS 4
+"v1000", "v2100", "v2200".
+.RE
+.PP
+The driver will auto-detect the amount of video memory present for all
+chips. If the amount of memory is detected incorrectly, the actual amount
+of video memory should be specified with a
+.B VideoRam
+entry in the config file
+.B """Device"""
+section.
+.PP
+The following driver
+.B Options
+are supported:
+.TP
+.BI "Option ""SWCursor"" """ boolean """
+Disables use of the hardware cursor. Default: use HW-cursor.
+.TP
+.BI "Option ""OverclockMem"" """ boolean """
+Increases the Mem/Sys clock to 125MHz/60MHz from standard 110MHz/50MHz.
+Default: Not overclocked.
+.TP
+.BI "Option ""DacSpeed"" """ MHz """
+Run the memory at a higher clock. Useful on some cards with display glitches
+at higher resolutions. But adds the risk to damage the hardware. Use with
+caution.
+.TP
+.BI "Option ""FramebufferWC"" """ boolean """
+If writecombine is disabled in BIOS, and you add this option in configuration
+file, then the driver will try to request writecombined access to the
+framebuffer. This can drastically increase the performance on unaccelerated
+server. Requires that "MTRR"-support is compiled into the OS-kernel.
+Default: Disabled for V1000, enabled for V2100/V2200.
+.TP
+.BI "Option ""NoDDC"" """ boolean """
+Disable probing of DDC-information from your monitor. This information is not
+used yet and is only there for informational purposes. This might change
+before final XFree86 4.0 release. Safe to disable if you experience problems
+during startup of X-server.
+Default: Probe DDC.
+.TP
+.BI "Option ""ShadowFB"" """ boolean """
+If this option is enabled, the driver will cause the CPU to do each drawing
+operation first into a shadow frame buffer in system virtual memory and then
+copy the result into video memory. If this option is not active, the CPU will
+draw directly into video memory. Enabling this option is beneficial for those
+systems where reading from video memory is, on average, slower than the
+corresponding read/modify/write operation in system virtual memory. This is
+normally the case for PCI or AGP adapters, and, so, this option is enabled by
+default unless acceleration is enabled.
+Default: Enabled unless acceleration is used.
+.TP
+.BI "Option ""Rotate"" ""CW""
+.TP
+.BI "Option ""Rotate"" ""CCW""
+Rotate the display clockwise or counterclockwise. This mode is unaccelerated.
+Default: no rotation.
+.TP
+.SH "Notes"
+For the moment the driver defaults to not request write-combine for any chipset
+as there has been indications of problems with it. Use
+.B "Option ""MTRR"""
+to let the driver request write-combining of memory access on the videoboard.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: Marc Langenbach, Dejan Ilic
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h
index ca8df2861..a9f73bb01 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h,v 1.4 1999/12/14 03:12:09 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition.h,v 1.5 2000/02/25 21:03:02 dawes Exp $ */
#ifndef __RENDITION_H__
#define __RENDITION_H__
@@ -77,6 +77,7 @@
/* DDC support */
#include "xf86DDC.h"
+
#include "commonregs.h"
/* end of __RENDITION_H__ */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h
index b45eb580d..89eb3d1df 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h,v 1.3 1999/11/02 16:16:42 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_options.h,v 1.4 2000/03/01 00:25:24 dawes Exp $ */
#ifndef __RENDITION_OPTION_H__
#define __RENDITION_OPTION_H__
@@ -9,7 +9,9 @@ typedef enum {
OPTION_SW_CURSOR,
OPTION_NOACCEL,
OPTION_OVERCLOCK_MEM,
- OPTION_NO_DDC
+ OPTION_NO_DDC,
+ OPTION_SHADOW_FB,
+ OPTION_ROTATE
} renditionOpts;
@@ -24,6 +26,8 @@ static OptionInfoRec renditionOptions[]={
{ OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_OVERCLOCK_MEM,"Overclock_Mem", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_NO_DDC, "NoDDC", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_SHADOW_FB, "ShadowFB", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_ROTATE, "Rotate", OPTV_ANYSTR, {0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
/*********************************/
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.c
new file mode 100644
index 000000000..cf93af56b
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.c
@@ -0,0 +1,256 @@
+/*
+ * file rendition_shadow.h
+ *
+ * The functions used by ShadowFB
+ * Based on code written by Mark Vojkovich <markv@valinux.com>
+ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.c,v 1.1 2000/03/01 00:25:25 dawes Exp $ */
+
+#include "rendition.h"
+#include "vtypes.h"
+#include "rendition_shadow.h"
+#include "shadowfb.h"
+#include "servermd.h"
+
+
+
+void
+renditionRefreshArea(ScrnInfoPtr pScreenInfo, int num, BoxPtr pbox)
+{
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+ int width, height, Bpp, FBPitch;
+ unsigned char *src, *dst;
+
+ Bpp = pScreenInfo->bitsPerPixel >> 3;
+ FBPitch = BitmapBytePad(pScreenInfo->displayWidth *
+ pScreenInfo->bitsPerPixel);
+
+ while(num--) {
+ width = (pbox->x2 - pbox->x1) * Bpp;
+ height = pbox->y2 - pbox->y1;
+ src = pRendition->board.shadowPtr +
+ (pbox->y1 * pRendition->board.shadowPitch) + (pbox->x1 * Bpp);
+
+ dst = pRendition->board.vmem_base+pRendition->board.fbOffset +
+ (pbox->y1 * FBPitch) + (pbox->x1 * Bpp);
+
+ while(height--) {
+ memcpy(dst, src, width);
+ dst += FBPitch;
+ src += pRendition->board.shadowPitch;
+ }
+
+ pbox++;
+ }
+}
+
+void
+renditionPointerMoved(int index, int x, int y)
+{
+ ScrnInfoPtr pScreenInfo = xf86Screens[index];
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+ int newX, newY;
+
+ if(pRendition->board.rotate == 1) {
+ newX = pScreenInfo->pScreen->height - y - 1;
+ newY = x;
+ } else {
+ newX = y;
+ newY = pScreenInfo->pScreen->width - x - 1;
+ }
+
+ (*pRendition->board.PointerMoved)(index, newX, newY);
+}
+
+void
+renditionRefreshArea8(ScrnInfoPtr pScreenInfo, int num, BoxPtr pbox)
+{
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+ int count, width, height, y1, y2, dstPitch, srcPitch;
+ CARD8 *dstPtr, *srcPtr, *src;
+ CARD32 *dst;
+
+ dstPitch = pScreenInfo->displayWidth;
+ srcPitch = -pRendition->board.rotate * pRendition->board.shadowPitch;
+
+ while(num--) {
+ width = pbox->x2 - pbox->x1;
+ y1 = pbox->y1 & ~3;
+ y2 = (pbox->y2 + 3) & ~3;
+ height = (y2 - y1) >> 2; /* in dwords */
+
+ if(pRendition->board.rotate == 1) {
+ dstPtr = pRendition->board.vmem_base+pRendition->board.fbOffset +
+ (pbox->x1 * dstPitch) + pScreenInfo->virtualX - y2;
+ srcPtr = pRendition->board.shadowPtr + ((1 - y2) * srcPitch) + pbox->x1;
+ } else {
+ dstPtr = pRendition->board.vmem_base+pRendition->board.fbOffset +
+ ((pScreenInfo->virtualY - pbox->x2) * dstPitch) + y1;
+ srcPtr = pRendition->board.shadowPtr + (y1 * srcPitch) + pbox->x2 - 1;
+ }
+
+ while(width--) {
+ src = srcPtr;
+ dst = (CARD32*)dstPtr;
+ count = height;
+ while(count--) {
+ *(dst++) = src[0] | (src[srcPitch] << 8) |
+ (src[srcPitch * 2] << 16) |
+ (src[srcPitch * 3] << 24);
+ src += srcPitch * 4;
+ }
+ srcPtr += pRendition->board.rotate;
+ dstPtr += dstPitch;
+ }
+
+ pbox++;
+ }
+}
+
+
+void
+renditionRefreshArea16(ScrnInfoPtr pScreenInfo, int num, BoxPtr pbox)
+{
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+ int count, width, height, y1, y2, dstPitch, srcPitch;
+ CARD16 *dstPtr, *srcPtr, *src;
+ CARD32 *dst;
+
+ dstPitch = pScreenInfo->displayWidth;
+ srcPitch = -pRendition->board.rotate * pRendition->board.shadowPitch >> 1;
+
+ while(num--) {
+ width = pbox->x2 - pbox->x1;
+ y1 = pbox->y1 & ~1;
+ y2 = (pbox->y2 + 1) & ~1;
+ height = (y2 - y1) >> 1; /* in dwords */
+
+ if(pRendition->board.rotate == 1) {
+ dstPtr = (CARD16*)(pRendition->board.vmem_base+
+ pRendition->board.fbOffset) +
+ (pbox->x1 * dstPitch) + pScreenInfo->virtualX - y2;
+ srcPtr = (CARD16*)pRendition->board.shadowPtr +
+ ((1 - y2) * srcPitch) + pbox->x1;
+ } else {
+ dstPtr = (CARD16*)(pRendition->board.vmem_base+
+ pRendition->board.fbOffset) +
+ ((pScreenInfo->virtualY - pbox->x2) * dstPitch) + y1;
+ srcPtr = (CARD16*)pRendition->board.shadowPtr +
+ (y1 * srcPitch) + pbox->x2 - 1;
+ }
+
+ while(width--) {
+ src = srcPtr;
+ dst = (CARD32*)dstPtr;
+ count = height;
+ while(count--) {
+ *(dst++) = src[0] | (src[srcPitch] << 16);
+ src += srcPitch * 2;
+ }
+ srcPtr += pRendition->board.rotate;
+ dstPtr += dstPitch;
+ }
+
+ pbox++;
+ }
+}
+
+
+/* this one could be faster */
+void
+renditionRefreshArea24(ScrnInfoPtr pScreenInfo, int num, BoxPtr pbox)
+{
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+ int count, width, height, y1, y2, dstPitch, srcPitch;
+ CARD8 *dstPtr, *srcPtr, *src;
+ CARD32 *dst;
+
+ dstPitch = BitmapBytePad(pScreenInfo->displayWidth * 24);
+ srcPitch = -pRendition->board.rotate * pRendition->board.shadowPitch;
+
+ while(num--) {
+ width = pbox->x2 - pbox->x1;
+ y1 = pbox->y1 & ~3;
+ y2 = (pbox->y2 + 3) & ~3;
+ height = (y2 - y1) >> 2; /* blocks of 3 dwords */
+
+ if(pRendition->board.rotate == 1) {
+ dstPtr = pRendition->board.vmem_base+pRendition->board.fbOffset+
+ (pbox->x1 * dstPitch) + ((pScreenInfo->virtualX - y2) * 3);
+ srcPtr = pRendition->board.shadowPtr + ((1 - y2) * srcPitch) +
+ (pbox->x1 * 3);
+ } else {
+ dstPtr = pRendition->board.vmem_base+pRendition->board.fbOffset +
+ ((pScreenInfo->virtualY - pbox->x2) * dstPitch) + (y1 * 3);
+ srcPtr = pRendition->board.shadowPtr + (y1 * srcPitch) +
+ (pbox->x2 * 3) - 3;
+ }
+
+ while(width--) {
+ src = srcPtr;
+ dst = (CARD32*)dstPtr;
+ count = height;
+ while(count--) {
+ dst[0] = src[0] | (src[1] << 8) | (src[2] << 16) |
+ (src[srcPitch] << 24);
+ dst[1] = src[srcPitch + 1] | (src[srcPitch + 2] << 8) |
+ (src[srcPitch * 2] << 16) |
+ (src[(srcPitch * 2) + 1] << 24);
+ dst[2] = src[(srcPitch * 2) + 2] | (src[srcPitch * 3] << 8) |
+ (src[(srcPitch * 3) + 1] << 16) |
+ (src[(srcPitch * 3) + 2] << 24);
+ dst += 3;
+ src += srcPitch * 4;
+ }
+ srcPtr += pRendition->board.rotate * 3;
+ dstPtr += dstPitch;
+ }
+
+ pbox++;
+ }
+}
+
+void
+renditionRefreshArea32(ScrnInfoPtr pScreenInfo, int num, BoxPtr pbox)
+{
+ renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
+ int count, width, height, dstPitch, srcPitch;
+ CARD32 *dstPtr, *srcPtr, *src, *dst;
+
+ dstPitch = pScreenInfo->displayWidth;
+ srcPitch = -pRendition->board.rotate * pRendition->board.shadowPitch >> 2;
+
+ while(num--) {
+ width = pbox->x2 - pbox->x1;
+ height = pbox->y2 - pbox->y1;
+
+ if(pRendition->board.rotate == 1) {
+ dstPtr = (CARD32*)(pRendition->board.vmem_base+
+ pRendition->board.fbOffset) +
+ (pbox->x1 * dstPitch) + pScreenInfo->virtualX - pbox->y2;
+ srcPtr = (CARD32*)pRendition->board.shadowPtr +
+ ((1 - pbox->y2) * srcPitch) + pbox->x1;
+ } else {
+ dstPtr = (CARD32*)(pRendition->board.vmem_base+
+ pRendition->board.fbOffset) +
+ ((pScreenInfo->virtualY - pbox->x2) * dstPitch) + pbox->y1;
+ srcPtr = (CARD32*)pRendition->board.shadowPtr +
+ (pbox->y1 * srcPitch) + pbox->x2 - 1;
+ }
+
+ while(width--) {
+ src = srcPtr;
+ dst = dstPtr;
+ count = height;
+ while(count--) {
+ *(dst++) = *src;
+ src += srcPitch;
+ }
+ srcPtr += pRendition->board.rotate;
+ dstPtr += dstPitch;
+ }
+
+ pbox++;
+ }
+}
+
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.h
new file mode 100644
index 000000000..ec744639f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.h
@@ -0,0 +1,23 @@
+/*
+ * file rendition_shadow.h
+ *
+ * headfile for rendition_shadow.c
+ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/rendition_shadow.h,v 1.1 2000/03/01 00:25:25 dawes Exp $ */
+
+#ifndef __RENDITION_SHADOW_H__
+#define __RENDITION_SHADOW_H__
+
+void renditionRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+void renditionRefreshArea8(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+void renditionRefreshArea16(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+void renditionRefreshArea24(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+void renditionRefreshArea32(ScrnInfoPtr pScrn, int num, BoxPtr pbox);
+void renditionPointerMoved(int index, int x, int y);
+
+
+#endif
+
+/*
+ * end of file rendition_shadow.h
+ */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c
index dc34bfa89..516268691 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c,v 1.4 1999/11/19 13:54:45 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/v1krisc.c,v 1.5 2000/02/25 21:03:03 dawes Exp $ */
/*
*
*/
@@ -104,7 +104,8 @@ static void risc_continue(vu16 io_base);
*
* Start the RISC with its PC set to |pc|.
*/
-void v1k_start(ScrnInfoPtr pScreenInfo, vu32 pc)
+void
+v1k_start(ScrnInfoPtr pScreenInfo, vu32 pc)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 io_base=pRendition->board.io_base;
@@ -126,7 +127,8 @@ void v1k_start(ScrnInfoPtr pScreenInfo, vu32 pc)
*
* Let the RISC do its work.
*/
-void v1k_continue(ScrnInfoPtr pScreenInfo)
+void
+v1k_continue(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -140,7 +142,8 @@ void v1k_continue(ScrnInfoPtr pScreenInfo)
*
* Stop the RISC.
*/
-void v1k_stop(ScrnInfoPtr pScreenInfo)
+void
+v1k_stop(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu8 debugreg, statusreg;
@@ -192,7 +195,8 @@ void v1k_stop(ScrnInfoPtr pScreenInfo)
* Returns with Icache on, also flushes Pixel engine line buffers
* in the Dcache.
*/
-void v1k_flushicache(ScrnInfoPtr pScreenInfo)
+void
+v1k_flushicache(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu32 c, p1, p2;
@@ -240,7 +244,8 @@ void v1k_flushicache(ScrnInfoPtr pScreenInfo)
*
* Soft Reset RISC.
*/
-void v1k_softreset(ScrnInfoPtr pScreenInfo)
+void
+v1k_softreset(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 io_base=pRendition->board.io_base;
@@ -292,7 +297,8 @@ v1k_getriscprocs(v_board_desc *boardDesc)
*
* Loop on IO read until expected data is read or V_MAX_POLLS is reached.
*/
-static void v_iopoll(vu16 port, vu32 data, vu32 mask)
+static void
+v_iopoll(vu16 port, vu32 data, vu32 mask)
{
vu32 c, d;
@@ -311,7 +317,8 @@ static void v_iopoll(vu16 port, vu32 data, vu32 mask)
*
* Loop on IO read until expected data is read or V_MAX_POLLS is reached.
*/
-static void v_iopoll8(vu16 port, vu8 data, vu8 mask)
+static void
+v_iopoll8(vu16 port, vu8 data, vu8 mask)
{
vu32 c;
vu8 d;
@@ -331,7 +338,8 @@ static void v_iopoll8(vu16 port, vu8 data, vu8 mask)
*
* Reads data from register file.
*/
-static vu32 readRF(vu16 io_base, vu8 index)
+static vu32
+readRF(vu16 io_base, vu8 index)
{
vu32 data, instr;
vu8 debug, stateindex;
@@ -368,7 +376,8 @@ static vu32 readRF(vu16 io_base, vu8 index)
*
* Set RF register, being careful on how to set regs below 64.
*/
-static void writeRF(vu16 io_base, vu8 index, vu32 data)
+static void
+writeRF(vu16 io_base, vu8 index, vu32 data)
{
vu8 special=0;
@@ -406,7 +415,8 @@ static void writeRF(vu16 io_base, vu8 index, vu32 data)
*
* NOTE: Assumes RISC is in hold mode.
*/
-static vu32 risc_readmem(vu16 io_base, vu32 addr, vu8 read_type)
+static vu32
+risc_readmem(vu16 io_base, vu32 addr, vu8 read_type)
{
vu32 data;
@@ -433,7 +443,8 @@ static vu32 risc_readmem(vu16 io_base, vu32 addr, vu8 read_type)
*
* NOTE: Assumes RISC is in hold mode.
*/
-static void risc_writemem(vu16 io_base, vu32 addr, vu32 data, vu8 write_type)
+static void
+risc_writemem(vu16 io_base, vu32 addr, vu32 data, vu8 write_type)
{
writeRF(io_base, RISC_RA, addr); /* point to memory */
writeRF(io_base, RISC_FP, data); /* set data */
@@ -452,7 +463,8 @@ static void risc_writemem(vu16 io_base, vu32 addr, vu32 data, vu8 write_type)
*
* Single step the RISC. NOTE: Do not force instruction into RISCIR!
*/
-static void risc_step(vu16 io_base, vu32 count)
+static void
+risc_step(vu16 io_base, vu32 count)
{
vu32 c, d;
vu8 debugreg;
@@ -479,7 +491,8 @@ static void risc_step(vu16 io_base, vu32 count)
*
* Single step RISC; force instruction; assumes RISC held.
*/
-static void risc_forcestep(vu16 io_base, vu32 instruction)
+static void
+risc_forcestep(vu16 io_base, vu32 instruction)
{
vu32 c;
vu8 debugreg, stateindex;
@@ -509,7 +522,8 @@ static void risc_forcestep(vu16 io_base, vu32 instruction)
*
* Turn off hold bit.
*/
-static void risc_continue(vu16 io_base)
+static void
+risc_continue(vu16 io_base)
{
vu8 debugreg;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c
index 6b08f6e60..94676049f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c,v 1.8 1999/12/14 03:12:10 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.c,v 1.9 2000/02/25 21:03:03 dawes Exp $ */
/*
* includes
*/
@@ -17,6 +17,12 @@
#include "cscode.h"
+#if 0
+/* Global imported during compile-time */
+char MICROCODE_DIR [PATH_MAX] = MODULEDIR;
+#endif
+
+
/*
* local function prototypes
*/
@@ -25,7 +31,8 @@
/*
* functions
*/
-int v_initboard(ScrnInfoPtr pScreenInfo)
+int
+v_initboard(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -34,13 +41,13 @@ int v_initboard(ScrnInfoPtr pScreenInfo)
vu32 offset;
vu8 memendian;
int c,pc;
-
+
/* write "monitor" program to memory */
v1k_stop(pScreenInfo);
pRendition->board.csucode_base=0x800;
memendian=v_in8(iob+MEMENDIAN);
v_out8(iob+MEMENDIAN, MEMENDIAN_NO);
-
+
/* Note that CS ucode must wait on address in csucode_base
* when initialized for later context switch code to work. */
@@ -76,18 +83,35 @@ int v_initboard(ScrnInfoPtr pScreenInfo)
ErrorF ("RENDITION: V_INITBOARD -- PC != CSUCODEBASE\n");
ErrorF ("RENDITION: PC == 0x%x -- CSU == 0x%x\n",pc,pRendition->board.csucode_base);
}
-
+
/* reset memory endian */
v_out8(iob+MEMENDIAN, memendian);
- /* upload the u-code here */
+#if 0
+ if (V1000_DEVICE == pRendition->board.chip){
+ c=v_load_ucfile(pScreenInfo, xf86strcat ((char *)MICROCODE_DIR,"v10002d.uc"));
+ }
+ else {
+ /* V2x00 chip */
+ c=v_load_ucfile(pScreenInfo, xf86strcat ((char *)MICROCODE_DIR,"v20002d.uc"));
+ }
+
+ if (c == -1) {
+ ErrorF( "RENDITION: Microcode loading failed !!!\n");
+ return 1;
+ }
+
+ pRendition->board.ucode_entry=c;
+ ErrorF("UCode_Entry == 0x%x\n",pRendition->board.ucode_entry);
+#endif
/* Everything's OK */
return 0;
}
-int v_resetboard(ScrnInfoPtr pScreenInfo)
+int
+v_resetboard(ScrnInfoPtr pScreenInfo)
{
/*
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -98,7 +122,8 @@ int v_resetboard(ScrnInfoPtr pScreenInfo)
-int v_getmemorysize(ScrnInfoPtr pScreenInfo)
+int
+v_getmemorysize(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h
index 4788e70a2..ea880fe6b 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h
@@ -1,4 +1,5 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h,v 1.4 1999/12/14 03:12:10 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vboard.h,v 1.5 2000/02/25 21:03:04 dawes Exp $ */
+
/*
* vboard.h
*
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c
index a95cd8770..ec03fa1d0 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c,v 1.9 2000/01/18 16:35:52 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vloaduc.c,v 1.10 2000/02/25 21:03:04 dawes Exp $ */
/*
* includes
*/
@@ -10,6 +10,7 @@
#include "vos.h"
#include "elf.h"
+
/*
* defines
*/
@@ -29,8 +30,10 @@
/*
* local function prototypes
*/
-void loadSection2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Shdr *shdr);
-void loadSegment2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Phdr *phdr);
+static void loadSection2board(ScrnInfoPtr pScreenInfo, int fd,
+ Elf32_Shdr *shdr);
+static void loadSegment2board(ScrnInfoPtr pScreenInfo, int fd,
+ Elf32_Phdr *phdr);
static int seek_and_read_hdr(int fd, void *ptr, long int offset,
int size, int cnt);
static void mmve(ScrnInfoPtr pScreenInfo, vu32 size, vu8 *data, vu32 phys_addr);
@@ -49,7 +52,8 @@ static void mmve(ScrnInfoPtr pScreenInfo, vu32 size, vu8 *data, vu32 phys_addr);
*
* Returns the program's entry point, on error -1;
*/
-int v_load_ucfile(ScrnInfoPtr pScreenInfo, char *file_name)
+int
+v_load_ucfile(ScrnInfoPtr pScreenInfo, char *file_name)
{
/* renditionPtr pRendition = RENDITIONPTR(pScreenInfo); */
@@ -60,7 +64,7 @@ int v_load_ucfile(ScrnInfoPtr pScreenInfo, char *file_name)
Elf32_Shdr *pshdr, *orig_pshdr=NULL;
Elf32_Ehdr ehdr ;
-#ifdef DEBUG
+#if 1 /* DEBUG */
ErrorF("RENDITION: Loading microcode %s\n", file_name);
#endif
@@ -85,7 +89,6 @@ int v_load_ucfile(ScrnInfoPtr pScreenInfo, char *file_name)
/* read in the program header(s) */
sz=SW16(ehdr.e_phentsize);
num=SW16(ehdr.e_phnum);
-
if (0!=sz && 0!=num) {
orig_pphdr=pphdr=(Elf32_Phdr *)xalloc(sz*num);
if (!pphdr) {
@@ -155,7 +158,8 @@ int v_load_ucfile(ScrnInfoPtr pScreenInfo, char *file_name)
* local functions
*/
-void loadSection2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Shdr *shdr)
+static void
+loadSection2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Shdr *shdr)
{
/* renditionPtr pRendition = RENDITIONPTR(pScreenInfo); */
ErrorF("vlib: loadSection2board not implemented yet!\n");
@@ -163,7 +167,8 @@ void loadSection2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Shdr *shdr)
-void loadSegment2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Phdr *phdr)
+static void
+loadSegment2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Phdr *phdr)
{
/* renditionPtr pRendition = RENDITIONPTR(pScreenInfo); */
vu8 *data;
@@ -194,7 +199,8 @@ void loadSegment2board(ScrnInfoPtr pScreenInfo, int fd, Elf32_Phdr *phdr)
-static int seek_and_read_hdr(int fd, void *ptr, long int offset, int size,
+static int
+seek_and_read_hdr(int fd, void *ptr, long int offset, int size,
int cnt)
{
if (lseek(fd, offset, SEEK_SET) != offset)
@@ -208,7 +214,8 @@ static int seek_and_read_hdr(int fd, void *ptr, long int offset, int size,
-static void mmve(ScrnInfoPtr pScreenInfo, vu32 size, vu8 *data, vu32 phys_addr)
+static void
+mmve(ScrnInfoPtr pScreenInfo, vu32 size, vu8 *data, vu32 phys_addr)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu8 memend;
@@ -226,8 +233,8 @@ static void mmve(ScrnInfoPtr pScreenInfo, vu32 size, vu8 *data, vu32 phys_addr)
while (size > 0) {
v_write_memory32(vmb, phys_addr, *dataout);
- phys_addr+=4;
- dataout++;
+ phys_addr+=4;
+ dataout++;
size-=4;
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c
index 774200b9e..ffc3861e7 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c
@@ -1,22 +1,35 @@
/* Misc routines used elsewhere in driver */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c,v 1.2 1999/11/19 14:59:18 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vmisc.c,v 1.3 2000/02/25 21:03:05 dawes Exp $ */
#include "rendition.h"
#include "vtypes.h"
#include "vos.h"
#include "vmisc.h"
+#undef DEBUG
+
/* block copy from and to the card */
-void v_bustomem_cpy(vu8 *dst, vu8 *src, vu32 num)
+void
+v_bustomem_cpy(vu8 *dst, vu8 *src, vu32 num)
{
int i;
+
+#ifdef DEBUG
+ ErrorF ("Rendition: DEBUG v_bustomem_cpy called\n");
+#endif
for (i=0; i<num; i++)
dst[i] = v_read_memory8(src, i);
}
-void v_memtobus_cpy(vu8 *dst, vu8 *src, vu32 num)
+void
+v_memtobus_cpy(vu8 *dst, vu8 *src, vu32 num)
{
int i;
+
+#ifdef DEBUG
+ ErrorF ("Rendition: DEBUG v_memtobus_cpy called\n");
+#endif
+
for (i=0; i<num; i++)
v_write_memory8(dst, i, src[i]);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c
index 9b39ac0af..2e4e8dded 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c
@@ -1,12 +1,10 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c,v 1.6 1999/11/19 13:54:47 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vmodes.c,v 1.7 2000/02/25 21:03:05 dawes Exp $ */
/*
* file vmodes.c
*
* Routines that handle mode setting.
*/
-
-
/*
* includes
*/
@@ -20,6 +18,10 @@
#include "v2kregs.h"
#include "vvga.h"
+
+#undef DEBUG
+
+
/* Options data */
#include "rendition_options.h"
extern OptionInfoRec renditionOptions[];
@@ -202,13 +204,18 @@ static double V2200CalcClock(double target, int *m, int *n, int *p);
* functions
*/
-int v_setmodefixed(ScrnInfoPtr pScreenInfo)
+int
+v_setmodefixed(ScrnInfoPtr pScreenInfo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
int iob=pRendition->board.io_base;
int tmp;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_setmodefixed called\n");
+#endif
+
#ifdef SAVEVGA
v_savetextmode(pRendition->board);
#endif
@@ -247,7 +254,8 @@ int v_setmodefixed(ScrnInfoPtr pScreenInfo)
pRendition->board.mode.fifosize=128;
pRendition->board.init=1;
- v_setframebase(pScreenInfo, 0);
+ (*pScreenInfo->AdjustFrame)(pScreenInfo->scrnIndex,
+ pScreenInfo->frameX0, pScreenInfo->frameY0, 0);
v_out32(iob+CRTCCTL, CTL(0, 0, 0)
|V_PIXFMT_565
@@ -261,7 +269,8 @@ int v_setmodefixed(ScrnInfoPtr pScreenInfo)
-int v_setmode(ScrnInfoPtr pScreenInfo, struct v_modeinfo_t *mode)
+int
+v_setmode(ScrnInfoPtr pScreenInfo, struct v_modeinfo_t *mode)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -269,6 +278,10 @@ int v_setmode(ScrnInfoPtr pScreenInfo, struct v_modeinfo_t *mode)
int doubleclock=0;
int M, N, P;
int iob=pRendition->board.io_base;
+
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_setmode called\n");
+#endif
/* switching to native mode */
v_out8(iob+MODEREG, NATIVE_MODE|VESA_MODE);
@@ -344,7 +357,8 @@ int v_setmode(ScrnInfoPtr pScreenInfo, struct v_modeinfo_t *mode)
pRendition->board.mode.virtualwidth=pRendition->board.mode.screenwidth;
pRendition->board.init=1;
- v_setframebase(pScreenInfo, 0);
+ (*pScreenInfo->AdjustFrame)(pScreenInfo->scrnIndex,
+ pScreenInfo->frameX0, pScreenInfo->frameY0, 0);
/* Need to fix up syncs */
@@ -356,14 +370,18 @@ int v_setmode(ScrnInfoPtr pScreenInfo, struct v_modeinfo_t *mode)
|CRTCCTL_VSYNCENABLE
|CRTCCTL_VIDEOENABLE);
+#ifdef DEBUG
ErrorF ("Interlace mode -> %d\n", mode->flags);
+ xf86sleep(10);ErrorF ("...Exit SetMode...\n");
+#endif
return 0;
}
-void v_setframebase(ScrnInfoPtr pScreenInfo, vu32 framebase)
+void
+v_setframebase(ScrnInfoPtr pScreenInfo, vu32 framebase)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -376,7 +394,7 @@ void v_setframebase(ScrnInfoPtr pScreenInfo, vu32 framebase)
int fifo_size=pRendition->board.mode.fifosize;
#ifdef DEBUG
- ErrorF( "w=%d v=%d b=%d f=%d\n",
+ ErrorF( "Rendition: Debug v_setframebase w=%d v=%d b=%d f=%d\n",
swidth, vwidth, bytespp, fifo_size);
#endif
@@ -412,7 +430,8 @@ void v_setframebase(ScrnInfoPtr pScreenInfo, vu32 framebase)
-int v_getstride(ScrnInfoPtr pScreenInfo, int *width, vu16 *stride0, vu16 *stride1)
+int
+v_getstride(ScrnInfoPtr pScreenInfo, int *width, vu16 *stride0, vu16 *stride1)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
int bytesperline;
@@ -449,7 +468,8 @@ int v_getstride(ScrnInfoPtr pScreenInfo, int *width, vu16 *stride0, vu16 *stride
*
* Set PLL clock to desired frequency for the V1000.
*/
-void set_PLL(vu16 iob, vu32 value)
+void
+set_PLL(vu16 iob, vu32 value)
{
vu32 ulD;
int b;
@@ -474,7 +494,8 @@ void set_PLL(vu16 iob, vu32 value)
* of a second and the function is only called
* O(1) times during program execution.
*/
-static double V1000CalcClock(double target, int *M, int *N, int *P)
+static double
+V1000CalcClock(double target, int *M, int *N, int *P)
{
double mindiff = 1e10;
double vco, pcf, diff, freq;
@@ -514,7 +535,8 @@ static double V1000CalcClock(double target, int *M, int *N, int *P)
-static double V2200CalcClock(double target, int *m, int *n, int *p)
+static double
+V2200CalcClock(double target, int *m, int *n, int *p)
{
double mindiff = 1e10;
double vco, pcf, diff, freq;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h
index 7f4002a19..54ecfc12f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h,v 1.6 1999/12/03 19:17:34 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vos.h,v 1.7 2000/02/25 21:03:06 dawes Exp $ */
/*
* file vos.h
*
@@ -46,7 +46,6 @@
#define v_write_memory8(base, offset, data) MMIO_OUT8(base, offset, data)
/* the rest of it */
-
void v_enableio(void);
void v_disableio(void);
vu8 *v_mapmemory(vu8 *membase, vu32 size);
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c
index fcb18240c..57016e5f6 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c,v 1.8 2000/01/18 16:35:53 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.c,v 1.9 2000/02/25 21:03:06 dawes Exp $ */
/*
* includes
*/
@@ -13,6 +13,8 @@
* defines
*/
+#undef DEBUG
+
/* directly accessable RAMDAC registers */
#define BT485_WRITE_ADDR 0x00
#define BT485_RAMDAC_DATA 0x01
@@ -115,12 +117,17 @@ int Cursor_size=0;
* the corresponding field in the v_board_t struct is set), the clock doubling
* is turned on.
*/
-int v_initdac(ScrnInfoPtr pScreenInfo, vu8 bpp, vu8 doubleclock)
+int
+v_initdac(ScrnInfoPtr pScreenInfo, vu8 bpp, vu8 doubleclock)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob=pRendition->board.io_base+RAMDACBASEADDR;
vu8 cmd3_data=0;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_initdac called\n");
+#endif
+
if (doubleclock)
cmd3_data|=BT485_CLOCK_DOUBLER;
@@ -133,8 +140,7 @@ int v_initdac(ScrnInfoPtr pScreenInfo, vu8 bpp, vu8 doubleclock)
case 8:
v_out8(iob+BT485_COMMAND_REG_0, BT485_CR0_EXTENDED_REG_ACCESS |
- BT485_CR0_8_BIT_DAC);
-
+ BT485_CR0_8_BIT_DAC);
v_out8(iob+BT485_COMMAND_REG_1, BT485_CR1_8BPP |
BT485_CR1_PIXEL_PORT_AB);
v_out8(iob+BT485_COMMAND_REG_2, BT485_PIXEL_INPUT_GATE |
@@ -202,7 +208,8 @@ int v_initdac(ScrnInfoPtr pScreenInfo, vu8 bpp, vu8 doubleclock)
* or X-window-like cursor. Valid values are defined in vramdac.h.
*
*/
-void v_enablecursor(ScrnInfoPtr pScreenInfo, int type, int size)
+void
+v_enablecursor(ScrnInfoPtr pScreenInfo, int type, int size)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
@@ -213,6 +220,10 @@ void v_enablecursor(ScrnInfoPtr pScreenInfo, int type, int size)
vu16 iob=pRendition->board.io_base+RAMDACBASEADDR;
#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_enablecursor called type=0x%x\n",type);
+#endif
+
+#if 0
/* ensure proper ranges */
size=1; /* Enforce 64x64 Cursor */
#endif
@@ -226,6 +237,11 @@ void v_enablecursor(ScrnInfoPtr pScreenInfo, int type, int size)
if (type)
Cursor_size=(size ? 64 : 32);
+
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_enablecursor Exit\n");
+#endif
+
}
@@ -238,7 +254,8 @@ void v_enablecursor(ScrnInfoPtr pScreenInfo, int type, int size)
* this routine with x=0x0 and y=0x0.
*
*/
-void v_movecursor(ScrnInfoPtr pScreenInfo, vu16 x, vu16 y, vu8 xo, vu8 yo)
+void
+v_movecursor(ScrnInfoPtr pScreenInfo, vu16 x, vu16 y, vu8 xo, vu8 yo)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob=pRendition->board.io_base+RAMDACBASEADDR;
@@ -255,32 +272,43 @@ void v_movecursor(ScrnInfoPtr pScreenInfo, vu16 x, vu16 y, vu8 xo, vu8 yo)
/*
- * void v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 fg, vu32 bg)
+ * void v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 bg, vu32 fg)
*
* Sets the color of the cursor -- should be revised for use with 3 colors!
*
*/
-void v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 fg, vu32 bg)
+void
+v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 fg, vu32 bg)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob=pRendition->board.io_base+RAMDACBASEADDR;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_setcursorcolor called FG=0x%x BG=0x%x\n",
+ fg,bg);
+#endif
+
v_out8(iob+BT485_CURS_WR_ADDR, 0x00);
+
/* load the cursor color 0 */
- v_out8(iob+BT485_CURS_DATA, bg&0xff);
- v_out8(iob+BT485_CURS_DATA, (bg>>8)&0xff);
- v_out8(iob+BT485_CURS_DATA, (bg>>16)&0xff);
+ v_out8(iob+BT485_CURS_DATA, 0x00);
+ v_out8(iob+BT485_CURS_DATA, 0x00);
+ v_out8(iob+BT485_CURS_DATA, 0x00);
/* load the cursor color 1 */
- v_out8(iob+BT485_CURS_DATA, fg&0xff);
- v_out8(iob+BT485_CURS_DATA, (fg>>8)&0xff);
v_out8(iob+BT485_CURS_DATA, (fg>>16)&0xff);
+ v_out8(iob+BT485_CURS_DATA, (fg>>8)&0xff);
+ v_out8(iob+BT485_CURS_DATA, fg&0xff);
- /* load the cursor color 2 (not used) */
+ /* load the cursor color 2 */
v_out8(iob+BT485_CURS_DATA, 0x00);
v_out8(iob+BT485_CURS_DATA, 0x00);
v_out8(iob+BT485_CURS_DATA, 0x00);
+ /* load the cursor color 3 */
+ v_out8(iob+BT485_CURS_DATA, (bg>>16)&0xff);
+ v_out8(iob+BT485_CURS_DATA, (bg>>8)&0xff);
+ v_out8(iob+BT485_CURS_DATA, bg&0xff);
}
@@ -290,7 +318,8 @@ void v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 fg, vu32 bg)
* But for now I'm happy it works ;) <ml>
*
*/
-void v_loadcursor(ScrnInfoPtr pScreenInfo, vu8 size, vu8 *cursorimage)
+void
+v_loadcursor(ScrnInfoPtr pScreenInfo, vu8 size, vu8 *cursorimage)
{
int c, bytes, row;
vu8 *src = cursorimage;
@@ -299,6 +328,10 @@ void v_loadcursor(ScrnInfoPtr pScreenInfo, vu8 size, vu8 *cursorimage)
vu8 tmp;
vu8 memend; /* Added for byte-swap fix */
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_loadcursor called\n");
+#endif
+
if (NULL == cursorimage)
return;
@@ -311,7 +344,7 @@ void v_loadcursor(ScrnInfoPtr pScreenInfo, vu8 size, vu8 *cursorimage)
bytes=64;
else
bytes=32;
- bytes=(bytes*bytes)/8;
+ bytes=(bytes*bytes)>>3;
if (pRendition->board.chip == V1000_DEVICE) {
/* now load the cursor data into the cursor ram */
@@ -358,23 +391,28 @@ void v_loadcursor(ScrnInfoPtr pScreenInfo, vu8 size, vu8 *cursorimage)
(c&1)?(*(src-2)):(*(src+2)));
}
-#ifdef DEBUG
/* Following line added for the byte-swap fix */
v_out8(pRendition->board.io_base + MEMENDIAN, memend);
-#endif
}
/* NOTE: count is the actual number of colors decremented by 1 */
-void v_setpalette(ScrnInfoPtr pScreenInfo, vu8 start, vu8 count, vu8 *table)
+void
+v_setpalette(ScrnInfoPtr pScreenInfo, int numColors, int *indices,
+ LOCO *colors, VisualPtr pVisual)
{
renditionPtr pRendition = RENDITIONPTR(pScreenInfo);
vu16 iob=pRendition->board.io_base;
vu32 crtc_status;
+ int i, index;
int c;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_setpalette called\n");
+#endif
+
while (1) {
crtc_status=v_in32(iob+CRTCSTATUS);
if (crtc_status & CRTCSTATUS_VERT_SYNC)
@@ -383,16 +421,17 @@ void v_setpalette(ScrnInfoPtr pScreenInfo, vu8 start, vu8 count, vu8 *table)
iob+=RAMDACBASEADDR;
- if (((int)start+count) > 255)
- count=255-start;
-
- v_out8(iob+BT485_WRITE_ADDR, start);
+ for (i = 0; i < numColors; i++) {
+ index = indices[i];
+ v_out8(iob+BT485_WRITE_ADDR, index);
- for (c=0; c<=count; c++) {
- v_out8(iob+BT485_RAMDAC_DATA, *table++);
- v_out8(iob+BT485_RAMDAC_DATA, *table++);
- v_out8(iob+BT485_RAMDAC_DATA, *table++);
+ v_out8(iob+BT485_RAMDAC_DATA, colors[index].red);
+ v_out8(iob+BT485_RAMDAC_DATA, colors[index].green);
+ v_out8(iob+BT485_RAMDAC_DATA, colors[index].blue);
}
+
+
+
}
@@ -407,7 +446,8 @@ void v_setpalette(ScrnInfoPtr pScreenInfo, vu8 start, vu8 count, vu8 *table)
*
*
*/
-static void Bt485_write_masked(vu16 port, vu8 reg, vu8 mask, vu8 data)
+static void
+Bt485_write_masked(vu16 port, vu8 reg, vu8 mask, vu8 data)
{
vu8 tmp;
@@ -422,7 +462,8 @@ static void Bt485_write_masked(vu16 port, vu8 reg, vu8 mask, vu8 data)
*
*
*/
-static void Bt485_write_cmd3_masked(vu16 port, vu8 mask, vu8 data)
+static void
+Bt485_write_cmd3_masked(vu16 port, vu8 mask, vu8 data)
{
/*
Bt485_write_masked(port, BT485_COMMAND_REG_0, 0x7f, 0x80);
@@ -441,7 +482,8 @@ static void Bt485_write_cmd3_masked(vu16 port, vu8 mask, vu8 data)
*
*
*/
-static vu8 Bt485_read_masked(vu16 port, vu8 reg, vu8 mask)
+static vu8
+Bt485_read_masked(vu16 port, vu8 reg, vu8 mask)
{
return v_in8(port+reg)&mask;
}
@@ -453,7 +495,8 @@ static vu8 Bt485_read_masked(vu16 port, vu8 reg, vu8 mask)
*
*
*/
-static vu8 Bt485_read_cmd3_masked(vu16 port, vu8 mask)
+static vu8
+Bt485_read_cmd3_masked(vu16 port, vu8 mask)
{
vu8 value;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h
index ce47c02d0..2bcc91d91 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h,v 1.3 1999/10/13 04:21:24 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vramdac.h,v 1.4 2000/02/25 21:03:07 dawes Exp $ */
/*
* file vramdac.h
*
@@ -39,9 +39,10 @@
int v_initdac(ScrnInfoPtr pScreenInfo, vu8 bpp, vu8 doubleclock);
void v_enablecursor(ScrnInfoPtr pScreenInfo, int type, int size);
void v_movecursor(ScrnInfoPtr pScreenInfo, vu16 x, vu16 y, vu8 xo, vu8 yo);
-void v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 fg, vu32 bg);
+void v_setcursorcolor(ScrnInfoPtr pScreenInfo, vu32 bg, vu32 fg);
void v_loadcursor(ScrnInfoPtr pScreenInfo, vu8 type, vu8 *cursorimage);
-void v_setpalette(ScrnInfoPtr pScreenInfo, vu8 start, vu8 count, vu8 *table);
+void v_setpalette(ScrnInfoPtr pScreenInfo, int numColors, int *indices,
+ LOCO *colors, VisualPtr pVisual);
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h
index 4ffe43091..ec47a4a27 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h,v 1.4 1999/11/19 13:54:47 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vtypes.h,v 1.5 2000/03/01 00:25:25 dawes Exp $ */
#ifndef _VTYPES_H_
#define _VTYPES_H_
@@ -142,6 +142,13 @@ struct v_board_t {
vu32 fbOffset; /* Currently busy fb-memory marker */
Bool overclock_mem; /* Memory overclock ? */
+ Bool shadowfb; /* Use ShadowFB ? */
+ vu8 *shadowPtr;
+ vu32 shadowPitch;
+ void (*PointerMoved)(int index, int x, int y);
+
+ int rotate; /* Rotate clockwise or counterclockwise */
+
vu8 ucode_buffer[MC_SIZE]; /* Space for microcode, when not needed */
};
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c
index f358cf401..b3368c158 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c
@@ -1,12 +1,10 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c,v 1.7 1999/11/19 13:54:48 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/rendition/vvga.c,v 1.8 2000/02/25 21:03:07 dawes Exp $ */
/*
* file vvga.c
*
* Functions that handle the generic vga part of the Verite chips.
*/
-
-
/*
* includes
*/
@@ -18,6 +16,8 @@
#include "v1kregs.h"
#include "v2kregs.h"
+#undef DEBUG
+
void set_PLL(vu16, vu32);
/*
@@ -45,7 +45,8 @@ static void updattr(vu8 index, vu8 value);
* functions
*/
-void v_resetvga(void)
+void
+v_resetvga(void)
{
static struct VIDEO_REGS {
vu8 seq[8]; /* sequencer regs */
@@ -72,6 +73,10 @@ void v_resetvga(void)
};
int c;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_resetvga called\n");
+#endif
+
/* set attribute controller */
for (c=0; c<0x15; c++)
updattr(c, mode3.attr[c]);
@@ -92,7 +97,8 @@ void v_resetvga(void)
-void v_loadvgafont(void)
+void
+v_loadvgafont(void)
{
int c;
vu8 b;
@@ -101,6 +107,10 @@ void v_loadvgafont(void)
vu8 *vbase;
int fbFlags;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_loadvgafont called\n");
+#endif
+
/* Assert synchroneous reset while setting the clock mode */
setvgareg(0x3c4, 0, 1); /* assert synchronous reset */
v_out8(0x3c2, 0x67); /* select clock */
@@ -142,11 +152,16 @@ void v_loadvgafont(void)
-void v_textmode(struct v_board_t *board)
+void
+v_textmode(struct v_board_t *board)
{
vu16 iob=board->io_base;
int tmp;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_textmode called\n");
+#endif
+
/* dac */
v_out8(iob+DACCOMMAND0, 0x80); /* 6 bit op, enable extended */
v_out8(iob+DACCOMMAND1, 0x68); /* disable palette bypass */
@@ -207,11 +222,16 @@ void v_textmode(struct v_board_t *board)
-void v_savetextmode(struct v_board_t *board)
+void
+v_savetextmode(struct v_board_t *board)
{
vu8 *vbase;
int fbFlags;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_savetextmode called\n");
+#endif
+
/* save the cursor position */
board->cursor_hi=getvgareg(0x3d4, 0xe);
board->cursor_low=getvgareg(0x3d4, 0xf);
@@ -231,11 +251,16 @@ void v_savetextmode(struct v_board_t *board)
-void v_restoretextmode(struct v_board_t *board)
+void
+v_restoretextmode(struct v_board_t *board)
{
vu8 *vbase;
int fbFlags;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_restoretextmode called\n");
+#endif
+
/* restore the cursor position */
setvgareg(0x3d4, 0xe, board->cursor_hi);
setvgareg(0x3d4, 0xf, board->cursor_low);
@@ -255,11 +280,16 @@ void v_restoretextmode(struct v_board_t *board)
-void v_restorepalette(void)
+void
+v_restorepalette(void)
{
int c;
vu8 *pal=vga_pal;
+#ifdef DEBUG
+ ErrorF ("Rendition: Debug v_restorepalette called\n");
+#endif
+
v_out8(0x3c8, 0);
for (c=0; c<768; c++)
v_out8(0x3c9, *pal++);
@@ -276,7 +306,8 @@ void v_restorepalette(void)
*
* Reads in a vga register.
*/
-static vu8 getvgareg(vu16 port, vu8 index)
+static vu8
+getvgareg(vu16 port, vu8 index)
{
v_out8(port, index);
return v_in8(port+1);
@@ -289,7 +320,8 @@ static vu8 getvgareg(vu16 port, vu8 index)
*
* Sets a vga register.
*/
-static void setvgareg(vu16 port, vu8 index, vu8 value)
+static void
+setvgareg(vu16 port, vu8 index, vu8 value)
{
v_out8(port, index);
v_out8(port+1, value);
@@ -302,7 +334,8 @@ static void setvgareg(vu16 port, vu8 index, vu8 value)
*
* Used to write the attribute controller registers.
*/
-static void updattr(vu8 index, vu8 value)
+static void
+updattr(vu8 index, vu8 value)
{
v_in8(0x3da); /* points to index register for color adapter */
v_in8(0x3ba); /* points to index register for mono */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/README b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/README
index ae754b4e6..7ef54b4fb 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/README
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/README
@@ -1,6 +1,7 @@
What works:
-- Supports 8bpp, 15/16bpp, 24bpp and 32bpp. Tested on ViRGE DX
+- Supports 8bpp, 15/16bpp, 24bpp and 32bpp. Heavy testing on ViRGE DX.
+- There is some known instability in ViRGE GX2, please report problems.
XCONFIG options:
@@ -16,12 +17,20 @@ Cursor:
- "swcursor" will disable the HW Cursor. HW Cursor is used by default and
no option is needed to enable it.
+Display:
+- "ShadowFB" Use shadow framebuffer. Disables HW acceleration. Default: off.
+- "Rotate" " cw "|" ccw " Rotate the screen CW - clockwise or CCW - counter
+ clockwise. Disables HW Acceleration and HW Cursor, uses ShadowFB.
+ Default: no rotation.
+
Video memory:
- "slow_edodram" will switch the standard ViRGE to 2-cycle edo mode. Try this
if you encounter pixel corruption on the ViRGE. Using this option will
cause a large decrease in performance.
- "fpm_vram" will switch the ViRGE/VX to fast page mode vram mode
+- "slow_dram " | " fast_dram" Change Trio 3D and 3D/2X memory options.
+ Default: Use BIOS defaults.
- "early_ras_precharge", "late_ras_precharge" adjust memory parameters. One
of these will us the same settings as your video card defaults, and
using neither in the config file does the same.
@@ -29,6 +38,8 @@ Video memory:
Option "set_mclk" "50000"
in the XF86Config file. Valid values are any
integer <= 100000, where 100000 == 100 MHz.
+- "set_refclk" sets the ref clock for ViRGE MX, format is:
+ Option "set_refclk" "50000"
Acceleration and graphic engine:
@@ -66,5 +77,9 @@ ViRGE MX LCD options:
Option "set_lcdclk" "30000"
in the config file. Valid values are ?
+Debug:
+- "ShowCache" Enable or disable viewing offscreen cache memory. A
+ development debug option. Default: off.
+
-$XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/README,v 1.7 1999/04/04 08:46:16 dawes Exp $
+$XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/README,v 1.8 2000/03/05 16:59:15 dawes Exp $
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c
index 2a99b9ea2..09fa19ea0 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c,v 1.17 2000/02/14 19:20:50 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_accel.c,v 1.18 2000/03/06 22:59:27 dawes Exp $ */
/*
Copyright (C) 1994-1999 The XFree86 Project, Inc. All Rights Reserved.
@@ -146,8 +146,9 @@ S3VAccelInit(ScreenPtr pScreen)
infoPtr->ImageWriteFlags = ROP_NEEDS_SOURCE |
NO_TRANSPARENCY |
CPU_TRANSFER_PAD_DWORD |
- SCANLINE_PAD_DWORD |
- LEFT_EDGE_CLIPPING;
+ SCANLINE_PAD_DWORD |
+ NO_GXCOPY | /* added - kjb */
+ LEFT_EDGE_CLIPPING;
infoPtr->ImageWriteRange = 0x8000;
infoPtr->ImageWriteBase = ps3v->MapBaseDense;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c
index cd0bbc55f..59589c176 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c
@@ -1,4 +1,29 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c,v 1.4 1999/07/18 08:14:33 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_dga.c,v 1.5 2000/03/06 22:59:27 dawes Exp $ */
+
+/*
+Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
+*/
/*
* file: s3v_dga.c
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c
index 2dad3bea4..e13f4e0c6 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c,v 1.49 2000/02/15 18:01:13 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_driver.c,v 1.54 2000/03/06 22:59:29 dawes Exp $ */
/*
Copyright (C) 1994-1999 The XFree86 Project, Inc. All Rights Reserved.
@@ -121,9 +121,9 @@ static int pix24bpp = 0;
#define S3VIRGE_NAME "S3VIRGE"
#define S3VIRGE_DRIVER_NAME "s3virge"
-#define S3VIRGE_VERSION_NAME "0.11.0"
-#define S3VIRGE_VERSION_MAJOR 0
-#define S3VIRGE_VERSION_MINOR 11
+#define S3VIRGE_VERSION_NAME "1.0.0"
+#define S3VIRGE_VERSION_MAJOR 1
+#define S3VIRGE_VERSION_MINOR 0
#define S3VIRGE_PATCHLEVEL 0
#define S3VIRGE_DRIVER_VERSION ((S3VIRGE_VERSION_MAJOR << 24) | \
(S3VIRGE_VERSION_MINOR << 16) | \
@@ -501,9 +501,6 @@ S3VProbe(DriverPtr drv, int flags)
PVERB5(" S3VProbe begin\n");
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
if ((numDevSections = xf86MatchDevice(S3VIRGE_DRIVER_NAME,
&devSections)) <= 0) {
/*
@@ -527,10 +524,9 @@ S3VProbe(DriverPtr drv, int flags)
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
/* Allocate a ScrnInfoRec and claim the slot */
ScrnInfoPtr pScrn = xf86AllocateScreen(drv, 0);
@@ -577,6 +573,8 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags)
vgaHWPtr hwp;
int vgaCRIndex, vgaCRReg, vgaIOBase;
+
+ if (flags & PROBE_DETECT) return FALSE;
PVERB5(" S3VPreInit 1\n");
@@ -803,7 +801,7 @@ S3VPreInit(ScrnInfoPtr pScrn, int flags)
if (xf86GetOptValFreq(S3VOptions, OPTION_REFCLK, OPTUNITS_MHZ, &real)) {
ps3v->REFCLK = (int)(real * 1000.0);
- xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Option: set_mclk set to %1.3f Mhz\n",
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Option: set_refclk set to %1.3f Mhz\n",
ps3v->REFCLK / 1000.0 );
} else
ps3v->REFCLK = 0;
@@ -2452,7 +2450,7 @@ S3VScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n) {
xf86XVScreenInit(pScreen, ptr, n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c
index 2d91e65e0..e039c6ecf 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c
@@ -1,4 +1,29 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c,v 1.2 2000/01/21 02:30:01 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_i2c.c,v 1.3 2000/03/06 22:59:29 dawes Exp $ */
+
+/*
+Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
+*/
#include "xf86.h"
#include "xf86_OSproc.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c
index 6aeb4ddbb..82324ed88 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c
@@ -1,4 +1,29 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c,v 1.1 2000/02/08 13:13:20 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3v_shadow.c,v 1.2 2000/03/06 22:59:30 dawes Exp $ */
+
+/*
+Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FIT-
+NESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+Except as contained in this notice, the name of the XFree86 Project shall not
+be used in advertising or otherwise to promote the sale, use or other dealings
+in this Software without prior written authorization from the XFree86 Project.
+*/
/*
Copyright (c) 1999,2000 The XFree86 Project Inc.
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp
index 44ba44e9f..4e801b592 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp,v 1.4 1999/08/22 13:04:27 dawes Exp $
-.TH s3virge __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/s3virge/s3virge.cpp,v 1.6 2000/03/05 16:59:16 dawes Exp $
+.TH s3virge __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
s3virge \- S3 ViRGE video driver
.SH SYNOPSIS
@@ -26,7 +26,7 @@ visuals are supported for the other depths.
.SH SUPPORTED HARDWARE
The
.B s3virge
-driver supports PCI video cards based on the following S3 chips:
+driver supports PCI and AGP video cards based on the following S3 chips:
.TP 12
.B ViRGE
86C325
@@ -48,10 +48,17 @@ driver supports PCI video cards based on the following S3 chips:
.TP 12
.B ViRGE MX+
86C280
+.TP 12
+.B Trio 3D
+86C365
+.TP 12
+.B Trio 3D/2X
+86C362, 86C368
.SH CONFIGURATION DETAILS
Please refer to XF86Config(__filemansuffix__) for general configuration
details. This section only covers configuration details specific to this
-driver.
+driver. All options names are case and white space insensitive when
+parsed by the server, for exmaple, "virge vx" and "VIRGEvx" are equivalent.
.PP
The driver auto-detects the chipset type, but the following
.B ChipSet
@@ -62,18 +69,34 @@ section, and will override the auto-detection:
.RS 4
"virge", "86c325", "virge vx", "86c988", "virge dx", "86c375",
"virge gx", "86c385", "virge gx2", "86c357", "virge mx", "86c260",
-"virge mx+", "86c280".
+"virge mx+", "86c280", "trio 3d", "86c365", "trio 3d/2x", "86c362",
+"86c368".
.RE
+
.PP
The following Cursor
.B Options
are supported:
.TP
-.BI "Option ""HWCursor"" """ boolean """
+.BI "Option ""HWCursor"" [""" boolean """]
Enable or disable the HW cursor. Default: on.
.TP
-.BI "Option ""SWCursor"" """ boolean """
+.BI "Option ""SWCursor"" [""" boolean """]
Inverse of "HWCursor". Default: off.
+
+.PP
+The following display
+.B Options
+are supported:
+.TP
+.BI "Option ""ShadowFB"" [""" boolean """]
+Use shadow framebuffer. Disables HW acceleration. Default: off.
+.TP
+.BR "Option ""Rotate"" """ cw " | " ccw """
+Rotate the screen CW - clockwise or CCW - counter clockwise.
+Disables HW Acceleration and HW Cursor, uses ShadowFB.
+Default: no rotation.
+
.PP
The following video memory
.B Options
@@ -82,11 +105,14 @@ are supported:
.BI "Option ""slow_edodram"""
Switch the standard ViRGE to 2-cycle edo mode. Try this
if you encounter pixel corruption on the ViRGE. Using this option will
-cause a large decrease in performance. Default: off
+cause a large decrease in performance. Default: off.
.TP
.BI "Option ""fpm_vram"""
Switch the ViRGE/VX to fast page mode vram mode. Default: off.
.TP
+.BR "Option ""slow_dram " | " fast_dram"""
+Change Trio 3D and 3D/2X memory options. Default: Use BIOS defaults.
+.TP
.BR "Option ""early_ras_precharge " | " late_ras_precharge"""
adjust memory parameters. One
of these will us the same settings as your video card defaults, and
@@ -99,8 +125,16 @@ is in kHz, and
.I integer
<= 100000. Default: probe the memory clock value,
and use it at server start.
+.TP
+.BI "Option ""set_refclk"" """ integer """
+sets the ref clock for ViRGE MX, where
+.I integer
+is in kHz. Default: probe the memory clock value,
+and use it at server start.
+
+
.PP
-The following acceleration and graphic engine
+The following acceleration and graphics engine
.B Options
are supported:
.TP
@@ -133,11 +167,11 @@ The following PCI bus
.B Options
are supported:
.TP
-.BI "Option ""pci_burst"" """ boolean """
+.BI "Option ""pci_burst"" [""" boolean """]
will enable PCI burst mode. This should work on all but a
few broken PCI chipsets, and will increase performance. Default: off.
.TP
-.BI "Option ""pci_retry"" """ boolean """
+.BI "Option ""pci_retry"" [""" boolean """]
will allow the driver to rely on PCI Retry to program the
ViRGE registers.
.B "pci_burst"
@@ -163,8 +197,9 @@ The following additional
.B Options
are supported:
.TP
-.BI "Option ""ShowCache"" """ boolean """
-Enable or disable viewing offscreen memory. Default: off.
+.BI "Option ""ShowCache"" [""" boolean """]
+Enable or disable viewing offscreen cache memory. A
+development debug option. Default: off.
.SH SEE ALSO
XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile
index 83c6c15cb..3ff10e1a5 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile,v 1.10 2000/02/12 20:45:32 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/Imakefile,v 1.11 2000/03/03 01:05:42 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the SIS driver.
XCOMM
@@ -34,5 +34,10 @@ ObjectModuleTarget(sis,$(OBJS))
InstallObjectModule(sis,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(sis,)
+InstallModuleManPage(sis)
+#endif
+
DependTarget()
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/sis/sis.cpp b/xc/programs/Xserver/hw/xfree86/drivers/sis/sis.cpp
new file mode 100644
index 000000000..dfe733bb2
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/sis/sis.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis.cpp,v 1.1 2000/03/03 01:05:42 dawes Exp $
+.TH SIS __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+sis \- SiS video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""sis"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B sis
+is an XFree86 driver for SiS video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B sis
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c
index b891b0249..7da2f85ca 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c
@@ -25,7 +25,7 @@
* Mitani Hiroshi <hmitani@drl.mei.co.jp>
* David Thomas <davtom@dream.org.uk>.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c,v 1.40 2000/02/21 19:23:08 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/sis/sis_driver.c,v 1.43 2000/03/03 21:26:18 dawes Exp $ */
#define PSZ 8
@@ -126,11 +126,13 @@ DriverRec SIS = {
};
static SymTabRec SISChipsets[] = {
+#if 0
{ PCI_CHIP_SG86C201, "SIS86c201" },
{ PCI_CHIP_SG86C202, "SIS86c202" },
{ PCI_CHIP_SG86C205, "SIS86c205" },
{ PCI_CHIP_SG86C215, "SIS86c215" },
{ PCI_CHIP_SG86C225, "SIS86c225" },
+#endif
{ PCI_CHIP_SIS5597, "SIS5597" },
{ PCI_CHIP_SIS5597, "SIS5598" },
{ PCI_CHIP_SIS530, "SIS530" },
@@ -142,10 +144,12 @@ static SymTabRec SISChipsets[] = {
};
static PciChipsets SISPciChipsets[] = {
+#if 0
{ PCI_CHIP_SG86C201, PCI_CHIP_SG86C201, RES_SHARED_VGA },
{ PCI_CHIP_SG86C202, PCI_CHIP_SG86C202, RES_SHARED_VGA },
{ PCI_CHIP_SG86C205, PCI_CHIP_SG86C205, RES_SHARED_VGA },
{ PCI_CHIP_SG86C205, PCI_CHIP_SG86C205, RES_SHARED_VGA },
+#endif
{ PCI_CHIP_SIS5597, PCI_CHIP_SIS5597, RES_SHARED_VGA },
{ PCI_CHIP_SIS530, PCI_CHIP_SIS530, RES_SHARED_VGA },
{ PCI_CHIP_SIS6326, PCI_CHIP_SIS6326, RES_SHARED_VGA },
@@ -398,8 +402,6 @@ SISProbe(DriverPtr drv, int flags)
* we'll ignore that.
*/
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* We need to probe the hardware first. We then need to see how this
* fits in with what is given in the config file, and allow the config
@@ -429,10 +431,9 @@ SISProbe(DriverPtr drv, int flags)
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
/* Allocate a ScrnInfoRec and claim the slot */
@@ -488,6 +489,8 @@ SISPreInit(ScrnInfoPtr pScrn, int flags)
const char *Sym = NULL;
int pix24flags;
+ if (flags & PROBE_DETECT) return FALSE;
+
/*
* Note: This function is only called once at server startup, and
* not at the start of each server generation. This means that
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile
index fe93a600f..4fe4392cb 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile,v 1.10 2000/02/15 19:19:21 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/Imakefile,v 1.12 2000/03/03 01:05:43 dawes Exp $
XCOMM
XCOMM This is the Imakefile for the TDFX driver.
XCOMM
@@ -37,7 +37,7 @@ INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(XF86SRC)/xaa -I$(XF86SRC)/rac -I$(XF86SRC)/int10 \
-I$(SERVERSRC)/cfb -I$(XF86SRC)/xaa -I$(XF86SRC)/ramdac \
-I$(XF86SRC)/vgahw -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
- -I$(SERVERSRC)/Xext \
+ -I$(XF86SRC)/ddc -I$(XF86OSSRC)/vbe -I$(SERVERSRC)/Xext \
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
-I$(EXTINCSRC) \
$(DRIINCLUDES)
@@ -55,9 +55,10 @@ ObjectModuleTarget(tdfx,$(OBJS))
InstallObjectModule(tdfx,$(MODULEDIR),drivers)
-XCOMM To install a man page remove the x and add these lines
-XCOMM xCppManTarget(tdfx,)
-XCOMM xInstallModuleManPage(tdfx)
+#if !defined(XF86DriverSDK)
+CppManTarget(tdfx,)
+InstallModuleManPage(tdfx)
+#endif
DependTarget()
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.cpp b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.cpp
new file mode 100644
index 000000000..1a7c2dad2
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx.cpp,v 1.1 2000/03/03 01:05:43 dawes Exp $
+.TH TDFX __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+tdfx \- 3Dfx video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""tdfx"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B tdfx
+is an XFree86 driver for 3Dfx video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B tdfx
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c
index 022732025..14365b441 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c,v 1.8 2000/02/20 04:12:40 tsi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_accel.c,v 1.9 2000/03/02 16:07:52 martin Exp $ */
/* All drivers should typically include these */
#include "xf86.h"
@@ -622,6 +622,7 @@ TDFXNonTEGlyphRenderer(ScrnInfoPtr pScrn, int x, int y, int n,
int w = glyph->end - glyph->start;
int *glyph_data = (int*)glyph->bits;
+ if (!glyph->srcwidth) continue;
ndwords = (glyph->srcwidth+3)>>2;
ndwords *= glyph->height;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c
index 658e1f541..ec2729055 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c
@@ -25,13 +25,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c,v 1.21 2000/02/21 19:23:09 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_driver.c,v 1.30 2000/03/06 23:54:13 dawes Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
/*
@@ -50,7 +49,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "xf86_OSproc.h"
#include "xf86Resources.h"
#include "xf86RAC.h"
-#include "xf86int10.h"
+#include "vbe.h"
#include "xf86cmap.h"
/* If the driver uses port I/O directly, it needs: */
@@ -249,6 +248,18 @@ static const char *ramdacSymbols[] = {
NULL
};
+static const char *ddcSymbols[] = {
+ "xf86PrintEDID",
+ "xf86DoEDID_DDC1",
+ NULL
+};
+
+static const char *vbeSymbols[] = {
+ "VBEInit",
+ "vbeDoEDID",
+ NULL
+};
+
#ifdef XF86DRI
static const char *drmSymbols[] = {
"drmAddBufs",
@@ -323,7 +334,7 @@ tdfxSetup(pointer module, pointer opts, int *errmaj, int *errmin)
* might refer to.
*/
LoaderRefSymLists(vgahwSymbols, cfbSymbols, xaaSymbols,
- xf8_32bppSymbols, ramdacSymbols,
+ xf8_32bppSymbols, ramdacSymbols, vbeSymbols,
#ifdef XF86DRI
drmSymbols, driSymbols,
#endif
@@ -415,9 +426,8 @@ TDFXProbe(DriverPtr drv, int flags) {
if (numUsed<=0) return FALSE;
if (flags & PROBE_DETECT)
- return TRUE;
-
- for (i=0; i<numUsed; i++) {
+ foundScreen = TRUE;
+ else for (i=0; i<numUsed; i++) {
ScrnInfoPtr pScrn;
/* Allocate new ScrnInfoRec and claim the slot */
@@ -518,6 +528,19 @@ TDFXCountRam(ScrnInfoPtr pScrn) {
return memSize*1024;
}
+extern xf86MonPtr ConfiguredMonitor;
+
+void
+TDFXProbeDDC(ScrnInfoPtr pScrn, int index)
+{
+ vbeInfoPtr pVbe;
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ pVbe = VBEInit(NULL,index);
+ ConfiguredMonitor = vbeDoEDID(pVbe);
+ }
+}
+
+
/*
* TDFXPreInit --
*
@@ -539,14 +562,6 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) {
TDFXTRACE("TDFXPreInit start\n");
if (pScrn->numEntities != 1) return FALSE;
- /* The vgahw module should be loaded here when needed */
- if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE;
-
- xf86LoaderReqSymLists(vgahwSymbols, NULL);
-
- /* Allocate a vgaHWRec */
- if (!vgaHWGetHWRec(pScrn)) return FALSE;
-
/* Allocate driverPrivate */
if (!TDFXGetRec(pScrn)) {
return FALSE;
@@ -587,6 +602,11 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) {
else
pScrn->racMemFlags = RAC_FB | RAC_COLORMAP | RAC_CURSOR | RAC_VIEWPORT;
+ if (flags & PROBE_DETECT) {
+ TDFXProbeDDC(pScrn, pTDFX->pEnt->index);
+ return FALSE;
+ }
+
/* Set pScrn->monitor */
pScrn->monitor = pScrn->confScreen->monitor;
@@ -627,6 +647,14 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) {
}
}
+ /* The vgahw module should be loaded here when needed */
+ if (!xf86LoadSubModule(pScrn, "vgahw")) return FALSE;
+
+ xf86LoaderReqSymLists(vgahwSymbols, NULL);
+
+ /* Allocate a vgaHWRec */
+ if (!vgaHWGetHWRec(pScrn)) return FALSE;
+
/* We use a programamble clock */
pScrn->progClock = TRUE;
@@ -775,7 +803,7 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) {
clockRanges->maxClock=pTDFX->MaxClock;
clockRanges->clockIndex = -1;
clockRanges->interlaceAllowed = TRUE;
- clockRanges->doubleScanAllowed = FALSE;
+ clockRanges->doubleScanAllowed = TRUE;
i = xf86ValidateModes(pScrn, pScrn->monitor->Modes,
pScrn->display->modes, clockRanges,
@@ -844,6 +872,22 @@ TDFXPreInit(ScrnInfoPtr pScrn, int flags) {
xf86LoaderReqSymLists(ramdacSymbols, NULL);
}
+ /* Load DDC if needed */
+ /* This gives us DDC1 - we should be able to get DDC2B using i2c */
+ if (!xf86LoadSubModule(pScrn, "ddc")) {
+ TDFXFreeRec(pScrn);
+ return FALSE;
+ }
+ xf86LoaderReqSymLists(ddcSymbols, NULL);
+
+ /* Initialize DDC1 if possible */
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ xf86MonPtr pMon;
+ pMon = vbeDoEDID(VBEInit(NULL,pTDFX->pEnt->index));
+ xf86SetDDCproperties(pScrn,xf86PrintEDID(pMon));
+ }
+
+
/* We wont be using the VGA access after the probe */
if (!xf86ReturnOptValBool(TDFXOptions, OPTION_USE_PIO, FALSE)) {
resRange vgaio[] = { {ResShrIoBlock,0x3B0,0x3BB},
@@ -1327,7 +1371,7 @@ TDFXModeInit(ScrnInfoPtr pScrn, DisplayModePtr mode)
#ifdef XF86DRI
if (pTDFX->directRenderingEnabled) {
- DRILock(screenInfo.screens[pScrn->scrnIndex]);
+ DRILock(screenInfo.screens[pScrn->scrnIndex], 0);
TDFXSwapContextPrivate(screenInfo.screens[pScrn->scrnIndex]);
}
#endif
@@ -1706,7 +1750,7 @@ TDFXScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv) {
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n) {
xf86XVScreenInit(pScreen, ptr, n);
}
@@ -1787,7 +1831,7 @@ TDFXLeaveVT(int scrnIndex, int flags) {
#ifdef XF86DRI
pTDFX = TDFXPTR(pScrn);
if (pTDFX->directRenderingEnabled) {
- DRILock(pScreen);
+ DRILock(pScreen, 0);
}
#endif
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c
index fb0efcbf2..62b883a16 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c
@@ -24,13 +24,12 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
**************************************************************************/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c,v 1.3 1999/12/03 19:17:36 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tdfx/tdfx_io.c,v 1.4 2000/02/23 04:47:21 martin Exp $ */
/*
* Authors:
* Daryll Strauss <daryll@precisioninsight.com>
*
- * $PI$
*/
#include "xf86.h"
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h
index 6fe52a44c..b23abb98c 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h
@@ -21,7 +21,7 @@
*
* Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk>
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h,v 1.13 1999/12/13 23:48:20 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga.h,v 1.14 2000/03/06 22:59:31 dawes Exp $ */
#ifndef _TGA_H_
#define _TGA_H_
@@ -52,6 +52,7 @@ typedef struct {
long FbMapSize;
unsigned long regOffset;
Bool NoAccel;
+ Bool NoXaaPolySegment;
Bool Dac6Bit;
Bool SyncOnGreen;
Bool HWCursor;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c
index d392a4297..d875edefc 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c,v 1.9 1999/12/16 02:26:30 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga_accel.c,v 1.10 2000/03/06 22:59:31 dawes Exp $ */
/*
* Copyright 1996,1997 by Alan Hourihane, Wigan, England.
@@ -115,12 +115,14 @@ DEC21030AccelInit(ScreenPtr pScreen)
/* ErrorF("XAACreateInfoRec called"); */
- pTga->Bpp = pScrn->depth / 8; /* Bytes per pixel */
- if(pScrn->depth == 8)
+ if(pScrn->depth == 8) {
pTga->depthflag = BPP8PACKED;
- else
+ pTga->Bpp = 1;
+ } else {
pTga->depthflag = BPP24;
-
+ pTga->Bpp = 4;
+ }
+
TGA_AccelInfoRec->Flags = PIXMAP_CACHE | LINEAR_FRAMEBUFFER |
OFFSCREEN_PIXMAPS;
@@ -133,8 +135,8 @@ DEC21030AccelInit(ScreenPtr pScreen)
TGA_AccelInfoRec->SubsequentSolidFillRect = TGASubsequentSolidFillRect;
/* screen to screen copy */
- if(pScrn->depth == 8) { /* screen to screen copy apparently doesn't work
- for 32bpp tga */
+ if(pTga->depthflag == BPP8PACKED) { /* screen to screen copy apparently doesn't work
+ for 32bpp tga */
TGA_AccelInfoRec->ScreenToScreenCopyFlags = NO_TRANSPARENCY;
TGA_AccelInfoRec->SetupForScreenToScreenCopy =
TGASetupForScreenToScreenCopy;
@@ -152,30 +154,34 @@ DEC21030AccelInit(ScreenPtr pScreen)
TGASubsequentMono8x8PatternFillRect;
/* color expand */
- /* does this work for 32bpp? */
- TGA_AccelInfoRec->ScanlineCPUToScreenColorExpandFillFlags =
- BIT_ORDER_IN_BYTE_LSBFIRST;
+ /* does not work for 32bpp (yet) */
+ if(pTga->depthflag == BPP8PACKED) {
+ TGA_AccelInfoRec->ScanlineCPUToScreenColorExpandFillFlags =
+ BIT_ORDER_IN_BYTE_LSBFIRST;
- TGA_AccelInfoRec->NumScanlineColorExpandBuffers = 1;
- pTga->buffers[0] = (CARD32 *)malloc(CE_BUFSIZE);
- TGA_AccelInfoRec->ScanlineColorExpandBuffers =
- (unsigned char **)pTga->buffers;
- TGA_AccelInfoRec->SetupForScanlineCPUToScreenColorExpandFill =
- TGASetupForScanlineCPUToScreenColorExpandFill;
- TGA_AccelInfoRec->SubsequentScanlineCPUToScreenColorExpandFill =
- TGASubsequentScanlineCPUToScreenColorExpandFill;
- TGA_AccelInfoRec->SubsequentColorExpandScanline =
- TGASubsequentColorExpandScanline;
+ TGA_AccelInfoRec->NumScanlineColorExpandBuffers = 1;
+ pTga->buffers[0] = (CARD32 *)malloc(CE_BUFSIZE);
+ TGA_AccelInfoRec->ScanlineColorExpandBuffers =
+ (unsigned char **)pTga->buffers;
+ TGA_AccelInfoRec->SetupForScanlineCPUToScreenColorExpandFill =
+ TGASetupForScanlineCPUToScreenColorExpandFill;
+ TGA_AccelInfoRec->SubsequentScanlineCPUToScreenColorExpandFill =
+ TGASubsequentScanlineCPUToScreenColorExpandFill;
+ TGA_AccelInfoRec->SubsequentColorExpandScanline =
+ TGASubsequentColorExpandScanline;
+ }
/* lines */
TGA_AccelInfoRec->PolylinesThinSolid = TGAPolyLines;
- TGA_AccelInfoRec->PolySegmentThinSolid = TGAPolySegment;
+ if(pTga->NoXaaPolySegment == FALSE)
+ TGA_AccelInfoRec->PolySegmentThinSolid = TGAPolySegment;
TGA_AccelInfoRec->PolylinesThinSolidFlags = 0x0;
TGA_AccelInfoRec->PolySegmentThinSolidFlags = 0x0;
TGA_AccelInfoRec->PolylinesThinDashed = TGAPolyLinesDashed;
- TGA_AccelInfoRec->PolySegmentThinDashed = TGAPolySegmentDashed;
+ if(pTga->NoXaaPolySegment == FALSE)
+ TGA_AccelInfoRec->PolySegmentThinDashed = TGAPolySegmentDashed;
TGA_AccelInfoRec->PolylinesThinDashedFlags = 0x0;
TGA_AccelInfoRec->PolySegmentThinDashedFlags = 0x0;
TGA_AccelInfoRec->DashedLineFlags = LINE_PATTERN_LSBFIRST_LSBJUSTIFIED;
@@ -213,7 +219,7 @@ TGASetupForScanlineCPUToScreenColorExpandFill(ScrnInfoPtr pScrn,
TGA_GET_OFFSET();
/* ErrorF("TGASetupForScanlineCPUToScreenColorExpandFill called\n"); */
- if(pScrn->depth == 8) {
+ if(pTga->depthflag == BPP8PACKED) {
fgcolor = (fg | (fg << 8) | (fg << 16) | (fg << 24));
bgcolor = bg | (bg << 8) | (bg << 16) | (bg << 24);
pmask = planemask | (planemask << 8) | (planemask << 16)
@@ -232,7 +238,7 @@ TGASetupForScanlineCPUToScreenColorExpandFill(ScrnInfoPtr pScrn,
pTga->block_or_opaque_p = USE_BLOCK_FILL;
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR0_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR1_REG);
- if(pScrn->depth == 32) {
+ if(pTga->depthflag == BPP24) {
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR2_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR3_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR4_REG);
@@ -433,7 +439,7 @@ TGASetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop,
TGA_GET_OFFSET();
/* ErrorF("TGASetupForSolidFill called"); */
- if(pScrn->depth == 8) {
+ if(pTga->depthflag == BPP8PACKED) {
fgcolor = color | (color << 8) | (color << 16) | (color << 24);
pmask = planemask | (planemask << 8) | (planemask << 16) |
(planemask << 24);
@@ -448,7 +454,7 @@ TGASetupForSolidFill(ScrnInfoPtr pScrn, int color, int rop,
pTga->block_or_opaque_p = USE_BLOCK_FILL;
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR0_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR1_REG);
- if(pScrn->depth == 32) {
+ if(pTga->depthflag == BPP24) {
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR2_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR3_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR4_REG);
@@ -867,7 +873,7 @@ TGASetupForMono8x8PatternFill(ScrnInfoPtr pScrn, int patx, int paty,
else
pTga->block_or_opaque_p = USE_OPAQUE_FILL;
- if(pScrn->depth == 8) {
+ if(pTga->depthflag == BPP8PACKED) {
fgcolor = fg | (fg << 8) | (fg << 16) | (fg << 24);
bgcolor = bg | (bg << 8) | (bg << 16) | (bg << 24);
pmask = planemask | (planemask << 8) | (planemask << 16) |
@@ -885,7 +891,7 @@ TGASetupForMono8x8PatternFill(ScrnInfoPtr pScrn, int patx, int paty,
/* we can use block fill mode to draw a transparent stipple */
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR0_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR1_REG);
- if(pScrn->depth == 32) {
+ if(pTga->depthflag == BPP24) {
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR2_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR3_REG);
TGA_FAST_WRITE_REG(fgcolor, TGA_BLOCK_COLOR4_REG);
@@ -934,7 +940,7 @@ TGASubsequentMono8x8PatternFillRect(ScrnInfoPtr pScrn, int patx, int paty,
TGA_FAST_WRITE_REG(pTga->current_rop, TGA_RASTEROP_REG);
TGA_FAST_WRITE_REG(pTga->current_planemask, TGA_PLANEMASK_REG);
- if(pScrn->depth == 8)
+ if(pTga->depthflag == BPP8PACKED)
align = FB_OFFSET(x, y) % 4;
else
align = x % 4;
@@ -1249,7 +1255,7 @@ TGASetupForDashedLine(ScrnInfoPtr pScrn, int fg, int bg, int rop,
TGA_GET_OFFSET();
/* ErrorF("TGASetupForDashedLine called\n"); */
- if(pScrn->depth == 8) {
+ if(pTga->depthflag == BPP8PACKED) {
color1 = fg | (fg << 8) | (fg << 16) | (fg << 24);
color2 = bg | (bg << 8) | (bg << 16) | (bg << 24);
pmask = planemask | (planemask << 8) | (planemask << 16)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c
index 17c08ba4b..5a89a10c8 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c
@@ -21,7 +21,7 @@
*
* Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk>
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c,v 1.9 1999/11/19 13:54:52 hohndel Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga_dac.c,v 1.10 2000/03/06 22:59:31 dawes Exp $ */
#include "xf86.h"
#include "xf86_OSproc.h"
@@ -136,7 +136,7 @@ DEC21030Init(ScrnInfoPtr pScrn, DisplayModePtr mode)
(pReg->tgaRegs[0x07] << 22) |
(pReg->tgaRegs[0x09] << 30);
- pReg->tgaRegs[0x12] = 0x05;
+ pReg->tgaRegs[0x12] = 0x01;
pReg->tgaRegs[0x13] = 0x0000;
return TRUE;
@@ -150,6 +150,7 @@ DEC21030Save(ScrnInfoPtr pScrn, TGARegPtr tgaReg)
tgaReg->tgaRegs[0x10] = TGA_READ_REG(TGA_HORIZ_REG);
tgaReg->tgaRegs[0x11] = TGA_READ_REG(TGA_VERT_REG);
tgaReg->tgaRegs[0x12] = TGA_READ_REG(TGA_VALID_REG);
+ tgaReg->tgaRegs[0x13] = TGA_READ_REG(TGA_BASE_ADDR_REG);
return;
}
@@ -165,6 +166,7 @@ DEC21030Restore(ScrnInfoPtr pScrn, TGARegPtr tgaReg)
TGA_WRITE_REG(tgaReg->tgaRegs[0x10], TGA_HORIZ_REG);
TGA_WRITE_REG(tgaReg->tgaRegs[0x11], TGA_VERT_REG);
+ TGA_WRITE_REG(tgaReg->tgaRegs[0x13], TGA_BASE_ADDR_REG);
TGA_WRITE_REG(tgaReg->tgaRegs[0x12], TGA_VALID_REG); /* Re-enable Video */
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c
index b7b496a30..9afad6faf 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c
@@ -22,7 +22,7 @@
* Authors: Alan Hourihane, <alanh@fairlite.demon.co.uk>
* Matthew Grossman, <mattg@oz.net> - acceleration and misc fixes
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c,v 1.38 2000/02/15 18:01:16 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tga/tga_driver.c,v 1.42 2000/03/06 22:59:32 dawes Exp $ */
/* #include "compiler.h" */
/* everybody includes these */
@@ -167,7 +167,8 @@ typedef enum {
OPTION_RGB_BITS,
OPTION_NOACCEL,
OPTION_SYNC_ON_GREEN,
- OPTION_DAC_6_BIT
+ OPTION_DAC_6_BIT,
+ OPTION_NOXAAPOLYSEGMENT
} TGAOpts;
static OptionInfoRec TGAOptions[] = {
@@ -177,7 +178,8 @@ static OptionInfoRec TGAOptions[] = {
{ OPTION_RGB_BITS, "RGBbits", OPTV_INTEGER, {0}, FALSE },
{ OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE },
{ OPTION_SYNC_ON_GREEN, "SyncOnGreen", OPTV_BOOLEAN, {0}, FALSE },
- { OPTION_DAC_6_BIT, "Dac6Bit", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_DAC_6_BIT, "Dac6Bit", OPTV_BOOLEAN, {0}, FALSE },
+ { OPTION_NOXAAPOLYSEGMENT, "NoXaaPolySegment",OPTV_BOOLEAN,{0}, FALSE },
{ -1, NULL, OPTV_NONE, {0}, FALSE }
};
@@ -314,8 +316,6 @@ TGAProbe(DriverPtr drv, int flags)
Bool foundScreen = FALSE;
EntityInfoPtr pEnt;
- if (flags & PROBE_DETECTISA) return FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* The aim here is to find all cards that this driver can handle,
* and for the ones not already claimed by another driver, claim the
@@ -372,10 +372,9 @@ TGAProbe(DriverPtr drv, int flags)
if (numUsed <= 0)
return FALSE;
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
pEnt = xf86GetEntityInfo(usedChips[i]);
/*
@@ -458,6 +457,8 @@ TGAPreInit(ScrnInfoPtr pScrn, int flags)
char *mod = NULL;
pointer Base;
+ if (flags & PROBE_DETECT) return FALSE;
+
/*
* Note: This function is only called once at server startup, and
* not at the start of each server generation. This means that
@@ -577,6 +578,11 @@ TGAPreInit(ScrnInfoPtr pScrn, int flags)
xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "6 bit DAC enabled\n");
}
+ if(xf86ReturnOptValBool(TGAOptions, OPTION_NOXAAPOLYSEGMENT, FALSE)) {
+ pTga->NoXaaPolySegment = TRUE;
+ xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "XAA PolySegment() disabled\n");
+ }
+
/* end option processing */
/*
@@ -1278,7 +1284,7 @@ TGAScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
pScrn->memPhysBase = pTga->FbAddress;
pScrn->fbOffset = 0;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if(n) {
xf86XVScreenInit(pScreen, ptr, n);
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile
index 562a05767..2dc280363 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile,v 1.21 2000/01/26 22:05:56 tsi Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/Imakefile,v 1.23 2000/03/03 01:05:44 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the TRIDENT driver.
XCOMM
@@ -23,7 +23,7 @@ INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) -I$(SERVERSRC)/Xext \
-I$(XF86SRC)/rac -I$(XF86SRC)/int10 \
-I$(XF86SRC)/ddc -I$(XF86SRC)/i2c \
-I$(FONTINCSRC) -I$(SERVERSRC)/include -I$(XINCLUDESRC) \
- -I$(XTOP)/include/extensions
+ -I$(XTOP)/include/extensions -I$(XF86OSSRC)/vbe
#endif
#if MakeHasPosixVariableSubstitutions
@@ -36,6 +36,11 @@ ObjectModuleTarget(trident,$(OBJS))
InstallObjectModule(trident,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(trident,)
+InstallModuleManPage(trident)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/trident)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/trident/trident.cpp b/xc/programs/Xserver/hw/xfree86/drivers/trident/trident.cpp
new file mode 100644
index 000000000..0db87b93a
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/trident/trident.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident.cpp,v 1.1 2000/03/03 01:05:44 dawes Exp $
+.TH TRIDENT __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+trident \- Trident video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""trident"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B trident
+is an XFree86 driver for Trident video chips.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B trident
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c
index 319a869ee..877b0b4d1 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c
@@ -28,7 +28,7 @@
* Massimiliano Ghilardi, max@Linuz.sns.it, some fixes to the
* clockchip programming code.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c,v 1.85 2000/02/21 19:23:10 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/trident/trident_driver.c,v 1.90 2000/03/06 23:54:13 dawes Exp $ */
#include "cfb24_32.h"
@@ -46,7 +46,7 @@
#include "xf86cmap.h"
#include "vgaHW.h"
#include "xf86RAC.h"
-#include "xf86int10.h"
+#include "vbe.h"
#include "mipointer.h"
@@ -431,6 +431,12 @@ static const char *shadowSymbols[] = {
NULL
};
+static const char *vbeSymbols[] = {
+ "VBEInit",
+ "vbeDoEDID",
+ NULL
+};
+
#ifdef XFree86LOADER
static MODULESETUPPROTO(tridentSetup);
@@ -459,7 +465,7 @@ tridentSetup(pointer module, pointer opts, int *errmaj, int *errmin)
if (!setupDone) {
setupDone = TRUE;
xf86AddDriver(&TRIDENT, module, 0);
- LoaderRefSymLists(vgahwSymbols, fbSymbols, i2cSymbols,
+ LoaderRefSymLists(vgahwSymbols, fbSymbols, i2cSymbols, vbeSymbols,
xaaSymbols, shadowSymbols, NULL);
return (pointer)TRUE;
}
@@ -769,8 +775,6 @@ TRIDENTProbe(DriverPtr drv, int flags)
int numUsed;
Bool foundScreen = FALSE;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
-
if ((numDevSections = xf86MatchDevice(TRIDENT_DRIVER_NAME,
&devSections)) <= 0) {
/*
@@ -800,12 +804,10 @@ TRIDENTProbe(DriverPtr drv, int flags)
TRIDENTChipsets, TRIDENTPciChipsets, devSections,
numDevSections, drv, &usedChips);
- if (numUsed > 0 && (flags & PROBE_DETECTPCI))
- return TRUE;
- if (numUsed <= 0 && (flags & PROBE_DETECTPCI))
- return FALSE;
-
- for (i = 0; i < numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn;
/* Allocate a ScrnInfoRec and claim the slot */
@@ -827,6 +829,8 @@ TRIDENTProbe(DriverPtr drv, int flags)
foundScreen = TRUE;
xf86ConfigActivePciEntity(pScrn, usedChips[i], TRIDENTPciChipsets,
NULL, NULL, NULL, NULL, NULL);
+ }
+ xfree(usedChips);
}
}
@@ -836,11 +840,9 @@ TRIDENTProbe(DriverPtr drv, int flags)
drv,TridentFindIsaDevice,devSections,
numDevSections,&usedChips);
if (numUsed > 0) {
-
- if (flags & PROBE_DETECTISA)
- return TRUE;
-
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
pScrn->driverVersion = VERSION;
@@ -859,12 +861,10 @@ TRIDENTProbe(DriverPtr drv, int flags)
xf86ConfigActiveIsaEntity(pScrn,usedChips[i],TRIDENTISAchipsets,
NULL,NULL,NULL,NULL,NULL);
}
+ xfree(usedChips);
}
if (devSections)
xfree(devSections);
- devSections = NULL;
- xfree(usedChips);
- usedChips = NULL;
return foundScreen;
}
@@ -929,6 +929,18 @@ TRIDENTRefreshArea(ScrnInfoPtr pScrn, int num, BoxPtr pbox)
}
}
+extern xf86MonPtr ConfiguredMonitor;
+
+void
+TRIDENTProbeDDC(ScrnInfoPtr pScrn, int index)
+{
+ vbeInfoPtr pVbe;
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ pVbe = VBEInit(NULL,index);
+ ConfiguredMonitor = vbeDoEDID(pVbe);
+ }
+}
+
/* Mandatory */
static Bool
TRIDENTPreInit(ScrnInfoPtr pScrn, int flags)
@@ -947,6 +959,39 @@ TRIDENTPreInit(ScrnInfoPtr pScrn, int flags)
char *mod = NULL;
const char *Sym = "";
+ /* Allocate the TRIDENTRec driverPrivate */
+ if (!TRIDENTGetRec(pScrn)) {
+ return FALSE;
+ }
+ pTrident = TRIDENTPTR(pScrn);
+ pTrident->pScrn = pScrn;
+
+ if (pScrn->numEntities > 1)
+ return FALSE;
+ /* This is the general case */
+ for (i = 0; i<pScrn->numEntities; i++) {
+ pTrident->pEnt = xf86GetEntityInfo(pScrn->entityList[i]);
+ if (pTrident->pEnt->resources) return FALSE;
+ pTrident->Chipset = pTrident->pEnt->chipset;
+ pScrn->chipset = (char *)xf86TokenToString(TRIDENTChipsets,
+ pTrident->pEnt->chipset);
+ /* This driver can handle ISA and PCI buses */
+ if (pTrident->pEnt->location.type == BUS_PCI) {
+ pTrident->PciInfo = xf86GetPciInfoForEntity(pTrident->pEnt->index);
+ pTrident->PciTag = pciTag(pTrident->PciInfo->bus,
+ pTrident->PciInfo->device,
+ pTrident->PciInfo->func);
+ pTrident->Linear = TRUE;
+ } else {
+ pTrident->Linear = FALSE;
+ }
+ }
+
+ if (flags & PROBE_DETECT) {
+ TRIDENTProbeDDC(pScrn, pTrident->pEnt->index);
+ return TRUE;
+ }
+
/* Set pScrn->monitor */
pScrn->monitor = pScrn->confScreen->monitor;
@@ -998,34 +1043,6 @@ TRIDENTPreInit(ScrnInfoPtr pScrn, int flags)
vgaHWGetIOBase(VGAHWPTR(pScrn));
vgaIOBase = VGAHWPTR(pScrn)->IOBase;
- /* Allocate the TRIDENTRec driverPrivate */
- if (!TRIDENTGetRec(pScrn)) {
- return FALSE;
- }
- pTrident = TRIDENTPTR(pScrn);
- pTrident->pScrn = pScrn;
-
- if (pScrn->numEntities > 1)
- return FALSE;
- /* This is the general case */
- for (i = 0; i<pScrn->numEntities; i++) {
- pTrident->pEnt = xf86GetEntityInfo(pScrn->entityList[i]);
- if (pTrident->pEnt->resources) return FALSE;
- pTrident->Chipset = pTrident->pEnt->chipset;
- pScrn->chipset = (char *)xf86TokenToString(TRIDENTChipsets,
- pTrident->pEnt->chipset);
- /* This driver can handle ISA and PCI buses */
- if (pTrident->pEnt->location.type == BUS_PCI) {
- pTrident->PciInfo = xf86GetPciInfoForEntity(pTrident->pEnt->index);
- pTrident->PciTag = pciTag(pTrident->PciInfo->bus,
- pTrident->PciInfo->device,
- pTrident->PciInfo->func);
- pTrident->Linear = TRUE;
- } else {
- pTrident->Linear = FALSE;
- }
- }
-
if (xf86LoadSubModule(pScrn, "int10")) {
xf86DrvMsg(pScrn->scrnIndex,X_INFO,"Initializing int10\n");
pTrident->Int10 = xf86InitInt10(pTrident->pEnt->index);
@@ -1873,8 +1890,13 @@ TRIDENTPreInit(ScrnInfoPtr pScrn, int flags)
/* Initialize DDC1 if possible */
if (IsPrimaryCard) {
- if (pTrident->ddc1Read)
- xf86PrintEDID(xf86DoEDID_DDC1(pScrn->scrnIndex,vgaHWddc1SetSpeed,pTrident->ddc1Read ) );
+ if (pTrident->ddc1Read) {
+ if (xf86LoadSubModule(pScrn, "vbe")) {
+ xf86MonPtr pMon;
+ pMon = vbeDoEDID(VBEInit(NULL,pTrident->pEnt->index));
+ xf86SetDDCproperties(pScrn,xf86PrintEDID(pMon));
+ }
+ }
}
if (IsPciCard && UseMMIO) {
@@ -2330,7 +2352,7 @@ TRIDENTScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
XF86VideoAdaptorPtr *ptr;
int n;
- n = xf86XVListGenericAdaptors(&ptr);
+ n = xf86XVListGenericAdaptors(pScrn,&ptr);
if (n) {
xf86XVScreenInit(pScreen, ptr, n);
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile
index 9b247dc5c..237b5dbd8 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile
@@ -4,7 +4,7 @@ XCOMM $XConsortium: Imakefile /main/10 1996/09/28 17:29:32 rws $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile,v 1.15 2000/01/23 04:44:32 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tseng/Imakefile,v 1.16 2000/03/03 01:05:44 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -44,6 +44,11 @@ ObjectModuleTarget(tseng, $(OBJS))
InstallObjectModule(tseng,$(MODULEDIR),drivers)
+#if !defined(XF86DriverSDK)
+CppManTarget(tseng,)
+InstallModuleManPage(tseng)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/tseng)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng.cpp b/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng.cpp
new file mode 100644
index 000000000..7ed52b27f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng.cpp,v 1.1 2000/03/03 01:05:44 dawes Exp $
+.TH TSENG __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+tseng \- Tseng Labs video driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""tseng"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B tseng
+is an XFree86 driver for Tseng Labs video cards.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B tseng
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c b/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c
index 6a860317f..d16ce7819 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c
@@ -1,5 +1,5 @@
/*
- * $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c,v 1.65 2000/02/21 19:23:12 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/drivers/tseng/tseng_driver.c,v 1.68 2000/03/06 23:54:15 dawes Exp $
*
* Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
*
@@ -470,7 +470,6 @@ TsengProbe(DriverPtr drv, int flags)
PDEBUG(" TsengProbe\n");
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* The aim here is to find all cards that this driver can handle,
* and for the ones not already claimed by another driver, claim the
@@ -512,19 +511,19 @@ TsengProbe(DriverPtr drv, int flags)
TsengChipsets, TsengPciChipsets,
devSections,numDevSections, drv,
&usedChips);
- if ((numUsed > 0) && (flags & PROBE_DETECTPCI))
- return TRUE;
- if ((numUsed <= 0) && (flags & PROBE_DETECTPCI))
- return FALSE;
- for (i = 0; i < numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
/* Allocate a ScrnInfoRec */
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
TsengAssignFPtr(pScrn);
xf86ConfigActivePciEntity(pScrn,usedChips[i],TsengPciChipsets,
NULL,NULL,NULL,NULL,NULL);
foundScreen = TRUE;
+ }
+ xfree(usedChips);
}
- xfree(usedChips);
}
/* Check for non-PCI cards */
@@ -532,9 +531,9 @@ TsengProbe(DriverPtr drv, int flags)
TsengIsaChipsets,drv, TsengFindIsaDevice, devSections,
numDevSections, &usedChips);
if (numUsed > 0) {
- if (flags & PROBE_DETECTISA)
- return TRUE;
- for (i = 0; i < numUsed; i++) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
TsengAssignFPtr(pScrn);
foundScreen = TRUE;
@@ -1456,6 +1455,8 @@ TsengPreInit(ScrnInfoPtr pScrn, int flags)
int i;
char *mod = NULL;
+ if (flags & PROBE_DETECT) return FALSE;
+
PDEBUG(" TsengPreInit\n");
/*
* Note: This function is only called once at server startup, and
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile b/xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile
index c7fa64e82..4a679c003 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile,v 1.3 1999/08/14 10:49:57 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/Imakefile,v 1.4 2000/03/03 01:05:45 dawes Exp $
XCOMM
XCOMM This is an Imakefile for the v4l Xv driver.
XCOMM
@@ -32,6 +32,11 @@ ModuleObjectRule()
ObjectModuleTarget(v4l,$(OBJS))
InstallObjectModule(v4l,$(MODULEDIR),drivers/linux)
+#if !defined(XF86DriverSDK)
+CppManTarget(v4l,)
+InstallModuleManPage(v4l)
+#endif
+
DependTarget()
InstallDriverSDKNonExecFile(Imakefile,$(DRIVERSDKDIR)/drivers/v4l)
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c b/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c
index 859bf8f15..6ef875e7f 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c
@@ -2,7 +2,7 @@
* video4linux Xv Driver
* based on Michael Schimek's permedia 2 driver.
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c,v 1.15 2000/01/30 01:15:57 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.c,v 1.16 2000/02/22 02:00:54 mvojkovi Exp $ */
#include "videodev.h"
#include "xf86.h"
@@ -214,7 +214,7 @@ V4lPutVideo(ScrnInfoPtr pScrn,
int one=1;
DEBUG(xf86DrvMsgVerb(pScrn->scrnIndex, X_INFO, 2, "Xv/PV\n"));
- /* FIXME: vid-* is ignored for now */
+ /* FIXME: vid-* is ignored for now, not supported by v4l */
V4lQueryBestSize(pScrn, 0, vid_w, vid_h, drw_w, drw_h, &dw, &dh, data);
/* if the window is too big, center the video */
@@ -535,30 +535,27 @@ V4LBuildEncodings(int fd, int *count)
static XF86AttributeRec Attributes[8] = {
- {XvSettable | XvGettable, 0, 255, XV_ENCODING},
- {XvSettable | XvGettable, 0, 255, XV_BRIGHTNESS},
- {XvSettable | XvGettable, 0, 255, XV_CONTRAST},
- {XvSettable | XvGettable, 0, 255, XV_SATURATION},
- {XvSettable | XvGettable, 0, 255, XV_HUE},
- {XvSettable | XvGettable, 0, 255, XV_FREQ},
- {XvSettable | XvGettable, 0, 255, XV_MUTE},
- {XvSettable | XvGettable, 0, 255, XV_VOLUME}
+ {XvSettable | XvGettable, -1000, 1000, XV_ENCODING},
+ {XvSettable | XvGettable, -1000, 1000, XV_BRIGHTNESS},
+ {XvSettable | XvGettable, -1000, 1000, XV_CONTRAST},
+ {XvSettable | XvGettable, -1000, 1000, XV_SATURATION},
+ {XvSettable | XvGettable, -1000, 1000, XV_HUE},
+ {XvSettable | XvGettable, -1000, 1000, XV_VOLUME},
+ {XvSettable | XvGettable, 0, 1, XV_MUTE},
+ {XvSettable | XvGettable, 0, 16*1000, XV_FREQ},
};
-static Bool
-V4LProbe(DriverPtr drv, int flags)
+static int
+V4LInit(ScrnInfoPtr pScrn, XF86VideoAdaptorPtr **adaptors)
{
PortPrivPtr pPPriv;
DevUnion *Private;
- XF86VideoAdaptorPtr VAR[4];
+ XF86VideoAdaptorPtr *VAR = NULL;
XF86VideoEncodingPtr enc;
char dev[16];
int fd,i,nenc;
- if (flags & PROBE_DETECT)
- return FALSE;
-
DEBUG(xf86Msg(X_INFO, "v4l: init start\n"));
for (i = 0; i < 4; i++) {
@@ -583,6 +580,7 @@ V4LProbe(DriverPtr drv, int flags)
pPPriv->nenc = nenc;
/* alloc VideoAdaptorRec */
+ VAR = xrealloc(VAR,sizeof(XF86VideoAdaptorPtr)*(i+1));
VAR[i] = xalloc(sizeof(XF86VideoAdaptorRec));
if (!VAR[i])
return FALSE;
@@ -633,9 +631,17 @@ V4LProbe(DriverPtr drv, int flags)
xvVolume = MAKE_ATOM(XV_VOLUME);
DEBUG(xf86Msg(X_INFO, "v4l: init done, %d found\n",i));
- if (i) {
- xf86XVRegisterGenericAdaptor(VAR, i);
- drv->refCount++;
- }
- return (VAR != NULL);
+
+ *adaptors = VAR;
+ return i;
+}
+
+static Bool
+V4LProbe(DriverPtr drv, int flags)
+{
+ if (flags & PROBE_DETECT)
+ return FALSE;
+
+ xf86XVRegisterGenericAdaptorDriver(V4LInit);
+ return TRUE;
}
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.cpp b/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.cpp
new file mode 100644
index 000000000..a2bf9f4b3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.cpp
@@ -0,0 +1,30 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/v4l/v4l.cpp,v 1.1 2000/03/03 01:05:45 dawes Exp $
+.TH V4L __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+v4l \- Video 4 Linux driver
+.SH SYNOPSIS
+.B "Section ""Device"""
+.br
+.BI " Identifier """ devname """"
+.br
+.B " Driver ""v4l"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B v4l
+is an XFree86 driver for Video 4 Linux.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+The
+.B v4l
+driver supports...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details. This section only covers configuration details specific to this
+driver.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1)
+.SH AUTHORS
+Authors include: ...
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c b/xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c
index d24697e22..45e0a9c45 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c
+++ b/xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c,v 1.39 2000/02/21 19:23:13 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vga/generic.c,v 1.42 2000/03/06 23:54:16 dawes Exp $ */
/*
* Copyright (C) 1998 The XFree86 Project, Inc. All Rights Reserved.
*
@@ -238,7 +238,6 @@ GenericProbe(DriverPtr drv, int flags)
int *usedChips;
int i;
- if (flags & PROBE_DETECTFBDEV) return FALSE;
/*
* Find the config file Device sections that match this
* driver, and return if there are none.
@@ -254,15 +253,10 @@ GenericProbe(DriverPtr drv, int flags)
GenericChipsets, GenericPCIchipsets,
devSections,numDevSections,
drv, &usedChips);
- if (numUsed<=0) return FALSE;
-
- if (flags & PROBE_DETECTPCI)
- return TRUE;
-
- if (flags & PROBE_DETECTISA)
- goto detectisa;
-
if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else {
for (i = 0; i < numUsed; i++) {
/* Allocate a ScrnInfoRec */
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
@@ -282,18 +276,20 @@ GenericProbe(DriverPtr drv, int flags)
xf86ConfigActivePciEntity(pScrn,usedChips[i],GenericPCIchipsets,
NULL,NULL,NULL,NULL,NULL);
}
+ }
+ xfree(usedChips);
}
}
-detectisa:
+
/* Isa Bus */
numUsed = xf86MatchIsaInstances(VGA_NAME,GenericChipsets,
GenericISAchipsets,drv,
VGAFindIsaDevice,devSections,
numDevSections,&usedChips);
- if(numUsed > 0) {
- if (flags & PROBE_DETECTISA)
- return TRUE;
- for (i = 0; i < numUsed; i++) {
+ if (numUsed > 0) {
+ if (flags & PROBE_DETECT)
+ foundScreen = TRUE;
+ else for (i = 0; i < numUsed; i++) {
ScrnInfoPtr pScrn = xf86AllocateScreen(drv,0);
pScrn->driverVersion = VGA_VERSION_CURRENT;
@@ -312,6 +308,7 @@ detectisa:
xf86ConfigActiveIsaEntity(pScrn,usedChips[i],GenericISAchipsets,
NULL,NULL,NULL,NULL,NULL);
}
+ xfree(usedChips);
}
if (devSections)
xfree(devSections);
@@ -461,6 +458,8 @@ GenericPreInit(ScrnInfoPtr pScreenInfo, int flags)
GenericPtr pGenericPriv;
EntityInfoPtr pEnt;
+ if (flags & PROBE_DETECT) return FALSE;
+
/* Set the monitor */
pScreenInfo->monitor = pScreenInfo->confScreen->monitor;
diff --git a/xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp b/xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp
index 7eb5749cc..35456d07d 100644
--- a/xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp
+++ b/xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp
@@ -1,5 +1,5 @@
-.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp,v 1.2 1999/08/28 09:01:08 dawes Exp $
-.TH VGA __drivermansuffix__ "Version 3.9.16" "XFree86"
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vga/vga.cpp,v 1.3 2000/03/03 01:05:47 dawes Exp $
+.TH VGA __drivermansuffix__ "Version 4.0" "XFree86"
.SH NAME
vga \- Generic VGA video driver
.SH SYNOPSIS
diff --git a/xc/programs/Xserver/hw/xfree86/etc/Imakefile b/xc/programs/Xserver/hw/xfree86/etc/Imakefile
index 66617bbc9..07a1477d2 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/etc/Imakefile
@@ -4,7 +4,7 @@ XCOMM $XConsortium: Imakefile /main/24 1996/10/28 04:24:12 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/etc/Imakefile,v 3.35 2000/02/18 12:20:07 tsi Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/etc/Imakefile,v 3.36 2000/02/24 18:50:44 dawes Exp $
#include <Server.tmpl>
#if SystemV
@@ -51,12 +51,11 @@ XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/etc/Imakefile,v 3.35 2000/02/18 1
#endif
#endif
-PREINST = preinst.sh
-POSTINST = postinst.sh
+XINST = Xinstall.sh
FILES = $(CONFIGFILES) $(TERMFILES) \
$(PATCHFILES) $(XDMCONF) \
- et4000clock.c xmodmap.std $(MISCFILES) $(POSTINST) $(PREINST)
+ xmodmap.std $(MISCFILES) $(XINST)
INCLUDES = -I. -I$(XF86COMSRC) -I$(XF86OSSRC) \
-I$(SERVERSRC)/include -I$(XINCLUDESRC) -I$(XF86SRC)/scanpci \
-I$(XF86SRC)/dummylib
diff --git a/xc/programs/Xserver/hw/xfree86/etc/Xinstall.sh b/xc/programs/Xserver/hw/xfree86/etc/Xinstall.sh
new file mode 100644
index 000000000..ed1455f63
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/Xinstall.sh
@@ -0,0 +1,992 @@
+#!/bin/sh
+
+#
+# $XFree86: xc/programs/Xserver/hw/xfree86/etc/Xinstall.sh,v 1.7 2000/02/29 18:01:20 dawes Exp $
+#
+# Copyright © 2000 by Precision Insight, Inc.
+# Portions Copyright © 1996-2000 by The XFree86 Project, Inc.
+#
+# This script should be used to install XFree86 4.0.
+#
+# Parts of this script are based on the old preinst.sh and postinst.sh
+# scripts.
+#
+# Set tabs to 4 spaces to view/edit this file.
+#
+# Authors: David Dawes <dawes@xfree86.org>
+#
+
+VERSION=4.0
+
+RUNDIR=/usr/X11R6
+ETCDIR=/etc/X11
+VARDIR=/var
+
+if [ X"$1" = "X-test" -o X"$XINST_TEST" != X ]; then
+ RUNDIR=/home1/test/X11R6
+ ETCDIR=/home1/test/etcX11
+ VARDIR=/home1/test/var
+ if [ X"$1" = "X-test" ]; then
+ shift
+ fi
+ echo ""
+ echo "Running in test mode"
+fi
+
+OLDFILES=""
+
+OLDDIRS=" \
+ $RUNDIR/lib/X11/xkb/compiled \
+ "
+
+BASEDIST=" \
+ Xbin.tgz \
+ Xlib.tgz \
+ Xman.tgz \
+ Xdoc.tgz \
+ Xfnts.tgz \
+ Xfenc.tgz \
+ "
+
+ETCDIST="Xetc.tgz"
+
+VARDIST="Xvar.tgz"
+
+SERVDIST=" \
+ Xxserv.tgz \
+ Xmod.tgz \
+ "
+OPTDIST=" \
+ Xfsrv.tgz \
+ Xnest.tgz \
+ Xprog.tgz \
+ Xprt.tgz \
+ Xvfb.tgz \
+ Xf100.tgz \
+ Xfcyr.tgz \
+ Xflat2.tgz \
+ Xfnon.tgz \
+ Xfscl.tgz \
+ Xhtml.tgz \
+ Xjdoc.tgz \
+ Xps.tgz \
+ "
+
+ETCLINKS=" \
+ app-defaults \
+ fs \
+ lbxproxy \
+ proxymngr \
+ rstart \
+ twm \
+ xdm \
+ xinit \
+ xsm \
+ xserver \
+ "
+
+FONTDIRS=" \
+ local \
+ misc
+ "
+
+WDIR=`pwd`
+
+# Check how to suppress newlines with echo (from perl's Configure)
+((echo "xxx\c"; echo " ") > .echotmp) 2> /dev/null
+if [ ! -f .echotmp ]; then
+ echo "Can't write to the current directory. Aborting";
+ exit 1
+fi
+if grep c .echotmp >/dev/null 2>&1; then
+ n='-n'
+ c=''
+else
+ n=''
+ c='\c'
+fi
+rm -f .echotmp
+
+Echo()
+{
+ echo $n "$@""$c"
+}
+
+ContinueNo()
+{
+ Echo "Do you wish to continue? (y/n) [n] "
+ read response
+ case "$response" in
+ [yY]*)
+ echo ""
+ ;;
+ *)
+ echo "Aborting the installation."
+ exit 2
+ ;;
+ esac
+}
+
+ContinueYes()
+{
+ Echo "Do you wish to continue? (y/n) [y] "
+ read response
+ case "$response" in
+ [nN]*)
+ echo "Aborting the installation."
+ exit 2
+ ;;
+ *)
+ echo ""
+ ;;
+ esac
+}
+
+Description()
+{
+ case $1 in
+ Xfsrv*)
+ echo "font server";;
+ Xnest*)
+ echo "Nested X server";;
+ Xprog*)
+ echo "programmer support";;
+ Xprt*)
+ echo "X print server";;
+ Xvfb*)
+ echo "Virtual framebuffer X server";;
+ Xf100*)
+ echo "100dpi fonts";;
+ Xfcyr*)
+ echo "Cyrillic fonts";;
+ Xflat2*)
+ echo "Latin-2 fonts";;
+ Xfnon*)
+ echo "Some large fonts";;
+ Xfscl*)
+ echo "Scaled fonts (Speedo and Type1)";;
+ Xhtml*)
+ echo "Docs in HTML";;
+ Xjdoc*)
+ echo "Docs in Japanese";;
+ Xps*)
+ echo "Docs in PostScript";;
+ *)
+ echo "unknown";;
+ esac
+}
+
+ReadLink()
+{
+ rltmp="`ls -l $1`"
+ rl=`expr "$rltmp" : '.*-> \([^ ]*\)'`
+ echo $rl
+}
+
+GetOsInfo()
+{
+ echo "Checking which OS you're running..."
+
+ OsName="`uname`"
+ OsVersion="`uname -r`"
+ case "$OsName" in
+ SunOS) # Assumes SunOS 5.x
+ OsArch="`uname -p`"
+ ;;
+ *)
+ OsArch="`uname -m`"
+ ;;
+ esac
+ # Some SVR4.0 versions have a buggy uname that reports the node name
+ # for the OS name. Try to catch that here. Need to check what is
+ # reported for non-buggy versions.
+ if [ "$OsName" = "`uname -n`" -a -f /stand/unix ]; then
+ OsName=UNIX_SV
+ fi
+ echo "uname reports '$OsName' version '$OsVersion', architecture '$OsArch'."
+
+ # Find the object type, where needed
+
+ case "$OsName" in
+ Linux|FreeBSD|NetBSD)
+ if file -L /bin/sh | grep ELF > /dev/null 2>&1; then
+ OsObjFormat=ELF
+ else
+ OsObjFormat=a.out
+ fi
+ ;;
+ esac
+
+ if [ X"$OsObjFormat" != X ]; then
+ Echo "Object format is '$OsObjFormat'. "
+ needNL=YES
+ fi
+
+ # test's flag for symlinks
+ #
+ # For OSs that don't support symlinks, choose a type that is guaranteed to
+ # return false for regular files and directories.
+
+ case "$OsName" in
+ FreeBSD)
+ case "$OsVersion" in
+ 2.*)
+ L="-h"
+ ;;
+ *)
+ L="-L"
+ esac
+ ;;
+ OS-with-no-symlinks) # Need to set this correctly
+ L="-b"
+ NoSymlinks=YES
+ ;;
+ *)
+ L="-L"
+ ;;
+ esac
+
+ # Find the libc version, where needed
+ case "$OsName" in
+ Linux)
+ tmp="`ldd /bin/sh | grep libc.so 2> /dev/null`"
+ LibcPath=`expr "$tmp" : '[^/]*\(/[^ ]*\)'`
+ tmp="`strings $LibcPath | grep -i 'c library'`"
+ OsLibcMajor=`expr "$tmp" : '.* \([0-9][0-9]*\)'`
+ OsLibcMinor=`expr "$tmp" : '.* [0-9][0-9]*\.\([0-9][0-9]*\)'`
+ case "$OsLibcMajor" in
+ 2)
+ # 2 is the glibc version
+ OsLibcMajor=6
+ ;;
+ esac
+ ;;
+ esac
+
+ if [ X"$OsLibcMajor" != X ]; then
+ Echo "libc version is '$OsLibcMajor"
+ if [ X"$OsLibcMinor" != X ]; then
+ Echo ".$OsLibcMinor'."
+ else
+ Echo "'."
+ fi
+ needNL=YES
+ fi
+ if [ X"$needNL" = XYES ]; then
+ echo ""
+ fi
+ echo ""
+}
+
+DoOsChecks()
+{
+ # Do some OS-specific checks
+
+ case "$OsName" in
+ Linux)
+ case "$OsObjFormat" in
+ ELF)
+ # Check ldconfig
+ LDSO=`/sbin/ldconfig -v -n | awk '{ print $3 }'`
+ LDSOMIN=`echo $LDSO | awk -F[.-] '{ print $3 }'`
+ LDSOMID=`echo $LDSO | awk -F[.-] '{ print $2 }'`
+ LDSOMAJ=`echo $LDSO | awk -F[.-] '{ print $1 }'`
+ if [ "$LDSOMAJ" -gt 1 ]; then
+ : OK
+ else
+ if [ "$LDSOMID" -gt 7 ]; then
+ : OK
+ else
+ if [ "$LDSOMIN" -ge 14 ]; then
+ : OK
+ else
+ echo ""
+ echo "Before continuing, you will need to get a"
+ echo "current version of ld.so. Version 1.7.14 or"
+ echo "newer will do."
+ NEEDSOMETHING=YES
+ fi
+ fi
+ fi
+ ;;
+ esac
+ # The /dev/tty0 check is left out. Presumably nobody has a system where
+ # this is missing any more.
+ ;;
+ esac
+}
+
+FindDistName()
+{
+ case "$OsName" in
+ DGUX) # Check this string
+ case "$OsArch" in
+ i*86)
+ DistName="DGUX-ix86"
+ ;;
+ *)
+ Message="DGUX binaries are only available for ix86 platforms"
+ ;;
+ esac
+ ;;
+ FreeBSD)
+ case "$OsArch" in
+ i386)
+ case "$OsVersion" in
+ 2.2*)
+ DistName="FreeBSD-2.2.x"
+ ;;
+ 3.*)
+ case "$OsObjFormat" in
+ ELF)
+ DistName="FreeBSD-3.x"
+ ;;
+ *)
+ Message="FreeBSD 3.x binaries are only available in ELF format"
+ ;;
+ esac
+ ;;
+ 4.*)
+ DistName="FreeBSD-4.x"
+ ;;
+ *)
+ Message="FreeBSD/i386 binaries are not available for this version"
+ ;;
+ esac
+ ;;
+ alpha)
+ case "$OsVersion" in
+ 3.*)
+ DistName="FreeBSD-alpha-3.x"
+ ;;
+ 4.*)
+ DistName="FreeBSD-alpha-4.x"
+ ;;
+ *)
+ Message="FreeBSD/alpha binaries are not available for this version"
+ ;;
+ esac
+ ;;
+ *)
+ Message="FreeBSD binaries are not available for this architecture"
+ ;;
+ esac
+ ;;
+ Linux)
+ case "$OsArch" in
+ i*86)
+ case "$OsLibcMajor" in
+ 5)
+ DistName="Linux-ix86-libc5"
+ ;;
+ 6)
+ case "$OsLibcMinor" in
+ 0)
+ DistName="Linux-ix86-glibc20"
+ ;;
+ 1)
+ DistName="Linux-ix86-glibc21"
+ ;;
+ *)
+ Message="No dist available for glibc 2.$OsLibcMinor. Try Linux-ix86-glibc21"
+ ;;
+ esac
+ ;;
+ *)
+ case "$OsObjFormat" in
+ a.out)
+ Message="Linux a.out is no longer supported"
+ ;;
+ *)
+ Message="No Linux/ix86 binaries for this libc version"
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ alpha)
+ case "$OsLibcMajor.$OsLibcMinor" in
+ 6.1)
+ DistName="Linux-alpha-glibc21"
+ ;;
+ 6.*)
+ Message="No Linux/alpha binaries for glibc 2.$OsLibcMinor. Try Linux-alpha-glibc21"
+ ;;
+ *)
+ Message="No Linux/alpha binaries for this libc version"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No Linux binaries available for this architecture"
+ ;;
+ esac
+ ;;
+ LynxOS) # Check this
+ DistName="LynxOS"
+ ;;
+ NetBSD)
+ case "$OsArch" in
+ i386)
+ case "$OsVersion" in
+ 1.[3-9]*) # Check this
+ case "$OsObjFormat" in
+ a.out)
+ DistName="NetBSD-1.4.1"
+ ;;
+ *)
+ DistName="NetBSD-current-ELF"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No NetBSD/i386 binaries available for this version"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No NetBSD binaries available for this architecture"
+ ;;
+ esac
+ ;;
+ OpenBSD)
+ case "$OsArch" in
+ i386)
+ case "$OsVersion" in
+ 2.[6-9]*) # Check this
+ DistName="OpenBSD-2.6"
+ ;;
+ *)
+ Message="No OpenBSD/i386 binaries available for this version"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No OpenBSD binaries available for this architecture"
+ ;;
+ esac
+ ;;
+ SunOS)
+ case "$OsArch" in
+ i386)
+ case "$OsVersion" in
+ 5.[67]*)
+ DistName="Solaris"
+ ;;
+ 5.8*)
+ DistName="Solaris-8"
+ ;;
+ *)
+ Message="No Solaris/x86 binaries available for this version"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No SunOS/Solaris binaries available for this architecture"
+ ;;
+ esac
+ ;;
+ UNIX_SV)
+ case "$OsArch" in
+ i386)
+ case "$OsVersion" in
+ 4.0*)
+ DistName="SVR4.0"
+ ;;
+ *)
+ # More detailed version check??
+ DistName="UnixWare"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No SYSV binaries available for this architecture"
+ ;;
+ esac
+ ;;
+ *)
+ Message="No binaries available for this OS"
+ ;;
+ esac
+
+ if [ X"$DistName" != X ]; then
+ echo "Binary distribution name is '$DistName'"
+ echo ""
+ else
+ if [ X"$Message" = X ]; then
+ echo "Can't find which binary distribution you should use."
+ echo "Please send the output of this script to XFree86@XFree86.org"
+ echo ""
+ else
+ echo "$Message"
+ echo ""
+ fi
+ fi
+}
+
+if [ X"$1" = "X-check" ]; then
+ GetOsInfo
+ FindDistName
+ exit 0
+fi
+
+echo ""
+echo " Welcome to the XFree86 $VERSION installer"
+echo ""
+echo "You are strongly advised to backup your existing XFree86 installation"
+echo "before proceeding. This includes the /usr/X11R6 and /etc/X11"
+echo "directories. The installation process will overwrite existing files"
+echo "in those directories, and this may include some configuration files"
+echo "that may have been customised."
+echo ""
+ContinueNo
+
+# Should check if uid is zero
+
+# Check if $DISPLAY is set, and warn
+
+if [ X"$DISPLAY" != X ]; then
+ echo "\$DISPLAY is set, which may indicate that you are running this"
+ echo "installation from an X session. It is recommended that X not be"
+ echo "running while doing the installation."
+ echo ""
+ ContinueNo
+fi
+
+# First, do some preliminary checks
+
+GetOsInfo
+
+# Make OS-specific adjustments to the distribution file lists
+
+case "$OsName" in
+Interactive) # Need the correct name for this
+ VARDIST=""
+ EXTRADIST="Xbin1.tgz"
+ EXTRAOPTDIST="Xxdm.tgz"
+ ;;
+LynxOS)
+ VARDIST=""
+ ;;
+esac
+
+REQUIREDFILES=" \
+ extract \
+ $BASEDIST \
+ $ETCDIST \
+ $VARDIST \
+ $SERVDIST \
+ $EXTRADIST \
+ "
+
+echo "Checking for required files ..."
+Needed=""
+
+# Check for extract and extract.exe, and check that they are usable.
+#
+# This test may not be fool-proof. A FreeBSD/ELF binary downloaded in
+# ASCII mode passed it :-(.
+#
+if [ -f extract ]; then
+ ExtractExists=YES
+ chmod +x extract
+ if ./extract --version | head -1 | \
+ fgrep "extract (XFree86 version" > /dev/null 2>&1; then
+ ExtractOK=YES
+ else
+ echo "extract doesn't work properly, renaming it to 'extract.bad'"
+ rm -f extract.bad
+ mv extract extract.bad
+ fi
+fi
+if [ X"$ExtractOK" != XYES ]; then
+ if [ -f extract.exe ]; then
+ ExtractExeExists=YES
+ rm -f extract
+ ln extract.exe extract
+ chmod +x extract
+ if ./extract --version | head -1 | \
+ fgrep "extract (XFree86 version" > /dev/null 2>&1; then
+ ExtractOK=YES
+ else
+ echo "extract.exe doesn't work properly, renaming it to"
+ echo "'extract.exe.bad'"
+ rm -f extract.exe.bad
+ mv extract.exe extract.exe.bad
+ rm -f extract
+ fi
+ fi
+fi
+if [ X"$ExtractOK" != XYES ]; then
+ echo ""
+ if [ X"$ExtractExists" = XYES -a X"$ExtractExeExists" = XYES ]; then
+ echo "The versions of 'extract' and 'extract.exe' you have do not run'"
+ echo "correctly. Make sure that you have downloaded the correct"
+ echo "binaries for your system. To find out which is correct,"
+ echo "run 'sh $0 -check'."
+ fi
+ if [ X"$ExtractExists" = XYES -a X"$ExtractExeExists" != XYES ]; then
+ echo "The version of 'extract' you have does not run correctly."
+ echo "This is most commonly due to problems downloading this file"
+ echo "with some web browsers. You may get better results if you"
+ echo "download the version called 'extract.exe' and try again."
+ fi
+ if [ X"$ExtractExists" != XYES -a X"$ExtractExeExists" = XYES ]; then
+ echo "The version of 'extract.exe' you have does not run correctly."
+ echo "Make sure that you have downloaded the correct binaries for your"
+ echo "system. To find out which is correct, run 'sh $0 -check'."
+ fi
+ if [ X"$ExtractExists" != XYES -a X"$ExtractExeExists" != XYES ]; then
+ echo "You need to download the 'extract' (or 'extract.exe') utility"
+ echo "and put it in this directory."
+ fi
+ echo ""
+ echo "When you have corrected the problem, please re-run 'sh $0'"
+ echo "to proceed with the installation."
+ echo ""
+ exit 1
+fi
+
+for i in $REQUIREDFILES; do
+ if [ ! -f $i ]; then
+ Needed="$Needed $i"
+ fi
+done
+if [ X"$Needed" != X ]; then
+ echo ""
+ echo "The files:"
+ echo ""
+ echo "$Needed"
+ echo ""
+ echo "must be present in the current directory to proceed with the"
+ echo "installation. You should be able to find it at the same place"
+ echo "you picked up the rest of the XFree86 binary distribution."
+ echo "Please re-run 'sh $0' to proceed with the installation when"
+ echo "you have them."
+ echo ""
+ exit 1
+fi
+
+DoOsChecks
+
+if [ X"$NEEDSOMETHING" != X ]; then
+ echo ""
+ echo "Please re-run 'sh $0' to proceed with the installation after you"
+ echo "have made the required updates."
+ echo ""
+ exit 1
+fi
+
+# Link extract to gnu-tar so it can also be used as a regular tar
+rm -f gnu-tar
+ln extract gnu-tar
+
+EXTRACT=$WDIR/extract
+TAR=$WDIR/gnu-tar
+
+# Create $RUNDIR and $ETCDIR if they don't already exist
+
+if [ ! -d $RUNDIR ]; then
+ NewRunDir=YES
+ echo "Creating $RUNDIR"
+ mkdir $RUNDIR
+fi
+if [ ! -d $RUNDIR/lib ]; then
+ echo "Creating $RUNDIR/lib"
+ mkdir $RUNDIR/lib
+fi
+if [ ! -d $RUNDIR/lib/X11 ]; then
+ echo "Creating $RUNDIR/lib/X11"
+ mkdir $RUNDIR/lib/X11
+fi
+if [ ! -d $ETCDIR ]; then
+ NewEtcDir=YES
+ echo "Creating $ETCDIR"
+ mkdir $ETCDIR
+fi
+
+if [ -d $RUNDIR -a -d $RUNDIR/bin -a -d $RUNDIR/lib ]; then
+ echo ""
+ echo "You appear to have an existing installation of X. Continuing will"
+ echo "overwrite it. You will, however, have the option of being prompted"
+ echo "before most configuration files are overwritten."
+ ContinueYes
+fi
+
+if [ X"$OLDFILES" != X ]; then
+ echo ""
+ echo "Removing some old files that are no longer required..."
+ for i in $OLDFILES; do
+ if [ -f $i ]; then
+ echo " removing old file $i"
+ rm -f $i
+ fi
+ done
+ echo ""
+fi
+
+if [ X"$OLDDIRS" != X ]; then
+ echo ""
+ echo "Removing some old directories that are no longer required..."
+ for i in $OLDDIRS; do
+ if [ -d $i ]; then
+ echo " removing old directory $i"
+ rm -fr $i
+ fi
+ done
+ echo ""
+fi
+
+# Check for config file directories that may need to be moved.
+
+EtcToMove=
+if [ X"$NoSymLinks" != XYES ]; then
+ for i in $ETCLINKS; do
+ if [ -d $RUNDIR/lib/X11/$i -a ! $L $RUNDIR/lib/X11/$i ]; then
+ EtcToMove="$EtcToMove $i"
+ fi
+ done
+fi
+
+if [ X"$EtcToMove" != X ]; then
+ echo "XFree86 now installs most customisable configuration files under"
+ echo "$ETCDIR instead of under $RUNDIR/lib/X11, and has symbolic links"
+ echo "under $RUNDIR/lib/X11 that point to $ETCDIR. You currently have"
+ echo "files under the following subdirectories of $RUNDIR/lib/X11:"
+ echo ""
+ echo "$EtcToMove"
+ echo ""
+ echo "Do you want to move them to $ETCDIR and create the necessary"
+ Echo "links? (y/n) [y] "
+ read response
+ case "$response" in
+ [nN]*)
+ echo ""
+ echo "Note: this means that your run-time config files will remain"
+ echo "in the old $RUNDIR/lib/X11 location."
+ NoSymLinks=YES;
+ ;;
+ esac
+ echo ""
+ if [ X"NoSymlinks" != XYES ]; then
+ for i in $EtcToMove; do
+ echo "Moving $RUNDIR/lib/X11/$i to $ETCDIR/$i ..."
+ if [ ! -d $ETCDIR/$i ]; then
+ mkdir $ETCDIR/$i
+ fi
+ $TAR -C $RUNDIR/lib/X11/$i -c -f - . | \
+ $TAR -C $ETCDIR/$i -v -x -p -U -f - && \
+ rm -fr $RUNDIR/lib/X11/$i && \
+ ln -s $ETCDIR/$i $RUNDIR/lib/X11/$i
+ done
+ fi
+fi
+
+# Maybe allow a backup of the config files to be made?
+
+# Extract Xetc.tgz into a temporary location, and prompt for moving the
+# files.
+
+echo "Extracting $ETCDIST into a temporary location ..."
+rm -fr .etctmp
+mkdir .etctmp
+(cd .etctmp; $EXTRACT $WDIR/$ETCDIST)
+for i in $ETCLINKS; do
+ DoCopy=YES
+ if [ -d $RUNDIR/lib/X11/$i ]; then
+ Echo "Do you want to overwrite the $i config files? (y/n) [n] "
+ read response
+ case "$response" in
+ [yY]*)
+ : OK
+ ;;
+ *)
+ DoCopy=NO
+ ;;
+ esac
+ fi
+ if [ $DoCopy = YES ]; then
+ echo "Installing the $i config files ..."
+ if [ X"$NoSymLinks" != XYES ]; then
+ if [ ! -d $ETCDIR/$i ]; then
+ mkdir $ETCDIR/$i
+ fi
+ if [ ! -d $RUNDIR/lib/X11/$i ]; then
+ ln -s $ETCDIR/$i $RUNDIR/lib/X11/$i
+ fi
+ else
+ if [ ! -d $RUNDIR/lib/X11/$i ]; then
+ mkdir $RUNDIR/lib/X11/$i
+ fi
+ fi
+ $TAR -C .etctmp/$i -c -f - . | \
+ $TAR -C $RUNDIR/lib/X11/$i -v -x -p -U -f -
+ fi
+done
+rm -fr .etctmp
+
+echo "Installing the mandatory parts of the binary distribution"
+echo ""
+for i in $BASEDIST $SERVDIST; do
+ (cd $RUNDIR; $EXTRACT $WDIR/$i)
+done
+if [ X"$VARDIST" != X ]; then
+ (cd $VARDIR; $EXTRACT $WDIR/$VARDIST)
+fi
+
+echo "Checking for optional components to install ..."
+for i in $OPTDIST $EXTRAOPTDIST; do
+ if [ -f $i ]; then
+ Echo "Do you want to install $i (`Description $i`)? (y/n) [y] "
+ read response
+ case "$response" in
+ [nN]*)
+ : skip this one
+ ;;
+ *)
+ (cd $RUNDIR; $EXTRACT $WDIR/$i)
+ ;;
+ esac
+ fi
+done
+
+# Need to run ldconfig on some OSs
+case "$OsName" in
+FreeBSD|NetBSD|OpenBSD)
+ echo ""
+ echo "Running ldconfig"
+ /sbin/ldconfig -m $RUNDIR/lib
+ ;;
+Linux)
+ echo ""
+ echo "Running ldconfig"
+ /sbin/ldconfig $RUNDIR/lib
+ ;;
+esac
+
+# Run mkfontdir in the local and misc directories to make sure that
+# the fonts.dir files are up to date after the installation.
+echo ""
+for i in $FONTDIRS $EXTRAFONTDIRS; do
+ if [ -d $RUNDIR/lib/X11/fonts/$i ]; then
+ Echo "Updating the fonts.dir file in $RUNDIR/lib/X11/fonts/$i..."
+ $RUNDIR/bin/mkfontdir $RUNDIR/lib/X11/fonts/$i
+ echo ""
+ fi
+done
+
+# Check if the system has a termcap file
+TERMCAP1DIR=/usr/share
+TERMCAP2=/etc/termcap
+if [ -d $TERMCAP1DIR ]; then
+ TERMCAP1=`find $TERMCAP1DIR -type f -name termcap -print 2> /dev/null`
+ if [ x"$TERMCAP1" != x ]; then
+ TERMCAPFILE="$TERMCAP1"
+ fi
+fi
+if [ x"$TERMCAPFILE" = x ]; then
+ if [ -f $TERMCAP2 ]; then
+ TERMCAPFILE="$TERMCAP2"
+ fi
+fi
+
+# Override this for some OSs
+
+case "$OsName" in
+OpenBSD)
+ TERMCAPFILE=""
+ ;;
+esac
+
+if [ X"$TERMCAPFILE" != X ]; then
+ echo ""
+ echo "You appear to have a termcap file: $TERMCAPFILE"
+ echo "This should be edited manually to replace the xterm entries"
+ echo "with those in $RUNDIR/lib/X11/etc/xterm.termcap"
+ echo ""
+ echo "Note: the new xterm entries are required to take full advantage"
+ echo "of new features, but they may cause problems when used with"
+ echo "older versions of xterm. A terminal type 'xterm-r6' is included"
+ echo "for compatibility with the standard X11R6 version of xterm."
+fi
+
+# Check for terminfo, and update the xterm entry
+TINFODIR=/usr/lib/terminfo
+# Does this list need to be updated?
+OLDTINFO=" \
+ x/xterm \
+ x/xterms \
+ x/xterm-24 \
+ x/xterm-vi \
+ x/xterm-65 \
+ x/xterm-bold \
+ x/xtermm \
+ x/xterm-boldso \
+ x/xterm-ic \
+ x/xterm-r6 \
+ x/xterm-old \
+ x/xterm-r5 \
+ v/vs100"
+
+if [ -d $TINFODIR ]; then
+ echo ""
+ echo "You appear to have a terminfo directory: $TINFODIR"
+ echo "New xterm terminfo entries can be installed now."
+ echo ""
+ echo "Note: the new xterm entries are required to take full advantage"
+ echo "of new features, but they may cause problems when used with"
+ echo "older versions of xterm. A terminal type 'xterm-r6' is included"
+ echo "for compatibility with the standard X11R6 version of xterm."
+ echo ""
+ echo "Do you wish to have the new xterm terminfo entries installed"
+ Echo "now (y/n)? [n] "
+ read response
+ case "$response" in
+ [yY]*)
+ echo ""
+ for t in $OLDTINFO; do
+ if [ -f $TINFODIR/$t ]; then
+ echo "Moving old terminfo file $TINFODIR/$t to $TINFODIR/$t.bak"
+ rm -f $TINFODIR/$t.bak
+ mv -f $TINFODIR/$t $TINFODIR/$t.bak
+ fi
+ done
+ echo ""
+ echo "Installing new terminfo entries for xterm."
+ echo ""
+ echo "On some systems you may get warnings from tic about 'meml'"
+ echo "and 'memu'. These warnings can safely be ignored."
+ echo ""
+ tic $RUNDIR/lib/X11/etc/xterm.terminfo
+ ;;
+ *)
+ echo ""
+ echo "Not installing new terminfo entries for xterm."
+ echo "They can be installed later by running:"
+ echo ""
+ echo " tic $RUNDIR/lib/X11/etc/xterm.terminfo"
+ ;;
+ esac
+fi
+
+if [ -f $RUNDIR/bin/rstartd ]; then
+ echo ""
+ echo "If you are going to use rstart and $RUNDIR/bin isn't in the"
+ echo "default path for commands run remotely via rsh, you will need"
+ echo "a link to rstartd installed in /usr/bin."
+ echo ""
+ Echo "Do you wish to have this link installed (y/n)? [n] "
+ read response
+ case "$response" in
+ [yY]*)
+ echo "Creating link from $RUNDIR/bin/rstartd to /usr/bin/rstartd"
+ rm -f /usr/bin/rstartd
+ ln -s $RUNDIR/bin/rstartd /usr/bin/rstartd
+ ;;
+ esac
+fi
+
+echo ""
+echo "Installation complete."
+
+exit 0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-excl
new file mode 100644
index 000000000..c7f43558f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-excl
@@ -0,0 +1,10 @@
+bin/XF86_*
+bin/XF98_*
+bin/XF86Setup
+bin/Xnest
+bin/Xprt
+bin/Xvfb
+bin/X
+bin/xfs
+bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list
new file mode 100644
index 000000000..40c03194a
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/bin-list
@@ -0,0 +1,23 @@
+bin
+lib/libGL.so.1.2
+lib/libICE.so.6.3
+lib/libPEX5.so.6.0
+lib/libSM.so.6.0
+lib/libX11.so.6.1
+lib/libXIE.so.6.0
+lib/libXThrStub.so.6.0
+lib/libXaw.so.6.1
+lib/libXaw.so.7.0
+lib/libXext.so.6.4
+lib/libXfont.so.1.3
+lib/libXi.so.6.0
+lib/libXmu.so.6.1
+lib/libXp.so.6.2
+lib/libXpm.so.4.11
+lib/libXt.so.6.0
+lib/libXtst.so.6.1
+lib/libdps.so.1.0
+lib/libdpstk.so.1.0
+lib/liboldX.so.6.0
+lib/libpsres.so.1.0
+lib/libxrx.so.6.3
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/dir
new file mode 100644
index 000000000..11c5b9da7
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/dir
@@ -0,0 +1 @@
+usr/X11R6
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/fsrv-list
new file mode 100644
index 000000000..86fc799fa
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/fsrv-list
@@ -0,0 +1,2 @@
+bin/xfs
+man/man1/xfs.1.gz
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/host.def
new file mode 100644
index 000000000..0f02f439b
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/host.def
@@ -0,0 +1,8 @@
+/*
+ * Host.def for building FreeBSD/a.out bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/host.def,v 1.3 2000/03/07 14:47:32 dawes Exp $
+ */
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-excl
new file mode 100644
index 000000000..d7fb5cb03
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-excl
@@ -0,0 +1,14 @@
+lib/X11/XF86Setup
+lib/X11/app-defaults
+lib/X11/config
+lib/X11/doc
+lib/X11/fonts
+lib/X11/fs
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
+lib/X11/xinit
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-list
new file mode 100644
index 000000000..9673fea05
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/lib-list
@@ -0,0 +1,2 @@
+lib/X11
+include/X11/bitmaps
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-excl
new file mode 100644
index 000000000..13ac91d5f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-excl
@@ -0,0 +1,3 @@
+man/man1/XF86Setup.1.gz
+man/man1/xfs.1.gz
+man/man1/xmseconfig.1.gz
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-list
new file mode 100644
index 000000000..2a3700c15
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/man-list
@@ -0,0 +1 @@
+man
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/mod-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/mod-list
new file mode 100644
index 000000000..7054fc153
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/mod-list
@@ -0,0 +1 @@
+lib/modules
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/nest-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/nest-list
new file mode 100644
index 000000000..eff754d76
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/nest-list
@@ -0,0 +1 @@
+bin/Xnest
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-excl
new file mode 100644
index 000000000..113d220ef
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-excl
@@ -0,0 +1,5 @@
+lib/Server
+lib/X11
+lib/lib*.so*
+lib/modules
+include/X11/bitmaps
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-list
new file mode 100644
index 000000000..059b71061
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prog-list
@@ -0,0 +1,3 @@
+lib
+include
+lib/X11/config
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prt-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prt-list
new file mode 100644
index 000000000..0646e7927
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/prt-list
@@ -0,0 +1 @@
+bin/Xprt
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/set-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/set-list
new file mode 100644
index 000000000..3bb030a3f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/set-list
@@ -0,0 +1,5 @@
+bin/XF86Setup
+bin/xmseconfig
+lib/X11/XF86Setup
+man/man1/XF86Setup.1.gz
+man/man1/xmseconfig.1.gz
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/vfb-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/vfb-list
new file mode 100644
index 000000000..e2d161bbc
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/vfb-list
@@ -0,0 +1 @@
+bin/Xvfb
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/xserv-list
new file mode 100644
index 000000000..334bbd1e4
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD-aout/xserv-list
@@ -0,0 +1,2 @@
+bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-list
index 01ed1bb8c..ba81399ed 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/bin-list
@@ -1,16 +1,45 @@
bin
-lib/libICE.so.6.3
-lib/libPEX5.so.6.0
-lib/libSM.so.6.0
-lib/libX11.so.6.1
-lib/libXIE.so.6.0
-lib/libXThrStub.so.6.0
-lib/libXaw.so.6.1
-lib/libXext.so.6.3
-lib/libXi.so.6.0
-lib/libXmu.so.6.0
-lib/libXp.so.6.2
-lib/libXt.so.6.0
-lib/libXtst.so.6.1
-lib/liboldX.so.6.0
-lib/X11/app-defaults
+lib/aout
+lib/libGL.so.1
+lib/libGL.so
+lib/libICE.so.6
+lib/libICE.so
+lib/libPEX5.so.6
+lib/libPEX5.so
+lib/libSM.so.6
+lib/libSM.so
+lib/libX11.so.6
+lib/libX11.so
+lib/libXIE.so.6
+lib/libXIE.so
+lib/libXThrStub.so.6
+lib/libXThrStub.so
+lib/libXaw.so.7
+lib/libXaw.so.6
+lib/libXaw.so
+lib/libXext.so.6
+lib/libXext.so
+lib/libXfont.so.1
+lib/libXfont.so
+lib/libXi.so.6
+lib/libXi.so
+lib/libXmu.so.6
+lib/libXmu.so
+lib/libXp.so.6
+lib/libXp.so
+lib/libXpm.so.4
+lib/libXpm.so
+lib/libXt.so.6
+lib/libXt.so
+lib/libXtst.so.6
+lib/libXtst.so
+lib/libdps.so.1
+lib/libdps.so
+lib/libdpstk.so.1
+lib/libdpstk.so
+lib/liboldX.so.6
+lib/liboldX.so
+lib/libpsres.so.1
+lib/libpsres.so
+lib/libxrx.so.6
+lib/libxrx.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/fsrv-list
index c1f479b23..86fc799fa 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1.gz
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/host.def
index ea725aae1..9208cc595 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/host.def
@@ -1,3 +1,8 @@
/*
* Host.def for building FreeBSD bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/host.def,v 1.3 2000/03/07 14:47:31 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/FreeBSD/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin-excl
index 85a119884..5887b2e4d 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin-excl
@@ -10,4 +10,3 @@ bin/xdm
bin/xmseconfig
bin/*.Xaw3d
bin/*.XawXPM
-lib/X11/app-defaults/Chooser
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin1-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin1-excl
index a6d02a6c6..3212813a1 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin1-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/bin1-excl
@@ -11,4 +11,3 @@ bin/xdm
bin/xmseconfig
bin/*.Xaw3d
bin/*.XawXPM
-lib/X11/app-defaults/Chooser
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/fsrv-list
index 0752dba18..b2ee839db 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x.Z
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/lib-excl
index 8c23da458..f9df15a1c 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/lib-excl
@@ -1,9 +1,14 @@
-lib/X11/XF86Setup
+b/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/prog-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/prog-excl
index d719810ec..113d220ef 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/prog-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/prog-excl
@@ -1,5 +1,5 @@
-lib/X11
lib/Server
+lib/X11
lib/lib*.so*
lib/modules
include/X11/bitmaps
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xdm-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xdm-list
index 8fa75b158..ece10840b 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xdm-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xdm-list
@@ -1,3 +1 @@
bin/xdm
-lib/X11/app-defaults/Chooser
-lib/X11/xdm
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Interactive/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list
index 32ff7414b..071c399e9 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/bin-list
@@ -1,4 +1,7 @@
bin
+lib/libGL.so.1.2
+lib/libGL.so.1
+lib/libGL.so
lib/libICE.so.6.3
lib/libICE.so.6
lib/libICE.so
@@ -16,23 +19,42 @@ lib/libXIE.so.6
lib/libXIE.so
lib/libXaw.so.6.1
lib/libXaw.so.6
+lib/libXaw.so.7.0
+lib/libXaw.so.7
lib/libXaw.so
-lib/libXext.so.6.3
+lib/libXext.so.6.4
lib/libXext.so.6
lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so.1
+lib/libXfont.so
lib/libXi.so.6.0
lib/libXi.so.6
lib/libXi.so
-lib/libXmu.so.6.0
+lib/libXmu.so.6.1
lib/libXmu.so.6
lib/libXmu.so
lib/libXp.so.6.2
lib/libXp.so.6
lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so.4
+lib/libXpm.so
lib/libXt.so.6.0
lib/libXt.so.6
lib/libXt.so
lib/libXtst.so.6.1
lib/libXtst.so.6
lib/libXtst.so
-lib/X11/app-defaults
+lib/libdps.so.1.0
+lib/libdps.so.1
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so.1
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so.1
+lib/libpsres.so
+lib/libxrx.so.6.3
+lib/libxrx.so.6
+lib/libxrx.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/fsrv-list
index c70da7456..e18f38dd8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def
index ea725aae1..4d596c623 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def
@@ -1,3 +1,8 @@
/*
- * Host.def for building FreeBSD bindists
+ * Host.def for building Linux/alpha bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/host.def,v 1.4 2000/03/07 14:47:32 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-list
new file mode 100644
index 000000000..ff72b5c73
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/var-list
@@ -0,0 +1 @@
+state
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-axp/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-excl
index 4f85588ab..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-excl
@@ -1,4 +1,5 @@
-bin/XFree86
+bin/XF86_*
+bin/XF98_*
bin/XF86Setup
bin/Xnest
bin/Xprt
@@ -6,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list
index f3a45ec7b..071c399e9 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/bin-list
@@ -1,4 +1,7 @@
bin
+lib/libGL.so.1.2
+lib/libGL.so.1
+lib/libGL.so
lib/libICE.so.6.3
lib/libICE.so.6
lib/libICE.so
@@ -16,37 +19,42 @@ lib/libXIE.so.6
lib/libXIE.so
lib/libXaw.so.6.1
lib/libXaw.so.6
-lib/libXaw.so
-lib/libXaw.so.7
lib/libXaw.so.7.0
+lib/libXaw.so.7
+lib/libXaw.so
lib/libXext.so.6.4
lib/libXext.so.6
lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so.1
+lib/libXfont.so
lib/libXi.so.6.0
lib/libXi.so.6
lib/libXi.so
-lib/libXmu.so.6.0
+lib/libXmu.so.6.1
lib/libXmu.so.6
lib/libXmu.so
lib/libXp.so.6.2
lib/libXp.so.6
lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so.4
+lib/libXpm.so
lib/libXt.so.6.0
lib/libXt.so.6
lib/libXt.so
lib/libXtst.so.6.1
lib/libXtst.so.6
lib/libXtst.so
-lib/libGL.so
-lib/libGL.so.1
-lib/libGL.so.1.2
-lib/libXfont.so
-lib/libXfont.so.1
-lib/libXfont.so.1.0
-lib/libxrx.so
-lib/libxrx.so.6
+lib/libdps.so.1.0
+lib/libdps.so.1
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so.1
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so.1
+lib/libpsres.so
lib/libxrx.so.6.3
-lib/libXpm.so
-lib/libXpm.so.4
-lib/libXpm.so.4.11
-lib/X11/app-defaults
+lib/libxrx.so.6
+lib/libxrx.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/fsrv-list
index c70da7456..e18f38dd8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def
index ea725aae1..2b7697375 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def
@@ -1,3 +1,14 @@
/*
- * Host.def for building FreeBSD bindists
+ * Host.def for building Linux/ix86 bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/host.def,v 1.5 2000/03/07 14:47:33 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
+
+/* Need to have glide 2 and glide 3 installed */
+
+#define HasGlide2 YES
+#define HasGlide3 YES
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-list
new file mode 100644
index 000000000..ff72b5c73
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/var-list
@@ -0,0 +1 @@
+state
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ix86/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-excl
index f1b0e119d..017d014bf 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-excl
@@ -1,6 +1,6 @@
-bin/XF68_*
bin/XF86_*
bin/XF98_*
+bin/XF68_*
bin/XF86Setup
bin/Xnest
bin/Xprt
@@ -8,3 +8,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list
index 46bf7d3d0..071c399e9 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/bin-list
@@ -1,4 +1,7 @@
bin
+lib/libGL.so.1.2
+lib/libGL.so.1
+lib/libGL.so
lib/libICE.so.6.3
lib/libICE.so.6
lib/libICE.so
@@ -16,24 +19,42 @@ lib/libXIE.so.6
lib/libXIE.so
lib/libXaw.so.6.1
lib/libXaw.so.6
+lib/libXaw.so.7.0
+lib/libXaw.so.7
lib/libXaw.so
-lib/libXext.so.6.3
+lib/libXext.so.6.4
lib/libXext.so.6
lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so.1
+lib/libXfont.so
lib/libXi.so.6.0
lib/libXi.so.6
lib/libXi.so
-lib/libXmu.so.6.0
+lib/libXmu.so.6.1
lib/libXmu.so.6
lib/libXmu.so
lib/libXp.so.6.2
lib/libXp.so.6
lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so.4
+lib/libXpm.so
lib/libXt.so.6.0
lib/libXt.so.6
lib/libXt.so
lib/libXtst.so.6.1
lib/libXtst.so.6
lib/libXtst.so
-lib/modules
-lib/X11/app-defaults
+lib/libdps.so.1.0
+lib/libdps.so.1
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so.1
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so.1
+lib/libpsres.so
+lib/libxrx.so.6.3
+lib/libxrx.so.6
+lib/libxrx.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/fsrv-list
index c70da7456..e18f38dd8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/host.def
new file mode 100644
index 000000000..d4553c823
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/host.def
@@ -0,0 +1,8 @@
+/*
+ * Host.def for building Linux/m68k bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/host.def,v 1.4 2000/03/07 14:47:34 dawes Exp $
+ */
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/mod-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/mod-list
new file mode 100644
index 000000000..7054fc153
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/mod-list
@@ -0,0 +1 @@
+lib/modules
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/prog-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/prog-excl
index 63d85c02e..113d220ef 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/prog-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/prog-excl
@@ -1,3 +1,4 @@
+lib/Server
lib/X11
lib/lib*.so*
lib/modules
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/set-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/set-list
new file mode 100644
index 000000000..83d032807
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/set-list
@@ -0,0 +1,5 @@
+bin/XF86Setup
+bin/xmseconfig
+lib/X11/XF86Setup
+man/man1/XF86Setup.1x
+man/man1/xmseconfig.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-list
new file mode 100644
index 000000000..ff72b5c73
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/var-list
@@ -0,0 +1 @@
+state
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/xserv-list
new file mode 100644
index 000000000..334bbd1e4
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-m68k/xserv-list
@@ -0,0 +1,2 @@
+bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-excl
new file mode 100644
index 000000000..c7f43558f
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-excl
@@ -0,0 +1,10 @@
+bin/XF86_*
+bin/XF98_*
+bin/XF86Setup
+bin/Xnest
+bin/Xprt
+bin/Xvfb
+bin/X
+bin/xfs
+bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list
new file mode 100644
index 000000000..071c399e9
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/bin-list
@@ -0,0 +1,60 @@
+bin
+lib/libGL.so.1.2
+lib/libGL.so.1
+lib/libGL.so
+lib/libICE.so.6.3
+lib/libICE.so.6
+lib/libICE.so
+lib/libPEX5.so.6.0
+lib/libPEX5.so.6
+lib/libPEX5.so
+lib/libSM.so.6.0
+lib/libSM.so.6
+lib/libSM.so
+lib/libX11.so.6.1
+lib/libX11.so.6
+lib/libX11.so
+lib/libXIE.so.6.0
+lib/libXIE.so.6
+lib/libXIE.so
+lib/libXaw.so.6.1
+lib/libXaw.so.6
+lib/libXaw.so.7.0
+lib/libXaw.so.7
+lib/libXaw.so
+lib/libXext.so.6.4
+lib/libXext.so.6
+lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so.1
+lib/libXfont.so
+lib/libXi.so.6.0
+lib/libXi.so.6
+lib/libXi.so
+lib/libXmu.so.6.1
+lib/libXmu.so.6
+lib/libXmu.so
+lib/libXp.so.6.2
+lib/libXp.so.6
+lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so.4
+lib/libXpm.so
+lib/libXt.so.6.0
+lib/libXt.so.6
+lib/libXt.so
+lib/libXtst.so.6.1
+lib/libXtst.so.6
+lib/libXtst.so
+lib/libdps.so.1.0
+lib/libdps.so.1
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so.1
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so.1
+lib/libpsres.so
+lib/libxrx.so.6.3
+lib/libxrx.so.6
+lib/libxrx.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/dir
new file mode 100644
index 000000000..11c5b9da7
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/dir
@@ -0,0 +1 @@
+usr/X11R6
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/fsrv-list
new file mode 100644
index 000000000..e18f38dd8
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/fsrv-list
@@ -0,0 +1,2 @@
+bin/xfs
+man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/host.def
new file mode 100644
index 000000000..4e3d78ad3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/host.def
@@ -0,0 +1,8 @@
+/*
+ * Host.def for building Linux/ppc bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/host.def,v 1.3 2000/03/07 14:47:36 dawes Exp $
+ */
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-excl
new file mode 100644
index 000000000..d7fb5cb03
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-excl
@@ -0,0 +1,14 @@
+lib/X11/XF86Setup
+lib/X11/app-defaults
+lib/X11/config
+lib/X11/doc
+lib/X11/fonts
+lib/X11/fs
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
+lib/X11/xinit
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-list
new file mode 100644
index 000000000..9673fea05
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/lib-list
@@ -0,0 +1,2 @@
+lib/X11
+include/X11/bitmaps
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-excl
new file mode 100644
index 000000000..81792cce1
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-excl
@@ -0,0 +1,3 @@
+man/man1/XF86Setup.1x
+man/man1/xfs.1x
+man/man1/xmseconfig.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-list
new file mode 100644
index 000000000..2a3700c15
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/man-list
@@ -0,0 +1 @@
+man
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/mod-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/mod-list
new file mode 100644
index 000000000..7054fc153
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/mod-list
@@ -0,0 +1 @@
+lib/modules
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/nest-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/nest-list
new file mode 100644
index 000000000..eff754d76
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/nest-list
@@ -0,0 +1 @@
+bin/Xnest
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-excl
new file mode 100644
index 000000000..113d220ef
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-excl
@@ -0,0 +1,5 @@
+lib/Server
+lib/X11
+lib/lib*.so*
+lib/modules
+include/X11/bitmaps
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-list
new file mode 100644
index 000000000..059b71061
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prog-list
@@ -0,0 +1,3 @@
+lib
+include
+lib/X11/config
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prt-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prt-list
new file mode 100644
index 000000000..0646e7927
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/prt-list
@@ -0,0 +1 @@
+bin/Xprt
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/set-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/set-list
new file mode 100644
index 000000000..83d032807
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/set-list
@@ -0,0 +1,5 @@
+bin/XF86Setup
+bin/xmseconfig
+lib/X11/XF86Setup
+man/man1/XF86Setup.1x
+man/man1/xmseconfig.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-list
new file mode 100644
index 000000000..ff72b5c73
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/var-list
@@ -0,0 +1 @@
+state
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/vfb-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/vfb-list
new file mode 100644
index 000000000..e2d161bbc
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/vfb-list
@@ -0,0 +1 @@
+bin/Xvfb
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/xserv-list
new file mode 100644
index 000000000..334bbd1e4
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Linux-ppc/xserv-list
@@ -0,0 +1,2 @@
+bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-excl
index 08f6677d5..cd36988f8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-excl
@@ -6,3 +6,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-list
index 083c3d1b5..ba077a403 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/bin-list
@@ -1,3 +1 @@
bin
-lib/modules
-lib/X11/app-defaults
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/fsrv-list
index 54f143c91..4007dc9fd 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/cat1/xfs.1
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def
index 8ea3f7d55..03c9bc7ca 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def
@@ -1,11 +1,8 @@
/*
* host.def for building LynxOS binary dists
*
- * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def,v 1.2 1997/07/10 08:17:33 hohndel Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/host.def,v 1.3 2000/03/03 20:02:16 dawes Exp $
*/
-#define InstallEmptyHostDef
-
-#define HasTk YES
-#define HasTcl YES
-
+#define HasLibCrypt YES
+#define HasMTRRSupport YES
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/mod-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/mod-list
new file mode 100644
index 000000000..7054fc153
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/mod-list
@@ -0,0 +1 @@
+lib/modules
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/xserv-list
new file mode 100644
index 000000000..334bbd1e4
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/LynxOS/xserv-list
@@ -0,0 +1,2 @@
+bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list
index 1f6cca63c..c7e9bd845 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/bin-list
@@ -1,15 +1,21 @@
bin
+lib/libGL.so.1.2
lib/libICE.so.6.3
lib/libPEX5.so.6.0
lib/libSM.so.6.0
lib/libX11.so.6.1
lib/libXIE.so.6.0
lib/libXaw.so.6.1
-lib/libXext.so.6.3
+lib/libXaw.so.7.0
+lib/libXext.so.6.4
+lib/libXfont.so.1.3
lib/libXi.so.6.0
-lib/libXmu.so.6.0
+lib/libXmu.so.6.1
lib/libXp.so.6.2
+lib/libXpm.so.4.11
lib/libXt.so.6.0
lib/libXtst.so.6.1
+lib/libdps.so.1.0
+lib/libdpstk.so.1.0
lib/liboldX.so.6.0
-lib/X11/app-defaults
+lib/libpsres.so.1.0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/fsrv-list
index c1f479b23..e4decc9eb 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
-man/man1/xfs.1.gz
+man/cat1/xfs.0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/host.def
index ea725aae1..a63db92a8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/host.def
@@ -1,3 +1,8 @@
/*
- * Host.def for building FreeBSD bindists
+ * Host.def for building NetBSD bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/host.def,v 1.3 2000/03/07 14:47:36 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/man-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/man-excl
index 13ac91d5f..1ea82551a 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/man-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/man-excl
@@ -1,3 +1,3 @@
-man/man1/XF86Setup.1.gz
-man/man1/xfs.1.gz
-man/man1/xmseconfig.1.gz
+man/cat1/XF86Setup.0
+man/cat1/xfs.0
+man/cat1/xmseconfig.0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/set-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/set-list
index 3bb030a3f..ac2d180b8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/set-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/set-list
@@ -1,5 +1,5 @@
bin/XF86Setup
bin/xmseconfig
lib/X11/XF86Setup
-man/man1/XF86Setup.1.gz
-man/man1/xmseconfig.1.gz
+man/cat1/XF86Setup.0
+man/cat1/xmseconfig.0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/NetBSD-ix86/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list
index e5d1a9397..3adce5d13 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/bin-list
@@ -1,16 +1,22 @@
bin
+lib/libGL.so.1.2
lib/libICE.so.6.3
lib/libPEX5.so.6.0
lib/libSM.so.6.0
lib/libX11.so.6.1
lib/libXIE.so.6.0
+lib/libXThrStub.so.6.0
lib/libXaw.so.6.1
-lib/libXext.so.6.3
+lib/libXaw.so.7.0
+lib/libXext.so.6.4
+lib/libXfont.so.1.3
lib/libXi.so.6.0
-lib/libXmu.so.6.0
+lib/libXmu.so.6.1
lib/libXp.so.6.2
+lib/libXpm.so.4.11
lib/libXt.so.6.0
lib/libXtst.so.6.1
+lib/libdps.so.1.0
+lib/libdpstk.so.1.0
lib/liboldX.so.6.0
-lib/modules
-lib/X11/app-defaults
+lib/libpsres.so.1.0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/fsrv-list
index 46aa7cd6a..e4decc9eb 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/cat1/xfs.0
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def
index bc6940165..1d3de627c 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def
@@ -1,7 +1,7 @@
/*
- * Host.def for building OpenBSD bindists
+ * Host.def for building OpenBSD/ix86 bindists
*
- * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def,v 1.2 1997/08/26 10:53:22 hohndel Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/host.def,v 1.3 2000/02/27 01:29:03 dawes Exp $
*/
#define InstallEmptyHostDef
@@ -13,4 +13,3 @@
#define TkLibName tk41
#define TclLibName tcl75
-#define JoystickSupport YES
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/mod-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/mod-list
new file mode 100644
index 000000000..7054fc153
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/mod-list
@@ -0,0 +1 @@
+lib/modules
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-ix86/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def
index 9c3edb8c7..11b7963e0 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def
@@ -1,7 +1,7 @@
/*
- * Host.def for building OpenBSD bindists
+ * Host.def for building OpenBSD/sparc bindists
*
- * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def,v 1.1 1997/10/25 13:50:40 hohndel Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/OpenBSD-sparc/host.def,v 1.2 2000/02/27 01:39:18 dawes Exp $
*/
#define InstallEmptyHostDef
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list
index a25d9c515..10ec8123e 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/bin-list
@@ -1,28 +1,38 @@
bin
+lib/libGL.so.1.2
+lib/libGL.so
lib/libICE.so.6.3
-lib/libPEX5.so.6.0
-lib/libSM.so.6.0
-lib/libX11.so.6.1
-lib/libXIE.so.6.0
-lib/libXaw.so.6.1
-lib/libXext.so.6.3
-lib/libXi.so.6.0
-lib/libXmu.so.6.0
-lib/libXp.so.6.2
-lib/libXt.so.6.0
-lib/libXtst.so.6.1
-lib/liboldX.so.6.0
lib/libICE.so
+lib/libPEX5.so.6.0
lib/libPEX5.so
+lib/libSM.so.6.0
lib/libSM.so
+lib/libX11.so.6.1
lib/libX11.so
+lib/libXIE.so.6.0
lib/libXIE.so
+lib/libXaw.so.6.1
+lib/libXaw.so.7.0
lib/libXaw.so
+lib/libXext.so.6.4
lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so
+lib/libXi.so.6.0
lib/libXi.so
+lib/libXmu.so.6.1
lib/libXmu.so
+lib/libXp.so.6.2
lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so
+lib/libXt.so.6.0
lib/libXt.so
+lib/libXtst.so.6.1
lib/libXtst.so
-lib/liboldX.so
-lib/X11/app-defaults
+lib/libdps.so.1.0
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/fsrv-list
index c70da7456..e18f38dd8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/host.def
index ea725aae1..fdeeb09ae 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/host.def
@@ -1,3 +1,8 @@
/*
- * Host.def for building FreeBSD bindists
+ * Host.def for building SVR4.0 bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/host.def,v 1.3 2000/03/07 14:47:37 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/SVR4.0/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list
index a25d9c515..10ec8123e 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/bin-list
@@ -1,28 +1,38 @@
bin
+lib/libGL.so.1.2
+lib/libGL.so
lib/libICE.so.6.3
-lib/libPEX5.so.6.0
-lib/libSM.so.6.0
-lib/libX11.so.6.1
-lib/libXIE.so.6.0
-lib/libXaw.so.6.1
-lib/libXext.so.6.3
-lib/libXi.so.6.0
-lib/libXmu.so.6.0
-lib/libXp.so.6.2
-lib/libXt.so.6.0
-lib/libXtst.so.6.1
-lib/liboldX.so.6.0
lib/libICE.so
+lib/libPEX5.so.6.0
lib/libPEX5.so
+lib/libSM.so.6.0
lib/libSM.so
+lib/libX11.so.6.1
lib/libX11.so
+lib/libXIE.so.6.0
lib/libXIE.so
+lib/libXaw.so.6.1
+lib/libXaw.so.7.0
lib/libXaw.so
+lib/libXext.so.6.4
lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so
+lib/libXi.so.6.0
lib/libXi.so
+lib/libXmu.so.6.1
lib/libXmu.so
+lib/libXp.so.6.2
lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so
+lib/libXt.so.6.0
lib/libXt.so
+lib/libXtst.so.6.1
lib/libXtst.so
-lib/liboldX.so
-lib/X11/app-defaults
+lib/libdps.so.1.0
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/fsrv-list
index c70da7456..e18f38dd8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/host.def
index ea725aae1..2392ea639 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/host.def
@@ -1,3 +1,8 @@
/*
- * Host.def for building FreeBSD bindists
+ * Host.def for building Solaris bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/host.def,v 1.3 2000/03/07 14:47:38 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/Solaris/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-excl
index c007d9590..c7f43558f 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-excl
@@ -7,3 +7,4 @@ bin/Xvfb
bin/X
bin/xfs
bin/xmseconfig
+bin/XFree86
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list
index a25d9c515..10ec8123e 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/bin-list
@@ -1,28 +1,38 @@
bin
+lib/libGL.so.1.2
+lib/libGL.so
lib/libICE.so.6.3
-lib/libPEX5.so.6.0
-lib/libSM.so.6.0
-lib/libX11.so.6.1
-lib/libXIE.so.6.0
-lib/libXaw.so.6.1
-lib/libXext.so.6.3
-lib/libXi.so.6.0
-lib/libXmu.so.6.0
-lib/libXp.so.6.2
-lib/libXt.so.6.0
-lib/libXtst.so.6.1
-lib/liboldX.so.6.0
lib/libICE.so
+lib/libPEX5.so.6.0
lib/libPEX5.so
+lib/libSM.so.6.0
lib/libSM.so
+lib/libX11.so.6.1
lib/libX11.so
+lib/libXIE.so.6.0
lib/libXIE.so
+lib/libXaw.so.6.1
+lib/libXaw.so.7.0
lib/libXaw.so
+lib/libXext.so.6.4
lib/libXext.so
+lib/libXfont.so.1.3
+lib/libXfont.so
+lib/libXi.so.6.0
lib/libXi.so
+lib/libXmu.so.6.1
lib/libXmu.so
+lib/libXp.so.6.2
lib/libXp.so
+lib/libXpm.so.4.11
+lib/libXpm.so
+lib/libXt.so.6.0
lib/libXt.so
+lib/libXtst.so.6.1
lib/libXtst.so
-lib/liboldX.so
-lib/X11/app-defaults
+lib/libdps.so.1.0
+lib/libdps.so
+lib/libdpstk.so.1.0
+lib/libdpstk.so
+lib/libpsres.so.1.0
+lib/libpsres.so
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-dir
new file mode 100644
index 000000000..412cec0c3
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-dir
@@ -0,0 +1 @@
+etc/X11
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-list
new file mode 100644
index 000000000..9c558e357
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/etc-list
@@ -0,0 +1 @@
+.
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/fsrv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/fsrv-list
index c70da7456..e18f38dd8 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/fsrv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/fsrv-list
@@ -1,3 +1,2 @@
bin/xfs
-lib/X11/fs
man/man1/xfs.1x
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/host.def
index ea725aae1..647056fc1 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/host.def
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/host.def
@@ -1,3 +1,8 @@
/*
- * Host.def for building FreeBSD bindists
+ * Host.def for building UnixWare bindists
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/host.def,v 1.3 2000/03/07 14:47:39 dawes Exp $
*/
+
+#define InstallEmptyHostDef
+
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/lib-excl b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/lib-excl
index 3572f4206..d7fb5cb03 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/lib-excl
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/lib-excl
@@ -1,12 +1,14 @@
lib/X11/XF86Setup
lib/X11/app-defaults
lib/X11/config
+lib/X11/doc
lib/X11/fonts
lib/X11/fs
-lib/X11/xdm/GiveConsole
-lib/X11/xdm/TakeConsole
-lib/X11/xdm/X*
-lib/X11/xdm/xdm-*
+lib/X11/lbxproxy
+lib/X11/proxymngr
+lib/X11/rstart
+lib/X11/twm
+lib/X11/xdm
lib/X11/xinit
-lib/X11/doc
-lib/X11/XF86Setup
+lib/X11/xsm
+lib/X11/xserver
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-dir b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-dir
new file mode 100644
index 000000000..186857b9e
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-dir
@@ -0,0 +1 @@
+var
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-list
new file mode 100644
index 000000000..65eef93d6
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/var-list
@@ -0,0 +1 @@
+db
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/xserv-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/xserv-list
index 0035b6c30..334bbd1e4 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/xserv-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/UnixWare/xserv-list
@@ -1 +1,2 @@
bin/XFree86
+bin/X
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist b/xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist
index ab2a24c77..588f5d00c 100755
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist
@@ -1,11 +1,11 @@
#!/bin/sh
#
-# $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist,v 1.1 1997/05/27 03:47:02 dawes Exp $
+# $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/build-bindist,v 1.3 2000/02/22 17:11:41 dawes Exp $
#
Usage()
{
- echo `basename $0` [-l] version from-dir to-dir
+ echo `basename $0` [-l] [prefix] from-dir to-dir
exit 1
}
@@ -18,13 +18,21 @@ case $1 in
;;
esac
-if [ $# != 3 ]; then
- Usage
-fi
-
-VERS=$1
-FROMDIR=$2
-TODIR=$3
+case $# in
+3)
+ PRE=$1
+ shift
+ ;;
+2)
+ PRE=X
+ ;;
+*)
+ Usage
+ ;;
+esac
+
+FROMDIR=$1
+TODIR=$2
if [ ! -d $FROMDIR ]; then
echo No such dir $FROMDIR
@@ -88,10 +96,10 @@ for d in $SUBDIRS; do
echo No file $DIRFILE in $TODIR/$d
# exit 3
else
- PREFIX=`cat $DIRFILE`
+ DEFPREFIX=`cat $DIRFILE`
for i in *-list; do
name=`basename $i -list`
- tarball=$VERS$name.tgz
+ tarball=$PRE$name.tgz
echo creating $tarball
lfile="-T $TODIR/$d/$i"
if [ -f $name-excl ]; then
@@ -99,6 +107,11 @@ for d in $SUBDIRS; do
else
xfile=""
fi
+ if [ -f $name-dir ]; then
+ PREFIX=`cat $name-dir`
+ else
+ PREFIX=$DEFPREFIX
+ fi
(cd $FROMDIR/$PREFIX
$TAR $TAROPTS -f $TODIR/$BINDIR/$tarball $lfile $xfile
)
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/common/extras b/xc/programs/Xserver/hw/xfree86/etc/bindist/common/extras
index a8968c86f..41ca56c8c 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/common/extras
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/common/extras
@@ -1,5 +1,5 @@
-lib/X11/doc/BetaReport
+lib/X11/doc/BugReport
lib/X11/doc/RELNOTES
lib/X11/doc/README
-lib/X11/etc/postinst.sh
-lib/X11/etc/preinst.sh
+lib/X11/doc/Install
+lib/X11/etc/Xinstall.sh
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/common/fnon-list b/xc/programs/Xserver/hw/xfree86/etc/bindist/common/fnon-list
index 7da919b6e..a87d01f47 100644
--- a/xc/programs/Xserver/hw/xfree86/etc/bindist/common/fnon-list
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/common/fnon-list
@@ -4,8 +4,6 @@ lib/X11/fonts/misc/gb24st.pcf.gz
lib/X11/fonts/misc/hanglg16.pcf.gz
lib/X11/fonts/misc/hanglm16.pcf.gz
lib/X11/fonts/misc/hanglm24.pcf.gz
-lib/X11/fonts/misc/heb6x13.pcf.gz
-lib/X11/fonts/misc/heb8x13.pcf.gz
lib/X11/fonts/misc/jiskan16.pcf.gz
lib/X11/fonts/misc/jiskan24.pcf.gz
lib/X11/fonts/misc/k14.pcf.gz
diff --git a/xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def b/xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def
new file mode 100644
index 000000000..2d926a581
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def
@@ -0,0 +1,19 @@
+/*
+ * host.def for building the common component of the XFree86 bindists.
+ *
+ * The settings here require the following to be installed:
+ *
+ * - XFree86 doctools package (requires groff)
+ * - nroff/troff or groff
+ *
+ * $XFree86: xc/programs/Xserver/hw/xfree86/etc/bindist/common/host.def,v 1.4 2000/03/03 23:16:25 dawes Exp $
+ */
+
+#define HasSgmlFmt YES
+#define BuildAllDocs YES
+#define InstallJapaneseDocs YES
+
+#define BuildSpecsDocs YES
+#define SpecsDocDirs GL Xext Xv xterm
+
+
diff --git a/xc/programs/Xserver/hw/xfree86/input/Imakefile b/xc/programs/Xserver/hw/xfree86/input/Imakefile
index 83ee782bf..ed9ae9e17 100644
--- a/xc/programs/Xserver/hw/xfree86/input/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/input/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/Imakefile,v 1.12 1999/09/04 13:04:39 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/Imakefile,v 1.14 2000/03/05 19:26:46 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -8,10 +8,14 @@ XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/Imakefile,v 1.12 1999/09/04
JOYSTICKDIR = joystick
#endif
-MOUSEDIR = mouse
+/*
+ * The keyboard directory only has a man page so far! The driver is
+ * still built in to the common layer.
+ */
+KBDDIR = keyboard
-SUBDIRS = $(MOUSEDIR) XInputDrivers $(JOYSTICKDIR)
-DRIVERS = mouse XInputDrivers
+SUBDIRS = XInputDrivers $(JOYSTICKDIR) $(KBDDIR)
+DRIVERS = XInputDrivers
#ifndef OS2Architecture
OBJS = `cat idriver.list`
@@ -24,7 +28,7 @@ MakeSubdirs($(SUBDIRS))
#endif
#if MakeHasPosixVariableSubstitutions
-DONES = $(SUBDIRS:%=%/DONE)
+DONES = $(DRIVERS:%=%/DONE)
#if HasGnuMake || HasBsdMake
$(DONES): $(SUBDIRS)
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile b/xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile
index 537e4d716..bfbebd427 100644
--- a/xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile,v 1.2 1999/08/14 10:49:59 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/dynapro/Imakefile,v 1.3 2000/03/03 01:05:48 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -21,6 +21,11 @@ ObjectModuleTarget($(DRIVER),$(OBJS))
InstallObjectModule($(DRIVER),$(MODULEDIR),input)
+#if !defined(XF86DriverSDK)
+CppManTarget($(DRIVER),)
+InstallModuleManPage($(DRIVER))
+#endif
+
DependTarget()
InstallDriverSDKObjectModule($(DRIVER),$(DRIVERSDKMODULEDIR),input)
diff --git a/xc/programs/Xserver/hw/xfree86/input/dynapro/dynapro.cpp b/xc/programs/Xserver/hw/xfree86/input/dynapro/dynapro.cpp
new file mode 100644
index 000000000..55b8870cd
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/dynapro/dynapro.cpp
@@ -0,0 +1,37 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/dynapro/dynapro.cpp,v 1.1 2000/03/03 01:05:48 dawes Exp $
+.TH DYNAPRO __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+dynapro \- Dynapro input driver
+.SH SYNOPSIS
+.B "Section ""InputDevice"""
+.br
+.BI " Identifier """ idevname """"
+.br
+.B " Driver ""dynapro"""
+.br
+.BI " Option ""Device"" """ devpath """"
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B dynapro
+is an XFree86 input driver for Dynapro devices...
+.PP
+The
+.B dynapro
+driver functions as a pointer input device, and may be used as the
+X server's core pointer.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+What is supported...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details and for options that can be used with all input drivers. This
+section only covers configuration details specific to this driver.
+.PP
+Config details...
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1).
+.SH AUTHORS
+Authors include...
diff --git a/xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile b/xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile
new file mode 100644
index 000000000..a9cabdfa7
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile
@@ -0,0 +1,12 @@
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/keyboard/Imakefile,v 1.1 2000/03/03 01:05:48 dawes Exp $
+
+#define IHaveModules
+#include <Server.tmpl>
+
+DRIVER = keyboard
+
+#if !defined(XF86DriverSDK)
+CppManTarget($(DRIVER),)
+InstallModuleManPage($(DRIVER))
+#endif
+
diff --git a/xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.cpp b/xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.cpp
new file mode 100644
index 000000000..dab66ca60
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.cpp
@@ -0,0 +1,97 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/keyboard/keyboard.cpp,v 1.1 2000/03/03 01:05:49 dawes Exp $
+.TH KEYBOARD __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+keyboard \- Keyboard input driver
+.SH SYNOPSIS
+.B "Section ""InputDevice"""
+.br
+.BI " Identifier """ idevname """"
+.br
+.B " Driver ""keyboard"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B keyboard
+is an XFree86 input driver for keyboards. The driver supports the standard
+OS-provided keyboard interface. This driver is currently built-in to
+the core X server.
+.PP
+The
+.B keyboard
+driver functions as a keyboard input device, and may be used as the
+X server's core keyboard. This driver is currently built-in to the core
+X server, and multiple instances are not yet supported.
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details and for options that can be used with all input drivers. This
+section only covers configuration details specific to this driver.
+.PP
+The following driver
+.B Options
+are supported:
+.TP 7
+.BI "Option ""Protocol"" """ string """
+Specify the mouse protocol. Valid protocol types include:
+.PP
+.RS 12
+Standard, Xqueue.
+.RE
+.PP
+.RS 7
+Not all protocols are supported on all platforms. Default: "Standard".
+.RE
+.TP 7
+.BI "Option ""AutoRepeat"" """ "delay rate" """
+sets the auto repeat behaviour for the keyboard. This is not implemented
+on all platforms.
+.I delay
+is the time in milliseconds before a key starts repeating.
+.I rate
+is the number of times a key repeats per second. Default: "500 30".
+.TP 7
+.BI "Option ""XLeds"" """ ledlist """
+makes the keyboard LEDs specified in
+.I ledlist
+available for client use instead of their traditional function
+(Scroll Lock, Caps Lock and Num Lock). The numbers in the list are
+in the range 1 to 3. Default: empty list.
+.TP 7
+.BI "Option ""XkbDisable"" """ boolean """
+disable/enable the XKEYBOARD extension. The \-kb command line
+option overrides this config file option. Default: XKB is enabled.
+.TP 7
+.BI "Option ""XkbRules"" """ rules """
+specifies which XKB rules file to use for interpreting the
+.BR XkbModel ,
+.BR XkbLayout ,
+.BR XkbVariant ,
+and
+.B XkbOptions
+settings. Default: "xfree86" for most platforms, but "xfree98" for the
+Japanese PC-98 platforms.
+.TP 7
+.BI "Option ""XkbModel"" """ modelname """
+specifies the XKB keyboard model name. Default: "pc101" for most platforms,
+but "pc98" for the Japanese PC-98 platforms, and "pc101_sol8x86" for
+Solaris 8 on x86.
+.TP 7
+.BI "Option ""XkbLayout"" """ layoutname """
+specifies the XKB keyboard layout name. This is usually the country or
+language type of the keyboard. Default: "us" for most platforms, but
+"nec/jp" for the Japanese PC-98 platforms.
+.TP 7
+.BI "Option ""XkbVariant"" """ variants """
+specifies the XKB keyboard variant components. These can be used to
+enhance the keyboard layout details. Default: not set.
+.TP 7
+.BI "Option ""XkbOptions"" """ options """
+specifies the XKB keyboard option components. These can be used to
+enhance the keyboard behaviour. Default: not set.
+.PP
+Some other XKB-related options are available, but they are incompatible
+with the ones listed above and are not recommended, so they are not
+documented here.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1).
diff --git a/xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile b/xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile
index 66e66c6ae..fc449cf34 100644
--- a/xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile,v 1.4 1999/08/14 10:50:01 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/microtouch/Imakefile,v 1.5 2000/03/03 01:05:49 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -21,6 +21,11 @@ ObjectModuleTarget($(DRIVER),$(OBJS))
InstallObjectModule($(DRIVER),$(MODULEDIR),input)
+#if !defined(XF86DriverSDK)
+CppManTarget($(DRIVER),)
+InstallModuleManPage($(DRIVER))
+#endif
+
DependTarget()
InstallDriverSDKObjectModule($(DRIVER),$(DRIVERSDKMODULEDIR),input)
diff --git a/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.cpp b/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.cpp
new file mode 100644
index 000000000..3507b8f50
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.cpp
@@ -0,0 +1,37 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.cpp,v 1.1 2000/03/03 01:05:49 dawes Exp $
+.TH MICROTOUCH __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+microtouch \- MicroTouch input driver
+.SH SYNOPSIS
+.B "Section ""InputDevice"""
+.br
+.BI " Identifier """ idevname """"
+.br
+.B " Driver ""microtouch"""
+.br
+.BI " Option ""Device"" """ devpath """"
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B microtouch
+is an XFree86 input driver for MicroTouch devices...
+.PP
+The
+.B microtouch
+driver functions as a pointer input device, and may be used as the
+X server's core pointer.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+What is supported...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details and for options that can be used with all input drivers. This
+section only covers configuration details specific to this driver.
+.PP
+Config details...
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1).
+.SH AUTHORS
+Authors include...
diff --git a/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h b/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h
index a3b14adf9..696b12e77 100644
--- a/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h
+++ b/xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h
@@ -24,7 +24,7 @@
* in this Software without prior written authorization from Metro Link.
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h,v 1.3 1999/08/28 09:01:17 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/input/microtouch/microtouch.h,v 1.4 2000/03/03 20:36:41 dawes Exp $ */
#ifndef _microtouch_H_
#define _microtouch_H_
@@ -120,8 +120,6 @@ MuTPrivateRec, *MuTPrivatePtr;
/******************************************************************************
* Declarations
*****************************************************************************/
-static MODULESETUPPROTO( SetupProc );
-static void TearDownProc( pointer p );
/*int DumpOpts (XF86OptionPtr opts); */
static Bool DeviceControl (DeviceIntPtr dev, int mode);
static Bool DeviceOn (DeviceIntPtr dev);
diff --git a/xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile b/xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile
index 6c49d210c..ee06a2796 100644
--- a/xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile,v 1.3 1999/08/14 10:50:02 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/mouse/Imakefile,v 1.4 2000/03/03 01:05:50 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -24,6 +24,11 @@ ObjectModuleTarget($(DRIVER),$(OBJS))
InstallObjectModule($(DRIVER),$(MODULEDIR),input)
+#if !defined(XF86DriverSDK)
+CppManTarget($(DRIVER),)
+InstallModuleManPage($(DRIVER))
+#endif
+
DependTarget()
InstallDriverSDKObjectModule($(DRIVER),$(DRIVERSDKMODULEDIR),input)
diff --git a/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c b/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c
index 927a93546..04afed9f1 100644
--- a/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c
+++ b/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c,v 1.26 2000/02/17 15:20:17 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/input/mouse/mouse.c,v 1.28 2000/03/06 22:59:33 dawes Exp $ */
/*
*
* Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
@@ -68,7 +68,6 @@ static void MouseUnInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags);
#endif
static int MouseProc(DeviceIntPtr device, int what);
-static void MouseNoSigioReadInput(InputInfoPtr pInfo);
static Bool MouseConvert(LocalDevicePtr local, int first, int num, int v0,
int v1, int v2, int v3, int v4, int v5, int *x,
int *y);
@@ -1688,21 +1687,31 @@ MouseDoPostEvent(InputInfoPtr pInfo, int buttons, int dx, int dy)
change = buttons ^ reverseBits(hitachMap, pMse->lastButtons);
else
change = buttons ^ reverseBits(reverseMap, pMse->lastButtons);
- if (change & 02)
- xf86PostButtonEvent(pInfo->dev, 0, 2, (buttons & 02), 0, 0);
+
+ /*
+ * process button 2, 4 and above
+ */
+ change &= ~0x05;
+ while (change) {
+ id = ffs(change);
+ change &= ~(1 << (id - 1));
+ xf86PostButtonEvent(pInfo->dev, 0, id,
+ (buttons & (1 << (id - 1))), 0, 0);
+ }
/*
* emulate the third button by the other two
*/
- if ((id = stateTab[(buttons & 0x07) + pMse->emulateState][0]) != 0)
+ buttons &= 0x07;
+ if ((id = stateTab[buttons + pMse->emulateState][0]) != 0)
xf86PostButtonEvent(pInfo->dev, 0, abs(id), (id >= 0), 0, 0);
- if ((id = stateTab[(buttons & 0x07) + pMse->emulateState][1]) != 0)
+ if ((id = stateTab[buttons + pMse->emulateState][1]) != 0)
xf86PostButtonEvent(pInfo->dev, 0, abs(id), (id >= 0), 0, 0);
- pMse->emulateState = stateTab[(buttons & 0x07) + pMse->emulateState][2];
- if (stateTab[(buttons & 0x07) + pMse->emulateState][0] ||
- stateTab[(buttons & 0x07) + pMse->emulateState][1]) {
+ pMse->emulateState = stateTab[buttons + pMse->emulateState][2];
+ if (stateTab[buttons + pMse->emulateState][0] ||
+ stateTab[buttons + pMse->emulateState][1]) {
pMse->truebuttons = truebuttons;
timer = TimerSet(timer, 0, pMse->emulate3Timeout, buttonTimer,
pInfo);
diff --git a/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.cpp b/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.cpp
new file mode 100644
index 000000000..9c3dfce4d
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/mouse/mouse.cpp
@@ -0,0 +1,152 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/mouse/mouse.cpp,v 1.1 2000/03/03 01:05:50 dawes Exp $
+.TH MOUSE __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+mouse \- Mouse input driver
+.SH SYNOPSIS
+.B "Section ""InputDevice"""
+.br
+.BI " Identifier """ idevname """"
+.br
+.B " Driver ""mouse"""
+.br
+.BI " Option ""Protocol"" """ protoname """"
+.br
+.BI " Option ""Device"" """ devpath """"
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B mouse
+is an XFree86 input driver for mice. The driver supports most available
+mouse types and interfaces. USB mice are only supported on some OSs,
+and the level of support for PS/2 mice depends on the OS.
+.PP
+The
+.B mouse
+driver functions as a pointer input device, and may be used as the
+X server's core pointer. Multiple mice are supported by multiple
+instances of this driver.
+.SH SUPPORTED HARDWARE
+There is a detailed list of hardware that the
+.B mouse
+driver supports in the
+.I README.mouse
+document. This can be found
+in __projectroot__/lib/X11/doc/, or online at
+http://www.xfree86.org/current/mouse.html.
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details and for options that can be used with all input drivers. This
+section only covers configuration details specific to this driver.
+.PP
+The driver can auto-detect the mouse type on some platforms On some
+platforms this is limited to plug and play serial mice, and on some the
+auto-detection works for any mouse that the OS's kernel driver supports.
+On others, it is always necessary to specify the mouse protocol in the
+config file. The
+.I README.mouse
+document contains some detailed information about this.
+.PP
+The following driver
+.B Options
+are supported:
+.TP 7
+.BI "Option ""Protocol"" """ string """
+Specify the mouse protocol. Valid protocol types include:
+.PP
+.RS 12
+Auto, Microsoft, MouseSystems, MMSeries, Logitech, MouseMan, MMHitTab,
+GlidePoint, IntelliMouse, ThinkingMouse, AceCad, PS/2, ImPS/2,
+ExplorerPS/2, ThinkingMousePS/2, MouseManPlusPS/2, GlidePointPS/2,
+NetMousePS/2, NetScrollPS/2, BusMouse, SysMouse, WSMouse, USB, Xqueue.
+.RE
+.PP
+.RS 7
+Not all protocols are supported on all platforms. The "Auto" platform
+specifies that protocol auto-detection should be attempted. There is no
+default protocol setting, and specifying this option is mandatory.
+.TP 7
+.BI "Option ""Device"" """ string """
+Specifies the device through which the mouse can be accessed. A common
+setting is "/dev/mouse", which is often a symbolic link to the real
+device. This option is mandatory, and there is no default setting.
+.TP 7
+.BI "Option ""Buttons"" """ integer """
+Specifies the number of mouse buttons. In cases where the number of buttons
+cannot be auto-detected, the default value is 3.
+.TP 7
+.BI "Option ""Emulate3Buttons"" """ boolean """
+Enable/disable the emulation of the third (middle) mouse button for mice
+which only have two physical buttons. The third button is emulated by
+pressing both buttons simultaneously. Default: off
+.TP 7
+.BI "Option ""Emulate3Timeout"" """ integer """
+Sets the timeout (in milliseconds) that the driver waits before decicing
+if two buttons where pressed "simultaneously" when 3 button emulation is
+enabled. Default: 50.
+.TP 7
+.BI "Option ""ChordMiddle"" """ boolean """
+Enable/disable handling of mice that send left+right events when the middle
+button is used. Default: off.
+.TP 7
+.BI "Option ""ZAxisMapping"" ""X"""
+.TP 7
+.BI "Option ""ZAxisMapping"" ""Y"""
+.TP 7
+.BI "Option ""ZAxisMapping"" """ "N1 N2" """
+.TP 7
+.BI "Option ""ZAxisMapping"" """ "N1 N2 N3 N4" """
+Set the mapping for the Z axis (wheel) motion to buttons or another axis
+.RB ( X
+or
+.BR Y ).
+Button number
+.I N1
+is mapped to the negative Z axis motion and button number
+.I N2
+is mapped to the positive Z axis motion. For mice with two wheels,
+four button numbers can be specified, with the negative and positive motion
+of the second wheel mapped respectively to buttons number
+.I N3
+and
+.IR N4 .
+.TP 7
+.BI "Option ""FlipXY"" """ boolean """
+Enable/disable swapping the X and Y axes. Default: off.
+.TP 7
+.BI "Option ""SampleRate"" """ integer """
+Sets the number of motion/button events the mouse sends per second. Setting
+this is only supported for some mice, including some Logitech mice and
+some PS/2 mice on some platforms. Default: whatever the mouse is
+already set to.
+.TP 7
+.BI "Option ""Resolution"" """ integer """
+Sets the resolution of the device in counts per inch. Setting this is
+only supported for some mice, including some PS/2 mice on some platforms.
+Default: whatever the mouse is already set to.
+.TP 7
+.BI "Option ""ClearDTR"" """ boolean """
+Enable/disable clearing the DTR line on the serial port used by the mouse.
+Some dual-protocol mice require the DTR line to be cleared to operate
+in the non-default protocol. This option is for serial mice only.
+Default: off.
+.TP 7
+.BI "Option ""ClearRTS"" """ boolean """
+Enable/disable clearing the RTS line on the serial port used by the mouse.
+Some dual-protocol mice require the RTS line to be cleared to operate
+in the non-default protocol. This option is for serial mice only.
+Default: off.
+.TP 7
+.BI "Option ""BaudRate"" """ integer """
+Set the baud rate to use for communicating with a serial mouse. This
+option should rarely be required because the default is correct for almost
+all situations. Valid values include: 300, 1200, 2400, 4800, 9600, 19200.
+Default: 1200.
+.PP
+There are some other options that may be used to control various parameters
+for serial port communication, but they are not documented here because
+the driver sets them correctly for each mouse protocol type.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1),
+README.mouse.
diff --git a/xc/programs/Xserver/hw/xfree86/input/void/Imakefile b/xc/programs/Xserver/hw/xfree86/input/void/Imakefile
index f49b06c9a..07579f5f6 100644
--- a/xc/programs/Xserver/hw/xfree86/input/void/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/input/void/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/void/Imakefile,v 1.1 1999/11/19 13:54:57 hohndel Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/void/Imakefile,v 1.2 2000/03/03 01:05:50 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -21,6 +21,11 @@ ObjectModuleTarget($(DRIVER),$(OBJS))
InstallObjectModule($(DRIVER),$(MODULEDIR),input)
+#if !defined(XF86DriverSDK)
+CppManTarget($(DRIVER),)
+InstallModuleManPage($(DRIVER))
+#endif
+
DependTarget()
InstallDriverSDKObjectModule($(DRIVER),$(DRIVERSDKMODULEDIR),input)
diff --git a/xc/programs/Xserver/hw/xfree86/input/void/void.cpp b/xc/programs/Xserver/hw/xfree86/input/void/void.cpp
new file mode 100644
index 000000000..9a321faf9
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/void/void.cpp
@@ -0,0 +1,29 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/void/void.cpp,v 1.1 2000/03/03 01:05:50 dawes Exp $
+.TH VOID __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+void \- null input driver
+.SH SYNOPSIS
+.B "Section ""InputDevice"""
+.br
+.BI " Identifier """ idevname """"
+.br
+.B " Driver ""void"""
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B void
+is an dummy/null XFree86 input driver. It doesn't connect to any
+physical device, and it never delivers any events. It functions as
+both a pointer and keyboard device, and may be used as X server's core
+pointer and/or core keyboard. It's purpose is to allow the X server
+to operate without a core pointer and/or core keyboard.
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details and for options that can be used with all input drivers. This
+driver doesn't have any configuration options in addition to those.
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1).
+.SH AUTHORS
+Authors include...
diff --git a/xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile b/xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile
index 17ffb40b4..571f3ba2e 100644
--- a/xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile,v 1.5 1999/08/14 10:50:04 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/input/wacom/Imakefile,v 1.6 2000/03/03 01:05:51 dawes Exp $
#define IHaveModules
#include <Server.tmpl>
@@ -21,6 +21,11 @@ ObjectModuleTarget($(DRIVER),$(OBJS))
InstallObjectModule($(DRIVER),$(MODULEDIR),input)
+#if !defined(XF86DriverSDK)
+CppManTarget($(DRIVER),)
+InstallModuleManPage($(DRIVER))
+#endif
+
DependTarget()
InstallDriverSDKObjectModule($(DRIVER),$(DRIVERSDKMODULEDIR),input)
diff --git a/xc/programs/Xserver/hw/xfree86/input/wacom/wacom.cpp b/xc/programs/Xserver/hw/xfree86/input/wacom/wacom.cpp
new file mode 100644
index 000000000..a346b4f7c
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/input/wacom/wacom.cpp
@@ -0,0 +1,37 @@
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/input/wacom/wacom.cpp,v 1.1 2000/03/03 01:05:51 dawes Exp $
+.TH WACOM __drivermansuffix__ "Version 4.0" "XFree86"
+.SH NAME
+wacom \- Wacom input driver
+.SH SYNOPSIS
+.B "Section ""InputDevice"""
+.br
+.BI " Identifier """ idevname """"
+.br
+.B " Driver ""wacom"""
+.br
+.BI " Option ""Device"" """ devpath """"
+.br
+\ \ ...
+.br
+.B EndSection
+.SH DESCRIPTION
+.B wacom
+is an XFree86 input driver for Wacom devices...
+.PP
+The
+.B wacom
+driver functions as a pointer input device, and may be used as the
+X server's core pointer.
+THIS MAN PAGE NEEDS TO BE FILLED IN.
+.SH SUPPORTED HARDWARE
+What is supported...
+.SH CONFIGURATION DETAILS
+Please refer to XF86Config(__filemansuffix__) for general configuration
+details and for options that can be used with all input drivers. This
+section only covers configuration details specific to this driver.
+.PP
+Config details...
+.SH "SEE ALSO"
+XFree86(1), XF86Config(__filemansuffix__), xf86config(1), Xserver(1), X(1).
+.SH AUTHORS
+Authors include...
diff --git a/xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c b/xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c
index 142dcf520..05939b214 100644
--- a/xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c
+++ b/xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c
@@ -22,7 +22,7 @@
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c,v 1.16 1999/12/30 03:29:22 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/input/wacom/xf86Wacom.c,v 1.18 2000/03/03 20:36:42 dawes Exp $ */
/*
* This driver is only able to handle the Wacom IV and Wacom V protocols.
@@ -49,7 +49,7 @@
*
*/
-static const char identification[] = "$Identification: 16 $";
+static const char identification[] = "$Identification: 18 $";
#include <xf86Version.h>
@@ -235,6 +235,7 @@ typedef struct
} WacomDeviceState;
#define PEN(ds) (((ds->device_id) & 0x07ff) == 0x0022)
+#define STROKING_PEN(ds) (((ds->device_id) & 0x07ff) == 0x0032)
#define AIRBRUSH(ds) (((ds->device_id) & 0x07ff) == 0x0112)
#define MOUSE_4D(ds) (((ds->device_id) & 0x07ff) == 0x0094)
#define LENS_CURSOR(ds) (((ds->device_id) & 0x07ff) == 0x0096)
@@ -316,6 +317,12 @@ typedef struct _WacomCommonRec
#define SERIAL 14
#define BAUD_RATE 15
#define THRESHOLD 16
+#define MAX_X 17
+#define MAX_Y 18
+#define MAX_Z 19
+#define RESOLUTION_X 20
+#define RESOLUTION_Y 21
+#define RESOLUTION_Z 22
#if !defined(sun) || defined(i386)
static SymTabRec WcmTab[] = {
@@ -336,6 +343,12 @@ static SymTabRec WcmTab[] = {
{ SERIAL, "serial" },
{ BAUD_RATE, "baudrate" },
{ THRESHOLD, "threshold" },
+ { MAX_X, "maxx" },
+ { MAX_Y, "maxy" },
+ { MAX_Z, "maxz" },
+ { RESOLUTION_X, "resolutionx" },
+ { RESOLUTION_Y, "resolutiony" },
+ { RESOLUTION_Z, "resolutionz" },
{ -1, "" }
};
@@ -730,6 +743,54 @@ xf86WcmConfig(LocalDevicePtr *array,
XCONFIG_GIVEN, common->wcmThreshold);
break;
+ case MAX_X:
+ if (xf86GetToken(NULL) != NUMBER)
+ xf86ConfigError("Option number expected");
+ common->wcmMaxX = val->num;
+ if (xf86Verbose)
+ ErrorF("%s Wacom max x = %d\n", XCONFIG_GIVEN, common->wcmMaxX);
+ break;
+
+ case MAX_Y:
+ if (xf86GetToken(NULL) != NUMBER)
+ xf86ConfigError("Option number expected");
+ common->wcmMaxY = val->num;
+ if (xf86Verbose)
+ ErrorF("%s Wacom max y = %d\n", XCONFIG_GIVEN, common->wcmMaxY);
+ break;
+
+ case MAX_Z:
+ if (xf86GetToken(NULL) != NUMBER)
+ xf86ConfigError("Option number expected");
+ common->wcmMaxZ = val->num;
+ if (xf86Verbose)
+ ErrorF("%s Wacom max y = %d\n", XCONFIG_GIVEN, common->wcmMaxZ);
+ break;
+
+ case RESOLUTION_X:
+ if (xf86GetToken(NULL) != NUMBER)
+ xf86ConfigError("Option number expected");
+ common->wcmResolX = val->num;
+ if (xf86Verbose)
+ ErrorF("%s Wacom resolution x = %d\n", XCONFIG_GIVEN, common->wcmResolX);
+ break;
+
+ case RESOLUTION_Y:
+ if (xf86GetToken(NULL) != NUMBER)
+ xf86ConfigError("Option number expected");
+ common->wcmResolY = val->num;
+ if (xf86Verbose)
+ ErrorF("%s Wacom resolution y = %d\n", XCONFIG_GIVEN, common->wcmResolY);
+ break;
+
+ case RESOLUTION_Z:
+ if (xf86GetToken(NULL) != NUMBER)
+ xf86ConfigError("Option number expected");
+ common->wcmResolZ = val->num;
+ if (xf86Verbose)
+ ErrorF("%s Wacom resolution y = %d\n", XCONFIG_GIVEN, common->wcmResolZ);
+ break;
+
case EOF:
FatalError("Unexpected EOF (missing EndSubSection)");
break;
@@ -893,7 +954,6 @@ static int
flush_input_fd(int fd)
{
int err;
- int n_bytes;
fd_set readfds;
struct timeval timeout;
char dummy[1];
@@ -1848,7 +1908,7 @@ xf86WcmReadInput(LocalDevicePtr local)
if ((ds->device_id & 0xf06) != 0x802)
ds->discard_first = 1;
- if (PEN(ds) || INKING_PEN(ds) || AIRBRUSH(ds))
+ if (PEN(ds) || STROKING_PEN(ds) || INKING_PEN(ds) || AIRBRUSH(ds))
ds->device_type = STYLUS_ID;
else if (MOUSE_4D(ds) || LENS_CURSOR(ds))
ds->device_type = CURSOR_ID;
@@ -2027,7 +2087,6 @@ static Bool
xf86WcmOpen(LocalDevicePtr local)
{
#ifndef XFREE86_V4
- struct termios termios_tty;
struct timeval timeout;
#endif
char buffer[256];
@@ -2185,30 +2244,39 @@ xf86WcmOpen(LocalDevicePtr local)
common->wcmResolY = 1000;
is_a_penpartner = 1;
}
- else if (common->wcmProtocolLevel == 4) {
+ else if (common->wcmProtocolLevel == 4 && !(common->wcmResolX && common->wcmResolY)) {
DBG(2, ErrorF("reading config\n"));
- if (!send_request(local->fd, WC_CONFIG, buffer))
- return !Success;
- DBG(2, ErrorF("%s\n", buffer));
- /* The header string is simply a place to put the unwanted
- * config header don't use buffer+xx because the header size
- * varies on different tablets
- */
- if (sscanf(buffer, "%[^,],%d,%d,%d,%d", &header, &a, &b, &common->wcmResolX, &common->wcmResolY) == 5) {
- DBG(6, ErrorF("WC_CONFIG Header = %s\n", header));
+ if (send_request(local->fd, WC_CONFIG, buffer)) {
+ DBG(2, ErrorF("%s\n", buffer));
+ /* The header string is simply a place to put the unwanted
+ * config header don't use buffer+xx because the header size
+ * varies on different tablets
+ */
+ if (sscanf(buffer, "%[^,],%d,%d,%d,%d", header, &a, &b, &common->wcmResolX, &common->wcmResolY) == 5) {
+ DBG(6, ErrorF("WC_CONFIG Header = %s\n", header));
+ }
+ else {
+ ErrorF("WACOM: unable to parse resolution. Using default.\n");
+ common->wcmResolX = common->wcmResolY = 1270;
+ }
}
else {
ErrorF("WACOM: unable to read resolution. Using default.\n");
+ common->wcmResolX = common->wcmResolY = 1270;
}
+
}
- if (!(common->wcmFlags & GRAPHIRE_FLAG)) {
+ if (!(common->wcmFlags & GRAPHIRE_FLAG) && !(common->wcmMaxX && common->wcmMaxY)) {
DBG(2, ErrorF("reading max coordinates\n"));
- if (!send_request(local->fd, WC_COORD, buffer))
+ if (!send_request(local->fd, WC_COORD, buffer)) {
+ ErrorF("WACOM: unable to read max coordinates. Use the MaxX and MaxY options.\n");
return !Success;
+ }
DBG(2, ErrorF("%s\n", buffer));
if (sscanf(buffer+2, "%d,%d", &common->wcmMaxX, &common->wcmMaxY) != 2) {
- ErrorF("WACOM: unable to read max coordinates. Using default.\n");
+ ErrorF("WACOM: unable to parse max coordinates. Use the MaxX and MaxY options.\n");
+ return !Success;
}
}
@@ -2218,31 +2286,36 @@ xf86WcmOpen(LocalDevicePtr local)
/* We can't change the resolution on PenPartner and Graphire models */
if (!is_a_penpartner && common->wcmProtocolLevel == 4) {
+ int resolX = common->wcmResolX, resolY = common->wcmResolY;
+
/* Force the resolution.
*/
if (((float)version) >= 1.2) {
- common->wcmResolY = common->wcmResolX = 2540;
+ resolX = resolY = 2540;
}
- sprintf(buffer, "%s%d\r", WC_NEW_RESOLUTION, common->wcmResolX);
+ sprintf(buffer, "%s%d\r", WC_NEW_RESOLUTION, resolX);
SYSCALL(err = write(local->fd, buffer, strlen(buffer)));
/* Verify the resolution change.
*/
DBG(2, ErrorF("rereading config\n"));
- if (!send_request(local->fd, WC_CONFIG, buffer))
- return !Success;
- DBG(2, ErrorF("%s\n", buffer));
- /* The header string is simply a place to put the unwanted
- * config header don't use buffer+xx because the header size
- * varies on different tablets
- */
- if (sscanf(buffer, "%[^,],%d,%d,%d,%d", &header, &a, &b, &common->wcmResolX, &common->wcmResolY) == 5) {
- DBG(6, ErrorF("WC_CONFIG Header = %s\n", header));
+ if (send_request(local->fd, WC_CONFIG, buffer)) {
+ DBG(2, ErrorF("%s\n", buffer));
+ /* The header string is simply a place to put the unwanted
+ * config header don't use buffer+xx because the header size
+ * varies on different tablets
+ */
+ if (sscanf(buffer, "%[^,],%d,%d,%d,%d", header, &a, &b, &common->wcmResolX, &common->wcmResolY) == 5) {
+ DBG(6, ErrorF("WC_CONFIG Header = %s\n", header));
+ }
+ else {
+ ErrorF("WACOM: unable to reparse resolution. Using previous values.\n");
+ }
}
else {
- ErrorF("WACOM: unable to reread resolution. Using default.\n");
+ ErrorF("WACOM: unable to reread resolution. Using previous values.\n");
}
-
+
/* The following couple of lines convert the MaxX and MaxY returned by
* the Wacom from 1270lpi to the Wacom's active resolution.
*/
@@ -2852,11 +2925,11 @@ xf86WcmAllocate(char * name,
common->wcmNumDevices = 1; /* number of devices */
common->wcmIndex = 0; /* number of bytes read */
common->wcmPktLength = 7; /* length of a packet */
- common->wcmMaxX = 22860; /* max X value */
- common->wcmMaxY = 15240; /* max Y value */
+ common->wcmMaxX = 0; /* max X value */
+ common->wcmMaxY = 0; /* max Y value */
common->wcmMaxZ = 240; /* max Z value */
- common->wcmResolX = 1270; /* X resolution in points/inch */
- common->wcmResolY = 1270; /* Y resolution in points/inch */
+ common->wcmResolX = 0; /* X resolution in points/inch */
+ common->wcmResolY = 0; /* Y resolution in points/inch */
common->wcmResolZ = 1270; /* Z resolution in points/inch */
common->wcmHasEraser = (flag & ERASER_ID) ? TRUE : FALSE; /* True if an eraser has been configured */
common->wcmStylusSide = TRUE; /* eraser or stylus ? */
@@ -3170,6 +3243,36 @@ xf86WcmInit(InputDriverPtr drv,
xf86Msg(X_CONFIG, "%s: threshold = %d\n", dev->identifier,
common->wcmThreshold);
}
+ common->wcmMaxX = xf86SetIntOption(local->options, "MaxX", 0);
+ if (common->wcmMaxX != 0) {
+ xf86Msg(X_CONFIG, "%s: max x = %d\n", dev->identifier,
+ common->wcmMaxX);
+ }
+ common->wcmMaxY = xf86SetIntOption(local->options, "MaxY", 0);
+ if (common->wcmMaxY != 0) {
+ xf86Msg(X_CONFIG, "%s: max x = %d\n", dev->identifier,
+ common->wcmMaxY);
+ }
+ common->wcmMaxZ = xf86SetIntOption(local->options, "MaxZ", 0);
+ if (common->wcmMaxZ != 0) {
+ xf86Msg(X_CONFIG, "%s: max x = %d\n", dev->identifier,
+ common->wcmMaxZ);
+ }
+ common->wcmResolX = xf86SetIntOption(local->options, "ResolutionX", 0);
+ if (common->wcmResolX != 0) {
+ xf86Msg(X_CONFIG, "%s: resol x = %d\n", dev->identifier,
+ common->wcmResolX);
+ }
+ common->wcmResolY = xf86SetIntOption(local->options, "ResolutionY", 0);
+ if (common->wcmResolY != 0) {
+ xf86Msg(X_CONFIG, "%s: resol x = %d\n", dev->identifier,
+ common->wcmResolY);
+ }
+ common->wcmResolZ = xf86SetIntOption(local->options, "ResolutionZ", 0);
+ if (common->wcmResolZ != 0) {
+ xf86Msg(X_CONFIG, "%s: resol x = %d\n", dev->identifier,
+ common->wcmResolZ);
+ }
{
int val;
diff --git a/xc/programs/Xserver/hw/xfree86/int10/Imakefile b/xc/programs/Xserver/hw/xfree86/int10/Imakefile
index b68bd7d53..dab002c0b 100644
--- a/xc/programs/Xserver/hw/xfree86/int10/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/int10/Imakefile
@@ -1,11 +1,11 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/int10/Imakefile,v 1.5 2000/02/17 14:00:32 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/int10/Imakefile,v 1.6 2000/02/29 03:09:24 dawes Exp $
/* An OS-independent INT10 module/library */
#define IHaveModules
#include <Server.tmpl>
-#if !UseX86Emu
+#if !UseX86Emu || (XF86INT10_BUILD == X86INT10_STUB)
SRCS = xf86int10module.c stub.c
OBJS = xf86int10module.c stub.o
diff --git a/xc/programs/Xserver/hw/xfree86/loader/Imakefile b/xc/programs/Xserver/hw/xfree86/loader/Imakefile
index ba39b07de..2504f5378 100644
--- a/xc/programs/Xserver/hw/xfree86/loader/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/loader/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/loader/Imakefile,v 1.21 2000/02/13 06:15:40 dawes Exp $ */
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/loader/Imakefile,v 1.22 2000/02/23 19:21:16 alanh Exp $ */
@@ -30,11 +30,12 @@ DEFINES = $(DBMALLOCDEFINE) $(DLOPENDEFINES) $(OSDEFINES)
MODULEDEFINES = -DDEFAULT_MODULE_PATH=\"$(MODULEDIR)\"
- INCLUDES = -I. -I.. -I$(XF86COMSRC) -I$(XF86OSSRC) \
- -I$(SERVERSRC)/dbe -I$(SERVERSRC)/Xext \
+ INCLUDES = -I. -I.. -I$(XF86COMSRC) -I$(XF86OSSRC) -I$(XF86OSSRC)/vbe \
+ -I$(SERVERSRC)/dbe -I$(SERVERSRC)/Xext -I$(XF86SRC)/int10 \
-I$(SERVERSRC)/mfb -I$(SERVERSRC)/mi -I$(SERVERSRC)/include \
-I$(SERVERSRC)/os -I$(XINCLUDESRC) -I$(FONTINCSRC) \
- -I$(FONTLIBSRC)/include -I$(FONTLIBSRC)/fontcache -I$(EXTINCSRC)
+ -I$(FONTLIBSRC)/include -I$(FONTLIBSRC)/fontcache \
+ -I$(EXTINCSRC) -I$(XF86SRC)/ddc -I$(XF86SRC)/i2c
#ifdef OS2Architecture
SRCS1 = os2funcs.c
diff --git a/xc/programs/Xserver/hw/xfree86/loader/dixsym.c b/xc/programs/Xserver/hw/xfree86/loader/dixsym.c
index f0f3bf4c5..05e9c4c05 100644
--- a/xc/programs/Xserver/hw/xfree86/loader/dixsym.c
+++ b/xc/programs/Xserver/hw/xfree86/loader/dixsym.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dixsym.c,v 1.29 2000/02/02 21:24:22 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dixsym.c,v 1.30 2000/03/05 23:47:52 dawes Exp $ */
/*
@@ -248,6 +248,7 @@ LOOKUP dixLookupTab[] = {
SYMFUNC(LocalClient)
/* util.c */
SYMFUNC(Error)
+ SYMFUNC(VErrorF)
SYMFUNC(ErrorF)
SYMFUNC(FatalError)
SYMFUNC(Xstrdup)
diff --git a/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c b/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c
index 6048f2c1c..d91457078 100644
--- a/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c
+++ b/xc/programs/Xserver/hw/xfree86/loader/xf86sym.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/xf86sym.c,v 1.131 2000/02/21 19:23:14 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/xf86sym.c,v 1.134 2000/03/01 16:01:30 tsi Exp $ */
/*
*
@@ -52,6 +52,9 @@
#include "xf86_ansic.h"
#include "xisb.h"
#include "xf86Priv.h"
+#include "vbe.h"
+
+extern xf86MonPtr ConfiguredMonitor;
/* XXX Should get all of these from elsewhere */
#if defined (PowerMAX_OS)
@@ -284,6 +287,9 @@ LOOKUP xfree86LookupTab[] = {
#ifdef async
SYMFUNC(xf86QueueAsyncEvent)
#endif
+
+ /* xf86Configure.c */
+ SYMFUNC(xf86AddDeviceToConfigure)
/* xf86Cursor.c XXX not all of these should be exported */
SYMFUNC(xf86LockZoom)
@@ -472,8 +478,9 @@ LOOKUP xfree86LookupTab[] = {
/* xf86xv.c */
SYMFUNC(xf86XVScreenInit)
- SYMFUNC(xf86XVRegisterGenericAdaptor)
+ SYMFUNC(xf86XVRegisterGenericAdaptorDriver)
SYMFUNC(xf86XVListGenericAdaptors)
+ SYMFUNC(xf86XVRegisterOffscreenImages)
/* xf86VidMode.c */
SYMFUNC(VidModeExtensionInit)
@@ -931,6 +938,9 @@ LOOKUP xfree86LookupTab[] = {
/* Globals from xf86Globals.c and xf86Priv.h */
SYMVAR(xf86ConfigDRI)
+ /* Globals from xf86Configure.c */
+ SYMVAR(ConfiguredMonitor)
+
/* Pci.c */
SYMVAR(pciNumBuses)
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/Imakefile
index a40105d49..7041d435a 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/os-support/Imakefile
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/Imakefile,v 3.36 2000/02/12 20:45:40 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/Imakefile,v 3.37 2000/02/22 01:02:34 mvojkovi Exp $
@@ -10,7 +10,7 @@ XCOMM $XConsortium: Imakefile /main/9 1996/10/25 15:38:46 kaleb $
#define IHaveSubdirs
-#if defined(i386Architecture) || \
+#if defined(i386Architecture) || defined(ia64Architecture) || \
(defined(LinuxArchitecture) && defined(AlphaArchitecture)) || \
(defined(FreeBSDArchitecture) && defined(AlphaArchitecture)) || \
defined(PpcArchitecture) || defined(SparcArchitecture)
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile
index 568251e87..b0ec00a5e 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile
@@ -4,7 +4,7 @@ XCOMM $XConsortium: Imakefile /main/12 1996/10/27 11:06:35 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile,v 3.39 2000/02/13 03:36:06 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/Imakefile,v 3.41 2000/03/05 16:59:16 dawes Exp $
#include <Server.tmpl>
@@ -60,13 +60,36 @@ SUBDIRS = libusb
#endif
+#if defined(NetBSDArchitecture) || defined(OpenBSDArchitecture)
+APMSRC = bsd_apm.c
+APMOBJ = bsd_apm.o
+#else
+APMSRC = pm_noop.c
+APMOBJ = pm_noop.o
+#endif
+
+#if defined(i386Architecture) || defined(ia64Architecture)
+RES_SRC=stdResource.c
+RES_OBJ=stdResource.o
+#else
+RES_SRC=bsdResource.c
+RES_OBJ=bsdResource.o
+#endif
+
+#if defined(AlphaArchitecture)
+AXP_SRC=bsd_ev56.c
+AXP_OBJ=bsd_ev56.o
+#endif
+
SRCS = bsd_init.c bsd_video.c bsd_io.c bsd_VTsw.c \
libc_wrapper.c $(IOPERM_SRC) std_kbdEv.c posix_tty.c $(MOUSESRC) \
- stdResource.c stdPci.c vidmem.c $(JOYSTICK_SRC) sigio.c pm_noop.c
+ $(RES_SRC) stdPci.c vidmem.c $(JOYSTICK_SRC) sigio.c $(APMSRC) \
+ $(AXP_SRC)
OBJS = bsd_init.o bsd_video.o bsd_io.o bsd_VTsw.o \
libc_wrapper.o $(IOPERM_OBJ) std_kbdEv.o posix_tty.o $(MOUSEOBJ) \
- stdResource.o stdPci.o vidmem.o $(JOYSTICK_OBJ) sigio.o pm_noop.o
+ $(RES_OBJ) stdPci.o vidmem.o $(JOYSTICK_OBJ) sigio.o $(APMOBJ) \
+ $(AXP_OBJ)
INCLUDES = -I$(XF86COMSRC) -I$(XF86OSSRC) -I. -I$(SERVERSRC)/include \
-I$(XINCLUDESRC) -I$(EXTINCSRC) -I$(SERVERSRC)/mi -I$(APINCLUDES) \
@@ -84,6 +107,10 @@ APINCLUDES = $(APDIR)/include
DEFINES = $(CONSDEFINES) $(APDEFINES) $(IOPERMDEFINES) $(RESDEFINES) \
$(MTRRDEFINES) $(USBMOUSEDEFINES)
+#if defined(AlphaArchitecture)
+SpecialObjectRule(bsd_ev56.o, bsd_ev56.c, -mcpu=ev56)
+#endif
+
SubdirLibraryRule($(OBJS))
NormalLibraryObjectRule()
@@ -98,6 +125,9 @@ InstallDynamicModule(bsd_jstk.o,$(MODULEDIR),input)
# endif
#endif
+#if !defined(NetBSDArchitecture) && !defined(OpenBSDArchitecture)
+LinkSourceFile(pm_noop.c,../shared)
+#endif
LinkSourceFile(ioperm_noop.c,../shared)
LinkSourceFile(std_kbdEv.c,../shared)
LinkSourceFile(posix_tty.c,../shared)
@@ -106,7 +136,6 @@ LinkSourceFile(stdResource.c,../shared)
LinkSourceFile(stdPci.c,../shared)
LinkSourceFile(vidmem.c,../shared)
LinkSourceFile(sigio.c,../shared)
-LinkSourceFile(pm_noop.c,../shared)
DependTarget()
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c
new file mode 100644
index 000000000..ee075f113
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c
@@ -0,0 +1,96 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsdResource.c,v 1.1 2000/03/05 16:59:17 dawes Exp $ */
+
+/* Resource information code */
+
+#include "X.h"
+#include "xf86.h"
+#include "xf86Priv.h"
+#include "xf86Privstr.h"
+#include "xf86Pci.h"
+#include "xf86Resources.h"
+#define NEED_OS_RAC_PROTOS
+#include "xf86_OSlib.h"
+
+#ifdef __alpha__
+
+#include <sys/sysctl.h>
+
+resRange PciAvoid[] = {_PCI_AVOID_PC_STYLE, _END};
+
+resPtr
+xf86BusAccWindowsFromOS(void)
+{
+ resPtr ret = NULL;
+ resRange range;
+
+ RANGE(range,0,0xffffffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ RANGE(range,0,0xffffffff,ResExcIoBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+ return ret;
+}
+
+resPtr
+xf86PciBusAccWindowsFromOS(void)
+{
+ resPtr ret = NULL;
+ resRange range;
+
+ /*
+ * Only allow the upper half of the pci memory range to be used
+ * for allocation. The lower half includes magic regions for DMA.
+ * XXX this is not right for XP1000's and similar where we use the
+ * region 0x40000000-0xbfffffff for DMA but this only matters if
+ * the bios screws up the pci region mappings.
+ */
+ RANGE(range,0x80000000,0xffffffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ RANGE(range,0,0xffffffff,ResExcIoBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+ return ret;
+}
+
+resPtr
+xf86IsaBusAccWindowsFromOS(void)
+{
+ resPtr ret = NULL;
+ resRange range;
+
+ RANGE(range,0,0xffffffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ RANGE(range,0,0xffffffff,ResExcIoBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+ return ret;
+}
+
+resPtr
+xf86AccResFromOS(resPtr ret)
+{
+ resRange range;
+
+ /*
+ * Fallback is to claim the following areas:
+ *
+ * 0x000C0000 - 0x000EFFFF location of VGA and other extensions ROMS
+ */
+
+ RANGE(range,0xc0000,0xeffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ /* Fallback is to claim well known ports in the 0x0 - 0x3ff range */
+ /* Possibly should claim some of them as sparse ranges */
+
+ RANGE(range,0,0x1ff,ResExcIoBlock | ResEstimated);
+ ret = xf86AddResToList(ret, &range, -1);
+ /* XXX add others */
+ return ret;
+}
+
+#else
+
+#error : Put your platform dependent code here!!
+
+#endif
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_apm.c b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_apm.c
new file mode 100644
index 000000000..250e5cb55
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_apm.c
@@ -0,0 +1,137 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_apm.c,v 1.1 2000/02/29 03:09:25 dawes Exp $ */
+
+#include "X.h"
+#include "os.h"
+#include "xf86.h"
+#include "xf86Priv.h"
+#define XF86_OS_PRIVS
+#include "xf86_OSproc.h"
+#include "xf86_OSlib.h"
+
+#include <machine/apmvar.h>
+
+#define APM_DEVICE "/dev/apm"
+
+static pointer APMihPtr = NULL;
+static void bsdCloseAPM(void);
+
+static struct {
+ u_int apmBsd;
+ pmEvent xf86;
+} bsdToXF86Array [] = {
+ { APM_STANDBY_REQ, XF86_APM_SYS_STANDBY },
+ { APM_SUSPEND_REQ, XF86_APM_SYS_SUSPEND },
+ { APM_NORMAL_RESUME, XF86_APM_NORMAL_RESUME },
+ { APM_CRIT_RESUME, XF86_APM_CRITICAL_RESUME },
+ { APM_BATTERY_LOW, XF86_APM_LOW_BATTERY },
+ { APM_POWER_CHANGE, XF86_APM_POWER_STATUS_CHANGE },
+ { APM_UPDATE_TIME, XF86_APM_UPDATE_TIME },
+ { APM_CRIT_SUSPEND_REQ, XF86_APM_CRITICAL_SUSPEND },
+ { APM_USER_STANDBY_REQ, XF86_APM_USER_STANDBY },
+ { APM_USER_SUSPEND_REQ, XF86_APM_USER_SUSPEND },
+ { APM_SYS_STANDBY_RESUME, XF86_APM_STANDBY_RESUME },
+#ifdef APM_CAPABILITY_CHANGE
+ { APM_CAPABILITY_CHANGE, XF86_APM_CAPABILITY_CHANGED },
+#endif
+};
+
+#define numApmEvents (sizeof(bsdToXF86Array) / sizeof(bsdToXF86Array[0]))
+
+static pmEvent
+bsdToXF86(int type)
+{
+ int i;
+
+ for (i = 0; i < numApmEvents; i++) {
+ if (type == bsdToXF86Array[i].apmBsd) {
+ return bsdToXF86Array[i].xf86;
+ }
+ }
+ return XF86_APM_UNKNOWN;
+}
+
+/*
+ * APM events can be requested direclty from /dev/apm
+ */
+static int
+bsdPMGetEventFromOS(int fd, pmEvent *events, int num)
+{
+ struct apm_event_info bsdEvent;
+ int i;
+
+ for (i = 0; i < num; i++) {
+
+ if (ioctl(fd, APM_IOC_NEXTEVENT, &bsdEvent) < 0) {
+ if (errno != EAGAIN) {
+ xf86Msg(X_WARNING, "bsdPMGetEventFromOS: APM_IOC_NEXTEVENT"
+ " errno = %d\n", errno);
+ }
+ break;
+ }
+ events[i] = bsdToXF86(bsdEvent.type);
+ }
+ return i;
+}
+
+/*
+ * XXX This won't work on /dev/apm !
+ * We should either use /dev/apm_ctl (and kill apmd(8))
+ * or talk to apmd (but its protocol is not publically available)...
+ */
+static pmWait
+bsdPMConfirmEventToOs(int fd, pmEvent event)
+{
+ switch (event) {
+ case XF86_APM_SYS_STANDBY:
+ case XF86_APM_USER_STANDBY:
+ if (ioctl( fd, APM_IOC_STANDBY, NULL ) == 0)
+ return PM_WAIT; /* should we stop the Xserver in standby, too? */
+ else
+ return PM_NONE;
+ case XF86_APM_SYS_SUSPEND:
+ case XF86_APM_CRITICAL_SUSPEND:
+ case XF86_APM_USER_SUSPEND:
+ if (ioctl( fd, APM_IOC_SUSPEND, NULL ) == 0)
+ return PM_WAIT;
+ else
+ return PM_NONE;
+ case XF86_APM_STANDBY_RESUME:
+ case XF86_APM_NORMAL_RESUME:
+ case XF86_APM_CRITICAL_RESUME:
+ case XF86_APM_STANDBY_FAILED:
+ case XF86_APM_SUSPEND_FAILED:
+ return PM_CONTINUE;
+ default:
+ return PM_NONE;
+ }
+}
+
+PMClose
+xf86OSPMOpen(void)
+{
+ int fd;
+
+ if (APMihPtr || !xf86Info.pmFlag) {
+ return NULL;
+ }
+
+ if ((fd = open(APM_DEVICE, O_RDWR)) == -1) {
+ return NULL;
+ }
+ xf86PMGetEventFromOs = bsdPMGetEventFromOS;
+ xf86PMConfirmEventToOs = bsdPMConfirmEventToOs;
+ APMihPtr = xf86AddInputHandler(fd, xf86HandlePMEvents, NULL);
+ return bsdCloseAPM;
+}
+
+static void
+bsdCloseAPM(void)
+{
+ int fd;
+
+ if (APMihPtr) {
+ fd = xf86RemoveInputHandler(APMihPtr);
+ close(fd);
+ APMihPtr = NULL;
+ }
+}
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_ev56.c b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_ev56.c
new file mode 100644
index 000000000..81af01648
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_ev56.c
@@ -0,0 +1,84 @@
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_ev56.c,v 1.1 2000/03/05 16:59:17 dawes Exp $ */
+
+#include "X.h"
+#include "input.h"
+#include "scrnintstr.h"
+#include "compiler.h"
+
+#include "xf86.h"
+#include "xf86Priv.h"
+#include "xf86_OSlib.h"
+#include "xf86OSpriv.h"
+
+int readDense8(pointer Base, register unsigned long Offset);
+int readDense16(pointer Base, register unsigned long Offset);
+int readDense32(pointer Base, register unsigned long Offset);
+void
+writeDenseNB8(int Value, pointer Base, register unsigned long Offset);
+void
+writeDenseNB16(int Value, pointer Base, register unsigned long Offset);
+void
+writeDenseNB32(int Value, pointer Base, register unsigned long Offset);
+void
+writeDense8(int Value, pointer Base, register unsigned long Offset);
+void
+writeDense16(int Value, pointer Base, register unsigned long Offset);
+void
+writeDense32(int Value, pointer Base, register unsigned long Offset);
+
+int
+readDense8(pointer Base, register unsigned long Offset)
+{
+ return *(volatile CARD8*) ((unsigned long)Base+(Offset));
+}
+
+int
+readDense16(pointer Base, register unsigned long Offset)
+{
+ return *(volatile CARD16*) ((unsigned long)Base+(Offset));
+}
+
+int
+readDense32(pointer Base, register unsigned long Offset)
+{
+ return *(volatile CARD32*)((unsigned long)Base+(Offset));
+}
+
+void
+writeDenseNB8(int Value, pointer Base, register unsigned long Offset)
+{
+ *(volatile CARD8*)((unsigned long)Base+(Offset)) = Value;
+}
+
+void
+writeDenseNB16(int Value, pointer Base, register unsigned long Offset)
+{
+ *(volatile CARD16*)((unsigned long)Base + (Offset)) = Value;
+}
+
+void
+writeDenseNB32(int Value, pointer Base, register unsigned long Offset)
+{
+ *(volatile CARD32*)((unsigned long)Base+(Offset)) = Value;
+}
+
+void
+writeDense8(int Value, pointer Base, register unsigned long Offset)
+{
+ *(volatile CARD8 *)((unsigned long)Base+(Offset)) = Value;
+ mem_barrier();
+}
+
+void
+writeDense16(int Value, pointer Base, register unsigned long Offset)
+{
+ *(volatile CARD16 *)((unsigned long)Base+(Offset)) = Value;
+ mem_barrier();
+}
+
+void
+writeDense32(int Value, pointer Base, register unsigned long Offset)
+{
+ *(volatile CARD32 *)((unsigned long)Base+(Offset)) = Value;
+ mem_barrier();
+}
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c
index 76034f313..fb251f19c 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c,v 3.33 2000/02/12 20:45:41 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bsd/bsd_video.c,v 3.34 2000/03/05 16:59:17 dawes Exp $ */
/*
* Copyright 1992 by Rich Murphey <Rich@Rice.edu>
* Copyright 1993 by David Wexelblat <dwex@goblin.org>
@@ -74,6 +74,10 @@
#define X_MTRR_ID "XFree86"
#endif
+#ifdef __alpha__
+#include <sys/sysctl.h>
+#endif
+
#ifdef __arm32__
#include "machine/devmap.h"
struct memAccess
@@ -110,10 +114,45 @@ struct memAccess ioMemInfo = { CONSOLE_GET_IO_INFO, NULL, NULL,
#endif
#ifdef __alpha__
-extern u_int64_t dense_base(void);
+
+extern unsigned long dense_base(void);
+
+static unsigned long
+memory_base(void)
+{
+ static unsigned long base = 0;
+
+ if (base == 0) {
+ size_t len = sizeof(base);
+ int error;
+ if ((error = sysctlbyname("hw.chipset.memory", &base, &len,
+ 0, 0)) < 0)
+ FatalError("xf86MapVidMem: can't find memory\n");
+ }
+
+ return base;
+}
+
+static int
+has_bwx(void)
+{
+ static int bwx = 0;
+ size_t len = sizeof(bwx);
+ int error;
+ if ((error = sysctlbyname("hw.chipset.bwx", &bwx, &len, 0, 0)) < 0)
+ return FALSE;
+ else
+ return bwx;
+}
+
#define BUS_BASE dense_base()
+#define BUS_BASE_BWX memory_base()
+
#else
+
#define BUS_BASE 0L
+#define BUS_BASE_BWX 0L
+
#endif
/***************************************************************************/
@@ -229,23 +268,29 @@ checkDevMem(Bool warn)
#endif
}
-
void
xf86OSInitVidMem(VidMemInfoPtr pVidMem)
{
checkDevMem(TRUE);
pVidMem->linearSupported = useDevMem;
-#ifndef __arm32__
- pVidMem->mapMem = mapVidMem;
- pVidMem->unmapMem = unmapVidMem;
-#else
+#if defined(__alpha__)
+ if (has_bwx()) {
+ xf86Msg(X_INFO,"Machine type has 8/16 bit access\n");
+ pVidMem->mapMem = mapVidMem;
+ pVidMem->unmapMem = unmapVidMem;
+ } else {
+ xf86Msg(X_INFO,"Machine needs sparse mapping\n");
+ pVidMem->mapMem = mapVidMemSparse;
+ pVidMem->unmapMem = unmapVidMemSparse;
+ }
+#elif defined(__arm32__)
pVidMem->mapMem = armMapVidMem;
pVidMem->unmapVidMem = armUnmapVidMem;
+#else
+ pVidMem->mapMem = mapVidMem;
+ pVidMem->unmapMem = unmapVidMem;
#endif
-#ifdef __alpha__
- pVidMem->mapMemSparse = mapVidMemSparse;
- pVidMem->unmapMemSparse = unmapVidMemSparse;
-#endif
+
#ifdef HAS_MTRR_SUPPORT
if (useDevMem) {
if (cleanMTRR()) {
@@ -276,7 +321,7 @@ mapVidMem(int ScreenNum, unsigned long Base, unsigned long Size)
DEV_MEM, strerror(errno));
}
base = mmap((caddr_t)0, Size, PROT_READ|PROT_WRITE,
- MAP_FLAGS, devMemFd, (off_t)Base + BUS_BASE);
+ 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",
@@ -1249,101 +1294,260 @@ undoWC(int screenNum, pointer list)
#if defined(__FreeBSD__) && defined(__alpha__)
-extern void *map_memory(u_int32_t address, u_int32_t size);
-extern void unmap_memory(void *handle, u_int32_t size);
-extern u_int8_t readb(void *handle, u_int32_t offset);
-extern u_int16_t readw(void *handle, u_int32_t offset);
-extern u_int32_t readl(void *handle, u_int32_t offset);
-extern void writeb(void *handle, u_int32_t offset, u_int8_t val);
-extern void writew(void *handle, u_int32_t offset, u_int16_t val);
-extern void writel(void *handle, u_int32_t offset, u_int32_t val);
-extern void writeb_nb(void *handle, u_int32_t offset, u_int8_t val);
-extern void writew_nb(void *handle, u_int32_t offset, u_int16_t val);
-extern void writel_nb(void *handle, u_int32_t offset, u_int32_t val);
+#define vuip volatile unsigned int *
+
+static unsigned long msb_set = 0;
+static pointer memSBase = 0;
+static pointer memBase = 0;
+
+extern int readDense8(pointer Base, register unsigned long Offset);
+extern int readDense16(pointer Base, register unsigned long Offset);
+extern int readDense32(pointer Base, register unsigned long Offset);
+extern void
+writeDenseNB8(int Value, pointer Base, register unsigned long Offset);
+extern void
+writeDenseNB16(int Value, pointer Base, register unsigned long Offset);
+extern void
+writeDenseNB32(int Value, pointer Base, register unsigned long Offset);
+extern void
+writeDense8(int Value, pointer Base, register unsigned long Offset);
+extern void
+writeDense16(int Value, pointer Base, register unsigned long Offset);
+extern void
+writeDense32(int Value, pointer Base, register unsigned long Offset);
+
+static int readSparse8(pointer Base, register unsigned long Offset);
+static int readSparse16(pointer Base, register unsigned long Offset);
+static int readSparse32(pointer Base, register unsigned long Offset);
+static void
+writeSparseNB8(int Value, pointer Base, register unsigned long Offset);
+static void
+writeSparseNB16(int Value, pointer Base, register unsigned long Offset);
+static void
+writeSparseNB32(int Value, pointer Base, register unsigned long Offset);
+static void
+writeSparse8(int Value, pointer Base, register unsigned long Offset);
+static void
+writeSparse16(int Value, pointer Base, register unsigned long Offset);
+static void
+writeSparse32(int Value, pointer Base, register unsigned long Offset);
+
+#include <machine/sysarch.h>
+
+extern int sysarch(int, char *);
+
+struct parms {
+ u_int64_t hae;
+};
+
+static int
+sethae(u_int64_t hae)
+{
+ struct parms p;
+ p.hae = hae;
+ return (sysarch(ALPHA_SETHAE, (char *)&p));
+}
static pointer
mapVidMemSparse(int ScreenNum, unsigned long Base, unsigned long Size)
{
- return (pointer) map_memory((u_int32_t) (u_int64_t) Base, Size);
+ static Bool was_here = FALSE;
+
+ if (!was_here) {
+ was_here = TRUE;
+
+ checkDevMem(FALSE);
+
+ xf86WriteMmio8 = writeSparse8;
+ xf86WriteMmio16 = writeSparse16;
+ xf86WriteMmio32 = writeSparse32;
+ xf86WriteMmioNB8 = writeSparseNB8;
+ xf86WriteMmioNB16 = writeSparseNB16;
+ xf86WriteMmioNB32 = writeSparseNB32;
+ xf86ReadMmio8 = readSparse8;
+ xf86ReadMmio16 = readSparse16;
+ xf86ReadMmio32 = readSparse32;
+
+ memBase = mmap((caddr_t)0, 0x100000000,
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED, devMemFd,
+ (off_t) dense_base());
+ memSBase = mmap((caddr_t)0, 0x100000000,
+ PROT_READ | PROT_WRITE,
+ MAP_SHARED, devMemFd,
+ (off_t) memory_base());
+
+ if (memSBase == MAP_FAILED || memBase == MAP_FAILED) {
+ FatalError("xf86MapVidMem: Could not mmap framebuffer (%s)\n",
+ strerror(errno));
+ }
+ }
+ return (pointer)((unsigned long)memBase + Base);
}
static void
unmapVidMemSparse(int ScreenNum, pointer Base, unsigned long Size)
{
- unmap_memory(Base, Size);
}
static int
-readMmio8(pointer Base, unsigned long Offset)
+readSparse8(pointer Base, register unsigned long Offset)
{
- return readb(Base, Offset);
+ register unsigned long result, shift;
+ register unsigned long msb;
+
+ Offset += (unsigned long)Base - (unsigned long)memBase;
+ shift = (Offset & 0x3) << 3;
+ if (Offset >= (1UL << 24)) {
+ msb = Offset & 0xf8000000UL;
+ Offset -= msb;
+ if (msb_set != msb) {
+ sethae(msb);
+ msb_set = msb;
+ }
+ }
+
+ result = *(vuip) ((unsigned long)memSBase + (Offset << 5));
+ result >>= shift;
+ return 0xffUL & result;
}
static int
-readMmio16(pointer Base, unsigned long Offset)
+readSparse16(pointer Base, register unsigned long Offset)
{
- return readw(Base, Offset);
+ register unsigned long result, shift;
+ register unsigned long msb;
+
+ Offset += (unsigned long)Base - (unsigned long)memBase;
+ shift = (Offset & 0x2) << 3;
+ if (Offset >= (1UL << 24)) {
+ msb = Offset & 0xf8000000UL;
+ Offset -= msb;
+ if (msb_set != msb) {
+ sethae(msb);
+ msb_set = msb;
+ }
+ }
+ result = *(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2)));
+ result >>= shift;
+ return 0xffffUL & result;
}
static int
-readMmio32(pointer Base, unsigned long Offset)
+readSparse32(pointer Base, register unsigned long Offset)
{
- return readl(Base, Offset);
+ return *(vuip)((unsigned long)Base+(Offset));
}
static void
-writeMmio8(int Value, pointer Base, unsigned long Offset)
+writeSparse8(int Value, pointer Base, register unsigned long Offset)
{
- writeb(Base, Offset, Value);
+ register unsigned long msb;
+ register unsigned int b = Value & 0xffU;
+
+ Offset += (unsigned long)Base - (unsigned long)memBase;
+ if (Offset >= (1UL << 24)) {
+ msb = Offset & 0xf8000000;
+ Offset -= msb;
+ if (msb_set != msb) {
+ sethae(msb);
+ msb_set = msb;
+ }
+ }
+ *(vuip) ((unsigned long)memSBase + (Offset << 5)) = b * 0x01010101;
+ mem_barrier();
}
static void
-writeMmio16(int Value, pointer Base, unsigned long Offset)
+writeSparse16(int Value, pointer Base, register unsigned long Offset)
{
- writew(Base, Offset, Value);
+ register unsigned long msb;
+ register unsigned int w = Value & 0xffffU;
+
+ Offset += (unsigned long)Base - (unsigned long)memBase;
+ if (Offset >= (1UL << 24)) {
+ msb = Offset & 0xf8000000;
+ Offset -= msb;
+ if (msb_set != msb) {
+ sethae(msb);
+ msb_set = msb;
+ }
+ }
+ *(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2))) =
+ w * 0x00010001;
+ mem_barrier();
+
}
static void
-writeMmio32(int Value, pointer Base, unsigned long Offset)
+writeSparse32(int Value, pointer Base, register unsigned long Offset)
{
- writel(Base, Offset, Value);
+ *(vuip)((unsigned long)Base + (Offset)) = Value;
+ mem_barrier();
+ return;
}
static void
-writeMmioNB8(int Value, pointer Base, unsigned long Offset)
+writeSparseNB8(int Value, pointer Base, register unsigned long Offset)
{
- writeb_nb(Base, Offset, Value);
+ register unsigned long msb;
+ register unsigned int b = Value & 0xffU;
+
+ Offset += (unsigned long)Base - (unsigned long)memBase;
+ if (Offset >= (1UL << 24)) {
+ msb = Offset & 0xf8000000;
+ Offset -= msb;
+ if (msb_set != msb) {
+ sethae(msb);
+ msb_set = msb;
+ }
+ }
+ *(vuip) ((unsigned long)memSBase + (Offset << 5)) = b * 0x01010101;
}
static void
-writeMmioNB16(int Value, pointer Base, unsigned long Offset)
+writeSparseNB16(int Value, pointer Base, register unsigned long Offset)
{
- writew_nb(Base, Offset, Value);
+ register unsigned long msb;
+ register unsigned int w = Value & 0xffffU;
+
+ Offset += (unsigned long)Base - (unsigned long)memBase;
+ if (Offset >= (1UL << 24)) {
+ msb = Offset & 0xf8000000;
+ Offset -= msb;
+ if (msb_set != msb) {
+ sethae(msb);
+ msb_set = msb;
+ }
+ }
+ *(vuip)((unsigned long)memSBase+(Offset<<5)+(1<<(5-2))) =
+ w * 0x00010001;
}
static void
-writeMmioNB32(int Value, pointer Base, unsigned long Offset)
+writeSparseNB32(int Value, pointer Base, register unsigned long Offset)
{
- writel_nb(Base, Offset, Value);
+ *(vuip)((unsigned long)Base + (Offset)) = Value;
+ return;
}
void (*xf86WriteMmio8)(int Value, pointer Base, unsigned long Offset)
- = writeMmio8;
+ = writeDense8;
void (*xf86WriteMmio16)(int Value, pointer Base, unsigned long Offset)
- = writeMmio16;
+ = writeDense16;
void (*xf86WriteMmio32)(int Value, pointer Base, unsigned long Offset)
- = writeMmio32;
+ = writeDense32;
void (*xf86WriteMmioNB8)(int Value, pointer Base, unsigned long Offset)
- = writeMmioNB8;
+ = writeDenseNB8;
void (*xf86WriteMmioNB16)(int Value, pointer Base, unsigned long Offset)
- = writeMmioNB16;
+ = writeDenseNB16;
void (*xf86WriteMmioNB32)(int Value, pointer Base, unsigned long Offset)
- = writeMmioNB32;
+ = writeDenseNB32;
int (*xf86ReadMmio8)(pointer Base, unsigned long Offset)
- = readMmio8;
+ = readDense8;
int (*xf86ReadMmio16)(pointer Base, unsigned long Offset)
- = readMmio16;
+ = readDense16;
int (*xf86ReadMmio32)(pointer Base, unsigned long Offset)
- = readMmio32;
+ = readDense32;
#endif /* __FreeBSD__ && __alpha__ */
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile
index 5066d1980..6267531f7 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile
@@ -3,7 +3,7 @@ XCOMM $XConsortium: Imakefile /main/16 1996/10/27 18:07:43 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile,v 1.8 2000/02/12 20:45:42 dawes Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/bus/Imakefile,v 1.10 2000/03/07 13:59:06 dawes Exp $
#include <Server.tmpl>
@@ -42,7 +42,7 @@ XCOMM generic FreeBSD PCI driver (using /dev/pci)
PCIDRVRSRC = freebsdPci.c
PCIDRVROBJ = freebsdPci.o
-#elif defined(i386Architecture)
+#elif defined(i386Architecture) || defined(ia64Architecture)
XCOMM ix86 PCI driver
@@ -68,7 +68,7 @@ SubdirLibraryRule($(OBJS))
* egcs 1.1.2 as provided with some Linux distributions has an optimisation
* bug that results in bad code for this file.
*/
-#if defined(Egcs112Bug)
+#if Egcs112Bug
SpecialCObjectRule(Pci,NullParameter,-O0)
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile
index 3700639a7..8a9458ef2 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile
@@ -1,6 +1,5 @@
XCOMM $XConsortium: Imakefile /main/10 1996/10/19 18:06:19 kaleb $
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile,v 3.36 2000/02/21 18:05:48 dawes Exp $
-XCOMM $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile,v 1.9 1999/06/07 13:01:42 faith Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/Imakefile,v 3.38 2000/02/23 04:47:22 martin Exp $
#include <Server.tmpl>
@@ -27,7 +26,7 @@ DRI_OBJ = sigio.o
MOUSESRC = lnx_mouse.c
MOUSEOBJ = lnx_mouse.o
-#if defined(i386Architecture)
+#if defined(i386Architecture) || defined(ia64Architecture)
RES_SRCS=stdResource.c
RES_OBJS=stdResource.o
#else
@@ -104,7 +103,7 @@ LinkSourceFile(VTsw_usl.c,../shared)
LinkSourceFile($(DRI_SRC),../shared)
-#if defined(i386Architecture)
+#if defined(i386Architecture) || defined(ia64Architecture)
LinkSourceFile(stdResource.c,../shared)
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/agpgart.h b/xc/programs/Xserver/hw/xfree86/os-support/linux/agpgart.h
new file mode 100644
index 000000000..7457cd114
--- /dev/null
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/agpgart.h
@@ -0,0 +1,224 @@
+/*
+ * AGPGART module version 0.99
+ * Copyright (C) 1999 Jeff Hartmann
+ * Copyright (C) 1999 Precision Insight, Inc.
+ * Copyright (C) 1999 Xi Graphics, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * JEFF HARTMANN, OR ANY OTHER CONTRIBUTORS BE LIABLE FOR ANY CLAIM,
+ * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
+ * OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ *
+ */
+
+#ifndef _AGP_H
+#define _AGP_H 1
+
+#define AGPIOC_BASE 'A'
+#define AGPIOC_INFO _IOR (AGPIOC_BASE, 0, agp_info*)
+#define AGPIOC_ACQUIRE _IO (AGPIOC_BASE, 1)
+#define AGPIOC_RELEASE _IO (AGPIOC_BASE, 2)
+#define AGPIOC_SETUP _IOW (AGPIOC_BASE, 3, agp_setup*)
+#define AGPIOC_RESERVE _IOW (AGPIOC_BASE, 4, agp_region*)
+#define AGPIOC_PROTECT _IOW (AGPIOC_BASE, 5, agp_region*)
+#define AGPIOC_ALLOCATE _IOWR(AGPIOC_BASE, 6, agp_allocate*)
+#define AGPIOC_DEALLOCATE _IOW (AGPIOC_BASE, 7, int)
+#define AGPIOC_BIND _IOW (AGPIOC_BASE, 8, agp_bind*)
+#define AGPIOC_UNBIND _IOW (AGPIOC_BASE, 9, agp_unbind*)
+
+#define AGP_DEVICE "/dev/agpgart"
+
+#ifndef TRUE
+#define TRUE 1
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#endif
+
+#ifndef __KERNEL__
+#include <linux/types.h>
+#include <asm/types.h>
+
+typedef struct _agp_version {
+ __u16 major;
+ __u16 minor;
+} agp_version;
+
+typedef struct _agp_info {
+ agp_version version; /* version of the driver */
+ __u32 bridge_id; /* bridge vendor/device */
+ __u32 agp_mode; /* mode info of bridge */
+ off_t aper_base; /* base of aperture */
+ size_t aper_size; /* size of aperture */
+ size_t pg_total; /* max pages (swap + system) */
+ size_t pg_system; /* max pages (system) */
+ size_t pg_used; /* current pages used */
+} agp_info;
+
+typedef struct _agp_setup {
+ __u32 agp_mode; /* mode info of bridge */
+} agp_setup;
+
+/*
+ * The "prot" down below needs still a "sleep" flag somehow ...
+ */
+typedef struct _agp_segment {
+ off_t pg_start; /* starting page to populate */
+ size_t pg_count; /* number of pages */
+ int prot; /* prot flags for mmap */
+} agp_segment;
+
+typedef struct _agp_region {
+ pid_t pid; /* pid of process */
+ size_t seg_count; /* number of segments */
+ struct _agp_segment *seg_list;
+} agp_region;
+
+typedef struct _agp_allocate {
+ int key; /* tag of allocation */
+ size_t pg_count; /* number of pages */
+ __u32 type; /* 0 == normal, other devspec */
+ __u32 physical; /* device specific (some devices
+ * need a phys address of the
+ * actual page behind the gatt
+ * table) */
+} agp_allocate;
+
+typedef struct _agp_bind {
+ int key; /* tag of allocation */
+ off_t pg_start; /* starting page to populate */
+} agp_bind;
+
+typedef struct _agp_unbind {
+ int key; /* tag of allocation */
+ __u32 priority; /* priority for paging out */
+} agp_unbind;
+
+#else /* __KERNEL__ */
+
+#define AGPGART_MINOR 175
+
+#define AGP_UNLOCK() up(&(agp_fe.agp_mutex));
+#define AGP_LOCK() down(&(agp_fe.agp_mutex));
+#define AGP_LOCK_INIT() sema_init(&(agp_fe.agp_mutex), 1)
+
+#ifndef _AGP_BACKEND_H
+typedef struct _agp_version {
+ u16 major;
+ u16 minor;
+} agp_version;
+
+#endif
+
+typedef struct _agp_info {
+ agp_version version; /* version of the driver */
+ u32 bridge_id; /* bridge vendor/device */
+ u32 agp_mode; /* mode info of bridge */
+ off_t aper_base; /* base of aperture */
+ size_t aper_size; /* size of aperture */
+ size_t pg_total; /* max pages (swap + system) */
+ size_t pg_system; /* max pages (system) */
+ size_t pg_used; /* current pages used */
+} agp_info;
+
+typedef struct _agp_setup {
+ u32 agp_mode; /* mode info of bridge */
+} agp_setup;
+
+/*
+ * The "prot" down below needs still a "sleep" flag somehow ...
+ */
+typedef struct _agp_segment {
+ off_t pg_start; /* starting page to populate */
+ size_t pg_count; /* number of pages */
+ int prot; /* prot flags for mmap */
+} agp_segment;
+
+typedef struct _agp_segment_priv {
+ off_t pg_start;
+ size_t pg_count;
+ pgprot_t prot;
+} agp_segment_priv;
+
+typedef struct _agp_region {
+ pid_t pid; /* pid of process */
+ size_t seg_count; /* number of segments */
+ struct _agp_segment *seg_list;
+} agp_region;
+
+typedef struct _agp_allocate {
+ int key; /* tag of allocation */
+ size_t pg_count; /* number of pages */
+ u32 type; /* 0 == normal, other devspec */
+ u32 physical; /* device specific (some devices
+ * need a phys address of the
+ * actual page behind the gatt
+ * table) */
+} agp_allocate;
+
+typedef struct _agp_bind {
+ int key; /* tag of allocation */
+ off_t pg_start; /* starting page to populate */
+} agp_bind;
+
+typedef struct _agp_unbind {
+ int key; /* tag of allocation */
+ u32 priority; /* priority for paging out */
+} agp_unbind;
+
+typedef struct _agp_client {
+ struct _agp_client *next;
+ struct _agp_client *prev;
+ pid_t pid;
+ int num_segments;
+ agp_segment_priv **segments;
+} agp_client;
+
+typedef struct _agp_controller {
+ struct _agp_controller *next;
+ struct _agp_controller *prev;
+ pid_t pid;
+ int num_clients;
+ agp_memory *pool;
+ agp_client *clients;
+} agp_controller;
+
+#define AGP_FF_ALLOW_CLIENT 0
+#define AGP_FF_ALLOW_CONTROLLER 1
+#define AGP_FF_IS_CLIENT 2
+#define AGP_FF_IS_CONTROLLER 3
+#define AGP_FF_IS_VALID 4
+
+typedef struct _agp_file_private {
+ struct _agp_file_private *next;
+ struct _agp_file_private *prev;
+ pid_t my_pid;
+ u32 access_flags;
+} agp_file_private;
+
+struct agp_front_data {
+ struct semaphore agp_mutex;
+ agp_controller *current_controller;
+ agp_controller *controllers;
+ agp_file_private *file_priv_list;
+ u8 used_by_controller;
+ u8 backend_acquired;
+};
+
+#endif /* __KERNEL__ */
+
+#endif /* _AGP_H */
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile
index 5399048fc..96388450b 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile
@@ -1,5 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile,v 1.4 1999/09/25 14:37:49 dawes Exp $
-XCOMM $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile,v 1.7 1999/09/14 19:55:15 faith Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/Imakefile,v 1.5 2000/02/23 04:47:22 martin Exp $
#define IHaveModules
#include <Server.tmpl>
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c
index 1ddf3f4c1..cf4249f38 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c,v 1.1 1999/06/07 13:01:42 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c,v 1.1 1999/06/14 07:32:01 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/drmmodule.c,v 1.2 2000/02/23 04:47:22 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile
index e802cf5ac..7a5fea61c 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile
@@ -1,5 +1,4 @@
-XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile,v 1.1 1999/09/25 14:37:56 dawes Exp $
-XCOMM $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile,v 1.8 1999/07/02 17:46:30 faith Exp $
+XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Imakefile,v 1.2 2000/02/23 04:47:24 martin Exp $
#include <Server.tmpl>
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux
index 0f14540d9..8a41f880b 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux
@@ -24,8 +24,7 @@
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
-# $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/generic/Makefile.linux,v 1.23 1999/07/02 17:46:30 faith Exp $
-# $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux,v 1.5 2000/02/14 06:27:25 martin Exp $
+# $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/Makefile.linux,v 1.6 2000/02/23 04:47:25 martin Exp $
#
.SUFFIXES:
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c
index 865681956..0e3b1c565 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c,v 1.4 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c,v 1.1 1999/09/25 14:37:57 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/auth.c,v 1.2 2000/02/23 04:47:25 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c
index 289868d31..85244c7dc 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c,v 1.8 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c,v 1.4 2000/02/14 06:27:25 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/bufs.c,v 1.5 2000/02/23 04:47:25 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c
index d7f8bdf2b..fdf8fd9f1 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c,v 1.5 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c,v 1.1 1999/09/25 14:37:58 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/context.c,v 1.2 2000/02/23 04:47:26 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c
index 2efeba351..8291e52e4 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c,v 1.7 1999/09/16 16:56:18 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c,v 1.4 2000/02/14 06:27:26 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/dma.c,v 1.5 2000/02/23 04:47:26 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c
index c26953c1d..c7acecb97 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c,v 1.3 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c,v 1.1 1999/09/25 14:37:58 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drawable.c,v 1.2 2000/02/23 04:47:26 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h
index 7488a315e..7b8e88265 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.46 1999/08/20 20:00:53 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.4 2000/02/14 06:27:26 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.5 2000/02/23 04:47:26 martin Exp $
*
* Acknowledgements:
* Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h
index 25c35425a..312fba36f 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h,v 1.58 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h,v 1.5 2000/02/14 06:27:26 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmP.h,v 1.6 2000/02/23 04:47:27 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c
index a0aac6752..8fe6f7072 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c,v 1.28 1999/08/04 18:12:11 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c,v 1.5 2000/02/14 06:27:27 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drmstat.c,v 1.6 2000/02/23 04:47:27 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c
index ceef1d8ca..2a064e5df 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c,v 1.3 1999/08/20 15:36:45 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c,v 1.5 2000/02/14 06:27:27 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/fops.c,v 1.6 2000/02/23 04:47:27 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c
index 3b1592180..eec0f8592 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c,v 1.9 1999/09/16 16:56:18 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c,v 1.1 1999/09/25 14:38:00 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_dma.c,v 1.2 2000/02/23 04:47:28 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c
index 4e1e30e15..ce970835a 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c,v 1.17 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c,v 1.3 2000/01/20 07:25:35 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.c,v 1.4 2000/02/23 04:47:28 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h
index 15e77dca9..d78a13eb7 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h,v 1.4 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h,v 1.1 1999/09/25 14:38:00 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/gamma_drv.h,v 1.2 2000/02/23 04:47:28 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c
index 340ba8f5a..25c0aed22 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c,v 1.3 1999/08/20 15:07:01 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c,v 1.1 1999/09/25 14:38:01 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/init.c,v 1.2 2000/02/23 04:47:29 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c
index 886ef661c..8edfb4374 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c,v 1.3 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c,v 1.1 1999/09/25 14:38:01 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/ioctl.c,v 1.2 2000/02/23 04:47:29 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c
index 50655bc3c..af8f6150a 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c,v 1.3 1999/08/20 15:07:02 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c,v 1.4 2000/02/14 06:27:27 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lists.c,v 1.6 2000/02/23 04:56:42 martin Exp $
*
*/
@@ -154,7 +153,7 @@ int drm_freelist_put(drm_device_t *dev, drm_freelist_t *bl, drm_buf_t *buf)
buf->list = DRM_LIST_FREE;
do {
old = bl->next;
- bl->next = old;
+ buf->next = old;
prev = cmpxchg(&bl->next, old, buf);
if (++count > DRM_LOOPING_LIMIT) {
DRM_ERROR("Looping\n");
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c
index ae41526f1..adf27ab5d 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c,v 1.5 1999/08/30 13:05:00 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c,v 1.4 2000/02/14 06:27:27 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/lock.c,v 1.5 2000/02/23 04:47:29 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c
index 4ba911f34..a8a81abd8 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c,v 1.4 1999/08/20 20:00:53 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c,v 1.4 2000/02/14 06:27:28 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/memory.c,v 1.5 2000/02/23 04:47:30 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c
index ec0ebeeb9..54aba58c4 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c,v 1.4 1999/08/20 15:36:46 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c,v 1.5 2000/02/14 06:27:28 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/proc.c,v 1.6 2000/02/23 04:47:30 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c
index 29e75ab5e..842d6f5d5 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI$
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c,v 1.1 1999/12/14 01:49:21 robin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_context.c,v 1.2 2000/02/23 04:47:30 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c
index 61c917eb4..57c1c719d 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI$
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c,v 1.2 2000/01/20 07:25:36 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.c,v 1.3 2000/02/23 04:47:31 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h
index aad3aa191..3866010a8 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI$
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h,v 1.1 1999/12/14 01:49:22 robin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/tdfx_drv.h,v 1.2 2000/02/23 04:47:31 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c
index 5c272eb6c..85470ac52 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c,v 1.7 1999/08/21 02:48:34 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c,v 1.4 2000/02/14 06:27:28 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/vm.c,v 1.5 2000/02/23 04:47:31 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c
index d0d869692..3b0f98acd 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c,v 1.43 1999/08/04 18:14:43 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c,v 1.9 2000/02/14 06:27:24 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drm.c,v 1.10 2000/02/23 04:47:23 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c
index a3c9481b5..c08a5f4c4 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c,v 1.3 1999/06/07 13:01:42 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c,v 1.1 1999/06/14 07:32:02 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmHash.c,v 1.2 2000/02/23 04:47:23 martin Exp $
*
* DESCRIPTION
*
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c
index dad836d02..f42698c48 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c,v 1.4 1999/06/24 18:54:55 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c,v 1.2 1999/06/27 14:08:20 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmRandom.c,v 1.3 2000/02/23 04:47:23 martin Exp $
*
* DESCRIPTION
*
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c
index d5dd63da8..56059384f 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c,v 1.2 1999/06/07 13:01:42 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c,v 1.1 1999/06/14 07:32:02 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/xf86drmSL.c,v 1.2 2000/02/23 04:47:24 martin Exp $
*
* DESCRIPTION
*
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c
index b4a122772..3e6f39685 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c,v 1.7 2000/02/08 17:19:23 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/int10/linux.c,v 1.8 2000/02/29 03:09:26 dawes Exp $ */
/*
* linux specific part of the int10 module
* Copyright 1999 Egbert Eich
@@ -419,9 +419,21 @@ vm86_rep(struct vm86_struct *ptr)
{
int __res;
- __asm__ __volatile__("int $0x80\n"
+#ifdef __PIC__
+ /* When compiling with -fPIC, we can't use asm constraint "b" because
+ %ebx is already taken by gcc. */
+ __asm__ __volatile__("pushl %%ebx\n\t"
+ "movl %2,%%ebx\n\t"
+ "movl %1,%%eax\n\t"
+ "int $0x80\n\t"
+ "popl %%ebx"
+ :"=a" (__res)
+ :"n" ((int)113), "r" ((struct vm86_struct *)ptr));
+#else
+ __asm__ __volatile__("int $0x80"
:"=a" (__res):"a" ((int)113),
"b" ((struct vm86_struct *)ptr));
+#endif
if ((__res) < 0) {
errno = -__res;
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c
index ff8059d8a..72ab22f8a 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c,v 3.6 2000/02/18 16:23:24 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnxResource.c,v 3.7 2000/03/06 22:59:33 dawes Exp $ */
/* Resource information code */
@@ -150,6 +150,62 @@ xf86AccResFromOS(resPtr ret)
return ret;
}
+#elif defined(__powerpc__)
+
+ /* XXX this isn't exactly correct but it will get the server working
+ * for now until we get something better.
+ */
+
+resRange PciAvoid[] = {_PCI_AVOID_PC_STYLE, _END};
+
+resPtr
+xf86BusAccWindowsFromOS(void)
+{
+ resPtr ret = NULL;
+ resRange range;
+
+ RANGE(range,0,0xffffffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ RANGE(range,0,0x0000ffff,ResExcIoBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+ return ret;
+}
+
+resPtr
+xf86PciBusAccWindowsFromOS(void)
+{
+ resPtr ret = NULL;
+ resRange range;
+
+ RANGE(range,0,0xffffffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ RANGE(range,0,0x0000ffff,ResExcIoBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+ return ret;
+}
+
+resPtr
+xf86IsaBusAccWindowsFromOS(void)
+{
+ resPtr ret = NULL;
+ resRange range;
+
+ RANGE(range,0,0xffffffff,ResExcMemBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+
+ RANGE(range,0,0x0000ffff,ResExcIoBlock);
+ ret = xf86AddResToList(ret, &range, -1);
+ return ret;
+}
+
+resPtr
+xf86AccResFromOS(resPtr ret)
+{
+ return ret;
+}
+
#else
#error : Put your platform dependent code here!!
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c
index bf553ae84..38c354ee3 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c,v 3.4 2000/02/12 23:56:20 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_apm.c,v 3.5 2000/03/01 00:25:26 dawes Exp $ */
#include "X.h"
#include "os.h"
@@ -126,7 +126,7 @@ xf86OSPMOpen(void)
if (APMihPtr || !xf86Info.pmFlag)
return NULL;
- if (access( APM_PROC, R_OK ) || (fd = open( APM_PROC, O_RDONLY) == -1))
+ if (access( APM_PROC, R_OK ) || ((fd = open( APM_PROC, O_RDONLY)) == -1))
return NULL;
close( fd );
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c
index 1ce641256..314530dc8 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c,v 3.11 2000/02/08 13:13:30 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_init.c,v 3.12 2000/02/25 18:28:11 dawes Exp $ */
/*
* Copyright 1992 by Orest Zborowski <obz@Kodak.com>
* Copyright 1993 by David Wexelblat <dwex@goblin.org>
@@ -57,6 +57,8 @@ xf86OpenConsole(void)
struct fb_var_screeninfo var;
int fbfd;
#endif
+ char *tty0[] = { "/dev/tty0", "/dev/vc/0", NULL };
+ char *vcs[] = { "/dev/vc/%d", "/dev/tty%d", NULL };
if (serverGeneration == 1)
{
@@ -73,11 +75,17 @@ xf86OpenConsole(void)
xf86Info.vtno = VTnum;
from = X_CMDLINE;
} else {
- if ((fd = open("/dev/tty0",O_WRONLY,0)) < 0) {
+ i=0;
+ while (tty0[i] != NULL)
+ {
+ if ((fd = open(tty0[i],O_WRONLY,0)) >= 0)
+ break;
+ i++;
+ }
+ if (fd < 0)
FatalError(
"xf86OpenConsole: Cannot open /dev/tty0 (%s)\n",
strerror(errno));
- }
if ((ioctl(fd, VT_OPENQRY, &xf86Info.vtno) < 0) ||
(xf86Info.vtno == -1)) {
FatalError("xf86OpenConsole: Cannot find a free VT\n");
@@ -97,15 +105,22 @@ xf86OpenConsole(void)
#endif
xf86Msg(from, "using VT number %d\n\n", xf86Info.vtno);
- sprintf(vtname,"/dev/tty%d",xf86Info.vtno); /* /dev/tty1-64 */
-
if (!KeepTty) {
setpgrp();
}
- if ((xf86Info.consoleFd = open(vtname, O_RDWR|O_NDELAY, 0)) < 0) {
- FatalError("xf86OpenConsole: Cannot open %s (%s)\n",
- vtname, strerror(errno));
+ i=0;
+ while (vcs[i] != NULL)
+ {
+ sprintf(vtname, vcs[i], xf86Info.vtno); /* /dev/tty1-64 */
+ if ((xf86Info.consoleFd = open(vtname, O_RDWR|O_NDELAY, 0)) >= 0)
+ break;
+ i++;
+ }
+
+ if (xf86Info.consoleFd < 0) {
+ FatalError("xf86OpenConsole: Cannot open virtual console %d (%s)\n",
+ xf86Info.vtno, strerror(errno));
}
/* change ownership of the vt */
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c
index 2ee25041a..dc485367a 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c,v 3.31 2000/02/17 13:45:50 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/lnx_video.c,v 3.32 2000/02/22 01:02:37 mvojkovi Exp $ */
/*
* Copyright 1992 by Orest Zborowski <obz@Kodak.com>
* Copyright 1993 by David Wexelblat <dwex@goblin.org>
@@ -45,6 +45,11 @@
static Bool ExtendedEnabled = FALSE;
+#ifdef __ia64__
+#include "compiler.h"
+#include <sys/io.h>
+#endif
+
#ifdef __alpha__
# ifdef LIBC_IS_FIXED
@@ -420,7 +425,11 @@ xf86DisableInterrupts()
#if defined(__alpha__) || defined(__mc68000__) || defined(__powerpc__) || defined(__sparc__)
#else
#ifdef __GNUC__
- __asm__ __volatile__("cli");
+#if defined(__ia64__)
+ __asm__ __volatile__ (";; rsm psr.i;; srlz.d" ::: "memory");
+#else
+ __asm__ __volatile__("cli");
+#endif
#else
asm("cli");
#endif
@@ -443,7 +452,11 @@ xf86EnableInterrupts()
#if defined(__alpha__) || defined(__mc68000__) || defined(__powerpc__) || defined(__sparc__)
#else
#ifdef __GNUC__
- __asm__ __volatile__("sti");
+#if defined(__ia64__)
+ __asm__ __volatile__ (";; ssm psr.i;; srlz.d" ::: "memory");
+#else
+ __asm__ __volatile__("sti");
+#endif
#else
asm("sti");
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c b/xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c
index 0fad8a3c1..5bf3628d2 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c
@@ -21,7 +21,7 @@
*
*/
-/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c,v 3.14 1999/12/08 06:10:13 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/os-support/lynxos/lynx_video.c,v 3.15 2000/03/03 20:02:20 dawes Exp $ */
#include "X.h"
#include "input.h"
@@ -190,8 +190,6 @@ xf86OSInitVidMem(VidMemInfoPtr pVidMem)
pVidMem->linearSupported = TRUE;
pVidMem->mapMem = MapVidMem;
pVidMem->unmapMem = UnMapVidMem;
- pVidMem->mapMemSparse = 0;
- pVidMem->unmapMemSparse = 0;
pVidMem->setWC = 0;
pVidMem->undoWC = 0;
#ifdef HAS_MTRR_SUPPORT
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h b/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h
index 7488a315e..7b8e88265 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/shared/drm/kernel/drm.h
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.46 1999/08/20 20:00:53 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.4 2000/02/14 06:27:26 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm.h,v 1.5 2000/02/23 04:47:26 martin Exp $
*
* Acknowledgements:
* Dec 1999, Richard Henderson <rth@twiddle.net>, move to generic cmpxchg.
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c b/xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c
index 0681098d0..15e7e530a 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c
+++ b/xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c
@@ -1,6 +1,5 @@
/* sigio.c -- Support for SIGIO handler installation and removal
* Created: Thu Jun 3 15:39:18 1999 by faith@precisioninsight.com
- * Revised: Thu Jun 3 16:16:35 1999 by faith@precisioninsight.com
* Revised: Thu Jan 6 10:32:25 2000 by faith@precisioninsight.com
*
* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
@@ -25,7 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c,v 1.8 2000/02/08 17:19:24 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/shared/sigio.c,v 1.9 2000/03/02 16:07:53 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h b/xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h
index 62b59306b..61287e3e2 100644
--- a/xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h
+++ b/xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h,v 1.44 1999/08/04 18:14:42 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h,v 1.6 2000/02/14 06:27:24 martin Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h,v 1.7 2000/02/23 04:47:21 martin Exp $
*
*/
diff --git a/xc/programs/Xserver/hw/xfree86/parser/DRI.c b/xc/programs/Xserver/hw/xfree86/parser/DRI.c
index 80190fcb1..e120399b9 100644
--- a/xc/programs/Xserver/hw/xfree86/parser/DRI.c
+++ b/xc/programs/Xserver/hw/xfree86/parser/DRI.c
@@ -24,8 +24,7 @@
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*
- * $PI: xc/programs/Xserver/hw/xfree86/parser/DRI.c,v 1.2 1999/06/17 21:45:25 faith Exp $
- * $XFree86: xc/programs/Xserver/hw/xfree86/parser/DRI.c,v 1.1 1999/06/27 14:08:30 dawes Exp $
+ * $XFree86: xc/programs/Xserver/hw/xfree86/parser/DRI.c,v 1.3 2000/03/05 17:04:19 dawes Exp $
*
*/
@@ -44,8 +43,6 @@ static xf86ConfigSymTabRec DRITab[] =
{-1, ""},
};
-#define DEBUG
-
#define CLEANUP freeBuffersList
XF86ConfBuffersPtr
diff --git a/xc/programs/Xserver/hw/xfree86/parser/Device.c b/xc/programs/Xserver/hw/xfree86/parser/Device.c
index db206652c..8d79dd78c 100644
--- a/xc/programs/Xserver/hw/xfree86/parser/Device.c
+++ b/xc/programs/Xserver/hw/xfree86/parser/Device.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Device.c,v 1.13 2000/01/30 00:55:36 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Device.c,v 1.14 2000/03/01 16:01:30 tsi Exp $ */
/*
*
* Copyright (c) 1997 Metro Link Incorporated
@@ -75,6 +75,7 @@ parseDeviceSection (void)
/* Zero is a valid value for these */
ptr->dev_chipid = -1;
ptr->dev_chiprev = -1;
+ ptr->dev_irq = -1;
while ((token = xf86GetToken (DeviceTab)) != ENDSECTION)
{
switch (token)
@@ -287,9 +288,9 @@ printDeviceSection (FILE * cf, XF86ConfDevicePtr ptr)
if (ptr->dev_clockchip)
fprintf (cf, "\tClockChip \"%s\"\n", ptr->dev_clockchip);
if (ptr->dev_chipid != -1)
- fprintf (cf, "\tChipId %d\n", ptr->dev_chipid);
+ fprintf (cf, "\tChipId 0x%x\n", ptr->dev_chipid);
if (ptr->dev_chiprev != -1)
- fprintf (cf, "\tChipRev %d\n", ptr->dev_chiprev);
+ fprintf (cf, "\tChipRev 0x%x\n", ptr->dev_chiprev);
for (optr = ptr->dev_option_lst; optr; optr = optr->list.next)
{
diff --git a/xc/programs/Xserver/hw/xfree86/parser/Imakefile b/xc/programs/Xserver/hw/xfree86/parser/Imakefile
index 7237012fa..3cef69fce 100644
--- a/xc/programs/Xserver/hw/xfree86/parser/Imakefile
+++ b/xc/programs/Xserver/hw/xfree86/parser/Imakefile
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Imakefile,v 1.10 1999/09/04 13:04:53 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Imakefile,v 1.11 2000/03/02 17:53:13 dawes Exp $ */
@@ -25,6 +25,7 @@ SYS_LIBRARIES = MathLibrary
XCONFIGFILE = XConfigFile
XCONFIGDIR = XConfigDir
+XVERS = XFree86Version
INCLUDES = -I. -I$(XF86OSSRC)
@@ -36,7 +37,9 @@ OBJS = Device.o Files.o Flags.o Input.o Keyboard.o Layout.o Module.o \
Video.o Monitor.o Pointer.o Screen.o Vendor.o read.o scan.o write.o \
DRI.o
-CONFIG_DEFINES = -DXCONFIGDIR=\"$(XCONFIGDIR)\" -DXCONFIGFILE=\"$(XCONFIGFILE)\"
+CONFIG_DEFINES = -DXCONFIGDIR=\"$(XCONFIGDIR)\" \
+ -DXCONFIGFILE=\"$(XCONFIGFILE)\" \
+ -DXVERSION=$(XVERS)
#include <Library.tmpl>
diff --git a/xc/programs/Xserver/hw/xfree86/parser/Screen.c b/xc/programs/Xserver/hw/xfree86/parser/Screen.c
index 11f08f331..ee945bd07 100644
--- a/xc/programs/Xserver/hw/xfree86/parser/Screen.c
+++ b/xc/programs/Xserver/hw/xfree86/parser/Screen.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Screen.c,v 1.10 2000/01/26 02:00:51 alanh Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/Screen.c,v 1.11 2000/02/25 19:07:53 dawes Exp $ */
/*
*
* Copyright (c) 1997 Metro Link Incorporated
@@ -96,7 +96,7 @@ parseDisplaySubSection (void)
break;
case VISUAL:
if (xf86GetToken (NULL) != STRING)
- Error (NUMBER_MSG, "Display");
+ Error (QUOTE_MSG, "Display");
ptr->disp_visual = val.str;
break;
case WEIGHT:
@@ -381,7 +381,7 @@ printScreenSection (FILE * cf, XF86ConfScreenPtr ptr)
{
fprintf (cf, "\tSubSection \"Display\"\n");
if (dptr->disp_comment)
- fprintf (cf, "\t\t### %d %d\n",
+ fprintf (cf, "\t\t### %s\n",
dptr->disp_comment);
if (dptr->disp_frameX0 != 0 || dptr->disp_frameY0 != 0)
{
diff --git a/xc/programs/Xserver/hw/xfree86/parser/scan.c b/xc/programs/Xserver/hw/xfree86/parser/scan.c
index d377a72e2..8018c5fda 100644
--- a/xc/programs/Xserver/hw/xfree86/parser/scan.c
+++ b/xc/programs/Xserver/hw/xfree86/parser/scan.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/scan.c,v 1.9 2000/01/31 19:33:39 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/scan.c,v 1.10 2000/03/02 17:53:13 dawes Exp $ */
/*
*
* Copyright (c) 1997 Metro Link Incorporated
@@ -357,6 +357,7 @@ PathIsSafe(const char *path)
* %G config file environment ($XF86CONFIG) as a safe path
* %D $HOME
* %P projroot
+ * %M major version number
* %% %
*/
@@ -369,6 +370,13 @@ PathIsSafe(const char *path)
#ifndef XCONFENV
#define XCONFENV "XF86CONFIG"
#endif
+#ifndef XF86_VERSION_MAJOR
+#ifdef XVERSION
+#define XF86_VERSION_MAJOR (XVERSION / 1000)
+#else
+#define XF86_VERSION_MAJOR 4
+#endif
+#endif
#define BAIL_OUT do { \
xf86conffree(result); \
@@ -398,6 +406,7 @@ DoSubstitution(const char *template, const char *cmdline, const char *projroot,
int i, l;
static const char *env = NULL, *home = NULL;
static char *hostname = NULL;
+ static char majorvers[3] = "";
if (!template)
return NULL;
@@ -500,6 +509,16 @@ DoSubstitution(const char *template, const char *cmdline, const char *projroot,
else
BAIL_OUT;
break;
+ case 'M':
+ if (!majorvers[0]) {
+ if (XF86_VERSION_MAJOR < 0 || XF86_VERSION_MAJOR > 99) {
+ fprintf(stderr, "XF86_VERSION_MAJOR is out of range\n");
+ BAIL_OUT;
+ } else
+ sprintf(majorvers, "%d", XF86_VERSION_MAJOR);
+ }
+ APPEND_STR(majorvers);
+ break;
case '%':
result[l++] = '%';
CHECK_LENGTH;
@@ -539,11 +558,14 @@ DoSubstitution(const char *template, const char *cmdline, const char *projroot,
"%P/etc/X11/%S," \
"/etc/X11/%G," \
"%P/etc/X11/%G," \
+ "/etc/X11/%X-%M," \
"/etc/X11/%X," \
"/etc/%X," \
"%P/etc/X11/%X.%H," \
+ "%P/etc/X11/%X-%M," \
"%P/etc/X11/%X," \
"%P/lib/X11/%X.%H," \
+ "%P/lib/X11/%X-%M," \
"%P/lib/X11/%X"
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/parser/write.c b/xc/programs/Xserver/hw/xfree86/parser/write.c
index 95a4e0673..0bd3369ac 100644
--- a/xc/programs/Xserver/hw/xfree86/parser/write.c
+++ b/xc/programs/Xserver/hw/xfree86/parser/write.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/write.c,v 1.8 1999/09/04 13:04:54 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/parser/write.c,v 1.10 2000/03/06 22:59:34 dawes Exp $ */
/*
*
* Copyright (c) 1997 Metro Link Incorporated
@@ -33,8 +33,37 @@
#include "xf86tokens.h"
#include "Configint.h"
-int
-xf86WriteConfigFile (const char *filename, XF86ConfigPtr cptr)
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <signal.h>
+#include <errno.h>
+
+#if (defined(X_NOT_STDC_ENV) || (defined(sun) && !defined(SVR4)) || defined(macII)) && !defined(__GLIBC__)
+#ifndef strerror
+extern char *sys_errlist[];
+extern int sys_nerr;
+#define strerror(n) \
+ (((n) >= 0 && (n) < sys_nerr) ? sys_errlist[n] : "unknown error")
+#endif
+#endif
+
+#if defined(SVR4) || defined(__linux__) || defined(CSRG_BASED)
+#define HAS_SAVED_IDS_AND_SETEUID
+#endif
+#if defined(__EMX__) || defined(WIN32)
+#define HAS_NO_UIDS
+#endif
+
+#ifdef HAS_NO_UIDS
+#define doWriteConfigFile xf86WriteConfigFile
+#define Local /**/
+#else
+#define Local static
+#endif
+
+Local int
+doWriteConfigFile (const char *filename, XF86ConfigPtr cptr)
{
FILE *cf;
@@ -74,3 +103,82 @@ xf86WriteConfigFile (const char *filename, XF86ConfigPtr cptr)
fclose(cf);
return 1;
}
+
+#ifndef HAS_NO_UIDS
+
+int
+xf86WriteConfigFile (const char *filename, XF86ConfigPtr cptr)
+{
+ int ret;
+
+#if !defined(HAS_SAVED_IDS_AND_SETEUID)
+ int pid, p;
+ int status;
+ void (*csig)(int);
+#else
+ int ruid, euid;
+#endif
+
+ if (getuid() != geteuid())
+ {
+
+#if !defined(HAS_SAVED_IDS_AND_SETEUID)
+ /* Need to fork to change ruid without loosing euid */
+#ifdef SIGCHLD
+ csig = signal(SIGCHLD, SIG_DFL);
+#endif
+ switch ((pid = fork()))
+ {
+ case -1:
+ ErrorF("xf86WriteConfigFile(): fork failed (%s)\n",
+ strerror(errno));
+ return 0;
+ case 0: /* child */
+ setuid(getuid());
+ ret = doWriteConfigFile(filename, cptr);
+ exit(ret);
+ break;
+ default: /* parent */
+ do
+ {
+ p = waitpid(pid, &status, 0);
+ } while (p == -1 && errno == EINTR);
+ }
+#ifdef SIGCHLD
+ signal(SIGCHLD, csig);
+#endif
+ if (p != -1 && WIFEXITED(status) && WEXITSTATUS(status) == 0)
+ return 1; /* success */
+ else
+ return 0;
+
+#else /* HAS_SAVED_IDS_AND_SETEUID */
+
+ ruid = getuid();
+ euid = geteuid();
+
+ if (seteuid(ruid) == -1)
+ {
+ ErrorF("xf86WriteConfigFile(): seteuid(%d) failed (%s)\n",
+ ruid, strerror(errno));
+ return 0;
+ }
+ ret = doWriteConfigFile(filename, cptr);
+
+ if (seteuid(euid) == -1)
+ {
+ ErrorF("xf86WriteConfigFile(): seteuid(%d) failed (%s)\n",
+ euid, strerror(errno));
+ }
+ return ret;
+
+#endif /* HAS_SAVED_IDS_AND_SETEUID */
+
+ }
+ else
+ {
+ return doWriteConfigFile(filename, cptr);
+ }
+}
+
+#endif /* !HAS_NO_UIDS */
diff --git a/xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c b/xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c
index 3b1ed842f..3f8dea6f3 100644
--- a/xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c
+++ b/xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c,v 1.5 1999/08/14 10:50:13 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaBitmap.c,v 1.6 2000/03/03 18:49:55 mvojkovi Exp $ */
#include "xaa.h"
@@ -113,6 +113,9 @@ BitmapScanline_Shifted_Inverted(
return base;
}
+#define BitmapScanline_Shifted_Careful BitmapScanline_Shifted
+#define BitmapScanline_Shifted_Inverted_Careful BitmapScanline_Shifted_Inverted
+
#else
static CARD32*
BitmapScanline(
@@ -192,6 +195,36 @@ BitmapScanline_Shifted_Inverted(
}
return base;
}
+
+static CARD32*
+BitmapScanline_Shifted_Careful(
+ CARD32 *bits, CARD32 *base,
+ int count, int skipleft )
+{
+ while(--count) {
+ WRITE_BITS(SHIFT_R(*bits,skipleft) |
+ SHIFT_L(*(bits + 1),(32 - skipleft)));
+ bits++;
+ }
+ WRITE_BITS(SHIFT_R(*bits,skipleft));
+
+ return base;
+}
+
+static CARD32*
+BitmapScanline_Shifted_Inverted_Careful(
+ CARD32 *bits, CARD32 *base,
+ int count, int skipleft )
+{
+ while(--count) {
+ WRITE_BITS(~(SHIFT_R(*bits,skipleft) |
+ SHIFT_L(*(bits + 1),(32 - skipleft))));
+ bits++;
+ }
+ WRITE_BITS(~(SHIFT_R(*bits,skipleft)));
+ return base;
+}
+
#endif
/*
@@ -250,8 +283,14 @@ EXPNAME(XAAWriteBitmapColorExpand)(
(!(infoRec->CPUToScreenColorExpandFillFlags & LEFT_EDGE_CLIPPING_NEGATIVE_X) &&
(skipleft > x)))) {
#endif
- firstFunc = BitmapScanline_Shifted;
- secondFunc = BitmapScanline_Shifted_Inverted;
+ if((skipleft + ((w + 31) & ~31)) > ((skipleft + w + 31) & ~31)) {
+ /* don't read past the end */
+ firstFunc = BitmapScanline_Shifted_Careful;
+ secondFunc = BitmapScanline_Shifted_Inverted_Careful;
+ } else {
+ firstFunc = BitmapScanline_Shifted;
+ secondFunc = BitmapScanline_Shifted_Inverted;
+ }
shift = skipleft;
skipleft = 0;
} else {
@@ -360,8 +399,14 @@ EXPNAME(XAAWriteBitmapScanlineColorExpand)(
(!(infoRec->ScanlineCPUToScreenColorExpandFillFlags &
LEFT_EDGE_CLIPPING_NEGATIVE_X) && (skipleft > x)))) {
#endif
- firstFunc = BitmapScanline_Shifted;
- secondFunc = BitmapScanline_Shifted_Inverted;
+ if((skipleft + ((w + 31) & ~31)) > ((skipleft + w + 31) & ~31)) {
+ /* don't read past the end */
+ firstFunc = BitmapScanline_Shifted_Careful;
+ secondFunc = BitmapScanline_Shifted_Inverted_Careful;
+ } else {
+ firstFunc = BitmapScanline_Shifted;
+ secondFunc = BitmapScanline_Shifted_Inverted;
+ }
shift = skipleft;
skipleft = 0;
} else {
diff --git a/xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c b/xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c
index b79fd6be9..82c541177 100644
--- a/xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c
+++ b/xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c,v 1.24 2000/01/21 01:12:22 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaPCache.c,v 1.28 2000/02/27 21:50:20 mvojkovi Exp $ */
#include "misc.h"
#include "xf86.h"
@@ -15,6 +15,7 @@
#include "servermd.h"
#include "xf86str.h"
#include "xaa.h"
+#include "xaacexp.h"
#include "xaalocal.h"
#include "xaawrap.h"
@@ -833,9 +834,10 @@ XAAInitPixmapCache(
*/
next = List128->next;
while(Num128 > max) {
- List128->next = ListPartial; ListPartial = List128;
- List128 = next;
- next = List128->next;
+ List128->next = ListPartial;
+ ListPartial = List128;
+ if((List128 = next))
+ next = List128->next;
NumPartial++; Num128--;
}
}
@@ -1069,12 +1071,21 @@ XAAInitPixmapCache(
CACHEINIT(pScrn) = 1;
}
+#if X_BYTE_ORDER == X_BIG_ENDIAN
+static CARD32 StippleMasks[4] = {
+ 0x80808080,
+ 0xC0C0C0C0,
+ 0x00000000,
+ 0xF0F0F0F0
+};
+#else
static CARD32 StippleMasks[4] = {
0x01010101,
0x03030303,
0x00000000,
0x0F0F0F0F
};
+#endif
Bool
XAACheckStippleReducibility(PixmapPtr pPixmap)
@@ -1086,6 +1097,7 @@ XAACheckStippleReducibility(PixmapPtr pPixmap)
int h = pPixmap->drawable.height;
int i;
CARD32 bits[8];
+ CARD32 mask = SHIFT_R(0xFFFFFFFF,24);
pPriv->flags |= REDUCIBILITY_CHECKED | REDUCIBLE_TO_2_COLOR;
pPriv->flags &= ~REDUCIBLE_TO_8x8;
@@ -1098,23 +1110,23 @@ XAACheckStippleReducibility(PixmapPtr pPixmap)
switch(w) {
case 32:
while(i--) {
- bits[i] = IntPtr[i] & 0x000000FF;
- if( (bits[i] != ((IntPtr[i] & 0x0000FF00) >> 8)) ||
- (bits[i] != ((IntPtr[i] & 0x00FF0000) >> 16)) ||
- (bits[i] != ((IntPtr[i] & 0xFF000000) >> 24)))
+ bits[i] = IntPtr[i] & mask;
+ if( (bits[i] != SHIFT_R((IntPtr[i] & SHIFT_L(mask, 8)), 8)) ||
+ (bits[i] != SHIFT_R((IntPtr[i] & SHIFT_L(mask,16)),16)) ||
+ (bits[i] != SHIFT_R((IntPtr[i] & SHIFT_L(mask,24)),24)))
return FALSE;
}
break;
case 16:
while(i--) {
- bits[i] = IntPtr[i] & 0x000000FF;
- if(bits[i] != ((IntPtr[i] & 0x0000FF00) >> 8))
+ bits[i] = IntPtr[i] & mask;
+ if(bits[i] != ((IntPtr[i] & SHIFT_R(SHIFT_L(mask,8),8))))
return FALSE;
}
break;
default:
while(i--)
- bits[i] = IntPtr[i] & 0x000000FF;
+ bits[i] = IntPtr[i] & mask;
break;
}
@@ -1146,20 +1158,20 @@ XAACheckStippleReducibility(PixmapPtr pPixmap)
pPriv->flags |= REDUCIBLE_TO_8x8;
- pPriv->pattern0 = bits[0] | (bits[1]<<8) | (bits[2]<<16) | (bits[3]<<24);
- pPriv->pattern1 = bits[4] | (bits[5]<<8) | (bits[6]<<16) | (bits[7]<<24);
+ pPriv->pattern0 = bits[0] | SHIFT_L(bits[1],8) | SHIFT_L(bits[2],16) | SHIFT_L(bits[3],24);
+ pPriv->pattern1 = bits[4] | SHIFT_L(bits[5],8) | SHIFT_L(bits[6],16) | SHIFT_L(bits[7],24);
if(w < 8) {
pPriv->pattern0 &= StippleMasks[w - 1];
pPriv->pattern1 &= StippleMasks[w - 1];
switch(w) {
- case 1: pPriv->pattern0 |= (pPriv->pattern0 << 1);
- pPriv->pattern1 |= (pPriv->pattern1 << 1);
- case 2: pPriv->pattern0 |= (pPriv->pattern0 << 2);
- pPriv->pattern1 |= (pPriv->pattern1 << 2);
- case 4: pPriv->pattern0 |= (pPriv->pattern0 << 4);
- pPriv->pattern1 |= (pPriv->pattern1 << 4);
+ case 1: pPriv->pattern0 |= SHIFT_L(pPriv->pattern0,1);
+ pPriv->pattern1 |= SHIFT_L(pPriv->pattern1,1);
+ case 2: pPriv->pattern0 |= SHIFT_L(pPriv->pattern0,2);
+ pPriv->pattern1 |= SHIFT_L(pPriv->pattern1,2);
+ case 4: pPriv->pattern0 |= SHIFT_L(pPriv->pattern0,4);
+ pPriv->pattern1 |= SHIFT_L(pPriv->pattern1,4);
}
}
@@ -1899,8 +1911,8 @@ XAAWritePixmapToCacheLinear(
pScreenPix = (*pScreen->GetScreenPixmap)(pScreen);
- pDstPix = GetScratchPixmapHeader(pScreen, pScreenPix->drawable.width,
- y + h, depth, bpp, pScreenPix->devKind,
+ pDstPix = GetScratchPixmapHeader(pScreen, x + w, y + h,
+ depth, bpp, pScreenPix->devKind,
pScreenPix->devPrivate.ptr);
pGC = GetScratchGC(depth, pScreen);
diff --git a/xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c b/xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c
index a3d3dd44f..5807cb6e6 100644
--- a/xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c
+++ b/xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c,v 1.5 1999/08/14 10:50:14 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xaa/xaaStipple.c,v 1.7 2000/02/29 17:38:32 tsi Exp $ */
#include "xaa.h"
#include "xaalocal.h"
@@ -37,14 +37,23 @@ StippleScanlineProcPtr stipple_scanline_func[6] = {
#if defined(FIXEDBASE) && defined(MSBFIRST)
unsigned int XAAShiftMasks[32] = {
- 0x00000000, 0x00000001, 0x00000003, 0x00000007,
- 0x0000000F, 0x0000001F, 0x0000003F, 0x0000007F,
- 0x000000FF, 0x000001FF, 0x000003FF, 0x000007FF,
- 0x00000FFF, 0x00001FFF, 0x00003FFF, 0x00007FFF,
- 0x0000FFFF, 0x0001FFFF, 0x0003FFFF, 0x0007FFFF,
- 0x000FFFFF, 0x001FFFFF, 0x003FFFFF, 0x007FFFFF,
- 0x00FFFFFF, 0x01FFFFFF, 0x03FFFFFF, 0x07FFFFFF,
- 0x0FFFFFFF, 0x1FFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF
+ /* gcc is rather pedantic about SHIFT_R(0xFFFFFFFF,32) */
+ 0x00000000 , SHIFT_R(0xFFFFFFFF,31),
+ SHIFT_R(0xFFFFFFFF,30), SHIFT_R(0xFFFFFFFF,29),
+ SHIFT_R(0xFFFFFFFF,28), SHIFT_R(0xFFFFFFFF,27),
+ SHIFT_R(0xFFFFFFFF,26), SHIFT_R(0xFFFFFFFF,25),
+ SHIFT_R(0xFFFFFFFF,24), SHIFT_R(0xFFFFFFFF,23),
+ SHIFT_R(0xFFFFFFFF,22), SHIFT_R(0xFFFFFFFF,21),
+ SHIFT_R(0xFFFFFFFF,20), SHIFT_R(0xFFFFFFFF,19),
+ SHIFT_R(0xFFFFFFFF,18), SHIFT_R(0xFFFFFFFF,17),
+ SHIFT_R(0xFFFFFFFF,16), SHIFT_R(0xFFFFFFFF,15),
+ SHIFT_R(0xFFFFFFFF,14), SHIFT_R(0xFFFFFFFF,13),
+ SHIFT_R(0xFFFFFFFF,12), SHIFT_R(0xFFFFFFFF,11),
+ SHIFT_R(0xFFFFFFFF,10), SHIFT_R(0xFFFFFFFF,9),
+ SHIFT_R(0xFFFFFFFF,8), SHIFT_R(0xFFFFFFFF,7),
+ SHIFT_R(0xFFFFFFFF,6), SHIFT_R(0xFFFFFFFF,5),
+ SHIFT_R(0xFFFFFFFF,4), SHIFT_R(0xFFFFFFFF,3),
+ SHIFT_R(0xFFFFFFFF,2), SHIFT_R(0xFFFFFFFF,1)
};
#endif
diff --git a/xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c b/xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c
index cae24ac80..d149f41d3 100644
--- a/xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c
+++ b/xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c,v 1.2 1999/08/29 12:21:05 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf24_32bpp/cfbimage.c,v 1.3 2000/02/25 00:21:00 mvojkovi Exp $ */
#include "X.h"
#include "windowstr.h"
@@ -25,6 +25,9 @@ cfb24_32GetImage (
){
if(!w || !h) return;
+ if (!cfbDrawableEnabled (pDraw))
+ return;
+
if(pDraw->bitsPerPixel != 24) {
cfb32GetImage(pDraw, sx, sy, w, h, format, planemask, pdstLine);
return;
@@ -70,6 +73,9 @@ cfb24_32GetSpans(
int pitch, i;
CARD8 *ptr, *ptrBase;
+ if (!cfbDrawableEnabled (pDraw))
+ return;
+
if(pDraw->bitsPerPixel != 24){
cfb32GetSpans(pDraw, wMax, ppt, pwidth, nspans, pDst);
return;
diff --git a/xc/programs/Xserver/hw/xfree86/xf86Version.h b/xc/programs/Xserver/hw/xfree86/xf86Version.h
index bc2354e26..57e9ede9d 100644
--- a/xc/programs/Xserver/hw/xfree86/xf86Version.h
+++ b/xc/programs/Xserver/hw/xfree86/xf86Version.h
@@ -1,11 +1,11 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Version.h,v 3.420 2000/02/21 18:05:40 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Version.h,v 3.428 2000/03/08 15:14:43 dawes Exp $ */
-#define XF86_VERSION " 3.9.18 "
+#define XF86_VERSION " 4.0 "
/* The finer points in versions... */
-#define XF86_VERSION_MAJOR 3
-#define XF86_VERSION_MINOR 9
-#define XF86_VERSION_SUBMINOR 18
+#define XF86_VERSION_MAJOR 4
+#define XF86_VERSION_MINOR 0
+#define XF86_VERSION_SUBMINOR 0
#define XF86_VERSION_BETA 0 /* 0="", 1="A", 2="B", etc... */
#define XF86_VERSION_ALPHA 0 /* 0="", 1="a", 2="b", etc... */
@@ -18,6 +18,6 @@
XF86_VERSION_BETA, \
XF86_VERSION_ALPHA)
-#define XF86_DATE "21 February 2000"
+#define XF86_DATE "8 March 2000"
/* $XConsortium: xf86Version.h /main/78 1996/10/28 05:42:10 kaleb $ */
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h
index 4c4d548ad..733051ae0 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h,v 1.3 2000/02/11 06:33:46 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfb8_32.h,v 1.5 2000/03/02 02:32:52 mvojkovi Exp $ */
#ifndef _CFB8_32_H
#define _CFB8_32_H
@@ -14,6 +14,8 @@ typedef struct {
typedef struct {
unsigned char key;
+ void (*EnableDisableFBAccess)(int scrnIndex, Bool enable);
+ pointer visualData;
} cfb8_32ScreenRec, *cfb8_32ScreenPtr;
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c
index 5d6514137..752e56db8 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c,v 1.4 1999/05/23 06:33:51 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbcpyarea.c,v 1.5 2000/02/29 00:17:16 mvojkovi Exp $ */
#include "X.h"
#include "Xmd.h"
@@ -327,7 +327,7 @@ Do8To8Blt(
}
if(xdir < 0) {
- register tmp = (width - 1) << 2;
+ register int tmp = (width - 1) << 2;
src += tmp;
dst += tmp;
}
@@ -371,7 +371,7 @@ Do24To24Blt(
}
if(xdir < 0) {
- register tmp = (width - 1) << 2;
+ register int tmp = (width - 1) << 2;
src += tmp;
dst += tmp;
}
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c
index 59e926a24..d8a6f4608 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c,v 1.2 2000/02/11 06:33:46 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbgcmisc.c,v 1.3 2000/02/29 00:17:16 mvojkovi Exp $ */
#include "X.h"
#include "Xmd.h"
@@ -51,8 +51,6 @@ GCFuncs cfb32GCFuncs_Underlay = {
static void
cfb32DestroyGC_Underlay(GCPtr pGC)
{
- cfb8_32GCPtr pGCPriv = CFB8_32_GET_GC_PRIVATE(pGC);
-
if (pGC->freeCompClip)
REGION_DESTROY(pGC->pScreen, pGC->pCompositeClip);
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c
index d2c4424f2..1e8550851 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c,v 1.1 1999/01/03 03:58:56 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbimage.c,v 1.2 2000/02/25 00:21:40 mvojkovi Exp $ */
#include "X.h"
#include "windowstr.h"
@@ -24,6 +24,9 @@ cfb8_32GetImage (
){
if(!w || !h) return;
+ if (!cfbDrawableEnabled (pDraw))
+ return;
+
if(pDraw->depth == 24){
cfb32GetImage(pDraw, sx, sy, w, h, format, planemask, pdstLine);
return;
@@ -130,6 +133,9 @@ cfb8_32GetSpans(
int pitch, i;
CARD8 *ptr, *ptrBase;
+ if (!cfbDrawableEnabled (pDraw))
+ return;
+
if(pDraw->bitsPerPixel == 1) {
mfbGetSpans(pDraw, wMax, ppt, pwidth, nspans, pDst);
return;
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c
index 88e96ee7f..ea0338ff8 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c,v 1.3 2000/02/11 06:33:46 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbpntwin.c,v 1.4 2000/02/29 00:17:16 mvojkovi Exp $ */
#include "X.h"
@@ -25,7 +25,6 @@ cfb8_32PaintWindow(
RegionPtr pRegion,
int what
){
- cfb8_32ScreenPtr pScreenPriv;
WindowPtr pBgWin;
int xorg, yorg;
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c
index 1c050dd1a..0d80ab2a9 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c,v 1.6 2000/02/11 06:33:47 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbscrinit.c,v 1.9 2000/03/03 00:22:47 mvojkovi Exp $ */
#include "X.h"
@@ -153,6 +153,9 @@ cfb8_32CloseScreen (int i, ScreenPtr pScreen)
{
cfb8_32ScreenPtr pScreenPriv = CFB8_32_GET_SCREEN_PRIVATE(pScreen);
+ if(pScreenPriv->visualData)
+ xfree(pScreenPriv->visualData);
+
xfree((pointer) pScreenPriv);
return(cfb32CloseScreen(i, pScreen));
@@ -204,23 +207,99 @@ cfb8_32FinishScreenInit(
return TRUE;
}
+static void
+cfb8_32EnableDisableFBAccess (
+ int index,
+ Bool enable
+){
+ ScreenPtr pScreen = screenInfo.screens[index];
+ cfb8_32ScreenPtr pScreenPriv = CFB8_32_GET_SCREEN_PRIVATE(pScreen);
+
+ miOverlaySetRootClip(pScreen, enable);
+
+ (*pScreenPriv->EnableDisableFBAccess) (index, enable);
+}
+
+static Atom overlayVisualsAtom;
+
+typedef struct {
+ CARD32 overlay_visual;
+ CARD32 transparent_type;
+ CARD32 value;
+ CARD32 layer;
+} overlayVisualRec;
+
+static void
+cfb8_32SetupVisuals (ScreenPtr pScreen)
+{
+ cfb8_32ScreenPtr pScreenPriv = CFB8_32_GET_SCREEN_PRIVATE(pScreen);
+ char atomString[] = {"SERVER_OVERLAY_VISUALS"};
+ overlayVisualRec *overlayVisuals;
+ VisualID *visuals = NULL;
+ int numVisuals = 0;
+ DepthPtr pDepth = pScreen->allowedDepths;
+ int numDepths = pScreen->numDepths;
+ int i;
+
+ /* find depth 8 visuals */
+ for(i = 0; i < numDepths; i++, pDepth++) {
+ if(pDepth->depth == 8) {
+ numVisuals = pDepth->numVids;
+ visuals = pDepth->vids;
+ break;
+ }
+ }
+
+ if(!numVisuals || !visuals) {
+ ErrorF("No overlay visuals found!\n");
+ return;
+ }
+
+ if(!(overlayVisuals = xalloc(numVisuals * sizeof(overlayVisualRec))))
+ return;
+
+ for(i = 0; i < numVisuals; i++) {
+ overlayVisuals[i].overlay_visual = visuals[i];
+ overlayVisuals[i].transparent_type = 1; /* transparent pixel */
+ overlayVisuals[i].value = pScreenPriv->key;
+ overlayVisuals[i].layer = 1;
+ }
+
+ overlayVisualsAtom = MakeAtom(atomString, sizeof(atomString) - 1, TRUE);
+
+ xf86RegisterRootWindowProperty(pScreen->myNum, overlayVisualsAtom,
+ overlayVisualsAtom, 32, numVisuals * 4, overlayVisuals);
+
+ pScreenPriv->visualData = (pointer)overlayVisuals;
+}
+
Bool
cfb8_32ScreenInit(
ScreenPtr pScreen,
pointer pbits, /* pointer to screen bitmap */
int xsize, int ysize, /* in pixels */
int dpix, int dpiy, /* dots per inch */
- int width /* pixel width of frame buffer */
+ int w /* pixel width of frame buffer */
){
cfb8_32ScreenPtr pScreenPriv;
ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum];
- if (!cfb8_32SetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, width))
+ if (!cfb8_32SetupScreen(pScreen, pbits, xsize, ysize, dpix, dpiy, w))
return FALSE;
pScreenPriv = CFB8_32_GET_SCREEN_PRIVATE(pScreen);
pScreenPriv->key = pScrn->colorKey;
+ pScreenPriv->visualData = NULL;
+
- return cfb8_32FinishScreenInit(
- pScreen, pbits, xsize, ysize, dpix, dpiy, width);
+ pScreenPriv->EnableDisableFBAccess = pScrn->EnableDisableFBAccess;
+ pScrn->EnableDisableFBAccess = cfb8_32EnableDisableFBAccess;
+
+
+ if(cfb8_32FinishScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, w))
+ {
+ cfb8_32SetupVisuals(pScreen);
+ return TRUE;
+ }
+ return FALSE;
}
diff --git a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c
index 6fe67db58..175e590de 100644
--- a/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c
+++ b/xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c,v 1.5 2000/02/11 06:33:47 mvojkovi Exp $ */
+/* $XFree86: xc/programs/Xserver/hw/xfree86/xf8_32bpp/cfbwindow.c,v 1.6 2000/02/29 00:17:16 mvojkovi Exp $ */
#include "X.h"
@@ -12,6 +12,7 @@
#include "mistruct.h"
#include "regionstr.h"
#include "cfbmskbits.h"
+#include "mioverlay.h"
/* We don't bother with cfb's fastBackground/Border so we don't
diff --git a/xc/programs/Xserver/hw/xnest/Keyboard.c b/xc/programs/Xserver/hw/xnest/Keyboard.c
index 89c44a005..80ad48f34 100644
--- a/xc/programs/Xserver/hw/xnest/Keyboard.c
+++ b/xc/programs/Xserver/hw/xnest/Keyboard.c
@@ -12,6 +12,8 @@ the suitability of this software for any purpose. It is provided "as
is" without express or implied warranty.
*/
+/* $XFree86: xc/programs/Xserver/hw/xnest/Keyboard.c,v 1.3 2000/02/27 04:52:56 dawes Exp $ */
+
#define NEED_EVENTS
#include "X.h"
#include "Xproto.h"
@@ -139,7 +141,11 @@ int xnestKeyboardProc(pDev, onoff, argc, argv)
InitKeyboardDeviceStruct(pDev, &keySyms, modmap,
xnestBell, xnestChangeKeyboardControl);
+#ifdef _XSERVER64
+ xfree(keymap);
+#else
XFree(keymap);
+#endif
break;
case DEVICE_ON:
xnestEventMask |= XNEST_KEYBOARD_EVENT_MASK;
diff --git a/xc/programs/Xserver/include/servermd.h b/xc/programs/Xserver/include/servermd.h
index 72caff377..6d08b6d2c 100644
--- a/xc/programs/Xserver/include/servermd.h
+++ b/xc/programs/Xserver/include/servermd.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/include/servermd.h,v 3.37 2000/02/12 03:39:58 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/include/servermd.h,v 3.38 2000/02/22 01:04:01 mvojkovi Exp $ */
/***********************************************************
Copyright 1987, 1998 The Open Group
@@ -311,6 +311,28 @@ SOFTWARE.
#endif /* alpha */
+
+#if defined(__ia64__)
+# define IMAGE_BYTE_ORDER LSBFirst
+
+# if defined(XF86MONOVGA) || defined(XF86VGA16) || defined(XF86MONO)
+# define BITMAP_BIT_ORDER MSBFirst
+# else
+# define BITMAP_BIT_ORDER LSBFirst
+# endif
+
+# if defined(XF86MONOVGA) || defined(XF86VGA16)
+# define BITMAP_SCANLINE_UNIT 8
+# endif
+
+# define GLYPHPADBYTES 4
+# define GETLEFTBITS_ALIGNMENT 1
+# define FAST_CONSTANT_OFFSET_MODE
+# define LARGE_INSTRUCTION_CACHE
+# define PLENTIFUL_REGISTERS
+
+#endif /* ia64 */
+
#ifdef stellar
#define IMAGE_BYTE_ORDER MSBFirst /* Values for the stellar only*/
diff --git a/xc/programs/Xserver/mi/mioverlay.c b/xc/programs/Xserver/mi/mioverlay.c
index 6ce6d8e80..19589e594 100644
--- a/xc/programs/Xserver/mi/mioverlay.c
+++ b/xc/programs/Xserver/mi/mioverlay.c
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/mi/mioverlay.c,v 3.2 2000/02/12 05:43:26 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/mi/mioverlay.c,v 3.4 2000/02/29 00:16:03 mvojkovi Exp $ */
#include "X.h"
#include "scrnintstr.h"
@@ -9,6 +9,7 @@
#include "regionstr.h"
#include "mivalidate.h"
#include "mioverlay.h"
+#include "migc.h"
#include "globals.h"
@@ -42,6 +43,7 @@ typedef struct {
CreateWindowProcPtr CreateWindow;
DestroyWindowProcPtr DestroyWindow;
UnrealizeWindowProcPtr UnrealizeWindow;
+ RealizeWindowProcPtr RealizeWindow;
miOverlayTransFunc MakeTransparent;
int overlayDepth;
Bool underlayMarked;
@@ -61,6 +63,7 @@ static Bool miOverlayCloseScreen(int, ScreenPtr);
static Bool miOverlayCreateWindow(WindowPtr);
static Bool miOverlayDestroyWindow(WindowPtr);
static Bool miOverlayUnrealizeWindow(WindowPtr);
+static Bool miOverlayRealizeWindow(WindowPtr);
static void miOverlayMarkWindow(WindowPtr);
static void miOverlayReparentWindow(WindowPtr, WindowPtr);
static void miOverlayRestackWindow(WindowPtr, WindowPtr);
@@ -133,11 +136,13 @@ miInitOverlay(
pScreenPriv->CreateWindow = pScreen->CreateWindow;
pScreenPriv->DestroyWindow = pScreen->DestroyWindow;
pScreenPriv->UnrealizeWindow = pScreen->UnrealizeWindow;
+ pScreenPriv->RealizeWindow = pScreen->RealizeWindow;
pScreen->CloseScreen = miOverlayCloseScreen;
pScreen->CreateWindow = miOverlayCreateWindow;
pScreen->DestroyWindow = miOverlayDestroyWindow;
pScreen->UnrealizeWindow = miOverlayUnrealizeWindow;
+ pScreen->RealizeWindow = miOverlayRealizeWindow;
pScreen->ReparentWindow = miOverlayReparentWindow;
pScreen->RestackWindow = miOverlayRestackWindow;
@@ -166,6 +171,8 @@ miOverlayCloseScreen(int i, ScreenPtr pScreen)
pScreen->CloseScreen = pScreenPriv->CloseScreen;
pScreen->CreateWindow = pScreen->CreateWindow;
pScreen->DestroyWindow = pScreen->DestroyWindow;
+ pScreen->UnrealizeWindow = pScreen->UnrealizeWindow;
+ pScreen->RealizeWindow = pScreen->RealizeWindow;
xfree(pScreenPriv);
@@ -272,6 +279,36 @@ miOverlayUnrealizeWindow(WindowPtr pWin)
return result;
}
+
+static Bool
+miOverlayRealizeWindow(WindowPtr pWin)
+{
+ ScreenPtr pScreen = pWin->drawable.pScreen;
+ miOverlayScreenPtr pScreenPriv = MIOVERLAY_GET_SCREEN_PRIVATE(pScreen);
+ Bool result = TRUE;
+
+ if(pScreenPriv->RealizeWindow) {
+ pScreen->RealizeWindow = pScreenPriv->RealizeWindow;
+ result = (*pScreen->RealizeWindow)(pWin);
+ pScreen->RealizeWindow = miOverlayRealizeWindow;
+ }
+
+ /* we only need to cache the root window realization */
+
+ if(result && !pWin->parent &&
+ (pWin->drawable.depth != pScreenPriv->overlayDepth))
+ {
+ BoxRec box;
+ box.x1 = box.y1 = 0;
+ box.x2 = pWin->drawable.width;
+ box.y2 = pWin->drawable.height;
+ (*pScreenPriv->MakeTransparent)(pScreen, 1, &box);
+ }
+
+ return result;
+}
+
+
static void
miOverlayReparentWindow(WindowPtr pWin, WindowPtr pPriorParent)
{
@@ -311,7 +348,7 @@ miOverlayMarkOverlappedWindows(
box = REGION_EXTENTS(pScreen, &pWin->borderSize);
- if(pChild = pFirst) {
+ if((pChild = pFirst)) {
pLast = pChild->parent->lastChild;
while (1) {
if (pChild == pWin) markAll = TRUE;
@@ -319,18 +356,25 @@ miOverlayMarkOverlappedWindows(
if(doUnderlay && IN_UNDERLAY(pChild))
pTree = MIOVERLAY_GET_WINDOW_TREE(pChild);
- if (pChild->viewable &&
- (markAll || RECT_IN_REGION(pScreen, &pChild->borderSize, box)))
- {
- MARK_OVERLAY(pChild);
- overMarked = TRUE;
- if(doUnderlay && IN_UNDERLAY(pChild)) {
- MARK_UNDERLAY(pChild);
- underMarked = TRUE;
- }
- if (pChild->firstChild) {
- pChild = pChild->firstChild;
- continue;
+ if(pChild->viewable) {
+ if (REGION_BROKEN (pScreen, &pChild->winSize))
+ SetWinSize (pChild);
+ if (REGION_BROKEN (pScreen, &pChild->borderSize))
+ SetBorderSize (pChild);
+
+ if (markAll ||
+ RECT_IN_REGION(pScreen, &pChild->borderSize, box))
+ {
+ MARK_OVERLAY(pChild);
+ overMarked = TRUE;
+ if(doUnderlay && IN_UNDERLAY(pChild)) {
+ MARK_UNDERLAY(pChild);
+ underMarked = TRUE;
+ }
+ if (pChild->firstChild) {
+ pChild = pChild->firstChild;
+ continue;
+ }
}
}
while (!pChild->nextSib && (pChild != pLast)) {
@@ -371,11 +415,17 @@ miOverlayMarkOverlappedWindows(
tLast = pTree->nextSib;
while(1) {
- if(tChild->pWin->viewable &&
- RECT_IN_REGION(pScreen, &(tChild->pWin->borderSize), box))
- {
- MARK_UNDERLAY(tChild->pWin);
- underMarked = TRUE;
+ if(tChild->pWin->viewable) {
+ if (REGION_BROKEN (pScreen, &tChild->pWin->winSize))
+ SetWinSize (tChild->pWin);
+ if (REGION_BROKEN (pScreen, &tChild->pWin->borderSize))
+ SetBorderSize (tChild->pWin);
+
+ if(RECT_IN_REGION(pScreen, &(tChild->pWin->borderSize), box))
+ {
+ MARK_UNDERLAY(tChild->pWin);
+ underMarked = TRUE;
+ }
}
if(tChild->lastChild) {
@@ -709,11 +759,27 @@ miOverlayValidateTree(
else
tChild = tParent->firstChild;
- for(tWin = tChild; tWin; tWin = tWin->nextSib) {
- if(tWin->valdata)
- REGION_APPEND(pScreen, &totalClip, &tWin->borderClip);
+ if (REGION_BROKEN (pScreen, &tParent->clipList) &&
+ !REGION_BROKEN (pScreen, &tParent->borderClip))
+ {
+ kind = VTBroken;
+ REGION_COPY (pScreen, &totalClip, &tParent->borderClip);
+ REGION_INTERSECT (pScreen, &totalClip, &totalClip,
+ &tParent->pWin->winSize);
+
+ for (tWin = tParent->firstChild; tWin != tChild; tWin = tWin->nextSib) {
+ if (tWin->pWin->viewable)
+ REGION_SUBTRACT (pScreen, &totalClip, &totalClip,
+ &tWin->pWin->borderSize);
+ }
+ REGION_EMPTY (pScreen, &tParent->clipList);
+ } else {
+ for(tWin = tChild; tWin; tWin = tWin->nextSib) {
+ if(tWin->valdata)
+ REGION_APPEND(pScreen, &totalClip, &tWin->borderClip);
+ }
+ REGION_VALIDATE(pScreen, &totalClip, &overlap);
}
- REGION_VALIDATE(pScreen, &totalClip, &overlap);
if(kind != VTStack)
REGION_UNION(pScreen, &totalClip, &totalClip, &tParent->clipList);
@@ -1498,7 +1564,6 @@ miOverlaySetShape(WindowPtr pWin)
{
Bool WasViewable = (Bool)(pWin->viewable);
ScreenPtr pScreen = pWin->drawable.pScreen;
- WindowPtr pParent = pWin->parent;
RegionPtr pOldClip, bsExposed;
#ifdef DO_SAVE_UNDERS
Bool dosave = FALSE;
@@ -1650,7 +1715,31 @@ miOverlayChangeBorderWidth(
WindowsRestructured ();
}
+/* We need this as an addition since the xf86 common code doesn't
+ know about the second tree which is static to this file. */
+
+void
+miOverlaySetRootClip(ScreenPtr pScreen, Bool enable)
+{
+ WindowPtr pRoot = WindowTable[pScreen->myNum];
+ miOverlayTreePtr pTree = MIOVERLAY_GET_WINDOW_TREE(pRoot);
+
+ MARK_UNDERLAY(pRoot);
+ if(enable) {
+ BoxRec box;
+
+ box.x1 = 0;
+ box.y1 = 0;
+ box.x2 = pScreen->width;
+ box.y2 = pScreen->height;
+
+ REGION_RESET(pScreen, &pTree->borderClip, &box);
+ } else
+ REGION_EMPTY(pScreen, &pTree->borderClip);
+
+ REGION_BREAK(pScreen, &pTree->clipList);
+}
/****************************************************************/
diff --git a/xc/programs/Xserver/mi/mioverlay.h b/xc/programs/Xserver/mi/mioverlay.h
index 2d20eec9b..51e628ef5 100644
--- a/xc/programs/Xserver/mi/mioverlay.h
+++ b/xc/programs/Xserver/mi/mioverlay.h
@@ -1,4 +1,4 @@
-/* $XFree86: xc/programs/Xserver/mi/mioverlay.h,v 3.2 2000/02/12 05:43:26 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/mi/mioverlay.h,v 3.3 2000/02/29 00:16:03 mvojkovi Exp $ */
#ifndef __MIOVERLAY_H
#define __MIOVERLAY_H
@@ -23,5 +23,6 @@ Bool miOverlayCollectUnderlayRegions(WindowPtr, RegionPtr*);
void miOverlayComputeCompositeClip(GCPtr, WindowPtr);
Bool miOverlayCopyUnderlay(ScreenPtr);
void miOverlaySetTransFunction(ScreenPtr, miOverlayTransFunc);
+void miOverlaySetRootClip(ScreenPtr, Bool);
#endif /* __MIOVERLAY_H */
diff --git a/xc/programs/Xserver/mi/miscrinit.c b/xc/programs/Xserver/mi/miscrinit.c
index 51fed013b..148a0cfff 100644
--- a/xc/programs/Xserver/mi/miscrinit.c
+++ b/xc/programs/Xserver/mi/miscrinit.c
@@ -22,7 +22,7 @@ other dealings in this Software without prior written authorization
from The Open Group.
*/
-/* $XFree86: xc/programs/Xserver/mi/miscrinit.c,v 3.10 1999/10/13 22:33:12 dawes Exp $ */
+/* $XFree86: xc/programs/Xserver/mi/miscrinit.c,v 3.11 2000/03/07 13:37:51 dawes Exp $ */
#include "X.h"
#include "servermd.h"
@@ -248,6 +248,7 @@ miScreenInit(pScreen, pbits, xsize, ysize, dpix, dpiy, width,
/* PaintWindowBackground, PaintWindowBorder, CopyWindow */
pScreen->ClearToBackground = miClearToBackground;
pScreen->ClipNotify = (ClipNotifyProcPtr) 0;
+ pScreen->RestackWindow = (RestackWindowProcPtr) 0;
/* CreatePixmap, DestroyPixmap */
/* RealizeFont, UnrealizeFont */
/* CreateGC */
diff --git a/xc/programs/Xserver/mi/mizerarc.c b/xc/programs/Xserver/mi/mizerarc.c
index 78fccb90c..cd3f43749 100644
--- a/xc/programs/Xserver/mi/mizerarc.c
+++ b/xc/programs/Xserver/mi/mizerarc.c
@@ -1,3 +1,4 @@
+/* $XFree86: xc/programs/Xserver/mi/mizerarc.c,v 1.3 2000/03/01 01:04:22 dawes Exp $ */
/************************************************************
Copyright 1989, 1998 The Open Group
@@ -734,7 +735,7 @@ miZeroPolyArc(pDraw, pGC, narcs, parcs)
if (!maxPts)
return;
numPts = maxPts << 2;
- dospans = (pGC->lineStyle != LineSolid) || (pGC->fillStyle != FillSolid);
+ dospans = (pGC->fillStyle != FillSolid);
if (dospans)
{
widths = (int *)ALLOCATE_LOCAL(sizeof(int) * numPts);
diff --git a/xc/programs/Xserver/os/utils.c b/xc/programs/Xserver/os/utils.c
index 1af0588cb..35da9a210 100644
--- a/xc/programs/Xserver/os/utils.c
+++ b/xc/programs/Xserver/os/utils.c
@@ -45,7 +45,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.55 1999/12/27 00:39:58 robin Exp $ */
+/* $XFree86: xc/programs/Xserver/os/utils.c,v 3.56 2000/02/23 20:30:18 dawes Exp $ */
#ifdef WIN32
#include <X11/Xwinsock.h>
@@ -121,8 +121,8 @@ extern int errno;
Bool CoreDump;
Bool noTestExtensions;
-Bool noPanoramiXExtension = TRUE;
#ifdef PANORAMIX
+Bool noPanoramiXExtension = TRUE;
Bool PanoramiXVisibilityNotifySent = FALSE;
Bool PanoramiXMapped = FALSE;
Bool PanoramiXWindowExposureSent = FALSE;
diff --git a/xc/programs/Xserver/os/xalloc.c b/xc/programs/Xserver/os/xalloc.c
index 91c1fd770..3ae509ce6 100644
--- a/xc/programs/Xserver/os/xalloc.c
+++ b/xc/programs/Xserver/os/xalloc.c
@@ -25,7 +25,7 @@ dealings in this Software without prior written authorization from
Pascal Haible.
*/
-/* $XFree86: xc/programs/Xserver/os/xalloc.c,v 3.24 2000/02/08 13:13:35 eich Exp $ */
+/* $XFree86: xc/programs/Xserver/os/xalloc.c,v 3.25 2000/02/22 01:03:25 mvojkovi Exp $ */
/* Only used if INTERNAL_MALLOC is defined
* - otherwise xalloc() in utils.c is used
@@ -186,7 +186,7 @@ extern Bool Must_have_memory;
#define TAIL_SIZE 0
#endif
-#ifdef __alpha__
+#if defined(__alpha__) || defined(__ia64__)
#define MAGIC 0x1404196414071968
#define MAGIC_FREE 0x1506196615061966
#define MAGIC2 0x2515207525182079
@@ -327,7 +327,7 @@ Xalloc (unsigned long amount)
}
/* alignment check */
-#if defined(__alpha__) || defined(__sparc__) || defined(__mips__) || defined(__powerpc__) || defined(__arm32__)
+#if defined(__alpha__) || defined(__sparc__) || defined(__mips__) || defined(__powerpc__) || defined(__arm32__) || defined(__ia64__)
amount = (amount + (sizeof(long)-1)) & ~(sizeof(long)-1);
#endif