Commit Graph

174 Commits

Author SHA1 Message Date
Peter Hutterer
c39c8d3428 input: switch InputOption to use XF86OptionRec storage.
Use the same struct for both InputOption and XF86OptionRec so we don't need
to convert to and fro the two in the config backends.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2011-10-25 14:06:39 +10:00
Alexandr Shadchin
ac5881d6d0 Remove unused vtSysreq
Signed-off-by: Alexandr Shadchin <Alexandr.Shadchin@gmail.com>
Reviewed-by: Jamey Sharp <jamey@minilop.net>
Tested-by: Matthieu Herrb <matthieu.herrb@laas.fr>
2011-09-29 23:05:35 +06:00
Peter Hutterer
24823f1ab0 xfree86: switch options from pointer to XF86OptionPtr
In all cases, the pointer was simply type-cast anyway. Let's get some
compile-time type safety going, how about that.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>

Squashed in:
xfree86: Move definition of xf86OptionPtr into separate header file

The pile of spaghettis that is the xfree86 include dependencies make it
rather hard to have a single typedef somewhere that's not interfering with
everything else or drags in a whole bunch of other includes.

Move the xf86OptionRec and GenericListRec declarations into a separate
header.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
2011-09-27 11:43:36 +10:00
Oleh Nykyforchyn
c05c8640f1 xfree86: Allow "MatchLayout" statements in config files
Usage example (tested on a dual-seat PC):
Section "InputClass"
 	Identifier "keyboard-all"
 	MatchIsKeyboard "on"
 	MatchDevicePath "/dev/input/event*"
 	MatchLayout "!GeForce|!Matrox"
 	Driver "evdev"
 	Option "XkbLayout" "us"
 	Option "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

It disables auto keyboard configuration for layouts "GeForce" and "Matrox".
Note that "" in patterns means "no Layout sections found", e.g.
 	MatchLayout "GeForce|"
is "in layout GeForce or without explicit layout at all".

Signed-off-by: Oleh Nykyforchyn <oleh.nyk@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Acked-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-05-25 08:23:58 +10:00
Adam Jackson
2762eef8c3 xfree86: warning fix
Pointer.c: In function 'xf86parsePointerSection':
Pointer.c:192:5: warning: format '%u' expects type 'unsigned int', but argument 3 has type 'long unsigned int'

Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-28 13:00:58 -04:00
Christopher James Halse Rogers
d17a9fb841 Consolidate all the PATH_MAX handling into misc.h
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
2011-03-14 13:42:55 -04:00
Dan Nicholson
60801ff870 xfree86: Convert libxf86config to static libtool library
In order to use libxf86config in a shared library, all the code must be
compiled with -fPIC. Add proper PIC support for libxf86config by turning
it into a libtool library. However, since we don't want to guarantee API
or ABI stability, make sure it's only built static.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Acked-by: Gaetan Nadon <memsize@videotron.ca>
2011-01-08 08:42:33 -08:00
Alan Coopersmith
d5b0d58573 Bug 32436 - hw/xfree86/parser/Makefile.am TOP_SRCDIR should be top_srcdir
https://bugs.freedesktop.org/show_bug.cgi?id=32436
Fix typo introduced in 2416255f7e that breaks builds when
configured --enable-install-libxf86config

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Tested-by: Simon Thum <simon.thum@gmx.de>
2010-12-18 00:24:21 -08:00
Alan Coopersmith
2416255f7e Convert hw/xfree86/parser code to use asprintf() calls
Requires linking xprintf.c into libxf86config for those who build it.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
2010-12-07 11:10:35 -08:00
Jesse Adkins
23e329b564 xfree86: parser: Remove 'CUSTOM' flag option in Monitor section.
Not used in the initial import, and also not documented.

Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
2010-11-10 21:35:58 -08:00
Adam Jackson
788bfbf18a dri1: Remove "buffers" from the config logic
This was only ever used from the glint driver, which has since lost its
DRI support.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-10-18 15:34:08 -04:00
Adam Jackson
a77458486a xfree86: Remove %M expansion from config parser
This was to distinguish XFree86 3.x files from XFree86 4.x files.  It
never really made sense to be looking for xorg.conf-4.

Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Jesse Adkins <jesserayadkins@gmail.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-10-18 15:33:27 -04:00
Adam Jackson
f8ec71603c xfree86: Remove an open-coded strtoul()
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-10-18 15:33:02 -04:00
Tiago Vignatti
a9e6080dc9 os/xfree86: remove macro checking for POSIX symbols
We assume already that our X implementation is POSIX compliant anyway. So
remove those redundant checking.

