summaryrefslogtreecommitdiff
path: root/hw/xfree86/getconfig/getconfig.pl
diff options
context:
space:
mode:
Diffstat (limited to 'hw/xfree86/getconfig/getconfig.pl')
-rw-r--r--hw/xfree86/getconfig/getconfig.pl433
1 files changed, 0 insertions, 433 deletions
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 "";
- }
-}
-