xserver-multidpi/include/xorg-config.h.in
Dave Airlie cf66471353 xfree86: use udev to provide device enumeration for kms devices (v10)
On Linux in order for future hotplug work, we are required to interface
to udev to detect device creation/removal. In order to try and get
some earlier testing on this, this patch adds the ability to use
udev for device enumeration on Linux.

At startup the list of drm/kms devices is probed and this info is
used to load drivers.

A new driver probing method is introduced that passes the udev
device info to the driver for probing.

The probing integrates with the pci probing code and will fallback
to the pci probe and old school probe functions in turn.

The flags parameter to the probe function will be used later
to provide hotplug and gpu screen flags for the driver to behave
in a different way.

This patch changes the driver ABI, all drivers should at least
be set with a NULL udev probe function after this commit.

v2: rename to platform bus, now with 100% less udev specific,

this version passes config_odev_attribs around which are an array
of id/string pairs, then the udev code can attach the set of attribs
it understands, the OS specific code can attach its attrib, and then
the core/drivers can lookup the required attribs.

also add MATCH_PCI_DEVICES macro.

This version is mainly to address concerns raised by ajax.

v3: Address comments from Peter.
fix whitespace that snuck in.
rework to use a linked list with some core functions that
xf86 wraps.

v4: add free list, fix struct whitespace.
ajax this address most of your issues?

v5: drop probe ifdef, fix logic issue

v6: some overhaul after more testing.

Implement primaryBus for platform devices.
document hotplug.h dev attribs - drop sysname attrib
fix build with udev kms disabled
make probing work like the PCI probe code,
   match against bus id if one exists, or primary device.

RFC: add new bus id support "PLAT:syspath". we probably
want to match on this a bit different, or use a different
property maybe. I was mainly wanting this for use with
specifying usb devices in xorg.conf directly, but PLAT:path
could also work I suppose.

v6.1: add missing noop platform function

v7: fix two interactions with pci probing and slot claiming, prevents
pci and platform trying to load two drivers for same slot.

v8: test with zaphod mode on -ati driver, fixup resulting issue
clean up common probe code into another function, change busid
matching to allow dropping end of strings.

v9: fix platform probing logic so it actually works.
v9.1: fix pdev init to NULL properly.

v10: address most of Keith's concerns.

v4 was thanks to Reviewed-by: Adam Jackson <ajax@redhat.com>
v5 was Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2012-07-06 10:20:19 +01:00

143 lines
2.9 KiB
C

/* xorg-config.h.in: not at all generated. -*- c -*-
*
* This file differs from xorg-server.h.in in that -server is installed
* with the rest of the SDK for external drivers/modules to use, whereas
* -config is for internal use only (i.e. building the DDX).
*
*/
#ifndef _XORG_CONFIG_H_
#define _XORG_CONFIG_H_
#include <dix-config.h>
#include <xkb-config.h>
/* Building Xorg server. */
#undef XORGSERVER
/* Current X.Org version. */
#undef XORG_VERSION_CURRENT
/* Name of X server. */
#undef __XSERVERNAME__
/* URL to go to for support. */
#undef __VENDORDWEBSUPPORT__
/* Built-in output drivers. */
#undef DRIVERS
/* Built-in input drivers. */
#undef IDRIVERS
/* Path to configuration file. */
#undef XF86CONFIGFILE
/* Path to configuration file. */
#undef __XCONFIGFILE__
/* Name of configuration directory. */
#undef __XCONFIGDIR__
/* Path to loadable modules. */
#undef DEFAULT_MODULE_PATH
/* Path to installed libraries. */
#undef DEFAULT_LIBRARY_PATH
/* Path to server log file. */
#undef DEFAULT_LOGPREFIX
/* Building DRI-capable DDX. */
#undef XF86DRI
/* Build DRI2 extension */
#undef DRI2
/* Define to 1 if you have the <stropts.h> header file. */
#undef HAVE_STROPTS_H
/* Define to 1 if you have the <sys/kd.h> header file. */
#undef HAVE_SYS_KD_H
/* Define to 1 if you have the <sys/vt.h> header file. */
#undef HAVE_SYS_VT_H
/* Define to 1 if you have the `walkcontext' function (used on Solaris for
xorg_backtrace in hw/xfree86/common/xf86Events.c */
#undef HAVE_WALKCONTEXT
/* Define to 1 if unsigned long is 64 bits. */
#undef _XSERVER64
/* Building vgahw module */
#undef WITH_VGAHW
/* Define to 1 if NetBSD built-in MTRR support is available */
#undef HAS_MTRR_BUILTIN
/* Define to 1 if BSD MTRR support is available */
#undef HAS_MTRR_SUPPORT
/* NetBSD PIO alpha IO */
#undef USE_ALPHA_PIO
/* BSD AMD64 iopl */
#undef USE_AMD64_IOPL
/* BSD /dev/io */
#undef USE_DEV_IO
/* BSD i386 iopl */
#undef USE_I386_IOPL
/* System is BSD-like */
#undef CSRG_BASED
/* System has PC console */
#undef PCCONS_SUPPORT
/* System has PCVT console */
#undef PCVT_SUPPORT
/* System has syscons console */
#undef SYSCONS_SUPPORT
/* System has wscons console */
#undef WSCONS_SUPPORT
/* System has /dev/xf86 aperture driver */
#undef HAS_APERTURE_DRV
/* Has backtrace support */
#undef HAVE_BACKTRACE
/* Name of the period field in struct kbd_repeat */
#undef LNX_KBD_PERIOD_NAME
/* Have execinfo.h */
#undef HAVE_EXECINFO_H
/* Path to text files containing PCI IDs */
#undef PCI_TXT_IDS_PATH
/* Use SIGIO handlers for input device events by default */
#undef USE_SIGIO_BY_DEFAULT
/* Build with libdrm support */
#undef WITH_LIBDRM
/* Use libpciaccess */
#undef XSERVER_LIBPCIACCESS
/* Have setugid */
#undef HAVE_ISSETUGID
/* Have getresuid */
#undef HAVE_GETRESUID
/* Have X server platform bus support */
#undef XSERVER_PLATFORM_BUS
#endif /* _XORG_CONFIG_H_ */