SA_SIGINFO is left there.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2010-09-10 21:49:28 +03:00
Matt Turner
08adf41f63 Replace malloc/strlen/strcpy with strdup.
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
2010-08-27 19:05:48 -04:00
Jesse Adkins
ea239112b0 xfree86: Purge parsePrologueVoid.
This was included in the original commit, and then never used.

Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
2010-08-27 19:05:43 -04:00
Jesse Adkins
b25fb9fe99 xfree86: Removed unused messages from Configint.h
AUTOREPEAT_MSG, MOVED_TO_FLAGS_MSG, and XLEDS_MSG made obsolete by
 81913a1291 Jul 21 2006 (remove undead files from master)
UNDEFINED_DEVICE_MSG made obsolete by
 6033d8150b Oct 9 2007 (first pass at video driver autoloading)

Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
2010-08-27 19:05:39 -04:00
Jesse Adkins
18b62e0479 xfree86: Fix leaks in OpenConfigFile and OpenConfigDir
[mattst88: fixed whitespace and a missing semicolon]

Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
Signed-off-by: Matt Turner <mattst88@gmail.com>
2010-08-27 19:05:35 -04:00
Jesse Adkins
747bf5fe80 xfree86: Remove comments about unable to use malloc.
These are leftovers from when X still used Xmalloc and friends for allocation.
Now that those are gone, these comments are just confusing.

Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Matt Turner <mattst88@gmail.com>
2010-08-27 19:04:25 -04:00
Jesse Adkins
bce12f2956 xfree86: parser: Never use constant strings for driver names (fixes #17438)
When the parser sees the "keyboard" driver, it automatically (and
 silently) replaces it with the constant string "kbd".
Everybody else uses malloc'd memory for the driver name, so input
 device closure assumes it can use free.
Free val.str, so this crash doesn't turn into a memory leak. Whew.

Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-08-13 11:43:18 +10:00
Keith Packard
07a093add0 Merge remote branch 'whot/for-keith' 2010-06-10 18:39:10 -07:00
Dan Nicholson
66b21b2f45 xfree86: Match devices based on current driver setting
Often we want to apply a driver specific option to a set of devices and
don't care how the driver was selected for that device. The MatchDriver
entry can be used to match the current driver string:

	MatchDriver "evdev|mouse"
	Option "Emulate3Buttons" "yes"

The driver string is a case sensitive match.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-06-11 09:44:40 +10:00
Dan Nicholson
a71bdff47d xfree86: Allow multiple InputClass Match* entries for && matching
Currently when there multiple InputClass entries of the same type, only
the last entry is used and the previous ones are ignored. Instead,
multiple entries are used to create multiple matching conditions.

For instance, an InputClass with

	MatchProduct "foo"
	MatchProduct "bar"

will require that the device's product name contain both foo and bar.
This provides a complement to the || style matching when an entry is
split using the "|" token.

The xorg.conf man page has added an example to hopefully clarify the two
types of compound matches.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-06-11 09:41:02 +10:00
Dan Nicholson
87a1507da7 xfree86: Match devices based on USB ID
Sometimes the vendor and product names aren't specific enough to target
a USB device, so expose the numeric codes in the ID. A MatchUSBID entry
has been added that supports shell pattern matching when fnmatch(3) is
available. For example:

	MatchUSBID "046d:*"

The IDs are stored in lowercase hex separated by a ':' like "lsusb" or
"lspci -n".

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-06-11 09:30:33 +10:00
Dan Nicholson
645679c152 xfree86: Match devices based on PnP ID
Serial input devices lack properties such as product or vendor name. This
makes matching InputClass sections difficult. Add a MatchPnPID entry to
test against the PnP ID of the device. The entry supports a shell pattern
match on platforms that support fnmatch(3). For example:

	MatchPnPID "WACf*"

A match type for non-path pattern matching, match_pattern, has been added.
The difference between this and match_path_pattern is the FNM_PATHNAME
flag in fnmatch(3).

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-06-11 09:30:07 +10:00
Mikhail Gusarov
7287ef9e6c Remove unnecessary parentheses around return values in functions
This patch was generated by the following Perl code:

perl -i -pe 's/([^_])return\s*\(\s*([^(]+?)\s*\)s*;(\s+(\n))?/$1return $2;$4/g;'

Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Jamey Sharp <jamey@minilop.net>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-06-10 06:42:42 -07:00
Dan Nicholson
d1b4beecbc xfree86: Add MatchOS InputClass entry for operating system matching
Allow InputClass sections to match against the running operating system
to narrow the application of rules. An example where this could be used
is to specify that the default input driver on Linux is evdev while it's
mouse/kbd everywhere else.

The operating system name is the same as `uname -s`, and matching is
case-insensitive.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-06-10 14:36:36 +10:00
Mikhail Gusarov
0a4d8cbdcd Remove more superfluous if(p) checks around free(p)
This patch has been generated by the following Coccinelle semantic patch:

@@
expression E;
@@

-if(E) { free(E); }
+free(E);

Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Fernando Carrijo <fcarrijo@yahoo.com.br>
Reviewed-by: Matt Turner <mattst88@gmail.com>
2010-06-06 20:27:18 +07:00
Alan Coopersmith
d163266692 Stop searching for XF86Config files
xorg.conf has been used since the X11R6.7 release in April 2004.
6 years has been a generous transition period for users to
"mv XF86Config xorg.conf" and for distros to update their
configuration tools and packages.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: James Cloos <cloos@jhcloos.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-06-04 00:23:11 -07:00
Alan Coopersmith
01c75522b6 Stop searching for XF86Config files
xorg.conf has been used since the X11R6.7 release in April 2004.
6 years has been a generous transition period for users to
"mv XF86Config xorg.conf" and for distros to update their
configuration tools and packages.

Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: James Cloos <cloos@jhcloos.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-06-04 00:22:54 -07:00
Tiago Vignatti
7f457351d2 xfree86: check for NULL pointer before dereferences it in parser code
Seems to be harmless. Meh.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-04-21 18:07:17 +03:00
Tiago Vignatti
f491b0aa5b xfree86: fix not reached code in parser
...because Error is a macro that returns NULL.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-04-21 18:07:13 +03:00
Dan Nicholson
2460e921d1 xfree86: Allow adding sysconfdir and datadir to config search paths
We could just use $projectroot/etc and $projectroot/share, but the user
might have other plans for them.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-08 15:21:00 +10:00
Oliver McFadden
031f92bf9a parser: corrected xf86getBoolValue to use case insensitive compare
commit c6e8637e29 introduced this
regression; it can cause existing config files to be parsed incorrectly.

Acked-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
Signed-off-by: Oliver McFadden <oliver.mcfadden@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-17 23:16:25 -08:00
Peter Hutterer
c6d9bc092c Add tag matching to input attributes.
Tags may be a list of comma-separated strings that match against a MatchTag
InputClass section. If any of the tags specified for a device match against
the MatchTag of the section, this match is evaluated true and passed on to
the next match condition.

Tags are specified as "input.tags" (hal) or "ID_INPUT.tags" (udev), the
value of the tags is case-sensitive and require an exact match (not a
substring match).

i.e. "quirk" will not match "QUIRK", "need_quirk" or "quirk_needed".

Example configuration:
udev:
    ENV{ID_INPUT.tags}="foo,bar"

hal:
    <merge key="input.tags" type="string">foo,bar</merge>

xorg.conf:
    Section "InputClass"
            Identifier "foobar quirks"
            MatchTag "foo|foobar"
            Option "Foobar" "on"
    EndSection

Where the xorg.conf section matches against any device with the tag "foo"
or tag "foobar" set.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Tested-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-02-11 19:25:49 +10:00
Peter Hutterer
3ac43df5d4 Add xstrtokenize to the dix.
Move tokenize out of the parser, make it a dix util function instead.
Splitting a string into multiple substrings is useful by other places, so
let's use it across the line. Future users include config/hal, config/udev
and of course the parser.

Example usage:
char **substrings = xstrtokenize(my_string, "\n");

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-02-11 19:25:39 +10:00
Dan Nicholson
9b369f7127 xfree86: Allow multiple arguments to InputClass matches
In order to keep the number of InputClass sections manageable, allow
matches to contain multiple arguments. The arguments will be separated
by the '|' character. This allows a policy to apply to multiple types of
devices. For example:

    Section "InputClass"
        Identifier "Inverted Mice"
        MatchProduct "Crazy Mouse|Silly Mouse"
        Option "InvertX" "yes"
    EndSection

This applies to the MatchProduct, MatchVendor and MatchDevicePath
entries. Currently there is no way to escape characters, so names or
patterns cannot contain '|'.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-11 19:25:32 +10:00
Dan Nicholson
8b1a685f00 xfree86: Handle config files ending without newline
The config parser expects to find a newline at the end of each line, so
files ending without one would confuse it. A newline is inserted at the
end of the buffer in these situations. Additionally, switching to the
next config file is moved to the higher level to allow parsing of the
last line of the previous file to complete before shifting the index and
resetting the line number.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Tested-by: Stephan Raue<stephan.raue@gmx.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-02-11 19:25:14 +10:00
Keith Packard
9fad8f06fb Merge remote branch 'dbn/inputclass' 2009-12-30 09:28:19 -08:00
Dan Nicholson
42e8c9224e xfree86: Introduce InputClass configuration
Currently Xorg uses hal's fdi files to decide what configuration options
are applied to automatically added input devices. This is sub-optimal
since it requires users to use a new and different configuration store
than xorg.conf.

The InputClass section attempts to provide a system similar to hal where
configuration can be applied to all devices with certain attributes. For
now, devices can be matched to:

* A substring of the product name via a MatchProduct entry
* A substring of the vendir name via a MatchVendor entry
* A pathname pattern of the device file via a MatchDevicePath entry
* A device type via boolean entries for MatchIsKeyboard, MatchIsPointer,
  MatchIsJoystick, MatchIsTablet, MatchIsTouchpad and MatchIsTouchscreen

See the INPUTCLASS section in xorg.conf(5) for more details.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-12-23 05:54:40 -08:00
Dan Nicholson
c6e8637e29 xfree86: Support non-Option boolean entries in configuration
Refactored code into the parser to allow the freeform boolean types used
in Option entries to be used in other configuration entries. This isn't
as powerful as allowing "No" to precede the option names, but it atleast
gives a common handling of "yes", "no", etc.

A type xf86TriState has been added to support an optional boolean. This
allows the boolean sense of the value to be kept while providing a means
to signal that it is unset.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
2009-12-22 23:24:02 -08:00
Peter Hutterer
e1165632bd xfree86: Add Option AutoServerLayout for input devices.
Any input device with this option will be automatically added to whichever
server layout is selected at startup. This removes the need to reference a
device from the ServerLayout section. The two following configuration are
identical:

CONFIG 1:
    Section "ServerLayout"
            InputDevice "foo"
    EndSection

    Section "InputDevice"
            Identifier "foo"
            ...
    EndSection

CONFIG 2:
    Section "InputDevice"
            Identifier "foo"
            Option "AutoServerLayout" "on"
            ...
    EndSection

The selection of the server layout affects both explicitly specified
layouts and the implicit layout.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp at keithp.com>
2009-12-22 23:22:09 -08:00
Dan Nicholson
592b20c517 xfree86: Allow config directory to be specified on command line
Add a new command line parameter, -configdir, to specify the config
directory to be used. Rules are the same as -config for root vs. user
privileges.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
2009-12-22 23:20:52 -08:00
Dan Nicholson
efa5269f23 xfree86: Use xorg.conf.d directory for multiple config files
Currently there is a single file, xorg.conf, for configuring the server.
This works fine most of the time, but it becomes a problem when packages
or system services need to adjust the configuration. Instead, allow
multiple configuration files to live in a directory. Typically this will
be /etc/X11/xorg.conf.d.

Files with a suffix of .conf will be read and added to the server
configuration after xorg.conf. The server won't fall back to using the
auto configuration unless there is no config file and there are no files
in the config directory.

Right now this uses a simpler search template than the config file
search path by not using the command line or environment variable
parameters. The matching code was refactored a bit to make this more
coherent. Any DDX wanting to read the config files will need to call
xf86initConfigFiles before opening/reading them. This is to allow
xf86openConfigFile without xf86openConfigDirFiles and vice-versa.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
2009-12-22 23:20:45 -08:00
Dan Nicholson
f1e869aca1 xfree86: Unexport configuration file symbols
These functions should not be used outside of DDXs, so no need to put
them in the ABI.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
2009-12-22 23:20:20 -08:00
Peter Hutterer
38b5afb0b5 xfree86: remove some 'enable this later' and if 0 ifdefs
2003 called, they want their ifdefs back.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-22 21:27:54 -08:00
Jamey Sharp
239435875d Don't cast double to int: use default conversions or explicitly round.
GCC warns about casting a double return value to int.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-10-28 18:56:42 -07:00
Dave Airlie
e94c7c42ce parser: make libxf86config_internal.la not installed. 2009-08-07 13:36:52 +10:00
Dave Airlie
5fb188b547 ddx: fix xf86Config.a generation
We were generating a shared library, but this lib is foobar, the parser
requires some symbols from the X server or from the program its being linked
into. If the program its being linked into (say a python .so) has symbol
visibility enabled then it will fail to dynamic link, also if this .so has
symbol visiblity enabled it will fail to dynamic link.

Screw it go back to a .a file really unless someone cleans it up properly.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2009-08-07 12:05:51 +10:00
Eamon Walsh
3a0ee199dc config: fix crash caused by strdup(NULL) 2009-04-09 02:29:28 -04:00
Adam Jackson
69e73e5ce0 config: Remove useless xf86conf{{m,c,re}alloc},free} macros 2009-04-06 17:56:49 -04:00
Adam Jackson
485946120a config: s/xf86configStrdup/strdup/ 2009-04-06 17:51:35 -04:00
Alan Coopersmith
e0a451eb7c Obsolete InputDevices keyword in xorg.conf Files section
Was only used to provide a list of input devices that XF86-Misc could use,
now that XF86-Misc is gone, was parsed and logged, then completely ignored.

