[PATCH 0/6] Move main() from DIX to DDXen

Jon TURNEY jon.turney at dronecode.org.uk
Mon Jan 17 06:20:35 PST 2011


This is more in the nature of a RFC, but this is the least-bad approach I have
managed to come up with.

Why do I want to do this?  This set of changes lets me untie a few knots that
XWin finds itself in at the moment:

* libdix comes in 2 different flavours, depending on if it's
built with ROOTLESS defined or not, so DDXs which don't support ROOTLESS can't
be built at the same time as those that do.

* I'd like for a statically linked DDX to be able install another GLX provider
such that it gets chosen in preference to swrast, and to solve that problem
without creating another instance of the problem above.

* The first point at which the DDX gets to execute is either
ddxProcessArgument() (if arguments were supplied), otherwise OsVendorInit().
This uncertainly makes it unneccessarily painful to implement command line
options with a default depending on the environment.
(There's also a specific problem in that I'd like to have XWin default to
-nolock if the filesystem for /tmp is FAT (as it doesn't support the semantics
needed to create the lockfile successfully), but OsVendorInit() is too late to
check this, as by that time, the lockfile has been created.)

Jon TURNEY (6):
  Move main() from dix to ddx
  Replace DDXBEFORERESET with a more general way of doing DDX-specific
    hooks
  Add a DDX specific GLX provider push hook
  Add a DDX specific hook into miPaintWindow for DDXen which support
    the rootless extension
  Make building XWin with WINDOWSWM and ROOTLESS mandatory
  Revert libmain.a

 configure.ac                        |   27 ++++++-----------------
 dix/Makefile.am                     |    6 +---
 dix/dispatch.c                      |    8 ++++--
 dix/globals.c                       |    3 ++
 dix/main.c                          |    6 +---
 hw/dmx/dmxinit.c                    |   12 +++++-----
 hw/kdrive/ephyr/ephyrinit.c         |    7 ++++++
 hw/kdrive/fake/fakeinit.c           |    7 ++++++
 hw/kdrive/fbdev/fbinit.c            |    7 ++++++
 hw/vfb/InitOutput.c                 |   13 +++++------
 hw/vfb/Makefile.am                  |    1 -
 hw/xfree86/Makefile.am              |    2 +-
 hw/xfree86/common/xf86Init.c        |    6 +++++
 hw/xnest/Init.c                     |   12 +++++-----
 hw/xquartz/mach-startup/Makefile.am |    2 +-
 hw/xquartz/quartzStartup.c          |    7 ++++-
 hw/xwin/InitOutput.c                |   19 ++++++++++++++--
 hw/xwin/Makefile.am                 |    4 +-
 include/dix-config.h.in             |    3 --
 include/dixmain.h                   |   40 +++++++++++++++++++++++++++++++++++
 include/os.h                        |    4 ---
 mi/miexpose.c                       |   31 +++++++-------------------
 mi/miinitext.c                      |   11 ++++++++-
 miext/rootless/rootless.h           |    6 +++++
 miext/rootless/rootlessWindow.c     |   24 +++++++++++++++++++++
 25 files changed, 178 insertions(+), 90 deletions(-)
 create mode 100644 include/dixmain.h

-- 
1.7.3.3



More information about the xorg-devel mailing list