xserver-multidpi/include/xorg-server.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

216 lines
4.1 KiB
C

/* xorg-server.h.in -*- c -*-
*
* This file is the template file for the xorg-server.h file which gets
* installed as part of the SDK. The #defines in this file overlap
* with those from config.h, but only for those options that we want
* to export to external modules. Boilerplate autotool #defines such
* as HAVE_STUFF and PACKAGE_NAME is kept in config.h
*
* It is still possible to update config.h.in using autoheader, since
* autoheader only creates a .h.in file for the first
* AM_CONFIG_HEADER() line, and thus does not overwrite this file.
*
* However, it should be kept in sync with this file.
*/
#ifndef _XORG_SERVER_H_
#define _XORG_SERVER_H_
/* Support BigRequests extension */
#undef BIGREQS
/* Default font path */
#undef COMPILEDDEFAULTFONTPATH
/* Support Composite Extension */
#undef COMPOSITE
/* Build DPMS extension */
#undef DPMSExtension
/* Build GLX extension */
#undef GLXEXT
/* Support XDM-AUTH*-1 */
#undef HASXDMAUTH
/* Support SHM */
#undef HAS_SHM
/* Define to 1 if you have the `ffs' function. */
#undef HAVE_FFS
/* 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 `strlcat' function. */
#undef HAVE_STRLCAT
/* Define to 1 if you have the `strlcpy' function. */
#undef HAVE_STRLCPY
/* Define to 1 if you have the `strncasecmp' function. */
#undef HAVE_STRNCASECMP
/* Define to 1 if you have the `strndup' function. */
#undef HAVE_STRNDUP
/* Support IPv6 for TCP connections */
#undef IPv6
/* Support MIT-SHM Extension */
#undef MITSHM
/* Internal define for Xinerama */
#undef PANORAMIX
/* Support RANDR extension */
#undef RANDR
/* Support RENDER extension */
#undef RENDER
/* Support X resource extension */
#undef RES
/* Support MIT-SCREEN-SAVER extension */
#undef SCREENSAVER
/* 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
/* unaligned word accesses behave as expected */
#undef WORKING_UNALIGNED_INT
/* Support XCMisc extension */
#undef XCMISC
/* Support Xdmcp */
#undef XDMCP
/* Build XFree86 BigFont extension */
#undef XF86BIGFONT
/* Support XFree86 Video Mode extension */
#undef XF86VIDMODE
/* Build XDGA support */
#undef XFreeXDGA
/* Support Xinerama extension */
#undef XINERAMA
/* Support X Input extension */
#undef XINPUT
/* XKB default rules */
#undef XKB_DFLT_RULES
/* Support loadable input and output drivers */
#undef XLOADABLE
/* Build DRI extension */
#undef XF86DRI
/* Build DRI2 extension */
#undef DRI2
/* Build Xorg server */
#undef XORGSERVER
/* Vendor release */
#undef XORG_RELEASE
/* Current Xorg version */
#undef XORG_VERSION_CURRENT
/* 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
/* Vendor name */
#undef XVENDORNAME
/* BSD-compliant source */
#undef _BSD_SOURCE
/* POSIX-compliant source */
#undef _POSIX_SOURCE
/* X/Open-compliant source */
#undef _XOPEN_SOURCE
/* Vendor web address for support */
#undef __VENDORDWEBSUPPORT__
/* Location of configuration file */
#undef __XCONFIGFILE__
/* Name of X server */
#undef __XSERVERNAME__
/* Building vgahw module */
#undef WITH_VGAHW
/* 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
/* Loadable XFree86 server awesomeness */
#undef XFree86LOADER
/* Use libpciaccess */
#undef XSERVER_LIBPCIACCESS
/* X Access Control Extension */
#undef XACE
/* Have X server platform bus support */
#undef XSERVER_PLATFORM_BUS
#ifdef _LP64
#define _XSERVER64 1
#endif
#endif /* _XORG_SERVER_H_ */