(Depends on previous patch that introduces OBSOLETE_TOKEN in parser to
 make obsolete keywords like InputDevices & RgbPath be non-fatal errors.)

Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Acked-by: Adam Jackson <ajax@redhat.com>
2009-02-18 14:50:25 -08:00
Alan Coopersmith
d2cf562bba Make RgbPath keyword in xorg.conf a non-fatal error
Xorg shouldn't refuse to run just because the user has an xorg.conf that
had the previously-used RgbPath keyword in it.

Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
Acked-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-02-18 14:49:23 -08:00
Keith Packard
76f18b94bd Add XkbDir to Files config file section
The XKB base directory was not configuable through the config file.

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 11:01:15 -08:00
Paulo Cesar Pereira de Andrade
ed4a172740 Export some symbols from libxf86config when installing it.
These are private symbols, but used by the X Server.
  The newly exported symbols were not added to the sdk headers.
  Optionally, libxf86config could be compiled without hidden symbols
when being installed.
  Thanks to Maarten Maathuis for noticing the problem.
2008-12-07 14:59:25 -02:00
Paulo Cesar Pereira de Andrade
b1dac41fb3 Use libtool convenience libraries and better "symbol" table.
All .a libraries were converted to .la, and instead of linking the
Xorg binary with a mix of .a and .la, and adding some libraries more
then once in the command line, etc, now it generates a single libxorg.la
from all the required convenience libraries, and links with a dummy
xorg.c (that should usually be the file with the main function...).
This removes the requirement of some things like libosandcommon and
libinit, that existed to circumvent problems when linking multiple
.a and .la in the final Xorg binary.

  The "symbol table" is now generated dynamically, by a shell script,
