[RFC][PATCH 0/6] towards the dietary: removing libpciaccess dependency from Xorg

Tiago Vignatti tiago.vignatti at nokia.com
Tue Jul 14 10:06:37 PDT 2009


(take a breath; this set comes with radical changes)

The Xorg server has its PCI code (device, bus, bridge, etc) very tied with all
the rest of the code. Ideally we want an userspace-only Xorg: without touch
and step in any PCI register. The first attempt towards this was to use the
libpciaccess (Ian's pcirework). It was awesome but a lot of code still in the
server. It's worst: even some devices don't have any kind of PCI hardware, the
libpciaccess stills there. Sigh.

This set is an attempt to remove the libpciaccess dependecy and put some order
on output's initialization code. It's a RFC because a lot of people will
complain about the removal of some _ancient_ code (I'm talking about > 10
years). Most the code removed here needs root privilegies and initializes the
server just to get some information and then immediately exits. This is
idiot and not the role of the X server, so lets do it right (BTW, I'm curious
to know which applications are using this probe methods and eventually help
fix those applications properly).

I could split in two sets the patches: removal of ancient/dumb code and
removal of libpciaccess dependency. Anyway, the highlights are:
    - removal of -configure option
    - removal of -modalias option
    - removal of -probe option
    - removal of -probeonly option
    - libpciaccess as optional


Now with a bit crazy set of arguments passed to autoconf I'm able to use Xorg
inside an fbdev drived device without the server stomps the inexistent PCI
hardware on it. Yay!


Cheers,

                Tiago


Tiago Vignatti (6):
  xfree86: delete the dumb xorg.conf creator (-configure option)
  xfree86: delete stupid video driver dump (-modalias option)
  xfree86: delete devices probe code (-probe and -probeonly options)
  xfree86: simplify xf86CallDriverProbe API and implementation
  xfree86: set PCI code optionally
  configure: sanitise PCI configuration and introduce --disable-pci

 configure.ac                             |   84 ++--
 hw/xfree86/common/Makefile.am            |    8 +-
 hw/xfree86/common/xf86.h                 |   68 ++--
 hw/xfree86/common/xf86AutoConfig.c       |   16 +-
 hw/xfree86/common/xf86Bus.c              |   40 ++
 hw/xfree86/common/xf86Bus.h              |    2 +-
 hw/xfree86/common/xf86Config.c           |    5 +-
 hw/xfree86/common/xf86Configure.c        |  875 ------------------------------
 hw/xfree86/common/xf86Globals.c          |    4 -
 hw/xfree86/common/xf86Helper.c           |   56 +--
 hw/xfree86/common/xf86Init.c             |  314 +----------
 hw/xfree86/common/xf86Priv.h             |    6 -
 hw/xfree86/common/xf86sbusBus.c          |   21 -
 hw/xfree86/common/xf86str.h              |    7 +-
 hw/xfree86/ddc/edid.h                    |    2 +-
 hw/xfree86/doc/man/Xorg.man.pre          |   19 -
 hw/xfree86/fbdevhw/fbdevhw.c             |   16 +
 hw/xfree86/fbdevhw/fbdevhw.h             |    5 +
 hw/xfree86/loader/sdksyms.sh             |    3 +-
 hw/xfree86/os-support/Makefile.am        |   12 +-
 hw/xfree86/os-support/solaris/sun_init.c |    3 -
 hw/xfree86/parser/DRI.c                  |   29 -
 hw/xfree86/parser/Device.c               |   68 ---
 hw/xfree86/parser/Extensions.c           |   16 -
 hw/xfree86/parser/Flags.c                |   15 -
 hw/xfree86/parser/Input.c                |   18 -
 hw/xfree86/parser/Makefile.am            |    1 -
 hw/xfree86/parser/Monitor.c              |  146 -----
 hw/xfree86/parser/Screen.c               |  101 ----
 hw/xfree86/parser/Vendor.c               |   29 -
 hw/xfree86/parser/Video.c                |   37 --
 hw/xfree86/parser/configProcs.h          |   10 -
 hw/xfree86/parser/write.c                |  218 --------
 hw/xfree86/parser/xf86Parser.h           |    1 -
 include/xorg-config.h.in                 |    3 +
 35 files changed, 214 insertions(+), 2044 deletions(-)
 delete mode 100644 hw/xfree86/common/xf86Configure.c
 delete mode 100644 hw/xfree86/parser/write.c



More information about the xorg-devel mailing list