138 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
.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.
 |