with an embedded gawk parser that parses cpp output. The new file
sdksyms.sh is generated by hand by analyzing all Makefile.am's and
making it create a sdksyms.c file, that includes all sdk headers that
will add symbols for the Xorg binary. Module headers aren't read, and
a in 2 files it was required to add a "<hash>ifndef XorgLoader" around
declarations shared between the Xorg binary and libextmod. A few
other changes were added to other sdk headers, like preventing
multiple inclusion, or including other headers to satisfy dependencies.

  This should be a lot more portable, and better (hopefully properly)
using libtool to generate convenience libraries.
2008-12-07 02:22:19 -02:00
Paulo Cesar Pereira de Andrade
49f77fff14 Rework symbol visibility for easier maintenance
Save in a few special cases, _X_EXPORT should not be used in C source
files. Instead, it should be used in headers, and the proper C source
include that header. Some special cases are symbols that need to be
shared between modules, but not expected to be used by external drivers,
and symbols that are accessible via LoaderSymbol/dlopen.

  This patch also adds conditionally some new sdk header files, depending
on extensions enabled. These files were added to match pattern for
other extensions/modules, that is, have the headers "deciding" symbol
visibility in the sdk. These headers are:
o Xext/panoramiXsrv.h, Xext/panoramiX.h
o fbpict.h (unconditionally)
o vidmodeproc.h
o mioverlay.h (unconditionally, used only by xaa)
o xfixes.h (unconditionally, symbols required by dri2)

  LoaderSymbol and similar functions now don't have different prototypes,
