This patch should be applied to an un-modified XFree86 version 4.0.2 source tree. It is the fourth of four patches that will will convert the source tree to XFree86 version 4.1.0. To apply this patch, run the following from the directory containing your 'xc' directory: patch -p0 -E < 4.0.2-4.1.0.diff1 patch -p0 -E < 4.0.2-4.1.0.diff2 patch -p0 -E < 4.0.2-4.1.0.diff3 patch -p0 -E < 4.0.2-4.1.0.diff4 rm -f xc/programs/xieperf/images/image.012 rm -fr xc/fonts/bdf/latin2 rm -fr xc/fonts/bdf/100dpi rm -fr xc/fonts/bdf/75dpi gzip -d < 4.1.0.tgz | tar vxf - ------------------------------------------------------------------------------- Index: xc/programs/Xserver/hw/xfree86/Imakefile diff -u xc/programs/Xserver/hw/xfree86/Imakefile:3.70 xc/programs/Xserver/hw/xfree86/Imakefile:3.76 --- xc/programs/Xserver/hw/xfree86/Imakefile:3.70 Sat Oct 21 21:51:36 2000 +++ xc/programs/Xserver/hw/xfree86/Imakefile Tue May 15 14:22:20 2001 @@ -3,7 +3,7 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/Imakefile,v 3.70 2000/10/22 01:51:36 dawes Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/Imakefile,v 3.76 2001/05/15 18:22:20 paulo Exp $ #include #define IHaveSubdirs @@ -67,9 +67,7 @@ INT10DIR = int10 #endif -#if !defined(OsfArchitecture) && !defined(AmoebaArchitecture) && \ - !defined(ArcArchitecture) && !defined(Arm32Architecture) && \ - !defined(PpcArchitecture) && !defined(MipsArchitecture) +#if BuildSuperProbe SUPERPROBE = SuperProbe #endif @@ -89,15 +87,15 @@ DRIVERSDK = sdk #endif -#if !BuildServersOnly -XF86CFGDIR = xf86cfg +#if !BuildServersOnly || BuildXFree86ConfigTools +XF86CFGDIRS = xf86cfg xf86config #endif SUBDIRS = os-support common $(XAADIR) $(XF1BPPDIR) $(XF4BPPDIR) \ $(XF8_32BPPDIR) $(XF8_16BPPDIR) $(XF24_32BPPDIR) $(SHADOWFBDIR) \ drivers $(LOADERDIR) $(VGAHWDIR) $(FBDEVHWDIR) $(RAMDACDIR) \ $(RACDIR) $(I2CDIR) $(DDCDIR) $(INPUTDIR) $(INT10DIR) parser \ - scanpci doc xf86config dummylib $(XF86CFGDIR) $(XF86SETUPDIR) etc \ + scanpci doc dummylib $(XF86CFGDIRS) $(XF86SETUPDIR) etc \ $(SUPERPROBE) $(DRIVERSDK) $(XF8_32WIDDIR) #if !defined(OS2Architecture) && !defined(cygwinArchitecture) @@ -196,14 +194,13 @@ InstallDriverSDKNonExecFile($(XF98CONFIG),$(DRIVERSDKDIR)) #endif -EXTRAMANCPPDEFS=-D__logdir__=$(LOGDIRECTORY) -CppManTarget(XFree86,$(EXTRAMANCPPDEFS)) -CppManTarget(XF86Config,$(EXTRAMANCPPDEFS)) +EXTRAMANDEFS=-D__logdir__=$(LOGDIRECTORY) InstallManPage(XFree86,$(MANDIR)) InstallGenManPage(XF86Config,$(FILEMANDIR),$(FILEMANSUFFIX)) InstallNamedNonExec($(XF86CONFIG),XF86Config.eg,$(LIBDIR)) InstallNamedNonExec($(XF98CONFIG),XF86Config.98,$(LIBDIR)) +InstallNamedNonExec(Options,Options,$(LIBDIR)) InstallDriverSDKNamedNonExec($(XF86CONFIG),XF86Config.eg,$(DRIVERSDKDIR)) Index: xc/programs/Xserver/hw/xfree86/Options diff -u /dev/null xc/programs/Xserver/hw/xfree86/Options:1.1.2.2 --- /dev/null Mon Jun 4 09:37:45 2001 +++ xc/programs/Xserver/hw/xfree86/Options Thu May 31 22:24:16 2001 @@ -0,0 +1,208 @@ +!! +!! Copyright (c) 2001 by The XFree86 Project, 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 +!! 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. +!! +!! $XFree86: xc/programs/Xserver/hw/xfree86/Options,v 1.1.2.2 2001/06/01 02:24:16 dawes Exp $ + +!! XAA options +xaa.XaaNoCPUToScreenColorExpandFill:\ +Disables accelerated rectangular expansion blits from source patterns \ +stored in system memory (using a memory-mapped aperture). + +xaa.XaaNoColor8x8PatternFillRect:\ +Disables accelerated fills of a rectangular region with a full-color pattern. + +xaa.XaaNoColor8x8PatternFillTrap:\ +Disables accelerated fills of a trapezoidal region with a full-color pattern. + +xaa.XaaNoDashedBresenhamLine:\ +Disables accelerated dashed Bresenham line draws. + +xaa.XaaNoDashedTwoPointLine:\ +Disables accelerated dashed line draws between two arbitrary points. + +xaa.XaaNoImageWriteRect:\ +Disables acclerated transfers of full-color rectangular patterns from \ +system memory to video memory (using a memory-mapped aperture). + +xaa.XaaNoMono8x8PatternFillRect:\ +Disables accelerated fills of a rectangular region with a monochrome pattern. + +xaa.XaaNoMono8x8PatternFillTrap:\ +Disables accelerated fills of a trapezoidal region with a monochrome pattern. + +xaa.XaaNoOffscreenPixmaps:\ +Disables accelerated draws into pixmaps stored in offscreen video memory. + +xaa.XaaNoPixmapCache:\ +Disables caching of patterns in offscreen video memory. + +xaa.XaaNoScanlineCPUToScreenColorExpandFill:\ +Disables accelerated rectangular expansion blits from source patterns \ +stored in system memory (one scan line at a time). + +xaa.XaaNoScanlineImageWriteRect:\ +Disables acclerated transfers of full-color rectangular patterns from \ +system memory to video memory (one scan line at a time). + +xaa.XaaNoScreenToScreenColorExpandFill:\ +Disables accelerated rectangular expansion blits from source patterns \ +stored in offscreen video memory. + +xaa.XaaNoScreenToScreenCopy:\ +Disables accelerated copies of rectangular regions from one part of video \ +memory to another part of video memory. + +xaa.XaaNoSolidBresenhamLine:\ +Disables accelerated solid Bresenham line draws. + +xaa.XaaNoSolidFillRect:\ +Disables accelerated solid-color fills of rectangles. + +xaa.XaaNoSolidFillTrap:\ +Disables accelerated solid-color fills of Bresenham trapezoids. + +xaa.XaaNoSolidHorVertLine:\ +Disables accelerated solid horizontal and vertical line draws. + +xaa.XaaNoSolidTwoPointLine:\ +Disables accelerated solid line draws between two arbitrary points. + + +!! FBDev options +fbdev.fbdev:\ +The framebuffer device to use. \ +Default: /dev/fb0. + +fbdev.ShadowFB:\ +Enable or disable use of the shadow framebuffer layer. \ +Default: on. + + +!! MGA options +mga.ColorKey:\ +Set the colormap index used for the transparency key for the depth 8 plane \ +when operating in 8+24 overlay mode. The value must be in the range 2-255. \ +Default: 255. + +mga.HWcursor:\ +Enable or disable the HW cursor. Default: on. + +mga.MGASDRAM:\ +Specify whether G100, G200 or G400 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. The mga driver is not able to \ +auto-detect the presence of of SDRAM on secondary heads in multihead \ +configurations so this option will often need to be specified in multihead \ +configurations. Default: autodetected. + +mga.NoAccel:\ +Disable or enable acceleration. Default: acceleration is enabled. + +mga.OverclockMem:\ +Set clocks to values used by some commercial X-Servers (G100, G200 and \ +G400 only). Default: off. + +mga.Overlay:\ +Enable 8+24 overlay mode. Only appropriate for depth 24. (Note: the G100 is \ +unaccelerated in the 8+24 overlay mode due to a missing hardware feature). \ +Default: off. + +mga.PciRetry:\ +Enable or disable PCI retries. Default: off. + +mga.Rotate:\ +Rotate the display clockwise or counterclockwise. This mode is unaccelerated. \ +Default: no rotation. + +mga.ShadowFB:\ +Enable or disable use of the shadow framebuffer layer. See shadowfb(4) for \ +further information. Default: off. + +mga.SyncOnGreen:\ +Enable or disable combining the sync signals with the green signal. \ +Default: off. + +mga.UseFBDev:\ +Enable or disable use of on OS-specific fb interface (and is not supported \ +on all OSs). See fbdevhw(4) for further information. Default: off. + +mga.VideoKey:\ +This sets the default pixel value for the YUV video overlay key. \ +Default: undefined. + +mga.TexturedVideo:\ +This has XvImage support use the texture engine rather than the video \ +overlay. This option is only supported by the G200 and G400, and only in \ +16 and 32 bits per pixel. Default: off. + + +!! R128 options + +r128.SWcursor: \ +Selects software cursor. \ +Default: off. + +r128.NoAccel:\ +Enables or disables all hardware acceleration. \ +Default: on. + +r128.Dac6Bit:\ +Enables or disables the use of 6 bits per color component when in 8 bpp \ +mode (emulates VGA mode). \ +Default: off. + +r128.VideoKey:\ +This overrides the default pixel value for the YUV video overlay key. \ +Default: undefined. + +r128.Display:\ +Select display mode for devices which support flat panels. Supported\ +modes are "FP", "CRT", "Mirror", "BIOS". \ +Default: "FP". + +r128.ProgramFPRegs:\ +Enable or disable programming of the flat panel registers.\ +Beware that this may damage your panel, so use at your own risk. \ +Default: device dependant. + +r128.PanelWidth:\ +Override flat panel width in pixels. \ +Default: determined using BIOS. + +r128.PanelHeight:\ +Override flat panel height in pixels. \ +Default: determined using BIOS. + +r128.UseFBDev:\ +Enable or disable use of on OS-specific fb interface (and is not supported \ +on all OSs). See fbdevhw(4) for further information. Default: off. + + +!! Vesa options +vesa.ShadowFB:\ +Enable or disable use of the shadow framebuffer layer. See shadowfb(4)\ +for further information. Default: on. + Index: xc/programs/Xserver/hw/xfree86/Registry diff -u xc/programs/Xserver/hw/xfree86/Registry:1.16 xc/programs/Xserver/hw/xfree86/Registry:1.17 --- xc/programs/Xserver/hw/xfree86/Registry:1.16 Sat Sep 25 10:36:55 1999 +++ xc/programs/Xserver/hw/xfree86/Registry Thu Apr 5 15:29:41 2001 @@ -29,6 +29,7 @@ type1 vga vgahw +vmware xaa xf1bpp xf4bpp @@ -52,6 +53,7 @@ tseng vga vgahw +vmware xaa xf1bpp xf4bpp @@ -318,4 +320,4 @@ -$XFree86: xc/programs/Xserver/hw/xfree86/Registry,v 1.16 1999/09/25 14:36:55 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/Registry,v 1.17 2001/04/05 19:29:41 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/XF86Config.cpp diff -u xc/programs/Xserver/hw/xfree86/XF86Config.cpp:1.13 xc/programs/Xserver/hw/xfree86/XF86Config.cpp:removed --- xc/programs/Xserver/hw/xfree86/XF86Config.cpp:1.13 Mon Dec 11 15:18:01 2000 +++ xc/programs/Xserver/hw/xfree86/XF86Config.cpp Mon Jun 4 09:37:45 2001 @@ -1,1607 +0,0 @@ -.\" $XFree86: xc/programs/Xserver/hw/xfree86/XF86Config.cpp,v 1.13 2000/12/11 20:18:01 dawes Exp $ -.\" shorthand for double quote that works everywhere. -.ds q \N'34' -.TH XF86Config __filemansuffix__ "Version 4.0.2" "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/ -.RI __projectroot__/etc/X11/ -.RB /etc/X11/ $XF86CONFIG -.RB __projectroot__/etc/X11/ $XF86CONFIG -/etc/X11/XF86Config-4 -/etc/X11/XF86Config -/etc/XF86Config -.RI __projectroot__/etc/X11/XF86Config. -__projectroot__/etc/X11/XF86Config-4 -__projectroot__/etc/X11/XF86Config -.RI __projectroot__/lib/X11/XF86Config. -__projectroot__/lib/X11/XF86Config-4 -__projectroot__/lib/X11/XF86Config -.fi -.RE -.PP -where -.I -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 -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 -.RI /etc/X11/ -.RI __projectroot__/etc/X11/ -.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. -__projectroot__/etc/X11/XF86Config-4 -__projectroot__/etc/X11/XF86Config -.RI __projectroot__/lib/X11/XF86Config. -__projectroot__/lib/X11/XF86Config-4 -__projectroot__/lib/X11/XF86Config -.fi -.RE -.PP -where -.I -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 -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 -.\" Some man macros don't handle quotes in .BI, etc very well -.\" \fBSection "\fP\fISectionName\fP\fB"\fP -.BI "Section \*q" SectionName \*q -.RI " " 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 (\*q)" -.fi -.RE -.PP -Note: hex integer values must be prefixed with "0x", and octal values -with "0". -.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 \*q No \*q, -then the option value is negated. -.PP -Example: the following option entries are equivalent: -.PP -.RS 4 -.nf -.B "Option \*qAccel\*q \*qOff\*q" -.B "Option \*qNoAccel\*q" -.B "Option \*qNoAccel\*q \*qOn\*q" -.B "Option \*qAccel\*q \*qfalse\*q" -.B "Option \*qAccel\*q \*qno\*q" -.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 \*q" path \*q -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 -a font server identifier. Font server identifiers have the form: -.PP -.RS 11 -.IR / : -.RE -.PP -.RS 7 -where -.I -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 -is the hostname of the machine running the font server, and -.I -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 \*q" path \*q -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 \*q" path \*q -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 \*q" path \*q -sets the name of the X server log file. The default log file name is -.PP -.RS 11 -.RI __logdir__/XFree86. .log -.RE -.PP -.RS 7 -where -.I -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 \*qNoTrapSignals\*q \*q" boolean \*q -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 \*qDontZap\*q \*q" boolean \*q -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 \*qDontZoom\*q \*q" boolean \*q -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 \*qDisableVidModeExtension\*q \*q" boolean \*q -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 \*qAllowNonLocalXvidtune\*q \*q" boolean \*q -This allows the xvidtune client (and other clients that use the VidMode -extension) to connect from another host. Default: off. -.TP 7 -.BI "Option \*qDisableModInDev\*q \*q" boolean \*q -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 \*qAllowNonLocalModInDev\*q \*q" boolean \*q -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 \*qAllowMouseOpenFail\*q \*q" boolean \*q -This allows the server to start up even if the mouse device can't be -opened/initialised. Default: false. -.TP 7 -.BI "Option \*qVTInit\*q \*q" command \*q -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 \*qVTSysReq\*q \*q" boolean \*q -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 \*qPciProbe1\*q" -Use PCI probe method 1. Default: set. -.TP 7 -.BI "Option \*qPciProbe2\*q" -Use PCI probe method 2. Default: not set. -.TP 7 -.BI "Option \*qPciForceConfig1\*q" -Force the use PCI config type 1. Default: not set. -.TP 7 -.BI "Option \*qPciForceConfig2\*q" -Force the use PCI config type 2. Default: not set. -.. -.TP 7 -.BI "Option \*qBlankTime\*q \*q" time \*q -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 \*qStandbyTime\*q \*q" time \*q -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 \*qDPMS\*q -option set (see the MONITOR section below). -.TP 7 -.BI "Option \*qSuspendTime\*q \*q" time \*q -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 \*qDPMS\*q -option set (see the MONITOR section below). -.TP 7 -.BI "Option \*qOffTime\*q \*q" time \*q -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 \*qDPMS\*q -option set (see the MONITOR section below). -.TP 7 -.BI "Option \*qPixmap\*q \*q" bpp \*q -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 \*qPC98\*q \*q" boolean \*q -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 \*qEstimateSizesAggressively\*q \*q" value \*q -This option affects the way that bus resource sizes are estimated. Default: 0. -.. -.TP 7 -.BI "Option \*qNoPM\*q \*q" boolean \*q -Disables something to do with power management events. Default: PM enabled -on platforms that support it. -.TP 7 -.BI "Option \*qXinerama\*q \*q" boolean \*q -enable or disable XINERAMA extension. Default is disabled. -.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 \*q" modulename \*q -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 \*qtype1\*q" -.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 \*qextmod\*q" -.B " Option \*qomit XFree86-DGA\*q" -.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 \*qInputDevice\*q" -.BI " Identifier \*q" name \*q -.BI " Driver \*q" inputdriver \*q -.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 \*q inputdriver \*q -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 \*qCorePointer\*q" -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 \*qCoreKeyboard\*q" -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 \*qAlwaysCore\*q \*q" boolean \*q -.TP 7 -.BI "Option \*qSendCoreEvents\*q \*q" boolean \*q -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 \*qHistorySize\*q \*q" number \*q -Sets the motion history size. Default: 0. -.TP 7 -.BI "Option \*qSendDragEvents\*q \*q" boolean \*q -??? -.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 \*qDevice\*q" -.BI " Identifier \*q" name \*q -.BI " Driver \*q" driver \*q -.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 \*q driver \*q -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 \*q" bus-id \*q -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 "Screen " number -This option is mandatory for cards where a single PCI entity can drive more -than one display (i.e., multiple CRTCs sharing a single graphics accelerator -and video memory). One -.B Device -section is required for each head, and this -parameter determines which head each of the -.B Device -sections applies to. The legal values of -.I number -range from 0 to one less than the total number of heads per entity. -Most drivers require that the primary screen (0) be present. -.TP 7 -.BI "Chipset \*q" chipset \*q -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 \*q" ramdac-type \*q -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 \*q" clockchip-type \*q -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 \*qMonitor\*q" -.BI " Identifier \*q" name \*q -.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 \*q" vendor \*q -This optional entry specifies the monitor's manufacturer. -.TP 7 -.BI "ModelName \*q" model \*q -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 \*q" modesection-id \*q -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 \*q" flag \*q " ..." -specifies an optional set of mode flags, each of which is a separate -string in double quotes. -.B \*qInterlace\*q -indicates that the mode is interlaced. -.B \*qDoubleScan\*q -indicates a mode where each scanline is doubled. -.B \*q+HSync\*q -and -.B \*q\-HSync\*q -can be used to select the polarity of the HSync signal. -.B \*q+VSync\*q -and -.B \*q\-VSync\*q -can be used to select the polarity of the VSync signal. -.B \*qComposite\*q -can be used to specify composite sync on hardware where this is supported. -Additionally, on some hardware, -.B \*q+CSync\*q -and -.B \*q\-CSync\*q -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 \*qDoubleScan\*q -.B Flag -mentioned above doubles this value. -.RE -.TP 7 -.BI "ModeLine \*q" name \*q " 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 \*qDPMS\*q , -and -.BR \*qSyncOnGreen\*q . - -.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 \*qModes\*q" -.BI " Identifier \*q" name \*q -.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 \*qScreen\*q" -.BI " Identifier \*q" name \*q -.BI " Device \*q" devid \*q -.BI " Monitor \*q" monid \*q -.I " entries" -.I " ..." -.BI " SubSection \*qDisplay\*q" -.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 \*q" device-id \*q -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 \*q" monitor-id \*q -specifies which monitor description is to be used for this screen. -.TP 7 -.BI "VideoAdaptor \*q" xv-id \*q -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 \*qDisplay\*q" -.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 \*q" mode-name \*q " ..." -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 \*q" visual-name \*q -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 \*qServerLayout\*q" -.BI " Identifier \*q" name \*q -.BI " Screen \*q" screen-id \*q -.I " ..." -.BI " InputDevice \*q" idev-id \*q -.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-num" " \*qscreen-id\*q " "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 \*q" screen-id \*q -.TP 4 -.BI "LeftOf \*q" screen-id \*q -.TP 4 -.BI "Above \*q" screen-id \*q -.TP 4 -.BI "Below \*q" screen-id \*q -.TP 4 -.BI "Relative \*q" screen-id \*q " x y" -These give the screen's location relative to another screen. -.RE -.TP 7 -.BI "InputDevice \*q" idev-id "\*q \*q" option \*q " ..." -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 \*qCorePointer\*q -.B \*qCoreKeyboard\*q -.B \*qSendCoreEvents\*q -.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 \*qServerLayout\*q" -.B " Identifier \*qLayout 1\*q" -.B " Screen \*qMGA 1\*q" -.B " Screen \*qMGA 2\*q RightOf \*qMGA 1\*q" -.B " InputDevice \*qKeyboard 1\*q \*qCoreKeyboard\*q" -.B " InputDevice \*qMouse 1\*q \*qCorePointer\*q" -.B " InputDevice \*qMouse 2\*q \*qSendCoreEvents\*q" -.B " Option \*qBlankTime\*q \*q5\*q" -.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 . -.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(__miscmansuffix__), Xserver(1), XFree86(1), -apm(__drivermansuffix__), -ati(__drivermansuffix__), -chips(__drivermansuffix__), -cirrus(__drivermansuffix__), -cyrix(__drivermansuffix__), -fbdev(__drivermansuffix__), -glide(__drivermansuffix__), -glint(__drivermansuffix__), -i128(__drivermansuffix__), -i740(__drivermansuffix__), -i810(__drivermansuffix__), -imstt(__drivermansuffix__), -mga(__drivermansuffix__), -neomagic(__drivermansuffix__), -nv(__drivermansuffix__), -r128(__drivermansuffix__), -rendition(__drivermansuffix__), -s3virge(__drivermansuffix__), -siliconmotion(__drivermansuffix__), -sis(__drivermansuffix__), -sunbw2(__drivermansuffix__), -suncg14(__drivermansuffix__), -suncg3(__drivermansuffix__), -suncg6(__drivermansuffix__), -sunffb(__drivermansuffix__), -sunleo(__drivermansuffix__), -suntcx(__drivermansuffix__), -tdfx(__drivermansuffix__), -tga(__drivermansuffix__), -trident(__drivermansuffix__), -tseng(__drivermansuffix__), -v4l(__drivermansuffix__), -vesa(__drivermansuffix__), -vga(__drivermansuffix__), -.br -README -.IR , -.br -RELNOTES -.IR , -.br -README.mouse -.IR , -.br -README.DRI -.IR , -.br -Status -.IR , -.br -Install -.IR . -.SH AUTHORS -This manual page was largely rewritten for XFree86 4.0 by David Dawes -.IR . Index: xc/programs/Xserver/hw/xfree86/XF86Config.man diff -u /dev/null xc/programs/Xserver/hw/xfree86/XF86Config.man:1.5 --- /dev/null Mon Jun 4 09:37:46 2001 +++ xc/programs/Xserver/hw/xfree86/XF86Config.man Tue May 8 17:53:08 2001 @@ -0,0 +1,1689 @@ +.\" $XFree86: xc/programs/Xserver/hw/xfree86/XF86Config.man,v 1.5 2001/05/08 21:53:08 paulo Exp $ +.\" shorthand for double quote that works everywhere. +.ds q \N'34' +.TH XF86Config __filemansuffix__ __vendorversion__ +.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/ +.RI __projectroot__/etc/X11/ +.RB /etc/X11/ $XF86CONFIG +.RB __projectroot__/etc/X11/ $XF86CONFIG +/etc/X11/XF86Config-4 +/etc/X11/XF86Config +/etc/XF86Config +.RI __projectroot__/etc/X11/XF86Config. +__projectroot__/etc/X11/XF86Config-4 +__projectroot__/etc/X11/XF86Config +.RI __projectroot__/lib/X11/XF86Config. +__projectroot__/lib/X11/XF86Config-4 +__projectroot__/lib/X11/XF86Config +.fi +.RE +.PP +where +.I +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 +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 +.RI /etc/X11/ +.RI __projectroot__/etc/X11/ +.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. +__projectroot__/etc/X11/XF86Config-4 +__projectroot__/etc/X11/XF86Config +.RI __projectroot__/lib/X11/XF86Config. +__projectroot__/lib/X11/XF86Config-4 +__projectroot__/lib/X11/XF86Config +.fi +.RE +.PP +where +.I +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 +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 +.\" Some man macros don't handle quotes in .BI, etc very well +.\" \fBSection "\fP\fISectionName\fP\fB"\fP +.BI "Section \*q" SectionName \*q +.RI " " 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 (\*q)" +.fi +.RE +.PP +Note: hex integer values must be prefixed with "0x", and octal values +with "0". +.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 \*q No \*q, +then the option value is negated. +.PP +Example: the following option entries are equivalent: +.PP +.RS 4 +.nf +.B "Option \*qAccel\*q \*qOff\*q" +.B "Option \*qNoAccel\*q" +.B "Option \*qNoAccel\*q \*qOn\*q" +.B "Option \*qAccel\*q \*qfalse\*q" +.B "Option \*qAccel\*q \*qno\*q" +.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 \*q" path \*q +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 +a font server identifier. Font server identifiers have the form: +.PP +.RS 11 +.IR / : +.RE +.PP +.RS 7 +where +.I +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 +is the hostname of the machine running the font server, and +.I +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 \*q" path \*q +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 \*q" path \*q +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 \*q" path \*q +sets the name of the X server log file. The default log file name is +.PP +.RS 11 +.RI __logdir__/XFree86. .log +.RE +.PP +.RS 7 +where +.I +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 \*qNoTrapSignals\*q \*q" boolean \*q +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 \*qDontZap\*q \*q" boolean \*q +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 \*qDontZoom\*q \*q" boolean \*q +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 \*qDisableVidModeExtension\*q \*q" boolean \*q +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 \*qAllowNonLocalXvidtune\*q \*q" boolean \*q +This allows the xvidtune client (and other clients that use the VidMode +extension) to connect from another host. Default: off. +.TP 7 +.BI "Option \*qDisableModInDev\*q \*q" boolean \*q +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 \*qAllowNonLocalModInDev\*q \*q" boolean \*q +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 \*qAllowMouseOpenFail\*q \*q" boolean \*q +This allows the server to start up even if the mouse device can't be +opened/initialised. Default: false. +.TP 7 +.BI "Option \*qVTInit\*q \*q" command \*q +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 \*qVTSysReq\*q \*q" boolean \*q +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 \*qPciProbe1\*q" +Use PCI probe method 1. Default: set. +.TP 7 +.BI "Option \*qPciProbe2\*q" +Use PCI probe method 2. Default: not set. +.TP 7 +.BI "Option \*qPciForceConfig1\*q" +Force the use PCI config type 1. Default: not set. +.TP 7 +.BI "Option \*qPciForceConfig2\*q" +Force the use PCI config type 2. Default: not set. +.. +.TP 7 +.BI "Option \*qBlankTime\*q \*q" time \*q +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 \*qStandbyTime\*q \*q" time \*q +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 \*qDPMS\*q +option set (see the MONITOR section below). +.TP 7 +.BI "Option \*qSuspendTime\*q \*q" time \*q +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 \*qDPMS\*q +option set (see the MONITOR section below). +.TP 7 +.BI "Option \*qOffTime\*q \*q" time \*q +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 \*qDPMS\*q +option set (see the MONITOR section below). +.TP 7 +.BI "Option \*qPixmap\*q \*q" bpp \*q +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 \*qPC98\*q \*q" boolean \*q +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 \*qEstimateSizesAggressively\*q \*q" value \*q +This option affects the way that bus resource sizes are estimated. Default: 0. +.. +.TP 7 +.BI "Option \*qNoPM\*q \*q" boolean \*q +Disables something to do with power management events. Default: PM enabled +on platforms that support it. +.TP 7 +.BI "Option \*qXinerama\*q \*q" boolean \*q +enable or disable XINERAMA extension. Default is disabled. +.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 \*q" modulename \*q +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 \*qtype1\*q" +.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 \*qextmod\*q" +.B " Option \*qomit XFree86-DGA\*q" +.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 \*qInputDevice\*q" +.BI " Identifier \*q" name \*q +.BI " Driver \*q" inputdriver \*q +.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 \*q inputdriver \*q +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 \*qCorePointer\*q" +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 \*qCoreKeyboard\*q" +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 \*qAlwaysCore\*q \*q" boolean \*q +.TP 7 +.BI "Option \*qSendCoreEvents\*q \*q" boolean \*q +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 \*qHistorySize\*q \*q" number \*q +Sets the motion history size. Default: 0. +.TP 7 +.BI "Option \*qSendDragEvents\*q \*q" boolean \*q +??? +.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 \*qDevice\*q" +.BI " Identifier \*q" name \*q +.BI " Driver \*q" driver \*q +.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 \*q driver \*q +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 \*q" bus-id \*q +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 "Screen " number +This option is mandatory for cards where a single PCI entity can drive more +than one display (i.e., multiple CRTCs sharing a single graphics accelerator +and video memory). One +.B Device +section is required for each head, and this +parameter determines which head each of the +.B Device +sections applies to. The legal values of +.I number +range from 0 to one less than the total number of heads per entity. +Most drivers require that the primary screen (0) be present. +.TP 7 +.BI "Chipset \*q" chipset \*q +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 \*q" ramdac-type \*q +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 \*q" clockchip-type \*q +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 \*qMonitor\*q" +.BI " Identifier \*q" name \*q +.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 \*q" vendor \*q +This optional entry specifies the monitor's manufacturer. +.TP 7 +.BI "ModelName \*q" model \*q +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 "DisplaySize " "width height" +This optional entry gives the width and height, in millimetres, of the +picture area of the monitor. If given this is used to calculate the +horizontal and vertical pitch (DPI) of the screen. +.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 \*q" modesection-id \*q +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 \*q" flag \*q " ..." +specifies an optional set of mode flags, each of which is a separate +string in double quotes. +.B \*qInterlace\*q +indicates that the mode is interlaced. +.B \*qDoubleScan\*q +indicates a mode where each scanline is doubled. +.B \*q+HSync\*q +and +.B \*q\-HSync\*q +can be used to select the polarity of the HSync signal. +.B \*q+VSync\*q +and +.B \*q\-VSync\*q +can be used to select the polarity of the VSync signal. +.B \*qComposite\*q +can be used to specify composite sync on hardware where this is supported. +Additionally, on some hardware, +.B \*q+CSync\*q +and +.B \*q\-CSync\*q +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 \*qDoubleScan\*q +.B Flag +mentioned above doubles this value. +.RE +.TP 7 +.BI "ModeLine \*q" name \*q " 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 \*qDPMS\*q , +and +.BR \*qSyncOnGreen\*q . + +.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 \*qModes\*q" +.BI " Identifier \*q" name \*q +.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 \*qScreen\*q" +.BI " Identifier \*q" name \*q +.BI " Device \*q" devid \*q +.BI " Monitor \*q" monid \*q +.I " entries" +.I " ..." +.BI " SubSection \*qDisplay\*q" +.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 \*q" device-id \*q +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 \*q" monitor-id \*q +specifies which monitor description is to be used for this screen. +.TP 7 +.BI "VideoAdaptor \*q" xv-id \*q +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. +.TP 7 +.BI "Option \*qAccel\*q" +Enables XAA (X Acceleration Architecture), a mechanism that makes video +cards' 2D hardware acceleration available to the X server. This option is +on by default, but it may be necessary to turn it off if there are bugs in +the driver. There are many options to disable specific acclerated +operations, listed below. Note that disabling an operation will have no +effect if the operation is not accelerated (whether due to lack of support +in the hardware or in the driver). +.TP 7 +.BI "Option \*qXaaNoCPUToScreenColorExpandFill\*q" +Disables accelerated rectangular expansion blits from source patterns +stored in system memory (using a memory-mapped aperture). +.TP 7 +.BI "Option \*qXaaNoColor8x8PatternFillRect\*q" +Disables accelerated fills of a rectangular region with a full-color +pattern. +.TP 7 +.BI "Option \*qXaaNoColor8x8PatternFillTrap\*q" +Disables accelerated fills of a trapezoidal region with a full-color +pattern. +.TP 7 +.BI "Option \*qXaaNoDashedBresenhamLine\*q" +Disables accelerated dashed Bresenham line draws. +.TP 7 +.BI "Option \*qXaaNoDashedTwoPointLine\*q" +Disables accelerated dashed line draws between two arbitrary points. +.TP 7 +.BI "Option \*qXaaNoImageWriteRect\*q" +Disables acclerated transfers of full-color rectangular patterns from +system memory to video memory (using a memory-mapped aperture). +.TP 7 +.BI "Option \*qXaaNoMono8x8PatternFillRect\*q" +Disables accelerated fills of a rectangular region with a monochrome +pattern. +.TP 7 +.BI "Option \*qXaaNoMono8x8PatternFillTrap\*q" +Disables accelerated fills of a trapezoidal region with a monochrome +pattern. +.TP 7 +.BI "Option \*qXaaNoOffscreenPixmaps\*q" +Disables accelerated draws into pixmaps stored in offscreen video memory. +.TP 7 +.BI "Option \*qXaaNoPixmapCache\*q" +Disables caching of patterns in offscreen video memory. +.TP 7 +.BI "Option \*qXaaNoScanlineCPUToScreenColorExpandFill\*q" +Disables accelerated rectangular expansion blits from source patterns +stored in system memory (one scan line at a time). +.TP 7 +.BI "Option \*qXaaNoScanlineImageWriteRect\*q" +Disables acclerated transfers of full-color rectangular patterns from +system memory to video memory (one scan line at a time). +.TP 7 +.BI "Option \*qXaaNoScreenToScreenColorExpandFill\*q" +Disables accelerated rectangular expansion blits from source patterns +stored in offscreen video memory. +.TP 7 +.BI "Option \*qXaaNoScreenToScreenCopy\*q" +Disables accelerated copies of rectangular regions from one part of video +memory to another part of video memory. +.TP 7 +.BI "Option \*qXaaNoSolidBresenhamLine\*q" +Disables accelerated solid Bresenham line draws. +.TP 7 +.BI "Option \*qXaaNoSolidFillRect\*q" +Disables accelerated solid-color fills of rectangles. +.TP 7 +.BI "Option \*qXaaNoSolidFillTrap\*q" +Disables accelerated solid-color fills of Bresenham trapezoids. +.TP 7 +.BI "Option \*qXaaNoSolidHorVertLine\*q" +Disables accelerated solid horizontal and vertical line draws. +.TP 7 +.BI "Option \*qXaaNoSolidTwoPointLine\*q" +Disables accelerated solid line draws between two arbitrary points. +.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 \*qDisplay\*q" +.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 \*q" mode-name \*q " ..." +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 \*q" visual-name \*q +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 \*qServerLayout\*q" +.BI " Identifier \*q" name \*q +.BI " Screen \*q" screen-id \*q +.I " ..." +.BI " InputDevice \*q" idev-id \*q +.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-num" " \*qscreen-id\*q " "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 \*q" screen-id \*q +.TP 4 +.BI "LeftOf \*q" screen-id \*q +.TP 4 +.BI "Above \*q" screen-id \*q +.TP 4 +.BI "Below \*q" screen-id \*q +.TP 4 +.BI "Relative \*q" screen-id \*q " x y" +These give the screen's location relative to another screen. +.RE +.TP 7 +.BI "InputDevice \*q" idev-id "\*q \*q" option \*q " ..." +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 \*qCorePointer\*q +.B \*qCoreKeyboard\*q +.B \*qSendCoreEvents\*q +.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 \*qServerLayout\*q" +.B " Identifier \*qLayout 1\*q" +.B " Screen \*qMGA 1\*q" +.B " Screen \*qMGA 2\*q RightOf \*qMGA 1\*q" +.B " InputDevice \*qKeyboard 1\*q \*qCoreKeyboard\*q" +.B " InputDevice \*qMouse 1\*q \*qCorePointer\*q" +.B " InputDevice \*qMouse 2\*q \*qSendCoreEvents\*q" +.B " Option \*qBlankTime\*q \*q5\*q" +.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 . +.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(__miscmansuffix__), Xserver(1), XFree86(1), +apm(__drivermansuffix__), +ati(__drivermansuffix__), +chips(__drivermansuffix__), +cirrus(__drivermansuffix__), +cyrix(__drivermansuffix__), +fbdev(__drivermansuffix__), +glide(__drivermansuffix__), +glint(__drivermansuffix__), +i128(__drivermansuffix__), +i740(__drivermansuffix__), +i810(__drivermansuffix__), +imstt(__drivermansuffix__), +mga(__drivermansuffix__), +neomagic(__drivermansuffix__), +nv(__drivermansuffix__), +r128(__drivermansuffix__), +rendition(__drivermansuffix__), +s3virge(__drivermansuffix__), +siliconmotion(__drivermansuffix__), +sis(__drivermansuffix__), +sunbw2(__drivermansuffix__), +suncg14(__drivermansuffix__), +suncg3(__drivermansuffix__), +suncg6(__drivermansuffix__), +sunffb(__drivermansuffix__), +sunleo(__drivermansuffix__), +suntcx(__drivermansuffix__), +tdfx(__drivermansuffix__), +tga(__drivermansuffix__), +trident(__drivermansuffix__), +tseng(__drivermansuffix__), +v4l(__drivermansuffix__), +vesa(__drivermansuffix__), +vga(__drivermansuffix__), +vmware(__drivermansuffix__), +.br +README +.IR , +.br +RELNOTES +.IR , +.br +README.mouse +.IR , +.br +README.DRI +.IR , +.br +Status +.IR , +.br +Install +.IR . +.SH AUTHORS +This manual page was largely rewritten for XFree86 4.0 by David Dawes +.IR . Index: xc/programs/Xserver/hw/xfree86/XFree86.cpp diff -u xc/programs/Xserver/hw/xfree86/XFree86.cpp:1.4 xc/programs/Xserver/hw/xfree86/XFree86.cpp:removed --- xc/programs/Xserver/hw/xfree86/XFree86.cpp:1.4 Mon Dec 11 15:29:50 2000 +++ xc/programs/Xserver/hw/xfree86/XFree86.cpp Mon Jun 4 09:37:46 2001 @@ -1,577 +0,0 @@ -.\" $XFree86: xc/programs/Xserver/hw/xfree86/XFree86.cpp,v 1.4 2000/12/11 20:29:50 dawes Exp $ -.TH XFree86 1 "Version 4.0.2" "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/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 -/lib/X11/XF86Config.\fIhostname\fP -Server configuration file -.TP 30 -/lib/X11/XF86Config -Server configuration file -.TP 30 -/bin/\(** -Client binaries -.TP 30 -/include/\(** -Header files -.TP 30 -/lib/\(** -Libraries -.TP 30 -/lib/X11/fonts/\(** -Fonts -.TP 30 -/lib/X11/rgb.txt -Color names to RGB mapping -.TP 30 -/lib/X11/XErrorDB -Client error message database -.TP 30 -/lib/X11/app-defaults/\(** -Client resource specifications -.TP 30 -/man/man?/\(** -Manual pages -.TP 30 -/etc/X\fIn\fP.hosts -Initial access control list for display \fIn\fP -.LP -Note: refers to the root of the X11 install tree. -.SH "SEE ALSO" -X(__miscmansuffix__), Xserver(1), xdm(1), xinit(1), -XF86Config(__filemansuffix__), xf86config(1), xf86cfg(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, \fILepied@XFree86.Org\fP -XInput extension integration. Wacom, joystick and extended mouse drivers. -.TP 8 -Patrick Lecoanet, \fIlecoanet@cena.dgac.fr\fP -Elographics touchscreen driver. -.TP 8 -Steven Lang, \fItiger@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 $ Index: xc/programs/Xserver/hw/xfree86/XFree86.man diff -u /dev/null xc/programs/Xserver/hw/xfree86/XFree86.man:3.52 --- /dev/null Mon Jun 4 09:37:46 2001 +++ xc/programs/Xserver/hw/xfree86/XFree86.man Thu Apr 5 15:29:41 2001 @@ -0,0 +1,563 @@ +.\" $XFree86: xc/programs/Xserver/hw/xfree86/XFree86.man,v 3.52 2001/04/05 19:29:41 dawes Exp $ +.TH XFree86 1 __vendorversion__ +.SH NAME +XFree86 - X11R6 X server +.SH SYNOPSIS +.B XFree86 +[:display] [option ...] +.SH DESCRIPTION +XFree86 is an X server that was originally designed for UNIX and UNIX-like +operating systems running on Intel x86 hardware. It now runs on a wider +range of hardware and OS platforms. +.PP +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 a wide range of operating systems and hardware platforms. +The Intel x86 (IA32) architecture is the most widely supported hardware +platform. Other hardware platforms include Compaq Alpha, Intel IA64, +SPARC and PowerPC. The most widely supported operating systems are the +free/OpenSource UNIX-like systems such as Linux, FreeBSD, NetBSD and +OpenBSD. Commercial UNIX operating systems such as Solaris (x86) and +UnixWare are also supported. Other supported operating systems include +LynxOS, and GNU Hurd. Darwin and Mac OS X are supported with the +XDarwin(1) X server. Win32/Cygwin is supported with the XWin X server. +.PP +.SH "NETWORK CONNECTIONS" +\fIXFree86\fP supports connections made using the following reliable +byte-streams: +.TP 4 +.I "Local" +On most platforms, the "Local" connection type is a UNIX-domain socket. +On some System V platforms, the "local" connection types also include +STREAMS pipes, named pipes, and some other mechanisms. +.TP 4 +.I TCP\/IP +\fIXFree86\fP listens on port 6000+\fIn\fP, where \fIn\fP is the display +number. This connection type can be disabled with the \fB\-nolisten\fP +option (see the Xserver(1) man page for details). +.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: +.PP +.RS 8 +.nf +NAMED +PTS +SCO +ISC +.fi +.RE +.PP +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/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 platforms such as Linux, BSD, SVR3 and SVR4, that have virtual terminal +support. +.TP +.B \-allowMouseOpenFail +Allow the server to start up even if the mouse device can't be opened +or initialised. This is equivalent to the +.B AllowMouseOpenFail +XF86Config(__filemansuffix__) file option. +.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. This is equivalent to the +.B AllowNonLocalModInDev +XF86Config(__filemansuffix__) file option. +.TP 8 +.B \-allowNonLocalXvidtune +Make the VidMode extension available to remote clients. This allows +the xvidtune client to connect from another host. This is equivalent +to the +.B AllowNonLocalXvidtune +XF86Config(__filemansuffix__) file option. By default non-local +connections are not allowed. +.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 drivers support this. See also the +.BR \-gamma , +.BR \-rgamma , +and +.B \-ggamma +options. +.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 +.B \-configure +When this option is specified, the X server loads all video driver +modules, probes for available hardware, and writes out an initial +XF86Config(__filemansuffix__) file based on what was detected. This +option currently has some problems on some platforms, but in most cases +it is a good way to bootstrap the configuration process. This option +is only available when the server is run as root (i.e, with real-uid +0). +.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 \-depth \fIn\fP +Sets the default color depth. Legal values are 1, 4, 8, 15, 16, and +24. Not all drivers support all values. +.TP 8 +.B \-disableModInDev +Disable dynamic modification of input device settings. This is equivalent +to the +.B DisableModInDev +XF86Config(__filemansuffix__) file option. +.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. This is equivalent +to the +.B DisableVidModeExtension +XF86Config(__filemansuffix__) file option. +.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 (or vice versa). Legal values are 1, 8, 16, 24, 32. +Not all drivers support all values. +.TP 8 +.B \-flipPixels +Swap the default values for the black and white pixels. +.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. +Those values can be set independently with the +.BR \-rgamma , +.BR \-bgamma , +and +.B \-ggamma +options. Not all drivers 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 drivers support this. See also the +.BR \-gamma , +.BR \-rgamma , +and +.B \-bgamma +options. +.TP 8 +.B \-ignoreABI +The X server checks the ABI revision levels of each module that it loads. +It will normally refuse to load modules with ABI revisions that are newer +than the server's. This is because such modules might use interfaces that +the server does not have. When this option is specified, mismatches like +this are downgraded from fatal errors to warnings. This option should +be used with care. +.TP 8 +.B \-keeptty +Prevent the server from detaching its initial controlling terminal. +This option is only useful when debugging the server. Not all platforms +support (or can use) this option. +.TP 8 +.B \-keyboard \fIkeyboard-name\fP +Use the XF86Config(__filemansuffix__) file +.B InputDevice +section called +.I keyboard-name +as the core keyboard. +By default the core keyboard input device referenced by the default +.B Layout +section are used, or the first relevant +.B InputDevice +section when there are no +.B Layout +sections. +.TP 8 +.B \-layout \fIlayout-name\fP +Use the XF86Config(__filemansuffix__) file +.B Layout +section called +.IR layout-name . +By default the first +.B Layout +section is used. +.TP 8 +.B \-logfile \fIfilename\fP +Use the file called +.I filename +as the X server log file. The default log file is +.B __logdir__/XFree86.\fIn\fP.log +on most platforms, where +.I n +is the display number of the X server. The default may be in a different +directory on some platforms. This option is only available when the +server is run as root (i.e, with real-uid 0). +.TP 8 +.BR \-logverbose " [\fIn\fP]" +Sets the verbosity level for information printed to the X server log +file. If the +.I n +value isn't supplied, each occurrance of this option increments the log +file verbosity level. When the +.I n +value is supplied, the log file verbosity level is set to that value. +The default log file verbosity level is 3. +.TP 8 +.B \-modulepath \fIsearchpath\fP +Set the module search path to +.IR searchpath . +.I searchpath +is a comma separated list of directories to search for X server modules. +This option is only available when the server is run as root (i.e, with +real-uid 0). +.TP 8 +.B \-nosilk +Disable Silken Mouse support. +.TP 8 +.B \-pixmap24 +Set the internal pixmap format for depth 24 pixmaps to 24 bits per pixel. +The default is usually 32 bits per pixel. There is normally little +reason to use this option. Some client applications don't like this +pixmap format, even though it is a perfectly legal format. +This is equvalent to the +.B Pixmap +XF86Config(__filemansuffix__) file option. +.TP 8 +.B \-pixmap32 +Set the internal pixmap format for depth 24 pixmaps to 32 bits per pixel. +This is usually the default. +This is equvalent to the +.B Pixmap +XF86Config(__filemansuffix__) file option. +.TP 8 +.B \-pointer \fIpointer-name\fP +Use the XF86Config(__filemansuffix__) file +.B InputDevice +section called +.I pointer-name +as the core pointer. +By default the core pointer input device referenced by the default +.B Layout +section are used, or the first relevant +.B InputDevice +section when there are no +.B Layout +sections. +.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. The verbosity level +is set to zero. +.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 drivers support this. See also the +.BR \-gamma , +.BR \-bgamma , +and +.B \-ggamma +options. +.TP 8 +.B \-scanpci +When this option is specified, the X server scans the PCI bus, and prints +out some information about each device that was detected. See also +scanpci(1) and pcitweak(1). +.TP 8 +.B \-screen \fIscreen-name\fP +Use the XF86Config(__filemansuffix__) file +.B Screen +section called +.IR screen-name . +By default the screens referenced by the default +.B Layout +section are used, or the first +.B Screen +section when there are no +.B Layout +sections. +.TP 8 +.B \-showconfig +This is the same as the +.B \-version +option, and is included for compatibilty reasons. It may be removed in +a future release, so the +.B \-version +options hould be used instead. +.TP 8 +.B \-weight \fInnn\fP +Set RGB weighting at 16 bpp. The default is 565. This applies only to +those drivers which support 16 bpp. +.TP 8 +.BR \-verbose " [\fIn\fP]" +Sets the verbosity level for information printed on stderr. If the +.I n +value isn't supplied, each occurrance of this option increments the +verbosity level. When the +.I n +value is supplied, the verbosity level is set to that value. The default +verbosity level is 1. +.TP 8 +.B \-version +Print out the server version, patchlevel, release date, the operating +system/platform it was built on, and whether it includes module loader +support. +.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. +.SH "KEYBOARD" +Multiple key presses recognized directly by \fIXFree86\fP are: +.TP 8 +.B Ctrl+Alt+Backspace +Immediately kills the server -- no questions asked. This can be disabled +with the +.B DontZap +XF86Config(__filemansuffix__) file option. +.TP 8 +.B Ctrl+Alt+Keypad-Plus +Change video mode to next one specified in the configuration file. +This can be disabled with the +.B DontZoom +XF86Config(__filemansuffix__) file option. +.TP 8 +.B Ctrl+Alt+Keypad-Minus +Change video mode to previous one specified in the configuration file. +This can be disabled with the +.B DontZoom +XF86Config(__filemansuffix__) file option. +.TP 8 +.B Ctrl+Alt+F1...F12 +For BSD and Linux systems with virtual terminal support, 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(__filemansuffix__) +manual page for information about the +format of this file. +.SH FILES +The X server config file can be found in a range of locations. These +are documented fully in the +.I XF86Config(__filemansuffix__) +manual page. The most commonly used locations are shown here. +.TP 30 +/etc/X11/XF86Config +Server configuration file +.TP 30 +/etc/X11/XF86Config-4 +Server configuration file +.TP 30 +/etc/XF86Config +Server configuration file +.TP 30 +__projectroot__/etc/XF86Config +Server configuration file +.TP 30 +__projectroot__/lib/X11/XF86Config +Server configuration file +.TP 30 +__logdir__/XFree86.\fIn\fP.log +Server log file for display \fIn\fP. +.TP 30 +__projectroot__/bin/\(** +Client binaries +.TP 30 +__projectroot__/include/\(** +Header files +.TP 30 +__projectroot__/lib/\(** +Libraries +.TP 30 +__projectroot__/lib/X11/fonts/\(** +Fonts +.TP 30 +__projectroot__/lib/X11/rgb.txt +Color names to RGB mapping +.TP 30 +__projectroot__/lib/X11/XErrorDB +Client error message database +.TP 30 +__projectroot__/lib/X11/app-defaults/\(** +Client resource specifications +.TP 30 +__projectroot__/man/man?/\(** +Manual pages +.TP 30 +/etc/X\fIn\fP.hosts +Initial access control list for display \fIn\fP +.SH "SEE ALSO" +X(__miscmansuffix__), Xserver(1), xdm(1), xinit(1), +XF86Config(__filemansuffix__), xf86config(1), xf86cfg(1), xvidtune(1), +apm(__drivermansuffix__), +ati(__drivermansuffix__), +chips(__drivermansuffix__), +cirrus(__drivermansuffix__), +cyrix(__drivermansuffix__), +fbdev(__drivermansuffix__), +glide(__drivermansuffix__), +glint(__drivermansuffix__), +i128(__drivermansuffix__), +i740(__drivermansuffix__), +i810(__drivermansuffix__), +imstt(__drivermansuffix__), +mga(__drivermansuffix__), +neomagic(__drivermansuffix__), +nv(__drivermansuffix__), +r128(__drivermansuffix__), +rendition(__drivermansuffix__), +s3virge(__drivermansuffix__), +siliconmotion(__drivermansuffix__), +sis(__drivermansuffix__), +sunbw2(__drivermansuffix__), +suncg14(__drivermansuffix__), +suncg3(__drivermansuffix__), +suncg6(__drivermansuffix__), +sunffb(__drivermansuffix__), +sunleo(__drivermansuffix__), +suntcx(__drivermansuffix__), +tdfx(__drivermansuffix__), +tga(__drivermansuffix__), +trident(__drivermansuffix__), +tseng(__drivermansuffix__), +v4l(__drivermansuffix__), +vesa(__drivermansuffix__), +vga(__drivermansuffix__), +vmware(__drivermansuffix__), +.br +README +.IR , +.br +RELNOTES +.IR , +.br +README.mouse +.IR , +.br +README.DRI +.IR , +.br +Status +.IR , +.br +Install +.IR . + +.SH AUTHORS +XFree86 has many contributors world wide. The names of most of them +can be found in the documentation, CHANGELOG files in the source tree, +and in the actual source code. +.PP +XFree86 was originally based on \fIX386 1.2\fP by Thomas Roell, which +was contributed to the then X Consortium's X11R5 distribution by SGCS. +.PP +The project that became XFree86 was originally founded in 1992 by +David Dawes, Glenn Lai, Jim Tsillas and David Wexelblat. +.PP +XFree86 was later integrated in the then X Consortium's X11R6 release +by a group of dedicated XFree86 developers, including the following: +.PP +.RS 4 +.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 +.RE +.PP +The current XFree86 core team consists of: +.PP +.RS 4 +.nf +Stuart Anderson \fIanderson@metrolink.com\fP +Preston Brown \fIpbrown@redhat.com\fP +Robin Cutshaw \fIrobin@xfree86.org\fP +David Dawes \fIdawes@xfree86.org\fP +Egbert Eich \fIeich@xfree86.org\fP +Marc Evans \fImarc@xfree86.org\fP +Dirk Hohndel \fIhohndel@xfree86.org\fP +Alan Hourihane \fIalanh@xfree86.org\fP +Harald Koenig \fIkoenig@xfree86.org\fP +Marc La France \fItsi@xfree86.org\fP +Kevin Martin \fImartin@xfree86.org\fP +Rich Murphey \fIrich@xfree86.org\fP +Takaaki Nomura \fIamadeus@yk.rim.or.jp\fP +Keith Packard \fIkeithp@xfree86.org\fP +Jon Tombs \fIjon@gtex02.us.es\fP +Mark Vojkovich \fImarkv@xfree86.org\fP +David Wexelblat \fIdwex@xfree86.org\fP +.fi +.RE +.PP +\fIXFree86\fP source is available from the FTP server +\fI\fP, among others. Documentation +and other information can be found from the XFree86 web site +\fI\fP. Index: xc/programs/Xserver/hw/xfree86/xf86Version.h diff -u xc/programs/Xserver/hw/xfree86/xf86Version.h:3.460 xc/programs/Xserver/hw/xfree86/xf86Version.h:3.472.2.5 --- xc/programs/Xserver/hw/xfree86/xf86Version.h:3.460 Mon Dec 18 00:55:35 2000 +++ xc/programs/Xserver/hw/xfree86/xf86Version.h Sat Jun 2 11:27:52 2001 @@ -1,23 +1,31 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Version.h,v 3.460 2000/12/18 05:55:35 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/xf86Version.h,v 3.472.2.5 2001/06/02 15:27:52 dawes Exp $ */ -#define XF86_VERSION " 4.0.2 " +#ifndef XF86_VERSION_CURRENT -/* The finer points in versions... */ #define XF86_VERSION_MAJOR 4 -#define XF86_VERSION_MINOR 0 -#define XF86_VERSION_SUBMINOR 2 -#define XF86_VERSION_BETA 0 /* 0="", 1="A", 2="B", etc... */ -#define XF86_VERSION_ALPHA 0 /* 0="", 1="a", 2="b", etc... */ +#define XF86_VERSION_MINOR 1 +#define XF86_VERSION_PATCH 0 +#define XF86_VERSION_SNAP 0 -#define XF86_VERSION_NUMERIC(major,minor,subminor,beta,alpha) \ - ((((((((major << 7) | minor) << 7) | subminor) << 5) | beta) << 5) | alpha) +/* This has five arguments for compatibilty reasons */ +#define XF86_VERSION_NUMERIC(major,minor,patch,snap,dummy) \ + (((major) * 10000000) + ((minor) * 100000) + ((patch) * 1000) + snap) + +/* Define these for compatibility. They'll be removed at some point. */ +#define XF86_VERSION_SUBMINOR XF86_VERSION_PATCH +#define XF86_VERSION_BETA 0 +#define XF86_VERSION_ALPHA XF86_VERSION_SNAP + #define XF86_VERSION_CURRENT \ XF86_VERSION_NUMERIC(XF86_VERSION_MAJOR, \ XF86_VERSION_MINOR, \ - XF86_VERSION_SUBMINOR, \ - XF86_VERSION_BETA, \ - XF86_VERSION_ALPHA) + XF86_VERSION_PATCH, \ + XF86_VERSION_SNAP, \ + 0) + + +#define XF86_DATE "2 June 2001" -#define XF86_DATE "18 December 2000" +#endif /* $XConsortium: xf86Version.h /main/78 1996/10/28 05:42:10 kaleb $ */ Index: xc/programs/Xserver/hw/xfree86/SuperProbe/00README diff -u xc/programs/Xserver/hw/xfree86/SuperProbe/00README:3.5 xc/programs/Xserver/hw/xfree86/SuperProbe/00README:3.6 --- xc/programs/Xserver/hw/xfree86/SuperProbe/00README:3.5 Mon Dec 23 01:30:54 1996 +++ xc/programs/Xserver/hw/xfree86/SuperProbe/00README Sat Jan 6 15:58:02 2001 @@ -69,14 +69,14 @@ Kevin Martin 8514/A, ATI Mach8 and ATI Mach32 probe code. -Marc Aurele La France +Marc Aurele La France ATI Mach64 probe code. The XFree86 Beta Test Team For helping test and debug this software. -$XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/00README,v 3.5 1996/12/23 06:30:54 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/00README,v 3.6 2001/01/06 20:58:02 tsi Exp $ Index: xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h diff -u xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h:3.17 xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h:3.18 --- xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h:3.17 Fri Sep 29 04:59:44 2000 +++ xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h Sun Apr 1 10:00:07 2001 @@ -57,10 +57,16 @@ * */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h,v 3.17 2000/09/29 08:59:44 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/AsmMacros.h,v 3.18 2001/04/01 14:00:07 tsi Exp $ */ #if defined(__GNUC__) #if defined(linux) && (defined(__alpha__) || defined(__ia64__)) +#undef inb +#undef inw +#undef inl +#undef outb +#undef outw +#undef outl #define inb _inb #define inw _inw #define inl _inl Index: xc/programs/Xserver/hw/xfree86/SuperProbe/OS_386BSD.c diff -u xc/programs/Xserver/hw/xfree86/SuperProbe/OS_386BSD.c:3.17 xc/programs/Xserver/hw/xfree86/SuperProbe/OS_386BSD.c:3.19 --- xc/programs/Xserver/hw/xfree86/SuperProbe/OS_386BSD.c:3.17 Fri Jun 23 18:42:02 2000 +++ xc/programs/Xserver/hw/xfree86/SuperProbe/OS_386BSD.c Sat Mar 3 04:53:00 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/OS_386BSD.c,v 3.17 2000/06/23 22:42:02 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/OS_386BSD.c,v 3.19 2001/03/03 09:53:00 herrb Exp $ */ /* * (c) Copyright 1993,1994 by David Dawes * @@ -78,12 +78,26 @@ /* NetBSD's wscons has a PCVT compatibility module. */ # include # else -# include +# if defined(__OpenBSD__) && defined(WSCONS_SUPPORT) +# include +# else +# include +# endif # endif # endif # ifdef SYSCONS_SUPPORT /* both, Free and NetBSD have syscons */ -# include +# if defined(__FreeBSD__) +# include +# if __FreeBSD_version >= 410000 +# include +# include +# else +# include +# endif +# else +# include +# endif # endif # else # ifdef CODRV_SUPPORT Index: xc/programs/Xserver/hw/xfree86/SuperProbe/SuperProbe.man diff -u xc/programs/Xserver/hw/xfree86/SuperProbe/SuperProbe.man:3.9 xc/programs/Xserver/hw/xfree86/SuperProbe/SuperProbe.man:3.10 --- xc/programs/Xserver/hw/xfree86/SuperProbe/SuperProbe.man:3.9 Sat Sep 25 10:37:02 1999 +++ xc/programs/Xserver/hw/xfree86/SuperProbe/SuperProbe.man Sat Jan 27 13:20:44 2001 @@ -1,5 +1,5 @@ -.\" $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/SuperProbe.man,v 3.9 1999/09/25 14:37:02 dawes Exp $ -.TH SuperProbe 1 "XFree86 3.9.17/SuperProbe 2.21" "X Version 11" +.\" $XFree86: xc/programs/Xserver/hw/xfree86/SuperProbe/SuperProbe.man,v 3.10 2001/01/27 18:20:44 dawes Exp $ +.TH SuperProbe 1 __vendorversion__ .SH NAME SuperProbe - probe for and identify installed video hardware. .SH SYNOPSIS Index: xc/programs/Xserver/hw/xfree86/XF86Setup/XF86Setup.man diff -u xc/programs/Xserver/hw/xfree86/XF86Setup/XF86Setup.man:3.4 xc/programs/Xserver/hw/xfree86/XF86Setup/XF86Setup.man:3.5 --- xc/programs/Xserver/hw/xfree86/XF86Setup/XF86Setup.man:3.4 Fri Dec 27 01:53:58 1996 +++ xc/programs/Xserver/hw/xfree86/XF86Setup/XF86Setup.man Sat Jan 27 13:20:45 2001 @@ -1,6 +1,6 @@ .\" $XConsortium: XF86Setup.man /main/3 1996/12/09 17:37:49 kaleb $ -.\" $XFree86: xc/programs/Xserver/hw/xfree86/XF86Setup/XF86Setup.man,v 3.4 1996/12/27 06:53:58 dawes Exp $ -.TH XF86Setup 1 "Version 3.2" "XFree86" +.\" $XFree86: xc/programs/Xserver/hw/xfree86/XF86Setup/XF86Setup.man,v 3.5 2001/01/27 18:20:45 dawes Exp $ +.TH XF86Setup 1 __vendorversion__ .SH NAME XF86Setup - Graphical configuration utility for XFree86 .SH SYNOPSIS Index: xc/programs/Xserver/hw/xfree86/XF86Setup/scripts/xmseconfig.man diff -u xc/programs/Xserver/hw/xfree86/XF86Setup/scripts/xmseconfig.man:3.4 xc/programs/Xserver/hw/xfree86/XF86Setup/scripts/xmseconfig.man:3.5 --- xc/programs/Xserver/hw/xfree86/XF86Setup/scripts/xmseconfig.man:3.4 Sun Nov 16 01:18:46 1997 +++ xc/programs/Xserver/hw/xfree86/XF86Setup/scripts/xmseconfig.man Sat Jan 27 13:20:45 2001 @@ -4,8 +4,8 @@ .\" .\" .\" -.\" $XFree86: xc/programs/Xserver/hw/xfree86/XF86Setup/scripts/xmseconfig.man,v 3.4 1997/11/16 06:18:46 dawes Exp $ -.TH xmseconfig 1 "Release 6.4 (XFree86 3.3.1)" "X Version 11" +.\" $XFree86: xc/programs/Xserver/hw/xfree86/XF86Setup/scripts/xmseconfig.man,v 3.5 2001/01/27 18:20:45 dawes Exp $ +.TH xmseconfig 1 __vendorversion__ .SH NAME xmseconfig - Graphical mouse configuration utility .SH SYNOPSIS Index: xc/programs/Xserver/hw/xfree86/common/Imakefile diff -u xc/programs/Xserver/hw/xfree86/common/Imakefile:3.125 xc/programs/Xserver/hw/xfree86/common/Imakefile:3.134 --- xc/programs/Xserver/hw/xfree86/common/Imakefile:3.125 Wed Dec 6 10:35:06 2000 +++ xc/programs/Xserver/hw/xfree86/common/Imakefile Mon May 7 17:42:31 2001 @@ -4,7 +4,7 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/common/Imakefile,v 3.125 2000/12/06 15:35:06 eich Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/common/Imakefile,v 3.134 2001/05/07 21:42:31 tsi Exp $ @@ -17,7 +17,8 @@ KBD = xf86KbdMach #endif /* GNUMachArchitecture */ #else -# if defined(i386BsdArchitecture) || defined(AlphaBsdArchitecture) +# if defined(i386BsdArchitecture) || defined(AlphaBsdArchitecture) \ + || defined(OpenBSDArchitecture) && defined(PpcArchitecture) KBD = xf86KbdBSD # else # ifdef LinuxArchitecture @@ -59,10 +60,6 @@ EXT_MODULES_DEFINES = $(GLX_DEFINES) #endif -#if defined(LinuxArchitecture) && defined(PpcArchitecture) - KBDDEFINES = -DASSUME_CUSTOM_KEYCODES -#endif - #ifndef XF86ExpireServer #define XF86ExpireServer NO #endif @@ -95,7 +92,7 @@ xf86Cursor.c \ xf86DGA.c \ xf86DPMS.c \ - xf86DefModes.c \ + xf86DefModeSet.c \ xf86DoProbe.c \ xf86DoScanPci.c \ xf86Events.c \ @@ -109,6 +106,7 @@ xf86VidMode.c \ xf86fbman.c \ xf86xv.c \ + xf86xvmc.c \ xf86cmap.c\ xf86PM.c \ $(DEBUGSRC) \ @@ -130,7 +128,7 @@ xf86Cursor.o \ xf86DGA.o \ xf86DPMS.o \ - xf86DefModes.o \ + xf86DefModeSet.o \ xf86DoProbe.o \ xf86DoScanPci.o \ xf86Events.o \ @@ -143,6 +141,7 @@ xf86VidMode.o \ xf86fbman.o \ xf86xv.o \ + xf86xvmc.o \ xf86cmap.o\ xf86PM.o \ $(DEBUGOBJ) \ @@ -180,7 +179,6 @@ #endif CONSDEFINES = XFree86ConsoleDefines EXP_DEFINES = -DEXPIRY_TIME=XF86ServerExpiry $(EXP_FORCE_DEFINES) -PROJECTROOT = ProjectRoot DRIVERS = XF86CardDrivers IDRIVERS = XInputDrivers XCONFIGDEFINES = -DPROJECTROOT='"$(PROJECTROOT)"' \ @@ -189,7 +187,7 @@ XF86CONFIGFILE = XConfigFile XCONFIGUREDEFINES = -DXF86CONFIGFILE='"$(XF86CONFIGFILE)"' - DEFINES = $(CONSDEFINES) $(KBDDEFINES) $(EXT_DEFINES) $(OSDEFINES) + DEFINES = $(CONSDEFINES) $(KBDDEFINES) $(EXT_DEFINES) $(OS_DEFINES) AllTarget($(OFILES)) @@ -216,6 +214,28 @@ LinkSourceFile(xf86Sbus.h,$(XF86OSSRC)/bus) #endif +#if HasPerl +MODEDEFSRCS = ../etc/vesamodes ../etc/extramodes + +MODEDEFS = modedefs + +$(MODEDEFS): $(MODEDEFSRCS) + RemoveFile($@) + cat $(MODEDEFSRCS) > $@ + +includes:: xf86DefModeSet.c + +xf86DefModeSet.c: $(MODEDEFS) modeline2c.pl + RemoveFile($@) + RunPerlScript(modeline2c.pl, < $(MODEDEFS) > $@) + +clean:: + RemoveFile($(MODEDEFS)) + RemoveFile(xf86DefModeSet.c) +#else +LinkFile(xf86DefModeSet.c,xf86DefModes.c) +#endif + #ifndef OS2Architecture DependTarget() #endif @@ -236,3 +256,4 @@ InstallDriverSDKNonExecFile(xf86fbman.h,$(DRIVERSDKINCLUDEDIR)) InstallDriverSDKNonExecFile(xf86str.h,$(DRIVERSDKINCLUDEDIR)) InstallDriverSDKNonExecFile(xf86xv.h,$(DRIVERSDKINCLUDEDIR)) +InstallDriverSDKNonExecFile(xf86xvmc.h,$(DRIVERSDKINCLUDEDIR)) Index: xc/programs/Xserver/hw/xfree86/common/atKeynames.h diff -u xc/programs/Xserver/hw/xfree86/common/atKeynames.h:3.15 xc/programs/Xserver/hw/xfree86/common/atKeynames.h:3.17 --- xc/programs/Xserver/hw/xfree86/common/atKeynames.h:3.15 Fri Aug 11 19:59:48 2000 +++ xc/programs/Xserver/hw/xfree86/common/atKeynames.h Fri May 18 12:03:10 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/atKeynames.h,v 3.15 2000/08/11 23:59:48 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/atKeynames.h,v 3.17 2001/05/18 16:03:10 tsi Exp $ */ /* * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. * @@ -189,11 +189,16 @@ #define KEY_F13 /* F13 0x6e */ 110 #define KEY_F14 /* F14 0x6f */ 111 #define KEY_F15 /* F15 0x70 */ 112 +#define KEY_HKTG /* Hirugana/Katakana tog 0x70 */ 112 #define KEY_F16 /* F16 0x71 */ 113 #define KEY_F17 /* F17 0x72 */ 114 #define KEY_KP_DEC /* KP_DEC 0x73 */ 115 +#define KEY_BSlash2 /* \ _ 0x73 */ 115 +#define KEY_XFER /* Kanji Transfer 0x79 */ 121 +#define KEY_NFER /* No Kanji Transfer 0x7b */ 123 +#define KEY_Yen /* Yen 0x7d */ 125 -/* These are for "notused" and "uknown" entries in translation maps. */ +/* These are for "notused" and "unknown" entries in translation maps. */ #define KEY_NOTUSED 0 #define KEY_UNKNOWN 255 Index: xc/programs/Xserver/hw/xfree86/common/compiler.h diff -u xc/programs/Xserver/hw/xfree86/common/compiler.h:3.76 xc/programs/Xserver/hw/xfree86/common/compiler.h:3.81 --- xc/programs/Xserver/hw/xfree86/common/compiler.h:3.76 Thu Dec 7 10:43:40 2000 +++ xc/programs/Xserver/hw/xfree86/common/compiler.h Mon Apr 23 12:17:11 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/compiler.h,v 3.76 2000/12/07 15:43:40 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/compiler.h,v 3.81 2001/04/23 16:17:11 tsi Exp $ */ /* * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. * @@ -429,6 +429,19 @@ #define mem_barrier() __asm__ __volatile__ ("mf" ::: "memory") #define write_mem_barrier() __asm__ __volatile__ ("mf" ::: "memory") +/* + * This is overkill, but for different reasons depending on where it is used. + * This is thus general enough to be used everywhere cache flushes are needed. + * It doesn't handle memory access serialisation by other processors, though. + */ +#define ia64_flush_cache(Addr) \ + __asm__ __volatile__ ( \ + "fc %0;;;" \ + "sync.i;;;" \ + "mf;;;" \ + "srlz.i;;;" \ + :: "r"(Addr) : "memory") + #undef outb #undef outw #undef outl @@ -437,7 +450,7 @@ #define outw(a,b) _outw(b,a) #define outl(a,b) _outl(b,a) -#elif (defined(linux) || defined(Lynx)) && defined(__sparc__) +#elif (defined(linux) || defined(Lynx) || defined(sun)) && defined(__sparc__) #if !defined(Lynx) #ifndef ASI_PL @@ -446,92 +459,126 @@ #define barrier() __asm__ __volatile__(".word 0x8143e00a": : :"memory") -static __inline__ void outb(unsigned long port, unsigned char val) +static __inline__ void +outb(unsigned long port, unsigned char val) { - __asm__ __volatile__("stba %0, [%1] %2" : : "r" (val), "r" (port), "i" (ASI_PL)); + __asm__ __volatile__("stba %0, [%1] %2" + : /* No outputs */ + : "r" (val), "r" (port), "i" (ASI_PL)); barrier(); } -static __inline__ void outw(unsigned long port, unsigned short val) +static __inline__ void +outw(unsigned long port, unsigned short val) { - __asm__ __volatile__("stha %0, [%1] %2" : : "r" (val), "r" (port), "i" (ASI_PL)); + __asm__ __volatile__("stha %0, [%1] %2" + : /* No outputs */ + : "r" (val), "r" (port), "i" (ASI_PL)); barrier(); } -static __inline__ void outl(unsigned long port, unsigned int val) +static __inline__ void +outl(unsigned long port, unsigned int val) { - __asm__ __volatile__("sta %0, [%1] %2" : : "r" (val), "r" (port), "i" (ASI_PL)); + __asm__ __volatile__("sta %0, [%1] %2" + : /* No outputs */ + : "r" (val), "r" (port), "i" (ASI_PL)); barrier(); } -static __inline__ unsigned int inb(unsigned long port) +static __inline__ unsigned int +inb(unsigned long port) { unsigned int ret; - __asm__ __volatile__("lduba [%1] %2, %0" : "=r" (ret) : "r" (port), "i" (ASI_PL)); + __asm__ __volatile__("lduba [%1] %2, %0" + : "=r" (ret) + : "r" (port), "i" (ASI_PL)); return ret; } -static __inline__ unsigned int inw(unsigned long port) +static __inline__ unsigned int +inw(unsigned long port) { unsigned int ret; - __asm__ __volatile__("lduha [%1] %2, %0" : "=r" (ret) : "r" (port), "i" (ASI_PL)); + __asm__ __volatile__("lduha [%1] %2, %0" + : "=r" (ret) + : "r" (port), "i" (ASI_PL)); return ret; } -static __inline__ unsigned int inl(unsigned long port) +static __inline__ unsigned int +inl(unsigned long port) { unsigned int ret; - __asm__ __volatile__("lda [%1] %2, %0" : "=r" (ret) : "r" (port), "i" (ASI_PL)); + __asm__ __volatile__("lda [%1] %2, %0" + : "=r" (ret) + : "r" (port), "i" (ASI_PL)); return ret; } -static __inline__ unsigned char xf86ReadMmio8(void *base, const unsigned long offset) +static __inline__ unsigned char +xf86ReadMmio8(__volatile__ void *base, const unsigned long offset) { unsigned long addr = ((unsigned long)base) + offset; unsigned char ret; - __asm__ __volatile__("lduba [%1] %2, %0" : "=r" (ret) : "r" (addr), "i" (ASI_PL)); + __asm__ __volatile__("lduba [%1] %2, %0" + : "=r" (ret) + : "r" (addr), "i" (ASI_PL)); return ret; } -static __inline__ unsigned short xf86ReadMmio16Be(void *base, const unsigned long offset) +static __inline__ unsigned short +xf86ReadMmio16Be(__volatile__ void *base, const unsigned long offset) { unsigned long addr = ((unsigned long)base) + offset; unsigned short ret; - __asm__ __volatile__("lduh [%1], %0" : "=r" (ret) : "r" (addr)); + __asm__ __volatile__("lduh [%1], %0" + : "=r" (ret) + : "r" (addr)); return ret; } -static __inline__ unsigned short xf86ReadMmio16Le(void *base, const unsigned long offset) +static __inline__ unsigned short +xf86ReadMmio16Le(__volatile__ void *base, const unsigned long offset) { unsigned long addr = ((unsigned long)base) + offset; unsigned short ret; - __asm__ __volatile__("lduha [%1] %2, %0" : "=r" (ret) : "r" (addr), "i" (ASI_PL)); + __asm__ __volatile__("lduha [%1] %2, %0" + : "=r" (ret) + : "r" (addr), "i" (ASI_PL)); return ret; } -static __inline__ unsigned int xf86ReadMmio32Be(void *base, const unsigned long offset) +static __inline__ unsigned int +xf86ReadMmio32Be(__volatile__ void *base, const unsigned long offset) { unsigned long addr = ((unsigned long)base) + offset; unsigned int ret; - __asm__ __volatile__("ld [%1], %0" : "=r" (ret) : "r" (addr)); + __asm__ __volatile__("ld [%1], %0" + : "=r" (ret) + : "r" (addr)); return ret; } -static __inline__ unsigned int xf86ReadMmio32Le(void *base, const unsigned long offset) +static __inline__ unsigned int +xf86ReadMmio32Le(__volatile__ void *base, const unsigned long offset) { unsigned long addr = ((unsigned long)base) + offset; unsigned int ret; - __asm__ __volatile__("lda [%1] %2, %0" : "=r" (ret) : "r" (addr), "i" (ASI_PL)); + __asm__ __volatile__("lda [%1] %2, %0" + : "=r" (ret) + : "r" (addr), "i" (ASI_PL)); return ret; } -static __inline__ void xf86WriteMmio8(void *base, const unsigned long offset, - const unsigned int val) +static __inline__ void +xf86WriteMmio8(__volatile__ void *base, const unsigned long offset, + const unsigned int val) { unsigned long addr = ((unsigned long)base) + offset; @@ -541,8 +588,9 @@ barrier(); } -static __inline__ void xf86WriteMmio16Be(void *base, const unsigned long offset, - const unsigned int val) +static __inline__ void +xf86WriteMmio16Be(__volatile__ void *base, const unsigned long offset, + const unsigned int val) { unsigned long addr = ((unsigned long)base) + offset; @@ -552,8 +600,9 @@ barrier(); } -static __inline__ void xf86WriteMmio16Le(void *base, const unsigned long offset, - const unsigned int val) +static __inline__ void +xf86WriteMmio16Le(__volatile__ void *base, const unsigned long offset, + const unsigned int val) { unsigned long addr = ((unsigned long)base) + offset; @@ -563,8 +612,9 @@ barrier(); } -static __inline__ void xf86WriteMmio32Be(void *base, const unsigned long offset, - const unsigned int val) +static __inline__ void +xf86WriteMmio32Be(__volatile__ void *base, const unsigned long offset, + const unsigned int val) { unsigned long addr = ((unsigned long)base) + offset; @@ -574,8 +624,9 @@ barrier(); } -static __inline__ void xf86WriteMmio32Le(void *base, const unsigned long offset, - const unsigned int val) +static __inline__ void +xf86WriteMmio32Le(__volatile__ void *base, const unsigned long offset, + const unsigned int val) { unsigned long addr = ((unsigned long)base) + offset; @@ -585,8 +636,9 @@ barrier(); } -static __inline__ void xf86WriteMmio8NB(void *base, const unsigned long offset, - const unsigned int val) +static __inline__ void +xf86WriteMmio8NB(__volatile__ void *base, const unsigned long offset, + const unsigned int val) { unsigned long addr = ((unsigned long)base) + offset; @@ -595,8 +647,9 @@ : "r" (val), "r" (addr), "i" (ASI_PL)); } -static __inline__ void xf86WriteMmio16BeNB(void *base, const unsigned long offset, - const unsigned int val) +static __inline__ void +xf86WriteMmio16BeNB(__volatile__ void *base, const unsigned long offset, + const unsigned int val) { unsigned long addr = ((unsigned long)base) + offset; @@ -605,8 +658,9 @@ : "r" (val), "r" (addr)); } -static __inline__ void xf86WriteMmio16LeNB(void *base, const unsigned long offset, - const unsigned int val) +static __inline__ void +xf86WriteMmio16LeNB(__volatile__ void *base, const unsigned long offset, + const unsigned int val) { unsigned long addr = ((unsigned long)base) + offset; @@ -615,8 +669,9 @@ : "r" (val), "r" (addr), "i" (ASI_PL)); } -static __inline__ void xf86WriteMmio32BeNB(void *base, const unsigned long offset, - const unsigned int val) +static __inline__ void +xf86WriteMmio32BeNB(__volatile__ void *base, const unsigned long offset, + const unsigned int val) { unsigned long addr = ((unsigned long)base) + offset; @@ -625,8 +680,9 @@ : "r" (val), "r" (addr)); } -static __inline__ void xf86WriteMmio32LeNB(void *base, const unsigned long offset, - const unsigned int val) +static __inline__ void +xf86WriteMmio32LeNB(__volatile__ void *base, const unsigned long offset, + const unsigned int val) { unsigned long addr = ((unsigned long)base) + offset; @@ -753,19 +809,19 @@ static __inline__ unsigned int inb(unsigned short port) { - return(*(volatile unsigned char*)(((unsigned short)(port))+IOPortBase)); + return *(volatile unsigned char*)(((unsigned short)(port))+IOPortBase); } static __inline__ unsigned int inw(unsigned short port) { - return(*(volatile unsigned short*)(((unsigned short)(port))+IOPortBase)); + return *(volatile unsigned short*)(((unsigned short)(port))+IOPortBase); } static __inline__ unsigned int inl(unsigned short port) { - return(*(volatile unsigned int*)(((unsigned short)(port))+IOPortBase)); + return *(volatile unsigned int*)(((unsigned short)(port))+IOPortBase); } @@ -840,7 +896,7 @@ #define eieio() __asm__ __volatile__ ("eieio") static __inline__ unsigned char -xf86ReadMmio8(void *base, const unsigned long offset) +xf86ReadMmio8(__volatile__ void *base, const unsigned long offset) { register unsigned char val; __asm__ __volatile__( @@ -849,11 +905,11 @@ : "=r" (val) : "b" (base), "r" (offset), "m" (*((volatile unsigned char *)base+offset))); - return(val); + return val; } static __inline__ unsigned short -xf86ReadMmio16Be(void *base, const unsigned long offset) +xf86ReadMmio16Be(__volatile__ void *base, const unsigned long offset) { register unsigned short val; __asm__ __volatile__( @@ -862,11 +918,11 @@ : "=r" (val) : "b" (base), "r" (offset), "m" (*((volatile unsigned char *)base+offset))); - return(val); + return val; } static __inline__ unsigned short -xf86ReadMmio16Le(void *base, const unsigned long offset) +xf86ReadMmio16Le(__volatile__ void *base, const unsigned long offset) { register unsigned short val; __asm__ __volatile__( @@ -875,11 +931,11 @@ : "=r" (val) : "b" (base), "r" (offset), "m" (*((volatile unsigned char *)base+offset))); - return(val); + return val; } static __inline__ unsigned int -xf86ReadMmio32Be(void *base, const unsigned long offset) +xf86ReadMmio32Be(__volatile__ void *base, const unsigned long offset) { register unsigned int val; __asm__ __volatile__( @@ -888,11 +944,11 @@ : "=r" (val) : "b" (base), "r" (offset), "m" (*((volatile unsigned char *)base+offset))); - return(val); + return val; } static __inline__ unsigned int -xf86ReadMmio32Le(void *base, const unsigned long offset) +xf86ReadMmio32Le(__volatile__ void *base, const unsigned long offset) { register unsigned int val; __asm__ __volatile__( @@ -901,12 +957,12 @@ : "=r" (val) : "b" (base), "r" (offset), "m" (*((volatile unsigned char *)base+offset))); - return(val); + return val; } static __inline__ void -xf86WriteMmioNB8(void *base, const unsigned long offset, - const unsigned char val) +xf86WriteMmioNB8(__volatile__ void *base, const unsigned long offset, + const unsigned char val) { __asm__ __volatile__( "stbx %1,%2,%3\n\t" @@ -915,8 +971,8 @@ } static __inline__ void -xf86WriteMmioNB16Le(void *base, const unsigned long offset, - const unsigned short val) +xf86WriteMmioNB16Le(__volatile__ void *base, const unsigned long offset, + const unsigned short val) { __asm__ __volatile__( "sthbrx %1,%2,%3\n\t" @@ -925,8 +981,8 @@ } static __inline__ void -xf86WriteMmioNB16Be(void *base, const unsigned long offset, - const unsigned short val) +xf86WriteMmioNB16Be(__volatile__ void *base, const unsigned long offset, + const unsigned short val) { __asm__ __volatile__( "sthx %1,%2,%3\n\t" @@ -935,8 +991,8 @@ } static __inline__ void -xf86WriteMmioNB32Le(void *base, const unsigned long offset, - const unsigned int val) +xf86WriteMmioNB32Le(__volatile__ void *base, const unsigned long offset, + const unsigned int val) { __asm__ __volatile__( "stwbrx %1,%2,%3\n\t" @@ -945,8 +1001,8 @@ } static __inline__ void -xf86WriteMmioNB32Be(void *base, const unsigned long offset, - const unsigned int val) +xf86WriteMmioNB32Be(__volatile__ void *base, const unsigned long offset, + const unsigned int val) { __asm__ __volatile__( "stwx %1,%2,%3\n\t" @@ -955,42 +1011,42 @@ } static __inline__ void -xf86WriteMmio8(void *base, const unsigned long offset, +xf86WriteMmio8(__volatile__ void *base, const unsigned long offset, const unsigned char val) { - xf86WriteMmioNB8(base,offset,val); + xf86WriteMmioNB8(base, offset, val); eieio(); } static __inline__ void -xf86WriteMmio16Le(void *base, const unsigned long offset, +xf86WriteMmio16Le(__volatile__ void *base, const unsigned long offset, const unsigned short val) { - xf86WriteMmioNB16Le(base,offset,val); + xf86WriteMmioNB16Le(base, offset, val); eieio(); } static __inline__ void -xf86WriteMmio16Be(void *base, const unsigned long offset, +xf86WriteMmio16Be(__volatile__ void *base, const unsigned long offset, const unsigned short val) { - xf86WriteMmioNB16Be(base,offset,val); + xf86WriteMmioNB16Be(base, offset, val); eieio(); } static __inline__ void -xf86WriteMmio32Le(void *base, const unsigned long offset, +xf86WriteMmio32Le(__volatile__ void *base, const unsigned long offset, const unsigned int val) { - xf86WriteMmioNB32Le(base,offset,val); + xf86WriteMmioNB32Le(base, offset, val); eieio(); } static __inline__ void -xf86WriteMmio32Be(void *base, const unsigned long offset, +xf86WriteMmio32Be(__volatile__ void *base, const unsigned long offset, const unsigned int val) { - xf86WriteMmioNB32Be(base,offset,val); + xf86WriteMmioNB32Be(base, offset, val); eieio(); } @@ -999,42 +1055,42 @@ outb(unsigned short port, unsigned char value) { if(ioBase == MAP_FAILED) return; - xf86WriteMmio8((void *)ioBase,port,value); + xf86WriteMmio8((void *)ioBase, port, value); } static __inline__ void outw(unsigned short port, unsigned short value) { if(ioBase == MAP_FAILED) return; - xf86WriteMmio16Le((void *)ioBase,port,value); + xf86WriteMmio16Le((void *)ioBase, port, value); } static __inline__ void outl(unsigned short port, unsigned int value) { if(ioBase == MAP_FAILED) return; - xf86WriteMmio32Le((void *)ioBase,port,value); + xf86WriteMmio32Le((void *)ioBase, port, value); } static __inline__ unsigned int inb(unsigned short port) { - if(ioBase == MAP_FAILED) return(0); - return(xf86ReadMmio8((void *)ioBase, port)); + if(ioBase == MAP_FAILED) return 0; + return xf86ReadMmio8((void *)ioBase, port); } static __inline__ unsigned int inw(unsigned short port) { - if(ioBase == MAP_FAILED) return(0); - return(xf86ReadMmio16Le((void *)ioBase, port)); + if(ioBase == MAP_FAILED) return 0; + return xf86ReadMmio16Le((void *)ioBase, port); } static __inline__ unsigned int inl(unsigned short port) { - if(ioBase == MAP_FAILED) return(0); - return(xf86ReadMmio32Le((void *)ioBase, port)); + if(ioBase == MAP_FAILED) return 0; + return xf86ReadMmio32Le((void *)ioBase, port); } #define ldq_u(p) ldl_u(p) @@ -1388,13 +1444,13 @@ #endif /* - * This header sometimes gets included where is isn't needed, and on some - * OSs this causes problems because the following functions generate - * references to inb() and outb() which can't be resolved. Defining - * NO_COMPILER_H_EXTRAS avoids this problem. + * This header sometimes gets included where is isn't needed, and on some OSs + * this causes problems because the following functions generate references to + * inx() and outx() which can't be resolved. If you need the extra definitions + * below, #define COMPILER_H_EXTRAS. */ -#ifndef NO_COMPILER_H_EXTRAS +#ifdef COMPILER_H_EXTRAS /* *----------------------------------------------------------------------- * Port manipulation convenience functions @@ -1418,7 +1474,7 @@ if (port == 0x3C0) /* reset attribute flip-flop */ (void) inb(0x3DA); outb(port, ind); - return(inb(port+1)); + return inb(port+1); } /* @@ -1461,7 +1517,7 @@ outb(port, old | mask); new2 = inb(port) & mask; outb(port, old); - return((new1 == 0) && (new2 == mask)); + return (new1 == 0) && (new2 == mask); } /* @@ -1479,7 +1535,7 @@ wrinx(port, ind, old | mask); new2 = rdinx(port, ind) & mask; wrinx(port, ind, old); - return((new1 == 0) && (new2 == mask)); + return (new1 == 0) && (new2 == mask); } /* @@ -1489,9 +1545,9 @@ static __inline__ int testinx(unsigned short port, unsigned char ind) { - return(testinx2(port, ind, 0xFF)); + return testinx2(port, ind, 0xFF); } -#endif /* NO_COMPILER_H_EXTRAS */ +#endif /* COMPILER_H_EXTRAS */ #endif /* NO_INLINE */ @@ -1510,27 +1566,28 @@ extern void xf86JensenBusToMem(char *, char *, unsigned long, int); extern void xf86SlowBCopyFromBus(unsigned char *, unsigned char *, int); extern void xf86SlowBCopyToBus(unsigned char *, unsigned char *, int); + /* Some macros to hide the system dependencies for MMIO accesses */ /* Changed to kill noise generated by gcc's -Wcast-align */ #define MMIO_IN8(base, offset) (*xf86ReadMmio8)(base, offset) #define MMIO_IN16(base, offset) (*xf86ReadMmio16)(base, offset) -# if defined (JENSEN_SUPPORT) #define MMIO_IN32(base, offset) (*xf86ReadMmio32)(base, offset) + +# if defined (JENSEN_SUPPORT) #define MMIO_OUT32(base, offset, val) \ (*xf86WriteMmio32)((CARD32)(val), base, offset) #define MMIO_ONB32(base, offset, val) \ (*xf86WriteMmioNB32)((CARD32)(val), base, offset) # else -#define MMIO_IN32(base, offset) \ - *(volatile CARD32 *)(void *)(((CARD8*)(base)) + (offset)) #define MMIO_OUT32(base, offset, val) \ do { \ - *(volatile CARD32 *)(void *)(((CARD8*)(base)) + (offset)) = (val); \ write_mem_barrier(); \ + *(volatile CARD32 *)(void *)(((CARD8*)(base)) + (offset)) = (val); \ } while (0) #define MMIO_ONB32(base, offset, val) \ *(volatile CARD32 *)(void *)(((CARD8*)(base)) + (offset)) = (val) # endif + #define MMIO_OUT8(base, offset, val) \ (*xf86WriteMmio8)((CARD8)(val), base, offset) #define MMIO_OUT16(base, offset, val) \ @@ -1539,6 +1596,7 @@ (*xf86WriteMmioNB8)((CARD8)(val), base, offset) #define MMIO_ONB16(base, offset, val) \ (*xf86WriteMmioNB16)((CARD16)(val), base, offset) + #elif defined(__powerpc__) /* * we provide byteswapping and no byteswapping functions here @@ -1550,6 +1608,7 @@ xf86WriteMmio8(base, offset, (CARD8)(val)) # define MMIO_ONB8(base, offset, val) \ xf86WriteMmioNB8(base, offset, (CARD8)(val)) + # if defined(PPC_MMIO_IS_BE) /* No byteswapping */ # define MMIO_IN16(base, offset) xf86ReadMmio16Be(base, offset) # define MMIO_IN32(base, offset) xf86ReadMmio32Be(base, offset) @@ -1573,6 +1632,7 @@ # define MMIO_ONB32(base, offset, val) \ xf86WriteMmioNB32Le(base, offset, (CARD32)(val)) # endif + static __inline__ void ppc_flush_icache(char *addr) { __asm__ volatile ( @@ -1597,6 +1657,7 @@ xf86WriteMmio8(base, offset, (CARD8)(val)) # define MMIO_ONB8(base, offset, val) \ xf86WriteMmio8NB(base, offset, (CARD8)(val)) + # if defined(SPARC_MMIO_IS_BE) /* No byteswapping */ # define MMIO_IN16(base, offset) xf86ReadMmio16Be(base, offset) # define MMIO_IN32(base, offset) xf86ReadMmio32Be(base, offset) @@ -1620,7 +1681,9 @@ # define MMIO_ONB32(base, offset, val) \ xf86WriteMmio32LeNB(base, offset, (CARD32)(val)) # endif + #else /* !__alpha__ && !__powerpc__ && !__sparc__ */ + #define MMIO_IN8(base, offset) \ *(volatile CARD8 *)(((CARD8*)(base)) + (offset)) #define MMIO_IN16(base, offset) \ @@ -1636,6 +1699,7 @@ #define MMIO_ONB8(base, offset, val) MMIO_OUT8(base, offset, val) #define MMIO_ONB16(base, offset, val) MMIO_OUT16(base, offset, val) #define MMIO_ONB32(base, offset, val) MMIO_OUT32(base, offset, val) + #endif /* __alpha__ */ /* Index: xc/programs/Xserver/hw/xfree86/common/modeline2c.pl diff -u xc/programs/Xserver/hw/xfree86/common/modeline2c.pl:1.3 xc/programs/Xserver/hw/xfree86/common/modeline2c.pl:1.7 --- xc/programs/Xserver/hw/xfree86/common/modeline2c.pl:1.3 Thu Nov 18 11:52:06 1999 +++ xc/programs/Xserver/hw/xfree86/common/modeline2c.pl Fri Apr 6 20:50:15 2001 @@ -1,6 +1,6 @@ #!/usr/bin/perl -# automatically generate the xf86DefaultModes.c file from a normal +# automatically generate the xf86DefModeSet.c file from a normal # XF86Config style file of Modelines # # run as @@ -8,11 +8,11 @@ # perl /modeline2c.pl < [modesfile] > xf86DefModes.c # # hackish perl - author Dirk Hohndel -# Copyright 1999 by The XFree86 Project, Inc. +# Copyright 1999-2001 by The XFree86 Project, Inc. # -# $XFree86: xc/programs/Xserver/hw/xfree86/common/modeline2c.pl,v 1.3 1999/11/18 16:52:06 tsi Exp $ +# $XFree86: xc/programs/Xserver/hw/xfree86/common/modeline2c.pl,v 1.7 2001/04/07 00:50:15 dawes Exp $ -my %flagshash; +#my %flagshash; $flagshash{""} = "0"; # $flagshash{"Interlace"} = "V_INTERLACE"; # $flagshash{"+hsync"} = "V_PHSYNC"; @@ -24,14 +24,14 @@ $flagshash{"+hsync -vsync"} = "V_PHSYNC | V_NVSYNC"; $flagshash{"-hsync +vsync"} = "V_NHSYNC | V_PVSYNC"; $flagshash{"-hsync -vsync"} = "V_NHSYNC | V_NVSYNC"; -$flagshash{"+hsync +vsync Interlace"} = "V_PHSYNC | V_PVSYNC | V_INTERLACE"; -$flagshash{"+hsync -vsync Interlace"} = "V_PHSYNC | V_NVSYNC | V_INTERLACE"; -$flagshash{"-hsync +vsync Interlace"} = "V_NHSYNC | V_PVSYNC | V_INTERLACE"; -$flagshash{"-hsync -vsync Interlace"} = "V_NHSYNC | V_NVSYNC | V_INTERLACE"; +$flagshash{"+hsync +vsync interlace"} = "V_PHSYNC | V_PVSYNC | V_INTERLACE"; +$flagshash{"+hsync -vsync interlace"} = "V_PHSYNC | V_NVSYNC | V_INTERLACE"; +$flagshash{"-hsync +vsync interlace"} = "V_NHSYNC | V_PVSYNC | V_INTERLACE"; +$flagshash{"-hsync -vsync interlace"} = "V_NHSYNC | V_NVSYNC | V_INTERLACE"; # stop CVS from expanding the XFree86 Id here... -my $proj = "XFree86"; +$proj = "XFree86"; printf("/* \$$proj: \$ */ /* THIS FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT -- LOOK at @@ -45,14 +45,13 @@ #include \"xf86.h\" #include \"xf86Config.h\" -#define NO_COMPILER_H_EXTRAS #include \"xf86Priv.h\" #include \"xf86_OSlib.h\" #include \"globals.h\" #define MODEPREFIX(name) NULL, NULL, name, 0,M_T_DEFAULT -#define MODESUFFIX 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,FALSE,FALSE,0,NULL,0,0.0,0.0 +#define MODESUFFIX 0,0, 0,0,0,0,0,0,0, 0,0,0,0,0,0,FALSE,FALSE,0,NULL,0,0.0,0.0 DisplayModeRec xf86DefaultModes [] = { "); @@ -62,10 +61,11 @@ chop; print "/*" . $_ . " */\n"; } - if (/^ModeLine\s+(\S+)\s+([\d.\s]+)(.*)/) { - my $name = $1; - my $values = $2; - my $flags = $3; + if (/^ModeLine\s+(\S+)\s+([\d.\s]+)(.*)/i) { + $name = $1; + $values = $2; + $flags = $3; + $flags =~ y/A-Z/a-z/; $values =~ /([\d.]+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)\s+(\d+)/; printf("\t{MODEPREFIX(%s),%d, %d,%d,%d,%d,0, %d,%d,%d,%d,0, %s, MODESUFFIX},\n", $name,$1*1000,$2,$3,$4,$5,$6,$7,$8,$9,$flagshash{$flags}); Index: xc/programs/Xserver/hw/xfree86/common/xf86.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86.h:3.147 xc/programs/Xserver/hw/xfree86/common/xf86.h:3.152 --- xc/programs/Xserver/hw/xfree86/common/xf86.h:3.147 Thu Dec 7 15:26:19 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86.h Wed May 16 16:08:35 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86.h,v 3.147 2000/12/07 20:26:19 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86.h,v 3.152 2001/05/16 20:08:35 paulo Exp $ */ /* * Copyright (c) 1997 by The XFree86 Project, Inc. @@ -42,6 +42,8 @@ #ifdef __sparc__ extern Bool sbusSlotClaimed; #endif +extern confDRIRec xf86ConfigDRI; + #define XF86SCRNINFO(p) ((ScrnInfoPtr)((p)->devPrivates[xf86ScreenIndex].ptr)) #define XF86FLIP_PIXELS() \ @@ -134,6 +136,7 @@ char n, pciVideoPtr pvp_exclude); pciVideoPtr xf86FindPciClass(CARD8 intf, CARD8 subClass, CARD16 class, char n, pciVideoPtr pvp_exclude); +void xf86EnablePciBusMaster(pciVideoPtr pPci, Bool enable); void xf86RegisterStateChangeNotificationCallback(xf86StateChangeNotificationCallbackFunc func, pointer arg); Bool xf86DeregisterStateChangeNotificationCallback(xf86StateChangeNotificationCallbackFunc func); #ifdef async @@ -308,6 +311,11 @@ int format, unsigned long len, pointer value); Bool xf86IsUnblank(int mode); + +#ifdef XFree86LOADER +void xf86AddModuleInfo(ModuleInfoPtr info, pointer module); +void xf86DeleteModuleInfo(int idx); +#endif /* xf86Debug.c */ #ifdef BUILDDEBUG Index: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Bus.c:1.56 xc/programs/Xserver/hw/xfree86/common/xf86Bus.c:1.61.2.2 --- xc/programs/Xserver/hw/xfree86/common/xf86Bus.c:1.56 Wed Dec 6 10:35:07 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Bus.c Sat Jun 2 11:27:54 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.56 2000/12/06 15:35:07 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.c,v 1.61.2.2 2001/06/02 15:27:54 dawes Exp $ */ /* * Copyright (c) 1997-1999 by The XFree86 Project, Inc. */ @@ -46,22 +46,23 @@ #endif /* resource lists */ -resPtr Acc = NULL; +resPtr Acc = NULL; +resPtr osRes = NULL; /* allocatable ranges */ resPtr ResRange = NULL; /* predefined special resources */ -resRange resVgaExclusive[] = {_VGA_EXCLUSIVE, _END}; -resRange resVgaShared[] = {_VGA_SHARED, _END}; -resRange resVgaMemShared[] = {_VGA_SHARED_MEM,_END}; -resRange resVgaIoShared[] = {_VGA_SHARED_IO,_END}; -resRange resVgaUnusedExclusive[] = {_VGA_EXCLUSIVE_UNUSED, _END}; -resRange resVgaUnusedShared[] = {_VGA_SHARED_UNUSED, _END}; -resRange resVgaSparseExclusive[] = {_VGA_EXCLUSIVE_SPARSE, _END}; -resRange resVgaSparseShared[] = {_VGA_SHARED_SPARSE, _END}; -resRange res8514Exclusive[] = {_8514_EXCLUSIVE, _END}; -resRange res8514Shared[] = {_8514_SHARED, _END}; +const resRange resVgaExclusive[] = {_VGA_EXCLUSIVE, _END}; +const resRange resVgaShared[] = {_VGA_SHARED, _END}; +const resRange resVgaMemShared[] = {_VGA_SHARED_MEM,_END}; +const resRange resVgaIoShared[] = {_VGA_SHARED_IO,_END}; +const resRange resVgaUnusedExclusive[] = {_VGA_EXCLUSIVE_UNUSED, _END}; +const resRange resVgaUnusedShared[] = {_VGA_SHARED_UNUSED, _END}; +const resRange resVgaSparseExclusive[] = {_VGA_EXCLUSIVE_SPARSE, _END}; +const resRange resVgaSparseShared[] = {_VGA_SHARED_SPARSE, _END}; +const resRange res8514Exclusive[] = {_8514_EXCLUSIVE, _END}; +const resRange res8514Shared[] = {_8514_SHARED, _END}; /* Flag: do we need RAC ? */ static Bool needRAC = FALSE; @@ -225,12 +226,13 @@ switch (pEnt->busType) { case BUS_PCI: - return (primaryBus.type == BUS_PCI && - pEnt->pciBusId.bus == primaryBus.id.pci.bus && + return (pEnt->pciBusId.bus == primaryBus.id.pci.bus && pEnt->pciBusId.device == primaryBus.id.pci.device && pEnt->pciBusId.func == primaryBus.id.pci.func); case BUS_ISA: - return ( primaryBus.type == BUS_ISA ); + return TRUE; + case BUS_SBUS: + return (pEnt->sbusBusId.fbNum == primaryBus.id.sbus.fbNum); default: return FALSE; } @@ -443,7 +445,8 @@ pEnt->chipset = xf86Entities[entityIndex]->chipset; pEnt->resources = xf86Entities[entityIndex]->resources; pEnt->driver = xf86Entities[entityIndex]->driver; - if (xf86Entities[entityIndex]->devices[0]) { + if ( (xf86Entities[entityIndex]->devices) && + (xf86Entities[entityIndex]->devices[0]) ) { for (i = 0; i < xf86Entities[entityIndex]->numInstances; i++) if (xf86Entities[entityIndex]->devices[i]->screen == 0) break; @@ -469,7 +472,8 @@ int i; /* We might not use AddDevtoEntity */ - if (!xf86Entities[entityIndex]->devices[0]) + if ( (!xf86Entities[entityIndex]->devices) || + (!xf86Entities[entityIndex]->devices[0]) ) return NULL; if (entityIndex >= xf86NumEntities || @@ -1363,7 +1367,8 @@ xf86ResourceBrokerInit(void) { resPtr resPci; - resPtr osRes = NULL; + + osRes = NULL; /* Get the addressable ranges */ ResRange = xf86BusAccWindowsFromOS(); @@ -1371,14 +1376,13 @@ xf86PrintResList(3, ResRange); /* Get the ranges used exclusively by the system */ - osRes = xf86AccResFromOS(osRes); /*these need to be in host address space*/ + osRes = xf86AccResFromOS(osRes); xf86MsgVerb(X_INFO, 3, "OS-reported resource ranges:\n"); xf86PrintResList(3, osRes); /* Bus dep initialization */ resPci = ResourceBrokerInitPci(&osRes); - Acc = xf86JoinResLists(osRes, resPci); - + Acc = xf86JoinResLists(xf86DupResList(osRes), resPci); xf86MsgVerb(X_INFO, 3, "All system resource ranges:\n"); xf86PrintResList(3, Acc); @@ -1395,7 +1399,7 @@ * only deals with exclusive resources. */ void -RemoveOverlaps(resPtr target, resPtr list, Bool pow2Alignment) +RemoveOverlaps(resPtr target, resPtr list, Bool pow2Alignment, Bool useEstimated) { resPtr pRes; memType size, newsize, adjust; @@ -1406,24 +1410,24 @@ (target->res_type & ResPhysMask)) && pRes->block_begin <= target->block_end && pRes->block_end >= target->block_begin) { + /* Possibly ignore estimated resources */ + if (!useEstimated && (pRes->res_type & ResEstimated)) continue; /* - * target should be a larger region than pRes. If pRes fully + * Target should be a larger region than pRes. If pRes fully * contains target, don't do anything. */ if (pRes->block_begin <= target->block_begin && pRes->block_end >= target->block_end) continue; /* - * cases where the target and pRes have the same starting address - * cannot be resolved, so skip them (with a warning). + * In cases where the target and pRes have the same starting + * address, reduce the size of the target (given it's an estimate). */ if (pRes->block_begin == target->block_begin) { - xf86MsgVerb(X_WARNING, 3, "Unresolvable overlap at 0x%08x\n", - pRes->block_begin); - continue; + target->block_end = pRes->block_end; } /* Otherwise, trim target to remove the overlap */ - if (pRes->block_begin <= target->block_end) { + else if (pRes->block_begin <= target->block_end) { target->block_end = pRes->block_begin - 1; } else if (!pow2Alignment && pRes->block_end >= target->block_begin) { @@ -1708,11 +1712,13 @@ { resPtr res = NULL; resRange range; - + resList list_f = NULL; + if (!list) { list = xf86GetResourcesImplicitly(entityIndex); /* these resources have to be in host address space already */ if (!list) return NULL; + list_f = list; } while(list->type != ResEnd) { @@ -1725,13 +1731,20 @@ range.type = (range.type & ~ResAccMask) | (access & ResAccMask); } range.type &= ~ResEstimated; /* Not allowed for drivers */ +#if !(defined(__alpha__) && defined(linux)) + /* On Alpha Linux, do not check for conflicts, trust the kernel. */ if (checkConflict(&range, Acc, entityIndex, SETUP,TRUE)) res = xf86AddResToList(res,&range,entityIndex); - else { + else +#endif + { Acc = xf86AddResToList(Acc,&range,entityIndex); } list++; } + if (list_f) + xfree(list_f); + #ifdef DEBUG xf86MsgVerb(X_INFO, 3,"Resources after driver initialization\n"); xf86PrintResList(3, Acc); @@ -2071,6 +2084,8 @@ * xf86EnterServerState() -- set state the server is in. */ +typedef enum { TRI_UNSET, TRI_TRUE, TRI_FALSE } TriState; + void xf86EnterServerState(xf86State state) { @@ -2078,13 +2093,29 @@ ScrnInfoPtr pScrn; int i,j; resType rt; + static int sigio_state; + static TriState sigio_blocked = TRI_UNSET; + /* + * This is a good place to block SIGIO during SETUP state. + * SIGIO should be blocked in SETUP state otherwise (u)sleep() + * might get interrupted early. + * We take care not to call xf86BlockSIGIO() twice. + */ + if ((state == SETUP) && (sigio_blocked != TRI_TRUE)) { + sigio_state = xf86BlockSIGIO(); + sigio_blocked = TRI_TRUE; + } else if ((state == OPERATING) && (sigio_blocked != TRI_UNSET)) { + xf86UnblockSIGIO(sigio_state); + sigio_blocked = TRI_FALSE; + } #ifdef DEBUG if (state == SETUP) ErrorF("Entering SETUP state\n"); else ErrorF("Entering OPERATING state\n"); #endif + /* When servicing a dump framebuffer we don't need to do anything */ if (doFramebufferMode) return; @@ -2454,7 +2485,10 @@ } xf86FreeResList(acc); +#if !(defined(__alpha__) && defined(linux)) + /* No need to validate on Alpha Linux, trust the kernel. */ ValidatePci(); +#endif xf86MsgVerb(X_INFO, 3, "resource ranges after probing:\n"); xf86PrintResList(3, Acc); @@ -2973,13 +3007,13 @@ CheckGenericGA(); if (primaryBus.type != BUS_NONE) { char *bus; - char *loc = xnfcalloc(1,8); + char *loc = xnfcalloc(1,9); if (loc == NULL) return; switch (primaryBus.type) { case BUS_PCI: bus = "PCI"; - sprintf(loc,"%2.2x:%2.2x:%1.1x",primaryBus.id.pci.bus, + sprintf(loc," %2.2x:%2.2x:%1.1x",primaryBus.id.pci.bus, primaryBus.id.pci.device,primaryBus.id.pci.func); break; case BUS_ISA: @@ -2988,14 +3022,14 @@ break; case BUS_SBUS: bus = "SBUS"; - sprintf(loc,"%2.2x",primaryBus.id.sbus.fbNum); + sprintf(loc," %2.2x",primaryBus.id.sbus.fbNum); break; default: bus = ""; loc[0] = '\0'; } - xf86MsgVerb(X_INFO, 2, "Primary Device is: %s %s\n",bus,loc); + xf86MsgVerb(X_INFO, 2, "Primary Device is: %s%s\n",bus,loc); xfree(loc); } Index: xc/programs/Xserver/hw/xfree86/common/xf86Bus.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86Bus.h:1.16 xc/programs/Xserver/hw/xfree86/common/xf86Bus.h:1.18 --- xc/programs/Xserver/hw/xfree86/common/xf86Bus.h:1.16 Tue Jun 20 01:08:43 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Bus.h Sun Feb 11 20:25:23 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.h,v 1.16 2000/06/20 05:08:43 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Bus.h,v 1.18 2001/02/12 01:25:23 tsi Exp $ */ /* * Copyright (c) 1997 by The XFree86 Project, Inc. */ @@ -113,6 +113,7 @@ extern xf86AccessRec AccessNULL; extern BusRec primaryBus; extern resPtr Acc; +extern resPtr osRes; extern resPtr ResRange; extern BusAccPtr xf86BusAccInfo; @@ -124,7 +125,8 @@ resPtr xf86ExtractTypeFromList(resPtr list, unsigned long type); resPtr findIntersect(resRange Range, resPtr list); resPtr xf86FindIntersect(resRange Range, resPtr list); -void RemoveOverlaps(resPtr target, resPtr list, Bool pow2Alignment); +void RemoveOverlaps(resPtr target, resPtr list, Bool pow2Alignment, + Bool useEstimated); void xf86ConvertListToHost(int entityIndex, resPtr list); #endif /* _XF86_BUS_H */ Index: xc/programs/Xserver/hw/xfree86/common/xf86Config.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Config.c:3.236 xc/programs/Xserver/hw/xfree86/common/xf86Config.c:3.242 --- xc/programs/Xserver/hw/xfree86/common/xf86Config.c:3.236 Wed Dec 6 10:35:07 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Config.c Wed May 16 16:08:35 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 3.236 2000/12/06 15:35:07 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Config.c,v 3.242 2001/05/16 20:08:35 paulo Exp $ */ /* @@ -23,7 +23,6 @@ #include "xf86Parser.h" #include "xf86tokens.h" #include "xf86Config.h" -#define NO_COMPILER_H_EXTRAS #include "xf86Priv.h" #include "xf86_OSlib.h" @@ -455,6 +454,7 @@ const char *subdirs[] = {NULL, NULL}; static const char *patlist[] = {"(.*)_drv\\.so", "(.*)_drv\\.o", NULL}; char **dlist, **clist, **dcp, **ccp; + int size; subdirs[0] = dirname; @@ -469,13 +469,16 @@ /* The resulting list cannot be longer than the module list */ for (dcp = dlist, count = 0; *dcp++; count++); - driverlist = (char **)xnfalloc((count + 1) * sizeof(char *)); + driverlist = (char **)xnfalloc((size = 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; + if (count >= size) + driverlist = (char**) + xnfrealloc(driverlist, ++size * sizeof(char*)); break; } if (!strcmp(*ccp, *dcp)) @@ -488,6 +491,9 @@ for (dcp = dlist; *dcp; dcp++) { if (!strcmp(*ccp, *dcp)) { driverlist[count++] = *ccp; + if (count >= size) + driverlist = (char**) + xnfrealloc(driverlist, ++size * sizeof(char*)); break; } } @@ -775,14 +781,12 @@ Bool value; MessageType from; - if(flagsconf == NULL) - return TRUE; /* * Merge the ServerLayout and ServerFlags options. The former have * precedence over the latter. */ optp = NULL; - if (flagsconf->flg_option_lst) + if (flagsconf && flagsconf->flg_option_lst) optp = xf86optionListDup(flagsconf->flg_option_lst); if (layoutopts) { tmp = xf86optionListDup(layoutopts); @@ -939,9 +943,9 @@ configInputKbd(IDevPtr inputp) { char *s; -#ifdef XKB MessageType from = X_DEFAULT; -#endif + Bool customKeycodesDefault = FALSE; + int verb = 0; /* Initialize defaults */ xf86Info.xleds = 0L; @@ -954,6 +958,7 @@ #if defined(SVR4) && defined(i386) xf86Info.panix106 = FALSE; #endif + xf86Info.kbdCustomKeycodes = FALSE; #ifdef XKB if (!xf86IsPc98()) { xf86Info.xkbrules = "xfree86"; @@ -986,28 +991,34 @@ #else xf86Info.kbdEvents = xf86KbdEvents; #endif + xfree(s); } else if (xf86NameCmp(s, "xqueue") == 0) { #ifdef XQUEUE xf86Info.kbdProc = xf86XqueKbdProc; xf86Info.kbdEvents = xf86XqueEvents; xf86Msg(X_CONFIG, "Xqueue selected for keyboard input\n"); #endif + xfree(s); #ifdef WSCONS_SUPPORT } else if (xf86NameCmp(s, "wskbd") == 0) { int xf86WSKbdProc(DeviceIntPtr, int); xf86Info.kbdProc = xf86WSKbdProc; xf86Info.kbdEvents = xf86KbdEvents; + xfree(s); s = xf86SetStrOption(inputp->commonOptions, "Device", NULL); xf86Msg(X_CONFIG, "Keyboard: Protocol: wskbd\n"); xf86Info.kbdFd = open(s, O_RDONLY | O_NONBLOCK | O_EXCL); if (xf86Info.kbdFd == -1) { xf86ConfigError("cannot open \"%s\"", s); + xfree(s); return FALSE; } + xfree(s); #endif } else { xf86ConfigError("\"%s\" is not a valid keyboard protocol name", s); + xfree(s); return FALSE; } @@ -1015,9 +1026,12 @@ if (s) { if (sscanf(s, "%d %d", &xf86Info.kbdDelay, &xf86Info.kbdRate) != 2) { xf86ConfigError("\"%s\" is not a valid AutoRepeat value", s); + xfree(s); return FALSE; } + xfree(s); } + s = xf86SetStrOption(inputp->commonOptions, "XLeds", NULL); if (s) { char *l, *end; @@ -1029,10 +1043,12 @@ xf86Info.xleds |= 1L << (i - 1); else { xf86ConfigError("\"%s\" is not a valid XLeds value", l); + xfree(s); return FALSE; } l = strtok(NULL, " \t\n"); } + xfree(s); } #ifdef XKB @@ -1047,7 +1063,7 @@ if (noXkbExtension) xf86Msg(from, "XKB: disabled\n"); -#define NULL_IF_EMPTY(s) (s[0] ? s : NULL) +#define NULL_IF_EMPTY(s) (s[0] ? s : (xfree(s), NULL)) if (!noXkbExtension && !XkbInitialMap) { if ((s = xf86SetStrOption(inputp->commonOptions, "XkbKeymap", NULL))) { @@ -1125,6 +1141,39 @@ } #endif + /* + * This was once a compile time option (ASSUME_CUSTOM_KEYCODES) + * defaulting to 1 on Linux/PPC. It is no longer necessary, but for + * backwards compatibility we provide 'Option "CustomKeycodes"' + * and try to autoprobe on Linux/PPC. + */ + from = X_DEFAULT; + verb = 2; +#if defined(__linux__) && defined(__powerpc__) + { + FILE *f; + + f = fopen("/proc/sys/dev/mac_hid/keyboard_sends_linux_keycodes","r"); + if (f) { + if (fgetc(f) == '0') { + customKeycodesDefault = TRUE; + from = X_PROBED; + verb = 1; + } + fclose(f); + } + } +#endif + if (xf86FindOption(inputp->commonOptions, "CustomKeycodes")) { + from = X_CONFIG; + verb = 1; + } + xf86Info.kbdCustomKeycodes = + xf86SetBoolOption(inputp->commonOptions, "CustomKeycodes", + customKeycodesDefault); + xf86MsgVerb(from, verb, "Keyboard: CustomKeycode %s\n", + xf86Info.kbdCustomKeycodes ? "enabled" : "disabled"); + return TRUE; } @@ -2060,6 +2109,7 @@ X_INFO_STRING " informational,\n" " " X_WARNING_STRING " warning, " X_ERROR_STRING " error, " + X_NOT_IMPLEMENTED_STRING " not implemented, " X_UNKNOWN_STRING " unknown.\n"); /* Index: xc/programs/Xserver/hw/xfree86/common/xf86Configure.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Configure.c:3.49 xc/programs/Xserver/hw/xfree86/common/xf86Configure.c:3.55 --- xc/programs/Xserver/hw/xfree86/common/xf86Configure.c:3.49 Tue Dec 12 13:23:50 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Configure.c Mon May 7 17:38:51 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Configure.c,v 3.49 2000/12/12 18:23:50 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Configure.c,v 3.55 2001/05/07 21:38:51 tsi Exp $ */ /* * Copyright 2000 by Alan Hourihane, Sychdyn, North Wales. * @@ -161,10 +161,10 @@ i = nDevToConfig++; DevToConfig = xnfrealloc(DevToConfig, nDevToConfig * sizeof(DevToConfigRec)); -#if 0 /* Doesn't work when a driver detects more than one adapter */ - if (i > 0 && isPrimary) { +#if 1 /* Doesn't work when a driver detects more than one adapter */ + if ((i > 0) && isPrimary) { memmove(DevToConfig + 1,DevToConfig, - (nDevToConfig - 1) * sizeof(DevToConfigRec)); + (nDevToConfig - 1) * sizeof(DevToConfigRec)); i = 0; } #endif @@ -213,7 +213,7 @@ # undef CardName if (chipset < 0) - chipset = (pVideo->vendor << 16) || pVideo->chipType; + chipset = (pVideo->vendor << 16) | pVideo->chipType; } break; case BUS_ISA: @@ -246,7 +246,7 @@ /* Get driver's available options */ if (xf86DriverList[CurrentDriver]->AvailableOptions) - NewDevice.GDev.options = + NewDevice.GDev.options = (OptionInfoPtr) (*xf86DriverList[CurrentDriver]->AvailableOptions)(chipset, bus); @@ -288,6 +288,14 @@ DFLT_MOUSE_PROTO = "PS/2"; } #endif +#ifdef WSCONS_SUPPORT + fd = open("/dev/wsmouse0", 0); + if (fd > 0) { + DFLT_MOUSE_DEV = "/dev/wsmouse0"; + DFLT_MOUSE_PROTO = "wsmouse"; + close(fd); + } +#endif fd = open(DFLT_MOUSE_DEV, 0); if (fd != -1) { @@ -358,6 +366,29 @@ return ptr; } +static char* +optionTypeToSting(OptionValueType type) +{ + switch (type) { + case OPTV_NONE: + return ""; + case OPTV_INTEGER: + return ""; + case OPTV_STRING: + return ""; + case OPTV_ANYSTR: + return "[]"; + case OPTV_REAL: + return ""; + case OPTV_BOOLEAN: + return "[]"; + case OPTV_FREQ: + return ""; + default: + return ""; + } +} + static XF86ConfDevicePtr configureDeviceSection (int screennum) { @@ -395,14 +426,23 @@ /* Make sure older drivers don't segv */ if (DevToConfig[screennum].GDev.options) { /* Fill in the available driver options for people to use */ - ptr->dev_comment = xnfalloc(32 + 1); + ptr->dev_comment = xnfalloc(240 + 1); strcpy(ptr->dev_comment, "Available Driver options are:-\n"); + strcat(ptr->dev_comment, " ### Values: : integer, : " + "float, : \"True\"/\"False\",\n" + " ### : \"String\", " + ": \" Hz/kHz/MHz\"\n"); + strcat(ptr->dev_comment, " ### [arg]: arg optional\n"); for (p = DevToConfig[screennum].GDev.options; p->name != NULL; p++) { + char *optname = xnfalloc(strlen(p->name) + 6); + char *p_e; ptr->dev_comment = xrealloc(ptr->dev_comment, - strlen(ptr->dev_comment) + strlen(p->name) + 24 + 1); - strcat(ptr->dev_comment, " #Option \""); - strcat(ptr->dev_comment, p->name); - strcat(ptr->dev_comment, "\"\n"); + strlen(ptr->dev_comment) + 80 + 1); + p_e = ptr->dev_comment + strlen(ptr->dev_comment); + sprintf(optname,"\"%s\"",p->name); + sprintf(p_e, " #Option %-20s \t# %s\n", + optname, optionTypeToSting(p->type)); + xfree(optname); } } @@ -546,7 +586,9 @@ module = xf86confmalloc(sizeof(XF86LoadRec)); memset((XF86LoadPtr)module,0,sizeof(XF86LoadRec)); module->load_name = *el; - ptr->mod_load_lst = (XF86LoadPtr)xf86addListItem( + /* HACK, remove GLcore, glx, loads it as a submodule */ + if (strcmp(*el, "GLcore")) + ptr->mod_load_lst = (XF86LoadPtr)xf86addListItem( (glp)ptr->mod_load_lst, (glp)module); } xfree(elist); @@ -603,7 +645,12 @@ case DT: case DS_STD_TIMINGS: case DS_WHITE_P: + break; case DS_NAME: + xfree(ptr->mon_modelname); + ptr->mon_modelname = + strdup((char*)(ConfiguredMonitor->det_mon[i].section.name)); + break; case DS_ASCII_STR: case DS_SERIAL: break; @@ -633,6 +680,7 @@ char *filename = NULL; XF86ConfigPtr xf86config = NULL; char **vlist, **vl; + int *dev2screen; vlist = xf86DriverlistFromCompile(); @@ -739,16 +787,48 @@ xf86DoConfigurePass1 = FALSE; + dev2screen = xnfcalloc(1,xf86NumDrivers*sizeof(int)); + { Bool *driverProbed = xnfcalloc(1,xf86NumDrivers*sizeof(Bool)); for (screennum = 0; screennum < nDevToConfig; screennum++) { + int k,l,n,oldNumScreens; + i = DevToConfig[screennum].iDriver; - + if (driverProbed[i]) continue; driverProbed[i] = TRUE; + + oldNumScreens = xf86NumScreens; (*xf86DriverList[i]->Probe)(xf86DriverList[i], 0); + /* reorder */ + k = screennum > 0 ? screennum : 1; + for (l = oldNumScreens; l < xf86NumScreens; l++) { + /* is screen primary? */ + Bool primary = FALSE; + for (n = 0; nnumEntities; n++) { + if (xf86IsEntityPrimary(xf86Screens[l]->entityList[n])) { + dev2screen[0] = l; + primary = TRUE; + break; + } + } + if (primary) continue; + /* not primary: assign it to next device of same driver */ + /* + * NOTE: we assume that devices in DevToConfig + * and xf86Screens[] have the same order except + * for the primary device which always comes first. + */ + for (; k < nDevToConfig; k++) { + if (DevToConfig[k].iDriver == i) { + dev2screen[k++] = l; + break; + } + } + } xf86SetPciVideo(NULL,NONE); } xfree(driverProbed); @@ -778,8 +858,9 @@ ConfiguredMonitor = NULL; - xf86EnableAccess(xf86Screens[j]); - if ((*xf86Screens[j]->PreInit)(xf86Screens[j], PROBE_DETECT) && + xf86EnableAccess(xf86Screens[dev2screen[j]]); + if ((*xf86Screens[dev2screen[j]]->PreInit)(xf86Screens[dev2screen[j]], + PROBE_DETECT) && ConfiguredMonitor) { MonitorPtr = configureDDCMonitorSection(j); } else { Index: xc/programs/Xserver/hw/xfree86/common/xf86Cursor.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Cursor.c:3.28 xc/programs/Xserver/hw/xfree86/common/xf86Cursor.c:3.29 --- xc/programs/Xserver/hw/xfree86/common/xf86Cursor.c:3.28 Fri Jun 23 20:33:54 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Cursor.c Tue May 8 23:12:01 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Cursor.c,v 3.28 2000/06/24 00:33:54 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Cursor.c,v 3.29 2001/05/09 03:12:01 tsi Exp $ */ /* $XConsortium: xf86Cursor.c /main/10 1996/10/19 17:58:23 kaleb $ */ #define NEED_EVENTS @@ -201,7 +201,7 @@ /* * adjust new frame for the displaysize */ - pScr->frameX0 = (pScr->frameX1 + pScr->frameX0 - + pScr->frameX0 = (pScr->frameX1 + pScr->frameX0 + 1 - pScr->currentMode->HDisplay) / 2; pScr->frameX1 = pScr->frameX0 + pScr->currentMode->HDisplay - 1; @@ -213,7 +213,7 @@ pScr->frameX1 = pScr->frameX0 + pScr->currentMode->HDisplay - 1; } - pScr->frameY0 = (pScr->frameY1 + pScr->frameY0 - + pScr->frameY0 = (pScr->frameY1 + pScr->frameY0 + 1 - pScr->currentMode->VDisplay) / 2; pScr->frameY1 = pScr->frameY0 + pScr->currentMode->VDisplay - 1; Index: xc/programs/Xserver/hw/xfree86/common/xf86DGA.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86DGA.c:1.37 xc/programs/Xserver/hw/xfree86/common/xf86DGA.c:1.40 --- xc/programs/Xserver/hw/xfree86/common/xf86DGA.c:1.37 Fri Jun 30 15:06:56 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86DGA.c Sat Mar 3 20:29:03 2001 @@ -3,7 +3,7 @@ Written by Mark Vojkovich */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DGA.c,v 1.37 2000/06/30 19:06:56 keithp Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DGA.c,v 1.40 2001/03/04 01:29:03 tsi Exp $ */ #include "xf86.h" #include "xf86str.h" @@ -42,7 +42,7 @@ XDGAModePtr xmode ); -#ifdef XFree86LOADER +#if defined(XFree86LOADER) || !defined(XFreeXDGA) int *XDGAEventBase = NULL; #else int *XDGAEventBase = &DGAEventBase; @@ -228,7 +228,7 @@ ScreenPtr pScreen = pmap->pScreen; DGAScreenPtr pScreenPriv = DGA_GET_SCREEN_PRIV(pScreen); - if(pScreenPriv->current) { + if(pScreenPriv->current && pScreenPriv->dgaColormap) { if (pmap != pScreenPriv->dgaColormap) { pScreenPriv->savedColormap = pmap; pmap = pScreenPriv->dgaColormap; @@ -266,7 +266,7 @@ pScreenPriv->current = NULL; pScrn->vtSema = TRUE; if(pScreenPriv->savedColormap) { - miInstalledMaps[index] = pScreenPriv->savedColormap; + (*pScreen->InstallColormap)(pScreenPriv->savedColormap); pScreenPriv->savedColormap = NULL; } pScreenPriv->dgaColormap = NULL; @@ -644,6 +644,7 @@ if(!pScreenPriv->dgaColormap) pScreenPriv->savedColormap = miInstalledMaps[pScreen->myNum]; + pScreenPriv->dgaColormap = cmap; (*pScreen->InstallColormap)(cmap); Index: xc/programs/Xserver/hw/xfree86/common/xf86DPMS.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86DPMS.c:1.5 xc/programs/Xserver/hw/xfree86/common/xf86DPMS.c:1.6 --- xc/programs/Xserver/hw/xfree86/common/xf86DPMS.c:1.5 Tue Sep 19 08:46:13 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86DPMS.c Thu May 10 06:17:39 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DPMS.c,v 1.5 2000/09/19 12:46:13 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DPMS.c,v 1.6 2001/05/10 10:17:39 alanh Exp $ */ /* * Copyright (c) 1997-1998 by The XFree86 Project, Inc. @@ -49,9 +49,9 @@ pDPMS->Flags = flags; DPMSOpt = xf86FindOption(xf86Screens[pScreen->myNum]->options, "dpms"); if (DPMSOpt) { - if (pDPMS->Enabled + if ((pDPMS->Enabled = xf86SetBoolOption(xf86Screens[pScreen->myNum]->options, - "dpms",FALSE) + "dpms",FALSE)) && !DPMSDisabledSwitch) DPMSEnabled = TRUE; xf86MarkOptionUsed(DPMSOpt); Index: xc/programs/Xserver/hw/xfree86/common/xf86DefModes.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86DefModes.c:1.4 xc/programs/Xserver/hw/xfree86/common/xf86DefModes.c:1.6 --- xc/programs/Xserver/hw/xfree86/common/xf86DefModes.c:1.4 Thu Nov 18 11:52:06 1999 +++ xc/programs/Xserver/hw/xfree86/common/xf86DefModes.c Thu Feb 15 13:20:33 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DefModes.c,v 1.4 1999/11/18 16:52:06 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86DefModes.c,v 1.6 2001/02/15 18:20:33 dawes Exp $ */ /* THIS FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT -- LOOK at * modeline2c.pl */ @@ -11,7 +11,6 @@ #include "xf86.h" #include "xf86Config.h" -#define NO_COMPILER_H_EXTRAS #include "xf86Priv.h" #include "xf86_OSlib.h" @@ -89,5 +88,9 @@ {MODEPREFIX("1920x1440"),234000, 1920,2048,2256,2600,0, 1440,1441,1444,1500,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, /* 1920x1440 @ 75Hz (VESA) hsync: 112.5kHz */ {MODEPREFIX("1920x1440"),297000, 1920,2064,2288,2640,0, 1440,1441,1444,1500,0, V_NHSYNC | V_PVSYNC, MODESUFFIX}, +/* 1400x1050 @ 60Hz (VESA GFT) hsync: 65.5kHz */ + {MODEPREFIX("1400x1050"),122000, 1400,1488,1640,1880,0, 1050,1052,1064,1082,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, +/* 1400x1050 @ 75Hz (VESA GFT) hsync: 82.2kHz */ + {MODEPREFIX("1400x1050"),155800, 1400,1464,1784,1912,0, 1050,1052,1064,1090,0, V_PHSYNC | V_PVSYNC, MODESUFFIX}, {MODEPREFIX(NULL),0,0,0,0,0,0,0,0,0,0,0,0,MODESUFFIX} }; Index: xc/programs/Xserver/hw/xfree86/common/xf86Events.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Events.c:3.104 xc/programs/Xserver/hw/xfree86/common/xf86Events.c:3.109 --- xc/programs/Xserver/hw/xfree86/common/xf86Events.c:3.104 Thu Dec 7 15:32:54 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Events.c Fri May 18 12:03:10 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Events.c,v 3.104 2000/12/07 20:32:54 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Events.c,v 3.109 2001/05/18 16:03:10 tsi Exp $ */ /* * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. * @@ -295,11 +295,14 @@ * ifdefs further (hv). */ -#ifdef ASSUME_CUSTOM_KEYCODES +#ifdef __linux__ extern u_char SpecialServerMap[]; -#endif /* ASSUME_CUSTOM_KEYCODES */ +#endif -#if !defined(__EMX__) && !defined(__SOL8__) && !defined(__CYGWIN__) +#if !defined(__EMX__) && \ + !defined(__SOL8__) && \ + (!defined(sun) || defined(i386)) && \ + !defined(__CYGWIN__) void xf86PostKbdEvent(unsigned key) { @@ -347,30 +350,27 @@ * PANIX returns DICOP standards based keycodes in using 106jp * keyboard. We need to remap some keys. */ -#define KEY_P_UP 0x5A -#define KEY_P_PGUP 0x5B -#define KEY_P_LEFT 0x5C -#define KEY_P_BKSL 0x73 -#define KEY_P_YEN 0x7D -#define KEY_P_NFER 0x7B -#define KEY_P_XFER 0x79 - if(xf86Info.panix106 == TRUE){ switch (scanCode) { - /* case 0x78: scanCode = KEY_P_UP; break; not needed*/ - case 0x56: scanCode = KEY_P_BKSL; break; /* Backslash */ - case 0x5A: scanCode = KEY_P_NFER; break; /* No Kanji Transfer*/ - case 0x5B: scanCode = KEY_P_XFER; break; /* Kanji Tranfer */ - case 0x5C: scanCode = KEY_P_YEN; break; /* Yen curs pgup */ - case 0x6B: scanCode = KEY_P_LEFT; break; /* Cur Left */ - case 0x6F: scanCode = KEY_P_PGUP; break; /* Cur PageUp */ + case 0x56: scanCode = KEY_BSlash2; break; /* Backslash */ + case 0x5A: scanCode = KEY_NFER; break; /* No Kanji Transfer*/ + case 0x5B: scanCode = KEY_XFER; break; /* Kanji Tranfer */ + case 0x5C: scanCode = KEY_Yen; break; /* Yen curs pgup */ + case 0x6B: scanCode = KEY_Left; break; /* Cur Left */ + case 0x6F: scanCode = KEY_PgUp; break; /* Cur PageUp */ case 0x72: scanCode = KEY_AltLang; break; /* AltLang(right) */ case 0x73: scanCode = KEY_RCtrl; break; /* not needed */ } } #endif /* i386 && SVR4 */ -#ifndef ASSUME_CUSTOM_KEYCODES +#ifdef __linux__ + if (xf86Info.kbdCustomKeycodes) { + specialkey = SpecialServerMap[scanCode]; + goto customkeycodes; + } +#endif + /* * First do some special scancode remapping ... */ @@ -457,18 +457,14 @@ if (scanCode != KEY_NumLock) return; scanCode = KEY_Pause; /* pause */ } -#endif /* !ASSUME_CUSTOM_KEYCODES */ /* * and now get some special keysequences */ -#ifdef ASSUME_CUSTOM_KEYCODES - specialkey = SpecialServerMap[scanCode]; -#else /* ASSUME_CUSTOM_KEYCODES */ specialkey = scanCode; -#endif /* ASSUME_CUSTOM_KEYCODES */ +customkeycodes: if (xf86IsPc98()) { switch (scanCode) { case 0x0e: specialkey = 0x0e; break; /* KEY_BackSpace */ @@ -859,25 +855,31 @@ updateLeds = TRUE; } -#ifndef ASSUME_CUSTOM_KEYCODES - /* - * normal, non-keypad keys - */ - if (scanCode < KEY_KP_7 || scanCode > KEY_KP_Decimal) { -#if !defined(CSRG_BASED) && !defined(MACH386) && !defined(MINIX) && !defined(__OSF__) && !defined(__GNU__) && !defined(__CYGWIN__) + if (!xf86Info.kbdCustomKeycodes) { /* - * magic ALT_L key on AT84 keyboards for multilingual support + * normal, non-keypad keys */ - if (xf86Info.kbdType == KB_84 && - ModifierDown(AltMask) && - keysym[2] != NoSymbol) - { - UsePrefix = TRUE; - Direction = TRUE; - } + if (scanCode < KEY_KP_7 || scanCode > KEY_KP_Decimal) { +#if !defined(CSRG_BASED) && \ + !defined(MACH386) && \ + !defined(MINIX) && \ + !defined(__OSF__) && \ + !defined(__GNU__) && \ + !defined(__CYGWIN__) && \ + defined(KB_84) + /* + * magic ALT_L key on AT84 keyboards for multilingual support + */ + if (xf86Info.kbdType == KB_84 && + ModifierDown(AltMask) && + keysym[2] != NoSymbol) + { + UsePrefix = TRUE; + Direction = TRUE; + } #endif /* !CSRG_BASED && !MACH386 && !MINIX && !__OSF__ */ + } } -#endif /* !ASSUME_CUSTOM_KEYCODES */ if (updateLeds) xf86KbdLeds(); #ifdef XKB } Index: xc/programs/Xserver/hw/xfree86/common/xf86Globals.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Globals.c:1.28 xc/programs/Xserver/hw/xfree86/common/xf86Globals.c:1.32 --- xc/programs/Xserver/hw/xfree86/common/xf86Globals.c:1.28 Wed Mar 8 00:38:37 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Globals.c Fri May 18 12:03:11 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Globals.c,v 1.28 2000/03/08 05:38:37 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Globals.c,v 1.32 2001/05/18 16:03:11 tsi Exp $ */ /* * Copyright (c) 1997 by The XFree86 Project, Inc. @@ -138,7 +138,8 @@ FALSE, /* pc98 */ #endif TRUE, /* pmFlag */ - 0 /* estimateSizesAggressively */ + 0, /* estimateSizesAggressively */ + FALSE /* kbdCustomKeycodes */ }; const char *xf86ConfigFile = NULL; const char *xf86ModulePath = DEFAULT_MODULE_PATH; @@ -158,6 +159,8 @@ int xf86NumDrivers = 0; InputDriverPtr *xf86InputDriverList = NULL; int xf86NumInputDrivers = 0; +ModuleInfoPtr *xf86ModuleInfoList = NULL; +int xf86NumModuleInfos = 0; #endif int xf86NumScreens = 0; Index: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Helper.c:1.108 xc/programs/Xserver/hw/xfree86/common/xf86Helper.c:1.111.2.1 --- xc/programs/Xserver/hw/xfree86/common/xf86Helper.c:1.108 Thu Dec 14 11:33:08 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Helper.c Thu May 24 15:43:39 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c,v 1.108 2000/12/14 16:33:08 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Helper.c,v 1.111.2.1 2001/05/24 19:43:39 dawes Exp $ */ /* * Copyright (c) 1997-1998 by The XFree86 Project, Inc. @@ -69,6 +69,7 @@ && (!xf86DriverHasEntities(xf86DriverList[drvIndex]))) { if (xf86DriverList[drvIndex]->module) UnloadModule(xf86DriverList[drvIndex]->module); + xfree(xf86DriverList[drvIndex]); xf86DriverList[drvIndex] = NULL; } } @@ -100,8 +101,39 @@ { if (xf86InputDriverList[drvIndex] && xf86InputDriverList[drvIndex]->module) UnloadModule(xf86InputDriverList[drvIndex]->module); + xfree(xf86InputDriverList[drvIndex]); xf86InputDriverList[drvIndex] = NULL; } + +void +xf86AddModuleInfo(ModuleInfoPtr info, pointer module) +{ + /* Don't add null entries */ + if (!module) + return; + + if (xf86ModuleInfoList == NULL) + xf86NumModuleInfos = 0; + + xf86NumModuleInfos++; + xf86ModuleInfoList = xnfrealloc(xf86ModuleInfoList, + xf86NumModuleInfos * sizeof(ModuleInfoPtr)); + xf86ModuleInfoList[xf86NumModuleInfos - 1] = xnfalloc(sizeof(ModuleInfoRec)); + *xf86ModuleInfoList[xf86NumModuleInfos - 1] = *info; + xf86ModuleInfoList[xf86NumModuleInfos - 1]->module = module; + xf86ModuleInfoList[xf86NumModuleInfos - 1]->refCount = 0; +} + +void +xf86DeleteModuleInfo(int idx) +{ + if (xf86ModuleInfoList[idx]) { + if (xf86ModuleInfoList[idx]->module) + UnloadModule(xf86ModuleInfoList[idx]->module); + xfree(xf86ModuleInfoList[idx]); + xf86ModuleInfoList[idx] = NULL; + } +} #endif @@ -947,8 +979,8 @@ WindowPtr pWin = WindowTable[pScreen->myNum]; WindowPtr pChild; Bool WasViewable = (Bool)(pWin->viewable); - Bool anyMarked; - RegionPtr pOldClip, bsExposed; + Bool anyMarked = FALSE; + RegionPtr pOldClip = NULL, bsExposed; #ifdef DO_SAVE_UNDERS Bool dosave = FALSE; #endif @@ -1218,6 +1250,9 @@ case X_INFO: s = X_INFO_STRING; break; + case X_NOT_IMPLEMENTED: + s = X_NOT_IMPLEMENTED_STRING; + break; case X_NONE: s = NULL; break; @@ -1333,8 +1368,10 @@ if ((logfile = fopen(xf86LogFile, "w")) == NULL) FatalError("Cannot open log file \"%s\"\n", xf86LogFile); setvbuf(logfile, NULL, _IONBF, 0); +#ifdef DDXOSVERRORF if (!OsVendorVErrorFProc) OsVendorVErrorFProc = OsVendorVErrorF; +#endif /* Flush saved log information */ if (saveBuffer && size > 0) { @@ -1997,7 +2034,6 @@ { register int status = vertsyncreg; unsigned long i, cnt, rcnt, sync; - int saved_nice; /* First save registers that get written on */ (*ClockFunc)(pScrn, CLK_REG_SAVE); @@ -2386,21 +2422,20 @@ OPTION_BACKING_STORE } BSOpts; -static OptionInfoRec BSOptions[] = { +static const OptionInfoRec BSOptions[] = { { OPTION_BACKING_STORE, "BackingStore", OPTV_BOOLEAN, {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE } }; -#define nBSOptions (sizeof(BSOptions) / sizeof(BSOptions[0])) - void xf86SetBackingStore(ScreenPtr pScreen) { Bool useBS = FALSE; MessageType from = X_DEFAULT; ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; - OptionInfoRec options[nBSOptions]; + OptionInfoPtr options; + options = xnfalloc(sizeof(BSOptions)); (void)memcpy(options, BSOptions, sizeof(BSOptions)); xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, options); @@ -2415,6 +2450,7 @@ if (xf86GetOptValBool(options, OPTION_BACKING_STORE, &useBS)) from = X_CONFIG; } + xfree(options); pScreen->backingStoreSupport = useBS ? Always : NotUseful; if (serverGeneration == 1) xf86DrvMsg(pScreen->myNum, from, "Backing store %s\n", @@ -2426,21 +2462,20 @@ OPTION_SILKEN_MOUSE } SMOpts; -static OptionInfoRec SMOptions[] = { +static const OptionInfoRec SMOptions[] = { { OPTION_SILKEN_MOUSE, "SilkenMouse", OPTV_BOOLEAN, {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE } }; -#define nSMOptions (sizeof(SMOptions) / sizeof(SMOptions[0])) - void xf86SetSilkenMouse (ScreenPtr pScreen) { Bool useSM = TRUE; MessageType from = X_DEFAULT; ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; - OptionInfoRec options[nSMOptions]; + OptionInfoPtr options; + options = xnfalloc(sizeof(SMOptions)); (void)memcpy(options, SMOptions, sizeof(SMOptions)); xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, options); @@ -2459,6 +2494,7 @@ if (xf86GetOptValBool(options, OPTION_SILKEN_MOUSE, &useSM)) from = X_CONFIG; } + xfree(options); /* * XXX quick hack to report correctly for OSs that can't do SilkenMouse * yet. Should handle this differently so that alternate async methods Index: xc/programs/Xserver/hw/xfree86/common/xf86Init.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Init.c:3.173 xc/programs/Xserver/hw/xfree86/common/xf86Init.c:3.176.2.1 --- xc/programs/Xserver/hw/xfree86/common/xf86Init.c:3.173 Thu Nov 30 19:24:33 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Init.c Thu May 24 15:43:39 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.173 2000/12/01 00:24:33 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Init.c,v 3.176.2.1 2001/05/24 19:43:39 dawes Exp $ */ /* * Copyright 1991-1999 by The XFree86 Project, Inc. @@ -1146,6 +1146,7 @@ * yet. Use malloc/free instead. */ +#ifdef DDXOSVERRORF static Bool beenHere = FALSE; if (!beenHere) { @@ -1156,6 +1157,7 @@ OsVendorVErrorFProc = OsVendorVErrorF; beenHere = TRUE; } +#endif /* First the options that are only allowed for root */ if (getuid() == 0) @@ -1554,7 +1556,7 @@ #define OSVENDOR "" #endif #ifndef PRE_RELEASE -#define PRE_RELEASE (XF86_VERSION_BETA || XF86_VERSION_ALPHA) +#define PRE_RELEASE XF86_VERSION_SNAP #endif static void @@ -1567,19 +1569,29 @@ "to fixes@XFree86.Org. Before reporting bugs in pre-release versions,\n" "please check the latest version in the XFree86 CVS repository\n" "(http://www.XFree86.Org/cvs)\n"); +#endif + ErrorF("\nXFree86 Version %d.%d.%d", XF86_VERSION_MAJOR, XF86_VERSION_MINOR, + XF86_VERSION_PATCH); +#if XF86_VERSION_SNAP > 0 + ErrorF(".%d", XF86_VERSION_SNAP); #endif - ErrorF("\nXFree86 Version%s", XF86_VERSION); + +#if XF86_VERSION_SNAP >= 900 + ErrorF(" (%d.%d.0 RC %d)", XF86_VERSION_MAJOR, XF86_VERSION_MINOR + 1, + XF86_VERSION_SNAP - 900); +#endif + #ifdef XF86_CUSTOM_VERSION - ErrorF("(%s) ", XF86_CUSTOM_VERSION); + ErrorF(" (%s)", XF86_CUSTOM_VERSION); #endif - ErrorF("/ X Window System\n"); + ErrorF(" / X Window System\n"); ErrorF("(protocol Version %d, revision %d, vendor release %d)\n", X_PROTOCOL, X_PROTOCOL_REVISION, VENDOR_RELEASE ); ErrorF("Release Date: %s\n", XF86_DATE); ErrorF("\tIf the server is older than 6-12 months, or if your card is\n" "\tnewer than the above date, look for a newer version before\n" "\treporting problems. (See http://www.XFree86.Org/FAQ)\n"); - ErrorF("Operating System:%s%s\n", OSNAME, OSVENDOR); + ErrorF("Build Operating System:%s%s\n", OSNAME, OSVENDOR); #if defined(BUILDERSTRING) ErrorF("%s \n",BUILDERSTRING); #endif Index: xc/programs/Xserver/hw/xfree86/common/xf86Io.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Io.c:3.41 xc/programs/Xserver/hw/xfree86/common/xf86Io.c:3.42 --- xc/programs/Xserver/hw/xfree86/common/xf86Io.c:3.41 Mon Nov 6 14:24:06 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Io.c Fri Apr 20 12:32:30 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Io.c,v 3.41 2000/11/06 19:24:06 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Io.c,v 3.42 2001/04/20 16:32:30 tsi Exp $ */ /* * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. * @@ -396,7 +396,7 @@ return (Success); } -#if !defined(AMOEBA) && !(defined (sun) && defined(i386) && defined (SVR4)) && !defined(MINIX) && !(defined(__mips__) && !defined(linux)) && !defined(QNX4) +#if defined(DDXTIME) && !defined(QNX4) /* * These are getting tossed in here until I can think of where * they really belong @@ -409,7 +409,7 @@ gettimeofday(&tp, 0); return(tp.tv_sec * 1000) + (tp.tv_usec / 1000); } -#endif /* !AMOEBA && !(sun || SVR4) && !MINIX */ +#endif /* DDXTIME && !QNX4 */ #ifdef WSCONS_SUPPORT Index: xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c:3.14 xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c:3.15 --- xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c:3.14 Fri Aug 11 13:27:13 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c Thu Mar 8 18:23:32 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c,v 3.14 2000/08/11 17:27:13 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86KbdBSD.c,v 3.15 2001/03/08 23:23:32 dawes Exp $ */ /* * Derived from xf86Kbd.c by S_ren Schmidt (sos@login.dkuug.dk) * which is Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. @@ -40,7 +40,7 @@ #define KD_GET_ENTRY(i,n) \ eascii_to_x[((keymap.key[i].spcl << (n+1)) & 0x100) + keymap.key[i].map[n]] -static unsigned char remap[128] = { +static unsigned char remap[NUM_KEYCODES] = { 0, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, /* 0x00 - 0x07 */ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, /* 0x08 - 0x0f */ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, /* 0x10 - 0x17 */ @@ -131,8 +131,76 @@ * special marked entries (256 + x) */ +#if 1 + /* This has been checked against what syscons actually does */ NoSymbol, NoSymbol, XK_Shift_L, XK_Shift_R, XK_Caps_Lock, XK_Num_Lock, XK_Scroll_Lock, XK_Alt_L, + XK_ISO_Left_Tab,XK_Control_L, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, XK_F1, + XK_F2, XK_F3, XK_F4, XK_F5, + XK_F6, XK_F7, XK_F8, XK_F9, + XK_F10, XK_F11, XK_F12, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + XK_Control_R, XK_Alt_R, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol +#else + /* The old table, supposedly for pcvt. */ + NoSymbol, NoSymbol, XK_Shift_L, XK_Shift_R, + XK_Caps_Lock, XK_Num_Lock, XK_Scroll_Lock, XK_Alt_L, NoSymbol, XK_Control_L, XK_Alt_L, XK_Alt_R, XK_Control_L, XK_Control_R, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, @@ -194,6 +262,8 @@ NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, NoSymbol, + NoSymbol, NoSymbol, NoSymbol, NoSymbol +#endif }; #ifdef __OpenBSD__ Index: xc/programs/Xserver/hw/xfree86/common/xf86KbdLnx.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86KbdLnx.c:3.15 xc/programs/Xserver/hw/xfree86/common/xf86KbdLnx.c:3.16 --- xc/programs/Xserver/hw/xfree86/common/xf86KbdLnx.c:3.15 Thu Apr 29 01:12:58 1999 +++ xc/programs/Xserver/hw/xfree86/common/xf86KbdLnx.c Mon Mar 5 15:18:20 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86KbdLnx.c,v 3.15 1999/04/29 05:12:58 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86KbdLnx.c,v 3.16 2001/03/05 20:18:20 dawes Exp $ */ /* * Linux version of keymapping setup. The kernel (since 0.99.14) has support * for fully remapping the keyboard, but there are some differences between @@ -205,8 +205,6 @@ XK_udiaeresis, XK_yacute, XK_thorn, XK_ydiaeresis }; -#ifndef ASSUME_CUSTOM_KEYCODES - /* * Maps the AT keycodes to Linux keycodes */ @@ -278,20 +276,17 @@ 0x00, /* 0x7f */ }; #define NUM_AT2LNX (sizeof(at2lnx) / sizeof(at2lnx[0])) - -#else /* !ASSUME_CUSTOM_KEYCODES */ - -#define NUM_AT2LNX NR_KEYS -u_char SpecialServerMap[NR_KEYS]; +#define NUM_CUSTOMKEYS NR_KEYS -#endif /* !ASSUME_CUSTOM_KEYCODES */ +u_char SpecialServerMap[NUM_CUSTOMKEYS]; static void readKernelMapping(KeySymsPtr pKeySyms, CARD8 *pModMap) { KeySym *k; int i; + int maxkey; static unsigned char tbl[GLYPHS_PER_KEY] = { 0, /* unshifted */ @@ -312,20 +307,24 @@ tbl[2] = 8; /* alt */ tbl[3] = tbl[2] | 1; -#ifndef ASSUME_CUSTOM_KEYCODES - for (i = 0, k = map+GLYPHS_PER_KEY; i < NUM_AT2LNX; ++i) -#else /* !ASSUME_CUSTOM_KEYCODES */ - for (i = 0, k = map; i < NUM_AT2LNX; ++i) -#endif /* !ASSUME_CUSTOM_KEYCODES */ + if (xf86Info.kbdCustomKeycodes) { + k = map; + maxkey = NUM_CUSTOMKEYS; + } + else { + k = map+GLYPHS_PER_KEY; + maxkey = NUM_AT2LNX; + } + + for (i = 0; i < maxkey; ++i) { struct kbentry kbe; int j; -#ifndef ASSUME_CUSTOM_KEYCODES - kbe.kb_index = at2lnx[i]; -#else /* !ASSUME_CUSTOM_KEYCODES */ - kbe.kb_index = i; -#endif /* !ASSUME_CUSTOM_KEYCODES */ + if (xf86Info.kbdCustomKeycodes) + kbe.kb_index = i; + else + kbe.kb_index = at2lnx[i]; for (j = 0; j < GLYPHS_PER_KEY; ++j, ++k) { @@ -335,9 +334,7 @@ kbe.kb_table = tbl[j]; if ( -#ifndef ASSUME_CUSTOM_KEYCODES - kbe.kb_index == 0 || -#endif /* !ASSUME_CUSTOM_KEYCODES */ + (!xf86Info.kbdCustomKeycodes && kbe.kb_index == 0) || ioctl(xf86Info.consoleFd, KDGKBENT, &kbe)) continue; @@ -549,11 +546,14 @@ if (k[-4] == k[-2] && k[-3] == k[-1]) k[-2] = k[-1] = NoSymbol; if (k[-1] == k[-4] && k[-2] == k[-3] && k[-2] == NoSymbol) k[-1] =NoSymbol; } -#ifdef ASSUME_CUSTOM_KEYCODES + + if (!xf86Info.kbdCustomKeycodes) + return; + /* * Find the Mapping for the special server functions */ - for (i = 0; i < NR_KEYS; ++i) { + for (i = 0; i < NUM_CUSTOMKEYS; ++i) { struct kbentry kbe; int special = 0; @@ -618,5 +618,4 @@ } SpecialServerMap[i] = special; } -#endif /* ASSUME_CUSTOM_KEYCODES */ } Index: xc/programs/Xserver/hw/xfree86/common/xf86Keymap.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86Keymap.h:3.13 xc/programs/Xserver/hw/xfree86/common/xf86Keymap.h:3.15 --- xc/programs/Xserver/hw/xfree86/common/xf86Keymap.h:3.13 Fri Aug 11 13:27:13 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Keymap.h Tue May 1 18:31:30 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Keymap.h,v 3.13 2000/08/11 17:27:13 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Keymap.h,v 3.15 2001/05/01 22:31:30 alanh Exp $ */ /* * * For Scancodes see notes in atKeynames.h !!!! @@ -22,7 +22,7 @@ /* 0x0c */ XK_minus, XK_underscore, NoSymbol, NoSymbol, /* 0x0d */ XK_equal, XK_plus, NoSymbol, NoSymbol, /* 0x0e */ XK_BackSpace, NoSymbol, NoSymbol, NoSymbol, - /* 0x0f */ XK_Tab, NoSymbol, NoSymbol, NoSymbol, + /* 0x0f */ XK_Tab, XK_ISO_Left_Tab,NoSymbol, NoSymbol, /* 0x10 */ XK_Q, NoSymbol, NoSymbol, NoSymbol, /* 0x11 */ XK_W, NoSymbol, NoSymbol, NoSymbol, /* 0x12 */ XK_E, NoSymbol, NoSymbol, NoSymbol, @@ -118,26 +118,27 @@ /* 0x6b */ XK_Meta_L, NoSymbol, NoSymbol, NoSymbol, /* 0x6c */ XK_Meta_R, NoSymbol, NoSymbol, NoSymbol, /* 0x6d */ XK_Menu, NoSymbol, NoSymbol, NoSymbol, - /* 0x6e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x6f */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x70 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x71 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x72 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x73 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, + /* 0x6e */ XK_F13, NoSymbol, NoSymbol, NoSymbol, + /* 0x6f */ XK_F14, NoSymbol, NoSymbol, NoSymbol, + /* 0x70 */ XK_F15, NoSymbol, NoSymbol, NoSymbol, + /* 0x71 */ XK_F16, NoSymbol, NoSymbol, NoSymbol, + /* 0x72 */ XK_F17, NoSymbol, NoSymbol, NoSymbol, + /* 0x73 */ XK_backslash, XK_underscore, NoSymbol, NoSymbol, /* 0x74 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 0x75 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 0x76 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 0x77 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 0x78 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x79 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, + /* 0x79 */ XK_Henkan, XK_Mode_switch, NoSymbol, NoSymbol, /* 0x7a */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x7b */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, + /* 0x7b */ XK_Muhenkan, NoSymbol, NoSymbol, NoSymbol, /* 0x7c */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, - /* 0x7d */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, + /* 0x7d */ XK_backslash, XK_bar, NoSymbol, NoSymbol, /* 0x7e */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, + /* 0x7f */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, }; -#if !defined(Lynx) && !defined(AMOEBA) && !defined(MINIX) && !defined(__OSF__) && !defined(__EMX__) && !defined(__mips__) && !defined(linux) && !defined(CSRG_BASED) +#if !defined(Lynx) && !defined(AMOEBA) && !defined(MINIX) && !defined(__OSF__) && !defined(__EMX__) && !defined(__mips__) && !defined(linux) && !defined(CSRG_BASED) && !defined(__CYGWIN__) static KeySym map84[NUM_KEYCODES * GLYPHS_PER_KEY] = { /* 0x00 */ NoSymbol, NoSymbol, NoSymbol, NoSymbol, /* 0x01 */ XK_Escape, NoSymbol, NoSymbol, NoSymbol, Index: xc/programs/Xserver/hw/xfree86/common/xf86Mode.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Mode.c:1.36 xc/programs/Xserver/hw/xfree86/common/xf86Mode.c:1.40 --- xc/programs/Xserver/hw/xfree86/common/xf86Mode.c:1.36 Wed Dec 6 10:35:11 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Mode.c Thu May 10 06:17:39 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Mode.c,v 1.36 2000/12/06 15:35:11 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Mode.c,v 1.40 2001/05/10 10:17:39 alanh Exp $ */ /* * Copyright (c) 1997,1998 by The XFree86 Project, Inc. @@ -1305,16 +1305,16 @@ q->status = MODE_OK; } else { if (p->type & M_T_BUILTIN) - xf86DrvMsg(scrp->scrnIndex, X_WARNING, - "Built-in mode \"%s\" deleted (%s)\n", p->name, - xf86ModeStatusToString(status)); + xf86DrvMsg(scrp->scrnIndex, X_INFO, + "Not using built-in mode \"%s\" (%s)\n", + p->name, xf86ModeStatusToString(status)); else if (p->type & M_T_DEFAULT) - xf86DrvMsg(scrp->scrnIndex, X_WARNING, - "Default mode \"%s\" deleted (%s)\n", p->name, + xf86DrvMsg(scrp->scrnIndex, X_INFO, + "Not using default mode \"%s\" (%s)\n", p->name, xf86ModeStatusToString(status)); else - xf86DrvMsg(scrp->scrnIndex, X_WARNING, - "Mode \"%s\" deleted (%s)\n", p->name, + xf86DrvMsg(scrp->scrnIndex, X_INFO, + "Not using mode \"%s\" (%s)\n", p->name, xf86ModeStatusToString(status)); } } @@ -1401,16 +1401,16 @@ status = xf86LookupMode(scrp, p, clockRanges, strategy); if (status != MODE_OK) { if (p->type & M_T_BUILTIN) - xf86DrvMsg(scrp->scrnIndex, X_WARNING, - "Built-in mode \"%s\" deleted (%s)\n", p->name, - xf86ModeStatusToString(status)); + xf86DrvMsg(scrp->scrnIndex, X_INFO, + "Not using built-in mode \"%s\" (%s)\n", + p->name, xf86ModeStatusToString(status)); else if (p->type & M_T_DEFAULT) - xf86DrvMsg(scrp->scrnIndex, X_WARNING, - "Default mode \"%s\" deleted (%s)\n", p->name, + xf86DrvMsg(scrp->scrnIndex, X_INFO, + "Not using default mode \"%s\" (%s)\n", p->name, xf86ModeStatusToString(status)); else - xf86DrvMsg(scrp->scrnIndex, X_WARNING, - "Mode \"%s\" deleted (%s)\n", p->name, + xf86DrvMsg(scrp->scrnIndex, X_INFO, + "Not using mode \"%s\" (%s)\n", p->name, xf86ModeStatusToString(status)); } if (status == MODE_ERROR) { @@ -1493,16 +1493,16 @@ if (p->status != MODE_OK) { if (p->type & M_T_BUILTIN) - xf86DrvMsg(scrp->scrnIndex, X_WARNING, - "Built-in mode \"%s\" deleted (%s)\n", p->name, - xf86ModeStatusToString(p->status)); + xf86DrvMsg(scrp->scrnIndex, X_INFO, + "Not using built-in mode \"%s\" (%s)\n", + p->name, xf86ModeStatusToString(p->status)); else if (p->type & M_T_DEFAULT) - xf86DrvMsg(scrp->scrnIndex, X_WARNING, - "Default mode \"%s\" deleted (%s)\n", p->name, + xf86DrvMsg(scrp->scrnIndex, X_INFO, + "Not using default mode \"%s\" (%s)\n", p->name, xf86ModeStatusToString(p->status)); else - xf86DrvMsg(scrp->scrnIndex, X_WARNING, - "Mode \"%s\" deleted (%s)\n", p->name, + xf86DrvMsg(scrp->scrnIndex, X_INFO, + "Not using mode \"%s\" (%s)\n", p->name, xf86ModeStatusToString(p->status)); goto lookupNext; @@ -1607,17 +1607,17 @@ if (p->status != MODE_OK) { #if 0 if (p->type & M_T_BUILTIN) - xf86DrvMsg(scrp->scrnIndex, X_WARNING, - "Built-in mode \"%s\" deleted (%s)\n", p->name, + xf86DrvMsg(scrp->scrnIndex, X_INFO, + "Not using built-in mode \"%s\" (%s)\n", p->name, xf86ModeStatusToString(p->status)); else if (p->type & M_T_DEFAULT) - xf86DrvMsg(scrp->scrnIndex, X_WARNING, - "Default mode \"%s\" deleted (%s)\n", p->name, - xf86ModeStatusToString(p->status)); + xf86DrvMsg(scrp->scrnIndex, X_INFO, + "Not using default mode \"%s\" (%s)\n", p->name, + xf86ModeStatusToString(p->status)); else - xf86DrvMsg(scrp->scrnIndex, X_WARNING, - "Mode \"%s\" deleted (%s)\n", p->name, - xf86ModeStatusToString(p->status)); + xf86DrvMsg(scrp->scrnIndex, X_INFO, + "Not using mode \"%s\" (%s)\n", p->name, + xf86ModeStatusToString(p->status)); #endif xf86DeleteMode(&(scrp->modes), p); } @@ -1668,11 +1668,57 @@ } +static void +add(char **p, char *new) +{ + if (!*p) { + *p = xnfalloc(strlen(new) + 1); + strcpy(*p,new); + } else { + *p = xnfrealloc(*p,((*p)?strlen(*p):0) + strlen(new) + 2); + strcat(*p," "); + strcat(*p,new); + } +} + +static void +PrintModeline(int scrnIndex,DisplayModePtr mode) +{ + char tmp[256]; + char *flags = NULL; + + if (mode->HSkew) { + snprintf(tmp,256,"hskew %i",mode->HSkew); + add(&flags,tmp); + } + if (mode->VScan) { + snprintf(tmp,256,"vscan %i",mode->VScan); + add(&flags,tmp); + } + if (mode->Flags & V_INTERLACE) add(&flags,"interlace"); + if (mode->Flags & V_CSYNC) add(&flags,"composite"); + if (mode->Flags & V_DBLSCAN) add(&flags,"doublescan"); + if (mode->Flags & V_BCAST) add(&flags,"bcast"); + if (mode->Flags & V_PHSYNC) add(&flags,"+hsync"); + if (mode->Flags & V_NHSYNC) add(&flags,"-hsync"); + if (mode->Flags & V_PVSYNC) add(&flags,"+vsync"); + if (mode->Flags & V_NVSYNC) add(&flags,"-vsync"); + if (mode->Flags & V_PCSYNC) add(&flags,"+csync"); + if (mode->Flags & V_NCSYNC) add(&flags,"-csync"); + xf86DrvMsgVerb(scrnIndex,X_INFO,3, + "Modeline \"%s\" %6.2f %i %i %i %i %i %i %i %i %s\n", + mode->name,mode->Clock/1000., mode->HDisplay, + mode->HSyncStart,mode->HSyncEnd,mode->HTotal, + mode->VDisplay,mode->VSyncStart,mode->VSyncEnd, + mode->VTotal,flags); + xfree(flags); +} + void xf86PrintModes(ScrnInfoPtr scrp) { DisplayModePtr p; - float hsync, refresh; + float hsync, refresh = 0; char *desc, *desc2, *prefix; if (scrp == NULL) @@ -1690,9 +1736,12 @@ desc = desc2 = ""; if (p->HSync > 0.0) hsync = p->HSync; - else + else if (p->HTotal > 0) hsync = (float)p->Clock / (float)p->HTotal; - refresh = hsync * 1000.0 / p->VTotal; + else + hsync = 0.0; + if (p->VTotal > 0) + refresh = hsync * 1000.0 / p->VTotal; if (p->Flags & V_INTERLACE) { refresh *= 2.0; desc = " (I)"; @@ -1713,7 +1762,10 @@ prefix = "Default mode"; else prefix = "Mode"; - if (p->Clock == p->SynthClock) { + if (hsync == 0 || refresh == 0) { + xf86DrvMsg(scrp->scrnIndex, X_CONFIG, + "%s \"%s\"\n", prefix, p->name); + } else if (p->Clock == p->SynthClock) { xf86DrvMsg(scrp->scrnIndex, X_CONFIG, "%s \"%s\": %.1f MHz, %.1f kHz, %.1f Hz%s%s\n", prefix, p->name, p->Clock / 1000.0, hsync, refresh, @@ -1725,6 +1777,8 @@ prefix, p->name, p->Clock / 1000.0, p->SynthClock / 1000.0, hsync, refresh, desc, desc2); } + if (hsync != 0 && refresh != 0) + PrintModeline(scrp->scrnIndex,p); p = p->next; } while (p != NULL && p != scrp->modes); } Index: xc/programs/Xserver/hw/xfree86/common/xf86Module.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86Module.h:1.27 xc/programs/Xserver/hw/xfree86/common/xf86Module.h:1.28 --- xc/programs/Xserver/hw/xfree86/common/xf86Module.h:1.27 Tue Nov 14 11:54:49 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Module.h Tue Mar 13 11:03:36 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Module.h,v 1.27 2000/11/14 16:54:49 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Module.h,v 1.28 2001/03/13 16:03:36 dawes Exp $ */ /* * Copyright (c) 1997-1999 by The XFree86 Project, Inc. @@ -62,8 +62,8 @@ * mask is 0xFFFF0000. */ #define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 1) -#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(0, 3) -#define ABI_XINPUT_VERSION SET_ABI_VERSION(0, 1) +#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(0, 4) +#define ABI_XINPUT_VERSION SET_ABI_VERSION(0, 2) #define ABI_EXTENSION_VERSION SET_ABI_VERSION(0, 1) #define ABI_FONT_VERSION SET_ABI_VERSION(0, 2) Index: xc/programs/Xserver/hw/xfree86/common/xf86Opt.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86Opt.h:1.10 xc/programs/Xserver/hw/xfree86/common/xf86Opt.h:1.12 --- xc/programs/Xserver/hw/xfree86/common/xf86Opt.h:1.10 Fri Aug 4 12:13:25 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Opt.h Fri May 4 15:05:30 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Opt.h,v 1.10 2000/08/04 16:13:25 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Opt.h,v 1.12 2001/05/04 19:05:30 dawes Exp $ */ /* Option handling things that ModuleSetup procs can use */ @@ -43,6 +43,7 @@ } OptionInfoRec, *OptionInfoPtr; int xf86SetIntOption(pointer optlist, const char *name, int deflt); +double xf86SetRealOption(pointer optlist, const char *name, double deflt); char *xf86SetStrOption(pointer optlist, const char *name, char *deflt); int xf86SetBoolOption(pointer list, const char *name, int deflt ); pointer xf86AddNewOption(pointer head, char *name, char *val ); @@ -62,17 +63,17 @@ Bool xf86CheckIfOptionUsedByName(pointer options, const char *name); void xf86ShowUnusedOptions(int scrnIndex, pointer options); void xf86ProcessOptions(int scrnIndex, pointer options, OptionInfoPtr optinfo); -OptionInfoPtr xf86TokenToOptinfo(OptionInfoPtr table, int token); -const char *xf86TokenToOptName(OptionInfoPtr table, int token); -Bool xf86IsOptionSet(OptionInfoPtr table, int token); -char *xf86GetOptValString(OptionInfoPtr table, int token); -Bool xf86GetOptValInteger(OptionInfoPtr table, int token, int *value); -Bool xf86GetOptValULong(OptionInfoPtr table, int token, unsigned long *value); -Bool xf86GetOptValReal(OptionInfoPtr table, int token, double *value); -Bool xf86GetOptValFreq(OptionInfoPtr table, int token, +OptionInfoPtr xf86TokenToOptinfo(const OptionInfoRec *table, int token); +const char *xf86TokenToOptName(const OptionInfoRec *table, int token); +Bool xf86IsOptionSet(const OptionInfoRec *table, int token); +char *xf86GetOptValString(const OptionInfoRec *table, int token); +Bool xf86GetOptValInteger(const OptionInfoRec *table, int token, int *value); +Bool xf86GetOptValULong(const OptionInfoRec *table, int token, unsigned long *value); +Bool xf86GetOptValReal(const OptionInfoRec *table, int token, double *value); +Bool xf86GetOptValFreq(const OptionInfoRec *table, int token, OptFreqUnits expectedUnits, double *value); -Bool xf86GetOptValBool(OptionInfoPtr table, int token, Bool *value); -Bool xf86ReturnOptValBool(OptionInfoPtr table, int token, Bool def); +Bool xf86GetOptValBool(const OptionInfoRec *table, int token, Bool *value); +Bool xf86ReturnOptValBool(const OptionInfoRec *table, int token, Bool def); int xf86NameCmp(const char *s1, const char *s2); char *xf86NormalizeName(const char *s); pointer xf86ReplaceIntOption(pointer optlist, char *name, int val); Index: xc/programs/Xserver/hw/xfree86/common/xf86Option.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Option.c:1.21 xc/programs/Xserver/hw/xfree86/common/xf86Option.c:1.23 --- xc/programs/Xserver/hw/xfree86/common/xf86Option.c:1.21 Fri Oct 20 10:58:59 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Option.c Fri May 4 15:05:30 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Option.c,v 1.21 2000/10/20 14:58:59 alanh Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Option.c,v 1.23 2001/05/04 19:05:30 dawes Exp $ */ /* * Copyright (c) 1998 by The XFree86 Project, Inc. @@ -155,6 +155,19 @@ } +double +xf86SetRealOption(pointer optlist, const char *name, double deflt) +{ + OptionInfoRec o; + + o.name = name; + o.type = OPTV_REAL; + if (ParseOptionValue(-1, optlist, &o)) + deflt = o.value.realnum; + return deflt; +} + + char * xf86SetStrOption(pointer optlist, const char *name, char *deflt) { @@ -560,9 +573,9 @@ OptionInfoPtr -xf86TokenToOptinfo(OptionInfoPtr table, int token) +xf86TokenToOptinfo(const OptionInfoRec *table, int token) { - OptionInfoPtr p; + const OptionInfoRec *p; for (p = table; p->token >= 0 && p->token != token; p++) ; @@ -570,14 +583,14 @@ if (p->token < 0) return NULL; else - return p; + return (OptionInfoPtr)p; } const char * -xf86TokenToOptName(OptionInfoPtr table, int token) +xf86TokenToOptName(const OptionInfoRec *table, int token) { - OptionInfoPtr p; + const OptionInfoRec *p; p = xf86TokenToOptinfo(table, token); return p->name; @@ -585,7 +598,7 @@ Bool -xf86IsOptionSet(OptionInfoPtr table, int token) +xf86IsOptionSet(const OptionInfoRec *table, int token) { OptionInfoPtr p; @@ -595,7 +608,7 @@ char * -xf86GetOptValString(OptionInfoPtr table, int token) +xf86GetOptValString(const OptionInfoRec *table, int token) { OptionInfoPtr p; @@ -608,7 +621,7 @@ Bool -xf86GetOptValInteger(OptionInfoPtr table, int token, int *value) +xf86GetOptValInteger(const OptionInfoRec *table, int token, int *value) { OptionInfoPtr p; @@ -622,7 +635,7 @@ Bool -xf86GetOptValULong(OptionInfoPtr table, int token, unsigned long *value) +xf86GetOptValULong(const OptionInfoRec *table, int token, unsigned long *value) { OptionInfoPtr p; @@ -636,7 +649,7 @@ Bool -xf86GetOptValReal(OptionInfoPtr table, int token, double *value) +xf86GetOptValReal(const OptionInfoRec *table, int token, double *value) { OptionInfoPtr p; @@ -650,8 +663,8 @@ Bool -xf86GetOptValFreq(OptionInfoPtr table, int token, OptFreqUnits expectedUnits, - double *value) +xf86GetOptValFreq(const OptionInfoRec *table, int token, + OptFreqUnits expectedUnits, double *value) { OptionInfoPtr p; @@ -698,7 +711,7 @@ Bool -xf86GetOptValBool(OptionInfoPtr table, int token, Bool *value) +xf86GetOptValBool(const OptionInfoRec *table, int token, Bool *value) { OptionInfoPtr p; @@ -712,7 +725,7 @@ Bool -xf86ReturnOptValBool(OptionInfoPtr table, int token, Bool def) +xf86ReturnOptValBool(const OptionInfoRec *table, int token, Bool def) { OptionInfoPtr p; Index: xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h:1.83 xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h:1.98 --- xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h:1.83 Thu Dec 7 16:34:20 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h Fri May 11 03:56:10 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h,v 1.83 2000/12/07 21:34:20 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86PciInfo.h,v 1.98 2001/05/11 07:56:10 alanh Exp $ */ /* * PCI Probe * @@ -150,6 +150,7 @@ #define PCI_VENDOR_TRITECH 0x1292 #define PCI_VENDOR_NVIDIA_SGS 0x12d2 #define PCI_VENDOR_NETGEAR 0x1385 +#define PCI_VENDOR_VMWARE 0x15AD #define PCI_VENDOR_SYMPHONY 0x1C1C #define PCI_VENDOR_TEKRAM_2 0x1DE1 #define PCI_VENDOR_3DLABS 0x3D3D @@ -231,12 +232,14 @@ #define PCI_CHIP_MACH64LS 0x4C53 #define PCI_CHIP_RAGE128MF 0x4D46 #define PCI_CHIP_RAGE128ML 0x4D4C +#define PCI_CHIP_RAGE128PD 0x5044 #define PCI_CHIP_RAGE128PF 0x5046 #define PCI_CHIP_RAGE128PR 0x5052 #define PCI_CHIP_RADEON_QD 0x5144 #define PCI_CHIP_RADEON_QE 0x5145 #define PCI_CHIP_RADEON_QF 0x5146 #define PCI_CHIP_RADEON_QG 0x5147 +#define PCI_CHIP_RADEON_VE 0x5159 #define PCI_CHIP_RAGE128RE 0x5245 #define PCI_CHIP_RAGE128RF 0x5246 #define PCI_CHIP_RAGE128RG 0x5247 @@ -258,6 +261,7 @@ /* Avance Logic */ #define PCI_CHIP_ALG2064 0x2064 #define PCI_CHIP_ALG2301 0x2301 +#define PCI_CHIP_ALG2501 0x2501 /* NS */ #define PCI_CHIP_87415 0x0002 @@ -339,6 +343,8 @@ #define PCI_CHIP_9750 0x9750 #define PCI_CHIP_9850 0x9850 #define PCI_CHIP_9880 0x9880 +#define PCI_CHIP_9910 0x9910 +#define PCI_CHIP_9930 0x9930 /* ALI */ #define PCI_CHIP_M1435 0x1435 @@ -403,7 +409,8 @@ #define PCI_CHIP_SIS300 0x0300 #define PCI_CHIP_SIS630 0x6300 #define PCI_CHIP_SIS540 0x5300 - +/* Agregado por Carlos Duclos & Manuel Jander */ +#define PCI_CHIP_SIS82C204 0x0204 /* HP */ #define PCI_CHIP_J2585A 0x1030 #define PCI_CHIP_J2585B 0x1031 @@ -473,6 +480,8 @@ #define PCI_CHIP_UTNT2 0x0029 #define PCI_CHIP_VTNT2 0x002C #define PCI_CHIP_UVTNT2 0x002D +#define PCI_CHIP_TNT2_A 0x002E +#define PCI_CHIP_TNT2_B 0x002F #define PCI_CHIP_ITNT2 0x00A0 #define PCI_CHIP_GEFORCE256 0x0100 #define PCI_CHIP_GEFORCEDDR 0x0101 @@ -485,23 +494,34 @@ #define PCI_CHIP_GEFORCE2GTS_1 0x0151 #define PCI_CHIP_GEFORCE2ULTRA 0x0152 #define PCI_CHIP_QUADRO2PRO 0x0153 +#define PCI_CHIP_GEFORCE3 0x0200 +#define PCI_CHIP_GEFORCE3_1 0x0201 +#define PCI_CHIP_GEFORCE3_2 0x0202 +#define PCI_CHIP_GEFORCE3_3 0x0203 /* NVIDIA & SGS */ #define PCI_CHIP_RIVA128 0x0018 +/* IMS */ +#define PCI_CHIP_IMSTT128 0x9128 +#define PCI_CHIP_IMSTT3D 0x9135 + /* Alliance Semiconductor */ #define PCI_CHIP_AP6410 0x3210 #define PCI_CHIP_AP6422 0x6422 #define PCI_CHIP_AT24 0x6424 #define PCI_CHIP_AT3D 0x643D -/* 3Dfx Interactive */ +/* 3dfx Interactive */ #define PCI_CHIP_VOODOO_GRAPHICS 0x0001 #define PCI_CHIP_VOODOO2 0x0002 #define PCI_CHIP_BANSHEE 0x0003 #define PCI_CHIP_VOODOO3 0x0005 #define PCI_CHIP_VOODOO5 0x0009 +#define PCI_CARD_VOODOO3_2000 0x0036 +#define PCI_CARD_VOODOO3_3000 0x003a + /* Rendition */ #define PCI_CHIP_V1000 0x0001 #define PCI_CHIP_V2x00 0x2000 @@ -516,6 +536,10 @@ #define PCI_CHIP_GAMMA 0x0008 #define PCI_CHIP_PERMEDIA2V 0x0009 #define PCI_CHIP_PERMEDIA3 0x000A +#define PCI_CHIP_PERMEDIA4 0x000C +#define PCI_CHIP_R4 0x000D +#define PCI_CHIP_GAMMA2 0x000E +#define PCI_CHIP_R4ALT 0x0011 /* S3 */ #define PCI_CHIP_PLATO 0x0551 @@ -590,6 +614,10 @@ #define PCI_CHIP_SMI712 0x712 #define PCI_CHIP_SMI720 0x720 +/* VMware */ +#define PCI_CHIP_VMWARE0405 0x0405 +#define PCI_CHIP_VMWARE0710 0x0710 + /* * first the VendorId - VendorName mapping */ @@ -691,7 +719,7 @@ {PCI_VENDOR_RICOH, "Ricoh"}, {PCI_VENDOR_ZEINET, "Zeinet"}, {PCI_VENDOR_LITEON, "Lite-On"}, - {PCI_VENDOR_3DFX, "3Dfx Interactive"}, + {PCI_VENDOR_3DFX, "3dfx Interactive"}, {PCI_VENDOR_SIGMADESIGNS, "Sigma Designs"}, {PCI_VENDOR_ENSONIQ, "Ensoniq"}, {PCI_VENDOR_ROCKWELL, "Rockwell"}, @@ -710,6 +738,7 @@ {PCI_VENDOR_ARK, "ARK Logic"}, {PCI_VENDOR_YAMAHA, "Yamaha"}, {PCI_VENDOR_SMI, "Silicon Motion Inc."}, + {PCI_VENDOR_VMWARE, "VMware"}, {0,NULL} }; #endif @@ -796,12 +825,14 @@ {PCI_CHIP_MACH64LS, "Mach64 LS",0}, {PCI_CHIP_RAGE128MF, "Rage 128 Mobility MF",0}, {PCI_CHIP_RAGE128ML, "Rage 128 Mobility ML",0}, + {PCI_CHIP_RAGE128PD, "Rage 128 Pro PD",0}, {PCI_CHIP_RAGE128PF, "Rage 128 Pro PF",0}, {PCI_CHIP_RAGE128PR, "Rage 128 Pro PR",0}, {PCI_CHIP_RADEON_QD, "Radeon QD",0}, {PCI_CHIP_RADEON_QE, "Radeon QE",0}, {PCI_CHIP_RADEON_QF, "Radeon QF",0}, {PCI_CHIP_RADEON_QG, "Radeon QG",0}, + {PCI_CHIP_RADEON_VE, "Radeon VE",0}, {PCI_CHIP_RAGE128RE, "Rage 128 RE",0}, {PCI_CHIP_RAGE128RF, "Rage 128 RF",0}, {PCI_CHIP_RAGE128RK, "Rage 128 RK",0}, @@ -845,7 +876,7 @@ {PCI_VENDOR_DIGITAL, { {PCI_CHIP_DEC21030, "21030/TGA",0}, {0x0001, "DC21050 PCI-PCI Bridge" - /* print_pcibridge} */,0 }, + /* print_pcibridge */,0 }, {0x0002, "DC21040 10Mb/s Ethernet",0 }, {0x0009, "DC21140 10/100 Mb/s Ethernet",0 }, {0x000D, "TGA2",0 }, @@ -910,6 +941,8 @@ {PCI_CHIP_9750, "3DImage975",0}, {PCI_CHIP_9850, "3DImage985",0}, {PCI_CHIP_9880, "Blade3D",0}, + {PCI_CHIP_9910, "Cyber/BladeXP",0}, + {PCI_CHIP_9930, "CyberBlade/XPm",0}, {PCI_CHIP_8400, "CyberBlade/i7",0}, {PCI_CHIP_8420, "CyberBlade/DSTN/i7",0}, {PCI_CHIP_8500, "CyberBlade/i1",0}, @@ -967,6 +1000,7 @@ {PCI_CHIP_SIS300, "300",0}, {PCI_CHIP_SIS630, "630",0}, {PCI_CHIP_SIS540, "540",0}, + {PCI_CHIP_SIS82C204, "82C204",0}, {0x0000, NULL,0}}}, #ifdef VENDOR_INCLUDE_NONVIDEO {PCI_VENDOR_HP, { @@ -1206,6 +1240,8 @@ {PCI_CHIP_UTNT2, "Riva Ultra TNT2",0}, {PCI_CHIP_VTNT2, "Riva Vanta",0}, {PCI_CHIP_UVTNT2, "Riva Ultra 64",0}, + {PCI_CHIP_TNT2_A, "Riva TNT2 (A)",0}, + {PCI_CHIP_TNT2_B, "Riva TNT2 (B)",0}, {PCI_CHIP_ITNT2, "Riva Integrated",0}, {PCI_CHIP_GEFORCE256, "GeForce 256",0}, {PCI_CHIP_GEFORCEDDR, "GeForce DDR",0}, @@ -1217,11 +1253,19 @@ {PCI_CHIP_GEFORCE2GTS_1,"GeForce2 GTS (rev 1)",0}, {PCI_CHIP_GEFORCE2ULTRA,"GeForce2 Ultra",0}, {PCI_CHIP_QUADRO2PRO, "Quadro 2 Pro",0}, + {PCI_CHIP_GEFORCE3, "GeForce3",0}, + {PCI_CHIP_GEFORCE3_1, "GeForce3 (rev 1)",0}, + {PCI_CHIP_GEFORCE3_2, "GeForce3 (rev 2)",0}, + {PCI_CHIP_GEFORCE3_3, "GeForce3 (rev 3)",0}, {0x0000, NULL,0}}}, -#ifdef VENDOR_INCLUDE_NONVIDEO {PCI_VENDOR_IMS, { + {PCI_CHIP_IMSTT128, "TwinTurbo 128", 0}, + {PCI_CHIP_IMSTT3D, "TwinTurbo 3D", 0}, +#ifdef VENDOR_INCLUDE_NONVIDEO {0x8849, "8849",0 }, +#endif {0x0000, NULL,0}}}, +#ifdef VENDOR_INCLUDE_NONVIDEO {PCI_VENDOR_TEKRAM, { {0x690C, "DC690C",0 }, {0x0000, NULL,0}}}, @@ -1377,9 +1421,14 @@ {PCI_CHIP_GAMMA, "GLINT Gamma",0}, {PCI_CHIP_PERMEDIA2V, "GLINT Permedia 2v",0}, {PCI_CHIP_PERMEDIA3, "GLINT Permedia 3",0}, + {PCI_CHIP_PERMEDIA4, "GLINT Permedia 4",0}, + {PCI_CHIP_R4, "GLINT R4",0}, + {PCI_CHIP_R4ALT, "GLINT R4 (Alt)",0}, + {PCI_CHIP_GAMMA2, "GLINT Gamma 2",0}, {0x0000, NULL,0}}}, {PCI_VENDOR_AVANCE_2, { {PCI_CHIP_ALG2064, "ALG2064",0}, + {PCI_CHIP_ALG2501, "ALG2501",0}, {0x0000, NULL,0}}}, {PCI_VENDOR_S3, { {PCI_CHIP_PLATO, "PLATO/PX",0}, @@ -1509,6 +1558,10 @@ {PCI_CHIP_SMI712, "LynxEM+",0}, {PCI_CHIP_SMI720, "Lynx3DM",0}, {0x0000, NULL,0}}}, + {PCI_VENDOR_VMWARE, { + {PCI_CHIP_VMWARE0405, "PCI SVGA (FIFO)",0}, + {PCI_CHIP_VMWARE0710, "LEGACY SVGA",0}, + {0x0000, NULL,0}}}, {0x0000, { {0x0000, NULL,0}}}, }; @@ -1566,14 +1619,14 @@ { 0x0000, (char *)NULL,0, NF } } }, #endif { PCI_VENDOR_SONY, { - { 0x8051, "Vaio Video",0,NF }, + { 0x8051, "Vaio Video",0,NF }, #ifdef VENDOR_INCLUDE_NONVIDEO - { 0x8052, "Vaio Audio",0,NF }, - { 0x8054, "Vaio Firewire",0,NF }, - { 0x8056, "Vaio Modem",0,NF }, - { 0x8057, "Vaio Ethernet",0,NF }, + { 0x8052, "Vaio Audio",0,NF }, + { 0x8054, "Vaio Firewire",0,NF }, + { 0x8056, "Vaio Modem",0,NF }, + { 0x8057, "Vaio Ethernet",0,NF }, #endif - { 0x0000, (char *)NULL,0, NF } } }, + { 0x0000, (char *)NULL,0, NF } } }, { PCI_VENDOR_DIAMOND, { { 0x0003, "Monster Fusion",0, NF }, { 0x00b8, "Fire GL1",0, NF }, @@ -1592,6 +1645,35 @@ { 0x8760, "Fireport 40 Dual",0, NF }, { 0x8a10, "Stealth 3D 4000",0, NF }, { 0x0000, (char *)NULL,0, NF } } }, + { PCI_VENDOR_APPIAN, { + { 0x3d32, "Jeronimo 2000",0, NF }, + { 0x3db3, "Jeronimo Pro",0, NF }, + { 0x0000, (char *)NULL,0, NF } } }, + { PCI_VENDOR_3DFX, { + { PCI_CARD_VOODOO3_2000, "Voodoo3 2000",0, NF }, + { PCI_CARD_VOODOO3_3000, "Voodoo3 3000",0, NF }, + { 0x0000, (char *)NULL,0, NF } } }, + { PCI_VENDOR_3DLABS, { + { 0x0096, "Permedia",0, NF }, + { 0x0098, "PermediaNT",0, NF }, + { 0x0099, "PermediaLC",0, NF }, + { 0x0100, "Permedia2 PCI",0, NF }, + { 0x0101, "Permedia2 AGP",0, NF }, + { 0x0102, "Oxygen GMX2000 PCI",0, NF }, + { 0x0106, "Oxygen GMX2000 AGP",0, NF }, + { 0x0116, "Oxygen GVX1 AGP",0, NF }, + { 0x0121, "Oxygen VX1 PCI",0, NF }, + { 0x0122, "Oxygen ACX AGP",0, NF }, + { 0x0123, "Oxygen ACX PCI",0, NF }, + { 0x0125, "Oxygen VX1 AGP",0, NF }, + { 0x0127, "Permedia3 Create!",0, NF }, + { 0x0134, "Oxygen GVX1 PCI",0, NF }, + { 0x0136, "Oxygen GVX210 AGP",0, NF }, + { 0x0140, "Oxygen VX1-16 AGP",0, NF }, + { 0x0144, "Oxygen VX1-4X AGP",0, NF }, + { 0x0400, "Oxygen GVX420 AGP",0, NF }, + { 0x0800, "Oxygen VX1-1600SW PCI",0, NF }, + { 0x0000, (char *)NULL,0, NF } } }, { PCI_VENDOR_ELSA, { { 0x0914, "Winner 1000",0, NF }, { 0x0930, "Winner 1000PRO 864",0, NF }, @@ -1711,6 +1793,12 @@ { PCI_VENDOR_NETGEAR, { { 0xf004, "FA310-TX Rev. D2",0, NF }, { 0x0000, (char *)NULL,0, NF } } }, +#endif +#if 0 + { PCI_VENDOR_VMWARE, { + {PCI_CHIP_VMWARE0405, "PCI SVGA (FIFO)",0, NF }, + {PCI_CHIP_VMWARE0710, "LEGACY SVGA",0, NF }, + {0x0000, NULL,0, NF } } }, #endif {0x0000, { {0x0000, NULL,0, NF } } }, Index: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86Priv.h:3.69 xc/programs/Xserver/hw/xfree86/common/xf86Priv.h:3.72 --- xc/programs/Xserver/hw/xfree86/common/xf86Priv.h:3.69 Thu Dec 7 10:43:40 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Priv.h Tue May 15 14:22:21 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h,v 3.69 2000/12/07 15:43:40 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Priv.h,v 3.72 2001/05/15 18:22:21 paulo Exp $ */ /* * Copyright (c) 1997 by The XFree86 Project, Inc. @@ -63,7 +63,6 @@ extern MessageType xf86LogFileFrom; extern serverLayoutRec xf86ConfigLayout; extern Pix24Flags xf86ConfigPix24; -extern confDRIRec xf86ConfigDRI; extern unsigned short xf86MouseCflags[]; extern Bool xf86SupportedMouseTypes[]; @@ -71,6 +70,8 @@ #ifdef XFree86LOADER extern DriverPtr *xf86DriverList; +extern ModuleInfoPtr *xf86ModuleInfoList; +extern int xf86NumModuleInfos; #else extern DriverPtr xf86DriverList[]; #endif @@ -126,7 +127,7 @@ void xf86AddDevToEntity(int entityIndex, GDevPtr dev); extern void xf86PostPreInit(void); extern void xf86PostScreenInit(void); -extern memType getValidBIOSBase(PCITAG tag, int *num); +extern memType getValidBIOSBase(PCITAG tag, int num); extern int pciTestMultiDeviceCard(int bus, int dev, int func, PCITAG** pTag); /* xf86Config.c */ Index: xc/programs/Xserver/hw/xfree86/common/xf86Privstr.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86Privstr.h:1.21 xc/programs/Xserver/hw/xfree86/common/xf86Privstr.h:1.25 --- xc/programs/Xserver/hw/xfree86/common/xf86Privstr.h:1.21 Mon Nov 6 14:24:07 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Privstr.h Fri May 18 12:03:11 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Privstr.h,v 1.21 2000/11/06 19:24:07 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Privstr.h,v 1.25 2001/05/18 16:03:11 tsi Exp $ */ /* * Copyright (c) 1997,1998 by The XFree86 Project, Inc. @@ -12,10 +12,8 @@ #ifndef _XF86PRIVSTR_H #define _XF86PRIVSTR_H -#include "Xproto.h" #include "xf86Pci.h" -#ifdef XINPUT -#endif +#include "xf86str.h" /* PCI probe flags */ @@ -124,6 +122,7 @@ #endif Bool pmFlag; int estimateSizesAggressively; + Bool kbdCustomKeycodes; } xf86InfoRec, *xf86InfoPtr; #ifdef DPMSExtension @@ -200,6 +199,9 @@ #endif #ifndef X_INFO_STRING #define X_INFO_STRING "(II)" +#endif +#ifndef X_NOT_IMPLEMENTED_STRING +#define X_NOT_IMPLEMENTED_STRING "(NI)" #endif #endif /* _XF86PRIVSTR_H */ Index: xc/programs/Xserver/hw/xfree86/common/xf86Resources.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86Resources.h:1.11 xc/programs/Xserver/hw/xfree86/common/xf86Resources.h:1.11.4.1 --- xc/programs/Xserver/hw/xfree86/common/xf86Resources.h:1.11 Tue Jul 11 12:14:57 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Resources.h Mon May 28 10:23:37 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Resources.h,v 1.11 2000/07/11 16:14:57 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Resources.h,v 1.11.4.1 2001/05/28 14:23:37 eich Exp $ */ #ifndef _XF86_RESOURCES_H @@ -80,16 +80,16 @@ {ResShrIoSparse | ResBios | ResBus, 0x02E8, 0x03F8} /* predefined resources */ -extern resRange resVgaExclusive[]; -extern resRange resVgaShared[]; -extern resRange resVgaIoShared[]; -extern resRange resVgaMemShared[]; -extern resRange resVgaUnusedExclusive[]; -extern resRange resVgaUnusedShared[]; -extern resRange resVgaSparseExclusive[]; -extern resRange resVgaSparseShared[]; -extern resRange res8514Exclusive[]; -extern resRange res8514Shared[]; +extern const resRange resVgaExclusive[]; +extern const resRange resVgaShared[]; +extern const resRange resVgaIoShared[]; +extern const resRange resVgaMemShared[]; +extern const resRange resVgaUnusedExclusive[]; +extern const resRange resVgaUnusedShared[]; +extern const resRange resVgaSparseExclusive[]; +extern const resRange resVgaSparseShared[]; +extern const resRange res8514Exclusive[]; +extern const resRange res8514Shared[]; /* Less misleading aliases for xf86SetOpratingState() */ #define resVgaMem resVgaMemShared Index: xc/programs/Xserver/hw/xfree86/common/xf86Switch.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Switch.c:3.8 xc/programs/Xserver/hw/xfree86/common/xf86Switch.c:3.9 --- xc/programs/Xserver/hw/xfree86/common/xf86Switch.c:3.8 Thu May 6 22:56:14 1999 +++ xc/programs/Xserver/hw/xfree86/common/xf86Switch.c Fri Apr 20 12:32:31 2001 @@ -21,14 +21,10 @@ * */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Switch.c,v 3.8 1999/05/07 02:56:14 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Switch.c,v 3.9 2001/04/20 16:32:31 tsi Exp $ */ -#if !defined(sun) || defined(i386) #include "xf86.h" #include "xf86Xinput.h" -#else -#include "extio.h" -#endif /****************************************************************************** * debugging macro Index: xc/programs/Xserver/hw/xfree86/common/xf86VidMode.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86VidMode.c:1.9 xc/programs/Xserver/hw/xfree86/common/xf86VidMode.c:1.12 --- xc/programs/Xserver/hw/xfree86/common/xf86VidMode.c:1.9 Wed Dec 6 17:00:46 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86VidMode.c Sun May 6 17:59:07 2001 @@ -1,7 +1,7 @@ /* * Copyright (c) 1999 by The XFree86 Project, Inc. */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86VidMode.c,v 1.9 2000/12/06 22:00:46 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86VidMode.c,v 1.12 2001/05/06 21:59:07 mvojkovi Exp $ */ /* * This file contains the VidMode functions required by the extension. @@ -91,8 +91,12 @@ pScreen->CloseScreen = pVidMode->CloseScreen; - if (--VidModeCount == 0) + if (--VidModeCount == 0) { + if (pScreen->devPrivates[VidModeIndex].ptr) + xfree(pScreen->devPrivates[VidModeIndex].ptr); + pScreen->devPrivates[VidModeIndex].ptr = NULL; VidModeIndex = -1; + } return pScreen->CloseScreen(i, pScreen); } @@ -538,6 +542,41 @@ *green = pScrn->gamma.green; *blue = pScrn->gamma.blue; return TRUE; +} + +Bool +VidModeSetGammaRamp(int scrnIndex, int size, CARD16 *r, CARD16 *g, CARD16 *b) +{ + ScrnInfoPtr pScrn; + + if (!VidModeAvailable(scrnIndex)) + return FALSE; + + pScrn = xf86Screens[scrnIndex]; + xf86ChangeGammaRamp(pScrn->pScreen, size, r, g, b); + return TRUE; +} + +Bool +VidModeGetGammaRamp(int scrnIndex, int size, CARD16 *r, CARD16 *g, CARD16 *b) +{ + ScrnInfoPtr pScrn; + + if (!VidModeAvailable(scrnIndex)) + return FALSE; + + pScrn = xf86Screens[scrnIndex]; + xf86GetGammaRamp(pScrn->pScreen, size, r, g, b); + return TRUE; +} + +int +VidModeGetGammaRampSize(int scrnIndex) +{ + if (!VidModeAvailable(scrnIndex)) + return 0; + + return xf86GetGammaRampSize(xf86Screens[scrnIndex]->pScreen); } pointer Index: xc/programs/Xserver/hw/xfree86/common/xf86Xinput.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86Xinput.c:3.62 xc/programs/Xserver/hw/xfree86/common/xf86Xinput.c:3.63 --- xc/programs/Xserver/hw/xfree86/common/xf86Xinput.c:3.62 Fri Sep 22 19:41:01 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Xinput.c Sun Apr 1 10:00:08 2001 @@ -22,7 +22,7 @@ * */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Xinput.c,v 3.62 2000/09/22 23:41:01 keithp Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Xinput.c,v 3.63 2001/04/01 14:00:08 tsi Exp $ */ #include "Xfuncproto.h" #include "Xmd.h" @@ -31,7 +31,6 @@ #include "XIproto.h" #endif #include "xf86.h" -#include "Xpoll.h" #include "xf86Priv.h" #include "xf86Xinput.h" #ifdef XINPUT @@ -61,7 +60,7 @@ #include #include "osdep.h" /* EnabledDevices */ - +#include "Xpoll.h" #include "xf86_OSproc.h" /* sigio stuff */ /****************************************************************************** Index: xc/programs/Xserver/hw/xfree86/common/xf86Xinput.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86Xinput.h:3.32 xc/programs/Xserver/hw/xfree86/common/xf86Xinput.h:3.34 --- xc/programs/Xserver/hw/xfree86/common/xf86Xinput.h:3.32 Wed Nov 29 10:51:20 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86Xinput.h Mon Apr 16 17:08:24 2001 @@ -22,7 +22,7 @@ * */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Xinput.h,v 3.32 2000/11/29 15:51:20 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86Xinput.h,v 3.34 2001/04/16 21:08:24 herrb Exp $ */ #ifndef _xf86Xinput_h #define _xf86Xinput_h @@ -30,8 +30,7 @@ #ifndef NEED_EVENTS #define NEED_EVENTS #endif -#include "X.h" -#include "Xproto.h" +#include "xf86str.h" #include "inputstr.h" #ifdef XINPUT #include "extensions/XI.h" @@ -71,6 +70,7 @@ #endif #define HAS_MOTION_HISTORY(local) ((local)->dev->valuator && (local)->dev->valuator->numMotionEvents) +#ifdef XINPUT /* This holds the input driver entry and module information. */ typedef struct _InputDriverRec { int driverVersion; @@ -84,7 +84,7 @@ pointer module; int refCount; } InputDriverRec, *InputDriverPtr; - +#endif /* This is to input devices what the ScrnInfoRec is to screens. */ Index: xc/programs/Xserver/hw/xfree86/common/xf86cmap.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86cmap.c:1.19 xc/programs/Xserver/hw/xfree86/common/xf86cmap.c:1.22 --- xc/programs/Xserver/hw/xfree86/common/xf86cmap.c:1.19 Fri Mar 17 15:43:34 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86cmap.c Sun May 6 17:59:07 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86cmap.c,v 1.19 2000/03/17 20:43:34 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86cmap.c,v 1.22 2001/05/06 21:59:07 mvojkovi Exp $ */ #ifdef _XOPEN_SOURCE #include @@ -465,7 +465,8 @@ pScreenPriv->isDGAmode = DGAActive(index); - if(!pScreenPriv->isDGAmode && miInstalledMaps[index]) + if(!pScreenPriv->isDGAmode && miInstalledMaps[index] + && xf86Screens[pScreen->myNum]->vtSema) CMapReinstallMap(miInstalledMaps[index]); return ret; @@ -923,6 +924,148 @@ return Success; } + +static void +ComputeGammaRamp ( + CMapScreenPtr priv, + unsigned short *red, + unsigned short *green, + unsigned short *blue +){ + int elements = priv->gammaElements; + LOCO *entry = priv->gamma; + int shift = 16 - priv->sigRGBbits; + + while(elements--) { + entry->red = *(red++) >> shift; + entry->green = *(green++) >> shift; + entry->blue = *(blue++) >> shift; + entry++; + } +} + +int +xf86ChangeGammaRamp( + ScreenPtr pScreen, + int size, + unsigned short *red, + unsigned short *green, + unsigned short *blue +){ + ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + CMapColormapPtr pColPriv; + CMapScreenPtr pScreenPriv; + CMapLinkPtr pLink; + + if(CMapScreenIndex == -1) + return BadImplementation; + + pScreenPriv = (CMapScreenPtr)pScreen->devPrivates[CMapScreenIndex].ptr; + if(!pScreenPriv) + return BadImplementation; + + if(pScreenPriv->gammaElements != size) + return BadValue; + + ComputeGammaRamp(pScreenPriv, red, green, blue); + + /* mark all colormaps on this screen */ + pLink = pScreenPriv->maps; + while(pLink) { + pColPriv = + (CMapColormapPtr) pLink->cmap->devPrivates[CMapColormapIndex].ptr; + pColPriv->recalculate = TRUE; + pLink = pLink->next; + } + + if(miInstalledMaps[pScreen->myNum] && + ((pScreenPriv->flags & CMAP_LOAD_EVEN_IF_OFFSCREEN) || + pScrn->vtSema || pScreenPriv->isDGAmode)) { + ColormapPtr pMap = miInstalledMaps[pScreen->myNum]; + + if(!(pScreenPriv->flags & CMAP_PALETTED_TRUECOLOR) && + (pMap->pVisual->class == TrueColor) && + ((1 << pMap->pVisual->nplanes) > pScreenPriv->maxColors)) { + + /* if the current map doesn't have a palette look + for another map to change the gamma on. */ + + pLink = pScreenPriv->maps; + while(pLink) { + if(pLink->cmap->pVisual->class == PseudoColor) + break; + pLink = pLink->next; + } + + if(pLink) { + /* need to trick CMapRefreshColors() into thinking + this is the currently installed map */ + miInstalledMaps[pScreen->myNum] = pLink->cmap; + CMapReinstallMap(pLink->cmap); + miInstalledMaps[pScreen->myNum] = pMap; + } + } else + CMapReinstallMap(pMap); + } + + return Success; +} + +int +xf86GetGammaRampSize(ScreenPtr pScreen) +{ + CMapScreenPtr pScreenPriv; + + if(CMapScreenIndex == -1) return 0; + + pScreenPriv = (CMapScreenPtr)pScreen->devPrivates[CMapScreenIndex].ptr; + if(!pScreenPriv) return 0; + + return pScreenPriv->gammaElements; +} + +int +xf86GetGammaRamp( + ScreenPtr pScreen, + int size, + unsigned short *red, + unsigned short *green, + unsigned short *blue +){ + CMapScreenPtr pScreenPriv; + LOCO *entry; + int shift, sigbits; + + if(CMapScreenIndex == -1) + return BadImplementation; + + pScreenPriv = (CMapScreenPtr)pScreen->devPrivates[CMapScreenIndex].ptr; + if(!pScreenPriv) + return BadImplementation; + + if(size > pScreenPriv->gammaElements) + return BadValue; + + entry = pScreenPriv->gamma; + sigbits = pScreenPriv->sigRGBbits; + + while(size--) { + *red = entry->red << (16 - sigbits); + *green = entry->green << (16 - sigbits); + *blue = entry->blue << (16 - sigbits); + shift = sigbits; + while(shift < 16) { + *red |= *red >> shift; + *green |= *green >> shift; + *blue |= *blue >> shift; + shift += sigbits; + } + red++; green++; blue++; + entry++; + } + + return Success; +} int xf86ChangeGamma( Index: xc/programs/Xserver/hw/xfree86/common/xf86cmap.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86cmap.h:1.6 xc/programs/Xserver/hw/xfree86/common/xf86cmap.h:1.7 --- xc/programs/Xserver/hw/xfree86/common/xf86cmap.h:1.6 Thu May 11 14:14:28 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86cmap.h Sat May 5 20:49:12 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86cmap.h,v 1.6 2000/05/11 18:14:28 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86cmap.h,v 1.7 2001/05/06 00:49:12 mvojkovi Exp $ */ #ifndef _XF86CMAP_H #define _XF86CMAP_H @@ -36,6 +36,26 @@ xf86ChangeGamma( ScreenPtr pScreen, Gamma newGamma +); + +int +xf86ChangeGammaRamp( + ScreenPtr pScreen, + int size, + unsigned short *red, + unsigned short *green, + unsigned short *blue +); + +int xf86GetGammaRampSize(ScreenPtr pScreen); + +int +xf86GetGammaRamp( + ScreenPtr pScreen, + int size, + unsigned short *red, + unsigned short *green, + unsigned short *blue ); #endif /* _XF86CMAP_H */ Index: xc/programs/Xserver/hw/xfree86/common/xf86fbman.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86fbman.c:1.19 xc/programs/Xserver/hw/xfree86/common/xf86fbman.c:1.22 --- xc/programs/Xserver/hw/xfree86/common/xf86fbman.c:1.19 Fri Nov 24 18:18:29 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86fbman.c Thu May 10 06:17:39 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86fbman.c,v 1.19 2000/11/24 23:18:29 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86fbman.c,v 1.22 2001/05/10 10:17:39 alanh Exp $ */ #include "misc.h" #include "xf86.h" @@ -917,7 +917,7 @@ extents = REGION_EXTENTS(pScreen, offman->InitialBoxes); pitch = extents->x2 - extents->x1; - if(length < w) { /* special case */ + if(length < pitch) { /* special case */ w = length; h = 1; } else { @@ -1011,7 +1011,10 @@ REGION_DESTROY(pScreen, offman->InitialBoxes); REGION_DESTROY(pScreen, offman->FreeBoxes); + xfree(offman->FreeBoxesUpdateCallback); + xfree(offman->devPrivates); xfree(offman); + pScreen->devPrivates[xf86FBScreenIndex].ptr = NULL; return (*pScreen->CloseScreen) (i, pScreen); } @@ -1036,6 +1039,9 @@ (FullBox->x2 < ScreenBox.x2) || (FullBox->y2 < ScreenBox.y2)) { return FALSE; } + + if (FullBox->y2 < FullBox->y1) return FALSE; + if (FullBox->x2 < FullBox->x2) return FALSE; REGION_INIT(pScreen, &ScreenRegion, &ScreenBox, 1); REGION_INIT(pScreen, &FullRegion, FullBox, 1); Index: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c:3.28 xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c:3.42 --- xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c:3.28 Fri Dec 8 15:13:35 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c Wed May 16 03:56:06 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c,v 3.28 2000/12/08 20:13:35 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c,v 3.42 2001/05/16 07:56:06 alanh Exp $ */ /* * Copyright (c) 1997-1999 by The XFree86 Project, Inc. @@ -175,45 +175,64 @@ if ((PCISHAREDIOCLASSES(baseclass, subclass)) && (pcrp->pci_command & PCI_CMD_IO_ENABLE) && (pcrp->pci_prog_if == 0)) { - /* assumption: primary bus is always VGA */ - primaryBus.type = BUS_PCI; - primaryBus.id.pci.bus = pcrp->busnum; - primaryBus.id.pci.device = pcrp->devnum; - primaryBus.id.pci.func = pcrp->funcnum; + + /* + * Attempt to ensure that VGA is actually routed to this + * adapter on entry. This needs to be fixed when we finally + * grok host bridges (and multiple bus trees). + */ + j = info->bus; + while (j > 0) { + PciBusPtr pBus = xf86PciBus; + while (pBus && j != pBus->secondary) + pBus = pBus->next; + if (!pBus || !(pBus->brcontrol & PCI_PCI_BRIDGE_VGA_EN)) + break; + j = pBus->brbus; + } + if (j <= 0) { + if (primaryBus.type == BUS_NONE) { + /* assumption: primary bus is always VGA */ + primaryBus.type = BUS_PCI; + primaryBus.id.pci.bus = pcrp->busnum; + primaryBus.id.pci.device = pcrp->devnum; + primaryBus.id.pci.func = pcrp->funcnum; + } else if (primaryBus.type < BUS_last) { + xf86Msg(X_NOTICE, + "More than one primary device found\n"); + primaryBus.type ^= (BusType)(-1); + } + } } for (j = 0; j < 6; j++) { info->memBase[j] = 0; info->ioBase[j] = 0; - if (PCINONSYSTEMCLASSES(info->class, info->subclass)) { - info->size[j] = pciGetBaseSize(pcrp->tag, j, TRUE, - &info->validSize); + if (PCINONSYSTEMCLASSES(baseclass, subclass)) { + info->size[j] = + pciGetBaseSize(pcrp->tag, j, TRUE, &info->validSize); + pcrp->minBasesize = info->validSize; } else { info->size[j] = pcrp->basesize[j]; info->validSize = pcrp->minBasesize; } - /* pciGetBaseSize(pcrp->tag, j, FALSE, NULL) */ info->type[j] = 0; } - if (!(pcrp->pci_base0) && info->size[0] - && PCINONSYSTEMCLASSES(info->class, info->subclass)) - pcrp->pci_base0 = pciCheckForBrokenBase(pcrp->tag,0); - if (!(pcrp->pci_base1) && info->size[1] - && PCINONSYSTEMCLASSES(info->class, info->subclass)) - pcrp->pci_base1 = pciCheckForBrokenBase(pcrp->tag,1); - if (!(pcrp->pci_base2) && info->size[2] - && PCINONSYSTEMCLASSES(info->class, info->subclass)) - pcrp->pci_base2 = pciCheckForBrokenBase(pcrp->tag,2); - if (!(pcrp->pci_base3) && info->size[3] - && PCINONSYSTEMCLASSES(info->class, info->subclass)) - pcrp->pci_base3 = pciCheckForBrokenBase(pcrp->tag,3); - if (!(pcrp->pci_base4) && info->size[4] - && PCINONSYSTEMCLASSES(info->class, info->subclass)) - pcrp->pci_base4 = pciCheckForBrokenBase(pcrp->tag,4); - if (!(pcrp->pci_base5) && info->size[5] - && PCINONSYSTEMCLASSES(info->class, info->subclass)) - pcrp->pci_base5 = pciCheckForBrokenBase(pcrp->tag,5); + if (PCINONSYSTEMCLASSES(baseclass, subclass)) { + if (!pcrp->pci_base0 && info->size[0]) + pcrp->pci_base0 = pciCheckForBrokenBase(pcrp->tag, 0); + if (!pcrp->pci_base1 && info->size[1]) + pcrp->pci_base1 = pciCheckForBrokenBase(pcrp->tag, 1); + if (!pcrp->pci_base2 && info->size[2]) + pcrp->pci_base2 = pciCheckForBrokenBase(pcrp->tag, 2); + if (!pcrp->pci_base3 && info->size[3]) + pcrp->pci_base3 = pciCheckForBrokenBase(pcrp->tag, 3); + if (!pcrp->pci_base4 && info->size[4]) + pcrp->pci_base4 = pciCheckForBrokenBase(pcrp->tag, 4); + if (!pcrp->pci_base5 && info->size[5]) + pcrp->pci_base5 = pciCheckForBrokenBase(pcrp->tag, 5); + } /* * 64-bit base addresses are checked for and avoided. @@ -387,7 +406,8 @@ xf86ErrorF("unknown chipset (0x%04x) ", info->chipType); xf86ErrorF("rev %d", info->chipRev); for (i = 0; i < 6; i++) { - if (info->memBase[i]) { + if (info->memBase[i] && + (info->memBase[i] < (memType)(-1 << info->size[i]))) { if (!memdone) { xf86ErrorF(", Mem @ "); memdone = TRUE; @@ -397,7 +417,8 @@ } } for (i = 0; i < 6; i++) { - if (info->ioBase[i]) { + if (info->ioBase[i] && + (info->ioBase[i] < (memType)(-1 << info->size[i]))) { if (!iodone) { xf86ErrorF(", I/O @ "); iodone = TRUE; @@ -406,6 +427,10 @@ xf86ErrorF("0x%04x/%d", info->ioBase[i], info->size[i]); } } + if (info->biosBase && + (info->biosBase < (memType)(-1 << info->biosSize))) + xf86ErrorF(", BIOS @ 0x%08x/%d", + info->biosBase, info->biosSize); xf86ErrorF("\n"); } } @@ -752,7 +777,7 @@ } } - RemoveOverlaps(target,bridgeRes,TRUE); + RemoveOverlaps(target, bridgeRes, TRUE, TRUE); if (range.rEnd > target->block_end) { correctPciSize(range.rBegin,range.rEnd - range.rBegin, target->block_end - target->block_begin, @@ -800,12 +825,14 @@ resMisc |= ResEstimated; for (i = 0; i < 6; i++) { - if (pvp->ioBase[i]) { + if (pvp->ioBase[i] && + (pvp->ioBase[i] < (memType)(-1 << pvp->size[i]))) { PV_I_RANGE(range,pvp,i,ResExcIoBlock | resMisc); tmp = xf86AddResToList(NULL, &range, -1); removeOverlapsWithBridges(pvp->bus,tmp); *res = xf86JoinResLists(tmp,*res); - } else if (pvp->memBase[i]) { + } else if (pvp->memBase[i] && + (pvp->memBase[i] < (memType)(-1 << pvp->size[i]))) { PV_M_RANGE(range, pvp,i, ResExcMemBlock | resMisc); tmp = xf86AddResToList(NULL, &range, -1); removeOverlapsWithBridges(pvp->bus,tmp); @@ -815,7 +842,8 @@ /* FIXME!!!: Don't use BIOS resources for overlap * checking but reserve them! */ - if (pvp->biosBase) { + if (pvp->biosBase && + (pvp->biosBase < (memType)(-1 << pvp->biosSize))) { PV_B_RANGE(range, pvp, ResExcMemBlock | resMisc); tmp = xf86AddResToList(NULL, &range, -1); removeOverlapsWithBridges(pvp->bus,tmp); @@ -826,7 +854,9 @@ for (pcrpp = xf86PciInfo, pcrp = *pcrpp; pcrp; pcrp = *++(pcrpp)) { resPtr *res; - if (PCIINFOCLASSES(pcrp->pci_base_class, pcrp->pci_sub_class)) + if (PCIINFOCLASSES((pcrp->listed_class & 0xffff) ? + ((pcrp->listed_class >> 8) & 0x0ff) : + pcrp->pci_base_class, pcrp->pci_sub_class)) continue; /* Only process devices with type 0 headers */ @@ -868,7 +898,9 @@ } } } - if (pcrp->pci_baserom) { + /* Ignore disabled non-video ROMs */ + if ((res == activeRes) && + (pcrp->pci_baserom & PCI_MAP_ROM_DECODE_ENABLE)) { P_M_RANGE(range,pcrp->tag,PCIGETROM(pcrp->pci_baserom), pcrp->basesize[6], ResExcMemBlock | resMisc); if (range.rBegin) { @@ -902,9 +934,9 @@ if (ResIsEstimated(&pRes->val)) { range = pRes->val; - RemoveOverlaps(pRes, *activeRes, TRUE); - if (xf86Info.estimateSizesAggressively > 0) - RemoveOverlaps(pRes, *inactiveRes, TRUE); + RemoveOverlaps(pRes, *activeRes, TRUE, TRUE); + RemoveOverlaps(pRes, *inactiveRes, TRUE, + (xf86Info.estimateSizesAggressively > 0)); if (range.rEnd > pRes->block_end) { correctPciSize(range.rBegin,range.rEnd - range.rBegin, @@ -923,14 +955,16 @@ xf86PrintResList(3, *activeRes); } - if (*inactiveRes && (xf86Info.estimateSizesAggressively > 1)) { + if (*inactiveRes) { /* Check for overlaps */ for (pRes = *inactiveRes; pRes; pRes = pRes->next) { if (ResIsEstimated(&pRes->val)) { range = pRes->val; - RemoveOverlaps(pRes, *activeRes, TRUE); - RemoveOverlaps(pRes, *inactiveRes, TRUE); + RemoveOverlaps(pRes, *activeRes, TRUE, + (xf86Info.estimateSizesAggressively > 1)); + RemoveOverlaps(pRes, *inactiveRes, TRUE, + (xf86Info.estimateSizesAggressively > 1)); if (range.rEnd > pRes->block_end) { correctPciSize(range.rBegin,range.rEnd - range.rBegin, @@ -946,7 +980,7 @@ } } xf86MsgVerb(X_INFO, 3, - "Ative PCI resource ranges after removing overlaps:\n"); + "Inactive PCI resource ranges after removing overlaps:\n"); xf86PrintResList(3, *inactiveRes); } } @@ -968,7 +1002,7 @@ */ for (tmp = *osRes; tmp; tmp = tmp->next) - RemoveOverlaps(tmp, activeRes, FALSE); + RemoveOverlaps(tmp, activeRes, FALSE, TRUE); xf86MsgVerb(X_INFO, 3, "OS-reported resource ranges after removing" " overlaps with PCI:\n"); @@ -976,7 +1010,7 @@ pciAvoidRes = xf86AddRangesToList(pciAvoidRes,PciAvoid,-1); for (tmp = pciAvoidRes; tmp; tmp = tmp->next) - RemoveOverlaps(tmp, activeRes, FALSE); + RemoveOverlaps(tmp, activeRes, FALSE, TRUE); tmp = xf86DupResList(*osRes); pciAvoidRes = xf86JoinResLists(pciAvoidRes,tmp); @@ -1160,13 +1194,12 @@ xf86FreeResList(w_2nd); xf86FreeResList(avoid); return TRUE; - } else { + } #ifdef DEBUG - ErrorF("removing old resource\n"); + ErrorF("removing old resource\n"); #endif - orgAcc = Acc; - Acc = AccTmp; - } + orgAcc = Acc; + Acc = AccTmp; #else orgAcc = xf86DupResList(Acc); pAcc = &Acc; @@ -1349,7 +1382,127 @@ /* * BIOS releated */ +memType +getValidBIOSBase(PCITAG tag, int num) +{ + pciVideoPtr pvp = NULL; + PciBusPtr pbp, pbp1; + resPtr m = NULL; + resPtr tmp, avoid; + resRange range; + memType ret; + int n = 0; + CARD32 biosSize, alignment; + + if (!xf86PciVideoInfo) return 0; + + while ((pvp = xf86PciVideoInfo[n++])) { + if (pciTag(pvp->bus,pvp->device,pvp->func) == tag) + break; + } + if (!pvp) return 0; + + biosSize = pvp->biosSize; + alignment = (1 << biosSize) - 1; + if (biosSize > 24) + biosSize = 24; + + switch ((romBaseSource)num) { + case ROM_BASE_PRESET: + return 0; /* This should not happen */ + case ROM_BASE_BIOS: + /* In some cases the BIOS base register contains the size mask */ + if ((memType)(-1 << biosSize) == PCIGETROM(pvp->biosBase)) + return 0; + P_M_RANGE(range, TAG(pvp),pvp->biosBase,biosSize,ResExcMemBlock); + ret = pvp->biosBase; + break; + case ROM_BASE_MEM0: + case ROM_BASE_MEM1: + case ROM_BASE_MEM2: + case ROM_BASE_MEM3: + case ROM_BASE_MEM4: + case ROM_BASE_MEM5: + if (!pvp->memBase[num] || (pvp->size[n] < biosSize)) + return 0; + P_M_RANGE(range, TAG(pvp),pvp->memBase[num],biosSize, + ResExcMemBlock); + ret = pvp->memBase[num]; + break; + case ROM_BASE_FIND: + ret = 0; + break; + default: + return 0; /* This should not happen */ + } + + /* Now find the ranges for validation */ + avoid = xf86DupResList(pciAvoidRes); + pbp = pbp1 = xf86PciBus; + while (pbp) { + if (pbp->secondary == pvp->bus) { + if (pbp->preferred_pmem) + tmp = xf86DupResList(pbp->preferred_pmem); + else + tmp = xf86DupResList(pbp->pmem); + m = xf86JoinResLists(m,tmp); + if (pbp->preferred_mem) + tmp = xf86DupResList(pbp->preferred_mem); + else + tmp = xf86DupResList(pbp->mem); + m = xf86JoinResLists(m,tmp); + tmp = m; + while (tmp) { + tmp->block_end = MIN(tmp->block_end,PCI_MEM32_LENGTH_MAX); + tmp = tmp->next; + } + } + while (pbp1) { + if (pbp1->primary == pvp->bus) { + tmp = xf86DupResList(pbp1->preferred_pmem); + avoid = xf86JoinResLists(avoid,tmp); + tmp = xf86DupResList(pbp1->pmem); + avoid = xf86JoinResLists(avoid,tmp); + tmp = xf86DupResList(pbp1->preferred_mem); + avoid = xf86JoinResLists(avoid,tmp); + tmp = xf86DupResList(pbp1->mem); + avoid = xf86JoinResLists(avoid,tmp); + } + pbp1 = pbp1->next; + } + pbp = pbp->next; + } + pciConvertListToHost(pvp->bus,pvp->device,pvp->func, avoid); + + if (!ret) { + /* + * Return a possible window. Note that this doesn't deal with + * host bridges yet. But the fix for that belongs elsewhere. + */ + while (m) { + range = xf86GetBlock(ResExcMemBlock, + PCI_SIZE(ResMem, TAG(pvp), 1 << biosSize), + m->block_begin, m->block_end, + PCI_SIZE(ResMem, TAG(pvp), alignment), + avoid); + if (range.type != ResEnd) { + ret = M2B(TAG(pvp), range.rBase); + break; + } + m = m->next; + } + } else { + if (!xf86IsSubsetOf(range, m) || + ChkConflict(&range, avoid, SETUP)) + ret = 0; + } + + xf86FreeResList(avoid); + xf86FreeResList(m); + return ret; +} +#if 0 memType getValidBIOSBase(PCITAG tag, int *num) { @@ -1411,7 +1564,9 @@ } pciConvertListToHost(pvp->bus,pvp->device,pvp->func, avoid); - if (pvp->biosBase) { /* try biosBase first */ + if (pvp->biosBase && + (pvp->biosBase < (memType)(-1 << pvp->biosSize))) { + /* try biosBase first */ P_M_RANGE(range, TAG(pvp),pvp->biosBase,biosSize,ResExcMemBlock); if (xf86IsSubsetOf(range,m) && ! ChkConflict(&range,avoid,SETUP)) { xf86FreeResList(avoid); @@ -1424,41 +1579,56 @@ if ((*num < 0) || (*num > 5) || !pvp->memBase[*num] || (pvp->size[*num] < biosSize)) { *num = -1; + } else { + P_M_RANGE(range, TAG(pvp), pvp->memBase[*num], biosSize, + ResExcMemBlock); + if (!xf86IsSubsetOf(range, m) || ChkConflict(&range, avoid, SETUP)) + *num = -1; + } + + if (*num < 0) { for (n = 0; n <= 5; n++) { if (pvp->memBase[n] && (pvp->size[n] >= biosSize)) { - *num = n; - break; + /* keep bios size ! */ + P_M_RANGE(range, TAG(pvp), pvp->memBase[*num], + biosSize, ResExcMemBlock); + if (xf86IsSubsetOf(range, m) && + !ChkConflict(&range, avoid, SETUP)) { + *num = n; + break; + } } } } - if (*num >= 0) { - /* then try suggested memBase */ - /* keep bios size ! */ - P_M_RANGE(range,TAG(pvp),pvp->memBase[*num],biosSize,ResExcMemBlock); - if (xf86IsSubsetOf(range,m) && !ChkConflict(&range,avoid,SETUP)) { - xf86FreeResList(avoid); - xf86FreeResList(m); - return pvp->memBase[*num]; - } - } + /* + * Return a possible window. Note that this doesn't deal with host bridges + * yet. But the fix for that belongs elsewhere. + */ while (m) { range = xf86GetBlock(ResExcMemBlock, - PCI_SIZE(ResMem,TAG(pvp),(1 << biosSize)), + PCI_SIZE(ResMem, TAG(pvp), 1 << biosSize), m->block_begin, m->block_end, - PCI_SIZE(ResMem,TAG(pvp),alignment), avoid); - if (range.type != ResEnd) - break; + PCI_SIZE(ResMem, TAG(pvp), alignment), avoid); + if (range.type != ResEnd) { + xf86FreeResList(avoid); + xf86FreeResList(m); + return M2B(TAG(pvp), range.rBase); + } m = m->next; } - + xf86FreeResList(avoid); xf86FreeResList(m); - xf86MsgVerb(X_INFO,5,"GetVaildBIOSBase for %x:%x:%x: BIOSbase 0x%lx\n", - pvp->bus,pvp->device,pvp->func, - (memType)M2B(TAG(pvp),range.rBase)); - return M2B(TAG(pvp),range.rBase); + + if (*num >= 0) { + /* then try suggested memBase */ + return pvp->memBase[*num]; + } + + return 0; } +#endif /* * xf86Bus.c interface @@ -1527,24 +1697,24 @@ iomap = pciReadByte(pcrp->tag, APB_IO_ADDRESS_MAP); memmap = pciReadByte(pcrp->tag, APB_MEM_ADDRESS_MAP); - /* if (pcrp->pci_command & PCI_CMD_IO_ENABLE) */ { /* ??? */ + if (pcrp->pci_command & PCI_CMD_IO_ENABLE) { for (i = 0; i < 8; i++) { if ((iomap & (1 << i)) != 0) { PCI_I_RANGE(range, pcrp->tag, (i << 21), (i << 21) + ((1 << 21) - 1), ResIo | ResBlock | ResExclusive); - PciBus->io = xf86AddResToList(PciBus->io, &range, -1); + PciBus->preferred_io = xf86AddResToList(PciBus->preferred_io, &range, -1); } } } - /* if (pcrp->pci_command & PCI_CMD_MEM_ENABLE) */ { /* ??? */ + if (pcrp->pci_command & PCI_CMD_MEM_ENABLE) { for (i = 0; i < 8; i++) { if ((memmap & (1 << i)) != 0) { PCI_M_RANGE(range, pcrp->tag, (i << 29), (i << 29) + ((1 << 29) - 1), ResMem | ResBlock | ResExclusive); - PciBus->mem = xf86AddResToList(PciBus->mem, &range, -1); + PciBus->preferred_mem = xf86AddResToList(PciBus->preferred_mem, &range, -1); } } } @@ -1561,7 +1731,9 @@ int MaxBus = 0; int i; memType base, limit; - + + resPtr pciBusAccWindows = xf86PciBusAccWindowsFromOS(); + if (pciInfo == NULL) return NULL; /* Add each PCI-PCI bridge */ @@ -1674,6 +1846,7 @@ PciBus->brdev = pcrp->devnum; PciBus->brfunc = pcrp->funcnum; PciBus->subclass = sub_class; + PciBus->brcontrol = PCI_PCI_BRIDGE_VGA_EN; xf86MsgVerb(X_INFO,3,"PCI-to-ISA bridge:\n"); break; case PCI_SUBCLASS_BRIDGE_HOST: @@ -1682,12 +1855,13 @@ PciBus->primary = -1; PciBus->secondary = -1; /* to be set below */ PciBus->subclass = sub_class; + PciBus->brcontrol = PCI_PCI_BRIDGE_VGA_EN; PciBus->preferred_io = xf86ExtractTypeFromList( - xf86PciBusAccWindowsFromOS(),ResIo); + pciBusAccWindows,ResIo); PciBus->preferred_mem = xf86ExtractTypeFromList( - xf86PciBusAccWindowsFromOS(),ResMem); + pciBusAccWindows,ResMem); PciBus->preferred_pmem = xf86ExtractTypeFromList( - xf86PciBusAccWindowsFromOS(),ResMem); + pciBusAccWindows,ResMem); xf86MsgVerb(X_INFO,3,"Host-to-PCI bridge:\n"); break; default: @@ -1719,11 +1893,11 @@ PciBus->secondary = i; PciBus->subclass = PCI_SUBCLASS_BRIDGE_HOST; PciBus->preferred_io = xf86ExtractTypeFromList( - xf86PciBusAccWindowsFromOS(),ResIo); + pciBusAccWindows,ResIo); PciBus->preferred_mem = xf86ExtractTypeFromList( - xf86PciBusAccWindowsFromOS(),ResMem); + pciBusAccWindows,ResMem); PciBus->preferred_pmem = xf86ExtractTypeFromList( - xf86PciBusAccWindowsFromOS(),ResMem); + pciBusAccWindows,ResMem); xf86MsgVerb(X_INFO,3,"Host-to-PCI bridge:\n"); } } @@ -1754,6 +1928,7 @@ printBridgeInfo(PciBus); } + xf86FreeResList(pciBusAccWindows); return PciBusBase; } @@ -1803,7 +1978,7 @@ * Mark all pciInfoRecs that need to be validated. These are * the ones which have been assigned to a screen. */ - Sys = NULL; + Sys = xf86DupResList(osRes); for (i=0; inumEntities; m++) if ((pvp = xf86GetPciInfoForEntity(xf86Screens[i]->entityList[m]))) @@ -1879,6 +2054,10 @@ Sys = xf86AddResToList(Sys, &range, -1); } } +#ifdef DEBUG + xf86MsgVerb(X_INFO, 3,"Sys:\n"); + xf86PrintResList(3,Sys); +#endif /* * The order the video devices are listed in is @@ -1890,7 +2069,7 @@ */ while ((pvp = xf86PciVideoInfo[n++])) { resPtr res_mp = NULL, res_m_io = NULL; - resPtr NonSys = NULL; + resPtr NonSys; resPtr tmp, avoid = NULL; if (!pvp->validate) continue; @@ -1987,8 +2166,10 @@ if (xf86IsSubsetOf(range,res_m_io) && ! ChkConflict(&range,own,SETUP) && ! ChkConflict(&range,avoid,SETUP) - && ! ChkConflict(&range,NonSys,SETUP)) + && ! ChkConflict(&range,NonSys,SETUP)) { + xf86FreeResList(own); continue; + } xf86MsgVerb(X_WARNING, 0, "****INVALID IO ALLOCATION**** b: 0x%lx e: 0x%lx " "correcting\a\n", range.rBegin,range.rEnd); @@ -2002,14 +2183,18 @@ if (xf86IsSubsetOf(range,res_mp) && ! ChkConflict(&range,own,SETUP) && ! ChkConflict(&range,avoid,SETUP) - && ! ChkConflict(&range,NonSys,SETUP)) + && ! ChkConflict(&range,NonSys,SETUP)) { + xf86FreeResList(own); continue; + } } if (xf86IsSubsetOf(range,res_m_io) && ! ChkConflict(&range,own,SETUP) && ! ChkConflict(&range,avoid,SETUP) - && ! ChkConflict(&range,NonSys,SETUP)) + && ! ChkConflict(&range,NonSys,SETUP)) { + xf86FreeResList(own); continue; + } xf86MsgVerb(X_WARNING, 0, "****INVALID MEM ALLOCATION**** b: 0x%lx e: 0x%lx " "correcting\a\n", range.rBegin,range.rEnd); @@ -2343,7 +2528,8 @@ p->pciBusId.func = func; p->active = active; p->inUse = FALSE; - xf86AddDevToEntity(num, dev); + if (dev) + xf86AddDevToEntity(num, dev); /* Here we initialize the access structure */ p->access = xnfcalloc(1,sizeof(EntityAccessRec)); while (ppaccp && *ppaccp) { @@ -2755,7 +2941,7 @@ /* * xf86FindPciVendorDevice() xf86FindPciClass(): These functions - * are ment to be used by the pci bios emulation. Some bioses + * are meant to be used by the pci bios emulation. Some bioses * need to see if there are _other_ chips of the same type around * so by setting pvp_exclude one pci device can be explicitely * _excluded if required. @@ -2937,5 +3123,22 @@ if (!pvp) return; tag = TAG(pvp); pciTagConvertRange2Host(tag, pRange); +} + + +void +xf86EnablePciBusMaster(pciVideoPtr pPci, Bool enable) +{ + CARD32 temp; + PCITAG tag; + + if (!pPci) return; + + tag = pciTag(pPci->bus, pPci->device, pPci->func); + temp = pciReadLong(tag, PCI_CMD_STAT_REG); + if (enable) + pciWriteLong(tag, PCI_CMD_STAT_REG, temp | PCI_CMD_MASTER_ENABLE); + else + pciWriteLong(tag, PCI_CMD_STAT_REG, temp & ~PCI_CMD_MASTER_ENABLE); } Index: xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c:3.5 xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c:3.6 --- xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c:3.5 Wed Dec 6 10:35:11 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c Sat Mar 3 17:16:35 2001 @@ -20,7 +20,7 @@ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c,v 3.5 2000/12/06 15:35:11 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86sbusBus.c,v 3.6 2001/03/03 22:16:35 tsi Exp $ */ #include #include @@ -276,7 +276,7 @@ for (i = 0, len = 0; sbusDeviceTable[i].devId; i++) { len = strlen(sbusDeviceTable[i].promName); if (!strncmp (sbusDeviceTable[i].promName, id, len) - && isdigit(id + len)) + && isdigit(id[len])) break; } devId = sbusDeviceTable[i].devId; Index: xc/programs/Xserver/hw/xfree86/common/xf86str.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86str.h:1.74 xc/programs/Xserver/hw/xfree86/common/xf86str.h:1.79 --- xc/programs/Xserver/hw/xfree86/common/xf86str.h:1.74 Tue Dec 12 21:44:59 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86str.h Fri May 18 19:35:31 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86str.h,v 1.74 2000/12/13 02:44:59 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86str.h,v 1.79 2001/05/18 23:35:31 dawes Exp $ */ /* * Copyright (c) 1997-2000 by The XFree86 Project, Inc. @@ -87,9 +87,9 @@ MODE_VBLANK_WIDE, /* vertical blanking too wide */ MODE_PANEL, /* exceeds panel dimensions */ MODE_INTERLACE_WIDTH, /* width too large for interlaced mode */ - MODE_ONE_WIDTH, /* only one width is supported */ - MODE_ONE_HEIGHT, /* only one height is supported */ - MODE_ONE_SIZE, /* only one resolution is supported */ + MODE_ONE_WIDTH, /* only one width is supported */ + MODE_ONE_HEIGHT, /* only one height is supported */ + MODE_ONE_SIZE, /* only one resolution is supported */ MODE_BAD = -2, /* unspecified reason */ MODE_ERROR = -1 /* error condition */ } ModeStatus; @@ -218,12 +218,28 @@ char * driverName; void (*Identify)(int flags); Bool (*Probe)(struct _DriverRec *drv, int flags); - OptionInfoPtr (*AvailableOptions)(int chipid, int bustype); + const OptionInfoRec * (*AvailableOptions)(int chipid, int bustype); pointer module; int refCount; } DriverRec, *DriverPtr; +#ifdef XFree86LOADER /* + * The optional module list struct. This allows modules exporting helping + * functions to configuration tools, the Xserver, or any other + * application/module interested in such information. + */ +typedef struct _ModuleInfoRec { + int moduleVersion; + char * moduleName; + pointer module; + int refCount; + const OptionInfoRec * (*AvailableOptions)(void *unused); + pointer unused[8]; /* leave some space for more fields */ +} ModuleInfoRec, *ModuleInfoPtr; +#endif + +/* * These are the private bus types. New types can be added here. Types * required for the public interface should be added to xf86str.h, with * function prototypes added to xf86.h. @@ -233,7 +249,8 @@ BUS_NONE, BUS_ISA, BUS_PCI, - BUS_SBUS + BUS_SBUS, + BUS_last /* Keep last */ } BusType; typedef struct { @@ -438,7 +455,8 @@ X_ERROR, /* Error message */ X_WARNING, /* Warning message */ X_INFO, /* Informational message */ - X_NONE /* No prefix */ + X_NONE, /* No prefix */ + X_NOT_IMPLEMENTED /* Not implemented */ } MessageType; /* flags for depth 24 pixmap options */ Index: xc/programs/Xserver/hw/xfree86/common/xf86xv.c diff -u xc/programs/Xserver/hw/xfree86/common/xf86xv.c:1.28 xc/programs/Xserver/hw/xfree86/common/xf86xv.c:1.29 --- xc/programs/Xserver/hw/xfree86/common/xf86xv.c:1.28 Fri Aug 4 23:32:37 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86xv.c Mon May 7 17:59:05 2001 @@ -6,7 +6,7 @@ */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xv.c,v 1.28 2000/08/05 03:32:37 mvojkovi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xv.c,v 1.29 2001/05/07 21:59:05 tsi Exp $ */ #include "misc.h" #include "xf86.h" @@ -176,10 +176,14 @@ XF86VideoAdaptorPtr *adaptors, int num ){ - ScrnInfoPtr pScrn = xf86Screens[pScreen->myNum]; + ScrnInfoPtr pScrn; XF86XVScreenPtr ScreenPriv; XvScreenPtr pxvs; + if(num <= 0 || + !XvGetScreenIndexProc || !XvGetRTPortProc || !XvScreenInitProc) + return FALSE; + if(XF86XVGeneration != serverGeneration) { if((XF86XVWindowIndex = AllocateWindowPrivateIndex()) < 0) return FALSE; @@ -189,9 +193,6 @@ if(!AllocateWindowPrivate(pScreen,XF86XVWindowIndex,sizeof(XF86XVWindowRec))) return FALSE; - if(!XvGetScreenIndexProc || !XvGetRTPortProc || !XvScreenInitProc) - return FALSE; - if(Success != (*XvScreenInitProc)(pScreen)) return FALSE; XF86XvScreenIndex = (*XvGetScreenIndexProc)(); @@ -199,7 +200,6 @@ pxvs = GET_XV_SCREEN(pScreen); - /* Anyone initializing the Xv layer must provide these two. The Xv di layer calls them without even checking if they exist! */ @@ -216,6 +216,7 @@ if(!ScreenPriv) return FALSE; + pScrn = xf86Screens[pScreen->myNum]; ScreenPriv->CreateWindow = pScreen->CreateWindow; ScreenPriv->DestroyWindow = pScreen->DestroyWindow; @@ -224,7 +225,6 @@ ScreenPriv->EnterVT = pScrn->EnterVT; ScreenPriv->LeaveVT = pScrn->LeaveVT; ScreenPriv->AdjustFrame = pScrn->AdjustFrame; - pScreen->CreateWindow = xf86XVCreateWindow; pScreen->DestroyWindow = xf86XVDestroyWindow; Index: xc/programs/Xserver/hw/xfree86/common/xf86xv.h diff -u xc/programs/Xserver/hw/xfree86/common/xf86xv.h:1.19 xc/programs/Xserver/hw/xfree86/common/xf86xv.h:1.21 --- xc/programs/Xserver/hw/xfree86/common/xf86xv.h:1.19 Thu Nov 2 11:33:27 2000 +++ xc/programs/Xserver/hw/xfree86/common/xf86xv.h Mon May 7 17:59:06 2001 @@ -1,7 +1,7 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xv.h,v 1.19 2000/11/02 16:33:27 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xv.h,v 1.21 2001/05/07 21:59:06 tsi Exp $ */ -#ifndef _XVDIX_H_ -#define _XVDIX_H_ +#ifndef _XF86XV_H_ +#define _XF86XV_H_ #include "xvdix.h" #include "xf86str.h" @@ -205,6 +205,7 @@ /*** These are DDX layer privates ***/ +extern int XF86XvScreenIndex; typedef struct { CreateWindowProcPtr CreateWindow; @@ -253,5 +254,4 @@ struct _XF86XVWindowRec *next; } XF86XVWindowRec, *XF86XVWindowPtr; -#endif /* _XVDIX_H_ */ - +#endif /* _XF86XV_H_ */ Index: xc/programs/Xserver/hw/xfree86/common/xf86xvmc.c diff -u /dev/null xc/programs/Xserver/hw/xfree86/common/xf86xvmc.c:1.3 --- /dev/null Mon Jun 4 09:38:40 2001 +++ xc/programs/Xserver/hw/xfree86/common/xf86xvmc.c Sun Apr 1 10:00:08 2001 @@ -0,0 +1,201 @@ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xvmc.c,v 1.3 2001/04/01 14:00:08 tsi Exp $ */ + +#include "misc.h" +#include "xf86.h" +#include "xf86_OSproc.h" + +#include "X.h" +#include "Xproto.h" +#include "scrnintstr.h" +#include "resource.h" +#include "dixstruct.h" + +#ifdef XFree86LOADER +#include "xvmodproc.h" +#endif + +#include "xf86xvmc.h" + +#ifdef XFree86LOADER +int (*XvMCScreenInitProc)(ScreenPtr, int, XvMCAdaptorPtr) = NULL; +#else +int (*XvMCScreenInitProc)(ScreenPtr, int, XvMCAdaptorPtr) = XvMCScreenInit; +#endif + + +typedef struct { + CloseScreenProcPtr CloseScreen; + int num_adaptors; + XF86MCAdaptorPtr *adaptors; + XvMCAdaptorPtr dixinfo; +} xf86XvMCScreenRec, *xf86XvMCScreenPtr; + +static unsigned long XF86XvMCGeneration = 0; +static int XF86XvMCScreenIndex = -1; + +#define XF86XVMC_GET_PRIVATE(pScreen) \ + (xf86XvMCScreenPtr)((pScreen)->devPrivates[XF86XvMCScreenIndex].ptr) + + +static int +xf86XvMCCreateContext ( + XvPortPtr pPort, + XvMCContextPtr pContext, + int *num_priv, + CARD32 **priv +) +{ + xf86XvMCScreenPtr pScreenPriv = XF86XVMC_GET_PRIVATE(pContext->pScreen); + ScrnInfoPtr pScrn = xf86Screens[pContext->pScreen->myNum]; + + pContext->port_priv = (XvPortRecPrivatePtr)(pPort->devPriv.ptr); + + return (*pScreenPriv->adaptors[pContext->adapt_num]->CreateContext)( + pScrn, pContext, num_priv, priv); +} + +static void +xf86XvMCDestroyContext ( XvMCContextPtr pContext) +{ + xf86XvMCScreenPtr pScreenPriv = XF86XVMC_GET_PRIVATE(pContext->pScreen); + ScrnInfoPtr pScrn = xf86Screens[pContext->pScreen->myNum]; + + (*pScreenPriv->adaptors[pContext->adapt_num]->DestroyContext)( + pScrn, pContext); +} + +static int +xf86XvMCCreateSurface ( + XvMCSurfacePtr pSurface, + int *num_priv, + CARD32 **priv +) +{ + XvMCContextPtr pContext = pSurface->context; + xf86XvMCScreenPtr pScreenPriv = XF86XVMC_GET_PRIVATE(pContext->pScreen); + ScrnInfoPtr pScrn = xf86Screens[pContext->pScreen->myNum]; + + return (*pScreenPriv->adaptors[pContext->adapt_num]->CreateSurface)( + pScrn, pSurface, num_priv, priv); +} + +static void +xf86XvMCDestroySurface (XvMCSurfacePtr pSurface) +{ + XvMCContextPtr pContext = pSurface->context; + xf86XvMCScreenPtr pScreenPriv = XF86XVMC_GET_PRIVATE(pContext->pScreen); + ScrnInfoPtr pScrn = xf86Screens[pContext->pScreen->myNum]; + + (*pScreenPriv->adaptors[pContext->adapt_num]->DestroySurface)( + pScrn, pSurface); +} + +static int +xf86XvMCCreateSubpicture ( + XvMCSubpicturePtr pSubpicture, + int *num_priv, + CARD32 **priv +) +{ + XvMCContextPtr pContext = pSubpicture->context; + xf86XvMCScreenPtr pScreenPriv = XF86XVMC_GET_PRIVATE(pContext->pScreen); + ScrnInfoPtr pScrn = xf86Screens[pContext->pScreen->myNum]; + + return (*pScreenPriv->adaptors[pContext->adapt_num]->CreateSubpicture)( + pScrn, pSubpicture, num_priv, priv); +} + +static void +xf86XvMCDestroySubpicture (XvMCSubpicturePtr pSubpicture) +{ + XvMCContextPtr pContext = pSubpicture->context; + xf86XvMCScreenPtr pScreenPriv = XF86XVMC_GET_PRIVATE(pContext->pScreen); + ScrnInfoPtr pScrn = xf86Screens[pContext->pScreen->myNum]; + + (*pScreenPriv->adaptors[pContext->adapt_num]->DestroySubpicture)( + pScrn, pSubpicture); +} + + +static Bool +xf86XvMCCloseScreen (int i, ScreenPtr pScreen) +{ + xf86XvMCScreenPtr pScreenPriv = XF86XVMC_GET_PRIVATE(pScreen); + + pScreen->CloseScreen = pScreenPriv->CloseScreen; + + xfree(pScreenPriv->dixinfo); + xfree(pScreenPriv); + + return (*pScreen->CloseScreen)(i, pScreen); +} + +Bool xf86XvMCScreenInit( + ScreenPtr pScreen, + int num_adaptors, + XF86MCAdaptorPtr *adaptors +) +{ + XvMCAdaptorPtr pAdapt; + xf86XvMCScreenPtr pScreenPriv; + XvScreenPtr pxvs = + (XvScreenPtr)(pScreen->devPrivates[XF86XvScreenIndex].ptr); + + int i, j; + + if(!XvMCScreenInitProc) return FALSE; + + if(XF86XvMCGeneration != serverGeneration) { + if((XF86XvMCScreenIndex = AllocateScreenPrivateIndex()) < 0) + return FALSE; + XF86XvMCGeneration = serverGeneration; + } + + if(!(pAdapt = xalloc(sizeof(XvMCAdaptorRec) * num_adaptors))) + return FALSE; + + if(!(pScreenPriv = xalloc(sizeof(xf86XvMCScreenRec)))) { + xfree(pAdapt); + return FALSE; + } + + pScreen->devPrivates[XF86XvMCScreenIndex].ptr = (pointer)pScreenPriv; + + pScreenPriv->CloseScreen = pScreen->CloseScreen; + pScreen->CloseScreen = xf86XvMCCloseScreen; + + pScreenPriv->num_adaptors = num_adaptors; + pScreenPriv->adaptors = adaptors; + pScreenPriv->dixinfo = pAdapt; + + for(i = 0; i < num_adaptors; i++) { + pAdapt[i].xv_adaptor = NULL; + for(j = 0; j < pxvs->nAdaptors; j++) { + if(!strcmp((*adaptors)->name, pxvs->pAdaptors[j].name)) { + pAdapt[i].xv_adaptor = &(pxvs->pAdaptors[j]); + break; + } + } + if(!pAdapt[i].xv_adaptor) { + /* no adaptor by that name */ + xfree(pAdapt); + return FALSE; + } + pAdapt[i].num_surfaces = (*adaptors)->num_surfaces; + pAdapt[i].surfaces = (XvMCSurfaceInfoPtr*)((*adaptors)->surfaces); + pAdapt[i].num_subpictures = (*adaptors)->num_subpictures; + pAdapt[i].subpictures = (XvImagePtr*)((*adaptors)->subpictures); + pAdapt[i].CreateContext = xf86XvMCCreateContext; + pAdapt[i].DestroyContext = xf86XvMCDestroyContext; + pAdapt[i].CreateSurface = xf86XvMCCreateSurface; + pAdapt[i].DestroySurface = xf86XvMCDestroySurface; + pAdapt[i].CreateSubpicture = xf86XvMCCreateSubpicture; + pAdapt[i].DestroySubpicture = xf86XvMCDestroySubpicture; + adaptors++; + } + + if(Success != (*XvMCScreenInitProc)(pScreen, num_adaptors, pAdapt)) + return FALSE; + + return TRUE; +} Index: xc/programs/Xserver/hw/xfree86/common/xf86xvmc.h diff -u /dev/null xc/programs/Xserver/hw/xfree86/common/xf86xvmc.h:1.4 --- /dev/null Mon Jun 4 09:38:40 2001 +++ xc/programs/Xserver/hw/xfree86/common/xf86xvmc.h Sun Apr 8 19:00:27 2001 @@ -0,0 +1,134 @@ +/* $XFree86: xc/programs/Xserver/hw/xfree86/common/xf86xvmc.h,v 1.4 2001/04/08 23:00:27 alanh Exp $ */ + +#ifndef _XF86XVMC_H +#define _XF86XVMC_H + +#include "xvmcext.h" +#include "xf86xv.h" + +typedef struct { + int num_xvimages; + int *xvimage_ids; /* reference the subpictures in the XF86MCAdaptorRec */ +} XF86MCImageIDList; + +typedef struct { + int surface_type_id; /* Driver generated. Must be unique on the port */ + int chroma_format; + int color_description; + unsigned short max_width; + unsigned short max_height; + unsigned short subpicture_max_width; + unsigned short subpicture_max_height; + int mc_type; + int flags; + XF86MCImageIDList *compatible_subpictures; /* can be null, if none */ +} XF86MCSurfaceInfoRec, *XF86MCSurfaceInfoPtr; + + +/* + xf86XvMCCreateContextProc + + DIX will fill everything out in the context except the driver_priv. + The port_priv holds the private data specified for the port when + Xv was initialized by the driver. + The driver may store whatever it wants in driver_priv and edit + the width, height and flags. If the driver wants to return something + to the client it can allocate space in priv and specify the number + of 32 bit words in num_priv. This must be dynamically allocated + space because DIX will free it after it passes it to the client. +*/ + + +typedef int (*xf86XvMCCreateContextProcPtr) ( + ScrnInfoPtr pScrn, + XvMCContextPtr context, + int *num_priv, + CARD32 **priv +); + +typedef void (*xf86XvMCDestroyContextProcPtr) ( + ScrnInfoPtr pScrn, + XvMCContextPtr context +); + +/* + xf86XvMCCreateSurfaceProc + + DIX will fill everything out in the surface except the driver_priv. + The driver may store whatever it wants in driver_priv. The driver + may pass data back to the client in the same manner as the + xf86XvMCCreateContextProc. +*/ + + +typedef int (*xf86XvMCCreateSurfaceProcPtr) ( + ScrnInfoPtr pScrn, + XvMCSurfacePtr surface, + int *num_priv, + CARD32 **priv +); + +typedef void (*xf86XvMCDestroySurfaceProcPtr) ( + ScrnInfoPtr pScrn, + XvMCSurfacePtr surface +); + +/* + xf86XvMCCreateSubpictureProc + + DIX will fill everything out in the subpicture except the driver_priv, + num_palette_entries, entry_bytes and component_order. The driver may + store whatever it wants in driver_priv and edit the width and height. + If it is a paletted subpicture the driver needs to fill out the + num_palette_entries, entry_bytes and component_order. These are + not communicated to the client until the time the surface is + created. + + The driver may pass data back to the client in the same manner as the + xf86XvMCCreateContextProc. +*/ + + +typedef int (*xf86XvMCCreateSubpictureProcPtr) ( + ScrnInfoPtr pScrn, + XvMCSubpicturePtr subpicture, + int *num_priv, + CARD32 **priv +); + +typedef void (*xf86XvMCDestroySubpictureProcPtr) ( + ScrnInfoPtr pScrn, + XvMCSubpicturePtr subpicture +); + + +typedef struct { + char *name; + int num_surfaces; + XF86MCSurfaceInfoPtr *surfaces; + int num_subpictures; + XF86ImagePtr *subpictures; + xf86XvMCCreateContextProcPtr CreateContext; + xf86XvMCDestroyContextProcPtr DestroyContext; + xf86XvMCCreateSurfaceProcPtr CreateSurface; + xf86XvMCDestroySurfaceProcPtr DestroySurface; + xf86XvMCCreateSubpictureProcPtr CreateSubpicture; + xf86XvMCDestroySubpictureProcPtr DestroySubpicture; +} XF86MCAdaptorRec, *XF86MCAdaptorPtr; + +/* + xf86XvMCScreenInit + + Unlike Xv, the adaptor data is not copied from this structure. + This structure's data is used so it must stick around for the + life of the server. Note that it's an array of pointers not + an array of structures. +*/ + +Bool xf86XvMCScreenInit( + ScreenPtr pScreen, + int num_adaptors, + XF86MCAdaptorPtr *adaptors +); + +#endif /* _XF86XVMC_H */ Index: xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c diff -u xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c:1.4 xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c:1.7 --- xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c:1.4 Mon Nov 6 14:24:07 2000 +++ xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c Thu Apr 5 13:42:32 2001 @@ -3,7 +3,7 @@ * * Copyright 1999 by Andrew C Aitchison */ -/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c,v 1.4 2000/11/06 19:24:07 dawes Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/ddcProperty.c,v 1.7 2001/04/05 17:42:32 dawes Exp $ */ #include "misc.h" #include "xf86.h" @@ -26,6 +26,8 @@ CARD8 *EDID2rawdata = NULL; CARD8 *VDIFrawdata = NULL; int i, ret; + Bool makeEDID1prop = FALSE; + Bool makeEDID2prop = FALSE; #ifdef DEBUG ErrorF("xf86SetDDCproperties(%p, %p)\n", pScrnInfo, DDC); @@ -44,7 +46,36 @@ pScrnInfo->monitor->DDC = DDC; if (DDC->ver.version == 1) { + makeEDID1prop = TRUE; + } else if (DDC->ver.version == 2) { + int checksum1 = 0; + int checksum2 = 0; + makeEDID2prop = TRUE; + + /* Some monitors (eg Panasonic PanaSync4) + * report version==2 because they used EDID v2 spec document, + * although they use EDID v1 data structure :-( + * + * Try using checksum to determine when we have such a monitor. + */ + for (i=0; i<256; i++) { checksum2 += DDC->rawData[i]; } + if ( (checksum2 % 256) != 0 ) { + xf86DrvMsg(pScrnInfo->scrnIndex,X_INFO, "Monitor EDID v2 checksum failed\n"); + xf86DrvMsg(pScrnInfo->scrnIndex,X_INFO, "XFree86_DDC_EDID2_RAWDATA property may be bad\n"); + for (i=0; i<128; i++) { checksum1 += DDC->rawData[i]; } + if ( (checksum1 % 256) == 0 ) { + xf86DrvMsg(pScrnInfo->scrnIndex,X_INFO, "Monitor EDID v1 checksum passed,\n"); + xf86DrvMsg(pScrnInfo->scrnIndex,X_INFO, "XFree86_DDC_EDID2_RAWDATA property created\n"); + makeEDID1prop = TRUE; + } + } + } else { + xf86DrvMsg(pScrnInfo->scrnIndex, X_PROBED, + "unexpected EDID version %d revision %d\n", + DDC->ver.version, DDC->ver.revision ); + } + if (makeEDID1prop) { if ( (EDID1rawdata = xalloc(128*sizeof(CARD8)))==NULL ) { return FALSE; } @@ -72,9 +103,10 @@ ErrorF("xf86RegisterRootWindowProperty returns %d\n", ret ); #endif - } else if (DDC->ver.version == 2) { + } + + if (makeEDID2prop) { if ( (EDID2rawdata = xalloc(256*sizeof(CARD8)))==NULL ) { - xfree(EDID2rawdata); return FALSE; } for (i=0; i<256; i++) { @@ -92,21 +124,11 @@ #endif ret = xf86RegisterRootWindowProperty(pScrnInfo->scrnIndex, EDID2Atom, XA_INTEGER, 8, -#if 1 - 256, (unsigned char *)EDID1rawdata -#else -#define EDID2_DUMMY_STRING "Dummy EDID2 property - please insert correct values" - strlen(EDID2_DUMMY_STRING), - EDID2_DUMMY_STRING -#endif + 256, (unsigned char *)EDID2rawdata ); #ifdef DEBUG ErrorF("xf86RegisterRootWindowProperty returns %d\n", ret ); #endif - } else { - xf86DrvMsg(pScrnInfo->scrnIndex, X_PROBED, - "unexpected EDID version %d revision %d\n", - DDC->ver.version, DDC->ver.revision ); } if (DDC->vdif) { Index: xc/programs/Xserver/hw/xfree86/ddc/print_edid.c diff -u xc/programs/Xserver/hw/xfree86/ddc/print_edid.c:1.14 xc/programs/Xserver/hw/xfree86/ddc/print_edid.c:1.14.4.1 --- xc/programs/Xserver/hw/xfree86/ddc/print_edid.c:1.14 Thu Jul 13 17:31:38 2000 +++ xc/programs/Xserver/hw/xfree86/ddc/print_edid.c Tue May 22 13:02:36 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/print_edid.c,v 1.14 2000/07/13 21:31:38 tsi Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/print_edid.c,v 1.14.4.1 2001/05/22 17:02:36 tsi Exp $ */ /* print_edid.c: print out all information retrieved from display device * @@ -232,7 +232,7 @@ m[i].section.ranges.min_v, m[i].section.ranges.max_v, m[i].section.ranges.min_h, m[i].section.ranges.max_h); if (m[i].section.ranges.max_clock != 0) - xf86ErrorF(" PixClock max %i kHz\n",m[i].section.ranges.max_clock); + xf86ErrorF(" PixClock max %i MHz\n",m[i].section.ranges.max_clock); else xf86DrvMsg(scrnIndex,X_INFO,"\n"); break; Index: xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c diff -u xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c:1.19 xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c:1.20.2.1 --- xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c:1.19 Thu Nov 16 14:44:55 2000 +++ xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c Fri May 25 17:45:00 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c,v 1.19 2000/11/16 19:44:55 eich Exp $ */ +/* $XFree86: xc/programs/Xserver/hw/xfree86/ddc/xf86DDC.c,v 1.20.2.1 2001/05/25 21:45:00 paulo Exp $ */ /* xf86DDC.c * @@ -10,6 +10,8 @@ #include "xf86_OSproc.h" #include "xf86DDC.h" +static const OptionInfoRec *DDCAvailableOptions(void *unused); + const char *i2cSymbols[] = { "xf86CreateI2CDevRec", "xf86I2CDevInit", @@ -38,6 +40,14 @@ XF86ModuleData ddcModuleData = { &ddcVersRec, ddcSetup, NULL }; +ModuleInfoRec DDC = { + 1, + "DDC", + NULL, + 0, + DDCAvailableOptions, +}; + static pointer ddcSetup(pointer module, pointer opts, int *errmaj, int *errmin) { @@ -45,6 +55,10 @@ if (!setupDone) { setupDone = TRUE; +#ifndef REMOVE_LOADER_CHECK_MODULE_INFO + if (xf86LoaderCheckSymbol("xf86AddModuleInfo")) +#endif + xf86AddModuleInfo(&DDC, module); /* * Tell the loader about symbols from other modules that this module * might refer to. @@ -112,14 +126,19 @@ DDCOPT_NODDC } DDCOpts; -static OptionInfoRec DDCOptions[] = { +static const OptionInfoRec DDCOptions[] = { { DDCOPT_NODDC1, "NoDDC1", OPTV_BOOLEAN, {0}, FALSE }, { DDCOPT_NODDC2, "NoDDC2", OPTV_BOOLEAN, {0}, FALSE }, { DDCOPT_NODDC, "NoDDC", OPTV_BOOLEAN, {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE }, }; -#define nDDCOptions (sizeof(DDCOptions) / sizeof(DDCOptions[0])) +/*ARGSUSED*/ +static const OptionInfoRec * +DDCAvailableOptions(void *unused) +{ + return (DDCOptions); +} xf86MonPtr xf86DoEDID_DDC1( @@ -133,13 +152,15 @@ int sigio; /* Default DDC and DDC1 to enabled. */ Bool noddc = FALSE, noddc1 = FALSE; - OptionInfoRec options[nDDCOptions]; + OptionInfoPtr options; + options = xnfalloc(sizeof(DDCOptions)); (void)memcpy(options, DDCOptions, sizeof(DDCOptions)); xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, options); xf86GetOptValBool(options, DDCOPT_NODDC, &noddc); xf86GetOptValBool(options, DDCOPT_NODDC1, &noddc1); + xfree(options); if (noddc || noddc1) return NULL; @@ -168,13 +189,15 @@ xf86MonPtr tmp = NULL; /* Default DDC and DDC2 to enabled. */ Bool noddc = FALSE, noddc2 = FALSE; - OptionInfoRec options[nDDCOptions]; + OptionInfoPtr options; + options = xnfalloc(sizeof(DDCOptions)); (void)memcpy(options, DDCOptions, sizeof(DDCOptions)); xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, options); xf86GetOptValBool(options, DDCOPT_NODDC, &noddc); xf86GetOptValBool(options, DDCOPT_NODDC2, &noddc2); + xfree(options); if (noddc || noddc2) return NULL; Index: xc/programs/Xserver/hw/xfree86/doc/BugReport diff -u xc/programs/Xserver/hw/xfree86/doc/BugReport:1.3 xc/programs/Xserver/hw/xfree86/doc/BugReport:removed --- xc/programs/Xserver/hw/xfree86/doc/BugReport:1.3 Thu Aug 3 08:24:02 2000 +++ xc/programs/Xserver/hw/xfree86/doc/BugReport Mon Jun 4 09:38:45 2001 @@ -1,57 +0,0 @@ - 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: - -4.0.1a - -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.] - - - -$XFree86: xc/programs/Xserver/hw/xfree86/doc/BugReport,v 1.3 2000/08/03 12:24:02 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/BugReport.cpp diff -u /dev/null xc/programs/Xserver/hw/xfree86/doc/BugReport.cpp:1.1 --- /dev/null Mon Jun 4 09:38:45 2001 +++ xc/programs/Xserver/hw/xfree86/doc/BugReport.cpp Mon Jan 15 18:00:01 2001 @@ -0,0 +1,57 @@ + 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: + +XF86_VERSION + +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.] + + + +$XFree86: xc/programs/Xserver/hw/xfree86/doc/BugReport.cpp,v 1.1 2001/01/15 23:00:01 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/DESIGN diff -u xc/programs/Xserver/hw/xfree86/doc/DESIGN:1.33 xc/programs/Xserver/hw/xfree86/doc/DESIGN:1.36.2.1 --- xc/programs/Xserver/hw/xfree86/doc/DESIGN:1.33 Mon Dec 4 14:47:21 2000 +++ xc/programs/Xserver/hw/xfree86/doc/DESIGN Fri Jun 1 14:26:42 2001 @@ -2,7 +2,7 @@ The XFree86 Project, Inc - Last modified 2 December 2000 + Last modified 1 May 2001 NOTE: This is a DRAFT document, and the interfaces described here are subject to change without notice. @@ -408,12 +408,12 @@ points required during the early phase of InitOutput(). xf86AddDriver() adds it to the global xf86DriverList[] array. -The DriverRec contains the driver's version, a short descriptive message, the -Identify(), Probe() and AvailableOptions() function entry points as well as a -pointer to the driver's module (as returned from the loader when the driver -was loaded) and a reference count which keeps track of how many screens are -using the driver. The entry driver entry points are those required prior to -the driver allocating and filling in its ScrnInfoRec. +The DriverRec contains the driver canonical name, the Identify(), Probe() and +AvailableOptions() function entry points as well as a pointer to the driver's +module (as returned from the loader when the driver was loaded) and a refer- +ence count which keeps track of how many screens are using the driver. The +entry driver entry points are those required prior to the driver allocating +and filling in its ScrnInfoRec. For a static server, the xf86DriverList[] array is initialised at build time, and the loading of modules is not done. @@ -2100,13 +2100,14 @@ ScreenInit() function, but only when serverGeneration == 1. - OptionInfoPtr xf86TokenToOptinfo(OptionInfoPtr table, int token) + OptionInfoPtr xf86TokenToOptinfo(const OptionInfoRec *table, int + token) Returns a pointer to the OptionInfoRec in table with a token field matching token. Returns NULL if no match is found. - Bool xf86IsOptionSet(OptionInfoPtr table, int token) + Bool xf86IsOptionSet(const OptionInfoRec *table, int token) Returns the found field of the OptionInfoRec in table with a token field matching token. This can be used for @@ -2115,13 +2116,13 @@ mine the value of the option. Returns FALSE if no match is found. - char *xf86GetOptValString(OptionInfoPtr table, int token) + char *xf86GetOptValString(const OptionInfoRec *table, int token) Returns the value.str field of the OptionInfoRec in table with a token field matching token. Returns NULL if no match is found. - Bool xf86GetOptValInteger(OptionInfoPtr table, int token, + Bool xf86GetOptValInteger(const OptionInfoRec *table, int token, int *value) @@ -2132,21 +2133,21 @@ tion. The function return value is as for xf86IsOption- Set(). - Bool xf86GetOptValULong(OptionInfoPtr table, int token, + Bool xf86GetOptValULong(const OptionInfoRec *table, int token, unsigned long *value) Like xf86GetOptValInteger(), except the value is treated as an unsigned long. - Bool xf86GetOptValReal(OptionInfoPtr table, int token, + Bool xf86GetOptValReal(const OptionInfoRec *table, int token, double *value) Like xf86GetOptValInteger(), except that value.realnum is used. - Bool xf86GetOptValFreq(OptionInfoPtr table, int token, + Bool xf86GetOptValFreq(const OptionInfoRec *table, int token, OptFreqUnits expectedUnits, double *value) @@ -2161,7 +2162,8 @@ "10000" and expectedUnits is OPTUNITS_MHZ, the value returned is 10. - Bool xf86GetOptValBool(OptionInfoPtr table, int token, Bool *value) + Bool xf86GetOptValBool(const OptionInfoRec *table, int token, Bool + *value) This function is used to check boolean options (OPTV_BOOLEAN). If the function return value is FALSE, @@ -2176,7 +2178,8 @@ present. It should normally be set to a default value before calling this function. - Bool xf86ReturnOptValBool(OptionInfoPtr table, int token, Bool def) + Bool xf86ReturnOptValBool(const OptionInfoRec *table, int token, + Bool def) This function is used to check boolean options (OPTV_BOOLEAN). If the option is set, its value is @@ -4905,7 +4908,15 @@ fields of hwp with the standard VGA set of functions. This is called by vgaHWGetHWRec(), so there is usually no need to call this explicitly. The register access func- - tions are described below. + tions are described below. If the registers are shadowed + in some other port I/O space (for example a PCI I/O + region), these functions can be used to access the shad- + owed registers if hwp->PIOOffset is initialised with off- + set, calculated in such a way that when the standard VGA + I/O port value is added to it the correct offset into the + PIO area results. This value is initialised to zero in + vgaHWGetHWRec(). (Note: the PIOOffset functionality is + present in XFree86 4.1.0 and later.) void vgaHWSetMmioFuncs(vgaHWPtr hwp, CARD8 *base, int offset) @@ -4977,6 +4988,16 @@ vgahw module is not loaded (for example, in the Chip- Probe() function). + void vgaHWEnable(vgaHWPtr hwp) + + This function enables the VGA subsystem. (Note, this + function is present in XFree86 4.1.0 and later.). + + void vgaHWDisable(vgaHWPtr hwp) + + This function disables the VGA subsystem. (Note, this + function is present in XFree86 4.1.0 and later.). + void vgaHWSave(ScrnInfoPtr pScrn, vgaRegPtr save, int flags) This function saves the VGA state. The state is written @@ -5236,6 +5257,17 @@ Return the value read from the DAC Data register. + CARD8 readEnable(vgaHWptr hwp) + + Return the value read from the VGA Enable register. + (Note: This function is present in XFree86 4.1.0 and + later.) + + void writeEnable(vgaHWPtr hwp, CARD8 value) + + Write value to the VGA Enable register. (Note: This + function is present in XFree86 4.1.0 and later.) + 20. Some notes about writing a driver NOTE: some parts of this are not up to date @@ -5368,7 +5400,7 @@ DriverRec ZZZ = { VERSION, - "unaccelerated driver for ZZZ Zzzzzy cards", + ZZZ_DRIVER_NAME, ZZZIdentify, ZZZProbe, ZZZAvailableOptions, @@ -5433,6 +5465,7 @@ Bool noAccel; Bool hwCursor; CloseScreenProcPtr CloseScreen; + OptionInfoPtr Options; ... } ZZZRec, *ZZZPtr; @@ -5447,7 +5480,7 @@ OPTION_NOACCEL } ZZZOpts; - static OptionInfoRec ZZZOptions[] = { + static const OptionInfoRec ZZZOptions[] = { { OPTION_FOO_HACK, "FooHack", OPTV_INTEGER, {0}, FALSE }, { OPTION_PCI_RETRY, "PciRetry", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_HW_CURSOR, "HWcursor", OPTV_BOOLEAN, {0}, FALSE }, @@ -5455,8 +5488,6 @@ { -1, NULL, OPTV_NONE, {0}, FALSE } }; - #define nZZZOptions (sizeof(ZZZOptions) / sizeof(ZZZOptions[0])) - 20.3 Functions 20.3.1 SetupProc @@ -5704,8 +5735,6 @@ static Bool ZZZPreInit(ScrnInfoPtr pScrn, int flags) { - OptionInfoRec options[nZZZOptions]; - /* Fill in the monitor field */ pScrn->monitor = pScrn->confScreen->monitor; @@ -5784,10 +5813,14 @@ /* * Process the options based on the information in ZZZOptions. - * The results are written to options. + * The results are written to pZzz->Options. If all of the options + * processing is done within this function a local variable "options" + * can be used instead of pZzz->Options. */ - (void)memcpy(options, ZZZOptions, sizeof(ZZZOptions)); - xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, options); + if (!(pZzz->Options = xalloc(sizeof(ZZZOptions)))) + return FALSE; + (void)memcpy(pZzz->Options, ZZZOptions, sizeof(ZZZOptions)); + xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, pZzz->Options); /* * Set various fields of ScrnInfoRec and/or ZZZRec based on @@ -5795,25 +5828,25 @@ */ from = X_DEFAULT; pZzz->hwCursor = FALSE; - if (xf86IsOptionSet(options, OPTION_HW_CURSOR)) { + if (xf86IsOptionSet(pZzz->Options, OPTION_HW_CURSOR)) { from = X_CONFIG; pZzz->hwCursor = TRUE; } xf86DrvMsg(pScrn->scrnIndex, from, "Using %s cursor\n", pZzz->hwCursor ? "HW" : "SW"); - if (xf86IsOptionSet(options, OPTION_NOACCEL)) { + if (xf86IsOptionSet(pZzz->Options, OPTION_NOACCEL)) { pZzz->noAccel = TRUE; xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Acceleration disabled\n"); } else { pZzz->noAccel = FALSE; } - if (xf86IsOptionSet(options, OPTION_PCI_RETRY)) { + if (xf86IsOptionSet(pZzz->Options, OPTION_PCI_RETRY)) { pZzz->UsePCIRetry = TRUE; xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "PCI retry enabled\n"); } pZzz->fooHack = 0; - if (xf86GetOptValInteger(options, OPTION_FOO_HACK, + if (xf86GetOptValInteger(pZzz->Options, OPTION_FOO_HACK, &pZzz->fooHack)) { xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Foo Hack set to %d\n", pZzz->fooHack); @@ -6302,7 +6335,7 @@ ZZZFreeRec(xf86Screens[scrnIndex]); } - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.39 2000/12/04 18:49:54 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.44 2001/05/19 00:40:30 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/DESIGN,v 1.33 2000/12/04 19:47:21 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/DESIGN,v 1.36.2.1 2001/06/01 18:26:42 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/Imakefile diff -u xc/programs/Xserver/hw/xfree86/doc/Imakefile:3.72 xc/programs/Xserver/hw/xfree86/doc/Imakefile:3.76.2.1 --- xc/programs/Xserver/hw/xfree86/doc/Imakefile:3.72 Mon Dec 11 11:06:49 2000 +++ xc/programs/Xserver/hw/xfree86/doc/Imakefile Fri Jun 1 14:09:46 2001 @@ -4,7 +4,7 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/Imakefile,v 3.72 2000/12/11 16:06:49 dawes Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/Imakefile,v 3.76.2.1 2001/06/01 18:09:46 dawes Exp $ #include #include @@ -76,20 +76,24 @@ /*ReadmeFile(WstDig)*/ \ $(_NULLENTRY_) -MAINDOCS = LICENSE README /*ReadmeFile(Config)*/ /*BUILD*/ RELNOTES \ - Install Status DESIGN +MAINDOCS = LICENSE README /*ReadmeFile(Config)*/ /*BUILD*/ /*RELNOTES*/ \ + Install Status DESIGN Versions OTHERDOCS = /*VideoModes.doc*/ /*QuickStart.doc*/ /*xinput*/ \ ReadmeFile(fonts) ReadmeFile(mouse) ReadmeFile(DRI) \ - ReadmeFile(DRIcomp) + ReadmeFile(DRIcomp) ReadmeFile(dps) #endif MISCDOCS = ServersOnly /*LbxproxyOnly*/ $(REPORTFORM) ReadmeFile(DGA) \ - VideoBoard98 + VideoBoard98 ReadmeFile(rapidaccess) DATABASE = /* modeDB.txt */ /* AccelCards Monitors Devices */ FILES = $(MAINDOCS) $(OSREADME) $(HWREADME) $(OTHERDOCS) $(MISCDOCS) $(DATABASE) + +VERS = XFree86VersionString + +CppFileTarget(BugReport, BugReport.cpp, -DXF86_VERSION=$(VERS), $(ICONFIGFILES)) InstallMultipleDest(install,$(FILES),$(XFREE86DOCDIR)) Index: xc/programs/Xserver/hw/xfree86/doc/Install diff -u xc/programs/Xserver/hw/xfree86/doc/Install:1.10 xc/programs/Xserver/hw/xfree86/doc/Install:1.11.2.1 --- xc/programs/Xserver/hw/xfree86/doc/Install:1.10 Fri Dec 15 14:38:06 2000 +++ xc/programs/Xserver/hw/xfree86/doc/Install Fri Jun 1 14:26:43 2001 @@ -1,8 +1,8 @@ - Installation Details for XFree86[tm] 4.0.2 + Installation Details for XFree86[tm] 4.1.0 The XFree86 Project, Inc - 15 December 2000 + 1 June 2001 Abstract @@ -20,10 +20,10 @@ installation script. We recommend that these be used to install the bina- ries. -2. Downloading the XFree86 4.0.2 binaries +2. Downloading the XFree86 4.1.0 binaries -We provide XFree86 4.0.2 binaries for a range of operating systems at our ftp -site . Often during +We provide XFree86 4.1.0 binaries for a range of operating systems at our ftp +site . Often during releases our ftp site is heavily loaded. Instead of downloading directly from us we recommend that instead you use one of our mirror sites. Another advantage of using our mirror sites is that some of them support http access @@ -43,31 +43,46 @@ you to download. If you are careful with this step you will save yourself a lot time and trouble from NOT downloading an incompatible distribution. -NOTE: the Xinstall.sh script must be downloaded in binary mode, otherwise it -won't run correctly. If you get lots of "command not found" messages when -you try to run it, then it is most likely because the script wasn't down- -loaded in binary mode. Some web browsers won't do this for files of that -name, so we also have a copy of it called "Xinstall.bin", and most browsers -should download that correctly. When downloading it under this name, select -"save as" on your browser, and save the file under the name "Xinstall.sh". +NOTES: + + o The Xinstall.sh script must be downloaded in binary mode, otherwise it + won't run correctly. If you get lots of "command not found" messages + when you try to run it, then it is most likely because the script wasn't + downloaded in binary mode. Some web browsers won't do this for files of + that name, so we also have a copy of it called "Xinstall.bin", and most + browsers should download that correctly. When downloading it under this + name, select "save as" on your browser, and save the file under the name + "Xinstall.sh". + + o The Xinstall.sh script requires some system commands and utilities to + function correctly. While most systems will have these, some Linux + installations may not. If you find that the script is failing because + of some missing system command, you will need to install it before you + can continue. If you don't know how to do this, then we recommend that + you obtain this version of XFree86 from your Operating System distribu- + tor. + + o Always use the version of the Xinstall.sh script that's provided with + the release you're installing. Older versions of the script may not + install newer releases correctly. Once you're run the Xinstall.sh script and found which binary distribution is suitable for your system, download the necessary files. The twelve (12) mandatory files for all installations are listed below. If you have not downloaded all of the files, the installer script will complain. - 1. Xinstall.sh The installer script - 2. extract The utility for extracting tarballs - 3. Xbin.tgz X clients/utilities and run-time libraries - 4. Xlib.tgz Some data files required at run-time - 5. Xman.tgz Manual pages - 6. Xdoc.tgz XFree86 documentation - 7. Xfnts.tgz Base set of fonts - 8. Xfenc.tgz Base set of font encoding data - 9. Xetc.tgz Run-time configuration files - 10. Xvar.tgz Run-time data - 11. Xxserv.tgz XFree86 X server - 12. Xmod.tgz XFree86 X server modules + 1. Xinstall.sh The installer script + 2. extract The utility for extracting tarballs + 3. Xbin.tgz X clients/utilities and run-time libraries + 4. Xlib.tgz Some data files required at run-time + 5. Xman.tgz Manual pages + 6. Xdoc.tgz XFree86 documentation + 7. Xfnts.tgz Base set of fonts + 8. Xfenc.tgz Base set of font encoding data + 9. Xetc.tgz Run-time configuration files + 10. Xvar.tgz Run-time data + 11. Xxserv.tgz XFree86 X server + 12. Xmod.tgz XFree86 X server modules NOTES: @@ -86,22 +101,20 @@ o Some distributions may have additional mandatory tarballs. While rare, the installer script will tell you if any are missing. -The following thirteen (13) tarballs are optional. You should download the +The following eleven (11) tarballs are optional. You should download the ones you want to install. - 1. Xfsrv.tgz Font server - 2. Xnest.tgz Nested X server - 3. Xprog.tgz X header files, config files and compile-time libs - 4. Xprt.tgz X Print server - 5. Xvfb.tgz Virtual framebuffer X server - 6. Xf100.tgz 100dpi fonts - 7. Xfcyr.tgz Cyrillic fonts - 8. Xflat2.tgz Latin-2 fonts - 9. Xfnon.tgz Some large bitmap fonts - 10. Xfscl.tgz Scalable fonts (Speedo and Type1) - 11. Xhtml.tgz HTML version of the documentation - 12. Xps.tgz PostScript version of the documentation - 13. Xjdoc.tgz Documentation in Japanese + 1. Xfsrv.tgz Font server + 2. Xnest.tgz Nested X server + 3. Xprog.tgz X header files, config files and compile-time libs + 4. Xprt.tgz X Print server + 5. Xvfb.tgz Virtual framebuffer X server + 6. Xf100.tgz 100dpi fonts + 7. Xfcyr.tgz Cyrillic fonts + 8. Xfscl.tgz Scalable fonts (Speedo and Type1) + 9. Xhtml.tgz HTML version of the documentation + 10. Xps.tgz PostScript version of the documentation + 11. Xjdoc.tgz Documentation in Japanese NOTES: @@ -110,9 +123,9 @@ If you miss some and want to install them later, go to the Manual Installa- tion (section 4., page 1) section. -3. Installing XFree86 4.0.2 using the Xinstall.sh script +3. Installing XFree86 4.1.0 using the Xinstall.sh script -We strongly recommend that our XFree86 4.0.2 binaries be installed using the +We strongly recommend that our XFree86 4.1.0 binaries be installed using the Xinstall.sh script that we provide. There are a lot of steps in the manual installation process, and those steps can vary according to the platform and hardware setup. There is a description of the manual installation process @@ -179,7 +192,7 @@ 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- +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 @@ -229,7 +242,7 @@ 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 three ways to cre- -ate a basic X server configuration file for XFree86 4.0.2. One is to run the +ate a basic X server configuration file for XFree86 4.1.0. One is to run the xf86config utility. Another is to run the xf86cfg utility. The third option is to use the new -configure X server option: @@ -248,9 +261,9 @@ After the X server configuration is done, it may be advisable to reboot, especially if you run xdm (or equivalent) or the font server (xfs). -4. Installing XFree86 4.0.2 manually +4. Installing XFree86 4.1.0 manually -This section describes how to manually install the XFree86 4.0.2 binary dis- +This section describes how to manually install the XFree86 4.1.0 binary dis- tributions. 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. @@ -288,6 +301,7 @@ 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 + chmod ug-w /usr/X11R6/lib # Make sure the permissions are OK /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 @@ -347,11 +361,12 @@ ./extract -C /usr/X11R6 `pwd`/X[a-df-uw-z]*.tgz ./extract -C /usr/X11R6 Xvfb.tgz # If you are installing Xvfb ./extract -C /var Xvar.tgz + chmod ug-w /usr/X11R6/lib # Make sure the permissions are OK /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.10 2000/12/15 19:09:06 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml,v 1.11.2.2 2001/06/01 18:09:48 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/Install,v 1.10 2000/12/15 19:38:06 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/Install,v 1.11.2.1 2001/06/01 18:26:43 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/LICENSE diff -u xc/programs/Xserver/hw/xfree86/doc/LICENSE:1.11 xc/programs/Xserver/hw/xfree86/doc/LICENSE:1.12.2.1 --- xc/programs/Xserver/hw/xfree86/doc/LICENSE:1.11 Fri Dec 1 14:47:45 2000 +++ xc/programs/Xserver/hw/xfree86/doc/LICENSE Fri Jun 1 14:26:43 2001 @@ -2,14 +2,14 @@ The XFree86 Project - 1999 + March 2001 1. XFree86 License XFree86 code without an explicit copyright is covered by the following copy- right/license: -Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved. +Copyright (C) 1994-2001 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 @@ -592,7 +592,7 @@ or - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.7 2000/03/06 22:59:23 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml,v 1.8 2001/03/16 22:13:19 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/LICENSE,v 1.11 2000/12/01 19:47:45 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/LICENSE,v 1.12.2.1 2001/06/01 18:26:43 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/OS2.Notes diff -u xc/programs/Xserver/hw/xfree86/doc/OS2.Notes:3.17 xc/programs/Xserver/hw/xfree86/doc/OS2.Notes:3.17.4.1 --- xc/programs/Xserver/hw/xfree86/doc/OS2.Notes:3.17 Fri Dec 1 14:47:45 2000 +++ xc/programs/Xserver/hw/xfree86/doc/OS2.Notes Fri Jun 1 14:26:43 2001 @@ -226,4 +226,4 @@ $XConsortium: OS2note.sgml /main/1 1996/02/24 10:08:59 kaleb $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/OS2.Notes,v 3.17 2000/12/01 19:47:45 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/OS2.Notes,v 3.17.4.1 2001/06/01 18:26:43 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README diff -u xc/programs/Xserver/hw/xfree86/doc/README:3.109 xc/programs/Xserver/hw/xfree86/doc/README:3.111.2.3 --- xc/programs/Xserver/hw/xfree86/doc/README:3.109 Fri Dec 15 13:14:32 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README Sat Jun 2 12:21:49 2001 @@ -1,8 +1,8 @@ - README for XFree86[tm] 4.0.2 + README for XFree86[tm] 4.1.0 The XFree86 Project, Inc - 15 December 2000 + 2 June 2001 Abstract @@ -10,9 +10,9 @@ supports several UNIX(R) and UNIX-like (such as Linux, the BSDs and Solaris x86) operating systems on Intel and other platforms. -1. What is XFree86 4.0.2? +1. What is XFree86 4.1.0? -XFree86 4.0.2 is the third full release in the new XFree86 4 series. +XFree86 4.1.0 is the fourth full release in the XFree86 4 series. XFree86 release 4 is a major re-design of the basic architectural underpin- nings of XFree86's implementation of the original X Consortium's X Server. @@ -25,7 +25,7 @@ The road to XFree86 release 4 began as an architectural concept in mid 1997, with the serious framework being implemented in code the beginning of 1998. There were several snapshots on the road to 4.0 which are now part of the 4.0 -base release. The 4.0.2 version is an upgrade to 4.0.1, which include more +base release. The 4.1.0 version is an upgrade to 4.0.3, which include more hardware ports, code enhancements and bug fixes. Release 4 also included the long-awaited integration of the DRI (Direct Ren- @@ -38,7 +38,8 @@ ware are available. Please check the Driver Status document first to see whether your hardware is supported before upgrading to the 4.x series. -Specific release enhancements can be viewed in the Release Notes. +The XFree86 version numbering system has had some changes as of the 4.0.2 +release. Information about this can be found in the Versions Document. Information about binary distributions and the attendant installation instructions can be found in the Installation Document. @@ -113,39 +114,48 @@ fix to . This will ensure that they are included in future releases. And thanks! You make this truly an Open group. -4. How to get XFree86 4.0.2 +4. How to get XFree86 4.1.0 -XFree86 4.0.2 can be found at the XFree86 ftp server -, and at mirrors of this +XFree86 4.1.0 can be found at the XFree86 ftp server +, 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 obtaining the release in source form is given below. -The source for version 4.0.2 is split into three tarballs: X402src-1.tgz, -X402src-2.tgz, X402src-3.tgz. The first contains everything except the fonts -and general X11 documentation. It is sufficient for building XFree86 is you +The source for version 4.1.0 is split into three tarballs: X410src-1.tgz, +X410src-2.tgz, X410src-3.tgz. The first contains everything except the fonts +and general X11 documentation. It is sufficient for building XFree86 if 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 4.0.1 is also available. Because of its -size, it is split into four parts. The patch files are 4.0.1-4.0.2.diff1.gz, -4.0.1-4.0.2.diff2.gz, 4.0.1-4.0.2.diff3.gz and 4.0.1-4.0.2.diff4.gz. There +A source patch relative to version 4.0.2 is also available. Because of its +size, it is split into four parts. The patch files are 4.0.2-4.1.0.diff1.gz, +4.0.2-4.1.0.diff2.gz, 4.0.2-4.1.0.diff3.gz and 4.0.2-4.1.0.diff4.gz. There is also a tarball that contains some files that have components that can't be -included in a diff. It is 4.0.2.tgz. These patches should be applied to a -clean 4.0.1 source tree, working from the directory containing the xc/ direc- +included in a diff. It is 4.1.0.tgz. These patches should be applied to a +clean 4.0.2 source tree, working from the directory containing the xc/ direc- tory. The patches should be applied by running: - gzip -d < 4.0.1-4.0.2.diff1.gz | patch -p0 -E - gzip -d < 4.0.1-4.0.2.diff2.gz | patch -p0 -E - gzip -d < 4.0.1-4.0.2.diff3.gz | patch -p0 -E - gzip -d < 4.0.1-4.0.2.diff4.gz | patch -p0 -E + gzip -d < 4.0.2-4.1.0.diff1.gz | patch -p0 -E + gzip -d < 4.0.2-4.1.0.diff2.gz | patch -p0 -E + gzip -d < 4.0.2-4.1.0.diff3.gz | patch -p0 -E + gzip -d < 4.0.2-4.1.0.diff4.gz | patch -p0 -E + + rm -f xc/programs/xieperf/images/image.012 + rm -fr xc/fonts/bdf/latin2 + rm -fr xc/fonts/bdf/100dpi + rm -fr xc/fonts/bdf/75dpi + + gzip -d < 4.1.0.tgz | tar vxf - + +Patches might also be available relative to 4.0.3. If so, the instructions +for applying them are the same, except that you should start with a clean +4.0.3 source tree. - gzip -d < 4.0.2.tgz | tar vxf - +The contrib part of the distribution was folded into the main source tree a +while ago, so a separate contrib tarball is not required. -The contrib part of the distribution has been folded into the main source -tree, so a separate contrib tarball is no longer required. - To format the XFree86 documentation use the latest version of our doctools package available as doctools-1.2.tgz. @@ -158,7 +168,7 @@ system core dump. Do not edit the log file as our developers use it to reproduce and debug your problem. - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.110 2000/12/15 16:11:57 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/README.sgml,v 3.113.2.3 2001/06/02 16:17:40 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README,v 3.109 2000/12/15 18:14:32 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README,v 3.111.2.3 2001/06/02 16:21:49 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.DECtga diff -u xc/programs/Xserver/hw/xfree86/doc/README.DECtga:3.17 xc/programs/Xserver/hw/xfree86/doc/README.DECtga:3.17.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.DECtga:3.17 Fri Dec 1 14:47:46 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.DECtga Fri Jun 1 14:26:43 2001 @@ -6,7 +6,7 @@ 1. DEC 21030 - o The DEC 21030 is supported by XFree86 4.0.2. The driver is now par- + o The DEC 21030 is supported by XFree86 4.1.0. The driver is now par- tially accelerated. The built-in graphics on the Multia is supported in 8-plane mode, and PCI cards with 8 or 16 MB framebuffers are supported in 24-plane mode. TGA2 (aka PowerStorm 3D30/4D20) cards are not cur- @@ -65,4 +65,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DECtga.sgml,v 3.9 2000/03/06 22:59:23 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DECtga,v 3.17 2000/12/01 19:47:46 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DECtga,v 3.17.4.1 2001/06/01 18:26:43 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.DRI diff -u xc/programs/Xserver/hw/xfree86/doc/README.DRI:1.12 xc/programs/Xserver/hw/xfree86/doc/README.DRI:1.16.2.1 --- xc/programs/Xserver/hw/xfree86/doc/README.DRI:1.12 Tue Dec 12 14:04:02 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.DRI Fri Jun 1 14:26:43 2001 @@ -2,13 +2,13 @@ VA Linux Systems, Inc. Professional Services - Graphics. - 20 November 2000 + 3 May 2001 1. Preamble 1.1 Copyright -Copyright © 2000 by VA Linux Systems, Inc. All Rights Reserved. +Copyright © 2000-2001 by VA Linux Systems, Inc. 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 @@ -24,8 +24,9 @@ Oxygen are either registered trademarks or trademarks of 3Dlabs Inc. Ltd. 3dfx, Voodoo3, Voodoo4, and Voodoo5 are registered trademarks of 3dfx Inter- active, Incorporated. Matrox is a registered trademark of Matrox Electronic -Systems Ltd. ATI Rage is a registered trademark of ATI Technologies, Inc. -All other trademarks mentioned are the property of their respective owners. +Systems Ltd. ATI Rage and Radeon are registered trademarks of ATI Technolo- +gies, Inc. All other trademarks mentioned are the property of their respec- +tive owners. 2. Introduction @@ -49,59 +50,37 @@ 3. Supported Architectures & Hardware - " +3.1 CPU Architectures -3.1 Architectures +The architectures currently supported by the DRI have grown from the initial +Intel i386 systems to now include the Alpha Processor and the Sun SPARC +machines. + +Intel's SSE (a.k.a. Katmai) instructions are used in optimized vertex trans- +formation functions in Mesa-based drivers. This requires a recent Linux ker- +nel both at compile and runtime. See the DRI Compile Guide for compile-time +requirements. At runtime a check is made to determine if the CPU can execute +SSE instructions. They're disabled otherwise. + +AMD's 3DNow! instructions are also used in optimized vertex transformation +functions in the Mesa-based DRI drivers. 3DNow! is supported in most ver- +sions of Linux. Like the SSE optimizations, a runtime check is made to +determine if the CPU can execute 3DNow! instructions. - " +Alpha-based systems can use Compaq's optimized math library for improved 3D +performance. See the DRI Compilation Guide for details. -The Architectures currently supported by the DRI have grown from the initial -Intel i386 based machines to now include, the Alpha Processor and the Sun -SPARC machines. - -The build environment for both of these new architectures have a pre-build -environment that will correctly build the DRI drivers and Mesa meaning no -extra configuration is necessary to build the DRI for these architectures. - -3.1.1 Alpha Features - - " - -On newer Alpha processors, it should be noted that a significant performance -increase can be seen with the addition of the -mcpu= command that should be -passed to GCC upon compilation. Dependent of the architecture of the proces- -sor, for example -mcpu=ev6 will build specifically for the EV6 based AXP's, -giving both byte and word alignment access to the DRI/Mesa drivers. - -Use this as an example of compiling with this extra speed. In your host.def -file that should reside in the xc/config directory, add the line. - -#define DefaultGcc2AxpOpt -O2 -mcpu=ev6 - -Additional speed improvements to 3D rendering can be achieved by installing -Compaq's Math Libraries (CPML) which can be obtained from the following URL. - -http://www.support.compaq.com/alpha-tools/software/index.html - -Once installed, you can set this option in your host.def to build against the -CPML libraries. - -#define UseCompaqMathLibrary YES - 3.2 Graphics Hardware - " - XFree86 4.0 (or later versions) includes 3D acceleration for the following graphics hardware: -NOTE: This is a complete list of graphics hardware supported. It may not be -supported on your platform. + o 3dfx, supported on Intel x86, AMD and Alpha: - o 3dfx: - o Voodoo5 5500 + o Voodoo4 4500 + o Voodoo3 3500 TV o Voodoo3 3000 AGP @@ -119,42 +98,53 @@ There are many configurations of 3dfx cards on the market. Not all have been tested. - o Matrox: + o Matrox, supported on Intel x86 and AMD: o Matrox G200 o Matrox G400 - o Intel i810 + o Intel i810 (motherboard chipset) o i810 o i810-dc100 o i810e + + o ATI Rage 128, supported on Intel x86 and AMD: - o ATI Rage 128 + o Rage Fury - o Rage Fury AGP + o Rage Magnum - o Rage Magnum AGP + o XPERT 2000 - o XPERT 2000 AGP + o XPERT 128 - o XPERT 128 AGP + o XPERT 99 - o XPERT 99 AGP + o All-in-Wonder 128 - o All-in-Wonder 128 AGP + Note that both PCI and AGP versions of Rage 128 based cards are sup- + ported at this time. - The PCI versions of these cards also have minimal support. Note that - there are also Rage 128 Pro based boards on the market, and these are - not yet supported. + o ATI Radeon, supported on Intel x86 and AMD: - o 3Dlabs Oxygen GMX 2000 (MX/Gamma based) + o Radeon SDR AGP -Support for other hardware is underway. + o Radeon DDR AGP + o 3Dlabs, supported on Intel x86 and AMD: + + o Oxygen GMX 2000 (MX/Gamma based). Note: this driver is no longer + being actively developed. + +Support for other hardware is underway. Most of the DRI development work is +funded by contracts with IHVs. These contracts often prevent us from +announcing drivers before they're released. Queries about upcoming drivers +may not be answerable. + 4. Prerequisite Software o The DRI is available in XFree86 4.0 and later. @@ -167,8 +157,6 @@ 5. Kernel Modules - " - 3D hardware acceleration requires a DRI kernel module that's specific to your graphics hardware. @@ -195,8 +183,6 @@ 6. XF86Config file - " - The XFree86 configuration file is usually found in /etc/X11/XF86Config. This section describes the parts which must be specially set for the DRI. @@ -210,10 +196,13 @@ Load "dri" EndSection -Next, the DRI section can be used to restrict access to direct rendering. +Next, the DRI section can be used to restrict access to direct rendering. A +client can only use direct rendering if it has permission to open the +/dev/dri/card? file(s). The permissions on these DRI device files is con- +trolled by the "DRI" section in the XF86Config file. If you want all of the users on your system to be able to use direct-render- -ing, then use a simple DRI section: +ing, then use a simple DRI section like this: Section "DRI" Mode 0666 @@ -342,15 +331,15 @@ OpenGL vendor, renderer, and version lines. Among the output you should see something like this: - OpenGL vendor string: Precision Insight, Inc. + OpenGL vendor string: VA Linux Systems, Inc. OpenGL renderer string: Mesa DRI Voodoo3 20000224 - OpenGL version string: 1.2 Mesa 3.3 beta + OpenGL version string: 1.2 Mesa 3.4 or this: - OpenGL vendor string: Precision Insight, Inc. + OpenGL vendor string: VA Linux Systems, Inc. OpenGL renderer string: Mesa GLX Indirect - OpenGL version string: 1.2 Mesa 3.3 beta + OpenGL version string: 1.2 Mesa 3.4 The first example indicates that the 3dfx driver is using Voodoo3 hardware. The second example indicates that no hardware driver was found and indirect, @@ -398,9 +387,59 @@ This section contains information to help you diagnose general problems. See below for additional information for specific hardware. + +9.1 Bus Mastering + +DMA-based DRI drivers (that's most DRI drivers) cannot function unless bus +mastering is enabled for your graphics card. By default, some systems don't +having bus mastering on. You should enable it in your BIOS. + +Alternately, you can check the status of bus mastering and change the setting +from within Linux. There may be similar procedures for other operating sys- +tems. + +Run lspci (as root) and find the information describing your graphics +adapter. For example: + + 00:00.0 Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 03) + 00:01.0 PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 03) + 00:07.0 ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02) + 00:07.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01) + 00:07.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01) + 00:07.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 02) + 00:11.0 Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100] (rev 08) + 00:12.0 SCSI storage controller: Symbios Logic Inc. (formerly NCR) 53c895 (rev 02) + 00:14.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 08) + 01:00.0 VGA compatible controller: 3Dfx Interactive, Inc.: Unknown device 0009 (rev 01) + +The bus, device, and function number comprise the device id, which is conven- +tionally written in the form bus:dev.func, or in this case 01:00.0. + +Use the setpci command to examine bit two of register 4 for your graphics +card. This will indicate whether or not bus mastering is enabled. + + setpci -s 01:00.0 4.w + +A hexadecimal value will be printed. Convert the least significant digit to +binary. For example, if you see 3, that's 0011 in binary (bit two is 0). If +you see 7, that's 0111 in binary (bit two is 1). In the first example, bus +mastering is disabled. It's enabled in the second example. + +The following shell script will enabled bus mastering for your graphics card +and host bridge. Run it as root. + + #!/bin/bash + dev=01:00.0 # change as appropriate + echo Enabling bus mastering on device $dev + setpci -s $dev 4.w=$(printf %x $((0x$(setpci -s $dev 4.w)|4))) + dev=00:00.0 + echo Enabling bus mastering on host bridge $dev + setpci -s $dev 4.w=$(printf %x $((0x$(setpci -s $dev 4.w)|4))) -9.1 The X Server +You can check if this worked by running the first setpci command again. +9.2 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. @@ -453,7 +492,7 @@ SGI-GLX XFree86-DRI -9.2 Linking, running and verifying 3D acceleration +9.3 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- @@ -521,25 +560,35 @@ This section presents hardware-specific information for normal use and trou- bleshooting. -10.1 3dfx Voodoo3 Series +10.1 3dfx Banshee, Voodoo3, Voodoo4 and Voodoo5 Series -10.1.1 Dependencies +10.1.1 Requirements -The Voodoo3 DRI driver requires a special versions of the 3dfx Glide library. -It can be downloaded from the DRI website. +The 3dfx DRI driver requires special versions of the 3dfx Glide library. +Different versions of Glide are needed for Banshee/Voodoo3 than for +Voodoo4/5. The Glide libraries can be downloaded from the DRI website. 10.1.2 Configuration -Your XF86Config file's device section must specify the tdfx device: +Your XF86Config file's device section must specify the tdfx device. For +example: Section "Device" Identifier "Voodoo3" VendorName "3dfx" Driver "tdfx" EndSection + +Or, -The Screen section should then reference the Voodoo3 device: + Section "Device" + Identifier "Voodoo5" + VendorName "3dfx" + Driver "tdfx" + EndSection +The Screen section should then reference the Voodoo device: + Section "Screen" Identifier "Screen 1" Device "Voodoo3" @@ -552,13 +601,39 @@ EndSubsection EndSection -The kernel module for the Voodoo3 is named tdfx.o and should be installed in -/lib/modules/2.4.x/kernel/driver/char/drm/. It will be automatically loaded -by the Xserver if needed. +Or, + + Section "Screen" + Identifier "Screen 1" + Device "Voodoo5" + Monitor "High Res Monitor" + DefaultDepth 24 + Subsection "Display" + Depth 16 + Modes "1280x1024" "1024x768" "800x600" "640x480" + ViewPort 0 0 + EndSubsection + Subsection "Display" + Depth 24 + Modes "1280x1024" "1024x768" "800x600" "640x480" + ViewPort 0 0 + EndSubsection + EndSection + +The kernel module for 3dfx hardware is named tdfx.o and should be installed +in /lib/modules/2.4.x/kernel/driver/char/drm/. It will be automatically +loaded by the Xserver if needed. -The DRI 3D driver for the Voodoo3 should be in /usr/X11R6/lib/mod- +The DRI 3D driver for 3dfx hardware should be in /usr/X11R6/lib/mod- ules/dri/tdfx_dri.so. This will be automatically loaded by libGL.so. +The Voodoo5 supports 3D rendering in 16 and 32 bpp modes. When running in +32bpp mode an 8-bit stencil buffer and 24-bit Z (depth) buffer are offered. +When running in 16bpp mode only a 16-bit Z (depth) buffer is offered and +stencil is implemented in software. + +A software-based accumulation buffer is available in both 16 and 32bpp modes. + 10.1.3 Troubleshooting o If you try to run an OpenGL application and see an error message similar @@ -569,21 +644,33 @@ it means that you have the wrong version of the Glide library for your hardware. - 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. + o 3D acceleration for Banshee and 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. o The /dev/3dfx device is not used for DRI; it's only for Glide on older 3dfx hardware. -10.1.4 Performance + o Different versions of Glide are needed for Voodoo3 and Voodoo5. See the + DRI website's resources page to download the right version of Glide. + + o Voodoo4/5 may be run at 24bpp (instead of 32bpp, the default) but 3D + acceleration is not supported in that mode. 32bpp mode is fully 3D + accelerated. + +10.1.4 Performance and Features 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 + the FX_GLIDE_SWAPINTERVAL environment variable. The value of this vari- + able indicates the maximum number of swap buffer commands can be buffered. Zero allows maximum frame rate. + o On Voodoo4/5, rendering with 16-bits/texel textures is faster than using + 32-bit per texel textures. The internalFormat parameter to glTexImage2D + can be used to control texel size. Quake3 and other games let you con- + trol this as well. + o The glTexEnv mode GL_BLEND is not directly supported by the Voodoo3 hardware. It can be accomplished with a multipass algorithm but it's not implemented at this time. Applications which use that mode, such as @@ -622,125 +709,50 @@ o Using glColorMask(r, g, b, a) when r!=g or g!=b. -10.1.5 Known Problems - - o The Glide library cannot be used directly; it's only meant to be used - via the tdfx DRI driver. - - o SSystem has problems because of poorly set near and far clipping planes. - The office.unc Performer model also suffers from this problem. - - o The lowest mipmap level is sometimes miscolored in trilinear- sampled - polygons. - -10.2 3dfx Voodoo5 Series - -10.2.1 Dependencies - -The Voodoo5 DRI driver requires a special versions of the 3dfx Glide library, -different than that used for Voodoo3 hardware. It can be downloaded from the -DRI website. - -10.2.2 Configuration - -Your XF86Config file's device section must specify the tdfx device: - - Section "Device" - Identifier "Voodoo5" - VendorName "3dfx" - Driver "tdfx" - EndSection - -The Screen section should then reference the Voodoo3 device: - - Section "Screen" - Identifier "Screen 1" - Device "Voodoo5" - Monitor "High Res Monitor" - DefaultDepth 24 - Subsection "Display" - Depth 16 - Modes "1280x1024" "1024x768" "800x600" "640x480" - ViewPort 0 0 - EndSubsection - Subsection "Display" - Depth 24 - Modes "1280x1024" "1024x768" "800x600" "640x480" - ViewPort 0 0 - EndSubsection - EndSection - -The kernel module for the Voodoo5 is named tdfx.o and should be installed in -/lib/modules/2.4.x/kernel/driver/char/drm/. It will be automatically loaded -by the Xserver if needed. - -The DRI 3D driver for the Voodoo5 should be in /usr/X11R6/lib/mod- -ules/dri/tdfx_dri.so. This will be automatically loaded by libGL.so. - -The Voodoo5 supports 3D rendering in 16 and 32 bpp modes. When running in -32bpp mode an 8-bit stencil buffer and 24-bit Z (depth) buffer are offered. -When running in 16bpp mode only a 16-bit Z (depth) buffer is offered and -stencil is implemented in software. - -A software-based accumulation buffer is available in both 16 and 32bpp modes. - -10.2.3 Troubleshooting - - o The /dev/3dfx device is not used for DRI; it's only for Glide on older - 3dfx hardware. - - o Different versions of Glide are needed for Voodoo3 and Voodoo5. See the - DRI website's resources page to download the right version of Glide. - -10.2.4 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 Rendering with 16-bit per texel textures is faster than using 32-bit per - texel textures. The internalFormat parameter to glTexImage2D can be - used to control texel size. - o The Voodoo5 driver reverts to software rendering under the same condi- tions Voodoo3 with three exceptions. First, stencil operations are implemented in hardware when the screen is configured for 32 bits/pixel. Second, the GL_BLEND texture env mode is fully supported in hardware. Third, glColorMask is fully supported in hardware when the screen is configured for 32 bits/pixel. - -10.2.5 Known Problems - o The Glide library cannot be used directly; it's only meant to be used - via the tdfx DRI driver. - - o 24bpp screen modes are supported by the hardware but not by the current - driver. 32bpp is fully supported. - - o As of October, 2000 the second VSA-100 chip on the Voodoo5 is not yet + o As of January, 2001 the second VSA-100 chip on the Voodoo5 is not yet operational. Therefore, the board isn't being used to its full capac- ity. The second VSA-100 chip will allow Scan-Line Interleave (SLI) mode for full-screen applications and games, potentially doubling the sys- - tem's fill rate. + tem's fill rate. When the second VSA-100 chip is activated glGet- + String(GL_RENDERER) will report Voodoo5 instead of Voodoo4. -10.3 Intel i810 + o The lowest mipmap level is sometimes miscolored in trilinear- sampled + polygons. - " + o The GL_EXT_texture_env_combine extension is supported on the Voodoo4 and + Voodoo5. -10.3.1 Dependencies +10.1.5 Known Problems - " + o The lowest mipmap level is sometimes miscolored in trilinear- sampled + polygons (Voodoo3/Banshee). -A Linux kernel with AGP GART support is required. The 2.2.x kernel series -does not have AGP GART support. The 2.4.x test kernels have AGP GART and -have been tested with the i810. + o Fog doesn't work with orthographic projections. -10.3.2 Configuration + o The accuracy of blending operations on Voodoo4/5 isn't always very good. + If you run Glean, you'll find some test failures. - " + o The Glide library cannot be used directly; it's only meant to be used + via the tdfx DRI driver. + o SSystem has problems because of poorly set near and far clipping planes. + The office.unc Performer model also suffers from this problem. + +10.2 Intel i810 + +10.2.1 Requirements + +A kernel with AGP GART support (such as Linux 2.4.x) is needed. + +10.2.2 Configuration + Your XF86Config file's device section must specify the i810 device, and spec- ify a usable amount of video ram to reserve. @@ -748,6 +760,7 @@ Identifier "i810" VendorName "Intel" Driver "i810" + Option "AGPMode" "1" VideoRam 10000 EndSection @@ -772,7 +785,7 @@ The DRI 3D driver for the i810 should be in /usr/X11R6/lib/mod- ules/dri/i810_dri.so. This will be automatically loaded by libGL.so. -10.3.3 Troubleshooting +10.2.3 Troubleshooting o 3D acceleration for the i810 is only available in the 16 bit/pixel screen mode at this time. 32bpp acceleration is not supported by this @@ -787,27 +800,41 @@ too little memory is available for DMA buffers, back and depth buffers and textures, direct rendering will be disabled. -10.4 Matrox G200 and G400 +10.2.4 Performance and Features - " +Basically all of the i810 features which can be exposed through OpenGL 1.2 +are implemented. However, the following OpenGL features are implemented in +software and will be slow: -10.4.1 Dependencies + o Stencil buffer and accumulation buffer operations - " + o Blend subtract, min/max and logic op blend modes -A Linux kernel with AGP GART support (such as the 2.4.x test kernels) is -needed. + o glColorMask when any mask is set to false -10.4.2 Configuration + o GL_SEPARATE_SPECULAR_COLOR lighting mode + + o glDrawBuffer(GL_FRONT_AND_BACK) + + o Using 1D or 3D textures + + o Using texture borders + +10.3 Matrox G200 and G400 + +10.3.1 Requirements - " +A kernel with AGP GART support (such as Linux 2.4.x) is needed. +10.3.2 Configuration + Your XF86Config file's device section must specify the mga device: Section "Device" Identifier "MGA" VendorName "Matrox" Driver "mga" + Option "AGPMode" "1" VideoRam 32768 EndSection @@ -847,7 +874,7 @@ The DRI 3D driver for the G200/G400 should be in /usr/X11R6/lib/mod- ules/dri/mga_dri.so. This will be automatically loaded by libGL.so. -10.4.3 Performance +10.3.3 Performance and Features Software rendering will be used under any of the following conditions: @@ -861,10 +888,34 @@ o Using 1D or 3D textures. + o Using texture borders. + + o Using glDepthFunc(GL_NEVER). + o Using the accumulation buffer. -10.4.4 IRQ Assignment +The AGP mode may be set to 1, 2, or 4. One is used by default. Higher AGP +speeds may result in unreliable performance depending on your motherboard. +Compaq has funded the implementation of AGP accelerated ReadPixels and Draw- +Pixels in this driver. With this implementation, on a G400 drawing directly +from AGP memory (exported to the client), throughput of up to 1 GB/sec has +been measured. + +Additionally Compaq's funding has produced several new extensions in Mesa, +including one (packed_depth_stencil_MESA) which enables Read/DrawPixels func- +tionality to operate directly on the packed 24/8 depth/stencil buffers of +this hardware. + +In order to access this functionality, the application must ensure that all +pixel processing operations are disabled. There are in addition a fairly +complex set of rules regarding which packing/unpacking modes must be used, +and which data formats are supported, and alignment constraints. See the +files in lib/GL/mesa/src/drv/mga/DOCS for a summary of these. The extension +definitions are included in the Mesa 3.4 source distribution. + +10.3.4 IRQ Assignment + There have been problems in the past with the MGA driver being very sluggish when the DRI is enabled (to the point of being unusable.) This is caused by the graphics card not having an interrupt assigned to it. The current DRI @@ -875,7 +926,7 @@ Please consult your system BIOS manual for instructions on how to enable an interrupt for your graphics card. -10.4.5 MGA HAL lib +10.3.5 MGA HAL lib MGAHALlib.a is a binary library Matrox has provided for use under Linux to expose functionality for which they can not provide documentation. (For @@ -900,31 +951,26 @@ configure XFree86 4.x Multihead. It should be noted that currently the sec- ond head does not support direct rendering. -10.4.6 Known Problems +10.3.6 Known Problems None. - -10.5 ATI Rage 128 - " +10.4 ATI Rage 128 -10.5.1 Dependencies +10.4.1 Requirements - " +A kernel with AGP GART support (such as Linux 2.4.x) is needed. -A Linux kernel with AGP GART support (such as the 2.4.x test kernels) is -needed. - -10.5.2 Configuration - - " +10.4.2 Configuration -Your XF86Config file's device section must specify the r128 device: +Your XF86Config file's device section must specify the ati device: Section "Device" Identifier "Rage128" VendorName "ATI" - Driver "r128" + Driver "ati" + Option "AGPMode" "1" + Option "UseCCEFor2D" "false" EndSection The Screen section should then reference the Rage 128 device: @@ -955,15 +1001,123 @@ You may also set your screen depth to 32 for 32bpp mode. -10.5.3 Performance +10.4.3 Performance and Features While PCI Rage 128 based cards are supported, they do not yet support PCI GART, so they will not perform as well as their AGP counterparts. +For AGP cards, the AGP mode may be set to 1, 2, or 4. One is used by +default. Higher AGP speeds may result in unreliable performance depending on +your motherboard. + +Note that even at 32bpp there is no alpha channel. + +The following OpenGL features are implemented in software and will be slow: + + o Stencil buffer and accumulation buffer operations + + o Blend subtract, min/max and logic op blend modes + + o GL_SEPARATE_SPECULAR_COLOR lighting mode + + o glDrawBuffer(GL_FRONT_AND_BACK) + + o Using 1D or 3D textures + + o Using texture borders + +10.4.4 Known Problems + +If you experience stability problems you may try setting the UseCCEFor2D +option to true. This will effectively disable 2D hardware acceleration. +Performance will be degraded, of course. + +10.5 ATI Radeon + +10.5.1 Requirements + +A kernel with AGP GART support (such as Linux 2.4.x) is needed. + +10.5.2 Configuration + +Your XF86Config file's device section must specify the ati device: + + Section "Device" + Identifier "Radeon" + VendorName "ATI" + Driver "ati" + Option "AGPMode" "1" + EndSection + +The Screen section should then reference the Radeon device: + + Section "Screen" + Identifier "Screen 1" + Device "Radeon" + Monitor "High Res Monitor" + DefaultDepth 16 + Subsection "Display" + Depth 16 + Modes "1280x1024" "1024x768" "800x600" "640x480" + ViewPort 0 0 + EndSubsection + Subsection "Display" + Depth 32 + Modes "1280x1024" "1024x768" "800x600" "640x480" + ViewPort 0 0 + EndSubsection + EndSection + +The kernel module for the Radeon is named radeon.o and should be installed in +/lib/modules/2.4.x/kernel/driver/char/drm/. It will be automatically loaded +by the Xserver if needed. + +The DRI 3D driver for the Radeon should be in /usr/X11R6/lib/mod- +ules/dri/radeon_dri.so. This will be automatically loaded by libGL.so. + +You may also set your screen depth to 32 for 32bpp mode. + +10.5.3 Performance and Features + +While this driver supports many of the features of ATI Radeon cards, we do +not yet fully support the card's TCL features. This work is progressing, but +is not yet ready. + +The AGP mode may be set to 1, 2, or 4. One is used by default. Higher AGP +speeds may result in unreliable performance depending on your motherboard. + +The following OpenGL features are implemented in software and will be slow: + + o Blend subtract, blend min/max and blend logicops + + o Stencil and accumulation operations + + o 1D and 3D textures + + o Texture borders + +The GL_EXT_texture_env_combine, GL_EXT_texture_env_add and GL_EXT_tex- +ture_env_dot3 extensions are supported (or will be soon supported in the new +driver based on Mesa 3.5). + +We hope to implement support for the following features in the future: + + o Vertex transformation, clipping and lighting (TCL) + + o Hardware stencil buffer + + o Cube map textures + + o 3D textures + + o Three texture units + 10.5.4 Known Problems -DGA is not yet supported in the ATI Rage 128 X server. This feature will be -added in a future release. +Certain (early?) revisions of the AMD Irongate chipset have AGPGART problems +which effect Radeon, and other graphics cards. The card may work unreliably, +or not work at all. If the DRM kernel module is not loaded, the 2D Xserver +may work. There's hope that this can be fixed in the future. 10.6 3DLabs Oxygen GMX 2000 @@ -977,8 +1131,8 @@ 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.1 -uses Mesa 3.3. Subsequent releases of XFree86 will use newer versions of +OpenGL-like functionality is provided with the Mesa library. XFree86 4.1.0 +uses Mesa 3.4.2. Subsequent releases of XFree86 will use newer versions of Mesa. When newer versions of Mesa are available, the 3D drivers can be updated without reinstalling XFree86 or libGL.so. @@ -1052,8 +1206,7 @@ 12.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 +demo programs is available from http://dri.sourceforge.net/res.phtml 12.2 Documentation @@ -1078,7 +1231,7 @@ o In the future there may be IHV and Linux vendor support resources for the DRI. - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml,v 1.15 2000/12/12 18:54:29 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml,v 1.24 2001/05/19 00:42:22 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DRI,v 1.12 2000/12/12 19:04:02 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DRI,v 1.16.2.1 2001/06/01 18:26:43 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp diff -u xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp:3.6 xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp:3.10.2.1 --- xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp:3.6 Tue Dec 12 14:04:02 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp Fri Jun 1 14:26:43 2001 @@ -2,13 +2,13 @@ VA Linux Systems, Inc. Professional Services - Graphics. - 29 October 2000 + 21 April 2001 1. Preamble 1.1 Copyright -Copyright © 2000 by VA Linux Systems, Inc. All Rights Reserved. +Copyright © 2000-2001 by VA Linux Systems, Inc. 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 @@ -24,12 +24,14 @@ Oxygen are either registered trademarks or trademarks of 3Dlabs Inc. Ltd. 3dfx, Voodoo3, Voodoo4, and Voodoo5 are registered trademarks of 3dfx Inter- active, Incorporated. Matrox is a registered trademark of Matrox Electronic -Systems Ltd. ATI Rage is a registered trademark of ATI Technologies, Inc. -All other trademarks mentioned are the property of their respective owners. +Systems Ltd. ATI Rage and Radeon is a registered trademark of ATI Technolo- +gies, Inc. All other trademarks mentioned are the property of their respec- +tive owners. 2. Introduction This document describes how to download, compile and install the DRI project. +The DRI provides 3D graphics hardware acceleration for the XFree86 project. This information is intended for experienced Linux developers. Beginners are probably better off installing precompiled packages. @@ -40,12 +42,9 @@ You'll need the following: - o At least 400MB of free disk space. More is needed if you want to build - with debugging information or keep several build trees. + o At least 200MB of free disk space. If you compile for debugging (the -g + option) then you'll need about 600MB. - o A fast system. Using a PIII-550 it takes about 1/2 hour to build every- - thing. - o GCC compiler and related tools. o ssh (secure shell) for registered developer downloading of the DRI @@ -55,9 +54,12 @@ o FreeBSD support is not currently being maintained and may not work. +The DRI 3D drivers generally work on systems with Intel or AMD CPUs. How- +ever, there is limited support for Alpha and PowerPC support is underway. + For 3dfx Voodoo3 hardware, you'll also need: - o Glide3x headers and runtime library if you want to use the 3dfx driver. + o Glide3 headers and runtime library if you want to use the 3dfx driver. These can be obtained from linux.3dfx.com. o A recent Linux 2.4.x kernel. AGP support is not required. @@ -70,20 +72,24 @@ o A recent Linux 2.4.x kernel with AGP support. -For ATI Rage hardware, you'll also need: +For ATI Rage 128 and Radeon hardware, you'll also need: o A recent Linux 2.4.x kernel with AGP support. 4. Linux Kernel Preparation The DRI project closely tracks Linux kernel development. Since the internal -Linux data structures change frequently in the 2.4 development branch it's -important to have use the most recent Linux kernel. As of this writing (Nov -2000), 2.4.0-test11-pre5 is the most recent version of Linux which the DRI is -synchronized to. +Linux data structures might change in the 2.4 Linux kernel, it's important to +use the most recent Linux kernel and not an old, intermediate development +release. As of this writing (Jan 2001), 2.4.0 is the most recent version of +Linux which the DRI is synchronized to. Most of the DRI drivers require AGP support and using Intel Pentium III SSE -optimizations also requires an up-to-date Linux kernel. +optimizations also requires an up-to-date Linux kernel. Configuring your +kernel correctly is very important, as features such as SSE optimizations +will be disabled if your kernel does not support them. Thus, if you have a +Pentium III processor, you must configure your kernel for the Pentium III +processor family. Building a new Linux kernel can be difficult for beginners but there are resources on the Internet to help. This document assumes experience with @@ -102,6 +108,17 @@ ln -s linux-2.4.x linux bzcat linux-2.4.x.tar.bz2 | tar xf - + It is critical that /usr/src/linux point to your new kernel sources, + otherwise the kernel headers will not be used when building the DRI. + This will almost certainly cause compilation problems. + + o Read /usr/src/linux/Documentation/Changes. This file lists the minimum + requirements for all software packages required to build the kernel. + You must upgrade at least gcc, make, binutils and modutils to at least + the versions specified in this file. The other packages may not be + needed. If you are upgrading from Linux 2.2.x you must upgrade your + modutils package for Linux 2.4.x. + o Configure your kernel. You might, for example, use make menuconfig and do the following: @@ -111,10 +128,17 @@ o hit ESC to return to the top-level menu + o Go to Processor type and features + + o Select your processor type from Processor Family + + o hit ESC to return to the top-level menu + o Go to Character devices o Disable Direct Rendering Manager (XFree86 DRI support) since we'll - use the DRI module from the XFree86/DRI tree. + use the DRI code from the XFree86/DRI tree and will compile it + there. o Go to /dev/agpgart (AGP Support) (EXPERIMENTAL) (NEW) @@ -153,13 +177,54 @@ Note that last make command will automatically run lilo for you. - o Upgrade your modutils package for Linux 2.4.x if you're upgrading from - Linux 2.2.x. - o Now reboot to use the new kernel. + +5. CPU Architectures + +In general, nothing special has to be done to use the DRI on different CPU +architectures. There are, however, a few optimizations that are CPU-depen- +dent. Mesa will determine at runtime which CPU-dependent optimizations +should be used and enable them where appropriate. + +5.1 Intel Pentium III Features + +The Pentium III SSE (Katmai) instructions are used in optimized vertex trans- +formation functions in the Mesa-based DRI drivers. On Linux, SSE requires a +recent kernel (such as 2.4.0-test11 or later) both at compile time and run- +time. + +5.2 AMD 3DNow! Features + +AMD's 3DNow! instructions are used in optimized vertex transformation func- +tions in the Mesa-based DRI drivers. 3DNow! is supported in most versions of +Linux. -5. Downloading the XFree86/DRI CVS Sources +5.3 Alpha Features +On newer Alpha processors a significant performance increase can be seen with +the addition of the -mcpu= option to GCC. This option is dependent on the +architecture of the processor. For example, -mcpu=ev6 will build specifi- +cally for the EV6 based AXP's, giving both byte and word alignment access to +the DRI/Mesa drivers. + +To enable this optimization edit your xc/config/host.def file and add the +line: + +#define DefaultGcc2AxpOpt -O2 -mcpu=ev6 + +Additional speed improvements to 3D rendering can be achieved by installing +Compaq's Math Libraries (CPML) which can be obtained from http://www.sup- +port.compaq.com/alpha-tools/software/index.html + +Once installed, you can add this line to your host.def to build with the CPML +libraries: + +#define UseCompaqMathLibrary YES + +The host.def file is explained below. + +6. Downloading the XFree86/DRI CVS Sources + The DRI project is hosted by VA Linux Systems' SourceForge. The DRI source code, which is a subset of the XFree86 source tree, is kept in a CVS reposi- tory there. @@ -169,7 +234,7 @@ user so that you may submit non-anonymous bug reports and can participate in the mailing lists. -5.1 Anonymous CVS download: +6.1 Anonymous CVS download: 1. Create a directory to store the CVS files: @@ -189,7 +254,7 @@ The -z3 flag causes compression to be used in order to reduce the down- load time. -5.2 Registered CVS download: +6.2 Registered CVS download: 1. Create a directory to store the CVS files: @@ -215,7 +280,7 @@ The -z3 flag causes compression to be used in order to reduce the down- load time. -5.3 Updating your CVS sources +6.3 Updating your CVS sources In the future you'll want to occasionally update your local copy of the DRI source code to get the latest changes. This can be done with: @@ -226,7 +291,7 @@ The -d flag causes any new subdirectories to be created and -A causes most recent trunk sources to be fetched, not branch sources. -6. Mesa +7. Mesa Most of the DRI 3D drivers are based on Mesa (the free implementation of the OpenGL API). The relevant files from Mesa are already included in the @@ -239,9 +304,9 @@ not generally recommended. The DRI developers will upgrade Mesa when appro- priate. -7. Compiling the XFree86/DRI tree +8. Compiling the XFree86/DRI tree -7.1 Make a build tree +8.1 Make a build tree Rather than placing object files and library files right in the source tree, they're instead put into a parallel build tree. The build tree is made with @@ -259,7 +324,7 @@ Advanced users may have several build trees for compiling and testing with different options. -7.2 Edit the host.def file +8.2 Edit the host.def file The ~/DRI-CVS/build/xc/config/cf/host.def file is used to configure the XFree86 build process. You can change it to customize your build options or @@ -272,7 +337,7 @@ (Alpha) #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 (or similar) #define LibraryCDebugFlags -O2 #define BuildServersOnly YES - #define XF86CardDrivers vga tdfx mga r128 i810 + #define XF86CardDrivers vga tdfx mga ati i810 #define LinuxDistribution LinuxRedHat #define DefaultCCOptions -ansi GccWarningOptions -pipe #define BuildXF86DRI YES @@ -281,6 +346,7 @@ /* #define GlxBuiltInTdfx YES */ /* #define GlxBuiltInMga YES */ /* #define GlxBuiltInR128 YES */ + /* #define GlxBuiltInRadeon YES */ /* #define DoLoadableServer NO */ #define SharedLibFont NO @@ -294,12 +360,27 @@ If you have 3dfx hardware be sure that the Glide 3x headers are installed in /usr/include/glide3/ and that the Glide 3x library is installed at -/usr/lib/libglide3x.so. +/usr/lib/libglide3.so. If you do not have 3dfx hardware comment out the HasGlide3 line in host.def. + +If you want to enable 3DNow! optimizations in Mesa and the DRI drivers, you +should add the following: + + #define MesaUse3DNow YES -7.3 Compilation +If you want to enable SSE optimizations in Mesa and the DRI drivers, you must +upgrade to a Linux 2.4.x kernel. Mesa will verify that SSE is supported by +both your processor and your operating system, but to build Mesa inside the +DRI you need to have the Linux 2.4.x kernel headers in /usr/src/linux. If +you enable SSE optimizations with an earlier version of the Linux kernel in +/usr/src/linux, Mesa will not compile. You have been warned. If you do have +a 2.4.x kernel, you should add the following: + #define MesaUseKatmai YES + +8.3 Compilation + To compile the complete DRI tree: cd ~/DRI-CVS/build/xc/ @@ -320,7 +401,7 @@ WARNING: do not use the -j option with make. It's reported that it does not work with XFree86/DRI. -7.4 Check for compilation errors +8.4 Check for compilation errors Using your text editor, examine World.LOG for errors by searching for the pattern ***. @@ -331,8 +412,8 @@ ls For the 3dfx Voodoo, you should see tdfx.o. For the Matrox G200/G400, you -should see mga.o. For the ATI Rage 128, you should see r128.o. For the -Intel i810, you should see i810.o. +should see mga.o. For the ATI Rage 128, you should see r128.o. For the ATI +Radeon, you should see radeon.o. For the Intel i810, you should see i810.o. If the DRI kernel module(s) failed to build you should verify that you're using the right version of the Linux kernel. The most recent kernels are not @@ -344,7 +425,7 @@ path to your kernel source is /usr/src/linux-2.4.x, cd ~/DRI-CVS/build/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel - make TREE=/usr/src/linux-2.4 + make TREE=/usr/src/linux-2.4.x/include or alternatively, edit Makefile to include this change. @@ -352,19 +433,22 @@ parts of the source tree but it's important that the whole tree will build first. -7.5 DRI kernel module installation +8.5 DRI kernel module installation The DRI kernel modules are in ~/DRI-CVS/build/xc/pro- grams/Xserver/hw/xfree86/os-support/linux/drm/kernel/. -To load the appropriate DRI module in your running kernel you can either use +To load the appropriate DRM module in your running kernel you can either use ismod and restart your X server or copy the kernel module to /lib/mod- -ules/2.4.x/kernel/driver/char/drm/ then run depmod and restart your X server. +ules/2.4.x/kernel/drivers/char/drm/ then run depmod and restart your X +server. Make sure you first unload any older DRI kernel modules that might be already loaded. + +Note that some DRM modules require that the agpgart module be loaded first. -8. Normal Installation and Configuration +9. Normal Installation and Configuration Most users will want to install the new X server and use it instead of the original X server. This section explains how to do that. We assume that the @@ -374,7 +458,7 @@ actually installing it as their default server. If you want to do that, skip to the next section. -8.1 X Installation +9.1 X Installation You'll need to run as root to do the following commands: @@ -388,7 +472,7 @@ cd ~/DRI-CVS/build/xc make install -8.2 Linker configuration +9.2 Linker configuration Edit your /etc/ld.so.conf file and put /usr/X11R6-DRI/lib as the first line. Then run: @@ -397,7 +481,7 @@ This will ensure that you use the new X libraries when you run X programs. -8.3 Update Locale Information +9.3 Update Locale Information To update your X locale information do the following: @@ -409,7 +493,7 @@ This will prevent a locale error message from being printed when you run Xlib programs. -8.4 Setup Miscellaneous Files +9.4 Setup Miscellaneous Files Issue the following commands: @@ -421,7 +505,7 @@ This will allow applications to use the fonts and resources that they used in the past. -8.5 Disable the Old X Server and Enable the New One +9.5 Disable the Old X Server and Enable the New One Assuming that an installation of XFree86 3.3.x is present, we need to disable the old 3.3.x X server and enable the new 4.0.x X server. @@ -435,7 +519,7 @@ This will cause the new X server to be used instead of the original one. -8.6 Create the XF86Config File +9.6 Create the XF86Config File Configuration files for XFree86 3.3.x will not work with XFree86 4.0.x. @@ -460,20 +544,20 @@ not by 3.3.x servers. You can instead name it /etc/X11/XF86Config but that'll overwrite your old config file, which you may want to preserve. -8.7 Start the New X Server +9.7 Start the New X Server The new X server should be ready to use now. Start your X server in your usual manner. Typically, the startx command is used: startx -9. Testing the Server Without Installing It +10. Testing the Server Without Installing It As mentioned at the start of section 8, developers may want to simply run the X server without installing it. This can save some time and allow you to keep a number of X servers available for testing. -9.1 Configuration +10.1 Configuration As described in the preceding section, you'll need to create a configuration file for the new server. Put the XF86Config file in your ~/DRI- @@ -481,7 +565,7 @@ Be sure the ModulePath option is set correctly. -9.2 A Startup Script +10.2 A Startup Script A simple shell script can be used to start the X server. Here's an example. @@ -508,13 +592,13 @@ ./start-dri >& log -10. Where To Go From Here +11. Where To Go From Here At this point your X server should be up and running with hardware-acceler- ated direct rendering. Please read the DRI User Guide for information about trouble shooting and how to use the DRI-enabled X server for 3D applications. - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml,v 1.9 2000/12/12 17:48:10 alanh Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml,v 1.14 2001/05/02 15:06:08 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp,v 3.6 2000/12/12 19:04:02 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.DRIcomp,v 3.10.2.1 2001/06/01 18:26:43 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.Darwin diff -u xc/programs/Xserver/hw/xfree86/doc/README.Darwin:1.3 xc/programs/Xserver/hw/xfree86/doc/README.Darwin:1.3.4.4 --- xc/programs/Xserver/hw/xfree86/doc/README.Darwin:1.3 Tue Dec 12 14:04:02 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.Darwin Sat Jun 2 12:02:08 2001 @@ -2,7 +2,7 @@ Torrey T. Lyons - 11 December 2000 + 25 May 2001 1. Introduction @@ -14,19 +14,31 @@ 2. Hardware Support and Configuration -The Darwin port of XFree86 uses the IOKit for device driver loading and dis- -covery, rather than the XFree86 module loader. Because of this, the XFree86 -configuration file is not used on Darwin systems. The descriptions found -elsewhere of devices supported by XFree86 for other operating systems also do -not apply. - -XFree86 for Darwin will work with any video card that you have an IOKit -driver for. If you are running Mac OS X, this typically means any card that -has been shipped by Apple. If a card works for you with the Mac OS X GUI, it -will work on the same machine with XFree86. If you have a pure Darwin instal- -lation, your hardware support may be somewhat limited because Apple does not -include all its hardware drivers with Darwin. IOKit drivers are typically -found in /System/Library/Extensions/ or /Library/Extensions/. +XFree86 can be run either from the console or side by side with Mac OS X's +Aqua desktop in a full screen mode. In full screen mode with Aqua, when the X +window system is active, it takes over the entire screen. You can switch back +to the Mac OS X desktop by holding down Command-Option-A. This key combina- +tion can be changed in the user preferences. From the Mac OS X desktop, just +click on the XDarwin icon in the floating switch window to switch back to the +X window system. You can change this behavior in the user preferences so +that clicking on the XDarwin icon in the Dock switches as well. The full +screen cooperative mode with Aqua is known as Quartz mode, named after the +Quartz 2D compositing engine used by Aqua. + +From the console, the Darwin port of XFree86 uses the IOKit for device driver +loading and discovery, rather than the XFree86 module loader. Because of +this, the XFree86 configuration file is not used on Darwin or Mac OS X sys- +tems. The descriptions found elsewhere of devices supported by XFree86 for +other operating systems also do not apply. Running XFree86 from the text +console is known as IOKit mode. + +XFree86 for Darwin or Mac OS X will work with any video card that you have an +IOKit driver for. If you are running Mac OS X, this typically means any card +that has been shipped by Apple. If a card works for you with the Mac OS X +GUI, it will work on the same machine with XFree86. If you have a pure Darwin +installation, you may need to download additional third-party drivers from +Apple's Darwin site. IOKit drivers are typically installed in /Sys- +tem/Library/Extensions/ or /Library/Extensions/. Multi-button and scroll wheel mouse support works well with all USB mice that I have tested. I have done no testing with serial mice. @@ -35,31 +47,21 @@ Following are instructions for building and running your own copy of XFree86. The procedure for getting your X server up and running on Darwin and Mac OS X -are very similar, but it is actually somewhat more difficult on Mac OS X. -Where there are differences I have noted them below. Both Mac OS X Develop- -ers' Preview 4 and Mac OS X Public Beta are covered. Note that to build -XFree86 for yourself on Mac OS X Beta, you will need to have the Developers' -Tools. If you did not receive these as a member of ADC, they are available -for download from the Apple Developer Connection. - -If you want to save some time, you can use the precompiled binaries provided -by the XFree86 server at . Follow the instructions in the Install document to install -it. - -This will create two new directory trees, /usr/X11R6 and /private/etc/X11. If -you have the developers' tools, you may have to run ranlib on all the -libraries in /usr/X11R6/lib/* before trying to build other X applications. +are very similar. Where there are differences I have noted them below. Note +that to build XFree86 for yourself on Mac OS X, you will need to install the +Developers' Tools. + +If you don't feel the need to live on the cutting edge, you can save some +time and effort by using the precompiled binaries available on the XFree86 +FTP server at . +Follow the instructions in the Install document to install it. This will cre- +ate two new directory trees, /usr/X11R6 and /etc/X11 For Mac OS X Quartz sup- +port, download the optional Xquartz.tgz tarball. If you get the precompiled binaries you can skip ahead to the section on run- -ning X windows (section 4., page 1) +ning the X window system (section 4., page 1) On the other hand, if you want +to build things yourself from scratch, follow the directions below. -On the other hand, if you want to build things yourself from scratch, follow -the directions below. - -If you want to recompile the X server on Mac OS X, you will have to make the -header files as described below (section 3.2, page 1). - 3.1 Get the Code The first thing you need to do is to get the source code from the XFree86 @@ -68,8 +70,8 @@ o Setup CVS: Both Darwin and Mac OS X include CVS (Concurrent Versions System), which is an easy way to download and keep up to date with open source code released by XFree86 and others. You do have to setup CVS - properly, however, to tell it where to look. Follow the instructions - here on how to do this either via ssh or via the cvs pserver. + properly, however, to tell it where to look. Follow the XFree86 instruc- + tions on how to do this either via ssh or via the cvs pserver. o Now make a directory in some convenient place which will serve as your top level directory for you open source development efforts. I am going @@ -82,23 +84,8 @@ cvs checkout xc Wait for all the files to complete downloading. - -3.2 Make Header Files for Mac OS X - -These next steps are not necessary if you are building XFree86 on Darwin. Mac -OS X Beta or DP4 does not include many of the 'in-progress' header files that -are needed to successfully build XFree86. The general philosophy is that at -any given time, Mac OS X will include only headers files that are 'ready for -prime time' while Darwin will include a snapshot of Apple's current efforts. -So if you have access to a Darwin system, I would suggest using this instead -of Mac OS X to build XFree86. If you don't, read the appropriate page below -for an outline of what you need to do: - - o Mac OS X Public Beta (section 6.1, page 1) - - o Mac OS X Developers' Preview 4 (section 6.2, page 1) -3.3 Build XFree86 +3.2 Build XFree86 Once you have everything ready it is easy to build and install XFree86. From the command line: @@ -108,61 +95,69 @@ (wait for several hours) - su root - make install >& install.log - make install.man >& man.log + sudo make install >& install.log + sudo make install.man >& man.log -4. Run X Windows +4. Run the X Window System -You will want to add the X windows executables to your path. Your path is the +You will want to add the X window executables to your path. Your path is the list of directories to be searched when you type a command. You will also want to add the man pages from XFree86 to the list of pages to be searched when you are looking for documentation. The way to do this depends on the shell you are using. With tcsh or csh add the following two lines to a file -in your home directory called .cshrc (create this file if you don't have one -yet): +named ~/Library/init/tcsh/path: (You may need to create this file and direc- +tory path if it does not exist already.) - setenv MANPATH "${MANPATH}:/usr/X11R6/man:/usr/local/man" setenv PATH "${PATH}:/usr/X11R6/bin" + setenv MANPATH "${MANPATH}:/usr/X11R6/man" -Now type ``source ~/.cshrc;rehash'' to get these changes to take effect. On -future logins, this file will be executed automatically. +The next time you login or open a Terminal window, this file will be executed +automatically. -You are now ready to go. On Mac OS X, you have to do a few extra steps each -time you want to run X windows. You can't run XFree86 with CoreGraphics run- -ning since they both want to control the screen. So for Mac OS X you first -need to logout. Then for Mac OS X DP4, from the login window type ``console'' -as the user name and push login. For Mac OS X Beta, type ``>console'' as the -user name. This should shutdown CoreGraphics and bring you up with a text -console. Login again. - -Now from the text console you can start X Windows in either Darwin or Mac OS -X by typing ``startx''. After a brief wait at least one terminal window -should pop up for you. So far it probably isn't very impressive as you might -not even have a window manager running to allow you to move windows around. - -When you are ready to quit X windows type ``exit'' in the main terminal win- -dow or quit with the window manager if you have one running. Unfortunately -the X server won't shutdown correctly and you will get an apparently frozen -screen with only a spinning beachball cursor on it. Nothing you type shows up -on the screen, but in fact your keystrokes are being received by the console. -Type ``logout'' to return to normalcy after a brief delay. With Darwin this -should put you back at the text console login prompt. With Mac OS X, Core- -Graphics will restart and you should be given a login window. +You are now ready to go. On Mac OS X, you can run XFree86 from the text con- +sole or in full screen mode with Aqua. To get to the text console in Mac OS X +you need to logout and type ``>console'' as the user name. This will shutdown +Core Graphics and bring up the console login prompt. Login again as your +user. + +From the text console you can start the X Window System by typing ``startx''. +After a brief wait at least one terminal window should pop up for you. So +far it probably isn't very impressive as you might not even have a window +manager running to allow you to move windows around. + +When you are ready to quit XFree86 type ``exit'' in the main terminal window +or quit with the window manager if you have one running. Unfortunately the X +server won't shutdown correctly and you will get an apparently frozen screen +with only a spinning beachball cursor on it. Nothing you type shows up on the +screen, but in fact your keystrokes are being received by the console. Type +``logout'' to return to normalcy after a brief delay. With Darwin this should +put you back at the text console login prompt. With Mac OS X, Core Graphics +will restart and you should be given a login window. + +To start XFree86 in Quartz mode you can launch the XDarwin application in the +/Applications folder, or from the command line type ``startx -- -quartz''. +When the X window system is active, it takes over the entire screen. You can +switch back to the Mac OS X desktop by holding down Command-Option-A. This +key combination can be changed in the user preferences. From the Mac OS X +desktop, just click on the XDarwin icon in the floating switch window to +switch back to the X window system. You can change this behavior in the user +preferences so that clicking on the XDarwin icon in the Dock switches as +well. Customize X Windows -X windows is very customizable and you will certainly want to change some -things. There is a lot you can do to control how your windows look, how the -windows are moved, resized, etc. You will likely want to get a better window -manager than twm, which is included with XFree86. The .xinitrc file in your -home directory controls what programs are run when you start X windows. You -can find a sample .xinitrc file in /private/etc/X11/xinit/xinitrc. - -There are several window managers that have been ported to Darwin. The best -collection of window managers and other X windows applications is at Dar- -winfo's ports page. Another good place to look for Darwin ports in general is -at Stepwise's Softrak site. +The X window system is very customizable and you will certainly want to +change some things. There is a lot you can do to control how your windows +look, how the windows are moved, resized, etc. You will likely want to get a +better window manager than twm, which is included with XFree86. The .xinitrc +file in your home directory controls what programs are run when you start the +X window system. You can find a sample .xinitrc file in /etc/X11/xinit/xini- +trc. + +There are several window managers that have been ported to Darwin. The best +collection of window managers and other X window clients is at Darwinfo's +ports page. Another good place to look for Darwin ports in general is at +Stepwise's Softrak site. Good luck! @@ -173,176 +168,20 @@ Things that are broken: - o The bell is broken. + o The bell does not work in IOKit mode. - o Server shutdown problem: After quitting the X server the colored beach- - ball cursor reappears, but the screen never returns to the console dis- - play. The console is accepting input however, so typing ``logout'' will - return you to the login prompt. + o Server shutdown problem: After quitting the X server in IOKit mode, the + colored beachball cursor reappears, but the screen never returns to the + console display. The console is accepting input however, so typing + ``logout'' will return you to the login prompt. o Only one display is currently supported. - - o Screen saver not supported. - - o Key repeat rate can not be adjusted. - -Things I am working on: - - o Allowing rootless use on Mac OS X - - o Correct wake from sleep behavior - -6. Appendix - -6.1 Installing IOKit Header files on Mac OS X Beta - -Here is what you need to do to be able to build XFree86 (or other clients of -IOGraphics services) on Mac OS X Public Beta. - - 1. You need to install some more build tools that aren't included in Mac - OS X Beta, but are included in Darwin. These are needed for the next - step. Go to your development directory and type: - - cvs checkout bootstrap_cmds - cd bootstrap_cmds - make - - Now su to root and do a ``make install'' from the bootstrap_cmds direc- - tory. - - 2. The IOKit framework included with Mac OS X Beta is a little on the - wimpy side, even after installing the Developer Tools. You'll need to - rebuild it, but to do so safely we'll take advantage of the cool direc- - tory structure of Mac OS X and put the new version in /Library/Frame- - works/. This will override the version in /System/Library/Frameworks/. - Or at least, that's where you should put it using the new Mac OS X Beta - file structure, but in fact the compiler doesn't know this and still - looks in /Local/Library/Frameworks. (I have already filed a developer's - bug report on this.) To start we make a copy of the original. Login as - root and do the following: - - cd /Library - mkdir -p Frameworks - cp -R /System/Library/Frameworks/IOKit.framework Frameworks/IOKit.framework - cd / - mkdir -p Local - ln -s /Library /Local/Library - - 3. Now you need to get a full version of the IOKit framework from the Dar- - win repository. This comes as part of the kernel. So, in your develop- - ment directory again: - - cvs checkout xnu - cd xnu - source SETUP/setup.csh - make exporthdrs - make install - - The "make install" will start by assembling all the headers you need, - but then will proceed to build a new kernel. You can Control-C out of - the build once it starts compiling things if you want. Otherwise, just - be patient. - - 4. You also need to get the IOKitUser project, which contains the user - interface to the IOKit, and merge it into the IOKit framework. From - your development directory type: - - cvs checkout IOKitUser - - Then you need to change the Makefile so it builds on top of the new - IOKit framework you are building. Change to the IOKitUser project - directory and edit the Makefile. Change the following line: - - NEXTSTEP_BUILD_OUTPUT_DIR = /$(USER)/build/$(NAME) - - to: - - NEXTSTEP_BUILD_OUTPUT_DIR = /BUILD/dst/System/Library/Frameworks - - Now, run ``make'' while in the IOKitUser directory. It will likely not - finish building since the IOKitUser project relies on some stuff that - Apple hasn't really made public yet, but it should finish populating - the new IOKit framework with headers and start compiling. (Strangely - enough, the headers installed in your new IOKit framework don't contain - the real header files. They are just single line files with an #import - of the file in your IOKitUser project. This works fine as long as you - don't ever delete or move your IOKitUser project. I imagine that using - ``make install'' would fix this up, but you can't do this as long as - the project doesn't build correctly. So for now you can either move the - header files by hand, or make sure you leave your IOKitUser project in - place.) - - 5. Now put the new IOKit headers into our local copy. Change to the xnu - project directory and do the following as root: - - cd BUILD/dst/System/Library/Frameworks/ - cp -R IOKit.framework/Versions/A/Headers/* \ - /Library/Frameworks/IOKit.framework/Versions/A/Headers - - 6. The System framework needs touching up a bit too. You need to copy the - libkern header files from the new System.framework. As root, go to the - xnu project directory and type: (Of course you could make a local copy - of the System framework in /Library/Frameworks/, but the additions to - the System framework are small.) - - cd BUILD/dst/System/Library/Frameworks/System.framework/Versions/B/Headers - cp -R libkern /System/Library/Frameworks/System.framework/Headers/libkern - -6.2 Installing IOKit Header files on Mac OS X DP4 - -Here is an outline of what you need to do to be able to build XFree86 (or -other clients of IOGraphics services) on Mac OS X Developers' Preview 4. - - 1. Checkout, build, and install bootstrap_cmds from the CVS repository. - - 2. Checkout xnu from the CVS repository. Go to sandbox/xnu and do the fol- - lowing: - - source SETUP/setup.csh - make exporthdrs - - 3. su to root and do the following: - - mkdir -p /Local/Library/Frameworks - cp -R /System/Library/Frameworks/IOKit.framework /Local/Library/Frameworks - - This will create a new local version of the IOKit framework that will - override the System version without changing the original. - - 4. You now want to merge the IOKit headers from the xnu project into your - local IOKit framework. I did this fairly tediously by hand, but I would - suggest something like: - - cp -R sandbox/xnu/BUILD/dst/System/Library/Frameworks/IOKit.framework/Versions/A/Headers \ - /Local/Library/Frameworks/IOKit.framework/Versions/A - - The only problem with this is that there are a few stub header files - included that are just a single line with an #import to the appropriate - place in the xnu source on your disk. This is fine as long as you don't - move your xnu project. If you do, you can copy the original file to - replace the stub. There is probably an easier way to automatically - build a clean version of the IOKit framework, but I didn't find it. - (Let me know if you do.) - - 5. There are just a few more files you need in the IOKit framework. Check- - out the IO project from CVS. Get the necessary header files from there - and put them in your new local IOKit framework. You'll get errors when - you try to build XFree86 from which you can tell which files are - needed. I also needed to make the following patch to IOLLEvent.h. Your - mileage may vary. - 47c47 - < #include - --- - > #include + o The display mode can not be changed once the X server has started. - 6. You'll also need a few extra CoreFoundation header files. Checkout - CoreFoundation. You can make a new local version of the CoreFoundation - framework as above, or just add to the existing one. The files you need - are CFMachPort.h and CFMessagePort.h in the RunLoop.subproj and CFStor- - age.h in Collections.subproj. + o A screen saver is not supported. - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Darwin.sgml,v 1.4 2000/12/12 18:54:29 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Darwin.sgml,v 1.4.4.2 2001/06/02 04:44:37 torrey Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Darwin,v 1.3 2000/12/12 19:04:02 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.Darwin,v 1.3.4.4 2001/06/02 16:02:08 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.I128 diff -u xc/programs/Xserver/hw/xfree86/doc/README.I128:1.10 xc/programs/Xserver/hw/xfree86/doc/README.I128:1.10.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.I128:1.10 Thu Dec 14 12:12:00 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.I128 Fri Jun 1 14:26:44 2001 @@ -100,4 +100,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/I128.sgml,v 1.6 2000/12/13 01:55:47 robin Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.I128,v 1.10 2000/12/14 17:12:00 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.I128,v 1.10.4.1 2001/06/01 18:26:44 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.LynxOS diff -u xc/programs/Xserver/hw/xfree86/doc/README.LynxOS:3.28 xc/programs/Xserver/hw/xfree86/doc/README.LynxOS:3.28.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.LynxOS:3.28 Fri Dec 1 14:47:46 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.LynxOS Fri Jun 1 14:26:44 2001 @@ -1,4 +1,4 @@ - README for XFree86 4.0.2 on LynxOS + README for XFree86 4.1.0 on LynxOS Thomas Mueller @@ -13,19 +13,19 @@ See the Copyright Notice. -The sources for XFree86 4.0.2 are available by anonymous ftp from: +The sources for XFree86 4.1.0 are available by anonymous ftp from: -ftp://ftp.XFree86.org/pub/XFree86/4.0.2 +ftp://ftp.XFree86.org/pub/XFree86/4.1.0 Binaries of XFree86 for LynxOS x86 are available from: -ftp://ftp.XFree86.org/pub/XFree86/4.0.2/binaries/LynxOS +ftp://ftp.XFree86.org/pub/XFree86/4.1.0/binaries/LynxOS 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.2 was released. In this case it is `LynxOS x86 +at the time XFree86 4.1.0 was released. In this case it is `LynxOS x86 3.0.1'. Because of changes made to the object format they don't run on LynxOS versions earlier than 3.0.0. @@ -37,7 +37,7 @@ 3.1.0' support has to be considered to be in `alpha state'. Initial tests were performed on LynxOS x86 only! -XFree86 4.0.2 supports LynxOS on the x86 and on the PowerPC platform. X +XFree86 4.1.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. @@ -163,7 +163,7 @@ 3.5 X Server debug diagnostics output and other VT peculiarities Output made by the XFree86 X on its stdout or stderr will be lost after the -server switches to graphics mode. The XFree86 4.0.2 server stores its output +server switches to graphics mode. The XFree86 4.1.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. @@ -266,4 +266,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/LynxOS.sgml,v 3.20 2000/06/17 00:27:32 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.LynxOS,v 3.28 2000/12/01 19:47:46 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.LynxOS,v 3.28.4.1 2001/06/01 18:26:44 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.NetBSD diff -u xc/programs/Xserver/hw/xfree86/doc/README.NetBSD:3.75 xc/programs/Xserver/hw/xfree86/doc/README.NetBSD:3.76.2.1 --- xc/programs/Xserver/hw/xfree86/doc/README.NetBSD:3.75 Tue Dec 12 14:04:02 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.NetBSD Fri Jun 1 14:26:44 2001 @@ -1,24 +1,23 @@ - README for XFree86 4.0.2 on NetBSD + README for XFree86 4.1.0 on NetBSD Rich Murphey, David Dawes, Marc Wandschneider, Mark Weaver, Matthieu Herrb - Last modified on: 7 December 2000 + Last modified on: 3 March 2001 1. What and Where is XFree86? -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. +XFree86 is the Open Source port of X.Org's X11R6.4 release that supports sev- +eral UNIX(R) and UNIX-like (such as Linux, the BSDs and Solaris x86) operat- +ing systems on Intel and other platforms. See the Copyright Notice. The sources for XFree86 are available by anonymous ftp from: -ftp://ftp.XFree86.org/pub/XFree86/4.0.2 +ftp://ftp.XFree86.org/pub/XFree86/4.1.0 -Binaries for NetBSD 1.3 and later are available from: -ftp://ftp.XFree86.org/pub/XFree86/4.0.2/binaries/NetBSD +Binaries for NetBSD 1.4 and later are available from: +ftp://ftp.XFree86.org/pub/XFree86/4.1.0/binaries/NetBSD A list of mirror sites is provided by http://www.xfree86.org/MIRRORS.shtml @@ -34,8 +33,6 @@ 3. New OS dependent features -See the Release Notes for non-OS dependent new features in XFree86 4.0.2. - 3.1 New OS dependent features in 4.0.2 o A fix for libXmu OS detection which was broken since unix isn't defined @@ -77,8 +74,8 @@ 5. Configuring X for Your Hardware -The /etc/XF86Config file tells the X server what kind of monitor, video card -and mouse you have. You must create it to tell the server what specific +The /etc/X11/XF86Config file tells the X server what kind of monitor, video +card and mouse you have. You must create it to tell the server what specific hardware you have. You'll need info on your hardware: @@ -89,6 +86,11 @@ o Your monitor's sync frequencies. +The recommended way to generate an XF86Config file is to use the xf86cfg +utility. The xf86config text utility is still there for the (few) cases +where xf86cfg can't be used. Also, there is a sample file installed as +/usr/X11R6/lib/X11/XF86Config.eg, which can be used as a starting point. + For details about the XF86Config file format, refer to the XF86Config(5) man- ual page. @@ -97,18 +99,19 @@ 5.1 About mouse configuration -The NetBSD pms mouse driver handles PS/2 style mice as Busmouse. Specify the -protocol as ``busmouse'' in the mouse section of your XF86Config file if -you're using a PS/2 mouse. +XFree86 4.1.0 has support for the mouse driver included in the wscons console +driver introduced by NetBSD 1.4. Specify ``wsmouse'' as the protocol and +``/dev/wsmouse0'' as the device in /etc/X11/XF86Config if you're using NetBSD +1.4 or later with a PS/2 mouse. + +For older releases, the NetBSD pms mouse driver handles PS/2 style mice as +Busmouse. Specify the protocol as ``busmouse'' in the mouse section of your +XF86Config file if you're using a PS/2 mouse with NetBSD 1.3 or former +releases. 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 4.0.2 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. +with a wheel) are not supported by NetBSD 1.3 and former releases. See README.mouse for general instruction on mouse configuration in XFree86. @@ -140,8 +143,8 @@ in /etc/rc.conf. -Under NetBSD 1.4 with the wscons console driver, you must enable a virtual -console for the X server first. To do this follow these steps: +Under NetBSD 1.4 and later with the wscons console driver, you must enable a +virtual console for the X server first. To do this follow these steps: o Make sure the device file exists. If not, ``cd /dev ; ./MAKEDEV wscons''. @@ -182,9 +185,10 @@ The pccons driver is the most widely tested and is the console driver con- tained in the NetBSD binary distribution's kernels. -The pcvt console driver is bundled with NetBSD. The pcvt X mode is compatible -with the pccons driver X mode. It offers several virtual consoles and inter- -national keyboard support. In order to use this driver, change the line: +The pcvt console driver was bundled with NetBSD until 1.4. The pcvt X mode is +compatible with the pccons driver X mode. It offers several virtual consoles +and international keyboard support. In order to use this driver, change the +line: device pc0 at isa? port "IO_KBD" irq 1 @@ -194,8 +198,9 @@ in your kernel config file, and rebuild and install your kernel. -XFree86 will also run with the wscons console driver in NetBSD 1.4. For now, -it uses the pcvt compatibility mode, so be sure to have the lines: +Wscons is the current console driver, included in NetBSD 1.4 and later. For +now, XFree86 supports wscons using the pcvt compatibility mode, so be sure to +have the lines: options WSDISPLAY_COMPAT_PCVT # emulate some ioctls options WSDISPLAY_COMPAT_SYSCONS # emulate some ioctls @@ -212,14 +217,14 @@ access to the /dev/mem device when in multi-users mode. But XFree86 servers can take advantage (or require) linear access to the display memory. -Most XFree86 4.0.2 card drivers require linear memory access. There are two +Most XFree86 4.1.0 card drivers require linear memory access. There are two ways to allow XFree86 to access linear memory: The first way is to disable the kernel security feature by adding ``option INSECURE'' in the kernel configuration file and build a new kernel. The second way is to install the aperture driver, included in source form in -xc/programs/Xserver/hw/xfree86/etc/apNetBSD.shar in the XFree86 4.0.2 source +xc/programs/Xserver/hw/xfree86/etc/apNetBSD.shar in the XFree86 4.1.0 source distribution. Unpack it in a new directory of your choice by running: sh apNetBSD.shar @@ -318,6 +323,11 @@ to xc/config/host.def before rebuilding the server. This has not been thor- oughly tested, except on the macppc. +For the i386, you should include both pcvt and wscons support in order to use +the pcvt compatibility mode of wscons: + + #define XFree86ConsoleDefines -DPCVT_SUPPORT -DWSCONS_SUPPORT + 8.4 Building on other architectures Note that the NetBSD project has now its own source tree, based on the @@ -358,7 +368,7 @@ 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.59 2000/12/12 18:54:29 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml,v 3.60.2.1 2001/06/01 18:09:48 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.NetBSD,v 3.75 2000/12/12 19:04:02 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.NetBSD,v 3.76.2.1 2001/06/01 18:26:44 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD diff -u xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD:1.20 xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD:1.22.2.1 --- xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD:1.20 Tue Dec 12 14:04:02 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD Fri Jun 1 14:26:44 2001 @@ -1,25 +1,24 @@ - README for XFree86 4.0.2 on OpenBSD + README for XFree86 4.1.0 on OpenBSD Matthieu Herrb - Last modified on: 2 December 2000 + Last modified on: 3 March 2000 1. What and Where is XFree86? -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. +XFree86 is the Open Source port of X.Org's X11R6.4 release that supports sev- +eral UNIX(R) and UNIX-like (such as Linux, the BSDs and Solaris x86) operat- +ing systems on Intel and other platforms. See the Copyright Notice. -The sources for XFree86 4.0.2 are available by anonymous ftp from: +The sources for XFree86 4.1.0 are available by anonymous ftp from: -ftp://ftp.XFree86.org/pub/XFree86/4.0.2 +ftp://ftp.XFree86.org/pub/XFree86/4.1.0 Binaries for OpenBSD/i386 2.8 and later are available from: -ftp://ftp.XFree86.org/pub/XFree86/4.0.2/binaries/OpenBSD +ftp://ftp.XFree86.org/pub/XFree86/4.1.0/binaries/OpenBSD A list of mirror sites is provided by http://www.xfree86.org/MIRRORS.shtml @@ -33,10 +32,16 @@ 3. New OS dependent features -See the Release Notes for non-OS dependent new features in XFree86 4.0.2. +See the Release Notes for non-OS dependent new features in XFree86 4.1.0. -3.1 New OS dependent features in 4.0.2 +3.1 New OS dependent features in 4.0.3 + o Support for the wscons console driver in post 2.8 OpenBSD. + + o A fix for multi-threaded libraries support. + +3.2 New OS dependent features in 4.0.2 + o Support for the OpenBSD ports tree, o Preliminary support for the powerpc architecture (clients build and @@ -46,7 +51,7 @@ o startx now creates an Xauthority magic cookie for the display. -3.2 New OS dependent features in 4.0.1 +3.3 New OS dependent features in 4.0.1 o Several features from the OpenBSD X11 tree were merged into xdm: @@ -65,21 +70,21 @@ o The Xsun server can be built again on OpenBSD/sparc. -3.3 New OS dependent features in 4.0 +3.4 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.4 New OS dependent features in 3.9.18 +3.5 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.5 New OS dependent features in 3.9.17 +3.6 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. @@ -92,8 +97,8 @@ 5. Configuring X for Your Hardware -The /etc/XF86Config file tells the X server what kind of monitor, video card -and mouse you have. You must create it to tell the server what specific +The /etc/X11/XF86Config file tells the X server what kind of monitor, video +card and mouse you have. You must create it to tell the server what specific hardware you have. You'll need info on your hardware: @@ -104,6 +109,11 @@ o Your monitor's sync frequencies. +The recommended way to generate an XF86Config file is to use the xf86cfg +utility. The xf86config text utility is still there for the (few) cases +where xf86cfg can't be used. Also, there is a sample file installed as +/usr/X11R6/lib/X11/XF86Config.eg, which can be used as a starting point. + For details about the XF86Config file format, refer to the XF86Config(5) man- ual page. @@ -112,8 +122,10 @@ 5.1 About mouse configuration -If your serial mouse does not work try using kermit or tip to connect to the -mouse serial port and verify that it does indeed generate characters. +XFree86 4.1.0 has support for the mouse driver included in the new wscons +console driver introduced by OpenBSD-current after 2.8. Specify ``wsmouse'' +as the protocol and ``/dev/wsmouse0'' as the device in /etc/X11/XF86Config +if you're using OpenBSD-current with a PS/2 mouse. The OpenBSD pms driver provides both ``raw'' and ``cooked'' (translated) modes. ``raw'' mode does not do protocol translation, so XFree86 would use @@ -167,9 +179,12 @@ The server supports the two standard OpenBSD/i386 console drivers: pcvt and pccons. They are detected at runtime and no configuration of the server itself is required. + +The pcvt console driver is the default in OpenBSD up to OpenBSD 2.8. It +offers several virtual consoles and international keyboard support. -The pcvt console driver is the default in OpenBSD. It offers several virtual -consoles and international keyboard support. +OpenBSD-current after 2.8 has switched to the wscons console driver. This +console driver has a pcvt compatibility mode for X support. 7.2 Aperture Driver @@ -219,6 +234,14 @@ else return -1; +In post 2.8 OpenBSD-current, a modified version of this patch has been inte- +grated. You should set + + machdep.allowaperture=2 + +in /etc/sysctl.conf in order to achieve this. See the xf86(4) manual page for +details. + Another (less recommended) way to enable linear memory and I/O ports access is to disable the kernel security feature by adding ``option INSECURE'' in your kernel configuration file and build a new kernel. You will also need to @@ -279,11 +302,22 @@ to xc/config/host.def before rebuilding the server. This has not been thor- oughly tested, except on the macppc. +For the i386, you should include both pcvt and wscons support in order to use +the pcvt compatibility mode of wscons: + + #define XFree86ConsoleDefines -DPCVT_SUPPORT -DWSCONS_SUPPORT + 8.2 Building on other architectures XFree86 should also compiles on other OpenBSD architectures. However, please note that 3.9.x snapshots have only been tested on the i386 for now. +Note that OpenBSD project has now its own source tree, based on the XFree86 +source tree, with some local modifications. You may want to start with this +tree to rebuild from sources. The OpenBSD X11 source tree is available by +anoncvs from all OpenBSD anoncvs servers. See http://www.openbsd.org/anon- +cvs.html for details on anoncvs. + 9. Building New X Clients The easiest way to build a new client (X application) is to use xmkmf if an @@ -298,7 +332,7 @@ 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.15 2000/12/12 18:54:29 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/OpenBSD.sgml,v 1.17 2001/04/05 19:29:43 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD,v 1.20 2000/12/12 19:04:02 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.OpenBSD,v 1.22.2.1 2001/06/01 18:26:44 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.SiS diff -u xc/programs/Xserver/hw/xfree86/doc/README.SiS:3.16 xc/programs/Xserver/hw/xfree86/doc/README.SiS:3.16.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.SiS:3.16 Fri Dec 1 14:47:48 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.SiS Fri Jun 1 14:26:44 2001 @@ -113,4 +113,4 @@ 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.16 2000/12/01 19:47:48 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.SiS,v 3.16.4.1 2001/06/01 18:26:44 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.apm diff -u xc/programs/Xserver/hw/xfree86/doc/README.apm:1.8 xc/programs/Xserver/hw/xfree86/doc/README.apm:1.8.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.apm:1.8 Fri Dec 1 14:47:48 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.apm Fri Jun 1 14:26:44 2001 @@ -111,4 +111,4 @@ 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.8 2000/12/01 19:47:48 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.apm,v 1.8.4.1 2001/06/01 18:26:44 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.ati diff -u xc/programs/Xserver/hw/xfree86/doc/README.ati:3.53 xc/programs/Xserver/hw/xfree86/doc/README.ati:3.56.2.1 --- xc/programs/Xserver/hw/xfree86/doc/README.ati:3.53 Thu Dec 7 10:48:14 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.ati Fri Jun 1 14:26:44 2001 @@ -2,7 +2,7 @@ Marc Aurele La France - 2000 December 6 + 2001 April 10 Abstract @@ -216,7 +216,7 @@ A ChipSet name of ``vgawonder'' is equivalent to ``ativga'', except that only VGAWonder-capable adapters can be assigned to the ``Device'' section. This -specifically excludes newer Mach64's with integrated controllers. +specifically excludes the newer integrated Mach64 controllers. In some PCI or AGP systems, the driver will not, by default, probe for non- PCI Mach32's or Mach64's. This is because, before doing any such probe, the @@ -426,10 +426,28 @@ aperture. On non-Intel platforms, the driver requires a linear aperture and, so, this -option should not be specified. +option is ignored. -5.10 Option ``shadowfb'' +5.10 Option ``HWCursor'' and Option ``SWCursor'' +Option ``HWCursor'', which is the default, specifies that hardware facilities +are to be used to paint the mouse pointer on the screen. Option ``SWCursor'' +specifies that the mouse pointer is to by drawn by software, which is much +slower. If both options are specified, option ``SWCursor'' prevails. Cur- +rently, these options are only acted upon for 256-colour or higher depth +modes, if a Mach64 accelerator CRTC, or a Mach64 integrated controller is +being used. In all other situations, a software cursor will be used. + +5.11 Option ``SilkenMouse'' + +This option is only acted upon when a hardware cursor is being used. It +specifies that the cursor's position on the screen is to be updated as +quickly as possible when the mouse is moved. This is the default behaviour. +If this option is negated, the cursor may lag the mouse when the X server is +very busy. + +5.12 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 @@ -444,19 +462,19 @@ a linear video memory aperture is not enabled, when the frame buffer depth is less than 8, or when acceleration is used. -5.11 Option ``dpms'' +5.13 Option ``dpms'' This option enables the driver's support for VESA's Display Power Management Specification. -5.12 Option ``backingstore'' +5.14 Option ``backingstore'' This is not specifically a driver option. It is used to enable the server's support for backing store, a mechanism by which pixel data for occluded win- dow regions is remembered by the server thereby alleviating the need to send expose events to X clients when the data needs to be redisplayed. -5.13 MemBase address +5.15 MemBase address This specification is only effective for non-PCI Mach64 adapters, and is used to override the CPU address at which the adapter will map its video memory. @@ -470,14 +488,14 @@ requirements of most devices in the system. This means the driver can not easily change the linear aperture address. -5.14 Option ``ReferenceClock'' ``frequency'' +5.16 Option ``ReferenceClock'' ``frequency'' This option is only applicable to non-Intel platforms, where an adapter BIOS is not available to the driver. The option specifies the reference frequency used by the adapter's clock generator. The default is 14.318 MHz, and other typical values are 28.636, or 29.5 MHz. -5.15 ClockChip ``name'' +5.17 ClockChip ``name'' This option is only applicable to non-Intel platforms, where an adapter BIOS is not available to the driver, and the driver cannot reliably determine @@ -619,7 +637,7 @@ resolving problems. If you are still experiencing problems, you can send me non-HTMLised e-mail -at . Please be as specific as possible when describing the +at . Please be as specific as possible when describing the problem(s), and include an unedited copy of the server's log and the XF86Con- fig file used. @@ -673,7 +691,7 @@ The introduction of version 6 is a first swipe at porting the driver to non- Intel architectures. - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ati.sgml,v 3.34 2000/12/07 15:43:41 tsi Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/ati.sgml,v 3.37 2001/04/16 15:02:08 tsi Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.ati,v 3.53 2000/12/07 15:48:14 tsi Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.ati,v 3.56.2.1 2001/06/01 18:26:44 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.chips diff -u xc/programs/Xserver/hw/xfree86/doc/README.chips:3.35 xc/programs/Xserver/hw/xfree86/doc/README.chips:3.36.2.1 --- xc/programs/Xserver/hw/xfree86/doc/README.chips:3.35 Mon Dec 4 14:47:24 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.chips Fri Jun 1 14:26:44 2001 @@ -3,11 +3,11 @@ David Bateman (), Egbert Eich () - 14th June 2000 + 1st January 2001 1. Introduction -With the release of XFree86 version 4.0.2, the Chips and Technologies driver +With the release of XFree86 version 4.1.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 @@ -260,14 +260,6 @@ grammable clock makes this option obsolete and so it's use isn't recommended. It is completely ignored for HiQV chipsets. - Option "UseVclk1" - The HiQV series of chips have three programmable clocks. The - first two are usually loaded with 25.175 and 28.322MHz for VGA - backward compatibility, and the third is used as a fully pro- - grammable clock. On at least one system (the Inside 686 LCD/S - single board computer) the third clock is unusable. This option - forces the use of VClk1 as the programmable clock. - TextClockFreq 25.175 Except for the HiQV chipsets, it is impossible for the server to read the value of the currently used frequency for the text con- @@ -291,18 +283,29 @@ or 32bpp LCD panel clocks, where the options above set the clocks to 65MHz. + Option "CRTClkIndx" "2" + Option "FPClkIndx" "1"" The HiQV series of chips have three pro- + grammable clocks. The first two are usually loaded with 25.175 + and 28.322MHz for VGA backward compatibility, and the third is + used as a fully programmable clock. On at least one system (the + Inside 686 LCD/S single board computer) the third clock is unus- + able. These options can be used to force a particular clock index + to be used + Option "MMIO" This has a different effect depending on the hardware on which it is used. For the 6554x machines MMIO is only used to talk to the BitBLT engine and is only usable with PCI buses. It is enabled by default for 65545 machines since the blitter can not be used otherwise. The HiQV series of chipsets must use MMIO with - their BitBLT engines, and so this is enabled by default. However - the 690xx chipsets can use MMIO for all communications with the + their BitBLT engines, and so this is enabled by default. + + Option "FullMMIO" + The 690xx chipsets can use MMIO for all communications with the video processor. So using this option on a 690xx chipset forces them to use MMIO for all communications. This only makes sense when the 690xx is on a PCI bus so that normal PIO can be dis- - abled. (WARNING!! 690xx MMIO is untested) + abled. Option "SuspendHack" This option sets the centering and stretching to the BIOS default @@ -409,6 +412,20 @@ 255 for 8bit depth, 0 to 32,767 for 15bit depth, etc. This option might be used if the default video overlay key causes problems. + Option "DualRefresh" + The 69030 chipset has independent display channels, that can be + configured to support independent refresh rates on the flat panel + and on the CRT. The default behaviour is to have both the flat + panel and the CRT use the same display channel and thus the same + refresh rate. This option forces the two display channels to be + used, giving independent refresh rates. + + Option "Crt2Memory" "2048" + The ct69030 supports dual-head display. By default the two dis- + play share equally the available memory. This option forces the + second display to take a particular amount of memory. Please read + the section below about dual-head display. + Option "XaaNoScreenToScreenCopy", Option "XaaNoSolidFillRect", Option "XaaNoSolidHorVertLine", Option "XaaNoMono8x8PatternFillRect", Option "XaaNoColor8x8Pat- @@ -499,6 +516,13 @@ after a suspend/resume or LCD/CRT switch. For a complete discus- sion on the dot clock limitations, see the next section. + * Dual-head display + Dual-head display has two effects on the modelines. Firstly, the + memory requirements of both heads must fit in the available mem- + ory. Secondly, the memory bandwidth of the video processor is + shared between the two heads. Hence the maximum dot-clock might + need to be limited. + The driver is capable of driving both a CRT and a flat panel display. In fact the timing for the flat panel are dependent on the specification of the panel itself and are independent of the particular mode chosen. For this reason it @@ -530,8 +554,98 @@ knowledge no machine with a HiQV needs the "UseModeline" or "FixPanelSize" options. -5. The Full Story on Clock Limitations +5. Dual Display Channel +XFree86 releases later than 4.1.0 support dual-channel display on the +ct69030. This support can be used to give a single display image on two +screen with different refresh rates, or entirely different images on the two +displays. + +Dual refresh rate display can be selected with the "DualRefresh" option +described above. However to use the dual-head support is slightly more com- +plex. Firstly, the ct69030 chipset must be installed on a PCI bus. This is a +driver limitation that might be relaxed in the future. In addition the +device, screen and layout sections of the "XF86Config" must be correctly con- +figured. A sample of an incomplete "XF86Config" is given below + + Section "Device" + Identifier "Chips and Technologies - Pipe A" + Driver "chips" + BusID "PCI:0:20:0" + Screen 0 + EndSection + + Section "Device" + Identifier "Chips and Technologies - Pipe B" + Driver "chips" + BusID "PCI:0:20:0" + Screen 1 + EndSection + + Section "Screen" + Identifier "Screen 0" + Device "Chips and Technologies - Pipe A" + Monitor "generic LCD" + + SubSection "Display" + Depth 16 + Modes "1024x768" + EndSubsection + EndSection + + Section "Screen" + Identifier "Screen 1" + Device "Chips and Technologies - Pipe B" + Monitor "generic CRT" + + SubSection "Display" + Depth 16 + Modes "1024x768" + EndSubsection + EndSection + + Section "ServerLayout" + Identifier "Main Layout" + Screen "Screen 0" + Screen "Screen 1" RightOf "Screen 0" + InputDevice "Mouse1" "CorePointer" + InputDevice "Keyboard1" "CoreKeyboard" + EndSection + +The device section must include the PCI BusID. This can be found from the log +file of a working single-head installation. For instance, the line + + (--) PCI:*(0:20:0) C&T 69030 rev 97, Mem @ 0xed000000/24 + +appears for the case above. Additionally, the "Screen" option must appear in +the device section. It should be noted that if a flat panel is used, this it +must be allocated to "Screen 0". + +The server can then be started with the "+xinerama" option as follows + + startx -- +xinerama + +For more information, read the Xinerama documentation. + +It should be noted that the dual channel display options of the 69030 require +the use of additional memory bandwidth, as each display channel independently +accesses the video memory. For this reason, the maximum colour depth and res- +olution that can be supported in a dual channel mode will be reduced compared +to a single display channel mode. However, as the driver does not prevent you +from using a mode that will exceed the memory bandwidth of the 69030, but a +warning like + + (WW) Memory bandwidth requirements exceeded by dual-channel + (WW) mode. Display might be corrupted!!! + +If you see such display corruption, and you have this warning, your choices +are to reduce the refresh rate, colour depth or resolution, or increase the +speed of the memory clock with the the "SetMClk" option described above. Note +that increasing the memory clock also has its own problems as described +above. + +6. The Full Story on Clock Limitations + There has been much confusion about exactly what the clock limitations of the Chips and Technologies chipsets are. Hence I hope that this section will clear up the misunderstandings. @@ -575,17 +689,24 @@ the screen. The formula to determine the maximum usable dotclock on the HiQV series of chips is + Max dotclock = min(MaxDClk, 0.70 * 8 * MemoryClk / (BytesPerPixel + + (isDSTN == TRUE ? 1 : 0))) + +if you chips is a 69030 or 69000 or + Max dotclock = min(MaxDClk, 0.70 * 4 * MemoryClk / (BytesPerPixel + (isDSTN == TRUE ? 1 : 0))) -which says that there are two limits on the dotclock. One the overall maxi- -mum, and another due to the available memory bandwidth of the chip. For the -memory bandwidth 4 bytes are transfered every clock cycle (Hence the 4), but -after accounting for the RAS/CAS signaling only about 70% of the bandwidth is -available. The whole thing is divided by the bytes per pixel, plus an extra -byte if you are using a DSTN. The extra byte with DSTN screens is used for -the frame buffering/acceleration in these screens. So for the various Chips -and Technologies chips the maximum specifications are +otherwise. This effectively means that there are two limits on the dotclock. +One the overall maximum, and another due to the available memory bandwidth of +the chip. The 69030 and 69000 have a 64bit memory bus and thus transfer 8 +bytes every clock thus (hence the 8), while the other HiQV chipsets are 32bit +and transfer 4 bytes per clock cycle (hence the 4). However, after accounting +for the RAS/CAS signaling only about 70% of the bandwidth is available. The +whole thing is divided by the bytes per pixel, plus an extra byte if you are +using a DSTN. The extra byte with DSTN screens is used for the frame buffer- +ing/acceleration in these screens. So for the various Chips and Technologies +chips the maximum specifications are Max DClk MHz Max Mem Clk MHz 65550 rev A 3.3v 80 38 @@ -613,8 +734,8 @@ 65554 94.5 77 51.33 77 51.33 38.5 65555 110 77 51.33 77 51.33 38.5 68554 110 77 51.33 77 51.33 38.5 - 69000 135 116.2 77.47 116.2 77.47 58.1 - 69030 170 140 93.33 140 93.33 70 + 69000 135 135 135 135 135 116.2 + 69030 170 170 170 170 170 140 If you exceed the maximum set by the memory clock, you'll get corruption on the screen during graphics operations, as you will be starving the HW BitBlt @@ -632,7 +753,7 @@ is no guarantee that driving the video processor beyond it capabilities won't cause damage. -6. Troubleshooting +7. Troubleshooting The cursor appears as a white box, after switching modes There is a known bug in the H/W cursor, that sometimes causes the @@ -805,13 +926,13 @@ My ct69030 machine locks up when starting XFree The ct69030 chipset introduced a new dual channel architecture. - In its current form, XFree can not take advantage of this second - display channel. In fact if the video BIOS on the machine sets - the ct69030 to a dual channel mode by default, XFree will lockup - hard at this point. The solution is to use the BIOS setup to - change to a single display channel mode, ensuring that both the - IOSS and MSS registers are set to a single channel mode. Work is - underway to fix this. + In its current form, XFree86 can not take advantage of this sec- + ond display channel. In fact if the video BIOS on the machine + sets the ct69030 to a dual channel mode by default, XFree86 will + lockup hard at this point. The solution is to use the BIOS setup + to change to a single display channel mode, ensuring that both + the IOSS and MSS registers are set to a single channel mode. Work + is underway to fix this. I can't start X-windows with 16, 24 or 32bpp Firstly, is your machine capable of 16/24/32bpp with the mode @@ -829,7 +950,7 @@ startx -- -depth 24 -fbbpp 32 8-8-8 RGB truecolor - however as XFree86 version 4.0.2 allows 32bpp pixmaps to be used + however as XFree86 version 4.1.0 allows 32bpp pixmaps to be used with framebuffers operating in 24bpp, this mode of operating will cost performance for no gain in functionality. @@ -847,7 +968,8 @@ example 65.00MHz might be unstable while 65.10MHz is not. So for unexplained problems not addressed above, please try to alter the clock you are using slightly, say in steps of 0.05MHz and see if the problem goes away. Alterna- -tively, using the "UseVClk1" option with HiQV chips might also help. +tively, using the "CRTClkIndx" or "FPClkIndx" option with HiQV chips might +also help. For other screen drawing related problems, try the "NoAccel" or one of the XAA acceleration options discussed above. A useful trick for all laptop com- @@ -860,19 +982,19 @@ or ), or post in the Usenet newsgroup "comp.windows.x.i386unix". -7. Disclaimer +8. Disclaimer XFree86, allows the user to do damage to their hardware with software. Although the authors of this software have tried to prevent this, they dis- claim all responsibility for any damage caused by the software. Use caution, if you think the Xserver is frying your screen, TURN THE COMPUTER OFF!! -8. Acknowledgement +9. Acknowledgement The authors of this software wish to acknowledge the support supplied by Chips and Technologies during the development of this software. -9. Authors +10. Authors Major Contributors (In no particular order) @@ -899,7 +1021,7 @@ 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.33 2000/12/02 21:52:22 dbateman Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/chips.sgml,v 3.36 2001/05/19 00:35:42 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.chips,v 3.35 2000/12/04 19:47:24 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.chips,v 3.36.2.1 2001/06/01 18:26:44 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.cyrix diff -u xc/programs/Xserver/hw/xfree86/doc/README.cyrix:1.8 xc/programs/Xserver/hw/xfree86/doc/README.cyrix:1.8.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.cyrix:1.8 Fri Dec 1 14:47:49 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.cyrix Fri Jun 1 14:26:45 2001 @@ -50,4 +50,4 @@ 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.8 2000/12/01 19:47:49 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.cyrix,v 1.8.4.1 2001/06/01 18:26:45 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.dps diff -u /dev/null xc/programs/Xserver/hw/xfree86/doc/README.dps:1.2.2.1 --- /dev/null Mon Jun 4 09:38:46 2001 +++ xc/programs/Xserver/hw/xfree86/doc/README.dps Fri Jun 1 14:26:45 2001 @@ -0,0 +1,170 @@ + XFree86 and DPS + + Juliusz Chroboczek, + + 27 February 2001 + +1. Introduction + +Display Postscript (or DPS for short) is a rendering extension for X11. DPS +is slightly atypical in that it is based on code mobility, the ability to +send executable code from client to server. Thus, a DPS client does not +request that a line should be rendered; instead, it uploads code to the +server which, when executed, causes a line to be drawn. + +This document does not aim at teaching programming with DPS; it is only a +summary description of the DPS support code included with XFree86. More +information about DPS, including a DPS bibliography, is available from the +DPS extension site . + + Note: Adobe, PostScript and Display PostScript are trademarks of + Adobe Systems Incorporated which may be registered in certain + jurisdictions. + +As all X11 extensions, DPS consists of client-side and server-side compo- +nents. The DPS client side consists of a number of libraries and a number of +tools for programming and configuration. The DPS server side may consist +either of an X server extension, or of a client-side process known as the +``DPS agent.'' In this latter case, the term ``server-side'' is somewhat +misleading. + +At the time of writing, only the client side is included with XFree86; the +server side must be obtained separately. Please see server side (section 3., +page 1) later in this document for more information. + +2. The DPS client side + +The DPS client side consists of four libraries and a number of basic tools +for programming and configuration; these are all included with XFree86. + +2.1 Libraries + +The libpsres library is a library for management of PostScript resources, on- +disk files representing PostScript data structures such as fonts, font encod- +ings, procsets, etc. It is closely related to the makepsres tool (see client- +side tools (section 2.2, page 1) later in this document). + +The basic DPS client library is libdps. This library contains a number of +functions for connection establishment, resource management, as well as stubs +for all standard PostScript operators. Normally, all DPS clients should link +with libdps; in addition, libdps may be used for printing by non-DPS clients +(this is done, for example, by Sun's JDK). This library is documented in +[CLRM] and [CLSX]. + +The libdpstk library contains a number of additional utilities for managing +DPS contexts, user paths and user objects, and for previewing EPS files. It +is documented in [DPTX]. + +The libdpstkXm library contains four Motif widgets. The DPS Scrolling Widget +is a DPS drawing area that automatically manages issues such as scrolling, +scaling, client-side backing store, incremental redisplay, etc. The Font +Selection Box, and its associated Font Preview, present a convenient and pow- +erful interface for choosing scalable fonts. Finally, the Color Picker pre- +sents an interface for choosing colours using either of the RGB or HSV +spaces. The latter three widgets are documented in [DPTX]; some summary +Scrolling Widget documentation is available in the doc subdirectory of the +DPS.tar.gz file, available from . + +The source code for libdpstkXm is included with XFree86; however, as it +depends on Motif, this library is not built by default. A GTK-based library +providing some of the functionality of libdpstkXm is available from the +gtkDPS site . + +2.1.1 Libdps and Xt + +In X11R5, libdps did not depend on libXt. In X11R6, however, code was added +to make the Xt main loop dispatch to sundry code on DPS events; with this +addition, all programs that link with libdps need to link with libXt, whether +they use Xt or not. + +This state of affairs is unfortunately true of the version of libdps included +with XFree86. We are currently considering various solutions to this problem +(including the use of weak linker symbols or splitting off the guilty func- +tions into a separate library). + +2.2 Client-side tools + +In addition to the libraries, the client side of DPS consists of two utili- +ties. + +The makepsres utility is used for managing PostScript resources. Its basic +operation consists in walking recursively a filesystem tree, noting all +resources, and then writing out a ``Unix PostScript Resources,'' file, basi- +cally a directory of all the resources found. This utility is documented in +the makepsres(1) manual page. + +The pswrap utility is a stub generator for PostScript clients. Roughly +speaking, it takes as its input textual PostScript code, and generates a col- +lection of C functions that transmit that code in pre-tokenised form to the +DPS extension. Pswrap is documented in [PSWRAP]. + +2.3 Sample clients + +XFree86 contains three sample DPS clients, dpsinfo, dpsexec and texteroids. +They are documented in their respective manual pages. + +A number of sample clients that depend on Motif are available in +. Additional sample +clients can be found as part of GtkDPS (see above). + +The GNUstep environment can be compiled to use DPS for all rendering; for +more information, please see the GNUstep site . + +3. The DPS server side + +In order to use DPS clients, you need to install a DPS server side, which can +be either a server extension (a ``DPS/X extension''), or a separate process +(referred to, variously, either as a ``DPS/NX agent'' or, rather confusingly, +as ``Client-Side DPS'' (CSDPS). + +3.1 Display Ghostscript + +Display Ghostscript (note the capitalisation), or DGS, is a client-side +implementation of DPS based on the Ghostscript PostScript interpreter. DGS +is still in beta at the time of writing; it does, however, provide a very +usable implementation of DPS, although it still has some problems with the +semantics of multiple DPS contexts. + +DGS is available from the GNUstep download area +. + +3.2 The DPS extension + +The DPS extension is a much younger project aiming at producing an efficient +server-side implementation of DPS. The extension is currently in a state +best described as alpha; current versions are known to crash the X server +under some circumstances. + +The DPS extension is available from the DPS extension site +. + +4. References + +Links to electronic versions of all of these, and more, are available from +the DPS extension site . + +[PLRM2] PostScript language reference manual. Adobe Systems, 2nd ed. Addison- +Wesley, 1990. ISBN 0-201-18127-4. + +[PLRM] PostScript language reference. Adobe Systems Incorporated, 3rd ed. +Addison-Wesley, 1999. ISBN 0-201-37922-8. + +[INTRO] Display PostScript System. Introduction: Perspective for Software +Developers. 15 April 1993. + +[CLRM] Display PostScript System. Client Library Reference Manual. 15 April +1993. + +[CLSX] Display PostScript System. Client Library Supplement for X. 15 April +1993. + +[DPTX] Display PostScript System. Display PostScript Toolkit for X. 15 April +1993. + +[PSWRAP] Display PostScript System. pswrap Reference Manual. 15 April 1993. + + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/dps.sgml,v 1.1 2001/03/02 02:45:37 dawes Exp $ + + +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.dps,v 1.2.2.1 2001/06/01 18:26:45 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.fonts diff -u xc/programs/Xserver/hw/xfree86/doc/README.fonts:1.15 xc/programs/Xserver/hw/xfree86/doc/README.fonts:1.16.2.1 --- xc/programs/Xserver/hw/xfree86/doc/README.fonts:1.15 Fri Dec 15 15:22:16 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.fonts Fri Jun 1 14:26:45 2001 @@ -2,7 +2,7 @@ Juliusz Chroboczek, - 14 December 2000 + 21 January 2001 1. Introduction @@ -238,7 +238,7 @@ included in modules that are loaded at runtime. The modules to be loaded are specified in the `XF86Config' file using the `Load' directive: - Load "Type1" + Load "type1" If you have trouble installing fonts in a specific format, you may want to check the server's log file in order to see whether the relevant modules are @@ -247,14 +247,16 @@ o "bitmap": bitmap fonts (`*.bdf', `*.pcf' and `*.snf'); - o "Type1": Type 1 fonts (`*.pfa' and `*.pfb') and CIDFonts; + o "type1": Type 1 fonts (`*.pfa' and `*.pfb') and CIDFonts; - o "Speedo": Bitstream Speedo fonts (`*.spd'); + o "speedo": Bitstream Speedo fonts (`*.spd'); o "freetype": TrueType fonts (`*.ttf' and `*.ttc'); o "xtt": alternate TrueType backend (`*.ttf' and `*.ttc'). +Please note that the argument of the `Load' directive is case-sensitive. + 3. Fonts included with XFree86 3.1 Standard bitmap fonts @@ -1008,7 +1010,7 @@ world, often provide interesting information about character set issues; my favourite is RFC 373. - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.11 2000/12/15 20:01:56 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/fonts.sgml,v 1.13 2001/03/01 00:37:09 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.15 2000/12/15 20:22:16 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.fonts,v 1.16.2.1 2001/06/01 18:26:45 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.i740 diff -u xc/programs/Xserver/hw/xfree86/doc/README.i740:1.8 xc/programs/Xserver/hw/xfree86/doc/README.i740:1.8.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.i740:1.8 Fri Dec 1 14:47:49 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.i740 Fri Jun 1 14:26:45 2001 @@ -178,4 +178,4 @@ 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.8 2000/12/01 19:47:49 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.i740,v 1.8.4.1 2001/06/01 18:26:45 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.i810 diff -u xc/programs/Xserver/hw/xfree86/doc/README.i810:1.5 xc/programs/Xserver/hw/xfree86/doc/README.i810:1.6.2.1 --- xc/programs/Xserver/hw/xfree86/doc/README.i810:1.5 Fri Dec 1 14:47:49 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.i810 Fri Jun 1 14:26:45 2001 @@ -14,6 +14,8 @@ o i810e + o i815 + 2. Features o Full support for 8, 15, 16, and 24 bit pixel depths. @@ -36,13 +38,13 @@ 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. + o This driver currently only works for Linux/ix86 and recent versions of + FreeBSD. It requires the agpgart kernel support, which is included in + Linux kernels 2.3.42 and higher, and FreeBSD 4.1 and higher. 4. Reported Working Video Cards - o Intel evaluation hardware - i810, i810-dc100 and i810e. + o Intel evaluation hardware - i810, i810-dc100, i810e and i815. o Tyan Tomcat Motherboard. @@ -104,7 +106,7 @@ 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 $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/i810.sgml,v 1.3 2001/04/04 01:34:18 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.i810,v 1.5 2000/12/01 19:47:49 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.i810,v 1.6.2.1 2001/06/01 18:26:45 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.isc diff -u xc/programs/Xserver/hw/xfree86/doc/README.isc:3.39 xc/programs/Xserver/hw/xfree86/doc/README.isc:3.39.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.isc:3.39 Fri Dec 1 14:47:50 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.isc Fri Jun 1 14:26:45 2001 @@ -489,4 +489,4 @@ 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.39 2000/12/01 19:47:50 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.isc,v 3.39.4.1 2001/06/01 18:26:45 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.mouse diff -u xc/programs/Xserver/hw/xfree86/doc/README.mouse:1.11 xc/programs/Xserver/hw/xfree86/doc/README.mouse:1.11.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.mouse:1.11 Fri Dec 1 14:47:50 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.mouse Fri Jun 1 14:26:45 2001 @@ -6,7 +6,7 @@ 1. Introduction -This document describes mouse support in XFree86 4.0.2. +This document describes mouse support in XFree86 4.1.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 @@ -928,4 +928,4 @@ 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.11 2000/12/01 19:47:50 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.mouse,v 1.11.4.1 2001/06/01 18:26:45 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.newport diff -u xc/programs/Xserver/hw/xfree86/doc/README.newport:1.2 xc/programs/Xserver/hw/xfree86/doc/README.newport:1.2.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.newport:1.2 Tue Dec 12 14:04:03 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.newport Fri Jun 1 14:26:45 2001 @@ -41,4 +41,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/newport.sgml,v 1.2 2000/12/12 18:54:29 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.newport,v 1.2 2000/12/12 19:04:03 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.newport,v 1.2.4.1 2001/06/01 18:26:45 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.r128 diff -u xc/programs/Xserver/hw/xfree86/doc/README.r128:1.13 xc/programs/Xserver/hw/xfree86/doc/README.r128:1.13.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.r128:1.13 Fri Dec 1 14:47:51 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.r128 Fri Jun 1 14:26:45 2001 @@ -119,4 +119,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/r128.sgml,v 1.8 2000/06/14 00:16:09 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.r128,v 1.13 2000/12/01 19:47:51 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.r128,v 1.13.4.1 2001/06/01 18:26:45 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.rapidaccess diff -u /dev/null xc/programs/Xserver/hw/xfree86/doc/README.rapidaccess:1.1 --- /dev/null Mon Jun 4 09:38:47 2001 +++ xc/programs/Xserver/hw/xfree86/doc/README.rapidaccess Fri May 18 19:35:32 2001 @@ -0,0 +1,48 @@ +The IBM Rapid Access keyboard have some extra buttons +on it to launch programs, control a cd-player and so on. + +These buttons is not functional when the computer is turned +on but have to be activated by sending the codes 0xea 0x71 +to it. + +I've written the following hack to send codes to the keyboard: + +-------------------------------------------------------------- +/* gcc -O2 -s -Wall -osend_to_keyboard send_to_keyboard.c */ +#include +#include +#include + +int main( int argc, char *argv[] ) +{ + int i; + + ioperm( 0x60, 3, 1 ); + + for( i = 1; i < argc; i++ ) { + int x = strtol( argv[i], 0, 16 ); + + usleep( 300 ); + outb( x, 0x60 ); + } + + return 0; +} +-------------------------------------------------------------- + +As root you can then call this program (in your boot scripts) +as "send_to_keyboard ea 71" to turn on the extra buttons. + +It's not a good idea to run several instances of this program +at the same time. It is a hack but it works. If you try to +send other codes to the keyboard it probably will lock up. +For other codes see: + +http://www.win.tue.nl/~aeb/linux/kbd/scancodes-2.html#ss2.22 + +-- +Dennis Björklund + + + +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.rapidaccess,v 1.1 2001/05/18 23:35:32 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.rendition diff -u xc/programs/Xserver/hw/xfree86/doc/README.rendition:1.12 xc/programs/Xserver/hw/xfree86/doc/README.rendition:1.12.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.rendition:1.12 Fri Dec 1 14:47:51 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.rendition Fri Jun 1 14:26:45 2001 @@ -145,4 +145,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/rendition.sgml,v 1.12 2000/06/17 02:30:33 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.rendition,v 1.12 2000/12/01 19:47:51 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.rendition,v 1.12.4.1 2001/06/01 18:26:45 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.s3virge diff -u xc/programs/Xserver/hw/xfree86/doc/README.s3virge:1.6 xc/programs/Xserver/hw/xfree86/doc/README.s3virge:1.6.4.1 --- xc/programs/Xserver/hw/xfree86/doc/README.s3virge:1.6 Fri Dec 1 14:47:51 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.s3virge Fri Jun 1 14:26:45 2001 @@ -6,7 +6,7 @@ 1. Supported hardware -The s3virge driver in XFree86 4.0.2 supports the S3 ViRGE, ViRGE DX, GX, MX, +The s3virge driver in XFree86 4.1.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 ViRGE GX2 stability, XVideo support for ViRGE DX (tested) and ViRGE @@ -63,4 +63,4 @@ Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/s3virge.sgml,v 1.3 2000/11/28 20:59:17 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.s3virge,v 1.6 2000/12/01 19:47:51 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.s3virge,v 1.6.4.1 2001/06/01 18:26:45 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/README.trident diff -u xc/programs/Xserver/hw/xfree86/doc/README.trident:3.38 xc/programs/Xserver/hw/xfree86/doc/README.trident:removed --- xc/programs/Xserver/hw/xfree86/doc/README.trident:3.38 Tue Feb 29 20:48:28 2000 +++ xc/programs/Xserver/hw/xfree86/doc/README.trident Mon Jun 4 09:38:47 2001 @@ -1,180 +0,0 @@ - Information for Trident Chipset Users - - The XFree86 Project, Inc. - - June 25 1999 - -1. Supported chipsets - -The Trident driver has undergone some slight work for XFree86 3.3.3. Because -of this work, all of the Trident SVGA chipsets, except the very first one, -are supported by both the color and monochrome servers. - - 8800CS 8200LX 8900B 8900C 8900CL/D 9000 9000i 9100B 9200CXr 9320LCD - 9400CXi 9420 9420DGi 9430DGi 9440AGi 9660XGi 9680 ProVidia9682 Pro- - Vidia9685 Cyber9382 Cyber9385 Cyber9385-1 Cyber9388 Cyber9397 - Cyber9520 Cyber9525 3DImage975(PCI) 3DImage975(AGP) 3DImage985(AGP) - Blade3D CyberBlade - -It must be noted that the 9000i chipset is treated as a 9000 by the server. -Additionally the 9100B is treated as a Trident 8900CL. Therefore it is equiv- -alent to putting `Chipset "tvga8900cl"' or `Chipset "tvga9000"' in the -XF86Config file. Also, note that the 9000i, 9100B have not been tested with -the server, but should work in this way according to the chipset documenta- -tion. - - NOTES: - - o The chipset keyword changed in XFree86 v3.3.2 and now you no longer - specify 'tgui96xx' as the generic keyword, but you actually specify your - chip. i.e. Chipset 'tgui9685' will set a ProVidia9685 chip. - - o The Cyber9388/9397, 3DImage975 and 3DImage985 cards are fixed in - XFree86 v3.3.3, these chipsets have some acceleration now too. This - acceleration has been disabled by default for the Cyber9388/9397 because - there have been problems, but it can be re-enabled with the "accel" - option (see below). - - o 24bpp is all drivers remains unaccelerated, this will change in a - future version, although 32bpp acceleration is supported for all TGUI - based chipset except the 9440 which doesn't have the capability. - - o 16bpp is now supported for the Cyber9320 chipset. - - Option "nolinear" - Turn off linear mapping - - Option "linear" - Force linear mapping. Use this if you have a non-PCI card - and require 16bpp support. Note: ISA cards can only access - up to 16MB of memory, so be sure you have less than this or - it could cause a system hang. - - MemBase 0x??????? - This option may be used to specify the start address of the - linear frame buffer. By default for VLBus/EISA cards it is - at 60MB. For the 8900CL/D, it is at 15MB. - - Option "no_mmio" - This option turns off Memory Mapped IO support. MMIO is - enabled by default when acceleration is enabled. Accelera- - tion doesn't work well when MMIO is disabled. - - Option "tgui_pci_read_on" - Turn on PCI burst read mode. - - Option "tgui_pci_write_on" - Turn on PCI burst write mode. - - Option "pci_burst_on" - Turn on PCI burst (read and write) - - Option "pci_burst_off" - Turn off PCI burst (read and write) - - NOTE: PCI burst modes are now OFF by default for TGUI9440 - cards because it often upsets its Graphics Accelerator. It - can be turned it back on as may improve performance. PCI - burst modes are ON by default for all other PCI/AGP cards. - - ClockChip "tgui" - Turn on programmable clocks. This is the default for TGUIs. - - Option "no_program_clocks" - Turn off programmable clock. Use fixed VGA clocks only. - Useful for fixed frequency monitors - usually used for VGA - monitors - not SVGA. - - Option "noaccel" - Turn off XAA acceleration. - - Option "accel" - Enable acceleration for the Cyber9388/9397. - - Option "xaa_no_color_exp" - Disable color expansion. - - Option "no_stretch" - Disable LCD stretching on Cyber 938x based chips. - - Option "lcd_center" - Enable LCD centering on Cyber 938x based chips. - - Option "cyber_shadow" - Enable Shadow registers, might be needed for some Cyber - chipsets. (laptop machines) - - Option "tgui_mclk_66" - Pushes the Memory Clock from its default value to 66MHz. - Increases graphics speed dramatically, but use entirely at - your own risk, as it may damage the video card. If snow - appears, disable. Only tested on the 9440. - -The original Trident chipset, 8800BR, cannot be supported as an SVGA chipset -by either the color or monochrome servers. The chip is supported, however, -by the ``generic'' driver for the monochrome server. - -2. Special considerations for 512k boards - -There are no longer any special considerations for 512k Trident boards. The -driver is now configured so that they can use modes with normal timings. The -available pixel clocks are halved compared with those specified on the Clocks -line - -Be aware that older Trident chipsets support a maximum clock of 65Mhz. Hence -the best actual clock available to the color server is 32.5Mhz. This means, -in broad terms, that the color server will require an interlaced mode to be -defined for resolutions above 640x480. Newer chipsets (8900CL, 9000, 9000i, -9100B, 9200CX and 9420) support up to 16 clocks, and can support much higher -clocks, which will allow 800x600 modes, non-interlaced. - -3. Additional Notes - -We have had reports of the server failing to detect the amount of installed -memory and the correct dot-clocks on older TVGA8900 boards. If the server -fails to detect the correct amount of memory, use the "Videoram" keyword in -your XF86Config file to specify it. (e.g. Videoram 512 or Videoram 1024). -If the server has problems detecting the dot-clocks, try adding the following -line to your XF86Config file: - - Clocks 25 28 45 36 57 65 50 40 - -This line gives the clock values provided by older Trident clock synthesizer -chipsets. This also appears to be the standard first 8 clocks for the newer -clock synthesizers, but you should have no problems on newer boards. - -Some newer Trident 8900B/C boards are apparently being built with the clock -synthesizers used on the 9000 and 8900CL boards. If your board has a chip -labeled "Trident TCK900x" ("x" has been seen as 2 or 4; there may be others), -your board may actually have a 4th clock select bit. The 9002 has twelve -distinct clocks (the other 4 are duplicates); the 9004 has 16 clocks (the -same 12 as the 9002 + 4 others). If you see such a chip on a board with an -8900B or 8900C, put the following line in the Device section of your XF86Con- -fig file: - - Option "16clocks" - -This will cause the same clock selection code as is used for the 8900CL to be -used for the board. - -While developing the Trident driver, an interesting and perturbing hardware -phenomenon was discovered. When using the default board jumper configura- -tion, dot-clocks above 57Mhz would frequently lock up the machine. There -appear to be jumpers on all of the Trident boards that determine whether the -board will operate in zero-wait-state mode on the ISA bus. Disabling the -zero-wait-state mode via jumpers cured the lockups, but at the expense of -performance. Whether or not a given system will experience this problem is -likely a combination of (a) bus speed, (b) video memory speed, and (c) dot -clock speed. So be prepared for this phenomenon to occur, and have the board -documentation handy. - -NOTE: VLBus cards are also subject to the above. By specifying the Clocks in -the XF86Config file, these lockups are overcome. But it may be worth checking -wait states etc. on the card and in the BIOS setup. - - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/trident.sgml,v 3.24 1999/08/23 06:38:54 dawes Exp $ - - $XConsortium: trident.sgml /main/11 1996/10/28 04:24:08 kaleb $ - - -$XFree86: xc/programs/Xserver/hw/xfree86/doc/README.trident,v 3.38 2000/03/01 01:48:28 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/RELNOTES diff -u xc/programs/Xserver/hw/xfree86/doc/RELNOTES:3.96 xc/programs/Xserver/hw/xfree86/doc/RELNOTES:3.97.2.2 --- xc/programs/Xserver/hw/xfree86/doc/RELNOTES:3.96 Mon Dec 18 00:55:38 2000 +++ xc/programs/Xserver/hw/xfree86/doc/RELNOTES Sat Jun 2 00:44:36 2001 @@ -1,4 +1,4 @@ - Release Notes for XFree86[tm] 4.0.2 + Release Notes for XFree86[tm] 4.1.0 The XFree86 Project, Inc @@ -7,17 +7,17 @@ Abstract This document contains some information about the features present - in XFree86 4.0.2 and their status. + in XFree86 4.1.0 and their status. 1. Introduction to the 4.x Release Series XFree86 4.0 was the first official release of the new XFree86 4 series. The -current release (4.0.2) is the latest in that series. XFree86 4 represents a +current release (4.1.0) is the latest in that series. XFree86 4 represents a significant redesign of the XFree86 X server. Not all of the hardware drivers from 3.3.x have been ported to 4.x yet, but conversely, 4.x has some hardware support not present in 3.3.x. Our Driver Status document summarizes -how the hardware driver support compares between 3.3.6 and 4.0.2. Please -check there first before downloading 4.0.2. +how the hardware driver support compares between 3.3.6 and 4.1.0. Please +check there first before downloading 4.1.0. The 4.0.1 release introduced a new graphical configuration tool, "xf86cfg", and a text mode interface was added to it for the 4.0.2 release. It is work @@ -28,7 +28,7 @@ for some hardware. To try it out, just run (as root) "XFree86 -configure". Each of these configuration options will give you a reasonable starting point for a suitable configuration file. We've put some effort into documenting -the 4.0.2 config file format, and you can find that information in the +the 4.1.0 config file format, and you can find that information in the XF86Config manual page. Check that, the driver manual pages and the related documentation for further information. @@ -37,17 +37,18 @@ save you some time and help you figure out which of the binary releases you need. -The next section describes what is new in the latest version (4.0.2). The +The next section describes what is new in the latest version (4.1.0). The other sections below describe some of the new features and changes between 3.3.x and 4.0. There are lot's of new features, and we definitely don't have enough space to cover them all here. -2. Summary of new features in 4.0.2. +2. Summary of new features in 4.1.0. 2.1 X server - o Darwin/Mac OS X is now supported and the X server runs on PowerPC. The - X server for this platform is called "Xdarwin", and its installation and + o Darwin/Mac OS X is now supported on PowerPC and Intel/x86. The X server + runs from the console or in cooperation with the Mac OS X Aqua GUI. The + X server for this platform is called "XDarwin", and its installation and configuration is different from the "XFree86" server used on other plat- forms. Please read the XFree86 on Darwin and Mac OS X document for fur- ther information. @@ -289,7 +290,7 @@ 3.1 Video Drivers -XFree86 4.0.2 includes the following video drivers: +XFree86 4.1.0 includes the following video drivers: +--------------+--------------------------+----------------------------------+ |Driver Name | Description | Further Information | @@ -341,7 +342,7 @@ Darwin/Mac OS X uses IOKit drivers and does not use the module loader drivers listed above. Further information can be found in README.Darwin. -XFree86 4.0.2 includes the following input drivers: +XFree86 4.1.0 includes the following input drivers: 3.2 Input Drivers @@ -367,12 +368,12 @@ 4. Summary of XFree86 4. Unlike XFree86 3.3.x where there are multiple X server binaries, each of -which drive different hardware, XFree86 4.0.2 has a single X server binary +which drive different hardware, XFree86 4.1.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 4.0.2 has X server support for most UNIX(R) and UNIX-like operating +XFree86 4.1.0 has X server support for most UNIX(R) and UNIX-like operating systems on Intel/x86 platforms, plus support for Linux on Alpha, PowerPC, IA-64, Sparc, and Mips platforms, and for Darwin on PowerPC. Work on support for additional architectures and operating systems is in progress, and is @@ -394,7 +395,7 @@ the future we plan to take advantage of this to provide more frequent driver module updates in between major releases. -The loader in version 4.0.2 has support for Intel (x86), Alpha and PowerPC +The loader in version 4.1.0 has support for Intel (x86), Alpha and PowerPC platforms. It also has preliminary support for Sparc platforms. The X server makes use of modules for video drivers, X server extensions, @@ -733,7 +734,7 @@ 4.7 DGA version 2 -DGA 2.0 is included in 4.0.2, but is not implemented by all drivers. Prelim- +DGA 2.0 is included in 4.1.0, but is not implemented by all drivers. Prelim- inary documentation for the client libraries can be found in the README.DGA document. A good degree of backwards compatibility with version 1.0 is pro- vided. @@ -801,7 +802,7 @@ overlays and other image operations not possible with the core X rendering system. -XFree86 4.0.2 provides a partial implementation of Render sufficient for +XFree86 4.1.0 provides a partial implementation of Render sufficient for drawing anti-aliased text and image composition. Still to be implemented are geometric primitives and affine transformation of images. @@ -824,38 +825,39 @@ To allow a graceful transition for applications moving from core text render- ing to the Render extension, Xft can use either core fonts or FreeType and -the Render extension for text. By default, Xft is configured to support only -core fonts, see the section on building FreeType support for the changes -needed to add FreeType/Render fonts. +the Render extension for text. By default, Xft is configured to support both +core fonts and FreeType fonts using the supplied version of FreeType 2. See +the section on FreeType support in Xft for instructions on configuring +XFree86 to use an existing FreeType installation. The Xft library uses a configuration file, XftConfig, which contains informa- tion about which directories contain font files and also provides a sophisti- cated font aliasing mechanism. Documentation for that file is included in the Xft man page. -4.11.2 Building FreeType support for Xft +4.11.2 FreeType support in Xft -XFree86 4.0.2 includes sources for FreeType version 2.0.1, but they are not -built and installed automatically. As a result, Xft is configured to provide -only core fonts by default. +XFree86 4.1.0 includes sources for FreeType version 2.0.1, and, by default, +they are built and installed automatically. -To build FreeType support for Xft, first FreeType must be built and -installed, either from the sources included in XFree86 in extras/freetype2 or -from another FreeType (version 2.0.1 or later) release. Early FreeType ver- -sion 2 releases used a different header file installation and aren't compati- -ble with XFree86. Instructions for building and installing FreeType can be -found in the INSTALL file included with the FreeType release. +If you prefer, you can configure XFree86 4.1.0 to use an existing Freetype2 +installation by telling XFree86 not to build the internal copy and indicating +where that external version has been installed. Edit (or create) con- +fig/cf/host.def to include: -Second, XFree86 needs to know the installed location for FreeType, usually -/usr/local. Edit (or create) config/cf/host.def to include: + o #define BuildFreetype2Library NO - #define Freetype2Dir /usr/local + o #define Freetype2Dir /usr/local -Finally, build XFree86 with "make World" from the top. +Note that XFree86 assumes you'll be using a release FreeType no older than +version 2.0.1. Early FreeType version 2 releases used a different header +file installation and aren't compatible with XFree86. Instructions for build- +ing and installing FreeType can be found in the INSTALL file included with +the FreeType release. 4.11.3 Application Support For Anti-Aliased Text -Only three applications have been modified in XFree86 4.0.2 to work with the +Only three applications have been modified in XFree86 4.1.0 to work with the Render extension and the Xft and FreeType libraries to provide anti-aliased text. Xterm, xditview and x11perf. Migration of other applications may occur in future releases. @@ -871,8 +873,8 @@ Xditview will use Xft instead of the core API by default. X11perf includes tests to measure the performance of text rendered in three ways, anti- aliased, anti-aliased with sub-pixel sampling and regular chunky text, but -through the Render extension, a path which has not been optimized within the -X server yet. +through the Render extension, a path which is currently somewhat slower than +core text. 4.12 Other extensions @@ -1081,7 +1083,7 @@ 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.58 2000/12/17 23:01:10 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/RELNOTES.sgml,v 1.60 2001/03/02 17:40:48 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/RELNOTES,v 3.96 2000/12/18 05:55:38 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/RELNOTES,v 3.97.2.2 2001/06/02 04:44:36 torrey Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/Status diff -u xc/programs/Xserver/hw/xfree86/doc/Status:1.21 xc/programs/Xserver/hw/xfree86/doc/Status:1.23.2.2 --- xc/programs/Xserver/hw/xfree86/doc/Status:1.21 Thu Dec 14 17:34:26 2000 +++ xc/programs/Xserver/hw/xfree86/doc/Status Fri Jun 1 14:26:45 2001 @@ -1,32 +1,35 @@ - Driver Status for XFree86[tm] 4.0.2 + Driver Status for XFree86[tm] 4.1.0 The XFree86 Project, Inc - 4 December 2000 + 1 June 2001 Abstract This document provides information about the status of the driver - and hardware support in XFree86 4.0.2 compared with that in XFree86 + and hardware support in XFree86 4.1.0 compared with that in XFree86 3.3.6. Please send updates for this document to - + . Please do not send requests for information + or support to that address (they will not be answered). 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 4.0.2. It +each chipset family that is supported in XFree86 3.3.6 or XFree86 4.1.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 4.0.2. +3.3.6 and 4.1.0. Unless otherwise stated, hardware is classified as "sup- +ported" if its driver provides basic 2D support. Support for additional fea- +tures may or may not be present. In XFree86 3.3.6, several X servers are available; much hardware uses the XF86_SVGA server, which has a set of driver modules that are built into it at compile time. In other cases, X servers for specific chips (or families of chips) are provided (such as XF86_AGX, XF86_Mach64, etc.). -In XFree86 4.0.2, there is only one X server, called "XFree86", which can +In XFree86 4.1.0, there is only one X server, called "XFree86", which can load driver modules at runtime. Thus there is no specific mention of a -server binary when 4.0.2 is discussed; only the XFree86 server is used. +server binary when 4.1.0 is discussed; only the XFree86 server is used. Third-party vendors (often the manufacturers of various video chipsets) may provide their own drivers for the XFree86 server, but these third-party mod- ules are beyond the scope of this document. @@ -42,7 +45,7 @@ Support (including acceleration) for Voodoo Banshee and Voodoo3 cards is provided by the XF86_SVGA server with the tdfx driver. - 4.0.2: + 4.1.0: Support for Voodoo Graphics and Voodoo 2 chips is available on platforms where Glide is available (Linux and FreeBSD(?)) and is provided by the "glide" driver (requires version 2.x of the Glide @@ -52,7 +55,7 @@ Voodoo4, and Voodoo5 is provided by the "tdfx" driver. Summary: - All hardware supported in 3.3.6 is also supported in 4.0.2. + All hardware supported in 3.3.6 is also supported in 4.1.0. 3. 3Dlabs @@ -62,14 +65,14 @@ ramdacs), Permedia with IBM RGB526 RAMDAC, and Permedia 2, 2a, 2v is provided by the XF86_3DLabs server. - 4.0.2: + 4.1.0: Support (including acceleration) for Permedia, Permedia 2, 2v, (and 2a?), Permedia 3, GLINT 500TX, GLINT MX, GLINT Gamma, and GLINT Delta coproc is provided by the "glint" driver. Summary: - All hardware supported in 3.3.6 is also supported in 4.0.2. The - Permedia 3 is only supported in 4.0.2. + All hardware supported in 3.3.6 is also supported in 4.1.0. The + Permedia 3 is only supported in 4.1.0. 4. Alliance @@ -77,14 +80,14 @@ Support (including acceleration) for the AT24, AP6422, AT3D. Support is provided by the XF86_SVGA server with the apm driver. - 4.0.2: + 4.1.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. Summary: - The AP6422 is supported in 3.3.6 but not fully in 4.0.2. The - AT25 is supported in 4.0.2 but not in 3.3.6. + The AP6422 is supported in 3.3.6 but not fully in 4.1.0. The + AT25 is supported in 4.1.0 but not in 3.3.6. 5. ARK Logic @@ -93,12 +96,12 @@ and ARK2000MT. Support is provided by the XF86_SVGA server with the ark driver. - 4.0.2: + 4.1.0: Support (including acceleration) for the ARK1000PV, ARK2000PV, and ARK2000MT. Support is provided by the "ark" driver. Summary: - All hardware supported in 3.3.6 is also supported in 4.0.2. + All hardware supported in 3.3.6 is also supported in 4.1.0. 6. ATI @@ -116,17 +119,17 @@ driver. Accelerated support is provided for the Rage 128 chips by the XF86_SVGA server with the r128 driver. - 4.0.2: + 4.1.0: Accelerated support is provided for Mach64, Rage, Rage 128 and Radeon chips. 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 4.0.2 except for - Mach8 and some old Mach32 chips. The support in 4.0.2 is, how- - ever, unaccelerated for all chips except the Mach64, Rage and - Rage 128 variants. + All chips supported in 3.3.6 are supported in 4.1.0 except for + Mach8 and some old Mach32 chips. The support in 4.1.0 is, how- + ever, unaccelerated for all chips except the Mach64, Rage, Rage + 128 and Radeon variants. 7. Avance Logic @@ -137,12 +140,12 @@ the others. These drivers reportedly work, but they have no maintainer. - 4.0.2: + 4.1.0: No native support for these chipsets, because the old drivers have not been ported. Summary: - No Avance Logic chips are supported in 4.0.2. + No Avance Logic chips are supported in 4.1.0. 8. Chips and Technologies @@ -152,13 +155,13 @@ 64300. This support is provided by the XF86_SVGA server with the chips driver. - 4.0.2: + 4.1.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 hardware supported in 3.3.6 is also supported in 4.0.2. + All hardware supported in 3.3.6 is also supported in 4.1.0. 9. Cirrus Logic @@ -170,13 +173,13 @@ 7541, 7542, 7543, 7548, 7555 and 7556 is provided by the XF86_SVGA server with the cirrus driver. - 4.0.2: + 4.1.0: Support (accelerated) for the Alpine (5430, 5434, 5436, 5446, 5480, 7548), and Laguna (5462, 5464, 5465) chips is provided by the "cirrus" driver. Summary: - The following chips are supported in 3.3.6 but not in 4.0.2: + The following chips are supported in 3.3.6 but not in 4.1.0: 6410, 6412, 6420, 6440, 5420, 5422, 5424, 5426, 5428, 5429, 6205, 6215, 6225, 6235, 7541, 7542, 7543, 7555 and 7556. @@ -192,7 +195,7 @@ 24 plane 3D chips (on Alpha platforms) is provided by the XF86_TGA server. - 4.0.2: + 4.1.0: No support for the Compaq AVGA (driver hasn't been ported). Support (accelerated) for the DEC 21030 TGA 8 plane, 24 plane and @@ -200,8 +203,8 @@ the "tga" driver. Summary: - No Compaq AVGA support in 4.0.2. DEC TGA support is equivalent - in both 3.3.6 and 4.0.2. + No Compaq AVGA support in 4.1.0. DEC TGA support is equivalent + in both 3.3.6 and 4.1.0. 11. Cyrix @@ -209,12 +212,12 @@ Support (accelerated) for the Cyrix MediaGX is provided by the XF86_SVGA server with the cyrix driver. - 4.0.2: - The 3.3.6 driver has been ported to 4.0.2, including accelera- + 4.1.0: + The 3.3.6 driver has been ported to 4.1.0, including accelera- tion, but feedback is needed. Summary: - Cyrix MediaGX users are encouraged to test its support in 4.0.2. + Cyrix MediaGX users are encouraged to test its support in 4.1.0. 12. Epson @@ -222,12 +225,12 @@ Support (accelerated) for the Epson SPC8110 is provided by the XF86_SVGA server with the spc8100 driver. - 4.0.2: + 4.1.0: No native support for this chipset, because the old driver has not been ported. Summary: - No Epson chips are supported in 4.0.2. + No Epson chips are supported in 4.1.0. 13. Genoa @@ -237,12 +240,12 @@ because we don't have any recent test reports, and this driver has no maintainer. - 4.0.2: + 4.1.0: No native support for this chipset, because the old driver has not been ported. Summary: - No Genoa chips are supported in 4.0.2. + No Genoa chips are supported in 4.1.0. 14. IBM @@ -257,7 +260,7 @@ Support for the IBM XGA-2 chip is provided by the XF86_AGX server. - 4.0.2: + 4.1.0: Support for the standard IBM VGA chip (and compatibles) is pro- vided by the "vga" driver. @@ -266,7 +269,7 @@ Summary: The standard VGA core is supported in both versions, but there is - no support for the 8514/A or XGA-2 in 4.0.2. + no support for the 8514/A or XGA-2 in 4.1.0. 15. IIT @@ -274,12 +277,12 @@ Support (accelerated) for the AGX-016, AGX-015 and AGX-014 is provided by the XF86_AGX server. - 4.0.2: + 4.1.0: No native support for these chipsets, because the old driver has not been ported. Summary: - No IIT chips are supported in 4.0.2. + No IIT chips are supported in 4.1.0. 16. Integrated Micro Solutions (IMS) @@ -287,12 +290,12 @@ Support (accelerated) for the IMS Twin Turbo 128 is provided by the XF86_SVGA server with the imstt driver. - 4.0.2: + 4.1.0: Support (accelerated) for the IMS Twin Turbo 128 is provided by the "imstt" driver. Summary: - All hardware supported in 3.3.6 is also supported in 4.0.2. + All hardware supported in 3.3.6 is also supported in 4.1.0. 17. Intel @@ -303,15 +306,17 @@ Linux, and requires the agpgart.o kernel module in order to use modes that require more than 1MB of video memory. - 4.0.2: + 4.1.0: Support (accelerated) for the Intel i740 is provided by the - "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. + "i740" driver, and support for the Intel i810 (including + i810-dc100 and i810e) and i815 is provided by the "i810" driver. + The "i810" driver is currently supported only on Linux and + FreeBSD (4.1 and later), and requires the agpgart kernel support. Summary: The i740 and i810 are supported in both versions, but the i810 is - only supported on Linux/x86 platforms at present. + only supported on Linux/x86 and recent FreeBSD/i386 platforms at + present. 18. Matrox @@ -320,13 +325,13 @@ (Mystique), MGA2164W (Millennium II) (PCI and AGP), G100, G200 and G400 is provided by the XF86_SVGA server with the mga driver. - 4.0.2: + 4.1.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 hardware supported in 3.3.6 is also supported in 4.0.2. + All hardware supported in 3.3.6 is also supported in 4.1.0. 19. MX (???) @@ -336,12 +341,12 @@ is unknown because we don't have any recent test reports, and this driver has no maintainer. - 4.0.2: + 4.1.0: No native support for this chipset, because the old driver has not been ported. Summary: - No MX (???) chips are supported in 4.0.2. + No MX (???) chips are supported in 4.1.0. 20. NCR @@ -350,12 +355,12 @@ XF86_SVGA server and the ncr77c22 driver. The status of this support is unknown because we don't have any recent test reports. - 4.0.2: + 4.1.0: No native support for this chipset, because the old driver has not been ported. Summary: - No NCR chips are supported in 4.0.2. + No NCR chips are supported in 4.1.0. 21. NeoMagic @@ -364,14 +369,14 @@ NM2097, NM2160 and NM2200 chipsets is provided by the XF86_SVGA server with the neo driver. - 4.0.2: + 4.1.0: Support (accelerated) for the NeoMagic NM2070, NM2090, NM2093, NM2097, NM2160, NM2200, NM2230, NM2360 and NM2380 chipsets is provided by the "neomagic" driver. Summary: - All hardware supported in 3.3.6 is also supported in 4.0.2. The - NM2230 and later chips are only supported in 4.0.2. + All hardware supported in 3.3.6 is also supported in 4.1.0. The + NM2230 and later chips are only supported in 4.1.0. 22. NVIDIA @@ -380,15 +385,15 @@ (Ultra, Vanta, M64), GeForce (DDR, 256) and Quadro is provided by the XF86_SVGA server and the nv driver. - 4.0.2: + 4.1.0: Support (accelerated) for the Riva 128, 128ZX, TNT, TNT2 (Ultra, Vanta, M64), GeForce (DDR, 256), GeForce2 (GTS, Ultra, MX), Quadro, and Quadro2 is provided by the "nv" driver. Summary: All chipsets supported in 3.3.6 except the NV1 are also supported - in 4.0.2. Support for the newer chips (GeForce2 and later) is - only available in 4.0.2. + in 4.1.0. Support for the newer chips (GeForce2 and later) is + only available in 4.1.0. 23. Number Nine @@ -396,12 +401,12 @@ Support (accelerated) for the Imagine 128, Ticket 2 Ride, Revolu- tion 3D and Revolution IV is provided by the XF86_I128 server. - 4.0.2: + 4.1.0: Support (accelerated) for the Imagine 128, Ticket 2 Ride, Revolu- tion 3D and Revolution IV is provided by the "i128" driver. Summary: - All hardware supported in 3.3.6 is also supported in 4.0.2. + All hardware supported in 3.3.6 is also supported in 4.1.0. 24. Oak Technologies, Inc. @@ -410,12 +415,12 @@ acceleration) is provided by the XF86_SVGA server and the oak driver. - 4.0.2: + 4.1.0: No native support for these chipsets, because the old driver has not been ported. Summary: - No Oak chips are supported in 4.0.2. + No Oak chips are supported in 4.1.0. 25. Paradise/Western Digital @@ -426,12 +431,12 @@ port for some of these chipsets is uncertain because we don't have any recent test reports, and this driver has no maintainer. - 4.0.2: + 4.1.0: No native support for these chipsets, because the old driver has not been ported. Summary: - No Paradise/Western Digital chips are supported in 4.0.2. + No Paradise/Western Digital chips are supported in 4.1.0. 26. RealTek @@ -441,12 +446,12 @@ unknown because we don't have any recent test reports, and this driver has no maintainer. - 4.0.2: + 4.1.0: No native support for these chipsets, because the old driver has not been ported. Summary: - No RealTek chips are supported in 4.0.2. + No RealTek chips are supported in 4.1.0. 27. Rendition/Micron @@ -454,12 +459,12 @@ Support for the Verite 1000, 2100 and 2200 is provided by the XF86_SVGA server with the rendition driver. - 4.0.2: + 4.1.0: Support for the Verite 1000, 2100 and 2200 is provided by the "rendition" driver. Summary: - All hardware supported in 3.3.6 is also supported in 4.0.2. + All hardware supported in 3.3.6 is also supported in 4.1.0. 28. S3 @@ -476,7 +481,7 @@ age2000, is provided by the XF86_SVGA server with the s3_savage driver on some OSes (Linux, *BSD). - 4.0.2: + 4.1.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 (accelerated) for the @@ -486,19 +491,19 @@ Summary: Only the ViRGE, Trio3D and Savage chipsets are supported in - 4.0.2. All of the other chipsets are only supported in 3.3.6. + 4.1.0. All of the other chipsets are only supported in 3.3.6. 29. Silicon Graphics, Inc. (SGI) 3.3.6: No SGI hardware is supported in 3.3.6. - 4.0.2: + 4.1.0: Unaccelerated support for the SGI Indy's Newport cards is pro- vided by the "newport" driver. Summary: - SGI hardware is supported only in 4.0.2. + SGI hardware is supported only in 4.1.0. 30. Silicon Integrated Systems (SiS) @@ -507,15 +512,15 @@ 86C225, 5597, 5598, 6326, 530, 620, 300, 630 and 540 is provided by the XF86_SVGA server with the sis driver. - 4.0.2: + 4.1.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 86C201, 86C202, 86C215, 86C225, 5597 and 5598 is - currently only available in 3.3.6. + Support for the 86C201, 86C202, 86C205, 86C215, 86C225, 5597 and + 5598 is currently only available in 3.3.6. 31. Silicon Motion, Inc. @@ -524,20 +529,20 @@ LynxEM+ and Lynx3DM chips is provided by the XF86_SVGA server with the smi driver. - 4.0.2: + 4.1.0: Support (accelerated) for the Lynx, LynxE, Lynx3D, LynxEM, LynxEM+ and Lynx3DM chips is provided by the "siliconmotion" driver. Summary: - All hardware supported in 3.3.6 is also supported in 4.0.2. + All hardware supported in 3.3.6 is also supported in 4.1.0. 32. Sun Microsystems 3.3.6: No Sun hardware is supported in 3.3.6. - 4.0.2: + 4.1.0: Sun BW2 framebuffers are supported by the "sunbw2" driver. Sun CG3 framebuffers are supported by the "suncg3" driver. Sun CG6 framebuffers are supported by the "suncg6" driver. Sun CG14 @@ -547,7 +552,7 @@ framebuffers are supported by the "suntcx" driver. Summary: - Sun hardware is supported only in 4.0.2. + Sun hardware is supported only in 4.1.0. 33. Trident Microsystems @@ -562,7 +567,7 @@ CyberBlade/DSTN/i7 and CyberBlade/i1 is provided by the XF86_SVGA server with the tvga8900 driver. - 4.0.2: + 4.1.0: Support (accelerated where the chip supports it) for the TVGA8900D, TGUI9440AGi, TGUI9660, TGUI9680, ProVidia 9682, Pro- Vidia 9685, Cyber9320, Cyber9382, Cyber9385, Cyber9388, @@ -574,10 +579,10 @@ Summary: The following (older) chipsets that are supported in 3.3.6 are - not supported in 4.0.2: TVGA8200LX, TVGA8800CS, TVGA8900B, + not supported in 4.1.0: TVGA8200LX, TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000, TVGA9000i, TVGA9100B, TVGA9200CXr, TGUI9400CXi, TGUI9420, TGUI9430DGi. The remaining - listed chipsets are supported in 4.0.2. + listed chipsets are supported in 4.1.0. 34. Tseng Labs @@ -589,13 +594,13 @@ driver. Support (accelerated) for the ET4000/W32 series and the ET6000 is also provided by the deprecated XF86_W32 server. - 4.0.2: + 4.1.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 4.0.2 except + All cards supported by 3.3.6 are also supported by 4.1.0 except for the old ET3000. 35. Video 7 @@ -606,12 +611,12 @@ unknown because we don't have any recent test reports, and this driver has no maintainer. - 4.0.2: + 4.1.0: No native support for these chipsets, because the old driver has not been ported. Summary: - No Video 7 chips are supported in 4.0.2. + No Video 7 chips are supported in 4.1.0. 36. Weitek @@ -620,14 +625,14 @@ server and accelerated support for the P9100 is provided by the XF86_SVGA server with the p9x00 driver. - 4.0.2: + 4.1.0: No native support for these chipsets, because the old drivers have not been ported. Summary: - No Weitek chips are supported in 4.0.2. + No Weitek chips are supported in 4.1.0. - Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml,v 1.26 2000/12/14 22:15:48 dawes Exp $ + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Status.sgml,v 1.29.2.2 2001/06/01 18:09:49 dawes Exp $ -$XFree86: xc/programs/Xserver/hw/xfree86/doc/Status,v 1.21 2000/12/14 22:34:26 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/Status,v 1.23.2.2 2001/06/01 18:26:45 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/Versions diff -u /dev/null xc/programs/Xserver/hw/xfree86/doc/Versions:1.1.4.1 --- /dev/null Mon Jun 4 09:38:47 2001 +++ xc/programs/Xserver/hw/xfree86/doc/Versions Fri Jun 1 14:26:46 2001 @@ -0,0 +1,301 @@ + XFree86 Version Numbering Schemes + + The XFree86 Project, Inc + + 28 January 2001 + + Abstract + + The version numbering schemes used by XFree86 have changed from + time to time. The schemes used since version 3.3 are explained + here. + +1. Releases, Development Streams and Branches + +As of the release of version 4.0.2 in December 2000, XFree86 has three +release branches. The main development stream is on the trunk of the CVS +repository. That is where all new development work is done. A stable bugfix +branch for the 4.0.2 release was created at the time of its release, and that +branch is called "xf-4_0_2-branch". Fixes for bugs found in the 4.0.2 +release will be added to this branch (as well as the trunk). Similar stable +branches will be created after each full release. + +Finally, there is the 3.3.x legacy branch, which is called "xf-3_3-branch". +While this branch is not actively being maintained, it does include some +important post-3.3.6 bug fixes and security updates. Security updates in +particular are usually back-ported to this branch. + +XFree86 is planning to make full releases from the main development stream +approximately every six months, in late May and November of each year. The +feature freezes for these releases will be 1 April and 1 October respec- +tively. These are target dates, not a binding commitment. How effectively +these dates can be met will depend to a large degree on the resource avail- +able to XFree86. Full releases consist of full source code tarballs, plus +full binary distributions for a range of supported platforms. Update/bugfix +releases will be made on an as-required basis, depending also on the avail- +ability of resources. Update/bugfix releases will not be full releases, and +will consist of source code patches, plus binary updates to be layered on top +of the previous full release. + +The next full release will be version 4.1.0, scheduled for late May 2001. +The next update release will be 4.0.3. There is no specific schedule for +that, but it is expected to be available some time in February 2001. The +next release on the legacy branch will be 3.3.7. There is currently no +schedule for that release. The 3.3.7 release is likely to be the final +release on that branch. + +Aside from actual releases, snapshots of the active release branches are +tagged in the CVS repository from time to time. Each such snapshot has an +identifiable version number. + +2. Current (new) Version Numbering Scheme + +Starting with the main development branch after 4.0.2, the XFree86 versions +will be numbered according to the scheme outlined here. Both the 4.0.2 sta- +ble branch and the 3.3.x legacy branch will continue to use the previous +scheme, which is outlined in the sections below. + +The version numbering format is M.m.P.s, where M is the major version number, +m is the minor version number, P is the patch level, and s is the snapshot +number. Full releases have P set to zero, and it is incremented for each +subsequent bug fix release on the post-release stable branch. The snapshot +number s is present only for between-release snapshots of the development and +stable branches. + +2.1 Development Branch + +Immediately after forming a release stable branch, the patch level number for +the main development branch is bumped to 99, and the snapshot number is +reset. The snapshot number is incremented for each tagged development snap- +shot. The CVS tag for snapshots is "xf-M_m_P_s". When the development +branch enters feature freeze, the snapshot number is bumped to 900, and a +stable branch is created for the next full release. The branch is called +"xf-M_m-branch". The snapshot number is incremented from there until the +release is finalised. Each of these snapshots is a "release candidate". +When the release is finalised, the minor version is incremented, the patch +level is set to zero, and the snapshot number removed. + +Here's an example which shows the version number sequence for the development +leading up to version 4.1.0: + + 4.0.99.1 + The first snapshot of the pre-4.1 development branch. + + 4.0.99.23 + The twenty-third snapshot of the pre-4.1 development branch. + + 4.0.99.900 + The start of the 4.1 feature freeze, which marks the creation of + the "xf-4_1-branch" branch. That branch is the "stable" branch + for the 4.1.x releases. + + 4.0.99.903 + The third 4.1.0 release candidate. + + 4.1.0 + The 4.1.0 release. + + 4.1.99.1 + The first pre-4.2 development snapshot, which is the first main + branch snapshot after creating the 4.1 stable branch. + +2.2 Stable Branch + +After a full release, the stable branch for the release will be maintained +with bug fixes and important updates until the next full release. All snap- +shots on this branch are considered "release candidates", so the first is +indicated by setting s to 901. The snapshot number is then incremented for +each subsequent release candidate until the update release if finalised. The +patch level value (P) is incremented for each update release. + +Here's an example which shows the version number sequence for the 4.1.x sta- +ble branch. + + 4.0.99.900 + The start of the 4.1 feature freeze, which marks the creation of + the "xf-4_1-branch" branch. That branch is the "stable" branch + for the 4.1.x releases. + + 4.0.99.903 + The third 4.1.0 release candidate. + + 4.1.0 + The 4.1.0 release. + + 4.1.0.901 + The first pre 4.1.1 snapshot. + + 4.1.0.903 + The third pre 4.1.1 snapshot, also known as the third 4.1.1 + release candidate. + + 4.1.1 + The 4.1.1 release. + + 4.1.1.901 + The first pre 4.1.2 snapshot. + + 4.1.2 + The 4.1.2 release. + +3. Version Numbering Scheme for XFree86 4.0.x. + +The version numbering format for XFree86 4.0.x releases is M.m.nx, where M is +the major version number (4), m is the minor version number (0), n is the +sub-minor version number, and x is a letter. Full release versions up to and +including 4.0.2 were 4.0, 4.0.1, and 4.0.2. Between-release snapshots are +indicated by including x, a lower case letter. For example, the first +post-4.0.1 snapshot was 4.0.1a. Release candidates have been indicated by +setting x to a one or two letter combination with the first letter being "Z". +For example, 4.0.1Z was the first 4.0.2 release candidate. + +The next 4.0.x release will be an update release, not a full release. These +update releases will be indicated by incrementing the sub-minor version num- +ber. So, the first post-4.0.2 update release will be 4.0.3. Between-release +snapshots will continue to be indicated with a lower case letter, so the +first pre-4.0.3 snapshot will be 4.0.2a. + +The following example illustrates the release sequence from 4.0 through to +the post-4.0.2 update releases. + + 4.0 + The 4.0 release. + + 4.0a + The first post-4.0 development snapshot. + + 4.0f + The sixth post-4.0 development snapshot. + + 4.0Z + The 4.0.1 release candidate. + + 4.0.1 + The 4.0.1 release. + + 4.0.1a + The first post-4.0.1 development snapshot. + + 4.0.1f + The sixth post-4.0.1 development snapshot. + + 4.0Z + The first 4.0.2 release candidate. + + 4.0Zb + The third 4.0.2 release candidate. + + 4.0.2 + The 4.0.2 release. + + 4.0.2a + The first pre-4.0.3 snapshot/release candidate. + + 4.0.2c + The third pre-4.0.3 snapshot/release candidate. + + 4.0.3 + The 4.0.3 update release. + + 4.0.3a + The first pre-4.0.4 snapshot/release candidate. + + 4.0.4 + The 4.0.4 update release. + +4. Pre-4.0 Development Versions + +This section is included mostly for historical reasons. + +The development leading up to 4.0 started from version 3.2A, but much of it +happened on a separate development branch. The "new design" work on that +development branch was first folded into the main development branch at ver- +sion 3.9N. Up until the XFree86 CVS was made publicly available, all ver- +sions containing one or more letters were internal development snapshots. +The internal development snapshots continued through the following sequence: +3.9N, 3.9Na, ..., 3.9Nz, 3.9P, 3.9Pa, ..., 3.9Py, 3.9.15, 3.9.15a, ..., +3.9.16, 3.9.16a, ..., 3.9.17, 3.9.17a, ..., 3.9.18, 3.9.18a, ..., 4.0. The +3.9.15, 3.9.16, etc versions were public pre-4.0 beta releases. + +5. Version Numbering Scheme for XFree86 3.3.x. + +The version numbering format for XFree86 3.3.x releases is M.m.nx, where M is +the major version number (3), m is the minor version number (3), n is the +sub-minor version number, and x is a letter. Between-release snapshots are +indicated by including x, a lower case letter. An exception to this scheme +was the 3.3.3.1 release, which was an update to the 3.3.3 release. + + 3.3 + The 3.3 release. + + 3.3a + The first post-3.3 development snapshot. + + 3.3.1 + The 3.3.1 release. + + 3.3.1a + The first post-3.3.1 development snapshot. + + 3.3.2 + The 3.3.2 release. + + 3.3.2a + The first post-3.3.2 development snapshot. + + 3.3.3 + The 3.3.3 release. + + 3.3.3a + The first post-3.3.3 development snapshot. + + 3.3.3.1 + The 3.3.3.1 release. + + 3.3.3.1a + The first post-3.3.3.1 development snapshot. + + 3.3.4 + The 3.3.4 release. + + 3.3.4a + The first post-3.3.4 snapshot. + + 3.3.5 + The 3.3.5 release. + + 3.3.5a + The first post-3.3.5 snapshot. + + 3.3.6 + The 3.3.6 release. + + 3.3.6a + The first post-3.3.6 snapshot. + +6. Finding the XFree86 X Server Version From a Client + +The XFree86 X servers report a VendorRelease value that matches the XFree86 +version number. There have been some cases of releases where this value +wasn't set correctly. The rules for interpreting this value as well as the +known exceptions are outlined here. + +For 3.3.x versions, the VendorRelease value is Mmnp. That is, version +M.m.n.p has VendorRelease set to M * 1000 + m * 100 + n * 10 + p. Exceptions +to this are: The value wasn't incremented for the 3.3.3.1 release, and for +the 3.3.4 and 3.3.5 releases the value was incorrectly set to Mmn +(M * 100 + m * 10 + n). This was corrected for the 3.3.6 release. + +For versions 3.9.15 to 4.0.x, the VendorRelease value is Mmnn. That is, ver- +sion M.m.n has VendorRelease set to M * 1000 + m * 100 + n. There have been +no exceptions to this rule. + +For post-4.0.2 development and release versions using the new numbering +scheme, the VendorRelease value is MMmmPPsss. That is, version M.m.P.s has +VendorRelease set to M * 10000000 + m * 100000 + P * 1000 + s. Note: 4.0.3 +and any other 4.0.x releases will continue with the Mmnn scheme. + + Generated from XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Versions.sgml,v 1.1 2001/02/07 18:49:31 dawes Exp $ + + +$XFree86: xc/programs/Xserver/hw/xfree86/doc/Versions,v 1.1.4.1 2001/06/01 18:26:46 dawes Exp $ Index: xc/programs/Xserver/hw/xfree86/doc/modeDB.txt diff -u xc/programs/Xserver/hw/xfree86/doc/modeDB.txt:3.8 xc/programs/Xserver/hw/xfree86/doc/modeDB.txt:3.9 --- xc/programs/Xserver/hw/xfree86/doc/modeDB.txt:3.8 Sat Dec 20 09:20:57 1997 +++ xc/programs/Xserver/hw/xfree86/doc/modeDB.txt Sat Jan 6 15:58:02 2001 @@ -1,4 +1,4 @@ -# $XFree86: xc/programs/Xserver/hw/xfree86/doc/modeDB.txt,v 3.8 1997/12/20 14:20:57 hohndel Exp $ +# $XFree86: xc/programs/Xserver/hw/xfree86/doc/modeDB.txt,v 3.9 2001/01/06 20:58:02 tsi Exp $ # # # @@ -157,7 +157,7 @@ ############################################################################### # Card: ATI VGAWonder series -# Contributor: Marc Aurele La France [tsi@ualberta.ca] +# Contributor: Marc Aurele La France [tsi@xfree86.org] # Last Edit Date: 1994.06.07 # # See file README.ati for clock information for these cards. Index: xc/programs/Xserver/hw/xfree86/doc/man/XF86DGA.man diff -u xc/programs/Xserver/hw/xfree86/doc/man/XF86DGA.man:3.6 xc/programs/Xserver/hw/xfree86/doc/man/XF86DGA.man:3.8 --- xc/programs/Xserver/hw/xfree86/doc/man/XF86DGA.man:3.6 Sun Nov 16 01:42:12 1997 +++ xc/programs/Xserver/hw/xfree86/doc/man/XF86DGA.man Wed Feb 7 17:35:22 2001 @@ -1,18 +1,18 @@ .\" Copyright (c) 1996 The XFree86 Project -.\" $XFree86: xc/programs/Xserver/hw/xfree86/doc/man/XF86DGA.man,v 3.6 1997/11/16 06:42:12 dawes Exp $ +.\" $XFree86: xc/programs/Xserver/hw/xfree86/doc/man/XF86DGA.man,v 3.8 2001/02/07 22:35:22 tsi Exp $ .\" $TOG: XF86DGA.man /main/9 1997/11/11 12:08:52 kaleb $ .\" .de ZN .ie t \fB\^\\$1\^\fR\\$2 .el \fI\^\\$1\^\fP\\$2 .. -.TH XF86DGA 3X11 "3.3.1+ (X11R6.4)" "XFree86" "X FUNCTIONS" +.TH XF86DGA 3X11 __vendorversion__ "X FUNCTIONS" .SH NAME XF86DGAQueryExtension, XF86DGAQueryVersion, XF86DGAQueryDirectVideo, XF86DGAGetVideo, XF86DGADirectVideo, XF86DGASetVidPage, XF86DGASetViewPort, XF86DGAViewPortChanged, XF86DGAGetViewPortSize, XF86DGAInstallColormap, XF86DGAForkApp \- XFree86-DGA extension interface functions .SH SYNTAX .nf .LP -#include +\&#include .LP Bool XF86DGAQueryExtension( Display *\fIdisplay\fP\^, Index: xc/programs/Xserver/hw/xfree86/doc/man/XF86Misc.man diff -u xc/programs/Xserver/hw/xfree86/doc/man/XF86Misc.man:3.9 xc/programs/Xserver/hw/xfree86/doc/man/XF86Misc.man:3.11 --- xc/programs/Xserver/hw/xfree86/doc/man/XF86Misc.man:3.9 Sat Apr 4 21:28:41 1998 +++ xc/programs/Xserver/hw/xfree86/doc/man/XF86Misc.man Wed Feb 7 17:35:22 2001 @@ -4,18 +4,18 @@ .\" .\" Copyright (c) 1996 Joe Moss, The XFree86 Project .\" -.\" $XFree86: xc/programs/Xserver/hw/xfree86/doc/man/XF86Misc.man,v 3.9 1998/04/05 02:28:41 dawes Exp $ +.\" $XFree86: xc/programs/Xserver/hw/xfree86/doc/man/XF86Misc.man,v 3.11 2001/02/07 22:35:22 tsi Exp $ .de ZN .ie t \fB\^\\$1\^\fR\\$2 .el \fI\^\\$1\^\fP\\$2 .. -.TH XF86MISC 3X11 "3.3.1+ (X11R6.4)" "XFree86" "X FUNCTIONS" +.TH XF86MISC 3X11 __vendorversion__ "X FUNCTIONS" .SH NAME XF86MiscQueryExtension, XF86MiscQueryVersion, XF86MiscGetMouseSettings, XF86MiscSetMouseSettings, XF86MiscGetKbdSettings, XF86MiscSetKbdSettings \- XFree86-Misc extension interface functions .SH SYNTAX .nf .LP -#include +\&#include .LP Bool XF86MiscQueryExtension( Display *\fIdisplay\fP\^, Index: xc/programs/Xserver/hw/xfree86/doc/man/XF86VM.man diff -u xc/programs/Xserver/hw/xfree86/doc/man/XF86VM.man:3.8 xc/programs/Xserver/hw/xfree86/doc/man/XF86VM.man:3.10 --- xc/programs/Xserver/hw/xfree86/doc/man/XF86VM.man:3.8 Sat Apr 4 21:28:41 1998 +++ xc/programs/Xserver/hw/xfree86/doc/man/XF86VM.man Wed Feb 7 17:35:22 2001 @@ -4,19 +4,19 @@ .\" .\" .\" Copyright (c) 1996 Joe Moss, The XFree86 Project -.\" $XFree86: xc/programs/Xserver/hw/xfree86/doc/man/XF86VM.man,v 3.8 1998/04/05 02:28:41 dawes Exp $ +.\" $XFree86: xc/programs/Xserver/hw/xfree86/doc/man/XF86VM.man,v 3.10 2001/02/07 22:35:22 tsi Exp $ .\" .de ZN .ie t \fB\^\\$1\^\fR\\$2 .el \fI\^\\$1\^\fP\\$2 .. -.TH XF86VIDMODE 3X11 "3.3.1+ (X11R6.4)" "XFree86" "X FUNCTIONS" +.TH XF86VIDMODE 3X11 __vendorversion__ "X FUNCTIONS" .SH NAME XF86VidModeQueryExtension, XF86VidModeQueryVersion, XF86VidModeGetModeLine, XF86VidModeGetAllModeLines, XF86VidModeDeleteModeLine, XF86VidModeModModeLine, XF86VidModeValidateModeLine, XF86VidModeSwitchMode, XF86VidModeSwitchToMode, XF86VidModeLockModeSwitch, XF86VidModeGetMonitor, XF86VidModeGetViewPort, XF86VidModeSetViewPort \- XFree86-VidMode extension interface functions .SH SYNTAX .nf .LP -#include +\&#include .LP Bool XF86VidModeQueryExtension( Display *\fIdisplay\fP\^, Index: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml:1.39 xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml:1.44 --- xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml:1.39 Mon Dec 4 13:49:54 2000 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml Fri May 18 20:40:30 2001 @@ -27,7 +27,7 @@ XFree86 X server ``New Design'' (DRAFT) <author>The XFree86 Project, Inc -<date>Last modified 2 December 2000 +<date>Last modified 1 May 2001 @@ -36,7 +36,7 @@ <ident> -$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.39 2000/12/04 18:49:54 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DESIGN.sgml,v 1.44 2001/05/19 00:40:30 dawes Exp $ </ident> @@ -517,8 +517,8 @@ &s.code;InitOutput()&e.code;. &s.code;xf86AddDriver()&e.code; adds it to the global &s.code;xf86DriverList[]&e.code; array. - The &s.code;DriverRec&e.code; contains the driver's version, a short - descriptive message, the &s.code;Identify()&e.code;, + The &s.code;DriverRec&e.code; contains the driver canonical name, + the &s.code;Identify()&e.code;, &s.code;Probe()&e.code; and &s.code;AvailableOptions()&e.code; function entry points as well as a pointer to the driver's module (as returned from the loader when the driver @@ -2561,7 +2561,7 @@ </quote> - &s.code;OptionInfoPtr xf86TokenToOptinfo(OptionInfoPtr table, int token)&e.code; + &s.code;OptionInfoPtr xf86TokenToOptinfo(const OptionInfoRec *table, int token)&e.code; <quote><p> Returns a pointer to the &s.code;OptionInfoRec&e.code; in &s.code;table&e.code; with a token field matching @@ -2570,7 +2570,7 @@ </quote> - &s.code;Bool xf86IsOptionSet(OptionInfoPtr table, int token)&e.code; + &s.code;Bool xf86IsOptionSet(const OptionInfoRec *table, int token)&e.code; <quote><p> Returns the &s.code;found&e.code; field of the &s.code;OptionInfoRec&e.code; in &s.code;table&e.code; with a @@ -2582,7 +2582,7 @@ </quote> - &s.code;char *xf86GetOptValString(OptionInfoPtr table, int token)&e.code; + &s.code;char *xf86GetOptValString(const OptionInfoRec *table, int token)&e.code; <quote><p> Returns the &s.code;value.str&e.code; field of the &s.code;OptionInfoRec&e.code; in &s.code;table&e.code; with a @@ -2591,7 +2591,7 @@ </quote> - &s.code;Bool xf86GetOptValInteger(OptionInfoPtr table, int token, + &s.code;Bool xf86GetOptValInteger(const OptionInfoRec *table, int token, &f.indent;int *value)&e.code; <quote><p> Returns via &s.code;*value&e.code; the &s.code;value.num&e.code; @@ -2604,7 +2604,7 @@ </quote> - &s.code;Bool xf86GetOptValULong(OptionInfoPtr table, int token, + &s.code;Bool xf86GetOptValULong(const OptionInfoRec *table, int token, &f.indent;unsigned long *value)&e.code; <quote><p> Like &s.code;xf86GetOptValInteger()&e.code;, except the value is @@ -2612,7 +2612,7 @@ </quote> - &s.code;Bool xf86GetOptValReal(OptionInfoPtr table, int token, + &s.code;Bool xf86GetOptValReal(const OptionInfoRec *table, int token, &f.indent;double *value)&e.code; <quote><p> Like &s.code;xf86GetOptValInteger()&e.code;, except that @@ -2620,7 +2620,7 @@ </quote> - &s.code;Bool xf86GetOptValFreq(OptionInfoPtr table, int token, + &s.code;Bool xf86GetOptValFreq(const OptionInfoRec *table, int token, &f.indent;OptFreqUnits expectedUnits, double *value)&e.code; <quote><p> Like &s.code;xf86GetOptValInteger()&e.code;, except that the @@ -2636,7 +2636,7 @@ </quote> - &s.code;Bool xf86GetOptValBool(OptionInfoPtr table, int token, Bool *value)&e.code; + &s.code;Bool xf86GetOptValBool(const OptionInfoRec *table, int token, Bool *value)&e.code; <quote><p> This function is used to check boolean options (&s.code;OPTV_BOOLEAN&e.code;). If the function return value is @@ -2654,7 +2654,7 @@ </quote> - &s.code;Bool xf86ReturnOptValBool(OptionInfoPtr table, int token, Bool def)&e.code; + &s.code;Bool xf86ReturnOptValBool(const OptionInfoRec *table, int token, Bool def)&e.code; <quote><p> This function is used to check boolean options (&s.code;OPTV_BOOLEAN&e.code;). If the option is set, its value @@ -5774,7 +5774,15 @@ &s.code;hwp&e.code; with the standard VGA set of functions. This is called by &s.code;vgaHWGetHWRec()&e.code;, so there is usually no need to call this explicitly. The register access functions - are described below. + are described below. If the registers are shadowed in some other + port I/O space (for example a PCI I/O region), these functions + can be used to access the shadowed registers if + &s.code;hwp->PIOOffset&e.code; is initialised with + &s.code;offset&e.code;, calculated in such a way that when the + standard VGA I/O port value is added to it the correct offset into + the PIO area results. This value is initialised to zero in + &s.code;vgaHWGetHWRec()&e.code;. (Note: the PIOOffset functionality + is present in XFree86 4.1.0 and later.) </quote> @@ -5861,6 +5869,20 @@ </quote> + &s.code;void vgaHWEnable(vgaHWPtr hwp)&e.code; + <quote><p> + This function enables the VGA subsystem. (Note, this function is + present in XFree86 4.1.0 and later.). + + </quote> + + &s.code;void vgaHWDisable(vgaHWPtr hwp)&e.code; + <quote><p> + This function disables the VGA subsystem. (Note, this function is + present in XFree86 4.1.0 and later.). + + </quote> + &s.code;void vgaHWSave(ScrnInfoPtr pScrn, vgaRegPtr save, int flags)&e.code; <quote><p> This function saves the VGA state. The state is written to the @@ -6188,6 +6210,20 @@ Return the value read from the DAC Data register. </quote> + + &s.code;CARD8 readEnable(vgaHWptr hwp)&e.code; + <quote><p> + Return the value read from the VGA Enable register. (Note: This + function is present in XFree86 4.1.0 and later.) + + </quote> + + &s.code;void writeEnable(vgaHWPtr hwp, CARD8 value)&e.code; + <quote><p> + Write &s.code;value&e.code; to the VGA Enable register. (Note: This + function is present in XFree86 4.1.0 and later.) + + </quote> </quote> <sect>Some notes about writing a driver<label id="sample"> @@ -6336,7 +6372,7 @@ <code> DriverRec ZZZ = { VERSION, - "unaccelerated driver for ZZZ Zzzzzy cards", + ZZZ_DRIVER_NAME, ZZZIdentify, ZZZProbe, ZZZAvailableOptions, @@ -6409,6 +6445,7 @@ Bool noAccel; Bool hwCursor; CloseScreenProcPtr CloseScreen; + OptionInfoPtr Options; ... } ZZZRec, *ZZZPtr; </code> @@ -6425,15 +6462,13 @@ OPTION_NOACCEL } ZZZOpts; -static OptionInfoRec ZZZOptions[] = { +static const OptionInfoRec ZZZOptions[] = { { OPTION_FOO_HACK, "FooHack", OPTV_INTEGER, {0}, FALSE }, { OPTION_PCI_RETRY, "PciRetry", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_HW_CURSOR, "HWcursor", OPTV_BOOLEAN, {0}, FALSE }, { OPTION_NOACCEL, "NoAccel", OPTV_BOOLEAN, {0}, FALSE }, { -1, NULL, OPTV_NONE, {0}, FALSE } }; - -#define nZZZOptions (sizeof(ZZZOptions) / sizeof(ZZZOptions[0])) </code> <p> </itemize> @@ -6721,8 +6756,6 @@ static Bool ZZZPreInit(ScrnInfoPtr pScrn, int flags) { - OptionInfoRec options[nZZZOptions]; - /* Fill in the monitor field */ pScrn->monitor = pScrn->confScreen->monitor; @@ -6801,10 +6834,14 @@ /* * Process the options based on the information in ZZZOptions. - * The results are written to options. + * The results are written to pZzz->Options. If all of the options + * processing is done within this function a local variable "options" + * can be used instead of pZzz->Options. */ - (void)memcpy(options, ZZZOptions, sizeof(ZZZOptions)); - xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, options); + if (!(pZzz->Options = xalloc(sizeof(ZZZOptions)))) + return FALSE; + (void)memcpy(pZzz->Options, ZZZOptions, sizeof(ZZZOptions)); + xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, pZzz->Options); /* * Set various fields of ScrnInfoRec and/or ZZZRec based on @@ -6812,25 +6849,25 @@ */ from = X_DEFAULT; pZzz->hwCursor = FALSE; - if (xf86IsOptionSet(options, OPTION_HW_CURSOR)) { + if (xf86IsOptionSet(pZzz->Options, OPTION_HW_CURSOR)) { from = X_CONFIG; pZzz->hwCursor = TRUE; } xf86DrvMsg(pScrn->scrnIndex, from, "Using %s cursor\n", pZzz->hwCursor ? "HW" : "SW"); - if (xf86IsOptionSet(options, OPTION_NOACCEL)) { + if (xf86IsOptionSet(pZzz->Options, OPTION_NOACCEL)) { pZzz->noAccel = TRUE; xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Acceleration disabled\n"); } else { pZzz->noAccel = FALSE; } - if (xf86IsOptionSet(options, OPTION_PCI_RETRY)) { + if (xf86IsOptionSet(pZzz->Options, OPTION_PCI_RETRY)) { pZzz->UsePCIRetry = TRUE; xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "PCI retry enabled\n"); } pZzz->fooHack = 0; - if (xf86GetOptValInteger(options, OPTION_FOO_HACK, + if (xf86GetOptValInteger(pZzz->Options, OPTION_FOO_HACK, &pZzz->fooHack)) { xf86DrvMsg(pScrn->scrnIndex, X_CONFIG, "Foo Hack set to %d\n", pZzz->fooHack); Index: xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml:1.15 xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml:1.24 --- xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml:1.15 Tue Dec 12 13:54:29 2000 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml Fri May 18 20:42:22 2001 @@ -3,19 +3,17 @@ ]> <!-- Created: Mon Feb 28 13:00:00 2000 by brianp@valinux.com --> -<!-- Revised: Fri May 19 09:41:48 2000 by martin@valinux.com --> -<!-- Revised: Tue Aug 22 14:00:00 2000 by brianp@valinux.com --> +<!-- Revised: Sat Jan 6 09:44:18 2001 by martin@valinux.com --> <article> + <title>DRI User Guide + <author> + <htmlurl url="http://www.valinux.com/" + name="VA Linux Systems, Inc."> Professional Services - Graphics. + <date>3 May 2001 - <title>DRI User Guide - <author> - <htmlurl url="http://www.valinux.com/" - name="VA Linux Systems, Inc."> Professional Services - Graphics. - <date>20 November 2000 - <ident> - $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml,v 1.15 2000/12/12 18:54:29 dawes Exp $ + $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRI.sgml,v 1.24 2001/05/19 00:42:22 dawes Exp $ </ident> <toc> @@ -24,7 +22,7 @@ <p> <sect1>Copyright <p> - <bf>Copyright © 2000 by VA Linux Systems, Inc. + <bf>Copyright © 2000-2001 by VA Linux Systems, Inc. All Rights Reserved.</bf> <p> <bf>Permission is granted to make and distribute verbatim copies @@ -45,7 +43,8 @@ 3dfx, Voodoo3, Voodoo4, and Voodoo5 are registered trademarks of 3dfx Interactive, Incorporated. Matrox is a registered trademark of Matrox Electronic Systems Ltd. - ATI Rage is a registered trademark of ATI Technologies, Inc. + ATI Rage and Radeon are registered trademarks of ATI Technologies, + Inc. All other trademarks mentioned are the property of their respective owners. @@ -75,57 +74,40 @@ to brianp@valinux.com. <sect>Supported Architectures & Hardware - <p> - <sect1>Architectures - <p> - The Architectures currently supported by the DRI have grown - from the initial Intel i386 based machines to now include, - the Alpha Processor and the Sun SPARC machines. - - The build environment for both of these new architectures - have a pre-build environment that will correctly build the - DRI drivers and Mesa meaning no extra configuration is necessary - to build the DRI for these architectures. - - <sect2>Alpha Features - <p> - On newer Alpha processors, it should be noted that a - significant performance increase can be seen with the - addition of the -mcpu= command that should be passed to - GCC upon compilation. Dependent of the architecture of the - processor, for example -mcpu=ev6 will build specifically - for the EV6 based AXP's, giving both byte and word alignment - access to the DRI/Mesa drivers. - - Use this as an example of compiling with this extra speed. - In your host.def file that should reside in the xc/config - directory, add the line. - - #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 - - Additional speed improvements to 3D rendering can be achieved - by installing Compaq's Math Libraries (CPML) which can be - obtained from the following URL. - - http://www.support.compaq.com/alpha-tools/software/index.html - - Once installed, you can set this option in your host.def - to build against the CPML libraries. - - #define UseCompaqMathLibrary YES +<p> + <sect1>CPU Architectures +<p> + The architectures currently supported by the DRI have grown + from the initial Intel i386 systems to now include the Alpha + Processor and the Sun SPARC machines. + + Intel's SSE (a.k.a. Katmai) instructions are used in optimized + vertex transformation functions in Mesa-based drivers. + This requires a recent Linux kernel both at compile and runtime. + See the DRI Compile Guide for compile-time requirements. + At runtime a check is made to determine if the CPU can execute + SSE instructions. They're disabled otherwise. + + AMD's 3DNow! instructions are also used in optimized vertex + transformation functions in the Mesa-based DRI drivers. + 3DNow! is supported in most versions of Linux. + Like the SSE optimizations, a runtime check is made to determine + if the CPU can execute 3DNow! instructions. + + Alpha-based systems can use Compaq's optimized math library for + improved 3D performance. See the DRI Compilation Guide for + details. <sect1> Graphics Hardware - <p> +<p> XFree86 4.0 (or later versions) includes 3D acceleration for the following graphics hardware: - NOTE: This is a complete list of graphics hardware supported. It - may not be supported on your platform. - <itemize> - <item>3dfx: + <item>3dfx, supported on Intel x86, AMD and Alpha: <itemize> <item>Voodoo5 5500 + <item>Voodoo4 4500 <item>Voodoo3 3500 TV <item>Voodoo3 3000 AGP <item>Voodoo3 3000 PCI @@ -136,34 +118,46 @@ </itemize> There are many configurations of 3dfx cards on the market. Not all have been tested. - <item>Matrox: + <item>Matrox, supported on Intel x86 and AMD: <itemize> <item>Matrox G200 <item>Matrox G400 </itemize> - <item>Intel i810 + <item>Intel i810 (motherboard chipset) <itemize> <item>i810 <item>i810-dc100 <item>i810e + </itemize> + <item>ATI Rage 128, supported on Intel x86 and AMD: + <itemize> + <item>Rage Fury + <item>Rage Magnum + <item>XPERT 2000 + <item>XPERT 128 + <item>XPERT 99 + <item>All-in-Wonder 128 + </itemize> + Note that both PCI and AGP versions of Rage 128 based cards + are supported at this time. + <item>ATI Radeon, supported on Intel x86 and AMD: + <itemize> + <item>Radeon SDR AGP + <item>Radeon DDR AGP </itemize> - <item>ATI Rage 128 + <item>3Dlabs, supported on Intel x86 and AMD: <itemize> - <item>Rage Fury AGP - <item>Rage Magnum AGP - <item>XPERT 2000 AGP - <item>XPERT 128 AGP - <item>XPERT 99 AGP - <item>All-in-Wonder 128 AGP + <item>Oxygen GMX 2000 (MX/Gamma based). + Note: this driver is no longer being actively developed. </itemize> - The PCI versions of these cards also have minimal support. - Note that there are also Rage 128 Pro based boards on the - market, and these are not yet supported. - <item>3Dlabs Oxygen GMX 2000 (MX/Gamma based) </itemize> <p> Support for other hardware is underway. + Most of the DRI development work is funded by contracts with IHVs. + These contracts often prevent us from announcing drivers before + they're released. + Queries about upcoming drivers may not be answerable. <p> @@ -181,7 +175,7 @@ <sect>Kernel Modules - <p> +<p> 3D hardware acceleration requires a DRI kernel module that's specific to your graphics hardware. <P> @@ -210,7 +204,7 @@ exists. <sect>XF86Config file - <p> +<p> The XFree86 configuration file is usually found in <tt>/etc/X11/XF86Config</tt>. This section describes the parts which must be specially set for @@ -230,9 +224,13 @@ Next, the DRI section can be used to restrict access to direct rendering. + A client can only use direct rendering if it has permission to + open the <tt>/dev/dri/card?</tt> file(s). + The permissions on these DRI device files is controlled by the "DRI" + section in the XF86Config file. <p> If you want all of the users on your system to be able to use - direct-rendering, then use a simple DRI section: + direct-rendering, then use a simple DRI section like this: <verb> Section "DRI" Mode 0666 @@ -385,17 +383,17 @@ Among the output you should see something like this: <p> <verb> - OpenGL vendor string: Precision Insight, Inc. + OpenGL vendor string: VA Linux Systems, Inc. OpenGL renderer string: Mesa DRI Voodoo3 20000224 - OpenGL version string: 1.2 Mesa 3.3 beta + OpenGL version string: 1.2 Mesa 3.4 </verb> <p> or this: <p> <verb> - OpenGL vendor string: Precision Insight, Inc. + OpenGL vendor string: VA Linux Systems, Inc. OpenGL renderer string: Mesa GLX Indirect - OpenGL version string: 1.2 Mesa 3.3 beta + OpenGL version string: 1.2 Mesa 3.4 </verb> <p> The first example indicates that the 3dfx driver is using @@ -455,9 +453,71 @@ <sect>General Trouble Shooting <p> This section contains information to help you diagnose general - problems. - See below for additional information for specific hardware. + problems. + See below for additional information for specific hardware. + + <sect1>Bus Mastering +<p> + DMA-based DRI drivers (that's most DRI drivers) cannot function + unless bus mastering is enabled for your graphics card. + By default, some systems don't having bus mastering on. + You should enable it in your BIOS. + <p> + Alternately, you can check the status of bus mastering and change + the setting from within Linux. There may be similar procedures for + other operating systems. + <p> + Run <tt>lspci</tt> (as root) and find the information + describing your graphics adapter. For example: + <P> + <verb> + 00:00.0 Host bridge: Intel Corporation 440BX/ZX - 82443BX/ZX Host bridge (rev 03) + 00:01.0 PCI bridge: Intel Corporation 440BX/ZX - 82443BX/ZX AGP bridge (rev 03) + 00:07.0 ISA bridge: Intel Corporation 82371AB PIIX4 ISA (rev 02) + 00:07.1 IDE interface: Intel Corporation 82371AB PIIX4 IDE (rev 01) + 00:07.2 USB Controller: Intel Corporation 82371AB PIIX4 USB (rev 01) + 00:07.3 Bridge: Intel Corporation 82371AB PIIX4 ACPI (rev 02) + 00:11.0 Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100] (rev 08) + 00:12.0 SCSI storage controller: Symbios Logic Inc. (formerly NCR) 53c895 (rev 02) + 00:14.0 Multimedia audio controller: Ensoniq ES1371 [AudioPCI-97] (rev 08) + 01:00.0 VGA compatible controller: 3Dfx Interactive, Inc.: Unknown device 0009 (rev 01) + </verb> + <p> + The bus, device, and function number comprise the device id, + which is conventionally written in the form bus:dev.func, or + in this case 01:00.0. + <p> + Use the <tt>setpci</tt> command to examine bit two of register 4 for + your graphics card. This will indicate whether or not bus mastering + is enabled. + <p> + <verb> + setpci -s 01:00.0 4.w + </verb> + <p> + A hexadecimal value will be printed. Convert the least significant + digit to binary. For example, if you see 3, that's 0011 in binary + (bit two is 0). If you see 7, that's 0111 in binary (bit two is 1). + In the first example, bus mastering is disabled. It's enabled in + the second example. + <p> + The following shell script will enabled bus mastering for your + graphics card and host bridge. Run it as root. + <verb> + #!/bin/bash + dev=01:00.0 # change as appropriate + echo Enabling bus mastering on device $dev + setpci -s $dev 4.w=$(printf %x $((0x$(setpci -s $dev 4.w)|4))) + dev=00:00.0 + echo Enabling bus mastering on host bridge $dev + setpci -s $dev 4.w=$(printf %x $((0x$(setpci -s $dev 4.w)|4))) + </verb> + <p> + You can check if this worked by running the first setpci command again. + <p> + + <sect1>The X Server <p> <enum> @@ -615,26 +675,39 @@ This section presents hardware-specific information for normal use and troubleshooting. - <sect1>3dfx Voodoo3 Series + <sect1>3dfx Banshee, Voodoo3, Voodoo4 and Voodoo5 Series <p> - <sect2>Dependencies + <sect2>Requirements <p> - The Voodoo3 DRI driver requires a special versions of - the 3dfx Glide library. - It can be downloaded from the DRI website. + The 3dfx DRI driver requires special versions of the 3dfx Glide + library. + Different versions of Glide are needed for Banshee/Voodoo3 than + for Voodoo4/5. + The Glide libraries can be downloaded from the DRI website. <p> <sect2>Configuration <p> Your XF86Config file's device section must specify the - <tt>tdfx</tt> device: + <tt>tdfx</tt> device. For example: <verb> Section "Device" Identifier "Voodoo3" VendorName "3dfx" Driver "tdfx" EndSection + </verb> +<p> + Or, +<p> + <verb> + Section "Device" + Identifier "Voodoo5" + VendorName "3dfx" + Driver "tdfx" + EndSection </verb> - The Screen section should then reference the Voodoo3 device: + + The Screen section should then reference the Voodoo device: <verb> Section "Screen" Identifier "Screen 1" @@ -648,15 +721,46 @@ EndSubsection EndSection </verb> + + Or, +<p> + + <verb> + Section "Screen" + Identifier "Screen 1" + Device "Voodoo5" + Monitor "High Res Monitor" + DefaultDepth 24 + Subsection "Display" + Depth 16 + Modes "1280x1024" "1024x768" "800x600" "640x480" + ViewPort 0 0 + EndSubsection + Subsection "Display" + Depth 24 + Modes "1280x1024" "1024x768" "800x600" "640x480" + ViewPort 0 0 + EndSubsection + EndSection + </verb> + <p> - The kernel module for the Voodoo3 is named <tt>tdfx.o</tt> and + The kernel module for 3dfx hardware is named <tt>tdfx.o</tt> and should be installed in /lib/modules/2.4.x/kernel/driver/char/drm/. It will be automatically loaded by the Xserver if needed. <p> - The DRI 3D driver for the Voodoo3 should be in + The DRI 3D driver for 3dfx hardware should be in <tt>/usr/X11R6/lib/modules/dri/tdfx_dri.so</tt>. This will be automatically loaded by libGL.so. <p> + The Voodoo5 supports 3D rendering in 16 and 32 bpp modes. + When running in 32bpp mode an 8-bit stencil buffer and 24-bit + Z (depth) buffer are offered. + When running in 16bpp mode only a 16-bit Z (depth) buffer is + offered and stencil is implemented in software. + <p> + A software-based accumulation buffer is available in both + 16 and 32bpp modes. <sect2>Troubleshooting <p> @@ -670,27 +774,41 @@ it means that you have the wrong version of the Glide library for your hardware. <item> - 3D acceleration for Voodoo3 is only supported in the 16 - bit/pixel screen mode. + 3D acceleration for Banshee and 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. - <item> + <item> The <tt>/dev/3dfx</tt> device is not used for DRI; it's only for Glide on older 3dfx hardware. + <item> + Different versions of Glide are needed for Voodoo3 and Voodoo5. + See the DRI website's resources page to download the right + version of Glide. + <item> + Voodoo4/5 may be run at 24bpp (instead of 32bpp, the default) + but 3D acceleration is not supported in that mode. + 32bpp mode is fully 3D accelerated. </itemize> - <sect2>Performance + <sect2>Performance and Features <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/ + This may be overridden by setting the <tt/FX_GLIDE_SWAPINTERVAL/ environment variable. The value of this variable indicates the maximum number of swap buffer commands can be buffered. Zero allows maximum frame rate. <item> + On Voodoo4/5, rendering with 16-bits/texel textures is faster + than using 32-bit per texel textures. + The <tt/internalFormat/ parameter to <tt/glTexImage2D/ can be + used to control texel size. + Quake3 and other games let you control this as well. + <item> The <tt/glTexEnv/ mode <tt/GL_BLEND/ is not directly supported by the Voodoo3 hardware. It can be accomplished with a multipass algorithm but it's not @@ -734,110 +852,7 @@ <item> Using <tt/glColorMask(r, g, b, a)/ when r!=g or g!=b. </itemize> - </itemize> - - <sect2>Known Problems -<p> - <itemize> - <item> - The Glide library cannot be used directly; it's only meant to - be used via the tdfx DRI driver. - <item> - SSystem has problems because of poorly set near and far - clipping planes. - The office.unc Performer model also suffers from this problem. - <item> - The lowest mipmap level is sometimes miscolored in trilinear- - sampled polygons. - </itemize> - - - <sect1>3dfx Voodoo5 Series -<p> - <sect2>Dependencies -<p> - The Voodoo5 DRI driver requires a special versions of - the 3dfx Glide library, different than that used for Voodoo3 - hardware. - It can be downloaded from the DRI website. -<p> - <sect2>Configuration -<p> - Your XF86Config file's device section must specify the - <tt>tdfx</tt> device: - <verb> - Section "Device" - Identifier "Voodoo5" - VendorName "3dfx" - Driver "tdfx" - EndSection - </verb> - The Screen section should then reference the Voodoo3 device: - <verb> - Section "Screen" - Identifier "Screen 1" - Device "Voodoo5" - Monitor "High Res Monitor" - DefaultDepth 24 - Subsection "Display" - Depth 16 - Modes "1280x1024" "1024x768" "800x600" "640x480" - ViewPort 0 0 - EndSubsection - Subsection "Display" - Depth 24 - Modes "1280x1024" "1024x768" "800x600" "640x480" - ViewPort 0 0 - EndSubsection - EndSection - </verb> - <p> - The kernel module for the Voodoo5 is named <tt>tdfx.o</tt> and - should be installed in /lib/modules/2.4.x/kernel/driver/char/drm/. - It will be automatically loaded by the Xserver if needed. - <p> - The DRI 3D driver for the Voodoo5 should be in - <tt>/usr/X11R6/lib/modules/dri/tdfx_dri.so</tt>. - This will be automatically loaded by libGL.so. - <p> - The Voodoo5 supports 3D rendering in 16 and 32 bpp modes. - When running in 32bpp mode an 8-bit stencil buffer and 24-bit - Z (depth) buffer are offered. - When running in 16bpp mode only a 16-bit Z (depth) buffer is - offered and stencil is implemented in software. - <p> - A software-based accumulation buffer is available in both - 16 and 32bpp modes. - <p> - - <sect2>Troubleshooting -<p> - <itemize> - <item> - The <tt>/dev/3dfx</tt> device is not used for DRI; it's only for - Glide on older 3dfx hardware. - <item> - Different versions of Glide are needed for Voodoo3 and Voodoo5. - See the DRI website's resources page to download the right - version of Glide. - </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> - Rendering with 16-bit per texel textures is faster than using - 32-bit per texel textures. The <tt/internalFormat/ parameter - to <tt/glTexImage2D/ can be used to control texel size. - <item> The Voodoo5 driver reverts to software rendering under the same conditions Voodoo3 with three exceptions. First, stencil operations are implemented in hardware when the @@ -846,38 +861,54 @@ hardware. Third, <tt/glColorMask/ is fully supported in hardware when the screen is configured for 32 bits/pixel. + <item> + As of January, 2001 the second VSA-100 chip on the Voodoo5 is + not yet operational. + Therefore, the board isn't being used to its full capacity. + The second VSA-100 chip will allow Scan-Line Interleave (SLI) + mode for full-screen applications and games, potentially doubling + the system's fill rate. + When the second VSA-100 chip is activated + glGetString(GL_RENDERER) will report Voodoo5 instead of Voodoo4. + <item> + The lowest mipmap level is sometimes miscolored in trilinear- + sampled polygons. + <item> + The GL_EXT_texture_env_combine extension is supported on the + Voodoo4 and Voodoo5. </itemize> + <sect2>Known Problems <p> <itemize> <item> + The lowest mipmap level is sometimes miscolored in trilinear- + sampled polygons (Voodoo3/Banshee). + <item> + Fog doesn't work with orthographic projections. + <item> + The accuracy of blending operations on Voodoo4/5 isn't always + very good. + If you run Glean, you'll find some test failures. + <item> The Glide library cannot be used directly; it's only meant to be used via the tdfx DRI driver. - <item> - 24bpp screen modes are supported by the hardware but not by - the current driver. 32bpp is fully supported. <item> - As of October, 2000 the second VSA-100 chip on the Voodoo5 is - not yet operational. - Therefore, the board isn't being used to its full capacity. - The second VSA-100 chip will allow Scan-Line Interleave (SLI) - mode for full-screen applications and games, potentially doubling - the system's fill rate. + 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> - <sect2>Dependencies - <p> - A Linux kernel with AGP GART support is required. - The 2.2.x kernel series does not have AGP GART support. - The 2.4.x test kernels have AGP GART and have been tested - with the i810. - <p> +<p> + <sect2>Requirements +<p> + A kernel with AGP GART support (such as Linux 2.4.x) is needed. +<p> <sect2>Configuration - <p> +<p> Your XF86Config file's device section must specify the <tt>i810</tt> device, and specify a usable amount of video ram to reserve. @@ -886,6 +917,7 @@ Identifier "i810" VendorName "Intel" Driver "i810" + Option "AGPMode" "1" VideoRam 10000 EndSection </verb> @@ -933,17 +965,31 @@ rendering will be disabled. </itemize> + <sect2>Performance and Features <p> + Basically all of the i810 features which can be exposed through + OpenGL 1.2 are implemented. + However, the following OpenGL features are implemented in software + and will be slow: + <itemize> + <item>Stencil buffer and accumulation buffer operations + <item>Blend subtract, min/max and logic op blend modes + <item>glColorMask when any mask is set to false + <item>GL_SEPARATE_SPECULAR_COLOR lighting mode + <item>glDrawBuffer(GL_FRONT_AND_BACK) + <item>Using 1D or 3D textures + <item>Using texture borders + </itemize> +<p> <sect1>Matrox G200 and G400 - <p> - <sect2>Dependencies - <p> - A Linux kernel with AGP GART support (such as the 2.4.x test - kernels) is needed. - <p> +<p> + <sect2>Requirements +<p> + A kernel with AGP GART support (such as Linux 2.4.x) is needed. +<p> <sect2>Configuration - <p> +<p> Your XF86Config file's device section must specify the <tt>mga</tt> device: <verb> @@ -951,6 +997,7 @@ Identifier "MGA" VendorName "Matrox" Driver "mga" + Option "AGPMode" "1" VideoRam 32768 EndSection </verb> @@ -994,7 +1041,7 @@ <tt>/usr/X11R6/lib/modules/dri/mga_dri.so</tt>. This will be automatically loaded by libGL.so. - <sect2>Performance + <sect2>Performance and Features <p> Software rendering will be used under any of the following conditions: @@ -1004,8 +1051,38 @@ <item>Using glLogicOp. <item>Using glPolygonStipple or glLineStipple. <item>Using 1D or 3D textures. + <item>Using texture borders. + <item>Using glDepthFunc(GL_NEVER). <item>Using the accumulation buffer. </itemize> +<p> + The AGP mode may be set to 1, 2, or 4. One is used by default. + Higher AGP speeds may result in unreliable performance depending + on your motherboard. + +<p> + Compaq has funded the implementation of AGP accelerated + ReadPixels and DrawPixels in this driver. With this + implementation, on a G400 drawing directly from AGP memory + (exported to the client), throughput of up to 1 GB/sec has + been measured. + +<p> + Additionally Compaq's funding has produced several new + extensions in Mesa, including one (packed_depth_stencil_MESA) + which enables Read/DrawPixels functionality to operate + directly on the packed 24/8 depth/stencil buffers of this + hardware. + +<p> + In order to access this functionality, the application must + ensure that all pixel processing operations are disabled. + There are in addition a fairly complex set of rules regarding + which packing/unpacking modes must be used, and which data + formats are supported, and alignment constraints. See the + files in lib/GL/mesa/src/drv/mga/DOCS for a summary of these. + The extension definitions are included in the Mesa 3.4 source + distribution. <sect2>IRQ Assignment @@ -1061,21 +1138,22 @@ <sect1>ATI Rage 128 - <p> - <sect2>Dependencies - <p> - A Linux kernel with AGP GART support (such as the 2.4.x test - kernels) is needed. - <p> +<p> + <sect2>Requirements +<p> + A kernel with AGP GART support (such as Linux 2.4.x) is needed. +<p> <sect2>Configuration - <p> +<p> Your XF86Config file's device section must specify the - <tt>r128</tt> device: + <tt>ati</tt> device: <verb> Section "Device" Identifier "Rage128" VendorName "ATI" - Driver "r128" + Driver "ati" + Option "AGPMode" "1" + Option "UseCCEFor2D" "false" EndSection </verb> The Screen section should then reference the Rage 128 device: @@ -1109,17 +1187,129 @@ You may also set your screen depth to 32 for 32bpp mode. <p> - <sect2>Performance + <sect2>Performance and Features <p> While PCI Rage 128 based cards are supported, they do not yet support PCI GART, so they will not perform as well as their AGP counterparts. - +<p> + For AGP cards, the AGP mode may be set to 1, 2, or 4. One is + used by default. + Higher AGP speeds may result in unreliable performance depending + on your motherboard. +<p> + Note that even at 32bpp there is no alpha channel. +<p> + The following OpenGL features are implemented in software and + will be slow: + <itemize> + <item>Stencil buffer and accumulation buffer operations + <item>Blend subtract, min/max and logic op blend modes + <item>GL_SEPARATE_SPECULAR_COLOR lighting mode + <item>glDrawBuffer(GL_FRONT_AND_BACK) + <item>Using 1D or 3D textures + <item>Using texture borders + </itemize> +<p> <sect2>Known Problems <p> - DGA is not yet supported in the ATI Rage 128 X server. This - feature will be added in a future release. + If you experience stability problems you may try setting the + <tt>UseCCEFor2D</tt> option to <tt>true</tt>. This will + effectively disable 2D hardware acceleration. Performance will + be degraded, of course. +<p> + + <sect1>ATI Radeon +<p> + <sect2>Requirements +<p> + A kernel with AGP GART support (such as Linux 2.4.x) is needed. +<p> + <sect2>Configuration +<p> + Your XF86Config file's device section must specify the + <tt>ati</tt> device: + <verb> + Section "Device" + Identifier "Radeon" + VendorName "ATI" + Driver "ati" + Option "AGPMode" "1" + EndSection + </verb> + The Screen section should then reference the Radeon device: + <verb> + Section "Screen" + Identifier "Screen 1" + Device "Radeon" + Monitor "High Res Monitor" + DefaultDepth 16 + Subsection "Display" + Depth 16 + Modes "1280x1024" "1024x768" "800x600" "640x480" + ViewPort 0 0 + EndSubsection + Subsection "Display" + Depth 32 + Modes "1280x1024" "1024x768" "800x600" "640x480" + ViewPort 0 0 + EndSubsection + EndSection + </verb> + <p> + The kernel module for the Radeon is named <tt>radeon.o</tt> and + should be installed in /lib/modules/2.4.x/kernel/driver/char/drm/. + It will be automatically loaded by the Xserver if needed. + <p> + The DRI 3D driver for the Radeon should be in + <tt>/usr/X11R6/lib/modules/dri/radeon_dri.so</tt>. + This will be automatically loaded by libGL.so. + <p> + You may also set your screen depth to 32 for 32bpp mode. + <p> + + <sect2>Performance and Features +<p> + While this driver supports many of the features of ATI Radeon + cards, we do not <em/yet/ fully support the card's TCL + features. This work is progressing, but is not yet ready. +<p> + The AGP mode may be set to 1, 2, or 4. One is used by default. + Higher AGP speeds may result in unreliable performance depending + on your motherboard. +<p> + The following OpenGL features are implemented in software and will + be slow: + <itemize> + <item>Blend subtract, blend min/max and blend logicops + <item>Stencil and accumulation operations + <item>1D and 3D textures + <item>Texture borders + </itemize> +<p> + The GL_EXT_texture_env_combine, GL_EXT_texture_env_add and + GL_EXT_texture_env_dot3 extensions are supported (or will be + soon supported in the new driver based on Mesa 3.5). +<p> + We hope to implement support for the following features in the + future: + <itemize> + <item>Vertex transformation, clipping and lighting (TCL) + <item>Hardware stencil buffer + <item>Cube map textures + <item>3D textures + <item>Three texture units + </itemize> +<p> + <sect2>Known Problems +<p> + Certain (early?) revisions of the AMD Irongate chipset have + AGPGART problems which effect Radeon, and other graphics cards. + The card may work unreliably, or not work at all. If the DRM + kernel module is not loaded, the 2D Xserver may work. There's + hope that this can be fixed in the future. +<p> <sect1>3DLabs Oxygen GMX 2000 <p> @@ -1135,7 +1325,7 @@ overlays, stereo, hardware-accelerated indirect rendering. <p> OpenGL-like functionality is provided with the Mesa library. - XFree86 4.0.1 uses Mesa 3.3. + XFree86 4.1.0 uses Mesa 3.4.2. Subsequent releases of XFree86 will use newer versions of Mesa. When newer versions of Mesa are available, the 3D drivers can be updated without reinstalling XFree86 or libGL.so. @@ -1230,8 +1420,8 @@ <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"> + <htmlurl url="http://dri.sourceforge.net/res.phtml" + name="http://dri.sourceforge.net/res.phtml"> <sect1>Documentation <p> @@ -1246,7 +1436,8 @@ <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. - <item>The <htmlurl url="http://dri.sourceforge.net/DRIcompile.html" + <item>The <htmlurl + url="http://dri.sourceforge.net/doc/DRIcompile.html" name="DRI Compilation Guide"> explains how to download, compile and install the DRI for yourself. </itemize> Index: xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml:1.9 xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml:1.14 --- xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml:1.9 Tue Dec 12 12:48:10 2000 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml Wed May 2 11:06:08 2001 @@ -3,19 +3,17 @@ ]> <!-- Created: Sun Mar 12 13:00:00 2000 by brianp@valinux.com --> -<!-- Revised: Fri May 19 09:36:02 2000 by martin@valinux.com --> -<!-- Revised: Sat Aug 19 14:00:00 2000 by brianp@valinux.com --> +<!-- Revised: Sat Jan 6 10:15:22 2001 by martin@valinux.com --> <article> + <title>DRI Compilation Guide + <author> + <htmlurl url="http://www.valinux.com/" + name="VA Linux Systems, Inc."> Professional Services - Graphics. + <date>21 April 2001 - <title>DRI Compilation Guide - <author> - <htmlurl url="http://www.valinux.com/" - name="VA Linux Systems, Inc."> Professional Services - Graphics. - <date>29 October 2000 - <ident> - $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml,v 1.9 2000/12/12 17:48:10 alanh Exp $ + $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/DRIcomp.sgml,v 1.14 2001/05/02 15:06:08 dawes Exp $ </ident> <toc> @@ -24,7 +22,7 @@ <sect1>Copyright <p> - <bf>Copyright © 2000 by VA Linux Systems, Inc. + <bf>Copyright © 2000-2001 by VA Linux Systems, Inc. All Rights Reserved.</bf> <p> <bf>Permission is granted to make and distribute verbatim copies @@ -45,7 +43,8 @@ 3dfx, Voodoo3, Voodoo4, and Voodoo5 are registered trademarks of 3dfx Interactive, Incorporated. Matrox is a registered trademark of Matrox Electronic Systems Ltd. - ATI Rage is a registered trademark of ATI Technologies, Inc. + ATI Rage and Radeon is a registered trademark of ATI Technologies, + Inc. All other trademarks mentioned are the property of their respective owners. @@ -54,6 +53,8 @@ This document describes how to download, compile and install the DRI project. + The DRI provides 3D graphics hardware acceleration for the XFree86 + project. This information is intended for experienced Linux developers. Beginners are probably better off installing precompiled packages. <p> @@ -65,10 +66,9 @@ You'll need the following: <itemize> - <item>At least 400MB of free disk space. More is needed if you want - to build with debugging information or keep several build trees. - <item>A fast system. Using a PIII-550 it takes about 1/2 hour to - build everything. + <item>At least 200MB of free disk space. + If you compile for debugging (the -g option) then you'll need + about 600MB. <item>GCC compiler and related tools. <item>ssh (secure shell) for registered developer downloading of the DRI source tree @@ -78,9 +78,14 @@ </itemize> <p> + The DRI 3D drivers generally work on systems with Intel or AMD CPUs. + However, there is limited support for Alpha and PowerPC support is + underway. + + <p> For 3dfx Voodoo3 hardware, you'll also need: <itemize> - <item>Glide3x headers and runtime library if you want to use the + <item>Glide3 headers and runtime library if you want to use the 3dfx driver. These can be obtained from <htmlurl url="http://linux.3dfx.com/open_source/glide_kit.htm" @@ -101,7 +106,7 @@ </itemize> <p> - For ATI Rage hardware, you'll also need: + For ATI Rage 128 and Radeon hardware, you'll also need: <itemize> <item>A recent Linux 2.4.x kernel with AGP support. </itemize> @@ -109,15 +114,20 @@ <sect>Linux Kernel Preparation <p> - The DRI project closely tracks Linux kernel development. - Since the internal Linux data structures change frequently in - the 2.4 development branch it's important to have use the most - recent Linux kernel. - As of this writing (Nov 2000), 2.4.0-test11-pre5 is the most - recent version of Linux which the DRI is synchronized to. + The DRI project closely tracks Linux kernel development. Since + the internal Linux data structures might change in the 2.4 Linux + kernel, it's important to use the most recent Linux kernel and + not an old, intermediate development release. + As of this writing (Jan 2001), 2.4.0 is the most recent version + of Linux which the DRI is synchronized to. <p> Most of the DRI drivers require AGP support and using Intel - Pentium III SSE optimizations also requires an up-to-date Linux kernel. + Pentium III SSE optimizations also requires an up-to-date Linux + kernel. Configuring your kernel correctly is very important, as + features such as SSE optimizations will be disabled if your + kernel does not support them. Thus, if you have a Pentium III + processor, you must configure your kernel for the Pentium III + processor family. <p> Building a new Linux kernel can be difficult for beginners but there are resources on the Internet to help. @@ -140,7 +150,18 @@ ln -s linux-2.4.x linux bzcat linux-2.4.x.tar.bz2 | tar xf - </verb> - <item>Configure your kernel. + It is critical that /usr/src/linux point to your new kernel + sources, otherwise the kernel headers <bf>will not</bf> be + used when building the DRI. This will almost certainly cause + compilation problems. + <item>Read /usr/src/linux/Documentation/Changes. + This file lists the minimum requirements for all software + packages required to build the kernel. You must upgrade at + least gcc, make, binutils and modutils to at least the + versions specified in this file. The other packages may not + be needed. If you are upgrading from Linux 2.2.x you must + upgrade your modutils package for Linux 2.4.x. + <item>Configure your kernel. You might, for example, use <tt>make menuconfig</tt> and do the following: @@ -149,9 +170,13 @@ <item>Enable <em>Prompt for development and/or incomplete code/drivers</em> <item>hit ESC to return to the top-level menu + <item>Go to <em>Processor type and features</em> + <item>Select your processor type from <em>Processor Family</em> + <item>hit ESC to return to the top-level menu <item>Go to <em>Character devices</em> <item>Disable <em>Direct Rendering Manager (XFree86 DRI support)</em> - since we'll use the DRI module from the XFree86/DRI tree. + since we'll use the DRI code from the XFree86/DRI tree and will + compile it there. <item>Go to <em>/dev/agpgart (AGP Support) (EXPERIMENTAL) (NEW)</em> <item>Hit SPACE twice to build AGP support into the kernel <item>Enable all chipsets' support for AGP @@ -183,12 +208,61 @@ make install </verb> Note that last make command will automatically run lilo for you. - <item>Upgrade your modutils package for Linux 2.4.x if you're - upgrading from Linux 2.2.x. <item>Now reboot to use the new kernel. </itemize> + <sect>CPU Architectures <p> + + In general, nothing special has to be done to use the DRI on + different CPU architectures. There are, however, a few + optimizations that are CPU-dependent. Mesa will determine at + runtime which CPU-dependent optimizations should be used and + enable them where appropriate. + + <sect1>Intel Pentium III Features <p> + + The Pentium III SSE (Katmai) instructions are used in + optimized vertex transformation functions in the Mesa-based + DRI drivers. + On Linux, SSE requires a recent kernel (such as 2.4.0-test11 + or later) both at compile time and runtime. + + <sect1>AMD 3DNow! Features <p> + + AMD's 3DNow! instructions are used in optimized vertex + transformation functions in the Mesa-based DRI drivers. + 3DNow! is supported in most versions of Linux. + + <sect1>Alpha Features <p> + + On newer Alpha processors a significant performance increase + can be seen with the addition of the -mcpu= option to GCC. + This option is dependent on the architecture of the processor. + For example, -mcpu=ev6 will build specifically for the EV6 based + AXP's, giving both byte and word alignment access to the + DRI/Mesa drivers. + + To enable this optimization edit your xc/config/host.def file + and add the line: + + #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 + + Additional speed improvements to 3D rendering can be achieved + by installing Compaq's Math Libraries (CPML) which can be + obtained from + <htmlurl url="http://www.support.compaq.com/alpha-tools/software/index.html" + name="http://www.support.compaq.com/alpha-tools/software/index.html"> + + Once installed, you can add this line to your host.def to build + with the CPML libraries: + + #define UseCompaqMathLibrary YES + + The host.def file is explained below. + + + <sect>Downloading the XFree86/DRI CVS Sources <p> The DRI project is hosted by VA Linux Systems' @@ -291,6 +365,7 @@ The DRI developers will upgrade Mesa when appropriate. <p> + <sect>Compiling the XFree86/DRI tree <p> <sect1>Make a build tree <p> @@ -325,7 +400,7 @@ (Alpha) #define DefaultGcc2AxpOpt -O2 -mcpu=ev6 (or similar) #define LibraryCDebugFlags -O2 #define BuildServersOnly YES - #define XF86CardDrivers vga tdfx mga r128 i810 + #define XF86CardDrivers vga tdfx mga ati i810 #define LinuxDistribution LinuxRedHat #define DefaultCCOptions -ansi GccWarningOptions -pipe #define BuildXF86DRI YES @@ -334,6 +409,7 @@ /* #define GlxBuiltInTdfx YES */ /* #define GlxBuiltInMga YES */ /* #define GlxBuiltInR128 YES */ + /* #define GlxBuiltInRadeon YES */ /* #define DoLoadableServer NO */ #define SharedLibFont NO </verb> @@ -351,11 +427,30 @@ <p> If you have 3dfx hardware be sure that the Glide 3x headers are installed in <tt>/usr/include/glide3/</tt> and that the Glide 3x - library is installed at <tt>/usr/lib/libglide3x.so</tt>. + library is installed at <tt>/usr/lib/libglide3.so</tt>. <p> If you do not have 3dfx hardware comment out the <tt>HasGlide3</tt> line in <tt>host.def</tt>. <p> + If you want to enable 3DNow! optimizations in Mesa and the DRI + drivers, you should add the following: + <verb> + #define MesaUse3DNow YES + </verb> + <p> + If you want to enable SSE optimizations in Mesa and the DRI + drivers, you <bf>must</bf> upgrade to a Linux 2.4.x kernel. + Mesa will verify that SSE is supported by both your processor + <em>and</em> your operating system, but to build Mesa inside + the DRI you need to have the Linux 2.4.x kernel headers in + /usr/src/linux. If you enable SSE optimizations with an + earlier version of the Linux kernel in /usr/src/linux, Mesa + <bf>will not compile</bf>. You have been warned. If you do + have a 2.4.x kernel, you should add the following: + <verb> + #define MesaUseKatmai YES + </verb> + <p> <sect1>Compilation <p> @@ -394,6 +489,7 @@ For the 3dfx Voodoo, you should see <em>tdfx.o</em>. For the Matrox G200/G400, you should see <em>mga.o</em>. For the ATI Rage 128, you should see <em>r128.o</em>. + For the ATI Radeon, you should see <em>radeon.o</em>. For the Intel i810, you should see <em>i810.o</em>. <p> If the DRI kernel module(s) failed to build you should verify @@ -408,7 +504,7 @@ <tt>/usr/src/linux-2.4.x</tt>, <verb> cd ~/DRI-CVS/build/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel - make TREE=/usr/src/linux-2.4 + make TREE=/usr/src/linux-2.4.x/include </verb> or alternatively, edit Makefile to include this change. <p> @@ -421,13 +517,16 @@ The DRI kernel modules are in <tt>~/DRI-CVS/build/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/</tt>. <p> - To load the appropriate DRI module in your running kernel you can + To load the appropriate DRM module in your running kernel you can either use ismod and restart your X server or copy the kernel module - to <tt>/lib/modules/2.4.x/kernel/driver/char/drm/</tt> then run + to <tt>/lib/modules/2.4.x/kernel/drivers/char/drm/</tt> then run depmod and restart your X server. <p> Make sure you first unload any older DRI kernel modules that might be already loaded. + <p> + Note that some DRM modules require that the <tt>agpgart</tt> module + be loaded first. <p> <sect>Normal Installation and Configuration <p> Index: xc/programs/Xserver/hw/xfree86/doc/sgml/Darwin.sgml diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/Darwin.sgml:1.4 xc/programs/Xserver/hw/xfree86/doc/sgml/Darwin.sgml:1.4.4.2 --- xc/programs/Xserver/hw/xfree86/doc/sgml/Darwin.sgml:1.4 Tue Dec 12 13:54:29 2000 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/Darwin.sgml Sat Jun 2 00:44:37 2001 @@ -5,10 +5,10 @@ <article> <title>XFree86 on Darwin and Mac OS X <author>Torrey T. Lyons -<date>11 December 2000 +<date>25 May 2001 <ident> -$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Darwin.sgml,v 1.4 2000/12/12 18:54:29 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Darwin.sgml,v 1.4.4.2 2001/06/02 04:44:37 torrey Exp $ </ident> <toc> @@ -19,8 +19,7 @@ implementation of X Windows, has been ported to <htmlurl url="http://www.publicsource.apple.com/projects/darwin/" name="Darwin"> and <htmlurl url="http://www.apple.com/macosx/" name="Mac OS X">. This -document is -a collection of information for anyone +document is a collection of information for anyone experimenting with running X Windows on Apple's next generation operating system. Please send any comments on this page to <email/torrey@mrcla.com/. If you are also @@ -28,23 +27,38 @@ <sect>Hardware Support and Configuration <p> -The Darwin port of XFree86 uses the IOKit for device driver loading -and discovery, rather than the XFree86 module loader. Because of this, -the XFree86 configuration file is not used on Darwin systems. The -descriptions found elsewhere of devices supported by XFree86 for other -operating systems also do not apply. +XFree86 can be run either from the console or side by side with +Mac OS X's Aqua desktop in a full screen mode. In full screen mode +with Aqua, when the X window system is active, it takes over the entire +screen. You can switch back to the Mac OS X desktop by holding down +Command-Option-A. This key combination can be changed in the user +preferences. From the Mac OS X desktop, just click on the XDarwin +icon in the floating switch window to switch back to the X window system. +You can change this behavior in the user preferences so that clicking on +the XDarwin icon in the Dock switches as well. The full screen cooperative +mode with Aqua is known as Quartz mode, named after the Quartz 2D +compositing engine used by Aqua. + +<p> +From the console, the Darwin port of XFree86 uses the IOKit for device +driver loading and discovery, rather than the XFree86 module loader. +Because of this, the XFree86 configuration file is not used on Darwin +or Mac OS X systems. The descriptions found elsewhere of devices +supported by XFree86 for other operating systems also do not apply. +Running XFree86 from the text console is known as IOKit mode. + +<p> +XFree86 for Darwin or Mac OS X will work with any video card that +you have an IOKit driver for. If you are running Mac OS X, this +typically means any card that has been shipped by Apple. If a card works +for you with the Mac OS X GUI, it will work on the same machine with +XFree86. If you have a pure Darwin installation, you may need to download +additional third-party drivers from +<htmlurl url="http://www.publicsource.apple.com/projects/darwin/" +name="Apple's Darwin site">. IOKit drivers are typically installed in +<tt>/System/Library/Extensions/</tt> or <tt>/Library/Extensions/</tt>. <p> -XFree86 for Darwin will work with any video card that you have an -IOKit driver for. If you are running Mac OS X, this typically means -any card that has been shipped by Apple. If a card works for you with -the Mac OS X GUI, it will work on the same machine with XFree86. If -you have a pure Darwin installation, your hardware support may be -somewhat limited because Apple does not include all its hardware -drivers with Darwin. IOKit drivers are typically found in -/System/Library/Extensions/ or /Library/Extensions/. - -<p> Multi-button and scroll wheel mouse support works well with all USB mice that I have tested. I have done no testing with serial mice. @@ -53,42 +67,27 @@ <p> Following are instructions for building and running your own copy of XFree86. The procedure for getting your X server up and running on -Darwin and Mac OS X are very similar, but it is actually somewhat more -difficult on Mac OS X. Where there are differences I have noted them -below. Both Mac OS X Developers' Preview 4 and Mac OS X -Public Beta are covered. Note that to build XFree86 for yourself on -Mac OS X Beta, you will need to have the Developers' Tools. If -you did not receive these as a member of ADC, they are available for -download from the <htmlurl url="http://www.apple.com/developer/" -name="Apple Developer Connection">. +Darwin and Mac OS X are very similar. Where there are differences +I have noted them below. Note that to build XFree86 for yourself on +Mac OS X, you will need to install the Developers' Tools. <p> -If you want to save some time, you can use the precompiled binaries -provided by the XFree86 server at <url +If you don't feel the need to live on the cutting edge, you can save +some time and effort by using the precompiled binaries available on +the XFree86 FTP server at <url url="ftp://ftp.xfree86.org/pub/XFree86/&relvers;/binaries/Darwin/">. Follow the instructions in the <htmlurl url="http://www.xfree86.org/&relvers;/Install.html" name="Install"> -document to install it. - -<p> -This will create two new directory trees, <tt>/usr/X11R6</tt> and -<tt>/private/etc/X11</tt>. If you have the developers' tools, you may -have to run ranlib on all the libraries in <tt>/usr/X11R6/lib/*</tt> -before trying to build other X applications. +document to install it. This will create two new directory trees, +<tt>/usr/X11R6</tt> and <tt>/etc/X11</tt> For Mac OS X Quartz +support, download the optional Xquartz.tgz tarball. <p> If you get the precompiled binaries you can skip ahead to the section -on <ref id="running" name="running X windows"> - -<p> -On the other hand, if you want to build things yourself from scratch, +on <ref id="running" name="running the X window system"> On the other hand, +if you want to build things yourself from scratch, follow the directions below. -<p> -If you want to recompile the X server on Mac OS X, you will have to -make the header files as described <ref id="makeHeaders" -name="below">. - <sect1> Get the Code <p> @@ -96,11 +95,11 @@ XFree86 project. <itemize> -<item> Setup CVS: Both Darwin and Mac OS X include CVS (Concurrent +<item> Setup CVS: Both Darwin and Mac OS X include CVS (Concurrent Versions System), which is an easy way to download and keep up to date with open source code released by XFree86 and others. You do have to setup CVS properly, however, to tell it where to look. Follow the -instructions <htmlurl url="http://www.xfree86.org/cvs/" name="here"> on +<htmlurl url="http://www.xfree86.org/cvs/" name="XFree86 instructions"> on how to do this either via ssh or via the cvs pserver. <item> Now make a directory in some convenient place which will serve @@ -117,24 +116,6 @@ </itemize> -<sect1>Make Header Files for Mac OS X<label id="makeHeaders"> -<p> - -These next steps are not necessary if you are building XFree86 on -Darwin. Mac OS X Beta or DP4 does not include many of the -"in-progress" header files that are needed to successfully -build XFree86. The general philosophy is that at any given time, Mac -OS X will include only headers files that are "ready for prime -time" while Darwin will include a snapshot of Apple's current -efforts. So if you have access to a Darwin system, I would suggest -using this instead of Mac OS X to build XFree86. If you don't, read -the appropriate page below for an outline of what you need to do: - -<itemize> -<item><ref id="headersXBeta" name="Mac OS X Public Beta"> -<item><ref id="headersXDP4" name="Mac OS X Developers' Preview 4"> -</itemize> - <sect1> Build XFree86 <p> Once you have everything ready it is easy to build and install @@ -146,47 +127,43 @@ (wait for several hours) -su root -make install >& install.log -make install.man >& man.log +sudo make install >& install.log +sudo make install.man >& man.log </verb></tscreen> -<sect>Run X Windows<label id="running"> +<sect>Run the X Window System<label id="running"> <p> -You will want to add the X windows executables to your path. Your path +You will want to add the X window executables to your path. Your path is the list of directories to be searched when you type a command. You will also want to add the man pages from XFree86 to the list of pages to be searched when you are looking for documentation. The way to do this depends on the shell you are using. With tcsh or csh add the -following two lines to a file in your home directory called <tt/.cshrc/ -(create this file if you don't have one yet): +following two lines to a file named +<tt>~/Library/init/tcsh/path</tt>: (You may need to create this file and +directory path if it does not exist already.) + <tscreen><verb> -setenv MANPATH "${MANPATH}:/usr/X11R6/man:/usr/local/man" setenv PATH "${PATH}:/usr/X11R6/bin" +setenv MANPATH "${MANPATH}:/usr/X11R6/man" </verb></tscreen> -Now type ``<tt>source ~/.cshrc;rehash</tt>'' to -get these changes to take effect. On future logins, this file will be +The next time you login or open a Terminal window, this file will be executed automatically. <p> -You are now ready to go. On Mac OS X, you have to do a few extra steps -each time you want to run X windows. You can't run XFree86 with -CoreGraphics running since they both want to control the screen. So -for Mac OS X you first need to logout. Then for Mac OS X DP4, from the -login window type ``console'' as the user name and push -login. For Mac OS X Beta, type ``>console'' as the user -name. This should shutdown CoreGraphics and bring you up with a text -console. Login again. - -<p> -Now from the text console you can start X Windows in either Darwin or -Mac OS X by typing ``startx''. After a brief wait at least one terminal -window should pop up for you. So far it probably isn't very impressive -as you might not even have a window manager running to allow you to -move windows around. +You are now ready to go. On Mac OS X, you can run XFree86 from the +text console or in full screen mode with Aqua. To get to the text +console in Mac OS X you need to logout and type ``>console'' as +the user name. This will shutdown Core Graphics and +bring up the console login prompt. Login again as your user. <p> -When you are ready to quit X windows type ``exit'' in the main +From the text console you can start the X Window System by typing ``startx''. +After a brief wait at least one terminal window should pop up for you. +So far it probably isn't very impressive as you might not even have a +window manager running to allow you to move windows around. + +<p> +When you are ready to quit XFree86 type ``exit'' in the main terminal window or quit with the window manager if you have one running. Unfortunately the X server won't shutdown correctly and you will get an apparently frozen screen with only a spinning beachball @@ -194,25 +171,36 @@ your keystrokes are being received by the console. Type ``logout'' to return to normalcy after a brief delay. With Darwin this should put you back at the text console login prompt. With -Mac OS X, CoreGraphics will restart and you should be given a login +Mac OS X, Core Graphics will restart and you should be given a login window. <p> +To start XFree86 in Quartz mode you can launch the XDarwin application +in the <tt>/Applications</tt> folder, or from the command line type +``startx -- -quartz''. When the X window system is active, it takes over +the entire screen. You can switch back to the Mac OS X desktop by +holding down Command-Option-A. This key combination can be changed in +the user preferences. From the Mac OS X desktop, just click on the +XDarwin icon in the floating switch window to switch back to the X window +system. You can change this behavior in the user preferences so that +clicking on the XDarwin icon in the Dock switches as well. + +<p> <bf/Customize X Windows/ <p> -X windows is very customizable and you will certainly want to change -some things. There is a lot you can do to control how your windows +The X window system is very customizable and you will certainly want to +change some things. There is a lot you can do to control how your windows look, how the windows are moved, resized, etc. You will likely want to get a better window manager than twm, which is included with XFree86. The <tt>.xinitrc</tt> file in your home directory controls what -programs are run when you start X windows. You can find a sample -<tt>.xinitrc</tt> file in <tt>/private/etc/X11/xinit/xinitrc</tt>. +programs are run when you start the X window system. You can find a sample +<tt>.xinitrc</tt> file in <tt>/etc/X11/xinit/xinitrc</tt>. <p> -There are several -window managers that have been ported to Darwin. The best collection -of window managers and other X windows applications is at <htmlurl +There are several window managers that have been ported to Darwin. +The best collection of window managers and other X window clients +is at <htmlurl url="http://www.darwinfo.org/ports.shtml#X Windows" name="Darwinfo's ports page">. Another good place to look for Darwin ports in general is at <htmlurl @@ -230,195 +218,21 @@ <bf/Things that are broken:/ <itemize> -<item>The bell is broken. +<item>The bell does not work in IOKit mode. -<item>Server shutdown problem: After quitting the X server the colored -beachball cursor reappears, but the screen never returns to the +<item>Server shutdown problem: After quitting the X server in IOKit mode, +the colored beachball cursor reappears, but the screen never returns to the console display. The console is accepting input however, so typing ``logout'' will return you to the login prompt. <item>Only one display is currently supported. -<item>Screen saver not supported. +<item>The display mode can not be changed once the X server +has started. -<item>Key repeat rate can not be adjusted. -</itemize> +<item>A screen saver is not supported. -<bf/Things I am working on:/ -<itemize> -<item> Allowing rootless use on Mac OS X -<item> Correct wake from sleep behavior </itemize> - -<sect>Appendix - -<sect1>Installing IOKit Header files on Mac OS X Beta<label - id="headersXBeta"> -<p> -Here is what you need to do to be able to build XFree86 (or other -clients of IOGraphics services) on Mac OS X Public Beta. -<enum> - -<item>You need to install some more build tools that aren't included -in Mac OS X Beta, but are included in Darwin. These are needed for the -next step. Go to your development directory and type: -<tscreen><verb> -cvs checkout bootstrap_cmds -cd bootstrap_cmds -make -</verb></tscreen> -Now su to root and do a ``make install'' from the bootstrap_cmds -directory. - -<item> -The IOKit framework included with Mac OS X Beta is a little on the -wimpy side, even after installing the Developer Tools. You'll need to -rebuild it, but to do so safely we'll take advantage of the cool -directory structure of Mac OS X and put the new version in -/Library/Frameworks/. This will override the version in -/System/Library/Frameworks/. Or at least, that's where you should put -it using the new Mac OS X Beta file structure, but in fact the -compiler doesn't know this and still looks in -/Local/Library/Frameworks. (I have already filed a developer's bug -report on this.) To start we make a copy of the original. Login as -root and do the following: -<tscreen><verb> -cd /Library -mkdir -p Frameworks -cp -R /System/Library/Frameworks/IOKit.framework Frameworks/IOKit.framework -cd / -mkdir -p Local -ln -s /Library /Local/Library -</verb></tscreen> - -<item>Now you need to get a full version of the IOKit framework from -the Darwin repository. This comes as part of the kernel. So, in your -development directory again: - -<tscreen><verb> -cvs checkout xnu -cd xnu -source SETUP/setup.csh -make exporthdrs -make install -</verb></tscreen> - -The "make install" will start by assembling all the headers you need, -but then will proceed to build a new kernel. You can Control-C out of -the build once it starts compiling things if you want. Otherwise, just -be patient. - -<item> -You also need to get the IOKitUser project, which contains the user -interface to the IOKit, and merge it into the IOKit framework. From -your development directory type: -<tscreen><verb> -cvs checkout IOKitUser -</verb></tscreen> -Then you need to change the Makefile so it builds on top of the new -IOKit framework you are building. Change to the IOKitUser project -directory and edit the Makefile. Change the following line: -<tscreen><verb> -NEXTSTEP_BUILD_OUTPUT_DIR = /$(USER)/build/$(NAME) -</verb></tscreen> -to: -<tscreen><verb> -NEXTSTEP_BUILD_OUTPUT_DIR = <your xnudir>/BUILD/dst/System/Library/Frameworks -</verb></tscreen> - -Now, run ``make'' while in the IOKitUser directory. It will likely not -finish building since the IOKitUser project relies on some stuff that -Apple hasn't really made public yet, but it should finish populating -the new IOKit framework with headers and start compiling. (Strangely -enough, the headers installed in your new IOKit framework don't contain -the real header files. They are just single line files with an #import -of the file in your IOKitUser project. This works fine as long as you -don't ever delete or move your IOKitUser project. I imagine that using -``make install'' would fix this up, but you can't do this as long as the -project doesn't build correctly. So for now you can either move the -header files by hand, or make sure you leave your IOKitUser project in -place.) - -<item> -Now put the new IOKit headers into our local copy. Change to the xnu -project directory and do the following as root: -<tscreen><verb> -cd BUILD/dst/System/Library/Frameworks/ -cp -R IOKit.framework/Versions/A/Headers/* \ - /Library/Frameworks/IOKit.framework/Versions/A/Headers -</verb></tscreen> - -<item> -The System framework needs touching up a bit too. You need to copy the -libkern header files from the new System.framework. As root, go to the -xnu project directory and type: (Of course you could make a local copy -of the System framework in /Library/Frameworks/, but the additions to -the System framework are small.) -<tscreen><verb> -cd BUILD/dst/System/Library/Frameworks/System.framework/Versions/B/Headers -cp -R libkern /System/Library/Frameworks/System.framework/Headers/libkern -</verb></tscreen> -</enum> - -<sect1>Installing IOKit Header files on Mac OS X DP4<label -id="headersXDP4"> -<p> -Here is an outline of what you need to do to be able to build XFree86 -(or other clients of IOGraphics services) on Mac OS X Developers' -Preview 4. - -<enum> - -<item>Checkout, build, and install bootstrap_cmds from the CVS -repository. -<item>Checkout xnu from the CVS repository. Go to sandbox/xnu and do -the following: -<tscreen><verb> -source SETUP/setup.csh -make exporthdrs -</verb></tscreen> -<item>su to root and do the following: -<tscreen><verb> -mkdir -p /Local/Library/Frameworks -cp -R /System/Library/Frameworks/IOKit.framework /Local/Library/Frameworks -</verb></tscreen> -This will create a new local version of the IOKit framework that will -override the System version without changing the original. - -<item>You now want to merge the IOKit headers from the xnu project -into your local IOKit framework. I did this fairly tediously by hand, -but I would suggest something like: -<tscreen><verb> -cp -R sandbox/xnu/BUILD/dst/System/Library/Frameworks/IOKit.framework/Versions/A/Headers \ -/Local/Library/Frameworks/IOKit.framework/Versions/A -</verb></tscreen> -The only problem with this is that there are a few stub header files -included that are just a single line with an #import to the -appropriate place in the xnu source on your disk. This is fine as long -as you don't move your xnu project. If you do, you can copy the -original file to replace the stub. There is probably an easier way to -automatically build a clean version of the IOKit framework, but I -didn't find it. (Let me know if you do.) - -<item>There are just a few more files you need in the IOKit -framework. Checkout the IO project from CVS. Get the necessary header -files from there and put them in your new local IOKit -framework. You'll get errors when you try to build XFree86 from which -you can tell which files are needed. I also needed to make the -following patch to IOLLEvent.h. Your mileage may vary. -<tscreen><verb> -47c47 -< #include <Kernel/libkern/OSTypes.h> ---- -> #include <libkern/OSTypes.h> -</verb></tscreen> - -<item>You'll also need a few extra CoreFoundation header -files. Checkout CoreFoundation. You can make a new local version of -the CoreFoundation framework as above, or just add to the existing -one. The files you need are CFMachPort.h and CFMessagePort.h in the -RunLoop.subproj and CFStorage.h in Collections.subproj. -</enum> </article> Index: xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile:3.69 xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile:3.71.2.1 --- xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile:3.69 Sun Dec 17 21:43:50 2000 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile Fri Jun 1 14:09:48 2001 @@ -3,16 +3,25 @@ -XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile,v 3.69 2000/12/18 02:43:50 dawes Exp $ +XCOMM $XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Imakefile,v 3.71.2.1 2001/06/01 18:09:48 dawes Exp $ #include <Server.tmpl> #include <lnxdoc.rules> +/* Set this to YES if the RELNOTES file is up to date */ +#ifndef BuildRelnotes +#define BuildRelnotes NO +#endif + +#if BuildRelnotes +RELNOTES=RELNOTES.sgml +#endif + SGMLDEPENDS = defs.ent MANSGMLDEPENDS = mdefs.ent - INDEXLIST = README.sgml RELNOTES.sgml Status.sgml LICENSE.sgml Install.sgml \ - DESIGN.sgml \ - mouse.sgml fonts.sgml DRI.sgml DRIcomp.sgml \ + INDEXLIST = README.sgml $(RELNOTES) Status.sgml LICENSE.sgml Install.sgml \ + DESIGN.sgml Versions.sgml \ + mouse.sgml fonts.sgml DRI.sgml DRIcomp.sgml dps.sgml \ Darwin.sgml isc.sgml LynxOS.sgml NetBSD.sgml OpenBSD.sgml \ OS2note.sgml \ apm.sgml ati.sgml chips.sgml cyrix.sgml DECtga.sgml \ @@ -105,18 +114,22 @@ LinuxDocTargetLong(QStart.sgml,QuickStart.doc,QuickStart) #endif LinuxDocTarget(README) +#if BuildRelnotes LinuxDocTarget(RELNOTES) +#endif LinuxDocTarget(Status) /* Other docs */ LinuxDocReadmeTarget(fonts) LinuxDocReadmeTarget(mouse) +LinuxDocTarget(Versions) #ifdef OUTOFDATE LinuxDocTargetLong(VidModes.sgml,VideoModes.doc,VideoModes) LinuxDocTarget(xinput) #endif LinuxDocReadmeTarget(DRI) LinuxDocReadmeTarget(DRIcomp) +LinuxDocReadmeTarget(dps) SGMLMANDEFS=-D__drivermansuffix__='"$(DRIVERMANSUFFIX)"' \ -D__filemansuffix__='"$(FILEMANSUFFIX)"' \ @@ -147,6 +160,8 @@ FORMATTEDDIR = .. +#if BuildRelnotes /* Update RELNOTES at top level */ UpdateFormattedDoc(RELNOTES,$(TOP)) +#endif Index: xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml:1.10 xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml:1.11.2.2 --- xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml:1.10 Fri Dec 15 14:09:06 2000 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml Fri Jun 1 14:09:48 2001 @@ -6,10 +6,10 @@ <title>Installation Details for XFree86™ &relvers; <author>The XFree86 Project, Inc -<date>15 December 2000 +<date>1 June 2001 <ident> -$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml,v 1.10 2000/12/15 19:09:06 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/Install.sgml,v 1.11.2.2 2001/06/01 18:09:48 dawes Exp $ </ident> <abstract> @@ -36,7 +36,17 @@ <sect>Downloading the XFree86 &relvers; binaries <p> -We provide XFree86 &relvers; binaries for a range + +<![ %updaterel [ +XFree86 &relvers; is an update release. The most recent full release +(&fullrelvers;) needs to be installed before installing this update. +Information about downloading and installing &fullrelvers; can be found +in the installation document for that version, which can be found +on the <url name="XFree86 web site" +url="http://www.xfree86.org/pub/XFree86/&fullrelvers/Install.html">. +]]> + +We provide XFree86 &relvers; <![ %updaterel [update ]]>binaries for a range of operating systems at our <![ %snapshot; [ <url name="ftp site" @@ -70,36 +80,65 @@ yourself a lot time and trouble from NOT downloading an incompatible distribution. -<bf>NOTE</bf>: the Xinstall.sh script must be downloaded in binary mode, -otherwise it won't run correctly. If you get lots of "command not found" -messages when you try to run it, then it is most likely because the -script wasn't downloaded in binary mode. Some web browsers won't do -this for files of that name, so we also have a copy of it called -"<tt>Xinstall.bin</tt>", and most browsers should download that correctly. -When downloading it under this name, select "save as" on your browser, -and save the file under the name "<tt>Xinstall.sh</tt>". +<bf>NOTES</bf>: +<itemize> + <item>The Xinstall.sh script must be downloaded in binary mode, + otherwise it won't run correctly. If you get lots of "command + not found" messages when you try to run it, then it is most + likely because the script wasn't downloaded in binary mode. + Some web browsers won't do this for files of that name, so we + also have a copy of it called "<tt>Xinstall.bin</tt>", and most + browsers should download that correctly. When downloading it + under this name, select "save as" on your browser, and save the + file under the name "<tt>Xinstall.sh</tt>". + + <item>The Xinstall.sh script requires some system commands and + utilities to function correctly. While most systems will have + these, some Linux installations may not. If you find that the + script is failing because of some missing system command, you + will need to install it before you can continue. If you don't + know how to do this, then we recommend that you obtain this + version of XFree86 from your Operating System distributor. + + <item>Always use the version of the Xinstall.sh script that's provided + with the release you're installing. Older versions of the script + may not install newer releases correctly. +</itemize> + Once you're run the <tt>Xinstall.sh</tt> script and found which binary -distribution is suitable for your system, download the necessary files. -The twelve (12) mandatory files for all installations are listed below. -If you have not downloaded all of the files, the installer script will -complain. +<![ %updaterel; [update ]]>distribution is suitable for your system, +download the necessary files. The <![ %fullrel [twelve (12)]]><![ +%updaterel [four (4)]]> mandatory files for all installations are listed +below. If you have not downloaded all of the files, the installer script +will complain. +<![ %fullrel [ <quote><verb> -1. Xinstall.sh The installer script -2. extract The utility for extracting tarballs -3. Xbin.tgz X clients/utilities and run-time libraries -4. Xlib.tgz Some data files required at run-time -5. Xman.tgz Manual pages -6. Xdoc.tgz XFree86 documentation -7. Xfnts.tgz Base set of fonts -8. Xfenc.tgz Base set of font encoding data -9. Xetc.tgz Run-time configuration files -10. Xvar.tgz Run-time data -11. Xxserv.tgz XFree86 X server -12. Xmod.tgz XFree86 X server modules +1. Xinstall.sh The installer script +2. extract The utility for extracting tarballs +3. Xbin.tgz X clients/utilities and run-time libraries +4. Xlib.tgz Some data files required at run-time +5. Xman.tgz Manual pages +6. Xdoc.tgz XFree86 documentation +7. Xfnts.tgz Base set of fonts +8. Xfenc.tgz Base set of font encoding data +9. Xetc.tgz Run-time configuration files +10. Xvar.tgz Run-time data +11. Xxserv.tgz XFree86 X server +12. Xmod.tgz XFree86 X server modules </verb></quote> +]]> +<![ %updaterel [ +<quote><verb> +1. Xinstall.sh The installer script +2. extract The utility for extracting tarballs +3. Xupdate.tgz Updated files except X server drivers +4. Xdrivers.tgz Updated X server drivers +</verb></quote> +]]> + NOTES: <itemize> <item>Some web browsers have a problem downloading the <tt>extract</tt> @@ -107,35 +146,37 @@ version called <tt>extract.exe</tt> instead. This should fix the problem. (This is not a DOS/Windows executable.) +<![ %fullrel [ <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>The Darwin/Mac OS X distribution doesn't have or require the - <tt>Xmod.tgz</tt> tarball. + <![ %fullrel [<tt>Xmod.tgz</tt>]]><![ %updaterel + [<tt>Xdrivers.tgz</tt>]]> tarball. <item>Some distributions may have additional mandatory tarballs. While rare, the installer script will tell you if any are missing. </itemize> -The following thirteen (13) tarballs are optional. You should download +<![ %fullrel [ +The following eleven (11) tarballs are optional. You should download the ones you want to install. <quote><verb> -1. Xfsrv.tgz Font server -2. Xnest.tgz Nested X server -3. Xprog.tgz X header files, config files and compile-time libs -4. Xprt.tgz X Print server -5. Xvfb.tgz Virtual framebuffer X server -6. Xf100.tgz 100dpi fonts -7. Xfcyr.tgz Cyrillic fonts -8. Xflat2.tgz Latin-2 fonts -9. Xfnon.tgz Some large bitmap fonts -10. Xfscl.tgz Scalable fonts (Speedo and Type1) -11. Xhtml.tgz HTML version of the documentation -12. Xps.tgz PostScript version of the documentation -13. Xjdoc.tgz Documentation in Japanese +1. Xfsrv.tgz Font server +2. Xnest.tgz Nested X server +3. Xprog.tgz X header files, config files and compile-time libs +4. Xprt.tgz X Print server +5. Xvfb.tgz Virtual framebuffer X server +6. Xf100.tgz 100dpi fonts +7. Xfcyr.tgz Cyrillic fonts +8. Xfscl.tgz Scalable fonts (Speedo and Type1) +9. Xhtml.tgz HTML version of the documentation +10. Xps.tgz PostScript version of the documentation +11. Xjdoc.tgz Documentation in Japanese </verb></quote> NOTES: @@ -146,15 +187,22 @@ If you miss some and want to install them later, go to the <ref id="manual-install" name="Manual Installation"> section. +]]> <sect>Installing XFree86 &relvers; using the <tt>Xinstall.sh</tt> script <p> We strongly recommend that our XFree86 &relvers; binaries be installed -using the <tt>Xinstall.sh</tt> script that we provide. There are a lot of +using the <tt>Xinstall.sh</tt> script that we provide. +<![ %updaterel [It is also important that the previous full release +(&fullrelvers;) is installed before installing this update release. +Make sure that you use the &relvers; version of the <tt>Xinstall.sh</tt> +script to install this update. Older versions may not be able to do it +correctly.]]> +There are a lot of steps in the manual installation process, and those steps can vary -according to the platform and hardware setup. There is a description of +according to the platform and hardware setup. <![ %fullrel [There is a description of the manual installation process for the most common cases <ref -id="manual-install" name="below">. +id="manual-install" name="below">.]]> You must login as the super user (root) to run the installer script. Place all of the downloaded files into a single directory (choose a @@ -184,7 +232,9 @@ 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 +<![ %fullrel [If you have an existing X installation, you]]> +<![ %updaterel [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 @@ -203,6 +253,7 @@ way of the new installation. It will list which files/directories have been removed. If none are listed, then none were removed. +<![ %fullrel [ 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> @@ -222,7 +273,7 @@ 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 +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 @@ -273,6 +324,8 @@ 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 @@ -301,6 +354,7 @@ 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). +<![ %fullrel [ <sect>Installing XFree86 &relvers; manually<label id="manual-install"> <p> This section describes how to manually install the XFree86 &relvers; binary @@ -344,6 +398,7 @@ 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 +chmod ug-w /usr/X11R6/lib # Make sure the permissions are OK /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 @@ -422,10 +477,13 @@ ./extract -C /usr/X11R6 `pwd`/X[a-df-uw-z]*.tgz ./extract -C /usr/X11R6 Xvfb.tgz # If you are installing Xvfb ./extract -C /var Xvar.tgz +chmod ug-w /usr/X11R6/lib # Make sure the permissions are OK /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> Index: xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml:1.7 xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml:1.8 --- xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml:1.7 Mon Mar 6 17:59:23 2000 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/LICENSE.sgml Fri Mar 16 17:13:19 2001 @@ -5,10 +5,10 @@ <article> <title>Licenses The XFree86 Project -1999 +March 2001 -$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/sgml/LICENSE.sgml,v 1.8 2001/03/16 22:13:19 dawes Exp $ XFree86 License @@ -17,7 +17,7 @@ copyright/license:

-Copyright (C) 1994-2000 The XFree86 Project, Inc. All Rights Reserved. +Copyright (C) 1994-2001 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"), Index: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml diff -u xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml:3.59 xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml:3.60.2.1 --- xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml:3.59 Tue Dec 12 13:54:29 2000 +++ xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml Fri Jun 1 14:09:48 2001 @@ -9,10 +9,10 @@ Marc Wandschneider, Mark Weaver, Matthieu Herrb -Last modified on: 7 December 2000 +Last modified on: 3 March 2001 -$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml,v 3.59 2000/12/12 18:54:29 dawes Exp $ +$XFree86: xc/programs/Xserver/hw/xfree86/doc/sgml/NetBSD.sgml,v 3.60.2.1 2001/06/01 18:09:48 dawes Exp $ @@ -20,10 +20,9 @@ What and Where is XFree86?

-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. +XFree86 is the Open Source port of X.Org's X11R6.4 release that supports +several UNIX(R) and UNIX-like (such as Linux, the BSDs and Solaris x86) +operating systems on Intel and other platforms. See the . @@ -32,7 +31,7 @@ -Binaries for NetBSD 1.3 and later are available from: +Binaries for NetBSD 1.4 and later are available from: @@ -57,8 +56,10 @@ New OS dependent features

+ for non-OS dependent new features in XFree86 &relvers;. +]]> New OS dependent features in 4.0.2

@@ -111,7 +112,7 @@ Configuring X for Your Hardware

-The /etc/XF86Config file tells the X server what kind of +The /etc/X11/XF86Config file tells the X server what kind of monitor, video card and mouse you have. You Your monitor's sync frequencies. - For details about the XF86Config(5) manual page. @@ -139,21 +139,22 @@ About mouse configuration +

+XFree86 &relvers; has support for the mouse driver included in +the /dev/wsmouse0'' as the +device in /etc/X11/XF86Config if you're using NetBSD 1.4 or later +with a PS/2 mouse.

-The NetBSD pms mouse driver handles PS/2 style mice as -Busmouse. Specify the protocol as `` 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 &relvers; also has support for the mouse driver included in -the new /dev/wsmouse0'' as the -device in /etc/XF86Config if you're using NetBSD 1.4 with -wscons. +Intellimouse, or MouseMan+ with a wheel) are not supported by NetBSD +1.3 and former releases.

See for general instruction on mouse configuration in XFree86. @@ -190,8 +191,9 @@ in /etc/rc.conf.

-Under NetBSD 1.4 with the wscons console driver, you must enable a -virtual console for the X server first. To do this follow these steps: +Under NetBSD 1.4 and later with the wscons console driver, you must +enable a virtual console for the X server first. To do this follow +these steps: Make sure the device file exists. If not, ``cd /dev ; ./MAKEDEV wscons''. @@ -210,8 +212,8 @@ screen 5 - vt100 -(Thanks to Mason Loring Bliss <mason@acheron.middleboro.ma.us> for -this explanation) +(Thanks to Mason Loring Bliss +<mason@acheron.middleboro.ma.us> for this explanation)

Note that the binary distributions of XFree86 for NetBSD don't include support for the XDM-AUTHORIZATION-1 protocol. @@ -239,7 +241,7 @@ contained in the NetBSD binary distribution's kernels.

-The pcvt console driver is bundled with NetBSD. The pcvt X +The pcvt console driver was bundled with NetBSD until 1.4. The pcvt X mode is compatible with the pccons driver X mode. It offers several virtual consoles and international keyboard support. In order to use this driver, change the line: @@ -258,9 +260,9 @@

- - You should configure the distribution by editing xc/config/cf/host.def before compiling. To compile the sources, invoke `` to xc/config/host.def before rebuilding the server. This has not been thoroughly tested, except on the macppc. +

+For the i386, you should include both pcvt and wscons support in order +to use the pcvt compatibility mode of wscons: + + #define XFree86ConsoleDefines -DPCVT_SUPPORT -DWSCONS_SUPPORT + Building on other architectures

+

Patch #156 - 2001/4/28 - XFree86 4.0.3

+
    +
  • change order of selection-target types to make 8-bit xterm prefer + UTF8_STRING to COMPOUND_TEXT (patch by Juliusz Chroboczek). + +
  • document -fa, -fs command-line options + and faceName, faceSize + resources which are used by the freetype library support. + +
  • if configure script finds freetype libraries, but imake definitions + do not have the XRENDERFONT definition, define it anyway. + +
  • modify configure script check for freetype libraries to include + <Xlib.h>, since an older version of the related + headers relies on this (patch by Adam <adam@cfar.umd.edu>). +
+ +

Patch #155 - 2001/4/20 - XFree86 4.0.3

+
    +
  • correct return type of in_put() from patch #153 changes, which + left it not wide enough for UTF-8 (patch by Bruno Haible). +
+ +

Patch #154 - 2001/4/11 - XFree86 4.0.3

+
    +
  • undo check for return value from pututline (used for + debugging) since that function does not return a value on Slackware + 3.6. + +
  • correct length in ScreenWrite, when rendering invisible text + (patch by Sven Verdoolaege <skimo@kotnet.org>). + +
  • fixes/improvements for the i18nSelection resource + from patch #153, by Bruno Haible: + +
      +
    • add missing initialization for i18nSelection + resource. + +
    • split-out the non-ICCM aspect of the + i18nSelection resource as a new resource, + brokenSelections. +
    + +
  • add configure check for <time.h> and + <sys/time.h>, to allow for Unixware 7, + which requires both. If the configure script is not used, only + <time.h> will be included as before (report + by Thanh Ma). + +
  • fix redefinition of dup2, getutent, + getutid, getutline and sleep + functions on Unixware 7 (report by Thanh Ma + <Thanh.Ma@casi-rusco.com>) + +
  • add a fall-back definition for __hpux, which is + apparently not defined in some compilers on HPUX 11.0 (reported + by Clint Olsen). + +
  • change VAL_INITIAL_ERASE, which is used as a fallback for the + "kb" termcap string to 8, since that matches the + xterm terminal description (request by Alexander V Lukyanov). + +
  • correct an off-by-one in ClearInLine, which caused + the erase-characters (ECH) control to display incorrectly + (patch by Alexander V Lukyanov). + +
  • correct escape sequences shown in terminfo for shifted editing + keys. The modifier code was for the control key rather than + the shift key. +
+ +

Patch #153 - 2001/3/29 - XFree86 4.0.3

+
    +
  • increase PTYCHARLEN to 8 for os390, add some debugging traces + for UTMP functions (patch by Paul Gilmartin). + +
  • correct an misplaced brace in SelectionReceived() + (patch by Bruno Haible). + +
  • correct an assignment dropped in SelectionReceived() + which made it not compile for wide-characters combined with debug + traces. + +
  • correct typo, clarify description of 88- and 256-color controls + (report by Bram Moolenaar). + +
  • correct a typo in ctlseqs.ms which caused DEC Locator control + sequences using single quote "'" display grave "`" instead (reported + by Paul Williams, apparently in patch #114). +
+ +

Patch #152 - 2001/3/13 - XFree86 4.0.2

+
    +
  • correct index in inner loop in VTInitI18N() from + patch #151 changes, which resulted in infinite loop under some + conditions (report/analysis by Paul Gilmartin). + +
  • remove spurious "%|" from terminfo sgr capabilities + (report/analysis by Adam M Costello, Debian bug #89222). + +
  • add shell script to adjust list of dynamic libraries linked by + resize when building with the standalone configure + script. Otherwise it uses the same list as for xterm, which is + excessive. + +
  • fix a few compiler warnings reported by the 20010305 gcc snapshot. +
+ +

Patch #151 - 2001/3/10 - XFree86 4.0.2

+
    +
  • patch from Juliusz Chroboczek <jch@pps.jussieu.fr> which + alters the behaviour of selections in XTerm. + It is believed to follow the ICCCM + UTF8_STRING to the letter, both + in UTF-8 and in eight-bit mode. From his description: +
      +
    • When compiled against XFree86 4.0.2, the patched XTerm will make + the selection available as COMPOUND_TEXT, STRING or UTF8_STRING in + both modes. It will request selections in the following order: +

      + UTF-8 mode: UTF8_STRING, TEXT, COMPOUND_TEXT, STRING.
      + eight-bit mode: TEXT, COMPOUND_TEXT, UTF8_STRING, STRING. + +

    • When compiled against an earlier version of XFree86 (or compiled with + OPT_UTF8_API=0), it will still obey the ICCCM, but will neither + request nor provide UTF8_STRING in eight-bit mode, and neither TEXT + nor COMPOUND_TEXT in UTF-8 mode. +
    • For compatibility with previous versions of XTerm, a resource + i18nSelections is provided, please see the manpage for + details. However, due to an unexpected combination of ICCCM + extensions by various bits and pieces of the libraries, interacting + with previous versions of XTerm will work in many locales even + without this flag. (Please do not set this resource to true by + default, as this would violate the ICCCM.) +
    + +
  • improved error checking/reporting in VTInitI18N(), ensuring that + lack of input method styles is treated distinctly from a mismatch. + +
  • remove an incorrect ifdef from patch #141 which suppressed + overstriking to simulate bold font when xterm was compiled to support + wide characters (report/analysis by Adam M Costello + <amc@cs.berkeley.edu>, fixes Debian bugs #76404, #77575). + +
  • modify RequestResize() function to save/restore window + manager hints. Its call to XtMakeResizeRequest() had + the undesirable side-effect of clearing window manager hints, e.g., + when switching to 132-columns via DECCOLM escape sequence. Window + manager hints make it simple to resize xterm in terms of character + cells rather than pixels (reported by Christian Weisgerber as well + as Debian bug #79939). +

    + This applies to the normal configuration. When built with toolbar + support, the hints are applied to a different widget level (more + work will be needed to make hints work with the toolbar). + +

  • fix a redefinition warning for resize.c on OpenBSD (patch by + Christian Weisgerber). + +
  • change resource corresponding to -T option to match + Xt library's -title, i.e., .title + rather than *title so the command-line options are + interchangeable as documented (Debian bug report #68843). + +
  • add script used from autoconf'd makefile for installing manpages, + since recent XFree86 changing the way section numbers are represented + makes the install dependent on extra scripts. + +
  • add configure check for freetype libraries and configure option + --disable-freetype to override this feature. + +
  • modify some configure script macros to avoid using changequote(), + which has been rendered useless in the latest autoconf alpha 2.49c + +
  • update config.guess, config.sub to 2001-2-13 + +
  • remove redundant/contradictory __CYGWIN__ definitions from resize.c + +
  • correct manpage typo introduced by X11R6.5 resync. +
+ Changes from XFree86 4.0.2: +
    +
  • add definition of _POSIX_C_SOURCE for Solaris to + make this compile with gcc -ansi -pedantic (report + by <mark@zang.com>. +
+ +

Patch #150 - 2000/12/29 - XFree86 4.0.2

+
    +
  • move the binding for shifted keypad plus/minus, which invokes the + larger-vt-font() and smaller-vt-font() + actions, respectively, into the translations resource (suggested by + Marius Gedminas <mgedmin@puni.osf.lt>). + +
  • modify configure script to support the + --program-prefix, --program-suffix and + --program-transform-name options (request by Alison + Winters <alison@mirrabooka.com>). + +
  • patch from Robert Brady +
      +
    • fix a scrolling / combining characters display anomaly + +
    • fix a problem with double-width characters where if the primary + font had no box-drawing characters, the right hand half of + double-width characters was erased (reported by Yao Zhang + <yzhang@sharemedia.com>). + +
    • fix special case of null byte for key handling in UTF-8 locales. +
    + +
  • modify logic that compares sizes of normal and bold fonts to be + more forgiving of the font server's choice of bold font which must + match the normal font's size. Now same_font_size() + compares the height of the fonts rather than individually ascent and + descent, and allows the bold font to be one pixel smaller than the + normal font (addresses a report by Alan Citterman + <alan@mticket.com>, who says that something in patches #146 to + #148 made xterm more likely to overstrike bold fonts, and indirectly + Debian bug report #76404, which reports the opposite). + +
  • make configure script use $CFLAGS and $CPPFLAGS consistently, + including removing a chunk from configure.in which attempted to + save/restore $CPPFLAGS while processing value set by the --x-includes + option, but lost values set in an intervening AC_CHECK_HEADERS. This + change modifies macros CF_ADD_CFLAGS, CF_ANSI_CC_CHECK and + CF_X_TOOLKIT, as well as removing variables IMAKE_CFLAGS and X_CFLAGS + from the generated makefile (the AC_CHECK_HEADERS problem was + reported by Albert Chin-A-Young <china@thewrittenword.com<). + +
  • correct a comparison in SELECTWORD case of ComputeSelect(), which + resulted in a word-selection wrapping past the first column without + checking the first column's character class (reported by Christian + Lacunza <celacunza@netscape.net> + +
  • correct a logic in UTF-8 mode for selecting double-width characters; + a combining character was omitted (patch by Markus Kuhn). + +
  • add feature to pop (raise) window when a bell is received + (patch by Gael Roualland <gael.roualland@dial.oleane.com>). + +
  • add __NetBSD__ and __OpenBSD__ to special-case in xterm_io.h + for USE_POSIX_TERMIOS definition (patch by Christian Weisgerber). + +
  • move special-case HPUX include for <sys/bsdtty.h> to + xterm_io.h to define TIOCSLTC, making HAS_LTCHARS defined for HPUX + 10.20 (report by Bruno Betro). +
+

Patch #149 - 2000/12/6 - XFree86 4.0.1h

    +
  • restructured includes for termios.h, + termio.h and related definitions for main.c, os2main.c, + screen.c and resize.c so they will share equivalent definitions in a + new header xterm_io.h. This is intended to solve some + problems mainly for HPUX which appear to arise from inconsistent + definitions for SIGWINCH- and HAS_LTCHARS-related symbols (reports + by Bruno Betro, Jeremie Petit and Clint Olsen). + +
  • improve usability of double-width fonts by allowing normal fonts + to be given as double-width (from a patch by Fabrice Bellard + <bellard@email.enst.fr>). + +
  • correct a few compiler warnings in TRACE() macros for + signed/unsigned variable differences (reported by Clint Olsen). + +
  • make configure script use $CFLAGS and $CPPFLAGS more consistently, + i.e., by using CF_ADD_CFLAGS in CF_ANSI_CC macro. +
  • expanded description of environment variables in manual-page.
  • modify OPT_TCAP_QUERY feature to always return the termcap or @@ -369,7 +643,7 @@

    Patch #144 - 2000/8/23 - XFree86 4.0.1b

    • remove a spurious assignment in ScreenWrite() from Robert Brady's - patch which set a null at the "end" of the buffer to be written. + patch which set a null at the "end" of the buffer to be written. That made the autowrap feature write a blank in the first column for the non-UTF-8 configuration, rather than the actual character (reported by Alan Citterman <alan@mticket.com>). @@ -451,7 +725,7 @@

      Patch #138 - 2000/6/15 - XFree86 4.0c

        -
      • workaround for fixed fonts which are generated from Unicode fonts: +
      • workaround for fixed fonts which are generated from Unicode fonts: they omit glyphs for some xterm's less-used line-drawing characters, which caused xterm to set a flag telling it to use only its internal line-drawing characters. Do not set the flag (it can be set from the @@ -670,7 +944,7 @@
      • include <term.h> in resize.c, to fix a missing-prototype warning.
      - +
    • modified creat_as() a little more, retaining the ability to append to a logfile If the user specifies the name. Also, check if the opened file (which patch #130 ensures is @@ -679,7 +953,7 @@
    • use creat_as() logic to make tek4014 screen-copy more secure (noted by Branden Robinson). -
    • ifdef'd some of Branden's changes to build/work on older machines. +
    • ifdef'd some of Branden's changes to build/work on older machines.
    • correct missing initialization of the .mode flag in ColorRes struct, from patch #129. This worked on Linux @@ -697,7 +971,7 @@

      Patch #130 - 2000/3/1 - XFree86 3.9.18a

        -
      • modify scroll-forw() and scroll-back() +
      • modify scroll-forw() and scroll-back() actions, adding a third parameter which will direct xterm to ignore the action when mouse reporting is enabled. This is needed for the wheel mouse to be used to report to the application rather than @@ -831,7 +1105,7 @@ even if it happens to be the stty erase character.
      • add encoding for control/?, to work around xmodmap or key - translations which may confuse backspace and delete. A control/? + translations which may confuse backspace and delete. A control/? will send DEL (127), and a control/H will of course send backspace (8). @@ -900,7 +1174,7 @@
        • use clipping to avoid leaving trash at end of the text, and
        • add brackets so wide-character logic does not fall-through - into the overstriking logic (reported by + into the overstriking logic (reported by Marc Feeley <feeley@IRO.UMontreal.CA>)
        Index: xc/programs/xterm/xterm.man diff -u xc/programs/xterm/xterm.man:3.66 xc/programs/xterm/xterm.man:3.73 --- xc/programs/xterm/xterm.man:3.66 Wed Dec 6 21:43:00 2000 +++ xc/programs/xterm/xterm.man Sat Apr 28 09:51:56 2001 @@ -1,8 +1,7 @@ -.\" $XConsortium: xterm.man /main/85 1996/12/09 17:10:53 kaleb $ -.\" $XFree86: xc/programs/xterm/xterm.man,v 3.66 2000/12/07 02:43:00 dickey Exp $ +.\" $Xorg: xterm.man,v 1.3 2000/08/17 19:55:10 cpqbld Exp $ .\" .\" -.\" Copyright 1996,1997,1998,1999,2000 by Thomas E. Dickey +.\" Copyright 1996,1997,1998,1999,2000,2001 by Thomas E. Dickey .\" .\" All Rights Reserved .\" @@ -57,8 +56,10 @@ .\" other dealings in this Software without prior written authorization .\" from the X Consortium. .\" +.\" $XFree86: xc/programs/xterm/xterm.man,v 3.73 2001/04/28 13:51:56 dickey Exp $ +.\" .\" updated by Thomas E. Dickey for XFree86, July 1996. -.TH XTERM 1 "Release 6.3" "X Version 11" +.TH XTERM 1 __vendorversion__ .SH NAME xterm \- terminal emulator for X .SH SYNOPSIS @@ -343,6 +344,22 @@ If only one of the normal or bold fonts is specified, it will be used as the normal font and the bold font will be produced by overstriking this font. The default is to do overstriking of the normal font. +See also the discussion of \fBboldFont\fP and \fBboldMode\fP resources. +.TP 8 +.BI \-fa " pattern" +This option sets the pattern for fonts selected from the FreeType +library if support for that library was compiled into xterm. +This corresponds to the \fBfaceName\fP resource. +.TP 8 +.BI \-fi " font" +This option sets the font for active icons if that feature was compiled +into xterm. +See also the discussion of the \fBiconFont\fP resource. +.TP 8 +.BI \-fs " size" +This option sets the pointsize for fonts selected from the FreeType +library if support for that library was compiled into xterm. +This corresponds to the \fBfaceSize\fP resource. .TP 8 .B \-fw \fIfont\fP This option specifies the font to be used for displaying wide text. @@ -360,10 +377,6 @@ If no doublewidth font is found, it will improvise, by stretching the normal font. .TP 8 -.B \-fi -This option sets the font for active icons if that feature was compiled -into xterm. -.TP 8 .BI \-hc " color" This option specifies the color to use for the background of selected or otherwise highlighted text. If not specified, @@ -484,6 +497,14 @@ .B \+pc This option disables the PC-style use of bold colors. .TP 8 +.B \-pob +This option indicates that the window should be raised whenever a +Control-G is received. +.TP 8 +.B \+pob +This option indicates that the window should not be raised whenever a +Control-G is received. +.TP 8 .B \-rightbar Force scrollbar to the right side of VT100 screen. .TP 8 @@ -734,7 +755,7 @@ This option specifies the width in pixels of the border surrounding the window. .TP 8 .B \-display \fIdisplay\fP -This option specifies the X server to contact; see \fIX(1)\fP. +This option specifies the X server to contact; see \fIX(__miscmansuffix__)\fP. .TP 8 .B \-fg \fIcolor\fP This option specifies the color to use for displaying text. The default is @@ -746,7 +767,7 @@ .TP 8 .B \-geometry \fIgeometry\fP This option specifies the preferred size and position of the VT102 window; -see \fIX(1)\fP. +see \fIX(__miscmansuffix__)\fP. .TP 8 .B \-iconic This option indicates that \fIxterm\fP should ask the window manager to @@ -991,6 +1012,19 @@ same as the normal font. It may be desirable to disable bold fonts when color is being used for the bold attribute. +Note that \fIxterm\fP has one bold font which you may set explicitly. +It attempts to match a bold font for the other font selections +(\fBfont1\fP through \fBfont6\fP). +If the normal and bold fonts are distinct, this resource has no effect. +.TP 8 +.B "brokenSelections (\fPclass\fB BrokenSelections)" +If true, \fIxterm\fP in 8-bit mode will interpret +.B STRING +selections as carrying text in the current locale's encoding. Normally +.B STRING +selections carry ISO-8859-1 encoded text. Setting this resource to +``true'' violates the ICCCM; it may, however, be useful for interacting +with some broken X clients. .TP 8 .B "c132 (\fPclass\fB C132)" Specifies whether or not the VT102 DECCOLM escape sequence should be honored. @@ -1182,6 +1216,19 @@ accepted as is or stripped when printed. The default is ``true,'' which means that they are accepted as is. .TP 8 +.B "faceName" (\fPclass\fB FaceName)" +Specify the pattern for fonts selected from the FreeType +library if support for that library was compiled into xterm. +There is no default. +If not specified, +or if there is no match for both normal and bold fonts, +xterm uses the \fBfont\fP and related resources. +.TP 8 +.B "faceSize" (\fPclass\fB FaceSize)" +Specify the pointsize for fonts selected from the FreeType +library if support for that library was compiled into xterm. +The default is ``14.'' +.TP 8 .B "font (\fPclass\fB Font)" Specifies the name of the normal font. The default is ``fixed.'' .TP 8 @@ -1244,6 +1291,14 @@ ``true'' causes \fIxterm\fP to interpret ESC F as a request to move to the lower left corner of the screen. The default is ``false.'' .TP 8 +.B "i18nSelections (\fPclass\fB I18nSelections)" +If false, \fIxterm\fP will never request the targets +.B COMPOUND_TEXT +or +.BR TEXT . +The default is ``true.'' It may be set to false in order to work around +ICCCM violations by other X clients. +.TP 8 .B "iconBorderColor (\fPclass\fB BorderColor)" Specifies the border color for the active icon window if this feature is compiled into xterm. Not all window managers will make the icon @@ -1418,8 +1473,15 @@ .TP 8 .B "scrollTtyOutput (\fPclass\fB ScrollCond)" Specifies whether or not output to the terminal should automatically cause -the scrollbar to go to the bottom of the scrolling region. The default is -``true.'' +the scrollbar to go to the bottom of the scrolling region. +The default is ``true.'' +.TP 8 +.B "shiftFonts (\fPclass\fB ShiftFonts)" +Specifies whether to enable the actions +\fBlarger-vt-font()\fP and +\fBsmaller-vt-font()\fP, which are normally bound to +the shifted KP_Add and KP_Subtract. +The default is ``true.'' .TP 8 .B "signalInhibit (\fPclass\fB SignalInhibit)" Specifies whether or not the entries in the ``Main Options'' menu for sending @@ -1486,6 +1548,10 @@ Specifies whether or not a visible bell (i.e. flashing) should be used instead of an audible bell when Control-G is received. The default is ``false.'' .TP 8 +.B "popOnBell (\fPclass\fB PopOnBell)" +Specifies whether the window whould be raised when Control-G is +received. The default is ``false.'' +.TP 8 .B "wideChars (\fPclass\fB WideChars)" Specifies if \fIxterm\fP should respond to control sequences that process 16-bit characters. @@ -1649,6 +1715,9 @@ .B "visualbell (\fPclass\fB SmeBSB)" This entry invokes the \fBset-visualbell(toggle)\fP action. .TP 8 +.B "poponbell (\fPclass\fB SmeBSB)" +This entry invokes the \fBset-poponbell(toggle)\fP action. +.TP 8 .B "marginbell (\fPclass\fB SmeBSB)" This entry invokes the \fBset-marginbell(toggle)\fP action. .TP 8 @@ -1658,7 +1727,7 @@ .B "titeInhibit (\fPclass\fB SmeBSB)" This entry invokes the \fBset-titeInhibit(toggle)\fP action. .TP 8 -.B "activeicon (\fPclass\fB SMeBSB)" +.B "activeicon (\fPclass\fB SmeBSB)" This entry toggles active icons on and off if this feature was compiled into \fIxterm\fP. It is enabled only if \fIxterm\fP was started with the command line option +ai or the \fBactiveIcon\fP @@ -2168,6 +2237,10 @@ name is \fIname\fP with the suffix \fIKeymap\fP (case is significant). The name \fINone\fP restores the original translation table. .TP 8 +.B "larger-vt-font()" +Set the font to the next larger one, based on the font dimensions. +See also \fBset-vt-font()\fP. +.TP 8 .B "maximize()" Resizes the window to fill the screen. .TP 8 @@ -2324,6 +2397,10 @@ .B "set-num-lock()" This action toggles the state of the \fBnumLock\fP resource. .TP 8 +.B "set-pop-on-bell(\fIon/off/toggle\fP)" +This action toggles the \fBpopOnBell\fP resource and is also invoked +by the \fBpoponbell\fP entry in \fIvtMenu\fP. +.TP 8 .B "set-reverse-video(\fIon/off/toggle\fP)" This action toggles the \fIreverseVideo\fP resource and is also invoked by the \fBreversevideo\fP entry in \fIvtMenu\fP. @@ -2394,6 +2471,10 @@ \fIs\fP or \fIS\fP indicate the font selection (as made by programs such as \fIxfontsel(1)\fP) indicated by the second action argument. .TP 8 +.B "smaller-vt-font()" +Set the font to the next smaller one, based on the font dimensions. +See also \fBset-vt-font()\fP. +.TP 8 .B "soft-reset()" This action resets the scrolling region and is also invoked from the \fBsoftreset\fP entry in \fIvtMenu\fP. @@ -2467,6 +2548,8 @@ Shift Select:select-cursor-start() \\ select-cursor-end(PRIMARY, CUT_BUFFER0) \\n\\ Shift Insert:insert-selection(PRIMARY, CUT_BUFFER0) \\n\\ + Shift KP_Add:larger-vt-font() \\n\\ + Shift KP_Subtract:smaller-vt-font() \\n\\ ~Meta :insert-seven-bit() \\n\\ Meta :insert-eight-bit() \\n\\ !Ctrl :popup-menu(mainMenu) \\n\\ @@ -2615,7 +2698,7 @@ in your .Xdefaults file to automatically turn on color in \fIxterm\fP and similar applications. .SH "SEE ALSO" -resize(1), X(1), pty(4), tty(4) +resize(1), X(__miscmansuffix__), pty(4), tty(4) .br \fIXterm Control Sequences\fP (this is the file ctlseqs.ms). Index: xc/programs/xterm/xterm_io.h diff -u xc/programs/xterm/xterm_io.h:1.1 xc/programs/xterm/xterm_io.h:1.3 --- xc/programs/xterm/xterm_io.h:1.1 Wed Dec 6 05:19:43 2000 +++ xc/programs/xterm/xterm_io.h Tue Feb 13 14:19:19 2001 @@ -1,5 +1,5 @@ /* - * $XFree86: xc/programs/xterm/xterm_io.h,v 1.1 2000/12/06 10:19:43 dickey Exp $ + * $XFree86: xc/programs/xterm/xterm_io.h,v 1.3 2001/02/13 19:19:19 dawes Exp $ */ /* @@ -63,7 +63,7 @@ #define USE_SYSV_TERMIO #endif -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) #define USE_POSIX_TERMIOS #endif @@ -132,12 +132,14 @@ /* this hacked termios support only works on SYSV */ #define USE_ANY_SYSV_TERMIO #define termio termios +#ifndef __CYGWIN__ #undef TCGETA #define TCGETA TCGETS #undef TCSETA #define TCSETA TCSETS #undef TCSETAW #define TCSETAW TCSETSW +#endif #elif defined(USE_SYSV_TERMIO) # define USE_ANY_SYSV_TERMIO # ifdef Lynx @@ -219,6 +221,10 @@ #define ioctl ptioctl #endif /* __EMX__ */ + +#ifdef __hpux +#include /* defines TIOCSLTC */ +#endif #ifdef ISC #define TIOCGPGRP TCGETPGRP Index: xc/programs/xterm/xtermcfg.hin diff -u xc/programs/xterm/xtermcfg.hin:3.35 xc/programs/xterm/xtermcfg.hin:3.37 --- xc/programs/xterm/xtermcfg.hin:3.35 Wed Dec 6 21:22:12 2000 +++ xc/programs/xterm/xtermcfg.hin Sat Apr 28 09:51:56 2001 @@ -1,5 +1,5 @@ /* - * $XFree86: xc/programs/xterm/xtermcfg.hin,v 3.35 2000/12/07 02:22:12 dickey Exp $ + * $XFree86: xc/programs/xterm/xtermcfg.hin,v 3.37 2001/04/28 13:51:56 dickey Exp $ */ /************************************************************ @@ -39,10 +39,12 @@ #undef DFT_COLORMODE /* AC_ARG_WITH(default-color-mode) */ #undef DFT_DECID /* AC_ARG_WITH(default-terminal-id) */ #undef DFT_TERMTYPE /* AC_ARG_WITH(default-term-type) */ +#undef HAVE_GETLOGIN /* AC_CHECK_FUNCS(getlogin) */ #undef HAVE_LASTLOG_H /* CF_LASTLOG */ #undef HAVE_PATHS_H /* CF_LASTLOG */ #undef HAVE_STDLIB_H /* AC_CHECK_HEADERS(stdlib.h) */ #undef HAVE_STRERROR /* AC_CHECK_FUNCS(strerror) */ +#undef HAVE_SYS_TIME_H /* AC_HEADER_TIME */ #undef HAVE_SYS_WAIT_H /* AC_HEADER_SYS_WAIT */ #undef HAVE_TCGETATTR /* AC_CHECK_FUNCS(tcgetattr) */ #undef HAVE_TERMCAP_H /* AC_CHECK_HEADERS(termcap.h) */ @@ -76,7 +78,9 @@ #undef OPT_MAXIMIZE /* CF_ARG_DISABLE(maximize) */ #undef OPT_NUM_LOCK /* CF_ARG_DISABLE(num-lock) */ #undef OPT_PC_COLORS /* CF_ARG_DISABLE(pc-color) */ +#undef OPT_SAME_NAME #undef OPT_SCO_FUNC_KEYS /* CF_ARG_ENABLE(sco-fkeys) */ +#undef OPT_TCAP_QUERY #undef OPT_TEK4014 /* CF_ARG_DISABLE(tek4014) */ #undef OPT_TOOLBAR /* CF_ARG_ENABLE(toolbar) */ #undef OPT_TRACE /* CF_ARG_ENABLE(trace) */ @@ -84,12 +88,11 @@ #undef OPT_WIDE_CHARS /* CF_ARG_ENABLE(wide-chars) */ #undef OPT_XMC_GLITCH /* CF_ARG_ENABLE(xmc-glitch) */ #undef OPT_ZICONBEEP /* CF_ARG_DISABLE(ziconbeep) */ -#undef OPT_SAME_NAME -#undef OPT_TCAP_QUERY #undef OWN_TERMINFO_DIR /* AC_ARG_WITH(own-terminfo) */ #undef SCROLLBAR_RIGHT /* CF_ARG_ENABLE(rightbar) */ #undef SVR4 /* CF_SVR4, imake */ #undef SYSV /* CF_SYSV, imake */ +#undef TIME_WITH_SYS_TIME /* AC_HEADER_TIME */ #undef TTY_GROUP_NAME /* CF_TTY_GROUP */ #undef USE_LASTLOG /* CF_LASTLOG */ #undef USE_MY_MEMMOVE /* CF_FUNC_MEMMOVE */ @@ -102,6 +105,7 @@ #undef USE_TTY_GROUP /* CF_TTY_GROUP */ #undef USE_UTEMPTER /* CF_UTEMPTER */ #undef UTMPX_FOR_UTMP /* CF_UTMP */ +#undef XRENDERFONT /* CF_X_FREETYPE */ #undef const /* AC_CONST */ #undef size_t /* AC_TYPE_SIZE_T */ #undef time_t /* AC_CHECK_TYPE(time_t, long) */ Index: xc/programs/xvidtune/xvidtune.c diff -u xc/programs/xvidtune/xvidtune.c:3.26 xc/programs/xvidtune/xvidtune.c:3.27 --- xc/programs/xvidtune/xvidtune.c:3.26 Tue Sep 26 11:57:27 2000 +++ xc/programs/xvidtune/xvidtune.c Thu Apr 5 22:16:26 2001 @@ -1,4 +1,4 @@ -/* $XFree86: xc/programs/xvidtune/xvidtune.c,v 3.26 2000/09/26 15:57:27 tsi Exp $ */ +/* $XFree86: xc/programs/xvidtune/xvidtune.c,v 3.27 2001/04/06 02:16:26 dawes Exp $ */ /* @@ -534,7 +534,7 @@ if (mode_flags & V_INTERLACE) strcat(modebuf, " interlace"); if (mode_flags & V_CSYNC) strcat(modebuf, " composite"); if (mode_flags & V_PCSYNC) strcat(modebuf, " +csync"); - if (mode_flags & V_PCSYNC) strcat(modebuf, " -csync"); + if (mode_flags & V_NCSYNC) strcat(modebuf, " -csync"); if (mode_flags & V_DBLSCAN) strcat(modebuf, " doublescan"); printf("%s\n", modebuf); time = XtLastTimestampProcessed(XtDisplay(w)); Index: xc/programs/xvidtune/xvidtune.man diff -u xc/programs/xvidtune/xvidtune.man:3.12 xc/programs/xvidtune/xvidtune.man:3.13 --- xc/programs/xvidtune/xvidtune.man:3.12 Sun Jan 28 02:34:34 1996 +++ xc/programs/xvidtune/xvidtune.man Sat Jan 27 13:21:25 2001 @@ -1,4 +1,4 @@ -.\" $XFree86: xc/programs/xvidtune/xvidtune.man,v 3.12 1996/01/28 07:34:34 dawes Exp $ +.\" $XFree86: xc/programs/xvidtune/xvidtune.man,v 3.13 2001/01/27 18:21:25 dawes Exp $ .\" .\" Copyright (c) 1995 Kaleb S. KEITHLEY .\" @@ -26,7 +26,7 @@ .\" other dealings in this Software without prior written authorization .\" from Kaleb S. KEITHLEY. .\" -.TH xvidtune 1 "Release 6.1" "X Version 11" +.TH xvidtune 1 __vendorversion__ .SH NAME xvidtune \- video mode tuner for XFree86 .SH SYNOPSIS Index: xc/programs/xvinfo/xvinfo.c diff -u xc/programs/xvinfo/xvinfo.c:1.4 xc/programs/xvinfo/xvinfo.c:1.6 --- xc/programs/xvinfo/xvinfo.c:1.4 Tue Oct 24 18:45:17 2000 +++ xc/programs/xvinfo/xvinfo.c Sun Apr 1 10:00:24 2001 @@ -1,9 +1,10 @@ -/* $XFree86: xc/programs/xvinfo/xvinfo.c,v 1.4 2000/10/24 22:45:17 dawes Exp $ */ +/* $XFree86: xc/programs/xvinfo/xvinfo.c,v 1.6 2001/04/01 14:00:24 tsi Exp $ */ #include #include #include #include +#include #include #include @@ -179,7 +180,7 @@ } formats = XvListImageFormats( - dpy, ainfo[i].base_id, &numImages); + dpy, ainfo[j].base_id, &numImages); fprintf(stdout, " Number of image formats: %i\n", numImages); Index: xc/programs/xvinfo/xvinfo.man diff -u xc/programs/xvinfo/xvinfo.man:1.1 xc/programs/xvinfo/xvinfo.man:1.3 --- xc/programs/xvinfo/xvinfo.man:1.1 Tue Sep 19 02:08:11 2000 +++ xc/programs/xvinfo/xvinfo.man Sat Jan 27 13:21:25 2001 @@ -1,7 +1,7 @@ -.\" $XFree86: xc/programs/xvinfo/xvinfo.man,v 1.1 2000/09/19 06:08:11 mvojkovi Exp $ +.\" $XFree86: xc/programs/xvinfo/xvinfo.man,v 1.3 2001/01/27 18:21:25 dawes Exp $ .\" -.TH xvinfo 1 "Release 6.4" "X Version 11" +.TH xvinfo 1 __vendorversion__ .SH NAME xvinfo - Print out X-Video extension adaptor information .SH SYNOPSIS @@ -16,7 +16,7 @@ .PP .TP 8 .B "-display \fIdisplay\fP" -This argument allows you to specify the server to query; see \fIX(1)\fP. +This argument allows you to specify the server to query; see \fIX(__miscmansuffix__)\fP. .SH ENVIRONMENT .PP .TP 8 Index: xc/programs/xwd/Imakefile diff -u xc/programs/xwd/Imakefile:1.2 xc/programs/xwd/Imakefile:1.5 --- xc/programs/xwd/Imakefile:1.2 Fri Mar 20 16:08:43 1998 +++ xc/programs/xwd/Imakefile Sun Apr 1 10:00:24 2001 @@ -1,6 +1,12 @@ -XCOMM $XConsortium: Imakefile /main/9 1996/01/14 16:53:10 kaleb $ - DEPLIBS = XkbClientDepLibs $(DEPXMULIB) $(DEPXLIB) -LOCAL_LIBRARIES = XkbClientLibs $(XMULIB) $(XLIB) +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:55:11 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/programs/xwd/Imakefile,v 1.5 2001/04/01 14:00:24 tsi Exp $ + + DEPLIBS = XkbClientDepLibs $(DEPXMUULIB) $(DEPXLIB) +LOCAL_LIBRARIES = XkbClientLibs $(XMUULIB) $(XLIB) SRCS = xwd.c dsimple.c list.c multiVis.c OBJS = xwd.o dsimple.o list.o multiVis.o DEFINES = XkbClientDefines Index: xc/programs/xwd/list.c diff -u xc/programs/xwd/list.c:3.3 xc/programs/xwd/list.c:3.4 --- xc/programs/xwd/list.c:3.3 Sun Mar 7 06:41:36 1999 +++ xc/programs/xwd/list.c Wed Jan 17 18:46:41 2001 @@ -1,4 +1,4 @@ -/* $TOG: list.c /main/5 1998/02/09 14:20:02 kaleb $ */ +/* $Xorg: list.c,v 1.4 2000/08/17 19:55:12 cpqbld Exp $ */ /** ------------------------------------------------------------------------ This file contains routines for manipulating generic lists. Lists are implemented with a "harness". In other words, each @@ -30,7 +30,7 @@ from The Open Group. ----------------------------------------------------------------------- **/ -/* $XFree86: xc/programs/xwd/list.c,v 3.3 1999/03/07 11:41:36 dawes Exp $ */ +/* $XFree86: xc/programs/xwd/list.c,v 3.4 2001/01/17 23:46:41 dawes Exp $ */ #include Index: xc/programs/xwd/list.h diff -u xc/programs/xwd/list.h:1.3 xc/programs/xwd/list.h:1.4 --- xc/programs/xwd/list.h:1.3 Sun Oct 4 05:42:02 1998 +++ xc/programs/xwd/list.h Wed Jan 17 18:46:42 2001 @@ -1,4 +1,4 @@ -/* $TOG: list.h /main/5 1998/02/09 14:20:09 kaleb $ */ +/* $Xorg: list.h,v 1.3 2000/08/17 19:55:12 cpqbld Exp $ */ /** ------------------------------------------------------------------------ This file contains routines for manipulating generic lists. Lists are implemented with a "harness". In other words, each Index: xc/programs/xwd/multiVis.c diff -u xc/programs/xwd/multiVis.c:1.5 xc/programs/xwd/multiVis.c:1.6 --- xc/programs/xwd/multiVis.c:1.5 Sun Mar 7 09:23:48 1999 +++ xc/programs/xwd/multiVis.c Wed Jan 17 18:46:42 2001 @@ -1,4 +1,4 @@ -/* $TOG: multiVis.c /main/5 1998/02/09 14:20:15 kaleb $ */ +/* $Xorg: multiVis.c,v 1.4 2000/08/17 19:55:12 cpqbld Exp $ */ /** ------------------------------------------------------------------------ This file contains functions to create a list of regions which tile a specified window. Each region contains all visible @@ -30,7 +30,7 @@ from The Open Group. ------------------------------------------------------------------------ **/ -/* $XFree86: xc/programs/xwd/multiVis.c,v 1.5 1999/03/07 14:23:48 dawes Exp $ */ +/* $XFree86: xc/programs/xwd/multiVis.c,v 1.6 2001/01/17 23:46:42 dawes Exp $ */ #include #include Index: xc/programs/xwd/multiVis.h diff -u xc/programs/xwd/multiVis.h:1.1.1.3 xc/programs/xwd/multiVis.h:1.1.1.4 --- xc/programs/xwd/multiVis.h:1.1.1.3 Sun Sep 27 04:01:48 1998 +++ xc/programs/xwd/multiVis.h Tue Jan 16 18:07:05 2001 @@ -1,4 +1,4 @@ -/* $TOG: multiVis.h /main/5 1998/02/09 14:20:24 kaleb $ */ +/* $Xorg: multiVis.h,v 1.3 2000/08/17 19:55:13 cpqbld Exp $ */ /** ------------------------------------------------------------------------ This file contains routines for manipulating generic lists. Lists are implemented with a "harness". In other words, each Index: xc/programs/xwd/wsutils.h diff -u xc/programs/xwd/wsutils.h:1.1.1.3 xc/programs/xwd/wsutils.h:1.1.1.4 --- xc/programs/xwd/wsutils.h:1.1.1.3 Sun Sep 27 04:01:49 1998 +++ xc/programs/xwd/wsutils.h Tue Jan 16 18:07:08 2001 @@ -1,4 +1,4 @@ -/* $TOG: wsutils.h /main/4 1998/02/09 14:20:30 kaleb $ */ +/* $Xorg: wsutils.h,v 1.3 2000/08/17 19:55:13 cpqbld Exp $ */ /** ------------------------------------------------------------------------ This file contains routines for manipulating generic lists. Lists are implemented with a "harness". In other words, each Index: xc/programs/xwd/xwd.c diff -u xc/programs/xwd/xwd.c:3.6 xc/programs/xwd/xwd.c:3.7 --- xc/programs/xwd/xwd.c:3.6 Thu Nov 30 19:24:36 2000 +++ xc/programs/xwd/xwd.c Wed Jan 17 18:46:42 2001 @@ -1,4 +1,4 @@ -/* $TOG: xwd.c /main/65 1998/02/09 14:20:36 kaleb $ */ +/* $Xorg: xwd.c,v 1.4 2000/08/17 19:55:13 cpqbld Exp $ */ /* @@ -21,7 +21,7 @@ in this Software without prior written authorization from The Open Group. */ -/* $XFree86: xc/programs/xwd/xwd.c,v 3.6 2000/12/01 00:24:36 dawes Exp $ */ +/* $XFree86: xc/programs/xwd/xwd.c,v 3.7 2001/01/17 23:46:42 dawes Exp $ */ /* * xwd.c MIT Project Athena, X Window system window raster image dumper. Index: xc/programs/xwd/xwd.man diff -u xc/programs/xwd/xwd.man:1.4 xc/programs/xwd/xwd.man:1.7 --- xc/programs/xwd/xwd.man:1.4 Sun Oct 4 05:42:03 1998 +++ xc/programs/xwd/xwd.man Sat Jan 27 13:21:25 2001 @@ -1,4 +1,4 @@ -.\" $TOG: xwd.man /main/23 1998/02/09 14:20:45 kaleb $ +.\" $Xorg: xwd.man,v 1.3 2000/08/17 19:55:14 cpqbld Exp $ .\" Copyright 1988, 1994, 1998 The Open Group .\" .\" All Rights Reserved. @@ -18,7 +18,10 @@ .\" not be used in advertising or otherwise to promote the sale, use or .\" other dealings in this Software without prior written authorization .\" from The Open Group. -.TH XWD 1 "Release 6.4" "X Version 11" +.\" +.\" $XFree86: xc/programs/xwd/xwd.man,v 1.7 2001/01/27 18:21:25 dawes Exp $ +.\" +.TH XWD 1 __xorgversion__ .SH NAME xwd - dump an image of an X window .SH SYNOPSIS @@ -41,7 +44,7 @@ .PP .TP 8 .B "-display \fIdisplay\fP" -This argument allows you to specify the server to connect to; see \fIX(1)\fP. +This argument allows you to specify the server to connect to; see \fIX(__miscmansuffix__)\fP. .PP .TP 8 .B "-help" @@ -119,7 +122,7 @@ .B XWDFile.h X Window Dump File format definition file. .SH SEE ALSO -xwud(1), xpr(1), X(1) +xwud(1), xpr(1), X(__miscmansuffix__) .SH AUTHORS Tony Della Fera, Digital Equipment Corp., MIT Project Athena .br Index: xc/programs/xwininfo/Imakefile diff -u xc/programs/xwininfo/Imakefile:1.2 xc/programs/xwininfo/Imakefile:1.5 --- xc/programs/xwininfo/Imakefile:1.2 Fri Mar 20 16:08:46 1998 +++ xc/programs/xwininfo/Imakefile Sun Apr 1 10:00:25 2001 @@ -1,6 +1,12 @@ -XCOMM $XConsortium: Imakefile,v 1.9 92/11/20 13:24:14 rws Exp $ - DEPLIBS = $(DEPXMULIB) $(DEPXLIB) -LOCAL_LIBRARIES = $(XMULIB) $(XLIB) +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:55:15 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/programs/xwininfo/Imakefile,v 1.5 2001/04/01 14:00:25 tsi Exp $ + + DEPLIBS = $(DEPXMUULIB) $(DEPXLIB) +LOCAL_LIBRARIES = $(XMUULIB) $(XLIB) SRCS = xwininfo.c dsimple.c OBJS = xwininfo.o dsimple.o Index: xc/programs/xwininfo/xwininfo.c diff -u xc/programs/xwininfo/xwininfo.c:1.5 xc/programs/xwininfo/xwininfo.c:1.7 --- xc/programs/xwininfo/xwininfo.c:1.5 Tue Mar 2 06:50:04 1999 +++ xc/programs/xwininfo/xwininfo.c Sun Apr 1 10:00:25 2001 @@ -1,4 +1,4 @@ -/* $TOG: xwininfo.c /main/56 1998/02/09 14:21:06 kaleb $ */ +/* $Xorg: xwininfo.c,v 1.3 2000/08/17 19:55:16 cpqbld Exp $ */ /* Copyright 1987, 1998 The Open Group @@ -22,7 +22,7 @@ from The Open Group. */ -/* $XFree86: xc/programs/xwininfo/xwininfo.c,v 1.5 1999/03/02 11:50:04 dawes Exp $ */ +/* $XFree86: xc/programs/xwininfo/xwininfo.c,v 1.7 2001/04/01 14:00:25 tsi Exp $ */ /* @@ -44,6 +44,7 @@ #include #include #include +#include /* Include routines to handle parsing defaults */ #include "dsimple.h" Index: xc/programs/xwininfo/xwininfo.man diff -u xc/programs/xwininfo/xwininfo.man:1.4 xc/programs/xwininfo/xwininfo.man:1.7 --- xc/programs/xwininfo/xwininfo.man:1.4 Sun Oct 4 05:42:04 1998 +++ xc/programs/xwininfo/xwininfo.man Sat Jan 27 13:21:25 2001 @@ -1,4 +1,4 @@ -.\" $TOG: xwininfo.man /main/26 1998/02/09 14:21:13 kaleb $ +.\" $Xorg: xwininfo.man,v 1.3 2000/08/17 19:55:16 cpqbld Exp $ .\" Copyright 1988, 1998 The Open Group .\" .\" All Rights Reserved. @@ -18,7 +18,10 @@ .\" not be used in advertising or otherwise to promote the sale, use or .\" other dealings in this Software without prior written authorization .\" from The Open Group. -.TH XWININFO 1 "Release 6.4" "X Version 11" +.\" +.\" $XFree86: xc/programs/xwininfo/xwininfo.man,v 1.7 2001/01/27 18:21:25 dawes Exp $ +.\" +.TH XWININFO 1 __xorgversion__ .SH NAME xwininfo \- window information utility for X .SH SYNOPSIS @@ -148,7 +151,7 @@ .PP .TP 8 .B \-display \fIdisplay\fP -This option allows you to specify the server to connect to; see \fIX(1)\fP. +This option allows you to specify the server to connect to; see \fIX(__miscmansuffix__)\fP. .SH EXAMPLE .PP The following is a sample summary taken with no options specified: @@ -181,7 +184,7 @@ .B DISPLAY To get the default host and display number. .SH SEE ALSO -X(1), xprop(1) +X(__miscmansuffix__), xprop(1) .SH BUGS Using \fB\-stats \-bits\fP shows some redundant information. .PP Index: xc/programs/xwud/Imakefile diff -u xc/programs/xwud/Imakefile:1.1.1.1 xc/programs/xwud/Imakefile:1.1.1.2 --- xc/programs/xwud/Imakefile:1.1.1.1 Wed Apr 27 03:13:08 1994 +++ xc/programs/xwud/Imakefile Tue Jan 16 18:07:17 2001 @@ -1,4 +1,4 @@ -XCOMM $XConsortium: Imakefile,v 1.8 93/08/19 09:35:34 rws Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:55:17 cpqbld Exp $ DEPLIBS = $(DEPXONLYLIB) LOCAL_LIBRARIES = $(XONLYLIB) Index: xc/programs/xwud/xwud.c diff -u xc/programs/xwud/xwud.c:3.4 xc/programs/xwud/xwud.c:3.5 --- xc/programs/xwud/xwud.c:3.4 Sun Mar 7 06:41:38 1999 +++ xc/programs/xwud/xwud.c Wed Jan 17 18:46:43 2001 @@ -1,4 +1,4 @@ -/* $TOG: xwud.c /main/61 1998/02/09 14:21:20 kaleb $ */ +/* $Xorg: xwud.c,v 1.4 2000/08/17 19:55:17 cpqbld Exp $ */ /* Copyright 1985, 1986, 1988, 1998 The Open Group @@ -22,7 +22,7 @@ from The Open Group. */ -/* $XFree86: xc/programs/xwud/xwud.c,v 3.4 1999/03/07 11:41:38 dawes Exp $ */ +/* $XFree86: xc/programs/xwud/xwud.c,v 3.5 2001/01/17 23:46:43 dawes Exp $ */ /* xwud - marginally useful raster image undumper */ Index: xc/programs/xwud/xwud.man diff -u xc/programs/xwud/xwud.man:1.4 xc/programs/xwud/xwud.man:1.7 --- xc/programs/xwud/xwud.man:1.4 Sun Oct 4 05:42:05 1998 +++ xc/programs/xwud/xwud.man Sat Jan 27 13:21:26 2001 @@ -1,4 +1,4 @@ -.\" $TOG: xwud.man /main/22 1998/02/09 14:21:26 kaleb $ +.\" $Xorg: xwud.man,v 1.3 2000/08/17 19:55:18 cpqbld Exp $ .\" Copyright 1988, 1998 The Open Group .\" .\" All Rights Reserved. @@ -18,7 +18,10 @@ .\" not be used in advertising or otherwise to promote the sale, use or .\" other dealings in this Software without prior written authorization .\" from The Open Group. -.TH XWUD 1 "Release 6.4" "X Version 11" +.\" +.\" $XFree86: xc/programs/xwud/xwud.man,v 1.7 2001/01/27 18:21:26 dawes Exp $ +.\" +.TH XWUD 1 __xorgversion__ .SH NAME xwud - image displayer for X .SH SYNOPSIS @@ -42,7 +45,7 @@ .PP .TP 8 .B "-display \fIdisplay\fP" -This option allows you to specify the server to connect to; see \fIX(1)\fP. +This option allows you to specify the server to connect to; see \fIX(__miscmansuffix__)\fP. .PP .TP 8 .B "-fg \fIcolor\fP" @@ -139,7 +142,7 @@ xwud doesn't handle big/deep images very well on servers that don't have the BIG-REQUESTS extension. .SH SEE ALSO -xwd(1), xpr(1), xstdcmap(1), X(1) +xwd(1), xpr(1), xstdcmap(1), X(__miscmansuffix__) .SH AUTHOR Bob Scheifler, MIT X Consortium Index: xc/util/memleak/Imakefile diff -u xc/util/memleak/Imakefile:3.4 xc/util/memleak/Imakefile:3.5 --- xc/util/memleak/Imakefile:3.4 Fri Feb 11 22:40:07 2000 +++ xc/util/memleak/Imakefile Wed Jan 17 18:20:07 2001 @@ -1,5 +1,10 @@ -XCOMM $XConsortium: Imakefile /main/9 1996/09/28 17:19:05 rws $ -XCOMM $XFree86: xc/util/memleak/Imakefile,v 3.4 2000/02/12 03:40:07 dawes Exp $ +XCOMM $Xorg: Imakefile,v 1.3 2000/08/17 19:55:19 cpqbld Exp $ + + + + +XCOMM $XFree86: xc/util/memleak/Imakefile,v 3.5 2001/01/17 23:20:07 dawes Exp $ + #define DoNormalLib YES #define DoSharedLib NO #define DoDebugLib NO Index: xc/util/memleak/README diff -u xc/util/memleak/README:1.1.1.1 xc/util/memleak/README:1.1.1.2 --- xc/util/memleak/README:1.1.1.1 Wed Apr 27 03:36:31 1994 +++ xc/util/memleak/README Tue Jan 16 18:41:15 2001 @@ -1,4 +1,4 @@ -.\" $XConsortium: README,v 1.3 92/05/15 14:04:04 keith Exp $ +.\" $Xorg: README,v 1.3 2000/08/17 19:55:19 cpqbld Exp $ This library replaces the C library allocator; providing malloc, free, realloc and calloc (sorry, no valloc) Index: xc/util/memleak/find-rtns.sh diff -u xc/util/memleak/find-rtns.sh:1.1.1.2 xc/util/memleak/find-rtns.sh:1.2 --- xc/util/memleak/find-rtns.sh:1.1.1.2 Sun Sep 27 05:12:16 1998 +++ xc/util/memleak/find-rtns.sh Fri Feb 16 08:24:10 2001 @@ -1,28 +1,45 @@ #!/bin/sh # -# $TOG: find-rtns.sh /main/2 1998/02/09 11:39:44 kaleb $ +# $Xorg: find-rtns.sh,v 1.3 2000/08/17 19:55:19 cpqbld Exp $ # # find-routines - convert leak tracer stack traces into file/lineno traces -# using a modified version of gdb-4.4 +# modified to work with the an unmodified version of +# gdb-4.18 # # Usage: find-routines {leak-tracing-output-files} # + TMP1=find-routine.tmp1 TMP=find-routine.tmp trap "rm -f $TMP $TMP1" 0 OBJ=$1 shift -grep 'return stack:' $* | +echo 'set width 500' > $TMP1 +for i in `grep '\(return stack:\)\|\(allocated at\)' $* | tr ' ' '\012' | - grep 0x | sort -u | sed 's;^;x/i ;' | - gdb $OBJ | grep '>:' | - sed 's/>.*$/>/' | sed 's/(gdb) //' > $TMP1 + grep 0x | sort -u`; + do + echo 'x/i '$i >> $TMP1 + echo 'i line * '$i >> $TMP1 +done -awk '/^"/ { printf("s;%s;%s line %s %s;\n", $4, $1, $3, $5) } -/^0/ { printf("s;%s;%s %s;\n", $1, $2, $1);}' $TMP1 > $TMP +cat $TMP1 | gdb $OBJ \ + | awk '\ + /^\(gdb\) \(?g?d?b?\)? ?0x[[:xdigit:]]*.*:.*/ \ + {a = gensub(/^\(gdb\) \(?g?d?b?\)? ?(0x[[:xdigit:]]*).*:.*/,"\\1","G");\ + b = gensub(/^\(gdb\) \(?g?d?b?\)? ?(0x[[:xdigit:]]*.*):.*/,"\\1","G");\ + printf("s;%s;%s",a,b); next; } \ + /.*No line.*/ \ + {printf(";\n",a);next} \ + /.*Line [[:digit:]]+.*/ \ + {a = gensub(/.*(Line [[:digit:]]+ of .*) starts.*/,"\\1","G"); \ + printf(" at %s;\n", a); next}'>> $TMP awk '/return stack/ { printf ("return stack\n"); for (i = 3; i <= NF; i++) printf ("\troutine %s\n", $i); } + /allocated at/ { printf ("allocated at\n"); + for (i = 3; i <= NF; i++) + printf ("\t\troutine %s\n", $i); } /^[A-Z]/ { print }' $* | sed -f $TMP Index: xc/util/memleak/fmalloc.c diff -u xc/util/memleak/fmalloc.c:3.10 xc/util/memleak/fmalloc.c:3.12 --- xc/util/memleak/fmalloc.c:3.10 Fri Dec 8 16:43:22 2000 +++ xc/util/memleak/fmalloc.c Fri Feb 16 08:24:10 2001 @@ -1,5 +1,5 @@ /* - * $TOG: fmalloc.c /main/8 1998/02/09 11:39:50 kaleb $ + * $Xorg: fmalloc.c,v 1.4 2000/08/17 19:55:20 cpqbld Exp $ * Copyright 1992, 1998 The Open Group @@ -22,7 +22,7 @@ * Author: Keith Packard, MIT X Consortium */ -/* $XFree86: xc/util/memleak/fmalloc.c,v 3.10 2000/12/08 21:43:22 keithp Exp $ */ +/* $XFree86: xc/util/memleak/fmalloc.c,v 3.12 2001/02/16 13:24:10 eich Exp $ */ /* @@ -91,6 +91,7 @@ mem returnStack[MAX_RETURN_STACK]; #endif mem *from; + mem *fromReturnStack; unsigned long allocTime; unsigned long freeTime; int size; @@ -190,10 +191,16 @@ if (h) { - fprintf (stderr, "%s 0x%08lx (size %d) (from 0x%lx)\n", + fprintf (stderr, "%s 0x%08lx (size %d) (from 0x%lx) ", s, DataForHead(h), h->desiredsize, h->from); #ifdef HAS_GET_RETURN_ADDRESS + if (h->fromReturnStack) + PrintReturnStack ("\nallocated at", h->fromReturnStack); + else + fprintf(stderr,"\n"); PrintReturnStack ("Saved return stack", h->returnStack); +#else + fprintf(stderr,"\n"); #endif } else @@ -228,7 +235,7 @@ MarkActiveBlock (p, from) mem *p, *from; { - HeadPtr h; + HeadPtr h, hh; int marked; int oldMarked; @@ -242,6 +249,11 @@ { h->marked |= marked; h->from = from; +#ifdef HAS_GET_RETURN_ADDRESS + SEARCH(activeMemory, hh, h->from) + if (hh) + h->fromReturnStack = hh->returnStack; +#endif if (!oldMarked) MarkMemoryRegion (DataForHead(h), (mem *) TailForHead(h)); } @@ -257,6 +269,11 @@ { h->marked |= marked; h->from = from; +#ifdef HAS_GET_RETURN_ADDRESS + SEARCH(activeMemory, hh, h->from) + if (hh) + h->fromReturnStack = hh->returnStack; +#endif } return; } @@ -468,7 +485,49 @@ if (freedMemoryTotal - deadMemoryTotal >= MAX_FREED_MEMORY) CheckMemory (); } +#if 0 +static void +WarnReferencedRange(rangeStart,rangeEnd,from,to) + mem *rangeStart; + mem *rangeEnd; + mem *from; + mem *to; +{ + mem *range = rangeStart; + while ( range < rangeEnd) { + if ((mem *)*range >= from && (mem *)*range <= to) + fprintf(stderr, "0x%lx still points into newly allocated range\n", + (unsigned long) range); + range++; + } +} + +static void +WarnReferencedTree(head, from, to) + tree *head; + char *from; + char *to; +{ + if (!head) return; + WarnReferencedTree(head->right,from,to); + WarnReferencedRange(DataForHead(head),TailForHead(head),from,to); + WarnReferencedTree(head->left,from,to); +} + +static void +WarnReferenced(from, to) + char *from; + char *to; +{ + mem foo; + + foo = 1; + WarnReferencedTree(activeMemory,from,to); + WarnReferencedRange(BOTTOM_OF_DATA, endOfStaticMemory,from,to); + WarnReferencedRange(&foo, TOP_OF_STACK,from,to); +} +#endif /* * Entry points: * @@ -486,6 +545,8 @@ foo = 1; fprintf (stderr, "\nCheckMemory\n"); + fprintf (stderr, "Static Memory Area: 0x%lx to 0x%lx\n", + BOTTOM_OF_DATA, endOfStaticMemory); fprintf (stderr, "%d bytes active memory in %d allocations\n", activeMemoryTotal, activeMemoryCount); fprintf (stderr, "%d bytes freed memory held from %d allocations\n", Index: xc/util/memleak/ftest.c diff -u xc/util/memleak/ftest.c:1.1.1.2 xc/util/memleak/ftest.c:1.2 --- xc/util/memleak/ftest.c:1.1.1.2 Sun Sep 27 05:12:17 1998 +++ xc/util/memleak/ftest.c Fri Feb 16 08:24:10 2001 @@ -1,5 +1,5 @@ /* - * $TOG: ftest.c /main/5 1998/02/09 11:39:56 kaleb $ + * $Xorg: ftest.c,v 1.3 2000/08/17 19:55:20 cpqbld Exp $ * Copyright 1992, 1998 The Open Group @@ -22,7 +22,7 @@ * Author: Keith Packard, MIT X Consortium */ -static char *foo, *bar, *bletch; +static char *foo, *bar, *bletch, *snarf; static char *glorf[100]; extern char *malloc (); @@ -34,12 +34,14 @@ foo = malloc (1000); bar = malloc (2000); bletch = malloc (3000); + snarf = malloc(1000); for (i = 0; i < 100; i++) glorf[i] = malloc (i * 200); for (i = 0; i < 100; i++) { free (glorf[i]); glorf[i] = 0; } + *(char **)snarf = bletch; free (foo); free (bletch); bletch = 0; Index: xc/util/memleak/getreti386.c diff -u xc/util/memleak/getreti386.c:3.4 xc/util/memleak/getreti386.c:3.5 --- xc/util/memleak/getreti386.c:3.4 Fri Dec 8 16:44:05 2000 +++ xc/util/memleak/getreti386.c Fri Feb 16 08:24:10 2001 @@ -4,7 +4,7 @@ * Copyright (c) 1995 Jeffrey Hsu */ -/* $XFree86: xc/util/memleak/getreti386.c,v 3.4 2000/12/08 21:44:05 keithp Exp $ */ +/* $XFree86: xc/util/memleak/getreti386.c,v 3.5 2001/02/16 13:24:10 eich Exp $ */ #define get_current_fp(first_local) ((unsigned)&(first_local) + 4) #define prev_fp_from_fp(fp) *((unsigned *) fp) @@ -17,7 +17,7 @@ #define CRT0_ADDRESS 0x109a #endif #ifdef linux -#define CRT0_ADDRESS 0x804a3d0 +#define CRT0_ADDRESS 0x80482fc #endif static unsigned long Index: xc/util/memleak/getretmips.c diff -u xc/util/memleak/getretmips.c:1.1.1.2 xc/util/memleak/getretmips.c:1.1.1.3 --- xc/util/memleak/getretmips.c:1.1.1.2 Sun Sep 27 05:12:17 1998 +++ xc/util/memleak/getretmips.c Tue Jan 16 18:41:20 2001 @@ -1,5 +1,5 @@ /* - * $TOG: getretmips.c /main/5 1998/02/09 11:40:00 kaleb $ + * $Xorg: getretmips.c,v 1.3 2000/08/17 19:55:20 cpqbld Exp $ * Copyright 1992, 1998 The Open Group Index: xc/util/memleak/getretspar.c diff -u xc/util/memleak/getretspar.c:1.1.1.2 xc/util/memleak/getretspar.c:1.1.1.3 --- xc/util/memleak/getretspar.c:1.1.1.2 Sun Sep 27 05:12:18 1998 +++ xc/util/memleak/getretspar.c Tue Jan 16 18:41:21 2001 @@ -1,5 +1,5 @@ /* - * $TOG: getretspar.c /main/3 1998/02/09 11:40:04 kaleb $ + * $Xorg: getretspar.c,v 1.3 2000/08/17 19:55:20 cpqbld Exp $ * Copyright 1992, 1998 The Open Group Index: xc/util/memleak/getrettest.c diff -u xc/util/memleak/getrettest.c:1.1.1.3 xc/util/memleak/getrettest.c:1.1.1.4 --- xc/util/memleak/getrettest.c:1.1.1.3 Sun Sep 27 05:12:19 1998 +++ xc/util/memleak/getrettest.c Tue Jan 16 18:41:22 2001 @@ -1,5 +1,5 @@ /* - * $TOG: getrettest.c /main/5 1998/02/09 11:40:08 kaleb $ + * $Xorg: getrettest.c,v 1.3 2000/08/17 19:55:20 cpqbld Exp $ * Copyright 1992, 1998 The Open Group Index: xc/util/memleak/mipsstack.s diff -u xc/util/memleak/mipsstack.s:1.1.1.2 xc/util/memleak/mipsstack.s:1.1.1.3 --- xc/util/memleak/mipsstack.s:1.1.1.2 Sun Sep 27 05:12:19 1998 +++ xc/util/memleak/mipsstack.s Tue Jan 16 18:41:23 2001 @@ -1,5 +1,5 @@ /* - * $TOG: mipsstack.s /main/4 1998/02/09 11:40:17 kaleb $ + * $Xorg: mipsstack.s,v 1.3 2000/08/17 19:55:20 cpqbld Exp $ * Copyright 1992, 1998 The Open Group Index: xc/util/memleak/sparcsolstack.s diff -u xc/util/memleak/sparcsolstack.s:1.1.1.1 xc/util/memleak/sparcsolstack.s:1.1.1.2 --- xc/util/memleak/sparcsolstack.s:1.1.1.1 Wed Apr 27 03:36:31 1994 +++ xc/util/memleak/sparcsolstack.s Tue Jan 16 18:41:24 2001 @@ -1,4 +1,4 @@ -! $XConsortium: sparcsolstack.s,v 1.1 93/12/03 09:26:24 kaleb Exp $ +! $Xorg: sparcsolstack.s,v 1.3 2000/08/17 19:55:20 cpqbld Exp $ .seg "text" .proc 16 .globl getStackPointer Index: xc/util/memleak/sparcstack.s diff -u xc/util/memleak/sparcstack.s:1.1.1.1 xc/util/memleak/sparcstack.s:1.1.1.2 --- xc/util/memleak/sparcstack.s:1.1.1.1 Wed Apr 27 03:36:31 1994 +++ xc/util/memleak/sparcstack.s Tue Jan 16 18:41:25 2001 @@ -1,4 +1,4 @@ -# $XConsortium: sparcstack.s,v 1.2 92/04/08 17:19:18 keith Exp $ +# $Xorg: sparcstack.s,v 1.3 2000/08/17 19:55:20 cpqbld Exp $ .seg "text" .proc 16 .globl _getStackPointer Index: xc/util/misc/dlsym.c diff -u xc/util/misc/dlsym.c:1.1.1.1 xc/util/misc/dlsym.c:1.1.1.2 --- xc/util/misc/dlsym.c:1.1.1.1 Wed Apr 27 03:36:29 1994 +++ xc/util/misc/dlsym.c Tue Jan 16 18:41:27 2001 @@ -1,4 +1,4 @@ -/* $XConsortium: dlsym.c,v 1.1 93/12/06 16:24:15 kaleb Exp $ */ +/* $Xorg: dlsym.c,v 1.3 2000/08/17 19:55:21 cpqbld Exp $ */ /* * Stub interface to dynamic linker routines * that SunOS uses but didn't ship with 4.1. Index: xc/util/misc/rt.stdarg.h diff -u xc/util/misc/rt.stdarg.h:1.1.1.1 xc/util/misc/rt.stdarg.h:1.1.1.2 --- xc/util/misc/rt.stdarg.h:1.1.1.1 Wed Apr 27 03:36:29 1994 +++ xc/util/misc/rt.stdarg.h Tue Jan 16 18:41:27 2001 @@ -1,4 +1,4 @@ -/* $XConsortium: rt.stdarg.h,v 1.1 93/12/06 16:24:27 kaleb Exp $ */ +/* $Xorg: rt.stdarg.h,v 1.3 2000/08/17 19:55:21 cpqbld Exp $ */ #ifndef _STDARG_H #define _STDARG_H typedef int *va_list; Index: xc/util/misc/thr_stubs.c diff -u xc/util/misc/thr_stubs.c:1.1.1.1 xc/util/misc/thr_stubs.c:1.1.1.2 --- xc/util/misc/thr_stubs.c:1.1.1.1 Wed Apr 27 03:36:29 1994 +++ xc/util/misc/thr_stubs.c Tue Jan 16 18:41:28 2001 @@ -1,4 +1,4 @@ -/* $XConsortium: thr_stubs.c,v 1.3 94/01/13 13:59:50 kaleb Exp $ */ +/* $Xorg: thr_stubs.c,v 1.3 2000/08/17 19:55:21 cpqbld Exp $ */ /* * Stub interface to thread routines that Solaris needs but shipped * broken/buggy versions in 5.2 and 5.3 Index: xc/util/patch/Configure diff -u xc/util/patch/Configure:1.1.1.2 xc/util/patch/Configure:1.1.1.3 --- xc/util/patch/Configure:1.1.1.2 Wed Jan 3 03:18:34 1996 +++ xc/util/patch/Configure Tue Jan 16 18:41:29 2001 @@ -9,7 +9,7 @@ # of config.h for certain machines, so you might look for one of those.) # # oldHeader: Head.U,v 1.0 87/05/22 12:28:10 lwall Exp $ -# $XConsortium: Configure,v 1.1 94/09/09 20:04:01 gildea Exp $ +# $Xorg: Configure,v 1.3 2000/08/17 19:55:21 cpqbld Exp $ # # Yes, you may rip this off to use in other distribution packages. # (Note: this Configure script was generated automatically. Rather than Index: xc/util/patch/EXTERN.h diff -u xc/util/patch/EXTERN.h:1.1.1.2 xc/util/patch/EXTERN.h:1.1.1.3 --- xc/util/patch/EXTERN.h:1.1.1.2 Wed Jan 3 03:18:35 1996 +++ xc/util/patch/EXTERN.h Tue Jan 16 18:41:30 2001 @@ -1,5 +1,5 @@ /* oldHeader: EXTERN.h,v 2.0 86/09/17 15:35:37 lwall Exp $ - * $XConsortium: EXTERN.h,v 2.1 94/09/09 20:04:44 gildea Exp $ + * $Xorg: EXTERN.h,v 1.3 2000/08/17 19:55:21 cpqbld Exp $ * * Revision 2.0 86/09/17 15:35:37 lwall * Baseline for netwide release. Index: xc/util/patch/INTERN.h diff -u xc/util/patch/INTERN.h:1.1.1.2 xc/util/patch/INTERN.h:1.1.1.3 --- xc/util/patch/INTERN.h:1.1.1.2 Wed Jan 3 03:18:37 1996 +++ xc/util/patch/INTERN.h Tue Jan 16 18:41:31 2001 @@ -1,5 +1,5 @@ /* oldHeader: INTERN.h,v 2.0 86/09/17 15:35:58 lwall Exp $ - * $XConsortium: INTERN.h,v 2.1 94/09/09 20:08:54 gildea Exp $ + * $Xorg: INTERN.h,v 1.3 2000/08/17 19:55:21 cpqbld Exp $ * * Revision 2.0 86/09/17 15:35:58 lwall * Baseline for netwide release. Index: xc/util/patch/Makefile.SH diff -u xc/util/patch/Makefile.SH:1.1.1.2 xc/util/patch/Makefile.SH:1.1.1.3 --- xc/util/patch/Makefile.SH:1.1.1.2 Wed Jan 3 03:18:38 1996 +++ xc/util/patch/Makefile.SH Tue Jan 16 18:41:32 2001 @@ -4,7 +4,7 @@ echo "Extracting Makefile (with variable substitutions)" cat >Makefile <. Some algorithms adapted from GNU Emacs. */ Index: xc/util/patch/common.h diff -u xc/util/patch/common.h:3.0 xc/util/patch/common.h:3.1 --- xc/util/patch/common.h:3.0 Sun Sep 29 09:49:49 1996 +++ xc/util/patch/common.h Wed Jan 17 18:20:07 2001 @@ -1,5 +1,5 @@ /* oldHeader: common.h,v 2.0.1.2 88/06/22 20:44:53 lwall Locked $ - * $XConsortium: common.h,v 3.3 94/09/14 21:13:08 gildea Exp $ + * $Xorg: common.h,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ * * Revision 2.0.1.2 88/06/22 20:44:53 lwall * patch12: sprintf was declared wrong Index: xc/util/patch/config.h.nt diff -u xc/util/patch/config.h.nt:3.0 xc/util/patch/config.h.nt:3.1 --- xc/util/patch/config.h.nt:3.0 Fri Jan 5 08:24:31 1996 +++ xc/util/patch/config.h.nt Wed Jan 17 18:20:07 2001 @@ -1,5 +1,5 @@ -/* $XConsortium: config.h.nt,v 1.1 94/09/09 20:26:16 kaleb Exp $ */ +/* $Xorg: config.h.nt,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ */ /* Portability variables. -*- C -*- */ Index: xc/util/patch/inp.c diff -u xc/util/patch/inp.c:1.1.1.2 xc/util/patch/inp.c:1.1.1.3 --- xc/util/patch/inp.c:1.1.1.2 Wed Jan 3 03:18:44 1996 +++ xc/util/patch/inp.c Tue Jan 16 18:41:40 2001 @@ -1,4 +1,4 @@ -/* $XConsortium: inp.c,v 3.4 94/09/14 21:18:35 gildea Exp $ +/* $Xorg: inp.c,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ * * Revision 3.1 94/03/29 13:39:15 gildea * check that a patch that creates a file has not already been applied. Index: xc/util/patch/inp.h diff -u xc/util/patch/inp.h:1.1.1.2 xc/util/patch/inp.h:1.1.1.3 --- xc/util/patch/inp.h:1.1.1.2 Wed Jan 3 03:18:45 1996 +++ xc/util/patch/inp.h Tue Jan 16 18:41:41 2001 @@ -1,5 +1,5 @@ /* oldHeader: inp.h,v 2.0 86/09/17 15:37:25 lwall Exp $ - * $XConsortium: inp.h,v 2.1 94/09/09 20:04:28 gildea Exp $ + * $Xorg: inp.h,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ * * Revision 2.0 86/09/17 15:37:25 lwall * Baseline for netwide release. Index: xc/util/patch/patch.c diff -u xc/util/patch/patch.c:1.1.1.2 xc/util/patch/patch.c:1.1.1.3 --- xc/util/patch/patch.c:1.1.1.2 Wed Jan 3 03:18:47 1996 +++ xc/util/patch/patch.c Tue Jan 16 18:41:42 2001 @@ -1,5 +1,5 @@ char rcsid[] = - "$XConsortium: patch.c,v 3.3 94/09/14 21:21:33 gildea Exp $"; + "$Xorg: patch.c,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ /* "oldHeader: patch.c,v 2.0.2.0 90/05/01 22:17:50 davison Locked $"; */ /* patch - a program to apply diffs to original files Index: xc/util/patch/patch.man diff -u xc/util/patch/patch.man:1.1.1.2 xc/util/patch/patch.man:1.2 --- xc/util/patch/patch.man:1.1.1.2 Wed Jan 3 03:18:48 1996 +++ xc/util/patch/patch.man Wed Feb 7 17:35:23 2001 @@ -1,6 +1,6 @@ .\" -*- nroff -*- .rn '' }` -'\" $XConsortium: patch.man,v 1.2 94/09/09 20:04:28 gildea Exp $ +'\" $Xorg: patch.man,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ '\" '\" Revision 2.0.1.2 88/06/22 20:47:18 lwall '\" patch12: now avoids Bell System Logo @@ -33,6 +33,7 @@ '\" Revision 1.2 84/12/04 17:22:02 lwall '\" Baseline version. '\" +'\" $XFree86: xc/util/patch/patch.man,v 1.2 2001/02/07 22:35:23 tsi Exp $ .de Sh .br .ne 5 @@ -539,7 +540,7 @@ swapped code, but that would take an extra pass. .PP If code has been duplicated (for instance with #ifdef OLDCODE ... #else ... -#endif), +\&#endif), .I patch is incapable of patching both versions, and, if it works at all, will likely patch the wrong one, and tell you that it succeeded to boot. Index: xc/util/patch/patchlevel.h diff -u xc/util/patch/patchlevel.h:1.1.1.2 xc/util/patch/patchlevel.h:1.1.1.3 --- xc/util/patch/patchlevel.h:1.1.1.2 Wed Jan 3 03:18:50 1996 +++ xc/util/patch/patchlevel.h Tue Jan 16 18:41:44 2001 @@ -1,2 +1,2 @@ -/* $XConsortium: patchlevel.h,v 3.2 94/09/14 21:31:55 gildea Exp $ */ +/* $Xorg: patchlevel.h,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ */ #define PATCHLEVEL "12u9.XC2" Index: xc/util/patch/pch.c diff -u xc/util/patch/pch.c:3.1 xc/util/patch/pch.c:3.2 --- xc/util/patch/pch.c:3.1 Sun Sep 29 09:49:51 1996 +++ xc/util/patch/pch.c Wed Jan 17 18:20:07 2001 @@ -1,5 +1,5 @@ /* oldHeader: pch.c,v 2.0.1.7 88/06/03 15:13:28 lwall Locked $ - * $XConsortium: pch.c,v 3.3 94/09/14 21:22:55 gildea Exp $ +/* $Xorg: pch.c,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ * * Revision 2.0.2.0 90/05/01 22:17:51 davison * patch12u: unidiff support added Index: xc/util/patch/pch.h diff -u xc/util/patch/pch.h:1.1.1.2 xc/util/patch/pch.h:1.1.1.3 --- xc/util/patch/pch.h:1.1.1.2 Wed Jan 3 03:18:52 1996 +++ xc/util/patch/pch.h Tue Jan 16 18:41:46 2001 @@ -1,5 +1,5 @@ /* oldHeader: pch.h,v 2.0.1.1 87/01/30 22:47:16 lwall Exp $ - * $XConsortium: pch.h,v 3.3 94/09/14 21:24:15 gildea Exp $ + * $Xorg: pch.h,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ * * Revision 2.0.1.1 87/01/30 22:47:16 lwall * Added do_ed_script(). Index: xc/util/patch/util.c diff -u xc/util/patch/util.c:3.0 xc/util/patch/util.c:3.1 --- xc/util/patch/util.c:3.0 Sun Sep 29 09:49:52 1996 +++ xc/util/patch/util.c Wed Jan 17 18:20:07 2001 @@ -1,4 +1,4 @@ -/* $XConsortium: util.c,v 3.3 94/09/14 21:26:09 gildea Exp $ */ +/* $Xorg: util.c,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ */ #define const /*nothing*/ Index: xc/util/patch/util.h diff -u xc/util/patch/util.h:1.1.1.2 xc/util/patch/util.h:1.1.1.3 --- xc/util/patch/util.h:1.1.1.2 Wed Jan 3 03:18:55 1996 +++ xc/util/patch/util.h Tue Jan 16 18:41:49 2001 @@ -1,5 +1,5 @@ /* oldHeader: util.h,v 2.0 86/09/17 15:40:06 lwall Exp $ - * $XConsortium: util.h,v 2.1 94/09/09 20:04:28 gildea Exp $ + * $Xorg: util.h,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ * * Revision 2.0 86/09/17 15:40:06 lwall * Baseline for netwide release. Index: xc/util/patch/version.c diff -u xc/util/patch/version.c:1.1.1.2 xc/util/patch/version.c:1.1.1.3 --- xc/util/patch/version.c:1.1.1.2 Wed Jan 3 03:18:56 1996 +++ xc/util/patch/version.c Tue Jan 16 18:41:50 2001 @@ -1,5 +1,5 @@ /* oldHeader: version.c,v 2.0 86/09/17 15:40:11 lwall Exp $ - * $XConsortium: version.c,v 2.1 94/09/09 20:04:28 gildea Exp $ + * $Xorg: version.c,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ * * Revision 2.0 86/09/17 15:40:11 lwall * Baseline for netwide release. Index: xc/util/patch/version.h diff -u xc/util/patch/version.h:1.1.1.2 xc/util/patch/version.h:1.1.1.3 --- xc/util/patch/version.h:1.1.1.2 Wed Jan 3 03:18:57 1996 +++ xc/util/patch/version.h Tue Jan 16 18:41:52 2001 @@ -1,5 +1,5 @@ /* oldHeader: version.h,v 2.0 86/09/17 15:40:14 lwall Exp $ - * $XConsortium: version.h,v 2.1 94/09/09 20:04:28 gildea Exp $ + * $Xorg: version.h,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ * * Revision 2.0 86/09/17 15:40:14 lwall * Baseline for netwide release. Index: xc/util/patch/winnt.h diff -u xc/util/patch/winnt.h:3.0 xc/util/patch/winnt.h:3.1 --- xc/util/patch/winnt.h:3.0 Fri Jan 5 08:24:33 1996 +++ xc/util/patch/winnt.h Wed Jan 17 18:20:07 2001 @@ -1,5 +1,5 @@ -/* $XConsortium: winnt.h,v 1.1 94/09/09 20:27:49 kaleb Exp $ */ +/* $Xorg: winnt.h,v 1.3 2000/08/17 19:55:22 cpqbld Exp $ */ #define stat _stat