xserver-multidpi/include/dix-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

435 lines
9.0 KiB
C

/* dix-config.h.in: not at all generated. -*- c -*- */
#ifndef _DIX_CONFIG_H_
#define _DIX_CONFIG_H_
/* Support BigRequests extension */
#undef BIGREQS
/* Builder address */
#undef BUILDERADDR
/* Operating System Name */
#undef OSNAME
/* Operating System Vendor */
#undef OSVENDOR
/* Builder string */
#undef BUILDERSTRING
/* Default font path */
#undef COMPILEDDEFAULTFONTPATH
/* Miscellaneous server configuration files path */
#undef SERVER_MISC_CONFIG_PATH
/* Support Composite Extension */
#undef COMPOSITE
/* Support Damage extension */
#undef DAMAGE
/* Use OsVendorVErrorF */
#undef DDXOSVERRORF
/* Use ddxBeforeReset */
#undef DDXBEFORERESET
/* Build DPMS extension */
#undef DPMSExtension
/* Build GLX extension */
#undef GLXEXT
/* Build GLX DRI loader */
#undef GLX_DRI
/* Path to DRI drivers */
#undef DRI_DRIVER_PATH
/* Support XDM-AUTH*-1 */
#undef HASXDMAUTH
/* Support SHM */
#undef HAS_SHM
/* Define to 1 if you have the <asm/mtrr.h> header file. */
#undef HAVE_ASM_MTRR_H
/* Has backtrace support */
#undef HAVE_BACKTRACE
/* Define to 1 if you have the <byteswap.h> header file. */
#undef HAVE_BYTESWAP_H
/* Define to 1 if you have the `cbrt' function. */
#undef HAVE_CBRT
/* Define to 1 if you have the <dbm.h> header file. */
#undef HAVE_DBM_H
/* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
*/
#undef HAVE_DIRENT_H
/* Define to 1 if you have the <dlfcn.h> header file. */
#undef HAVE_DLFCN_H
/* Have execinfo.h */
#undef HAVE_EXECINFO_H
/* Define to 1 if you have the <fcntl.h> header file. */
#undef HAVE_FCNTL_H
/* Define to 1 if you have the `ffs' function. */
#undef HAVE_FFS
/* Define to 1 if you have the `getdtablesize' function. */
#undef HAVE_GETDTABLESIZE
/* Define to 1 if you have the `getifaddrs' function. */
#undef HAVE_GETIFADDRS
/* Define to 1 if you have the `getpeereid' function. */
#undef HAVE_GETPEEREID
/* Define to 1 if you have the `getpeerucred' function. */
#undef HAVE_GETPEERUCRED
/* Define to 1 if you have the `getzoneid' function. */
#undef HAVE_GETZONEID
/* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H
/* Have Quartz */
#undef XQUARTZ
/* Support application updating through sparkle. */
#undef XQUARTZ_SPARKLE
/* Prefix to use for bundle identifiers */
#undef BUNDLE_ID_PREFIX
/* Build a standalone xpbproxy */
#undef STANDALONE_XPBPROXY
/* Define to 1 if you have the `m' library (-lm). */
#undef HAVE_LIBM
/* Define to 1 if you have the libdispatch (GCD) available */
#undef HAVE_LIBDISPATCH
/* Define to 1 if you have the <linux/agpgart.h> header file. */
#undef HAVE_LINUX_AGPGART_H
/* Define to 1 if you have the <linux/apm_bios.h> header file. */
#undef HAVE_LINUX_APM_BIOS_H
/* Define to 1 if you have the <linux/fb.h> header file. */
#undef HAVE_LINUX_FB_H
/* Define to 1 if you have the `mmap' function. */
#undef HAVE_MMAP
/* Define to 1 if you have the <ndbm.h> header file. */
#undef HAVE_NDBM_H
/* Define to 1 if you have the <ndir.h> header file, and it defines `DIR'. */
#undef HAVE_NDIR_H
/* Define to 1 if you have the <rpcsvc/dbm.h> header file. */
#undef HAVE_RPCSVC_DBM_H
/* Define to use libc SHA1 functions */
#undef HAVE_SHA1_IN_LIBC
/* Define to use CommonCrypto SHA1 functions */
#undef HAVE_SHA1_IN_COMMONCRYPTO
/* Define to use CryptoAPI SHA1 functions */
#undef HAVE_SHA1_IN_CRYPTOAPI
/* Define to use libmd SHA1 functions */
#undef HAVE_SHA1_IN_LIBMD
/* Define to use libgcrypt SHA1 functions */
#undef HAVE_SHA1_IN_LIBGCRYPT
/* Define to use libsha1 for SHA1 */
#undef HAVE_SHA1_IN_LIBSHA1
/* Define to 1 if you have the `shmctl64' function. */
#undef HAVE_SHMCTL64
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
/* Define to 1 if you have the `strcasecmp' function. */
#undef HAVE_STRCASECMP
/* Define to 1 if you have the `strcasestr' function. */
#undef HAVE_STRCASESTR
/* Define to 1 if you have the `strncasecmp' function. */
#undef HAVE_STRNCASECMP
/* Define to 1 if you have the `strlcat' function. */
#undef HAVE_STRLCAT
/* Define to 1 if you have the `strlcpy' function. */
#undef HAVE_STRLCPY
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
/* Define to 1 if you have the `strndup' function. */
#undef HAVE_STRNDUP
/* Define to 1 if SYSV IPC is available */
#undef HAVE_SYSV_IPC
/* Define to 1 if you have the <sys/agpio.h> header file. */
#undef HAVE_SYS_AGPIO_H
/* Define to 1 if you have the <sys/dir.h> header file, and it defines `DIR'.
*/
#undef HAVE_SYS_DIR_H
/* Define to 1 if you have the <sys/ndir.h> header file, and it defines `DIR'.
*/
#undef HAVE_SYS_NDIR_H
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
/* Define to 1 if you have the <sys/types.h> header file. */
#undef HAVE_SYS_TYPES_H
/* Define to 1 if you have the <sys/utsname.h> header file. */
#undef HAVE_SYS_UTSNAME_H
/* Define to 1 if you have the <tslib.h> header file. */
#undef HAVE_TSLIB_H
/* Define to 1 if you have the <unistd.h> header file. */
#undef HAVE_UNISTD_H
/* Define to 1 if you have the <fnmatch.h> header file. */
#undef HAVE_FNMATCH_H
/* Have /dev/urandom */
#undef HAVE_URANDOM
/* Define to 1 if you have the `vasprintf' function. */
#undef HAVE_VASPRINTF
/* Support IPv6 for TCP connections */
#undef IPv6
/* Support os-specific local connections */
#undef LOCALCONN
/* Support MIT-SHM Extension */
#undef MITSHM
/* Enable some debugging code */
#undef DEBUG
/* Name of package */
#undef PACKAGE
/* Internal define for Xinerama */
#undef PANORAMIX
/* Overall prefix */
#undef PROJECTROOT
/* Support RANDR extension */
#undef RANDR
/* Support Record extension */
#undef XRECORD
/* Support RENDER extension */
#undef RENDER
/* Support X resource extension */
#undef RES
/* Support client ID tracking in X resource extension */
#undef CLIENTIDS
/* Support MIT-SCREEN-SAVER extension */
#undef SCREENSAVER
/* Support Secure RPC ("SUN-DES-1") authentication for X11 clients */
#undef SECURE_RPC
/* Support SHAPE extension */
#undef SHAPE
/* Define to 1 on systems derived from System V Release 4 */
#undef SVR4
/* Support TCP socket connections */
#undef TCPCONN
/* Enable touchscreen support */
#undef TOUCHSCREEN
/* Support tslib touchscreen abstraction library */
#undef TSLIB
/* Support UNIX socket connections */
#undef UNIXCONN
/* Define to use byteswap macros from <sys/endian.h> */
#undef USE_SYS_ENDIAN_H
/* unaligned word accesses behave as expected */
#undef WORKING_UNALIGNED_INT
/* Build X string registry */
#undef XREGISTRY
/* Build X-ACE extension */
#undef XACE
/* Build SELinux extension */
#undef XSELINUX
/* Support XCMisc extension */
#undef XCMISC
/* Build Security extension */
#undef XCSECURITY
/* Support Xdmcp */
#undef XDMCP
/* Build XFree86 BigFont extension */
#undef XF86BIGFONT
/* Support XFree86 Video Mode extension */
#undef XF86VIDMODE
/* Support XFixes extension */
#undef XFIXES
/* Build XDGA support */
#undef XFreeXDGA
/* Support Xinerama extension */
#undef XINERAMA
/* Vendor release */
#undef XORG_RELEASE
/* Current Xorg version */
#undef XORG_VERSION_CURRENT
/* Xorg release date */
#undef XORG_DATE
/* Build Xv Extension */
#undef XvExtension
/* Build XvMC Extension */
#undef XvMCExtension
/* Support XSync extension */
#undef XSYNC
/* Support XTest extension */
#undef XTEST
/* Support Xv extension */
#undef XV
/* Support DRI extension */
#undef XF86DRI
/* Build DRI2 extension */
#undef DRI2
/* Build DBE support */
#undef DBE
/* Vendor name */
#undef XVENDORNAME
/* Enable GNU and other extensions to the C environment for GLIBC */
#undef _GNU_SOURCE
/* Define to empty if `const' does not conform to ANSI C. */
#undef const
/* Define to `int' if <sys/types.h> does not define. */
#undef pid_t
/* Build Rootless code */
#undef ROOTLESS
/* Define to 1 if unsigned long is 64 bits. */
#undef _XSERVER64
/* System is BSD-like */
#undef CSRG_BASED
/* Define to 1 if `struct sockaddr_in' has a `sin_len' member */
#undef BSD44SOCKETS
/* Support D-Bus */
#undef HAVE_DBUS
/* Use libudev for input hotplug */
#undef CONFIG_UDEV
/* Use libudev for kms enumeration */
#undef CONFIG_UDEV_KMS
/* Use udev_monitor_filter_add_match_tag() */
#undef HAVE_UDEV_MONITOR_FILTER_ADD_MATCH_TAG
/* Use udev_enumerate_add_match_tag() */
#undef HAVE_UDEV_ENUMERATE_ADD_MATCH_TAG
/* Use D-Bus for input hotplug */
#undef CONFIG_NEED_DBUS
/* Support the D-Bus hotplug API */
#undef CONFIG_DBUS_API
/* Support HAL for hotplug */
#undef CONFIG_HAL
/* Have a monotonic clock from clock_gettime() */
#undef MONOTONIC_CLOCK
/* Define to 1 if the DTrace Xserver provider probes should be built in */
#undef XSERVER_DTRACE
/* Define to 16-bit byteswap macro */
#undef bswap_16
/* Define to 32-bit byteswap macro */
#undef bswap_32
/* Define to 64-bit byteswap macro */
#undef bswap_64
/* The compiler supported TLS storage class, prefering initial-exec if tls_model is supported */
#undef TLS
/* Correctly set _XSERVER64 for OSX fat binaries */
#ifdef __APPLE__
#include "dix-config-apple-verbatim.h"
#endif
#endif /* _DIX_CONFIG_H_ */