in loaderProcs.h and xf86Module.h, so that both headers can be included,
without the need of defining IN_LOADER.

  xf86NewInputDevice() device prototype readded to xf86Xinput.h, but
not exported (and with a comment about it).
2008-12-03 05:43:34 -02:00
Paulo Cesar Pereira de Andrade
fb22d4d928 Remove declarations of symbols that are never defined.
These symbols were removed from the X Server, or never declared.
  One symbol that may need special attention is XkbBuildCoreState(),
that doesn't have a prototype anywhere, but is called from
xkb/xkbEvents.c:XkbFilterEvents(), and also used by the macros
XkbStateFieldFromRec() and XkbGrabStateFromRec() defined in
include/xkbstr.h.
  fb/wfbrename.h also may need some cleanup, as it makes several
"renames" of non existing symbols.
2008-11-30 01:33:20 -02:00
Paulo Cesar Pereira de Andrade
d6cbd4511e Export symbols defined in the sdk.
This is the biggest "visibility" patch. Instead of doing a "export"
symbol on demand, export everything in the sdk, so that if some module
fails due to an unresolved symbol, it is because it is using a symbol
not in the sdk.

  Most exported symbols shouldn't really be made visible, neither
advertised in the sdk, as they are only used by a single shared object.

  Symbols in the sdk (or referenced in sdk macros), but not defined
