diff options
author | Adam Jackson <ajax@benzedrine.nwnk.net> | 2006-07-26 19:03:39 -0400 |
---|---|---|
committer | Adam Jackson <ajax@benzedrine.nwnk.net> | 2006-07-26 19:03:39 -0400 |
commit | 990a4009057e068f41d20b95aa0c59357185650d (patch) | |
tree | 7bd1dd6832f839f00a71ed79f06d59323840409c | |
parent | 39158e98acb29e97a2682d4a37385f9141b484c4 (diff) |
Remove getconfig horrorshow. Replace with a static built-in rule list for now.
-rw-r--r-- | configure.ac | 1 | ||||
-rw-r--r-- | hw/xfree86/Makefile.am | 4 | ||||
-rw-r--r-- | hw/xfree86/common/xf86AutoConfig.c | 204 | ||||
-rw-r--r-- | hw/xfree86/getconfig/.gitignore | 4 | ||||
-rw-r--r-- | hw/xfree86/getconfig/Makefile.am | 56 | ||||
-rw-r--r-- | hw/xfree86/getconfig/cfg.man.pre | 137 | ||||
-rw-r--r-- | hw/xfree86/getconfig/cfg.sample | 110 | ||||
-rw-r--r-- | hw/xfree86/getconfig/getconfig | 43 | ||||
-rw-r--r-- | hw/xfree86/getconfig/getconfig.man.pre | 98 | ||||
-rw-r--r-- | hw/xfree86/getconfig/getconfig.pl | 433 | ||||
-rw-r--r-- | hw/xfree86/getconfig/xorg.cfg | 50 |
11 files changed, 64 insertions, 1076 deletions
diff --git a/configure.ac b/configure.ac index f8aa32a7b..c14187eb7 100644 --- a/configure.ac +++ b/configure.ac @@ -1659,7 +1659,6 @@ hw/xfree86/dri/Makefile hw/xfree86/dummylib/Makefile hw/xfree86/exa/Makefile hw/xfree86/fbdevhw/Makefile -hw/xfree86/getconfig/Makefile hw/xfree86/i2c/Makefile hw/xfree86/int10/Makefile hw/xfree86/loader/Makefile diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am index 3a5ef65ac..525c4e0a2 100644 --- a/hw/xfree86/Makefile.am +++ b/hw/xfree86/Makefile.am @@ -7,12 +7,12 @@ DOC_SUBDIR = doc SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support parser rac \ ramdac shadowfb vbe vgahw xaa xf1bpp xf4bpp xf8_16bpp \ xf8_32bpp loader scanpci dixmods exa \ - $(DRI_SUBDIR) utils $(DOC_SUBDIR) getconfig + $(DRI_SUBDIR) utils $(DOC_SUBDIR) DIST_SUBDIRS = common ddc dummylib i2c x86emu int10 fbdevhw os-support \ parser rac ramdac shadowfb vbe vgahw xaa xf1bpp xf4bpp \ xf8_16bpp xf8_32bpp loader scanpci dixmods dri exa \ - utils doc getconfig + utils doc bin_PROGRAMS = Xorg diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c index f0a41c67c..37cf52e34 100644 --- a/hw/xfree86/common/xf86AutoConfig.c +++ b/hw/xfree86/common/xf86AutoConfig.c @@ -1,6 +1,3 @@ -/* $DHD: xc/programs/Xserver/hw/xfree86/common/xf86AutoConfig.c,v 1.15 2003/09/24 19:39:36 dawes Exp $ */ -/* $XdotOrg: $ */ - /* * Copyright 2003 by David H. Dawes. * Copyright 2003 by X-Oz Technologies. @@ -32,7 +29,6 @@ * Author: David Dawes <dawes@XFree86.Org>. */ - #ifdef HAVE_XORG_CONFIG_H #include <xorg-config.h> #endif @@ -44,9 +40,7 @@ #include "xf86Priv.h" #include "xf86_OSlib.h" -/* - * Sections for the default built-in configuration. - */ +/* Sections for the default built-in configuration. */ #define BUILTIN_MODULE_SECTION \ "Section \"Module\"\n" \ @@ -100,17 +94,6 @@ #define BUILTIN_LAYOUT_SECTION_POST \ "EndSection\n\n" - -#ifndef GET_CONFIG_CMD -#define GET_CONFIG_CMD "getconfig" -#endif - -#ifndef GETCONFIG_DIR -#define GETCONFIG_DIR PROJECTROOT "/lib/X11/getconfig" -#endif - -#define GETCONFIG_WHITESPACE " \t\n" - static const char **builtinConfig = NULL; static int builtinLines = 0; static const char *deviceList[] = { @@ -170,6 +153,61 @@ AppendToConfig(const char *s) AppendToList(s, &builtinConfig, &builtinLines); } +static const char * +videoPtrToDriverName(pciVideoPtr info) +{ + /* + * things not handled yet: + * amd/cyrix/nsc + * xgi + */ + + switch (info->vendor) + { + case 0x1142: return "apm"; + case 0xedd8: return "ark"; + case 0x1a03: return "ast"; + case 0x1002: return "ati"; + case 0x102c: return "chips"; + case 0x1013: return "cirrus"; + case 0x8086: + if ((info->chipType == 0x00d1) || (info->chipType == 0x7800)) + return "i740"; + else return "i810"; + case 0x102b: return "mga"; + case 0x10c8: return "neomagic"; + case 0x105d: return "i128"; + case 0x10de: case 0x12d2: return "nv"; + case 0x1163: return "rendition"; + case 0x5333: + switch (info->chipType) + { + case 0x88d0: case 0x88d1: case 0x88f0: case 0x8811: + case 0x8812: case 0x8814: case 0x8901: + return "s3"; + case 0x5631: case 0x883d: case 0x8a01: case 0x8a10: + case 0x8c01: case 0x8c03: case 0x8904: case 0x8a13: + return "s3virge"; + default: + return "savage"; + } + case 0x1039: return "sis"; + case 0x126f: return "siliconmotion"; + case 0x121a: + if (info->chipType < 0x0003) + return "voodoo"; + else + return "tdfx"; + case 0x3d3d: return "glint"; + case 0x1023: return "trident"; + case 0x100c: return "tseng"; + case 0x1106: return "via"; + case 0x15ad: return "vmware"; + default: break; + } + return NULL; +} + Bool xf86AutoConfig(void) { @@ -177,7 +215,6 @@ xf86AutoConfig(void) char buf[1024]; pciVideoPtr *pciptr, info = NULL; char *driver = NULL; - FILE *gp = NULL; ConfigStatus ret; /* Find the primary device, and get some information about it. */ @@ -194,108 +231,8 @@ xf86AutoConfig(void) ErrorF("xf86PciVideoInfo is not set\n"); } - if (info) { - char *tmp; - char *path = NULL, *a, *b; - char *searchPath = NULL; - - /* - * Look for the getconfig program first in the xf86ModulePath - * directories, then in GETCONFIG_DIR, then in BINDIR. If it - * isn't found in any of those locations, just use the normal - * search path. - */ - - if (xf86ModulePath) { - a = xnfstrdup(xf86ModulePath); - b = strtok(a, ","); - while (b) { - path = xnfrealloc(path, - strlen(b) + 1 + strlen(GET_CONFIG_CMD) + 1); - sprintf(path, "%s/%s", b, GET_CONFIG_CMD); - if (access(path, X_OK) == 0) - break; - b = strtok(NULL, ","); - } - if (!b) { - xfree(path); - path = NULL; - } - xfree(a); - } - - if (!path) { - path = xnfstrdup(GETCONFIG_DIR "/" GET_CONFIG_CMD); - if (access(path, X_OK) != 0) { - xfree(path); - path = NULL; - } - } - -#ifdef BINDIR - if (!path) { - path = xnfstrdup(BINDIR "/" GET_CONFIG_CMD); - if (access(path, X_OK) != 0) { - xfree(path); - path = NULL; - } - } -#endif - - if (!path) - path = xnfstrdup(GET_CONFIG_CMD); - - /* - * Build up the config file directory search path: - * - * /etc/X11 - * PROJECTROOT/etc/X11 - * xf86ModulePath - * PROJECTROOT/lib/X11/getconfig (GETCONFIG_DIR) - */ - - searchPath = xnfalloc(strlen("/etc/X11") + 1 + - strlen(PROJECTROOT "/etc/X11") + 1 + - (xf86ModulePath ? strlen(xf86ModulePath) : 0) - + 1 + - strlen(GETCONFIG_DIR) + 1); - strcpy(searchPath, "/etc/X11," PROJECTROOT "/etc/X11,"); - if (xf86ModulePath && *xf86ModulePath) { - strcat(searchPath, xf86ModulePath); - strcat(searchPath, ","); - } - strcat(searchPath, GETCONFIG_DIR); - - ErrorF("xf86AutoConfig: Primary PCI is %d:%d:%d\n", - info->bus, info->device, info->func); - - snprintf(buf, sizeof(buf), "%s" -#ifdef DEBUG - " -D" -#endif - " -X %d" - " -I %s" - " -v 0x%04x -d 0x%04x -r 0x%02x -s 0x%04x" - " -b 0x%04x -c 0x%04x", - path, - (unsigned int)xorgGetVersion(), - searchPath, - info->vendor, info->chipType, info->chipRev, - info->subsysVendor, info->subsysCard, - info->class << 8 | info->subclass); - ErrorF("Running \"%s\"\n", buf); - gp = Popen(buf, "r"); - if (gp) { - if (fgets(buf, sizeof(buf) - 1, gp)) { - buf[strlen(buf) - 1] = '\0'; - tmp = strtok(buf, GETCONFIG_WHITESPACE); - if (tmp) - driver = xnfstrdup(tmp); - } - } - xfree(path); - xfree(searchPath); - } + if (info) + driver = videoPtrToDriverName(info); AppendToConfig(BUILTIN_MODULE_SECTION); AppendToConfig(BUILTIN_MONITOR_SECTION); @@ -306,19 +243,12 @@ xf86AutoConfig(void) AppendToConfig(buf); ErrorF("New driver is \"%s\"\n", driver); buf[0] = '\t'; - while (fgets(buf + 1, sizeof(buf) - 2, gp)) { - AppendToConfig(buf); - ErrorF("Extra line: %s", buf); - } AppendToConfig(BUILTIN_DEVICE_SECTION_POST); snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, driver, 0, driver, 0); AppendToConfig(buf); } - if (gp) - Pclose(gp); - for (p = deviceList; *p; p++) { snprintf(buf, sizeof(buf), BUILTIN_DEVICE_SECTION, *p, 0, *p); AppendToConfig(buf); @@ -337,13 +267,6 @@ xf86AutoConfig(void) } AppendToConfig(BUILTIN_LAYOUT_SECTION_POST); -#ifdef BUILTIN_EXTRA - AppendToConfig(BUILTIN_EXTRA); -#endif - - if (driver) - xfree(driver); - xf86MsgVerb(X_DEFAULT, 0, "Using default built-in configuration (%d lines)\n", builtinLines); @@ -356,12 +279,9 @@ xf86AutoConfig(void) xf86setBuiltinConfig(builtinConfig); ret = xf86HandleConfigFile(TRUE); FreeConfig(); - switch(ret) { - case CONFIG_OK: - return TRUE; - default: + + if (ret != CONFIG_OK) xf86Msg(X_ERROR, "Error parsing the built-in default configuration.\n"); - return FALSE; - } -} + return (ret == CONFIG_OK); +} diff --git a/hw/xfree86/getconfig/.gitignore b/hw/xfree86/getconfig/.gitignore deleted file mode 100644 index dc5d5cb4d..000000000 --- a/hw/xfree86/getconfig/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -getconfig.1 -getconfig.1x -getconfig.5 -getconfig.5x diff --git a/hw/xfree86/getconfig/Makefile.am b/hw/xfree86/getconfig/Makefile.am deleted file mode 100644 index acd1d9f17..000000000 --- a/hw/xfree86/getconfig/Makefile.am +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright 2005 Sun Microsystems, Inc. All rights reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, and/or sell copies of the Software, and to permit persons -# to whom the Software is furnished to do so, provided that the above -# copyright notice(s) and this permission notice appear in all copies of -# the Software and that both the above copyright notice(s) and this -# permission notice appear in supporting documentation. -# -# 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 -# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR -# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL -# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING -# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, -# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION -# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -# -# Except as contained in this notice, the name of a copyright holder -# shall not be used in advertising or otherwise to promote the sale, use -# or other dealings in this Software without prior written authorization -# of the copyright holder. -# - -dist_bin_SCRIPTS = getconfig getconfig.pl - -getconfigdir = $(libdir)/X11/getconfig -dist_getconfig_DATA = xorg.cfg cfg.sample - -include $(top_srcdir)/cpprules.in - -appmandir = $(APP_MAN_DIR) -appman_PRE = getconfig.man -appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@) - -filemandir = $(FILE_MAN_DIR) -fileman_DATA = getconfig.$(FILE_MAN_SUFFIX) - -getconfig.$(FILE_MAN_SUFFIX): cfg.man - -rm -f getconfig.$(FILE_MAN_SUFFIX) - $(LN_S) cfg.man getconfig.$(FILE_MAN_SUFFIX) - -SUFFIXES += .$(APP_MAN_SUFFIX) .man - -.man.$(APP_MAN_SUFFIX): - -rm -f $@ - $(LN_S) $< $@ - -BUILT_SOURCES = $(appman_PRE) -CLEANFILES = $(appman_PRE) $(appman_DATA) $(fileman_DATA) cfg.man - -EXTRA_DIST = cfg.man.pre getconfig.man.pre diff --git a/hw/xfree86/getconfig/cfg.man.pre b/hw/xfree86/getconfig/cfg.man.pre deleted file mode 100644 index 3996809ad..000000000 --- a/hw/xfree86/getconfig/cfg.man.pre +++ /dev/null @@ -1,137 +0,0 @@ -.TH getconfig __filemansuffix__ __vendorversion__ -.SH NAME -getconfig - meta configuration files for getconfig(1) -.SH SYNOPSIS -.B \(**.cfg -.SH DESCRIPTION -.B getconfig -is a programmatic interface that is used by the -.B __xservername__ -server to get configuration information about video hardware when -operating without an -.B __xconfigfile__ -file. -.PP -This implementation of -.B getconfig -is written in perl. It processes rules from meta-configuration files. -All meta-configuration files have a -.I .cfg -suffix. -.PP -Lines starting with a pound-sign (#) are comments, and are ignored. -Blank lines that consist only of white space are also treated as comments -and ignored. -.PP -The first non-comment line must be a signature string followed by -the file format version number. The signature string is -.PP -.RS 4 -.nf -"Xorg getconfig rules file.\ \ Version: " -.fi -.RE -.PP -The currently defined version is "1.0". Files that do not have the -correct signature string are ignored. -.PP -The remaining non-comment lines define rules. The start of a new rule -is indicated by a line with no leading white space. Subsequent lines -making up a rule must be indented with white space. Logical lines within -a rule may be split over multiple physical lines by using the usual -continuation convention ('\e' at the end of the line). The first logical -line of each rule is a perl expression. It may be any valid perl -expression whose evaluated (with 'eval') result may be used as the -argument to a perl 'if' statement. The second logical line should be -the name of the __xservername__ video driver to use when the rule is true, and -subsequent logical lines of each rule, if present, are additional -configuration output for the video device's -.B __xconfigfile__ -.B Device -section. The driver name and additional lines of configuration information -are written to standard output when the rule is chosen as the successful -rule. -.PP -Pseudo rules consisting of perl expressions may be present in the file -for the purpose of defining custom perl variables or setting the weight -to use for the following rules. Pseudo rules are rules that consist of -a single logical line only, and the are never candidates themselves for the -successful rule. -.PP -Several perl variables are pre-defined, and may be used within rules. -They include: -.PP -.RS 4 -.nf -.BR "$vendor " "PCI vendor ID" -.BR "$device " "PCI device ID" -.BR "$revision " "PCI revision ID" -.BR "$subsys " "PCI subsystem ID" -.BR "$subsysVendor " "PCI subsystem vendor ID" -.BR "$class " "PCI class" -.BR "$XorgVersion " "Xorg version, as a 'v' string" -.BR "$XorgVersionNumeric " "Xorg numeric version" -.BR "$XorgVersionMajor " "Xorg major version" -.BR "$XorgVersionMinor " "Xorg minor version" -.BR "$XorgVersionPatch " "Xorg patch version" -.BR "$XorgVersionSnap " "Xorg snap version" -.BR "$weight " "current rule weight" -.fi -.RE -.PP -The -.B $weight -variable determines the weight of the rules as they are processed. The -weight for subsequent rules may be set with a pseudo rule that sets or -changes the value of -.BR $weight . -The default weight, and the weight used for built-in rules is 500. The -meta-configuration files are processed in an unpredictable order. The -weighting of the rules is used to determine their relative priority -.PP -After processing all of the rules, both built-in and those read from -the meta-configuration files, the -.B getconfig -program chooses as the successful rule the last and highest weighted -rule that evaluates to true. -.SH FILES -.I .cfg -files located in the search path. The search path typically specified -by the -.B __xservername__ -server is: -.PP -.RS 4 -.nf -.I /etc/X11 -.I __projectroot__/etc/X11 -.I <modulepath> -.I __projectroot__/lib/X11/getconfig -.fi -.RE -.PP -where -.I <modulepath> -is the -.B __xservername__ -server's module search path. -.PP -.TP 30 -.I __projectroot__/lib/X11/getconfig/xorg.cfg -Default rules file that gets installed. This file doesn't contain any -rules by default. -.TP 30 -.I __projectroot__/lib/X11/getconfig/cfg.sample -A sample rules file that gives some examples of what types of rules can -appear in rules files. - -.SH "SEE ALSO" -getconfig(1), -__xservername__(__appmansuffix__), -__xconfigfile__(__filemansuffix__). - -.SH AUTHORS -The __xservername__ automatic configuration support and the -.B getconfig -interface was written by David H. Dawes, with the support of X-Oz -Technologies for XFree86. diff --git a/hw/xfree86/getconfig/cfg.sample b/hw/xfree86/getconfig/cfg.sample deleted file mode 100644 index 93c98e4e2..000000000 --- a/hw/xfree86/getconfig/cfg.sample +++ /dev/null @@ -1,110 +0,0 @@ -# $DHD: xc/programs/Xserver/hw/xfree86/getconfig/cfg.sample,v 1.2 2003/09/23 05:12:07 dawes Exp $ - -# Some sample Xorg getconfig rules file. - -# -# The line below is the getconfig rules file signature, and must be the -# first non-blank, non-comment line. -# - -Xorg Project getconfig rules file. Version: 1.0 - -# -# Set the weight for the following rules. This should be set, otherwise -# the previously set weight will get used, and you have no idea of knowing -# what that might be. -# - -$weight = 1000 - -# -# Rules. Rules consist of a condition (in perl code) followed by -# a driver name and optionally some additional strings. The start of a -# rule is indicated by a line with no leading white space. Subsequent -# lines making up a rule must be indented. Logical lines may be split -# over multiple physical lines by using the usual continuation '\'. -# -# Rules that are not followed by a driver name may be used to do other -# things, like setting the weight as above. -# - -# -# Pre-defined variables include: -# -# $vendor PCI vendor ID -# $device PCI device ID -# $revision PCI revision ID -# $subsys PCI subsystem ID -# $subsysVendor PCI subsystem vendor ID -# $class PCI class -# $XorgVersion Xorg version, as a 'v' string. -# -# The Xorg version information is also available as the following: -# -# $XorgVersionNumeric -# $XorgVersionMajor -# $XorgVersionMinor -# $XorgVersionPatch -# $XorgVersionSnap -# - -# Define a fake vendor ID for some sample rules. - -$novendor = 0x10000 -$nodevice = 0x10000 - -$vendor == $novendor - nodriver - Option "xx" - Videoram 1000 - -# A rule with continued lines. - -$vendor == $novendor && \ -$device == $nodevice - nodriver2 - Option \ - "yy" - -# Increase the weight of the following rules if the Xorg version is 4.3 or -# higher. - -$weight++ if ($XorgVersion ge v4.3) - -$vendor == $novendor - nodriver - Option "yy" - -# -# The weight can be changed at any times, and applies to rules that follow -# until changed again. -# - -$weight = 100 - -$vendor == $novendor && $XorgVersion eq v4.3.2.1 - nodriver3 - -$weight = 600 - -# -# The following two examples use some real values. -# - -# Example: make the default depth 24 for Radeon R200 and RV200 cards. - -$vendor == 0x1002 && \ - ($device >= 0x5148 && $device <= 0x514F || \ - $device >= 0x5168 && $device <= 0x516C || \ - $device == 0x4242 || \ - $device >= 0x5157 && device <= 0x5158) - ati - Option "DefaultDepth" "24" - - -# Example: enable DRI for MGA G400 - -$vendor == 0x102b && $device == 0x0525 - mga - Option "dri" - diff --git a/hw/xfree86/getconfig/getconfig b/hw/xfree86/getconfig/getconfig deleted file mode 100644 index a9e2b3ef2..000000000 --- a/hw/xfree86/getconfig/getconfig +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -# $XdotOrg$ - -# -# Copyright 2003 by David H. Dawes. -# Copyright 2003 by X-Oz Technologies. -# All rights reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR -# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the copyright holder(s) -# and author(s) 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 copyright holder(s) and author(s). -# -# Author: David Dawes <dawes@XFree86.Org>. -# - -# A simple wrapper to execute the real getconfig program. So long as perl -# is in $PATH, we don't need to know where it is this way. - -if echo $0 | grep / >/dev/null 2>&1; then - DIR=`dirname $0`/ -fi - -exec perl ${DIR}getconfig.pl "$@" diff --git a/hw/xfree86/getconfig/getconfig.man.pre b/hw/xfree86/getconfig/getconfig.man.pre deleted file mode 100644 index 9faede134..000000000 --- a/hw/xfree86/getconfig/getconfig.man.pre +++ /dev/null @@ -1,98 +0,0 @@ -.TH getconfig 1 __vendorversion__ -.SH NAME -getconfig - get configuration information for the __xservername__ server -.SH SYNOPSIS -.B getconfig -.RI [ option -.IR ... ] -.SH DESCRIPTION -.B getconfig -is a programmatic interface that is used by the -.B __xservername__ -server to get configuration information about video hardware when -operating without an -.B __xconfigfile__ -file. -.PP -This implementation of -.B getconfig -is written in perl. It processes a prioritized and ordered list of -rules supplied internally and from meta-configuration files. The rules -are in the form of perl expressions. -.B getconfig -writes to standard output the __xconfigfile__-style configuration data -specified by the last highest priority rule that evaluates to true. -Information about the format of the meta-configuration files can be -found in the getconfig(__filemansuffix__) manual page. -.SH OPTIONS -.TP 8 -.BI \-I " search-path" -Specify the search path to use for meta-config files. -.I search-path -is a comma-separated list of directories to search. Each directory in -the search path is searched for files with a -.I .cfg -suffix. Each such file is opened and checked for a valid signature -string. Rules are read from files with a valid signature string and -appended to the list of rules to evaluate. If no search path is specified, -only the internally supplied configuration rules will be used. -.TP 8 -.B \-D -Enable debugging output. -.TP 8 -.B \-V -Print out the version information and exit. -.TP 8 -.BI \-X -.BI __xservername__-version -Specify the __xservername__ version in numeric (integer) form. -.TP 8 -.BI \-b " subsys-id" -Specify the PCI subsystem ID of the video device. -.TP 8 -.BI \-c " class" -Specify the PCI class of the video device. -.TP 8 -.BI \-d " device-id" -Specify the PCI devide ID of the video device. -.TP 8 -.BI \-r " revision" -Specify the PCI revision of the video device. -.TP 8 -.BI \-s " subsysvendor-id" -Specify the PCI subsystem vendor ID of the video device. -.TP 8 -.BI \-v " vendor-id" -Specify the PCI vendor ID of the video device. -.SH FILES -.I .cfg -files located in the search path. The search path typically specified -by the -.B __xservername__ -server is: -.PP -.RS 4 -.nf -.I /etc/X11 -.I __projectroot__/etc/X11 -.I <modulepath> -.I __projectroot__/lib/X11/getconfig -.fi -.RE -.PP -where -.I <modulepath> -is the -.B __xservername__ -server's module search path. - -.SH "SEE ALSO" -getconfig(__filemansuffix__), -__xservername__(__appmansuffix__), -__xconfigfile__(__filemansuffix__). - -.SH AUTHORS -The __xservername__ automatic configuration support and the -.B getconfig -interface was written by David H. Dawes, with the support of X-Oz -Technologies for XFree86. diff --git a/hw/xfree86/getconfig/getconfig.pl b/hw/xfree86/getconfig/getconfig.pl deleted file mode 100644 index a540c686b..000000000 --- a/hw/xfree86/getconfig/getconfig.pl +++ /dev/null @@ -1,433 +0,0 @@ -#!/usr/bin/perl - -# $DHD: xc/programs/Xserver/hw/xfree86/getconfig/getconfig.pl,v 1.13 2003/09/23 05:12:07 dawes Exp $ -# $XdotOrg: $ - -# -# Copyright 2003 by David H. Dawes. -# Copyright 2003 by X-Oz Technologies. -# All rights reserved. -# -# Permission is hereby granted, free of charge, to any person obtaining a -# copy of this software and associated documentation files (the "Software"), -# to deal in the Software without restriction, including without limitation -# the rights to use, copy, modify, merge, publish, distribute, sublicense, -# and/or sell copies of the Software, and to permit persons to whom the -# Software is furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR -# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -# OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the copyright holder(s) -# and author(s) 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 copyright holder(s) and author(s). -# -# Author: David Dawes <dawes@XFree86.Org>. -# - - -# -# This script takes PCI id information, compares it against an ordered list -# of rules, and prints out the configuration information specified by the -# last matching rule. -# -# This script is called by xf86AutoConfig(). -# - -# Command line processing. - -$GetconfigVersion = v1.0; - -$debug = 0; - -$myname = $0; -$myname =~ s/.*\///; - -$signature = "Xorg Foundation getconfig rules file. Version: "; - -while (@ARGV[0] =~ /^-[A-Za-z]$/) { - $f = shift; - SWITCH: { - if ($f eq "-D") { - $debug = 1; - last SWITCH; - } - if ($f eq "-I") { - push(@searchPaths, split(/,/, shift)); - last SWITCH; - } - if ($f eq "-V") { - printf STDERR "$myname: Version %vd.\n", $GetconfigVersion; - exit 0; - } - if ($f eq "-X") { - $XorgVersionNumeric = shift; - if (!defined($XorgVersionNumeric)) { - print STDERR "$myname: -X requires the Xorg version.\n"; - exit 1; - } - } - if ($f eq "-b") { - $subsys = oct(shift); - if (!defined($subsys)) { - print STDERR "$myname: -b requires the subsys id.\n"; - exit 1; - } - last SWITCH; - } - if ($f eq "-c") { - $class = oct(shift); - if (!defined($class)) { - print STDERR "$myname: -c requires the class value.\n"; - exit 1; - } - last SWITCH; - } - if ($f eq "-d") { - $device = oct(shift); - if (!defined($device)) { - print STDERR "$myname: -d requires the device id.\n"; - exit 1; - } - last SWITCH; - } - if ($f eq "-r") { - $revision = oct(shift); - if (!defined($revision)) { - print STDERR "$myname: -r requires the device revision.\n"; - exit 1; - } - last SWITCH; - } - if ($f eq "-s") { - $subsysVendor = oct(shift); - if (!defined($subsysVendor)) { - print STDERR "$myname: -s requires the subsysVendor id.\n"; - exit 1; - } - last SWITCH; - } - if ($f eq "-v") { - $vendor = oct(shift); - if (!defined($vendor)) { - print STDERR "$myname: -v requires the vendor id.\n"; - exit 1; - } - last SWITCH; - } - } -} - -printf STDERR "$myname: Version %vd.\n", $GetconfigVersion; - -if (defined($XorgVersionNumeric)) { - $XorgVersionMajor = $XorgVersionNumeric / 10000000; - $XorgVersionMinor = ($XorgVersionNumeric % 10000000) / 100000; - $XorgVersionPatch = ($XorgVersionNumeric % 100000) / 1000; - $XorgVersionSnapshot = $XorgVersionNumeric % 1000; - $XorgVersion = chr($XorgVersionMajor) . chr($XorgVersionMinor) . - chr($XorgVersionPatch) . chr($XorgVersionSnapshot); -} - -if ($debug) { - printf STDERR "$myname: Xorg Version: %d, %d.%d.%d.%d, %vd.\n", - $XorgVersionNumeric, $XorgVersionMajor, $XorgVersionMinor, - $XorgVersionPatch, $XorgVersionSnapshot, $XorgVersion; -} else { - printf STDERR "$myname: Xorg Version: %vd.\n", $XorgVersion; -} - - -# The rules here are just basic vendor ID to driver mappings. -# Ideally this is all that would be required. More complicated configuration -# rules will be provided in external files. - -# XXX This set of basic rules isn't complete yet. - -@rules = ( - -# Set the weight for the built-in rules. -['$weight = 500'], - -# APM -['$vendor == 0x1142', - 'apm'], - -# ARK -['$vendor == 0xedd8', - 'apm'], - -# AST -['$vendor == 0x1a03', - 'ast'], - -# ATI -['$vendor == 0x1002', - 'ati'], - -# Chips & Technologies -['$vendor == 0x102c', - 'chips'], - -# Cirrus -['$vendor == 0x1013', - 'cirrus'], - -# Intel -['$vendor == 0x8086', - 'i810'], -['$vendor == 0x8086 && ($chipType == 0x00d1 || $chipType == 0x7800)', - 'i740'], - -# Matrox -['$vendor == 0x102b', - 'mga'], - -# Neomagic -['$vendor == 0x10c8', - 'neomagic'], - -# Number Nine -['$vendor == 0x105d', - 'i128'], - -# NVIDIA -['$vendor == 0x10de || $vendor == 0x12d2', - 'nv'], - -# S3 -['$vendor == 0x5333 && ($device == 0x88d0 ||' . - '$device == 0x88d1 ||' . - '$device == 0x88f0 ||' . - '$device == 0x8811 ||' . - '$device == 0x8812 ||' . - '$device == 0x8814 ||' . - '$device == 0x8901)', - 's3'], - -# S3 virge -['$vendor == 0x5333 && ($device == 0x5631 ||' . - '$device == 0x883d ||' . - '$device == 0x8a01 ||' . - '$device == 0x8a10 ||' . - '$device == 0x8c01 ||' . - '$device == 0x8c03 ||' . - '$device == 0x8904 ||' . - '$device == 0x8a13)', - 's3virge'], - -# S3 Savage -['$vendor == 0x5333 && ($device >= 0x8a20 && $device <= 0x8a22 ||' . - '$device == 0x9102 ||' . - '$device >= 0x8c10 && $device <= 0x8c13 ||' . - '$device == 0x8a25 ||' . - '$device == 0x8a26 ||' . - '$device >= 0x8d01 && $device <= 0x8d04 ||' . - '$device >= 0x8c2a && $device <= 0x8c2f ||' . - '$device == 0x8c22 ||' . - '$device == 0x8c24 ||' . - '$device == 0x8c26)', - 'savage'], - -# SIS -['$vendor == 0x1039', - 'sis'], - -# SMI -['$vendor == 0x126f', - 'siliconmotion'], - -# 3Dfx -['$vendor == 0x121a', - 'tdfx'], - -# 3Dlabs -['$vendor == 0x3d3d', - 'glint'], - -# Trident -['$vendor == 0x1023', - 'trident'], - -# Tseng Labs -['$vendor == 0x100c', - 'tseng'], - -# VIA -['$vendor == 0x1106', - 'via'], - -# VMware -['$vendor == 0x15ad', - 'vmware'], - -); - -# Reverse the search path list, since the later rules have higher priority -# than earlier ones (weighting being equal). - -@searchPaths = reverse(@searchPaths); - -if ($debug) { - $i = 0; - for $path (@searchPaths) { - print STDERR "$myname: Search path $i is: \"$path\".\n"; - $i++; - } -} - -print STDERR "$myname: ", $#rules + 1, " built-in rule", plural($#rules + 1), - ".\n"; - -for $path (@searchPaths) { - while (<$path/*.cfg>) { - @tmp = readRulesFile($_); - if (defined(@tmp[0])) { - push @rules, @tmp; - } - } -} - -if ($debug) { - $i = 0; - for $r (@rules) { - print STDERR "$myname: rule $i is: \'@$r\'.\n"; - $i++ - } -} - -$i = 0; -$e = 0; -$weight = 0; -$w = 0; -for $r (@rules) { - ($cond, $d, @o) = @$r; - $result = eval $cond; - if ($@) { - print STDERR "$myname: Error evaluating rule $i \'$cond\': $@"; - $e++; - } - if ($debug) { - print STDERR "$myname: rule $i \'$cond\' evaluates to \'$result\'.\n"; - } - if ($result && defined($d) && $weight >= $w) { - $driver = $d; - @opts = @o; - $w = $weight; - } - $i++; -} - -print STDERR "$myname: Evaluated $i rule", plural($i), - " with $e error", plural($e), ".\n"; - -print STDERR "$myname: Weight of result is $w.\n"; - -if ($debug) { - if (defined($driver)) { - print STDERR "$myname: Driver is \'$driver\'.\n"; - } else { - print STDERR "$myname: No driver.\n"; - } - if (defined(@opts)) { - print STDERR "$myname: options are:\n"; - for $opt (@opts) { - print STDERR "\t$opt\n"; - } - } else { - print STDERR "$myname: No options.\n"; - } -} - -print "$driver\n"; -for $opt (@opts) { - print "$opt\n"; -} - -exit 0; - -# Subroutines. - -sub readRulesFile { - my ($file) = @_; - my $signatureOK = 0; - my @r, @tmp; - my $line, $cont, $prevcont, $fileversion; - - undef @tmp; - undef @r; - - if (open(RF, "<$file")) { - $prevcont = 0; - while (<RF>) { - chop; - $line = $_; - next if ($line =~ /^#/); - next if ($line =~ /^\s*$/); - if (!$signatureOK) { - if ($line =~ /^$signature(.*)$/) { - $fileversion = $1; - $signatureOK = 1; - print STDERR - "$myname: rules file \'$file\' has version $fileversion.\n"; - next; - } - } - if (!$signatureOK) { - print STDERR "$myname: file \'$file\' has bad signature.\n"; - close(RF); - last; - } - $cont = 0; - if ($line =~ s/\\\s*$//) { - $cont = 1; - } - if (!$prevcont && $line =~ /^\S+/) { - if (defined(@tmp[0])) { - push(@r,[@tmp]); - } - undef @tmp; - } - if ($prevcont) { - push(@tmp, pop(@tmp) . $line); - } else { - push(@tmp, $line); - } - $prevcont = $cont; - } - if (defined(@tmp[0])) { - push(@r,[@tmp]); - } - if (!defined(@r[0])) { - print STDERR "$myname: no rules in file \'$file\'.\n"; - } else { - print STDERR "$myname: ", $#r + 1, - " rule", plural($#r + 1), - " added from file \'$file\'.\n"; - } - } else { - print STDERR "$myname: cannot open file \'$file\'.\n"; - } - - return @r; -} - -sub plural { - my ($count) = @_; - - if ($count != 1) { - return "s"; - } else { - return ""; - } -} - diff --git a/hw/xfree86/getconfig/xorg.cfg b/hw/xfree86/getconfig/xorg.cfg deleted file mode 100644 index a591bf32f..000000000 --- a/hw/xfree86/getconfig/xorg.cfg +++ /dev/null @@ -1,50 +0,0 @@ -# $XdotOrg: xc/programs/Xserver/hw/xfree86/getconfig/xorg.cfg,v 1.2 2004/04/23 19:54:01 eich Exp $ - -# Base Xorg getconfig rules file. - -# -# The line below is the getconfig rules file signature, and must be the -# first non-blank, non-comment line. -# - -Xorg Foundation getconfig rules file. Version: 1.0 - -# -# Set the weight for the following rules. This should be set, otherwise -# the previously set weight will get used, and you have no idea of knowing -# what that might be. -# - -$weight = 1000 - -# -# Rules. Rules consist of a condition (in perl code) followed by -# a driver name and optionally some additional strings. The start of a -# rule is indicated by a line with no leading white space. subsequent -# lines making up a rule must be indented. Logical lines may be split -# over multiple physical lines by using the usual continuation '\'. -# -# Rules that are not followed by a driver name may be used to do other -# things, like setting the weight as above. -# - -# -# Pre-defined variables include: -# -# $vendor PCI vendor ID -# $device PCI device ID -# $revision PCI revision ID -# $subsys PCI subsystem ID -# $subsysVendor PCI subsystem vendor ID -# $class PCI class -# $XorgVersion Xorg version, as a 'v' string. -# -# The Xorg version information is also available as the following: -# -# $XorgVersionNumeric -# $XorgVersionMajor -# $XorgVersionMinor -# $XorgVersionPatch -# $XorgVersionSnap -# - |