anywhere include:
XkbBuildCoreState()
XkbInitialMap
XkbXIUnsupported
XkbCheckActionVMods()
XkbSendCompatNotify()
XkbDDXFakePointerButton()
XkbDDXApplyConfig()
_XkbStrCaseCmp()
_XkbErrMessages[]
_XkbErrCode
_XkbErrLocation
_XkbErrData
XkbAccessXDetailText()
XkbNKNDetailMaskText()
XkbLookupGroupAndLevel()
XkbInitAtoms()
XkbGetOrderedDrawables()
XkbFreeOrderedDrawables()
XkbConvertXkbComponents()
XkbWriteXKBSemantics()
XkbWriteXKBLayout()
XkbWriteXKBKeymap()
XkbWriteXKBFile()
XkbWriteCFile()
XkbWriteXKMFile()
XkbWriteToServer()
XkbMergeFile()
XkmFindTOCEntry()
XkmReadFileSection()
XkmReadFileSectionName()
InitExtInput()
xf86CheckButton()
xf86SwitchCoreDevice()
RamDacSetGamma()
RamDacRestoreDACValues()
xf86Bpp
xf86ConfigPix24
xf86MouseCflags[]
xf86SupportedMouseTypes[]
xf86NumMouseTypes
xf86ChangeBusIndex()
xf86EntityEnter()
xf86EntityLeave()
xf86WrapperInit()
xf86RingBell()
xf86findOptionBoolean()
xf86debugListOptions()
LoadSubModuleLocal()
LoaderSymbolLocal()
getInt10Rec()
xf86CurrentScreen
xf86ReallocatePciResources()
xf86NewSerialNumber()
xf86RandRSetInitialMode()
fbCompositeSolidMask_nx1xn
fbCompositeSolidMask_nx8888x0565C
fbCompositeSolidMask_nx8888x8888C
fbCompositeSolidMask_nx8x0565
fbCompositeSolidMask_nx8x0888
fbCompositeSolidMask_nx8x8888
fbCompositeSrc_0565x0565
fbCompositeSrc_8888x0565
fbCompositeSrc_8888x0888
fbCompositeSrc_8888x8888
fbCompositeSrcAdd_1000x1000
fbCompositeSrcAdd_8000x8000
fbCompositeSrcAdd_8888x8888
fbGeneration
fbIn
fbOver
fbOver24
fbOverlayGeneration
fbRasterizeEdges
fbRestoreAreas
fbSaveAreas
composeFunctions
VBEBuildVbeModeList()
VBECalcVbeModeIndex()
TIramdac3030CalculateMNPForClock()
shadowBufPtr
shadowFindBuf()
miRRGetScreenInfo()
RRSetScreenConfig()
RRModePruneUnused()
PixmanImageFromPicture()
extern int miPointerGetMotionEvents()
miClipPicture()
miRasterizeTriangle()
fbPush1toN()
fbInitializeBackingStore()
ddxBeforeReset()
SetupSprite()
InitSprite()
DGADeliverEvent()

  SPECIAL CASES
o defined as _X_INTERNAL
	xf86NewInputDevice()
o defined as static
	fbGCPrivateKey
	fbOverlayScreenPrivateKey
	fbScreenPrivateKey
	fbWinPrivateKey
o defined in libXfont.so, but declared in xorg/dixfont.h
	GetGlyphs()
	QueryGlyphExtents()
	QueryTextExtents()
	ParseGlyphCachingMode()
	InitGlyphCaching()
	SetGlyphCachingMode()
2008-11-29 23:56:06 -02:00
Paulo Cesar Pereira de Andrade
31285d063e Make visible symbols required by xorg modules.
This patch exports all symbols required by the compilable
(in a x86 linux computer) xorg/driver/* modules.
  Still missing symbols worth mentioning are:

sunleo
	miFindMaxBand no longer available

intel	(uxa/uxa-accel.c)
	fbShmPutImage no longer available (and should have been static)

mga
	MGAGetClientPointer (should come from matrox's libhal)

  This is not a definitive "visibility" patch, as all it does is to
export missing symbols, but the modules that current don't compile,
may require more symbols once fixed, and third party drivers should
also require more symbols exported.
  A "definitive" patch should export symbols defined in the sdk.
2008-11-28 01:55:11 -02:00
James Cloos
b3c7e62664 Remove some null statements.
Remove several doubled statement-terminal semicolons.

Reported by Fernando Carrijo.
2008-11-08 12:21:20 -05:00
Adam Jackson
8a5b89e8e1 xalloc+memset(0) -> xcalloc 2008-10-06 15:36:51 -04:00
Daniel Stone
446fe9eecd Dead code removal
Remove a whole bunch of code that was never built, be it entire files or
just dead ifdefs.
2008-07-17 21:37:50 +03:00
David Nusinow
f7ab2d3821 Add missing file from previous commit. 2008-03-02 18:36:25 -05:00
David Nusinow
b5ce0e1d0b Bug #13860: Ensure that the DRI mode is in octal format. 2008-03-02 17:12:02 -05:00
George Sapountzis
3d64290547 clean some "unused" warnings 2008-03-01 19:49:24 +02:00
Adam Jackson
0bdd20a045 Eradicate the VTInit code.
"This option should rarely be used."  Never sounds like a better idea.
2008-02-14 07:52:46 +11:00
Alan Coopersmith
b77ca7cc9c Use _X_EXPORT instead of __attribute__((visibility("default"))) 2007-12-03 11:31:21 -08:00
Adam Jackson
a344920ae8 Allow Virtual to be specified globally in the Screen section.
The Display subsections are optional, and it's confusing to need to create
them just to set a Virtual size.
2007-11-26 11:53:08 -05:00
Adam Jackson
d15339a92c Bug #9725: Don't look in root's $HOME for config files, that's just confusing. 2007-11-17 22:12:10 -05:00
Daniel Stone
dda10c9066 Remove all traces of external RGB database (and Speedo)
Remove all references to an external RGB database (which hasn't been enabled
for a very long time).  Also get rid of some references to Speedo fonts.
2007-11-05 16:28:35 +00:00
Adam Jackson
f4fe66f676 Disable explicit commenting in Monitor section. 2007-11-02 12:05:22 -04:00
Adam Jackson
b97518666d Fix accidental ABI usage in RANDR 1.2 drivers.
Due to RANDR 1.2, xf86findOptionValue and xf86nameCompare are now ABI.
Make sure they're exported from the server.
2007-11-02 12:04:29 -04:00
David Nusinow
3aa41bcb82 Remove obsolete error message define from parser 2007-10-11 21:29:13 -04:00
David Nusinow
e3e1222111 Don't bother validating the Device section of the conf file
All the previous tests can now be recovered from if not specified.
2007-10-11 21:27:07 -04:00
David Nusinow
28ef7f5941 Re-enable validation of the screen section of xorg.conf
This also fixes a problem where the server can't find the device section
when it is specified in the screen section.
2007-10-11 20:56:46 -04:00
David Nusinow
8825d36a38 Allow the user to not have a screen section
If none is present, a default one will be created. This will be attached
to either the first device section in the xorg.conf (allowing you to
specify something like using EXA without having a screen section) or a
default screen section if none is present in the file.
2007-10-09 22:49:07 -04:00
David Nusinow
6033d8150b First pass at improved video driver autoloading
This is what we're currently shipping in Debian. Enables the ability for
drivers to ship a text file listing PCI ID's they support, and have the
server read them on startup when no driver is specified. This works, but
isn't the final solution.
2007-10-09 22:13:15 -04:00
Adam Jackson
4d76075dbb Death to RCS tags. 2007-06-29 14:06:52 -04:00
Adam Jackson
f7f3fe7fe7 Remove the remnants of OS/2 support.
This has never worked in any modular server release, and as far as I know
was never tested in 6.7 through 6.9.
2007-06-28 18:59:05 -04:00
Adam Jackson
928836a5ab Bug #10770: "Inputdevs" isn't a valid config file keyword. 2007-06-28 16:29:28 -04:00
David Nusinow
e91b9ddc7a Improve modules loading defaults
Provide default modules that may be overrided easily. Previously the
server would load a set of default modules, but only if none were
specified in the xorg.conf, or if you didn't have a xorg.conf at all. This
patch provides a default set and you can add only the "Load" instructions
to xorg.conf that you want without losing the defaults. Similarly, if you
don't want to load a module that's loaded by default, you can add "Disable
modulename" to your xorg.conf (see man xorg.conf in this release for
details). This allows for a minimal "Modules" section, where the user only
need specify what they want to be different. See bug #10541 for more.

The list of default modules is taken from the set loaded by default when
there was a xorg.conf containing no "Modules" section.

A potential problem for some users is that some users disable a module,
most notably DRI, by commenting out the "Load" line in their xorg.conf.
This needs to be changed to an uncommented "Disable" line, as DRI is
loaded by default.
2007-05-03 22:00:23 -04:00
Magnus Vigerlöf
4771fa8747 XFree86: Fix memory leak in option parsing
Fix option parsing functions and callers thereof to not leak memory.
2007-04-10 23:58:20 +03:00
Adam Jackson
72b477f964 Don't write out empty sections from the parser. 2007-04-09 18:59:01 -04:00
Adam Jackson
62224e3972 Static cleanup for xf86 ddx. 2007-03-25 17:55:15 -04:00
Adam Jackson
9a0f25de7c Static cleanups, dead code deletion. 2007-03-25 12:27:01 -04:00
Keith Packard
096965ec9c Ensure drivers can use new modes header files.
New modes header files required a few minor changes to be used by external
drivers, the most notable of which is the publication of the config file
parser header files.
2007-02-17 15:16:44 -08:00
Keith Packard
028bbdc041 Merge master back to randr-1.2 2006-11-04 17:46:26 -08:00
Keith Packard
b4659faf9b Merge branch 'master' into randr-1.2 2006-10-04 14:46:04 -07:00
Daniel Stone
ad321fad4b Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into input-hotplug 2006-09-24 17:56:43 +03:00
Aaron Plattner
c1655f0fd4 Bug 8386: Grow parser buffers to fit an entire line if it's longer than CONFIG_BUF_LEN. 2006-09-21 14:45:17 -07:00
Keith Packard
2be1ac15ae Remove smashing of CFLAGS from server build.
CFLAGS is a user variable, extracted from the environment at configure time
and settable by the user at build time. We must not override this variable.
2006-09-18 12:11:18 -07:00
Bill Nottingham
0a62840e2c Bug 7641: fix comment written to Xorg.conf (s/VertSync/VertRefresh/)
X.Org Bugzilla #7641 <https://bugs.freedesktop.org/show_bug.cgi?id=7641>
Patch #6349 <https://bugs.freedesktop.org/attachment.cgi?id=6349>
2006-09-13 15:40:23 -07:00
Donnie Berkholz
2b357e9a2f If we're installing libxf86config, install headers needed to build against it. 2006-09-10 22:17:20 -07:00
Daniel Stone
d6f36bd280 xfree86/parser: use 'kbd' driver when 'keyboard' specified
Now that we've completely ditched the old driver, we should probably make a
best-effort attempt to keep configs working.
2006-08-25 12:43:17 +03:00
Daniel Stone
81913a1291 remove undead files from master
Remove dead files which worked their way back in when merging from master.
Ugh.
2006-07-21 19:10:26 -04:00
Daniel Stone
7465010d59 Merge branch 'master' of git+ssh://git.freedesktop.org/git/xorg/xserver into input-hotplug 2006-07-21 19:05:41 -04:00
Adam Jackson
0aaac95b0d Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
Kristian Høgsberg
3eeb62e8f5 bug #890: completely remove deprecated keyboard driver
Remove all remnants of the old built-in keyboard driver.
2006-07-21 16:33:28 -04:00