xserver: Branch 'master'

Adam Jackson ajax at kemper.freedesktop.org
Mon Jun 19 08:58:47 EEST 2006


 configure.ac                    |    2 
 hw/xfree86/Makefile.am          |    2 
 hw/xfree86/loader/Makefile.am   |   16 
 hw/xfree86/loader/dixsym.c      |  538 ------------------
 hw/xfree86/loader/dlloader.c    |  107 +--
 hw/xfree86/loader/dlloader.h    |    8 
 hw/xfree86/loader/extsym.c      |   84 --
 hw/xfree86/loader/fontsym.c     |  112 ---
 hw/xfree86/loader/hash.c        |  356 ------------
 hw/xfree86/loader/hash.h        |   40 -
 hw/xfree86/loader/loader.c      |  248 --------
 hw/xfree86/loader/loader.h      |  150 -----
 hw/xfree86/loader/loaderProcs.h |    7 
 hw/xfree86/loader/loadext.c     |    5 
 hw/xfree86/loader/loadfont.c    |    2 
 hw/xfree86/loader/loadmod.c     |   40 -
 hw/xfree86/loader/misym.c       |  225 -------
 hw/xfree86/loader/os.c          |    4 
 hw/xfree86/loader/xf86sym.c     | 1183 ----------------------------------------
 19 files changed, 79 insertions(+), 3050 deletions(-)

New commits:
diff-tree a28652f9c35fbc009245382a5cc2a022f42366fc (from 98a602fab1f307a07a96868d7dae12b6f8d7f405)
Author: Adam Jackson <ajax at theobromine.nwnk.net>
Date:   Mon Jun 19 00:57:18 2006 -0400

    Another round of loader sense-beating.  Remove the (unused) server export
    lists, a really bad hash table, the last vestiges of the other backends,
    and some miscellaneous cleanups.  Good for dropping 300k from the size of
    the built server on x86.

diff --git a/configure.ac b/configure.ac
index 5a93b13..84c2c70 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1028,7 +1028,7 @@ if test "x$XORG" = xyes -o "x$XGL" = xye
 	XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os'
 	XORG_INCS="$XORG_DDXINCS $XORG_OSINCS"
 	XORG_CFLAGS="$XORGSERVER_CFLAGS -DHAVE_XORG_CONFIG_H"
-	XORG_LIBS="$MI_LIB $FIXES_LIB $XEXTXORG_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $COMPOSITE_LIB $XPSTUBS_LIB $OS_LIB"
+	XORG_LIBS="$COMPOSITE_LIB $MI_LIB $FIXES_LIB $XEXTXORG_LIB $GLX_LIBS $RENDER_LIB $RANDR_LIB $DAMAGE_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XPSTUBS_LIB $OS_LIB"
 
 	AC_CHECK_LIB([dl], [dlopen], XORG_LIBS="$XORG_LIBS -ldl")
 
diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
index b50b6ab..ab29d4d 100644
--- a/hw/xfree86/Makefile.am
+++ b/hw/xfree86/Makefile.am
@@ -36,12 +36,12 @@ DISTCLEANFILES = osandcommon.c xorg.c
 XORG_LIBS = \
             @XORG_CORE_LIBS@ \
             common/libinit.a \
-            loader/libloader.a \
             libosandcommon.la \
 	    rac/librac.a \
             parser/libxf86config.a \
             dummylib/libdummy.a \
 	    dixmods/libdixmods.la \
+            loader/libloader.a \
             @XORG_LIBS@
 
 Xorg_DEPENDENCIES = \
diff --git a/hw/xfree86/loader/Makefile.am b/hw/xfree86/loader/Makefile.am
index 684087e..502bb5a 100644
--- a/hw/xfree86/loader/Makefile.am
+++ b/hw/xfree86/loader/Makefile.am
@@ -1,10 +1,6 @@
 noinst_LIBRARIES = libloader.a
-INCLUDES = $(XORG_INCS) -I$(srcdir)/../parser -I$(srcdir)/../vbe \
-           -I$(srcdir)/../ddc -I$(srcdir)/../int10 -I$(srcdir)/../i2c \
-           -I$(srcdir)/../fbdevhw -I$(srcdir)/../scanpci -I$(srcdir)/../xaa \
-           -I$(srcdir)/../vgahw -I$(srcdir)/../ramdac -I$(srcdir)/../shadowfb \
-           -I$(srcdir)/../dixmods/extmod -I$(srcdir)/../../../miext/cw \
-           -I$(srcdir)/../../../miext/damage
+
+INCLUDES = $(XORG_INCS) -I$(srcdir)/../parser
 
 #AM_LDFLAGS = -r
 AM_CFLAGS = -DIN_LOADER $(XORG_CFLAGS) @SERVER_DEFINES@ @LOADER_DEFINES@
@@ -15,10 +11,8 @@ endif
 
 EXTRA_DIST = \
 	dlloader.h \
-	hash.h \
 	loader.h \
 	loaderProcs.h \
-	sym.h \
 	SparcMulDiv.S
 
 libloader_a_SOURCES = \
@@ -29,10 +23,4 @@ libloader_a_SOURCES = \
 	loadfont.c \
         dlloader.c \
 	os.c \
-	dixsym.c \
-	extsym.c \
-	fontsym.c \
-	misym.c \
-	xf86sym.c \
-	hash.c \
 	$(SPARC_SOURCES)
diff --git a/hw/xfree86/loader/dixsym.c b/hw/xfree86/loader/dixsym.c
deleted file mode 100644
index 9ba5087..0000000
--- a/hw/xfree86/loader/dixsym.c
+++ /dev/null
@@ -1,538 +0,0 @@
-/* $XdotOrg: xserver/xorg/hw/xfree86/loader/dixsym.c,v 1.21 2006/03/24 20:50:13 fredrik Exp $ */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dixsym.c,v 1.63 2003/12/03
- * 17:11:29 tsi Exp $ */
-
-/*
- * Copyright 1995-1998 by Metro Link, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Metro Link, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Metro Link, Inc. makes no
- * representations about the suitability of this software for any purpose.
- *  It is provided "as is" without express or implied warranty.
- *
- * METRO LINK, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL METRO LINK, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-/*
- * Copyright (c) 1997-2003 by The XFree86 Project, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of the copyright holder(s)
- * and author(s) shall not be used in advertising or otherwise to promote
- * the sale, use or other dealings in this Software without prior written
- * authorization from the copyright holder(s) and author(s).
- */
-
-#undef DBMALLOC
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "sym.h"
-#include "colormap.h"
-#include "cursor.h"
-#include "cursorstr.h"
-#include "dix.h"
-#include "dixevents.h"
-#include "dixfont.h"
-#include "dixstruct.h"
-#include "misc.h"
-#include "globals.h"
-#include "os.h"
-#include "osdep.h"
-#include "resource.h"
-#include "servermd.h"
-#include "scrnintstr.h"
-#include "windowstr.h"
-#include "extension.h"
-#define EXTENSION_PROC_ARGS void *
-#include "extnsionst.h"
-#include "swaprep.h"
-#include "swapreq.h"
-#include "inputstr.h"
-#include <X11/extensions/XIproto.h>
-#include "exevents.h"
-#include "extinit.h"
-#ifdef XV
-#include "xvmodproc.h"
-#endif
-#include "dgaproc.h"
-#ifdef RENDER
-#include "mipict.h"
-#include "renderedge.h"
-#endif
-#include "selection.h"
-#ifdef XKB
-#include <X11/extensions/XKBsrv.h>
-extern int XkbDfltRepeatDelay, XkbDfltRepeatInterval;
-#endif
-
-extern Selection *CurrentSelections;
-extern int NumCurrentSelections;
-
-/* DIX things */
-
-LOOKUP dixLookupTab[] = {
-
-    /* dix */
-    /* atom.c */
-    SYMFUNC(MakeAtom)
-    SYMFUNC(ValidAtom)
-    /* colormap.c */
-    SYMFUNC(AllocColor)
-    SYMFUNC(CreateColormap)
-    SYMFUNC(FakeAllocColor)
-    SYMFUNC(FakeFreeColor)
-    SYMFUNC(FreeColors)
-    SYMFUNC(StoreColors)
-    SYMFUNC(TellLostMap)
-    SYMFUNC(TellGainedMap)
-    SYMFUNC(QueryColors)
-    /* cursor.c */
-    SYMFUNC(FreeCursor)
-    /* devices.c */
-    SYMFUNC(Ones)
-    SYMFUNC(InitButtonClassDeviceStruct)
-    SYMFUNC(InitFocusClassDeviceStruct)
-    SYMFUNC(InitLedFeedbackClassDeviceStruct)
-    SYMFUNC(InitPtrFeedbackClassDeviceStruct)
-    SYMFUNC(InitKbdFeedbackClassDeviceStruct)
-    SYMFUNC(InitIntegerFeedbackClassDeviceStruct)
-    SYMFUNC(InitStringFeedbackClassDeviceStruct)
-    SYMFUNC(InitBellFeedbackClassDeviceStruct)
-    SYMFUNC(InitValuatorClassDeviceStruct)
-    SYMFUNC(InitKeyClassDeviceStruct)
-    SYMFUNC(InitKeyboardDeviceStruct)
-    SYMFUNC(SendMappingNotify)
-    SYMFUNC(InitPointerDeviceStruct)
-    SYMFUNC(LookupKeyboardDevice)
-    SYMFUNC(LookupPointerDevice)
-    /* dispatch.c */
-    SYMFUNC(SetInputCheck)
-    SYMFUNC(SendErrorToClient)
-    SYMFUNC(UpdateCurrentTime)
-    SYMFUNC(UpdateCurrentTimeIf)
-    SYMFUNC(ProcBadRequest)
-    SYMVAR(dispatchException)
-    SYMVAR(isItTimeToYield)
-    SYMVAR(ClientStateCallback)
-    SYMVAR(ServerGrabCallback)
-    SYMVAR(CurrentSelections)
-    SYMVAR(NumCurrentSelections)
-    /* dixfonts.c */
-    SYMFUNC(CloseFont)
-    SYMFUNC(FontToXError)
-    SYMFUNC(LoadGlyphs)
-    SYMVAR(fpe_functions)
-    /* dixutils.c */
-    SYMFUNC(AddCallback)
-    SYMFUNC(ClientSleep)
-    SYMFUNC(ClientTimeToServerTime)
-    SYMFUNC(ClientWakeup)
-    SYMFUNC(CompareTimeStamps)
-    SYMFUNC(CopyISOLatin1Lowered)
-    SYMFUNC(DeleteCallback)
-    SYMFUNC(LookupClient)
-    SYMFUNC(LookupDrawable)
-    SYMFUNC(LookupWindow)
-    SYMFUNC(NoopDDA)
-    SYMFUNC(QueueWorkProc)
-    SYMFUNC(RegisterBlockAndWakeupHandlers)
-    SYMFUNC(RemoveBlockAndWakeupHandlers)
-#ifdef XCSECURITY
-    SYMFUNC(SecurityLookupDrawable)
-    SYMFUNC(SecurityLookupWindow)
-#endif
-    /* events.c */
-    SYMFUNC(CheckCursorConfinement)
-    SYMFUNC(DeliverEvents)
-    SYMFUNC(NewCurrentScreen)
-    SYMFUNC(PointerConfinedToScreen)
-    SYMFUNC(TryClientEvents)
-    SYMFUNC(WriteEventsToClient)
-    SYMFUNC(GetCurrentRootWindow)
-    SYMFUNC(GetSpritePosition)
-    SYMFUNC(GetSpriteWindow)
-    SYMFUNC(GetSpriteCursor)
-    SYMFUNC(WindowsRestructured)
-    SYMVAR(DeviceEventCallback)
-    SYMVAR(EventCallback)
-    SYMVAR(inputInfo)
-    SYMFUNC(SetCriticalEvent)
-#ifdef PANORAMIX
-    SYMFUNC(XineramaGetCursorScreen)
-#endif
-    /* property.c */
-    SYMFUNC(ChangeWindowProperty)
-    /* extension.c */
-    SYMFUNC(AddExtension)
-    SYMFUNC(AddExtensionAlias)
-    SYMFUNC(CheckExtension)
-    SYMFUNC(DeclareExtensionSecurity)
-    SYMFUNC(MinorOpcodeOfRequest)
-    SYMFUNC(StandardMinorOpcode)
-#ifdef XEVIE
-    SYMVAR(xeviehot)
-    SYMVAR(xeviewin)
-#endif
-    /* gc.c */
-    SYMFUNC(CopyGC)
-    SYMFUNC(CreateGC)
-    SYMFUNC(CreateScratchGC)
-    SYMFUNC(ChangeGC)
-    SYMFUNC(dixChangeGC)
-    SYMFUNC(DoChangeGC)
-    SYMFUNC(FreeGC)
-    SYMFUNC(FreeScratchGC)
-    SYMFUNC(GetScratchGC)
-    SYMFUNC(SetClipRects)
-    SYMFUNC(ValidateGC)
-    SYMFUNC(VerifyRectOrder)
-    SYMFUNC(SetDashes)
-    /* globals.c */
-    SYMVAR(ScreenSaverTime)
-#ifdef DPMSExtension
-    SYMVAR(DPMSEnabled)
-    SYMVAR(DPMSCapableFlag)
-    SYMVAR(DPMSOffTime)
-    SYMVAR(DPMSPowerLevel)
-    SYMVAR(DPMSStandbyTime)
-    SYMVAR(DPMSSuspendTime)
-    SYMVAR(DPMSEnabledSwitch)
-    SYMVAR(DPMSDisabledSwitch)
-    SYMVAR(defaultDPMSEnabled)
-#endif
-    /* bigreq */
-    SYMVAR(maxBigRequestSize)
-#ifdef XV
-    /* XXX These are exported from the DDX, not DIX. */
-    SYMVAR(XvScreenInitProc)
-    SYMVAR(XvGetScreenIndexProc)
-    SYMVAR(XvGetRTPortProc)
-    SYMVAR(XvMCScreenInitProc)
-#endif
-    SYMVAR(ScreenSaverBlanking)
-    SYMVAR(WindowTable)
-    SYMVAR(clients)
-    SYMVAR(currentMaxClients)
-    SYMVAR(currentTime)
-    SYMVAR(defaultColorVisualClass)
-    SYMVAR(display)
-    SYMVAR(globalSerialNumber)
-    SYMVAR(lastDeviceEventTime)
-    SYMVAR(monitorResolution)
-    SYMVAR(permitOldBugs)
-    SYMVAR(screenInfo)
-    SYMVAR(serverClient)
-    SYMVAR(serverGeneration)
-    /* main.c */
-    SYMFUNC(NotImplemented)
-    SYMVAR(PixmapWidthPaddingInfo)
-    /* pixmap.c */
-    SYMFUNC(AllocatePixmap)
-    SYMFUNC(GetScratchPixmapHeader)
-    SYMFUNC(FreeScratchPixmapHeader)
-    /* privates.c */
-    SYMFUNC(AllocateClientPrivate)
-    SYMFUNC(AllocateClientPrivateIndex)
-    SYMFUNC(AllocateGCPrivate)
-    SYMFUNC(AllocateGCPrivateIndex)
-    SYMFUNC(AllocateWindowPrivate)
-    SYMFUNC(AllocateWindowPrivateIndex)
-    SYMFUNC(AllocateScreenPrivateIndex)
-    SYMFUNC(AllocateColormapPrivateIndex)
-    SYMFUNC(AllocateDevicePrivateIndex)
-    SYMFUNC(AllocateDevicePrivate)
-#ifdef PIXPRIV
-    SYMFUNC(AllocatePixmapPrivateIndex)
-    SYMFUNC(AllocatePixmapPrivate)
-#endif
-    /* resource.c */
-    SYMFUNC(AddResource)
-    SYMFUNC(ChangeResourceValue)
-    SYMFUNC(CreateNewResourceClass)
-    SYMFUNC(CreateNewResourceType)
-    SYMFUNC(FakeClientID)
-    SYMFUNC(FreeResource)
-    SYMFUNC(FreeResourceByType)
-    SYMFUNC(GetXIDList)
-    SYMFUNC(GetXIDRange)
-    SYMFUNC(LookupIDByType)
-    SYMFUNC(LookupIDByClass)
-    SYMFUNC(LegalNewID)
-#ifdef XCSECURITY
-    SYMFUNC(SecurityLookupIDByClass)
-    SYMFUNC(SecurityLookupIDByType)
-#endif
-    SYMFUNC(FindClientResourcesByType)
-    SYMFUNC(FindAllClientResources)
-    SYMVAR(lastResourceType)
-    SYMVAR(TypeMask)
-#ifdef RES
-    SYMFUNC(RegisterResourceName)
-    SYMVAR(ResourceNames)
-#endif
-    /* swaprep.c */
-    SYMFUNC(CopySwap32Write)
-    SYMFUNC(Swap32Write)
-    SYMFUNC(SwapConnSetupInfo)
-    SYMFUNC(SwapConnSetupPrefix)
-    /* swapreq.c */
-    SYMFUNC(SwapShorts)
-    SYMFUNC(SwapLongs)
-    SYMFUNC(SwapColorItem)
-    /* tables.c */
-    SYMVAR(EventSwapVector)
-    SYMVAR(ReplySwapVector)
-    SYMVAR(ProcVector)
-    /* window.c */
-    SYMFUNC(ChangeWindowAttributes)
-    SYMFUNC(CheckWindowOptionalNeed)
-    SYMFUNC(CreateUnclippedWinSize)
-    SYMFUNC(CreateWindow)
-    SYMFUNC(FindWindowWithOptional)
-    SYMFUNC(GravityTranslate)
-    SYMFUNC(MakeWindowOptional)
-    SYMFUNC(MapWindow)
-    SYMFUNC(MoveWindowInStack)
-    SYMFUNC(NotClippedByChildren)
-    SYMFUNC(ResizeChildrenWinSize)
-    SYMFUNC(SaveScreens)
-    SYMFUNC(SendVisibilityNotify)
-    SYMFUNC(SetWinSize)
-    SYMFUNC(SetBorderSize)
-    SYMFUNC(TraverseTree)
-    SYMFUNC(UnmapWindow)
-    SYMFUNC(WalkTree)
-    SYMVAR(deltaSaveUndersViewable)
-    SYMVAR(numSaveUndersViewable)
-    SYMVAR(savedScreenInfo)
-    SYMVAR(screenIsSaved)
-
-    /*os/ */
-    /* access.c */
-    SYMFUNC(LocalClient)
-    /* utils.c */
-    SYMFUNC(Xstrdup)
-    SYMFUNC(XNFstrdup)
-    SYMVAR(Must_have_memory)
-    SYMFUNC(AdjustWaitForDelay)
-    SYMVAR(noTestExtensions)
-    SYMFUNC(GiveUp)
-
-#ifdef BIGREQS
-    SYMVAR(noBigReqExtension)
-#endif
-#ifdef COMPOSITE
-    SYMVAR(noCompositeExtension)
-#endif
-#ifdef DAMAGE
-    SYMVAR(noDamageExtension)
-#endif
-#ifdef DBE
-    SYMVAR(noDbeExtension)
-#endif
-#ifdef DPMSExtension
-    SYMVAR(noDPMSExtension)
-#endif
-#ifdef EVI
-    SYMVAR(noEVIExtension)
-#endif
-#ifdef FONTCACHE
-    SYMVAR(noFontCacheExtension)
-#endif
-#ifdef GLXEXT
-    SYMVAR(noGlxExtension)
-#endif
-#ifdef SCREENSAVER
-    SYMVAR(noScreenSaverExtension)
-#endif
-#ifdef MITSHM
-    SYMVAR(noMITShmExtension)
-#endif
-#ifdef MITMISC
-    SYMVAR(noMITMiscExtension)
-#endif
-#ifdef MULTIBUFFER
-    SYMVAR(noMultibufferExtension)
-#endif
-#ifdef RANDR
-    SYMVAR(noRRExtension)
-#endif
-#ifdef RENDER
-    SYMVAR(noRenderExtension)
-#endif
-#ifdef SHAPE
-    SYMVAR(noShapeExtension)
-#endif
-#ifdef XCSECURITY
-    SYMVAR(noSecurityExtension)
-#endif
-#ifdef XSYNC
-    SYMVAR(noSyncExtension)
-#endif
-#ifdef TOGCUP
-    SYMVAR(noXcupExtension)
-#endif
-#ifdef RES
-    SYMVAR(noResExtension)
-#endif
-#ifdef XAPPGROUP
-    SYMVAR(noXagExtension)
-#endif
-#ifdef XCMISC
-    SYMVAR(noXCMiscExtension)
-#endif
-#ifdef XEVIE
-    SYMVAR(noXevieExtension)
-#endif
-#ifdef XF86BIGFONT
-    SYMVAR(noXFree86BigfontExtension)
-#endif
-#ifdef XFreeXDGA
-    SYMVAR(noXFree86DGAExtension)
-#endif
-#ifdef XF86DRI
-    SYMVAR(noXFree86DRIExtension)
-#endif
-#ifdef XF86MISC
-    SYMVAR(noXFree86MiscExtension)
-#endif
-#ifdef XF86VIDMODE
-    SYMVAR(noXFree86VidModeExtension)
-#endif
-#ifdef XFIXES
-    SYMVAR(noXFixesExtension)
-#endif
-#ifdef XKB
-/* |noXkbExtension| is defined in xc/programs/Xserver/xkb/xkbInit.c */
-    SYMVAR(noXkbExtension)
-#endif
-#ifdef PANORAMIX
-    SYMVAR(noPanoramiXExtension)
-#endif
-#ifdef XINPUT
-    SYMVAR(noXInputExtension)
-#endif
-#ifdef XIDLE
-    SYMVAR(noXIdleExtension)
-#endif
-#ifdef XV
-    SYMVAR(noXvExtension)
-#endif
-
-    /* log.c */
-    SYMFUNC(LogVWrite)
-    SYMFUNC(LogWrite)
-    SYMFUNC(LogVMessageVerb)
-    SYMFUNC(LogMessageVerb)
-    SYMFUNC(LogMessage)
-    SYMFUNC(FatalError)
-    SYMFUNC(VErrorF)
-    SYMFUNC(ErrorF)
-    SYMFUNC(Error)
-    /* xalloc.c */
-    SYMFUNC(XNFalloc)
-    SYMFUNC(XNFcalloc)
-    SYMFUNC(XNFrealloc)
-    SYMFUNC(Xalloc)
-    SYMFUNC(Xcalloc)
-    SYMFUNC(Xfree)
-    SYMFUNC(Xrealloc)
-    /* WaitFor.c */
-    SYMFUNC(TimerFree)
-    SYMFUNC(TimerSet)
-    SYMFUNC(TimerCancel)
-    /* io.c */
-    SYMFUNC(WriteToClient)
-    SYMFUNC(SetCriticalOutputPending)
-    SYMVAR(FlushCallback)
-    SYMVAR(ReplyCallback)
-    SYMVAR(SkippedRequestsCallback)
-    SYMFUNC(ResetCurrentRequest)
-    /* connection.c */
-    SYMFUNC(IgnoreClient)
-    SYMFUNC(AttendClient)
-    SYMFUNC(AddEnabledDevice)
-    SYMFUNC(RemoveEnabledDevice)
-    SYMFUNC(MakeClientGrabPervious)
-    SYMFUNC(MakeClientGrabImpervious)
-    SYMVAR(GrabInProgress)
-
-#ifdef XKB
-    /* xkb/xkbInit.c */
-    SYMFUNC(XkbInitKeyboardDeviceStruct)
-    SYMFUNC(XkbSetRulesDflts)
-    SYMVAR(XkbDfltRepeatDelay)
-    SYMVAR(XkbDfltRepeatInterval)
-#endif
-
-#ifdef XINPUT
-    /* Xi */
-    /* exevents.c */
-    SYMFUNC(InitValuatorAxisStruct)
-    SYMFUNC(InitProximityClassDeviceStruct)
-    /* extinit.c */
-    SYMFUNC(AssignTypeAndName)
-#endif
-
-    /* xf86DGA.c */
-    /* XXX This is exported from the DDX, not DIX. */
-    SYMVAR(XDGAEventBase)
-
-    /* librender.a */
-#ifdef RENDER
-    /* picture.c */
-    SYMFUNC(PictureInit)
-    SYMFUNC(PictureTransformPoint)
-    SYMFUNC(PictureTransformPoint3d)
-    SYMFUNC(PictureGetSubpixelOrder)
-    SYMFUNC(PictureSetSubpixelOrder)
-    SYMVAR(PictureScreenPrivateIndex)
-    /* mipict.c */
-    SYMFUNC(miPictureInit)
-    SYMFUNC(miComputeCompositeRegion)
-    /* miglyph.c */
-    SYMFUNC(miGlyphs)
-    /* mirect.c */
-    SYMFUNC(miCompositeRects)
-    /* filter.c */
-    SYMFUNC(PictureAddFilter)
-    SYMFUNC(PictureSetFilterAlias)
-    /* renderedge.c */
-    SYMFUNC(RenderSampleCeilY)
-    SYMFUNC(RenderSampleFloorY)
-    SYMFUNC(RenderEdgeStep)
-    SYMFUNC(RenderEdgeInit)
-    SYMFUNC(RenderLineFixedEdgeInit)
-#endif
-
-    {0, 0}
-};
diff --git a/hw/xfree86/loader/dlloader.c b/hw/xfree86/loader/dlloader.c
index 835deda..3c62f86 100644
--- a/hw/xfree86/loader/dlloader.c
+++ b/hw/xfree86/loader/dlloader.c
@@ -1,7 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dlloader.c,v 1.13 2003/10/15 16:29:02 dawes Exp $ */
-
 /*
- *
  * Copyright (c) 1997 The XFree86 Project, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software
@@ -23,7 +20,18 @@
  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.  */
+ * SOFTWARE.
+ */
+
+/*
+ * Once upon a time, X had multiple loader backends, three of which were
+ * essentially libdl reimplementations.  This was nonsense so we chucked
+ * it, but we still retain the factorization between loader API and
+ * platform implementation.  This file is the libdl implementation, and
+ * currently the only backend.  If you find yourself porting to a platform
+ * without working libdl - hpux, win32, some forsaken a.out host, etc. -
+ * make a new backend rather than hacking up this file.
+ */
 
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
@@ -36,82 +44,67 @@
 #include <X11/Xos.h>
 #include "os.h"
 
-#include "sym.h"
 #include "loader.h"
 #include "dlloader.h"
 
-#ifdef DL_LAZY
+#if defined(DL_LAZY)
 #define DLOPEN_LAZY DL_LAZY
-#else
-#ifdef RTLD_LAZY
+#elif defined(RTLD_LAZY)
 #define DLOPEN_LAZY RTLD_LAZY
-#else
-#ifdef __FreeBSD__
+#elif defined(__FreeBSD__)
 #define DLOPEN_LAZY 1
 #else
 #define DLOPEN_LAZY 0
 #endif
-#endif
-#endif
-#ifdef LD_GLOBAL
+
+#if defined(LD_GLOBAL)
 #define DLOPEN_GLOBAL LD_GLOBAL
-#else
-#ifdef RTLD_GLOBAL
+#elif defined(RTLD_GLOBAL)
 #define DLOPEN_GLOBAL RTLD_GLOBAL
 #else
 #define DLOPEN_GLOBAL 0
 #endif
-#endif
 
 #if defined(CSRG_BASED) && !defined(__ELF__)
-#define NEED_UNDERSCORE_FOR_DLLSYM
+#define DLSYM_PREFIX "_"
+#else
+#define DLSYM_PREFIX ""
 #endif
 
-/*
- * This structure contains all of the information about a module
- * that has been loaded.
- */
 typedef struct {
     int handle;
     void *dlhandle;
     int flags;
 } DLModuleRec, *DLModulePtr;
 
-/* 
- * a list of loaded modules XXX can be improved
- */
+/* Hooray, yet another open coded linked list! FIXME */
 typedef struct DLModuleList {
     DLModulePtr module;
     struct DLModuleList *next;
 } DLModuleList;
 
-DLModuleList *dlModuleList = NULL;
+static DLModuleList *dlModuleList = NULL;
 
-void *
+static void *
 DLFindSymbolLocal(pointer module, const char *name)
 {
     DLModulePtr dlfile = module;
     void *p;
     char *n;
 
-#ifdef NEED_UNDERSCORE_FOR_DLLSYM
-    static const char symPrefix[] = "_";
-#else
-    static const char symPrefix[] = "";
-#endif
+    static const char symPrefix[] = DLSYM_PREFIX;
 
-    n = xf86loadermalloc(strlen(symPrefix) + strlen(name) + 1);
-    sprintf(n, "%s%s", symPrefix, name);
+    n = malloc(strlen(symPrefix) + strlen(name) + 1);
+    if (strlen(symPrefix))
+	sprintf(n, "%s%s", symPrefix, name);
+    else
+	sprintf(n, "%s", name);
     p = dlsym(dlfile->dlhandle, n);
-    xf86loaderfree(n);
+    free(n);
 
     return p;
 }
 
-
-/*
- * Search a symbol in the module list
- */
 void *
 DLFindSymbol(const char *name)
 {
@@ -127,75 +120,59 @@ DLFindSymbol(const char *name)
     return NULL;
 }
 
-/*
- * public interface
- */
 void *
-DLLoadModule(loaderPtr modrec, int fd, LOOKUP ** ppLookup, int flags)
+DLLoadModule(loaderPtr modrec, int fd, int flags)
 {
     DLModulePtr dlfile;
     DLModuleList *l;
     int dlopen_flags;
 
-    if ((dlfile = xf86loadercalloc(1, sizeof(DLModuleRec))) == NULL) {
-	ErrorF("Unable  to allocate DLModuleRec\n");
+    if ((dlfile = calloc(1, sizeof(DLModuleRec))) == NULL) {
+	ErrorF("Unable to allocate DLModuleRec\n");
 	return NULL;
     }
     dlfile->handle = modrec->handle;
     if (flags & LD_FLAG_GLOBAL)
-      dlopen_flags = DLOPEN_LAZY | DLOPEN_GLOBAL;
+	dlopen_flags = DLOPEN_LAZY | DLOPEN_GLOBAL;
     else
-      dlopen_flags = DLOPEN_LAZY;
+	dlopen_flags = DLOPEN_LAZY;
     dlfile->dlhandle = dlopen(modrec->name, dlopen_flags);
     if (dlfile->dlhandle == NULL) {
 	ErrorF("dlopen: %s\n", dlerror());
-	xf86loaderfree(dlfile);
+	free(dlfile);
 	return NULL;
     }
 
-    l = xf86loadermalloc(sizeof(DLModuleList));
+    l = malloc(sizeof(DLModuleList));
     l->module = dlfile;
     l->next = dlModuleList;
     dlModuleList = l;
-    *ppLookup = NULL;
 
     return (void *)dlfile;
 }
 
 void
-DLResolveSymbols(void *mod)
-{
-    return;
-}
-
-int
-DLCheckForUnresolved(void *mod)
-{
-    return 0;
-}
-
-void
 DLUnloadModule(void *modptr)
 {
     DLModulePtr dlfile = (DLModulePtr) modptr;
     DLModuleList *l, *p;
 
-    /*  remove it from dlModuleList */
+    /* remove it from dlModuleList. */
     if (dlModuleList->module == modptr) {
 	l = dlModuleList;
 	dlModuleList = l->next;
-	xf86loaderfree(l);
+	free(l);
     } else {
 	p = dlModuleList;
 	for (l = dlModuleList->next; l != NULL; l = l->next) {
 	    if (l->module == modptr) {
 		p->next = l->next;
-		xf86loaderfree(l);
+		free(l);
 		break;
 	    }
 	    p = l;
 	}
     }
     dlclose(dlfile->dlhandle);
-    xf86loaderfree(modptr);
+    free(modptr);
 }
diff --git a/hw/xfree86/loader/dlloader.h b/hw/xfree86/loader/dlloader.h
index 6475291..b705a18 100644
--- a/hw/xfree86/loader/dlloader.h
+++ b/hw/xfree86/loader/dlloader.h
@@ -19,19 +19,15 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/dlloader.h,v 1.2 1998/07/25 16:56:14 dawes Exp $ */
-
 #ifdef HAVE_XORG_CONFIG_H
 #include <xorg-config.h>
 #endif
 
 #ifndef _DLLOADER_H
 #define _DLLOADER_H
-extern void *DLLoadModule(loaderPtr, int, LOOKUP **, int flags);
-extern void DLResolveSymbols(void *);
-extern int DLCheckForUnresolved(void *);
+
+extern void *DLLoadModule(loaderPtr, int, int flags);
 extern void DLUnloadModule(void *);
 extern void *DLFindSymbol(const char *name);
-extern void *DLFindSymbolLocal(pointer module, const char *name);
 
 #endif
diff --git a/hw/xfree86/loader/extsym.c b/hw/xfree86/loader/extsym.c
deleted file mode 100644
index 1a841ac..0000000
--- a/hw/xfree86/loader/extsym.c
+++ /dev/null
@@ -1,84 +0,0 @@
-/* $XdotOrg: xc/programs/Xserver/hw/xfree86/loader/extsym.c,v 1.5 2004/09/14 23:21:22 gisburn Exp $ */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/extsym.c,v 1.9 2003/10/15 16:29:03 dawes Exp $ */
-
-/*
- *
- * Copyright 1999-2003 by The XFree86 Project, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of The XFree86 Project, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. The XFree86 Project, Inc. makes no
- * representations about the suitability of this software for any purpose.
- * It is provided "as is" without express or implied warranty.
- *
- * THE XFREE86 PROJECT, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO
- * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS, IN NO EVENT SHALL THE XFREE86 PROJECT, INC. BE LIABLE
- * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
- * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
- * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- * SOFTWARE.
- */
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "resource.h"
-#include "sym.h"
-#include "misc.h"
-#ifdef PANORAMIX
-#include "panoramiX.h"
-#endif
-#include "sleepuntil.h"
-
-#ifdef HAS_SHM
-extern int ShmCompletionCode;
-extern int BadShmSegCode;
-extern RESTYPE ShmSegType, ShmPixType;
-#endif
-
-#ifdef PANORAMIX
-extern Bool noPanoramiXExtension;
-extern int PanoramiXNumScreens;
-extern PanoramiXData *panoramiXdataPtr;
-extern XID *PanoramiXVisualTable;
-extern unsigned long XRT_WINDOW;
-extern unsigned long XRT_PIXMAP;
-extern unsigned long XRT_GC;
-extern unsigned long XRT_COLORMAP;
-extern unsigned long XRC_DRAWABLE;
-extern Bool XineramaRegisterConnectionBlockCallback(void (*func) (void));
-extern int XineramaDeleteResource(pointer, XID);
-#endif
-
-LOOKUP extLookupTab[] = {
-
-    SYMFUNC(ClientSleepUntil)
-
-#ifdef HAS_SHM
-    SYMVAR(ShmCompletionCode)
-    SYMVAR(BadShmSegCode)
-    SYMVAR(ShmSegType)
-#endif
-
-#ifdef PANORAMIX
-    SYMFUNC(XineramaRegisterConnectionBlockCallback)
-    SYMFUNC(XineramaDeleteResource)
-    SYMVAR(PanoramiXNumScreens)
-    SYMVAR(panoramiXdataPtr)
-    SYMVAR(PanoramiXVisualTable)
-    SYMVAR(XRT_WINDOW)
-    SYMVAR(XRT_PIXMAP)
-    SYMVAR(XRT_GC)
-    SYMVAR(XRT_COLORMAP)
-    SYMVAR(XRC_DRAWABLE)
-#endif
-
-    {0, 0}
-};
diff --git a/hw/xfree86/loader/fontsym.c b/hw/xfree86/loader/fontsym.c
deleted file mode 100644
index 5daf828..0000000
--- a/hw/xfree86/loader/fontsym.c
+++ /dev/null
@@ -1,112 +0,0 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/fontsym.c,v 1.14 2003/12/20 20:04:34 dawes Exp $ */
-/*
- * Copyright (c) 1998-2002 by The XFree86 Project, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of the copyright holder(s)
- * and author(s) shall not be used in advertising or otherwise to promote
- * the sale, use or other dealings in this Software without prior written
- * authorization from the copyright holder(s) and author(s).
- */
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <X11/fonts/font.h>
-#include "sym.h"
-#include <X11/fonts/fntfilst.h>
-#include <X11/fonts/fontenc.h>
-#ifdef FONTENC_COMPATIBILITY
-#include <X11/fonts/fontencc.h>
-#endif
-#include <X11/fonts/fntfilio.h>
-#include <X11/fonts/fntfil.h>
-#include <X11/fonts/fontutil.h>
-#include <X11/fonts/fontxlfd.h>
-#ifdef FONTCACHE
-#define _FONTCACHE_SERVER_
-#include "fontcache.h"
-#endif
-
-LOOKUP fontLookupTab[] = {
-
-    SYMFUNC(TwoByteSwap)
-    SYMFUNC(FourByteSwap)
-    SYMFUNC(FontCouldBeTerminal)
-    SYMFUNC(BufFileRead)
-    SYMFUNC(BufFileWrite)
-    SYMFUNC(CheckFSFormat)
-    SYMFUNC(FontFileOpen)
-    SYMFUNC(FontFilePriorityRegisterRenderer)
-    SYMFUNC(FontFileRegisterRenderer)
-    SYMFUNC(FontParseXLFDName)
-    SYMFUNC(FontFileCloseFont)
-    SYMFUNC(FontFileOpenBitmap)
-    SYMFUNC(FontFileCompleteXLFD)
-    SYMFUNC(FontFileCountDashes)
-    SYMFUNC(FontFileFindNameInDir)
-    SYMFUNC(FontFileClose)
-    SYMFUNC(FontComputeInfoAccelerators)
-    SYMFUNC(FontDefaultFormat)
-    SYMFUNC(NameForAtom)
-    SYMFUNC(BitOrderInvert)
-    SYMFUNC(FontFileMatchRenderer)
-    SYMFUNC(RepadBitmap)
-    SYMFUNC(FontEncName)
-    SYMFUNC(FontEncRecode)
-    SYMFUNC(FontEncFind)
-    SYMFUNC(FontMapFind)
-    SYMFUNC(FontEncMapFind)
-    SYMFUNC(FontEncFromXLFD)
-    SYMFUNC(FontEncDirectory)
-    SYMFUNC(FontMapReverse)
-    SYMFUNC(FontMapReverseFree)
-    SYMFUNC(CreateFontRec)
-    SYMFUNC(DestroyFontRec)
-    SYMFUNC(GetGlyphs)
-    SYMFUNC(QueryGlyphExtents)
-
-    SYMVAR(FontFileBitmapSources)
-
-#ifdef FONTENC_COMPATIBILITY
-    /* Obsolete backwards compatibility symbols -- fontencc.c */
-    SYMFUNC(font_encoding_from_xlfd)
-    SYMFUNC(font_encoding_find)
-    SYMFUNC(font_encoding_recode)
-    SYMFUNC(font_encoding_name)
-    SYMFUNC(identifyEncodingFile)
-#endif
-
-#ifdef FONTCACHE
-    /* fontcache.c */
-    SYMFUNC(FontCacheGetSettings)
-    SYMFUNC(FontCacheGetStatistics)
-    SYMFUNC(FontCacheChangeSettings)
-    SYMFUNC(FontCacheOpenCache)
-    SYMFUNC(FontCacheCloseCache)
-    SYMFUNC(FontCacheSearchEntry)
-    SYMFUNC(FontCacheGetEntry)
-    SYMFUNC(FontCacheInsertEntry)
-    SYMFUNC(FontCacheGetBitmap)
-#endif
-
-    {0, 0}
-};
diff --git a/hw/xfree86/loader/hash.c b/hw/xfree86/loader/hash.c
deleted file mode 100644
index 393360f..0000000
--- a/hw/xfree86/loader/hash.c
+++ /dev/null
@@ -1,356 +0,0 @@
-/* $XdotOrg: xc/programs/Xserver/hw/xfree86/loader/hash.c,v 1.3 2005/04/20 12:25:34 daniels Exp $ */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/hash.c,v 1.24 2003/11/17 22:20:40 dawes Exp $ */
-
-/*
- *
- * Copyright 1995-1998 by Metro Link, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Metro Link, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Metro Link, Inc. makes no
- * representations about the suitability of this software for any purpose.
- *  It is provided "as is" without express or implied warranty.
- *
- * METRO LINK, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL METRO LINK, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "os.h"
-#include <X11/Xos.h>
-#undef abs
-#include <stdlib.h>
-#include "sym.h"
-#include "loader.h"
-#include "hash.h"
-
-#if defined(Lynx)
-#define MAXINT	32000
-#else
-#include <limits.h>
-#undef MAXINT
-#define MAXINT INT_MAX
-#endif
-
-/* Prototypes for static functions. */
-static unsigned int hashFunc(const char *);
-static itemPtr LoaderHashFindNearest(unsigned long);
-
-static itemPtr LoaderhashTable[HASHSIZE];
-
-#ifdef DEBUG
-static int hashhits[HASHSIZE];
-
-void
-DumpHashHits(void)
-{
-    int i;
-    int depth = 0;
-    int dev = 0;
-
-    for (i = 0; i < HASHSIZE; i++) {
-	ErrorF("hashhits[%d]=%d\n", i, hashhits[i]);
-	depth += hashhits[i];
-    }
-
-    depth /= HASHSIZE;
-    ErrorF("Average hash depth=%d\n", depth);
-
-    for (i = 0; i < HASHSIZE; i++) {
-	if (hashhits[i] < depth)
-	    dev += depth - hashhits[i];
-	else
-	    dev += hashhits[i] - depth;
-    }
-
-    dev /= HASHSIZE;
-    ErrorF("Average hash deviation=%d\n", dev);
-}
-#endif
-
-static unsigned int
-hashFunc(const char *string)
-{
-    int i = 0;
-
-    while (i < 10 && string[i])
-	i++;
-
-    if (i < 5) {
-#ifdef DEBUG
-	hashhits[i]++;
-#endif
-	return i;
-    }
-
-/*
- * Original has function
-#define HASH ((string[ i-4 ] * string[i-3] + string[i-2] ) & (HASHSIZE-1))
- */
-
-#define HASH ((string[i-5] * string[ i-4 ] + string[i-3] * string[i-2] ) & (HASHSIZE-1))
-
-#ifdef DEBUG
-    hashhits[HASH]++;
-#endif
-
-    return HASH;
-}
-
-void
-LoaderHashAdd(itemPtr entry)
-{
-    int bucket = hashFunc(entry->name);
-    itemPtr oentry;
-
-    if ((oentry = LoaderHashFind(entry->name)) != NULL)
-	LoaderDuplicateSymbol(entry->name, oentry->handle);
-
-    entry->next = LoaderhashTable[bucket];
-    LoaderhashTable[bucket] = entry;
-    return;
-}
-
-void
-LoaderAddSymbols(int handle, int module, LOOKUP *list)
-{
-    LOOKUP *l = list, *exports = NULL;
-    itemPtr i, exportsItem = NULL;
-    char *modname;
-
-    if (!list)
-	return;
-
-    /*
-     * First look for a symbol called <name>ExportedSymbols.  If it exists,
-     * only export the symbols that are listed in that array.  Otherwise
-     * export all of the external symbols.
-     */
-    modname = _LoaderHandleToCanonicalName(handle);
-    if (modname) {
-	char *exportname;
-
-	exportname = xf86loadermalloc(strlen("ExportedSymbols") +
-				      strlen(modname) + 1);
-	if (exportname) {
-	    sprintf(exportname, "%sExportedSymbols", modname);
-	    while (l->symName) {
-		if (strcmp(l->symName, exportname) == 0) {
-		    exports = l;
-		    ErrorF("LoaderAddSymbols: %s: %s found\n", modname,
-			   exportname);
-		    break;
-		}
-		l++;
-	    }
-	    xf86loaderfree(exportname);
-	}
-    }
-
-    /*
-     * Allocate the exports list item first.
-     */
-    if (exports) {
-	exportsItem = xf86loadermalloc(sizeof(itemRec));
-	exportsItem->name = exports->symName;
-	exportsItem->address = (char *)exports->offset;
-	exportsItem->handle = handle;
-	exportsItem->module = module;
-	exportsItem->exports = NULL;
-	LoaderHashAdd(exportsItem);
-    }
-
-    /*
-     * Visit every symbol in the lookup table, tagging it with the
-     * reference to the export list, if present.
-     */
-    l = list;
-    while (l->symName) {
-	if (l != exports) {
-	    i = xf86loadermalloc(sizeof(itemRec));
-	    i->name = l->symName;
-	    i->address = (char *)l->offset;
-	    i->handle = handle;
-	    i->module = module;
-	    i->exports = exportsItem;
-	    LoaderHashAdd(i);
-	}
-	l++;
-    }
-}
-
-itemPtr
-LoaderHashDelete(const char *string)
-{
-    int bucket = hashFunc(string);
-    itemPtr entry;
-    itemPtr *entry2;
-
-    entry = LoaderhashTable[bucket];
-    entry2 = &(LoaderhashTable[bucket]);
-    while (entry) {
-	if (!strcmp(entry->name, string)) {
-	    *entry2 = entry->next;
-	    xf86loaderfree(entry->name);
-	    xf86loaderfree(entry);
-	    return 0;
-	}
-	entry2 = &(entry->next);
-	entry = entry->next;
-    }
-    return 0;
-}
-
-itemPtr
-LoaderHashFind(const char *string)
-{
-    int bucket = hashFunc(string);
-    itemPtr entry;
-
-    entry = LoaderhashTable[bucket];
-    while (entry) {
-	if (!strcmp(entry->name, string)) {
-	    return entry;
-	}
-	entry = entry->next;
-    }
-    return 0;
-}
-
-static itemPtr
-LoaderHashFindNearest(unsigned long address)
-{
-    int i;
-    itemPtr entry, best_entry = 0;
-    long best_difference = MAXINT;
-
-    for (i = 0; i < HASHSIZE; i++) {
-	entry = LoaderhashTable[i];
-	while (entry) {
-	    long difference = (long)address - (long)entry->address;
-
-	    if (difference >= 0) {
-		if (best_entry) {
-		    if (difference < best_difference) {
-			best_entry = entry;
-			best_difference = difference;
-		    }
-		} else {
-		    best_entry = entry;
-		    best_difference = difference;
-		}
-	    }
-	    entry = entry->next;
-	}
-    }
-    return best_entry;
-}
-
-void
-LoaderPrintSymbol(unsigned long address)
-{
-    itemPtr entry;
-
-    entry = LoaderHashFindNearest(address);
-    if (entry) {
-	const char *module, *section;
-
-#if defined(__alpha__) || defined(__ia64__)
-	ErrorF("0x%016lx %s+%lx\n", (unsigned long)entry->address,
-	       entry->name, address - (unsigned long)entry->address);
-#else
-	ErrorF("0x%lx %s+%lx\n", (unsigned long)entry->address, entry->name,
-	       address - (unsigned long)entry->address);
-#endif
-
-	if (_LoaderAddressToSection(address, &module, &section))
-	    ErrorF("\tModule \"%s\"\n\tSection \"%s\"\n", module, section);
-    } else {
-	ErrorF("(null)\n");
-    }
-}
-
-void
-LoaderPrintItem(itemPtr pItem)
-{
-    if (pItem) {
-	const char *module, *section;
-
-#if defined(__alpha__) || defined(__ia64__)
-	ErrorF("0x%016lx %s\n", (unsigned long)pItem->address, pItem->name);
-#else
-	ErrorF("0x%lx %s\n", (unsigned long)pItem->address, pItem->name);
-#endif
-	if (_LoaderAddressToSection((unsigned long)pItem->address,
-				    &module, &section))
-	    ErrorF("\tModule \"%s\"\n\tSection \"%s\"\n", module, section);
-    } else
-	ErrorF("(null)\n");
-}
-
-void
-LoaderPrintAddress(const char *symbol)
-{
-    itemPtr entry;
-
-    entry = LoaderHashFind(symbol);
-    LoaderPrintItem(entry);
-}
-
-void
-LoaderHashTraverse(void *card, int (*fnp)(void *, itemPtr))
-{
-    int i;
-    itemPtr entry, last_entry = 0;
-
-    for (i = 0; i < HASHSIZE; i++) {
-	last_entry = 0;
-	entry = LoaderhashTable[i];
-	while (entry) {
-	    if ((*fnp) (card, entry)) {
-		if (last_entry) {
-		    last_entry->next = entry->next;
-		    xf86loaderfree(entry->name);
-		    xf86loaderfree(entry);
-		    entry = last_entry->next;
-		} else {
-		    LoaderhashTable[i] = entry->next;
-		    xf86loaderfree(entry->name);
-		    xf86loaderfree(entry);
-		    entry = LoaderhashTable[i];
-		}
-	    } else {
-		last_entry = entry;
-		entry = entry->next;
-	    }
-	}
-    }
-}
-
-void
-LoaderDumpSymbols()
-{
-    itemPtr entry;
-    int j;
-
-    for (j = 0; j < HASHSIZE; j++) {
-	entry = LoaderhashTable[j];
-	while (entry) {
-	    LoaderPrintItem(entry);
-	    entry = entry->next;
-	}
-    }
-
-}
diff --git a/hw/xfree86/loader/hash.h b/hw/xfree86/loader/hash.h
deleted file mode 100644
index 45617bd..0000000
--- a/hw/xfree86/loader/hash.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *
- * Copyright 1995-1998 by Metro Link, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Metro Link, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Metro Link, Inc. makes no
- * representations about the suitability of this software for any purpose.
- *  It is provided "as is" without express or implied warranty.
- *
- * METRO LINK, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL METRO LINK, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/hash.h,v 1.2.2.2 1998/07/04 13:32:45 dawes Exp $ */
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#ifndef _HASH_H
-#define _HASH_H
-
-#include "loader.h"
-
-typedef struct _HashIterator {
-    itemPtr pItem;
-    int bucket;
-} HashIteratorRec, *HashIteratorPtr;
-
-#endif /* _HASH_H */
diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c
index 05df281..da70b02 100644
--- a/hw/xfree86/loader/loader.c
+++ b/hw/xfree86/loader/loader.c
@@ -1,5 +1,3 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/loader.c,v 1.71 2003/11/06 18:38:13 tsi Exp $ */
-
 /*
  * Copyright 1995-1998 by Metro Link, Inc.
  *
@@ -71,7 +69,6 @@
 #include <stdarg.h>
 
 #include "os.h"
-#include "sym.h"
 #include "loader.h"
 #include "loaderProcs.h"
 #include "xf86.h"
@@ -79,31 +76,11 @@
 
 #include "compiler.h"
 
-extern LOOKUP miLookupTab[];
-extern LOOKUP xfree86LookupTab[];
-extern LOOKUP dixLookupTab[];
-extern LOOKUP fontLookupTab[];
-extern LOOKUP extLookupTab[];
-
-/*
-#define DEBUG
-#define DEBUGAR
-#define DEBUGLIST
-#define DEBUGMEM
-*/
-
-int check_unresolved_sema = 0;
-
 #if defined(Lynx) && defined(sun)
 /* Cross build machine doesn;t have strerror() */
 #define strerror(err) "strerror unsupported"
 #endif
 
-#ifdef __UNIXOS2__
-void *os2ldcalloc(size_t, size_t);
-#endif
-
-#ifdef HANDLE_IN_HASH_ENTRY
 /*
  * handles are used to identify files that are loaded. Even archives
  * are counted as a single file.
@@ -113,7 +90,6 @@ void *os2ldcalloc(size_t, size_t);
 #define HANDLE_USED 1
 static char freeHandles[MAX_HANDLE];
 static int refCount[MAX_HANDLE];
-#endif
 
 #if defined(__sparc__) && defined(__GNUC__) && !defined(__FreeBSD__)
 # define SYMFUNCDOT(func) { "." #func, (funcptr)&__sparc_dot_ ## func },
@@ -133,26 +109,6 @@ DEFFUNCDOT(mul)
 DEFFUNCDOT(umul)
 DEFFUNCDOT(div)
 DEFFUNCDOT(udiv)
-#ifdef linux
-static LOOKUP SparcV89LookupTab[] = {
-    SYMFUNCDOT89(rem)
-    SYMFUNCDOT89(urem)
-    SYMFUNCDOT89(mul)
-    SYMFUNCDOT89(umul)
-    SYMFUNCDOT89(div)
-    SYMFUNCDOT89(udiv)
-    {0, 0}
-};
-#endif
-static LOOKUP SparcLookupTab[] = {
-    SYMFUNCDOT(rem)
-    SYMFUNCDOT(urem)
-    SYMFUNCDOT(mul)
-    SYMFUNCDOT(umul)
-    SYMFUNCDOT(div)
-    SYMFUNCDOT(udiv)
-    {0, 0}
-};
 
 #ifdef linux
 #if defined(__GNUC__) && defined(__GLIBC__)
@@ -220,22 +176,6 @@ sparcUseHWMulDiv(void)
  */
 static int moduleseq = 0;
 
-/*
- * GDB Interface
- * =============
- *
- * Linked list of loaded modules - gdb will traverse this to determine
- * whether it needs to add the symbols for the loaded module.
- */
-LDRModulePtr ModList = 0;
-
-/* Flag which gdb sets to let us know we're being debugged */
-char DebuggerPresent = 0;
-
-/* List of common symbols */
-LDRCommonPtr ldrCommons;
-int nCommons;
-
 typedef struct {
     int num;
     const char **list;
@@ -253,29 +193,8 @@ static symlist reqList = { 0, NULL };
 static int fatalReqSym = 0;
 
 /* Prototypes for static functions. */
-static int _GetModuleType(int, long);
 static loaderPtr _LoaderListPush(void);
 static loaderPtr _LoaderListPop(int);
- /*ARGSUSED*/ static char *
-ARCHIVEAddressToSection(void *modptr, unsigned long address)
-{
-    return NULL;
-}
-
-/*
- * Array containing entry points for different formats.
- */
-
-static loader_funcs funcs[] = {
-    /* LD_ELFDLOBJECT */
-    {DLLoadModule,
-     DLResolveSymbols,
-     DLCheckForUnresolved,
-     ARCHIVEAddressToSection,
-     DLUnloadModule},
-};
-
-int numloaders = sizeof(funcs) / sizeof(loader_funcs);
 
 void
 LoaderInit(void)
@@ -287,20 +206,6 @@ LoaderInit(void)
         xf86Msg(X_ERROR, "LD_BIND_NOW is set, dlloader will NOT work!\n");
     }
 
-    LoaderAddSymbols(-1, -1, miLookupTab);
-    LoaderAddSymbols(-1, -1, xfree86LookupTab);
-    LoaderAddSymbols(-1, -1, dixLookupTab);
-    LoaderAddSymbols(-1, -1, fontLookupTab);
-    LoaderAddSymbols(-1, -1, extLookupTab);
-#if defined(__sparc__) && !defined(__FreeBSD__)
-#ifdef linux
-    if (sparcUseHWMulDiv())
-	LoaderAddSymbols(-1, -1, SparcV89LookupTab);
-    else
-#endif
-	LoaderAddSymbols(-1, -1, SparcLookupTab);
-#endif
-
     xf86MsgVerb(X_INFO, 2, "Module ABI versions:\n");
     xf86ErrorFVerb(2, "\t%s: %d.%d\n", ABI_CLASS_ANSIC,
 		   GET_ABI_MAJOR(LoaderVersionInfo.ansicVersion),
@@ -322,16 +227,6 @@ LoaderInit(void)
     if (osname)
 	xf86MsgVerb(X_INFO, 2, "Loader running on %s\n", osname);
 
-#if defined(linux) && \
-    (defined(__alpha__) || defined(__powerpc__) || defined(__ia64__) \
-     || ( defined __amd64__ && ! defined UseMMAP && ! defined DoMMAPedMerge))
-    /*
-     * The glibc malloc uses mmap for large allocations anyway. This breaks
-     * some relocation types because the offset overflow. See loader.h for more
-     * details. We need to turn off this behavior here.
-     */
-    mallopt(M_MMAP_MAX, 0);
-#endif
 #if defined(__UNIXWARE__) && !defined(__GNUC__)
     /* For UnixWare we need to load the C Runtime libraries which are
      * normally auto-linked by the compiler. Otherwise we are bound to
@@ -354,25 +249,12 @@ LoaderInit(void)
 #endif
 }
 
-/*
- * Determine what type of object is being loaded.
- * This function is responsible for restoring the offset.
- * The fd and offset are used here so that when Archive processing
- * is enabled, individual elements of an archive can be evaluated
- * so the correct loader_funcs can be determined.
- */
-static int
-_GetModuleType(int fd, long offset)
-{
-    return LD_ELFDLOBJECT;
-}
-
 static loaderPtr listHead = (loaderPtr) 0;
 
 static loaderPtr
 _LoaderListPush()
 {
-    loaderPtr item = xf86loadercalloc(1, sizeof(struct _loader));
+    loaderPtr item = calloc(1, sizeof(struct _loader));
 
     item->next = listHead;
     listHead = item;
@@ -494,28 +376,6 @@ _LoaderModuleToName(int module)
 }
 
 /*
- * _LoaderAddressToSection() will return the name of the file & section
- * that contains the given address.
- */
-int
-_LoaderAddressToSection(const unsigned long address, const char **module,
-			const char **section)
-{
-    loaderPtr item = listHead;
-
-    while (item) {
-	if ((*section =
-	     item->funcs->AddressToSection(item->private, address)) != NULL) {
-	    *module = _LoaderModuleToName(item->module);
-	    return 1;
-	}
-	item = item->next;
-    }
-
-    return 0;
-}
-
-/*
  * Add a list of symbols to the referenced list.
  */
 
@@ -676,22 +536,15 @@ _LoaderHandleUnresolved(char *symbol, ch
     return (fatalsym);
 }
 
-/*
- * Relocation list manipulation routines
- */
-
-/*
- * Public Interface to the loader.
- */
+/* Public Interface to the loader. */
 
 int
 LoaderOpen(const char *module, const char *cname, int handle,
 	   int *errmaj, int *errmin, int *wasLoaded, int flags)
 {
     loaderPtr tmp;
-    int new_handle, modtype;
+    int new_handle;
     int fd;
-    LOOKUP *pLookup;
 
 #if defined(DEBUG)
     ErrorF("LoaderOpen(%s)\n", module);
@@ -757,26 +610,15 @@ LoaderOpen(const char *module, const cha
 	return -1;
     }
 
-    if ((modtype = _GetModuleType(fd, 0)) < 0) {
-	xf86Msg(X_ERROR, "%s is an unrecognized module type\n", module);
-	freeHandles[new_handle] = HANDLE_FREE;
-	if (errmaj)
-	    *errmaj = LDR_UNKTYPE;
-	if (errmin)
-	    *errmin = LDR_UNKTYPE;
-	return -1;
-    }
-
     tmp = _LoaderListPush();
-    tmp->name = xf86loadermalloc(strlen(module) + 1);
+    tmp->name = malloc(strlen(module) + 1);
     strcpy(tmp->name, module);
-    tmp->cname = xf86loadermalloc(strlen(cname) + 1);
+    tmp->cname = malloc(strlen(cname) + 1);
     strcpy(tmp->cname, cname);
     tmp->handle = new_handle;
     tmp->module = moduleseq++;
-    tmp->funcs = &funcs[modtype];
 
-    if ((tmp->private = funcs[modtype].LoadModule(tmp, fd, &pLookup, flags)) == NULL) {
+    if ((tmp->private = DLLoadModule(tmp, fd, flags)) == NULL) {
 	xf86Msg(X_ERROR, "Failed to load %s\n", module);
 	_LoaderListPop(new_handle);
 	freeHandles[new_handle] = HANDLE_FREE;
@@ -787,11 +629,6 @@ LoaderOpen(const char *module, const cha
 	return -1;
     }
 
-    if (tmp->private != (void *)-1L) {
-	LoaderAddSymbols(new_handle, tmp->module, pLookup);
-	xf86loaderfree(pLookup);
-    }
-
     close(fd);
 
     return new_handle;
@@ -813,50 +650,13 @@ LoaderHandleOpen(int handle)
 _X_EXPORT void *
 LoaderSymbol(const char *sym)
 {
-    int i;
-    itemPtr item = NULL;
-
-    for (i = 0; i < numloaders; i++)
-	funcs[i].ResolveSymbols(&funcs[i]);
-
-    item = (itemPtr) LoaderHashFind(sym);
-
-    if (item)
-	return item->address;
-    else
-	return (DLFindSymbol(sym));
-}
-
-int
-LoaderResolveSymbols(void)
-{
-    int i;
-
-    for (i = 0; i < numloaders; i++)
-	funcs[i].ResolveSymbols(&funcs[i]);
-    return 0;
+    return (DLFindSymbol(sym));
 }
 
 _X_EXPORT int
 LoaderCheckUnresolved(int delay_flag)
 {
-    int i, ret = 0;
-    LoaderResolveOptions delayFlag = (LoaderResolveOptions)delay_flag;
-
-    LoaderResolveSymbols();
-
-    if (delayFlag == LD_RESOLV_NOW) {
-	if (check_unresolved_sema > 0)
-	    check_unresolved_sema--;
-	else
-	    xf86Msg(X_WARNING, "LoaderCheckUnresolved: not enough "
-		    "MAGIC_DONT_CHECK_UNRESOLVED\n");
-    }
-
-    if (!check_unresolved_sema || delayFlag == LD_RESOLV_FORCE)
-	for (i = 0; i < numloaders; i++)
-	    if (funcs[i].CheckForUnresolved(&funcs[i]))
-		ret = 1;
+    int ret = 0;
 
     if (fatalReqSym)
 	FatalError("Some required symbols were unresolved\n");
@@ -864,24 +664,6 @@ LoaderCheckUnresolved(int delay_flag)
     return ret;
 }
 
-void xf86LoaderTrap(void);
-
-void
-xf86LoaderTrap(void)
-{
-}
-
-_X_EXPORT void
-LoaderDefaultFunc(void)
-{
-    ErrorF("\n\n\tThis should not happen!\n"
-	   "\tAn unresolved function was called!\n");
-
-    xf86LoaderTrap();
-
-    FatalError("\n");
-}
-
 int
 LoaderUnload(int handle)
 {
@@ -905,10 +687,10 @@ LoaderUnload(int handle)
 	    /* It is not a member of an archive */
 	    xf86Msg(X_INFO, "Unloading %s\n", tmp->name);
 	}
-	tmp->funcs->LoaderUnload(tmp->private);
-	xf86loaderfree(tmp->name);
-	xf86loaderfree(tmp->cname);
-	xf86loaderfree(tmp);
+	DLUnloadModule(tmp->private);
+	free(tmp->name);
+	free(tmp->cname);
+	free(tmp);
     }
 
     freeHandles[handle] = HANDLE_FREE;
@@ -925,12 +707,6 @@ LoaderDuplicateSymbol(const char *symbol
     FatalError("Module load failure\n");
 }
 
-/* GDB Sync function */
-void
-_loader_debug_state()
-{
-}
-
 unsigned long LoaderOptions = 0;
 
 void
diff --git a/hw/xfree86/loader/loader.h b/hw/xfree86/loader/loader.h
index 193addd..c091384 100644
--- a/hw/xfree86/loader/loader.h
+++ b/hw/xfree86/loader/loader.h
@@ -1,7 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/loader.h,v 1.28 2003/11/06 18:38:14 tsi Exp $ */
-
 /*
- *
  * Copyright 1995-1998 by Metro Link, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -56,134 +53,19 @@
 #ifndef _LOADER_H
 #define _LOADER_H
 
-#include "sym.h"
-
 #if defined(Lynx) && defined(sun)
 #define const /**/
 #endif
-#if (defined(__i386__) || defined(__ix86)) && !defined(i386)
-#define i386
-#endif
 #include <X11/Xosdefs.h>
 #include <X11/Xfuncproto.h>
 #include <X11/Xmd.h>
-/* For LOOKUP definition */
-#include "sym.h"
-#define LD_UNKNOWN	-1
-#define LD_ELFDLOBJECT	0
-#define LD_PROCESSED_ARCHIVE -1
-/* #define UNINIT_SECTION */
-#define HANDLE_IN_HASH_ENTRY
 
 /* LoadModule proc flags; LD_FLAG_GLOBAL adds symbols to global
  * namespace, default is to keep symbols local to module. */
 #define LD_FLAG_GLOBAL 1
 
-#define TestFree(a) if (a) { xfree (a); a = NULL; }
-#define HASHDIV 10
-#define HASHSIZE (1<<HASHDIV)
-
-typedef struct _loader_item *itemPtr;
-typedef struct _loader_item {
-    char *name;
-    void *address;
-    itemPtr next;
-    int handle;
-    int module;
-    itemPtr exports;
-#if defined(__powerpc__)
-    /*
-     * PowerPC file formats require special routines in some circumstances
-     * to assist in the linking process. See the specific loader for
-     * more details.
-     */
-    union {
-	unsigned short plt[8];	/* ELF */
-    } code;
-#endif
-} itemRec;
-
-/* The following structures provide an interface to GDB (note that GDB
-   has copies of the definitions - if you change anything here make
-   sure that the changes are also made to GDB */
-
-typedef struct {
-    char *name;			/* Name of this symbol */
-    unsigned int namelen;	/* Name of this module */
-    void *addr;			/* Start address of the .text section */
-} LDRCommon, *LDRCommonPtr;
-
-typedef struct x_LDRModuleRec {
-    unsigned int version;	/* Version of this struct */
-    char *name;			/* Name of this module */
-    unsigned int namelen;	/* Length of name */
-    void *text;			/* Start address of the .text section */
-    void *data;			/* Start address of the .data section */
-    void *rodata;		/* Start address of the .rodata section */
-    void *bss;			/* Start address of the .bss section */
-    LDRCommonPtr commons;	/* List of commmon symbols */
-    int commonslen;		/* Number of common symbols */
-    struct x_LDRModuleRec *next;	/* Next module record in chain */
-} LDRModuleRec, *LDRModulePtr;
-
-extern char DebuggerPresent;
-extern LDRModulePtr ModList;
-extern LDRCommonPtr ldrCommons;
-extern int nCommons;
-
-/*
- * The loader uses loader specific alloc/calloc/free functions that
- * are mapped to either to the regular Xserver functions, or in a couple
- * of special cases, mapped to the C library functions.
- */
-#if !defined(PowerMAX_OS) && !(defined(linux) && (defined(__alpha__) || defined(__powerpc__) || defined(__ia64__))) && 0
-#define xf86loadermalloc(size) xalloc(size)
-#define xf86loaderrealloc(ptr,size) xrealloc(ptr,size)
-#define xf86loadercalloc(num,size) xcalloc(num,size)
-#define xf86loaderfree(ptr) xfree(ptr)
-#define xf86loaderstrdup(ptr) xstrdup(ptr)
-#else
-/*
- * On Some OSes, xalloc() et al uses mmap to allocate space for large
- * allocation. This has the effect of placing the text section of some
- * modules very far away from the rest which are placed on the heap.
- * Certain relocations are limited in the size of the offsets that can be
- * handled, and this seperation causes these relocation to overflow. This
- * is fixed by just using the C library allocation functions for the loader
- * to ensure that all text sections are located on the heap. OSes that have
- * this problem are:
- *	PowerMAX_OS/PPC
- * 	Linux/Alpha
- * 	Linux/PPC
- *	Linux/IA-64
- */
-#define xf86loadermalloc(size) malloc(size)
-#define xf86loaderrealloc(ptr,size) realloc(ptr,size)
-#define xf86loadercalloc(num,size) calloc(num,size)
-#define xf86loaderfree(ptr) free(ptr)
-#define xf86loaderstrdup(ptr) strdup(ptr)
-#endif
-
 typedef struct _loader *loaderPtr;
 
-/*
- * _loader_funcs hold the entry points for a module format.
- */
-
-typedef void *(*LoadModuleProcPtr) (loaderPtr modrec, int fd, LOOKUP **, int flags);
-typedef void (*ResolveSymbolsProcPtr) (void *);
-typedef int (*CheckForUnresolvedProcPtr) (void *);
-typedef char *(*AddressToSectionProcPtr) (void *, unsigned long);
-typedef void (*LoaderUnloadProcPtr) (void *);
-
-typedef struct _loader_funcs {
-    LoadModuleProcPtr LoadModule;
-    ResolveSymbolsProcPtr ResolveSymbols;
-    CheckForUnresolvedProcPtr CheckForUnresolved;
-    AddressToSectionProcPtr AddressToSection;
-    LoaderUnloadProcPtr LoaderUnload;
-} loader_funcs;
-
 /* Each module loaded has a loaderRec */
 typedef struct _loader {
     int handle;			/* Unique id used to remove symbols from
@@ -192,7 +74,6 @@ typedef struct _loader {
     char *name;
     char *cname;
     void *private;		/* format specific data */
-    loader_funcs *funcs;	/* funcs for operating on this module */
     loaderPtr next;
 } loaderRec;
 
@@ -205,47 +86,22 @@ typedef struct {
     int extensionVersion;
     int fontVersion;
 } ModuleVersions;
-extern ModuleVersions LoaderVersionInfo;
+extern const ModuleVersions LoaderVersionInfo;
 
 extern unsigned long LoaderOptions;
 
 /* Internal Functions */
-
-void LoaderAddSymbols(int, int, LOOKUP *);
-void LoaderDefaultFunc(void);
 void LoaderDuplicateSymbol(const char *, const int);
-
-#if 0
-void LoaderFixups(void);
-#endif
-void LoaderResolve(void);
-int LoaderResolveSymbols(void);
 int _LoaderHandleUnresolved(char *, char *);
-void LoaderHashAdd(itemPtr);
-itemPtr LoaderHashDelete(const char *);
-itemPtr LoaderHashFind(const char *);
-void LoaderHashTraverse(void *, int (*)(void *, itemPtr));
-void LoaderPrintAddress(const char *);
-void LoaderPrintItem(itemPtr);
-void LoaderPrintSymbol(unsigned long);
-void LoaderDumpSymbols(void);
 char *_LoaderModuleToName(int);
-int _LoaderAddressToSection(const unsigned long, const char **,
-			    const char **);
 int LoaderOpen(const char *, const char *, int, int *, int *, int *, int);
 int LoaderHandleOpen(int);
 
-/*
- * object to name lookup routines
- */
+/* object to name lookup routines */
 char *_LoaderHandleToName(int handle);
 char *_LoaderHandleToCanonicalName(int handle);
 
-/*
- * Entry points for the different loader types
- */
+/* Loader backends. */
 #include "dlloader.h"
 
-extern void _loader_debug_state(void);
-
 #endif /* _LOADER_H */
diff --git a/hw/xfree86/loader/loaderProcs.h b/hw/xfree86/loader/loaderProcs.h
index 12b5b99..0e77e6b 100644
--- a/hw/xfree86/loader/loaderProcs.h
+++ b/hw/xfree86/loader/loaderProcs.h
@@ -1,7 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/loaderProcs.h,v 1.21 2003/10/15 16:29:04 dawes Exp $ */
-
 /*
- *
  * Copyright 1995-1998 by Metro Link, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -79,9 +76,7 @@ typedef struct module_desc {
     const XF86ModuleVersionInfo *VersionInfo;
 } ModuleDesc, *ModuleDescPtr;
 
-/*
- * Extenal API for the loader 
- */
+/* External API for the loader */
 
 void LoaderInit(void);
 
diff --git a/hw/xfree86/loader/loadext.c b/hw/xfree86/loader/loadext.c
index 787538f..b752328 100644
--- a/hw/xfree86/loader/loadext.c
+++ b/hw/xfree86/loader/loadext.c
@@ -1,4 +1,3 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/loadext.c,v 1.8 2003/10/15 16:29:04 dawes Exp $ */
 /*
  * Copyright (c) 2000 by The XFree86 Project, Inc.
  *
@@ -37,6 +36,10 @@
 #include "misc.h"
 #include "xf86.h"
 
+/*
+ * This should be static, but miinitext wants it.  FIXME: make extension
+ * initialization not completely terrible.
+ */
 ExtensionModule *ExtensionModuleList = NULL;
 static int numExtensionModules = 0;
 
diff --git a/hw/xfree86/loader/loadfont.c b/hw/xfree86/loader/loadfont.c
index ba5b6fb..94d31d6 100644
--- a/hw/xfree86/loader/loadfont.c
+++ b/hw/xfree86/loader/loadfont.c
@@ -1,4 +1,3 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/loadfont.c,v 1.4 2003/10/15 16:29:04 dawes Exp $ */
 /*
  * Copyright (c) 1998 by The XFree86 Project, Inc.
  *
@@ -37,6 +36,7 @@
 #include "misc.h"
 #include "xf86.h"
 
+/* XXX this should be static, but xorgcfg needs it, nngh */
 FontModule *FontModuleList = NULL;
 static int numFontModules = 0;
 
diff --git a/hw/xfree86/loader/loadmod.c b/hw/xfree86/loader/loadmod.c
index cf6751b..fd84a92 100644
--- a/hw/xfree86/loader/loadmod.c
+++ b/hw/xfree86/loader/loadmod.c
@@ -1,7 +1,4 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/loadmod.c,v 1.73 2003/11/03 05:11:51 tsi Exp $ */
-
 /*
- *
  * Copyright 1995-1998 by Metro Link, Inc.
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
@@ -73,7 +70,7 @@
 #include <dirent.h>
 #include <limits.h>
 
-extern int check_unresolved_sema;
+#define TestFree(a) if (a) { xfree (a); a = NULL; }
 
 typedef struct _pattern {
     const char *pattern;
@@ -93,7 +90,7 @@ static ModuleDescPtr doLoadModule(const 
 				  const XF86ModReqInfo *, int *, int *,
 				  int flags);
 
-ModuleVersions LoaderVersionInfo = {
+const ModuleVersions LoaderVersionInfo = {
     XORG_VERSION_CURRENT,
     ABI_ANSIC_VERSION,
     ABI_VIDEODRV_VERSION,
@@ -102,17 +99,6 @@ ModuleVersions LoaderVersionInfo = {
     ABI_FONT_VERSION
 };
 
-#if 0
-void
-LoaderFixups(void)
-{
-    /* Need to call LRS here because the frame buffers get loaded last,
-     * and the drivers depend on them. */
-
-    LoaderResolveSymbols();
-}
-#endif
-
 static void
 FreeStringList(char **paths)
 {
@@ -225,15 +211,15 @@ static const char *stdSubdirs[] = {
 /*
  * Standard set of module name patterns to check, in order of preference
  * These are regular expressions (suitable for use with POSIX regex(3)).
+ *
+ * This list assumes that you're an ELFish platform and therefore your
+ * shared libraries are named something.so.  If we're ever nuts enough
+ * to port this DDX to, say, Darwin, we'll need to fix this.
  */
 static PatternRec stdPatterns[] = {
     {"^lib(.*)\\.so$",},
-    {"^lib(.*)\\.a$",},
     {"(.*)_drv\\.so$",},
-    {"(.*)_drv\\.o$",},
     {"(.*)\\.so$",},
-    {"(.*)\\.a$",},
-    {"(.*)\\.o$",},
     {NULL,}
 };
 
@@ -432,7 +418,6 @@ FindModule(const char *module, const cha
 	    continue;
 	strcpy(buf, dirpath);
 	strcat(buf, *s);
-	/*xf86Msg(X_INFO,"OS2DIAG: FindModule: buf=%s\n",buf); */
         if ((stat(buf, &stat_buf) == 0) && S_ISDIR(stat_buf.st_mode)) {
             if (buf[dirlen - 1] != '/') {
                 buf[dirlen++] = '/';
@@ -728,19 +713,11 @@ CheckVersion(const char *module, XF86Mod
 	    /* XXX Maybe this should be the other way around? */
 	    if (min > reqmin) {
 		xf86MsgVerb(X_WARNING, 2, "module ABI minor version (%d) "
-			    "is new than that available (%d)\n", min, reqmin);
+			    "is newer than that available (%d)\n", min, reqmin);
 		return FALSE;
 	    }
 	}
     }
-#ifdef NOTYET
-    if (data->checksum) {
-	/* verify the checksum field */
-	/* TO BE DONE */
-    } else {
-	ErrorF("\t*** Checksum field is 0 - this module is untrusted!\n");
-    }
-#endif
     return TRUE;
 }
 
@@ -867,7 +844,6 @@ doLoadModule(const char *module, const c
     int noncanonical = 0;
     char *m = NULL;
 
-    /*xf86Msg(X_INFO,"OS2DIAG: LoadModule: %s\n",module); */
     xf86MsgVerb(X_INFO, 3, "LoadModule: \"%s\"", module);
 
     patterns = InitPatterns(patternlist);
@@ -1306,7 +1282,7 @@ LoaderErrorMsg(const char *name, const c
 	msg = "module-specific error";
 	break;
     default:
-	msg = "uknown error";
+	msg = "unknown error";
     }
     if (name)
 	xf86Msg(type, "%s: Failed to load module \"%s\" (%s, %d)\n",
diff --git a/hw/xfree86/loader/misym.c b/hw/xfree86/loader/misym.c
deleted file mode 100644
index dc3cb5a..0000000
--- a/hw/xfree86/loader/misym.c
+++ /dev/null
@@ -1,225 +0,0 @@
-/* $XdotOrg: xserver/xorg/hw/xfree86/loader/misym.c,v 1.9 2005/10/18 04:02:31 aplattner Exp $ */
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/misym.c,v 1.38 2003/10/15 16:29:04 dawes Exp $ */
-
-/*
- *
- * Copyright 1995,96 by Metro Link, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Metro Link, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Metro Link, Inc. makes no
- * representations about the suitability of this software for any purpose.
- *  It is provided "as is" without express or implied warranty.
- *
- * METRO LINK, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL METRO LINK, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-/*
- * Copyright (c) 1997-2003 by The XFree86 Project, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of the copyright holder(s)
- * and author(s) shall not be used in advertising or otherwise to promote
- * the sale, use or other dealings in this Software without prior written
- * authorization from the copyright holder(s) and author(s).
- */
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include "sym.h"
-#include "misc.h"
-#include "mi.h"
-#include "mibank.h"
-#include "miwideline.h"
-#include "mibstore.h"
-#include "cursor.h"
-#include "mipointer.h"
-#include "migc.h"
-#include "miline.h"
-#include "mizerarc.h"
-#include "mifillarc.h"
-#include "micmap.h"
-#include "mioverlay.h"
-#ifdef PANORAMIX
-#include "resource.h"
-#include "panoramiX.h"
-#endif
-#ifdef RENDER
-#include "mipict.h"
-#endif
-#ifdef COMPOSITE
-#include "cw.h"
-#endif
-#ifdef DAMAGE
-#include "damage.h"
-#endif
-
-/* mi things */
-
-extern miPointerSpriteFuncRec miSpritePointerFuncs;
-
-LOOKUP miLookupTab[] = {
-    SYMFUNC(miClearToBackground)
-    SYMFUNC(miSendGraphicsExpose)
-    SYMFUNC(miModifyPixmapHeader)
-    SYMFUNC(miHandleValidateExposures)
-    SYMFUNC(miSetShape)
-    SYMFUNC(miChangeBorderWidth)
-    SYMFUNC(miShapedWindowIn)
-    SYMFUNC(miRectIn)
-    SYMFUNC(miZeroClipLine)
-    SYMFUNC(miZeroDashLine)
-    SYMFUNC(miClearDrawable)
-    SYMFUNC(miPolyPoint)
-    SYMFUNC(miStepDash)
-    SYMFUNC(miIntersect)
-    SYMFUNC(miRegionAppend)
-    SYMFUNC(miRegionCopy)
-    SYMFUNC(miRegionDestroy)
-    SYMFUNC(miRegionEmpty)
-    SYMFUNC(miRegionExtents)
-    SYMFUNC(miRegionInit)
-    SYMFUNC(miRegionNotEmpty)
-    SYMFUNC(miRegionEqual)
-    SYMFUNC(miRegionReset)
-    SYMFUNC(miRegionUninit)
-    SYMFUNC(miRegionValidate)
-    SYMFUNC(miTranslateRegion)
-    SYMFUNC(miHandleExposures)
-    SYMFUNC(miPolyFillRect)
-    SYMFUNC(miPolyFillArc)
-    SYMFUNC(miImageGlyphBlt)
-    SYMFUNC(miPolyGlyphBlt)
-    SYMFUNC(miFillPolygon)
-    SYMFUNC(miFillConvexPoly)
-    SYMFUNC(miPolySegment)
-    SYMFUNC(miZeroLine)
-    SYMFUNC(miWideLine)
-    SYMFUNC(miWideDash)
-    SYMFUNC(miZeroPolyArc)
-    SYMFUNC(miPolyArc)
-    SYMFUNC(miCreateGCOps)
-    SYMFUNC(miDestroyGCOps)
-    SYMFUNC(miComputeCompositeClip)
-    SYMFUNC(miChangeGC)
-    SYMFUNC(miCopyGC)
-    SYMFUNC(miDestroyGC)
-    SYMFUNC(miChangeClip)
-    SYMFUNC(miDestroyClip)
-    SYMFUNC(miCopyClip)
-    SYMFUNC(miPolyRectangle)
-    SYMFUNC(miPolyText8)
-    SYMFUNC(miPolyText16)
-    SYMFUNC(miImageText8)
-    SYMFUNC(miImageText16)
-    SYMFUNC(miRegionCreate)
-    SYMFUNC(miPaintWindow)
-    SYMFUNC(miZeroArcSetup)
-    SYMFUNC(miFillArcSetup)
-    SYMFUNC(miFillArcSliceSetup)
-    SYMFUNC(miFindMaxBand)
-    SYMFUNC(miClipSpans)
-    SYMFUNC(miAllocateGCPrivateIndex)
-    SYMFUNC(miScreenInit)
-    SYMFUNC(miGetScreenPixmap)
-    SYMFUNC(miSetScreenPixmap)
-    SYMFUNC(miPointerCurrentScreen)
-    SYMFUNC(miRectAlloc)
-    SYMFUNC(miInitializeBackingStore)
-    SYMFUNC(miInitializeBanking)
-    SYMFUNC(miModifyBanking)
-    SYMFUNC(miCopyPlane)
-    SYMFUNC(miCopyArea)
-    SYMFUNC(miCreateScreenResources)
-    SYMFUNC(miGetImage)
-    SYMFUNC(miPutImage)
-    SYMFUNC(miPushPixels)
-    SYMFUNC(miPointerInitialize)
-    SYMFUNC(miPointerPosition)
-    SYMFUNC(miRecolorCursor)
-    SYMFUNC(miPointerWarpCursor)
-    SYMFUNC(miDCInitialize)
-    SYMFUNC(miRectsToRegion)
-    SYMFUNC(miPointInRegion)
-    SYMFUNC(miInverse)
-    SYMFUNC(miSubtract)
-    SYMFUNC(miUnion)
-    SYMFUNC(miPolyBuildEdge)
-    SYMFUNC(miPolyBuildPoly)
-    SYMFUNC(miRoundJoinClip)
-    SYMFUNC(miRoundCapClip)
-    SYMFUNC(miSetZeroLineBias)
-    SYMFUNC(miResolveColor)
-    SYMFUNC(miInitializeColormap)
-    SYMFUNC(miInstallColormap)
-    SYMFUNC(miUninstallColormap)
-    SYMFUNC(miListInstalledColormaps)
-    SYMFUNC(miExpandDirectColors)
-    SYMFUNC(miCreateDefColormap)
-    SYMFUNC(miClearVisualTypes)
-    SYMFUNC(miSetVisualTypes)
-    SYMFUNC(miSetVisualTypesAndMasks)
-    SYMFUNC(miGetDefaultVisualMask)
-    SYMFUNC(miSetPixmapDepths)
-    SYMFUNC(miInitVisuals)
-    SYMFUNC(miWindowExposures)
-    SYMFUNC(miSegregateChildren)
-    SYMFUNC(miHookInitVisuals)
-    SYMFUNC(miPointerAbsoluteCursor)
-    SYMFUNC(miPointerGetMotionEvents)
-    SYMFUNC(miPointerGetMotionBufferSize)
-    SYMFUNC(miOverlayCopyUnderlay)
-    SYMFUNC(miOverlaySetTransFunction)
-    SYMFUNC(miOverlayCollectUnderlayRegions)
-    SYMFUNC(miInitOverlay)
-    SYMFUNC(miOverlayComputeCompositeClip)
-    SYMFUNC(miOverlayGetPrivateClips)
-    SYMFUNC(miOverlaySetRootClip)
-    SYMVAR(miEmptyBox)
-    SYMVAR(miEmptyData)
-    SYMVAR(miZeroLineScreenIndex)
-    SYMVAR(miSpritePointerFuncs)
-    SYMVAR(miPointerScreenIndex)
-    SYMVAR(miInstalledMaps)
-    SYMVAR(miInitVisualsProc)
-#ifdef RENDER
-    SYMFUNC(miGlyphExtents)
-#endif
-#ifdef COMPOSITE
-    SYMFUNC(miDisableCompositeWrapper)
-#endif
-#ifdef DAMAGE
-    SYMFUNC(DamageDamageRegion)
-#endif
-
-    {0, 0}
-};
diff --git a/hw/xfree86/loader/os.c b/hw/xfree86/loader/os.c
index 4274200..42ab0bc 100644
--- a/hw/xfree86/loader/os.c
+++ b/hw/xfree86/loader/os.c
@@ -1,5 +1,3 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/os.c,v 1.4 2003/10/15 16:29:04 dawes Exp $ */
-
 /*
  * Copyright (c) 1999-2002 by The XFree86 Project, Inc.
  *
@@ -38,6 +36,7 @@
  * loader and by OS-specific modules.
  */
 
+#ifndef OSNAME
 #if defined(__linux__)
 #define OSNAME "linux"
 #elif defined(__FreeBSD__)
@@ -67,6 +66,7 @@
 #else
 #define OSNAME "unknown"
 #endif
+#endif
 
 /* Return the OS name, and run-time OS version */
 
diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c
deleted file mode 100644
index 32fe012..0000000
--- a/hw/xfree86/loader/xf86sym.c
+++ /dev/null
@@ -1,1183 +0,0 @@
-/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/xf86sym.c,v 1.242 2003/10/27 20:51:16 herrb Exp $ */
-
-/*
- *
- * Copyright 1995,96 by Metro Link, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Metro Link, Inc. not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Metro Link, Inc. makes no
- * representations about the suitability of this software for any purpose.
- *  It is provided "as is" without express or implied warranty.
- *
- * METRO LINK, INC. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL METRO LINK, INC. BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-/*
- * Copyright (c) 1997-2003 by The XFree86 Project, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
- * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
- * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of the copyright holder(s)
- * and author(s) shall not be used in advertising or otherwise to promote
- * the sale, use or other dealings in this Software without prior written
- * authorization from the copyright holder(s) and author(s).
- */
-
-#define INCLUDE_DEPRECATED 1
-
-#ifdef HAVE_XORG_CONFIG_H
-#include <xorg-config.h>
-#endif
-
-#include <fcntl.h>
-#include <setjmp.h>
-#include "sym.h"
-#include "misc.h"
-#include "mi.h"
-#include "cursor.h"
-#include "mipointer.h"
-#include "loaderProcs.h"
-#include "xf86Pci.h"
-#include "xf86.h"
-#include "xf86Resources.h"
-#include "xf86_OSproc.h"
-#include "xf86Parser.h"
-#include "xf86Config.h"
-#ifdef XINPUT
-# include "xf86Xinput.h"
-#endif
-#include "xf86OSmouse.h"
-#include "xf86OSKbd.h"
-#include "xf86xv.h"
-#include "xf86xvmc.h"
-#include "xf86cmap.h"
-#include "xf86fbman.h"
-#include "dgaproc.h"
-#ifdef DPMSExtension
-#include "dpmsproc.h"
-#endif
-#include "vidmodeproc.h"
-#include "xf86miscproc.h"
-#include "loader.h"
-#define DONT_DEFINE_WRAPPERS
-#include "xf86_ansic.h"
-#include "xisb.h"
-#include "vbe.h"
-#ifndef __OpenBSD__
-#include "xf86sbusBus.h"
-#endif
-#include "compiler.h"
-
-#ifndef HAS_GLIBC_SIGSETJMP
-#if defined(setjmp) && defined(__GNU_LIBRARY__) && \
-    (!defined(__GLIBC__) || (__GLIBC__ < 2) || \
-     ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 3)))
-#define HAS_GLIBC_SIGSETJMP 1
-#endif
-#endif
-
-#if defined(__alpha__)
-# ifdef linux
-extern unsigned long _bus_base(void);
-extern void _outb(char val, unsigned short port);
-extern void _outw(short val, unsigned short port);
-extern void _outl(int val, unsigned short port);
-extern unsigned int _inb(unsigned short port);
-extern unsigned int _inw(unsigned short port);
-extern unsigned int _inl(unsigned short port);
-# endif
-
-# ifdef __FreeBSD__
-#  include <sys/types.h>
-extern void outb(u_int32_t port, u_int8_t val);
-extern void outw(u_int32_t port, u_int16_t val);
-extern void outl(u_int32_t port, u_int32_t val);
-extern u_int8_t inb(u_int32_t port);
-extern u_int16_t inw(u_int32_t port);
-extern u_int32_t inl(u_int32_t port);
-# endif
-
-extern void *__divl(long, long);
-extern void *__reml(long, long);
-extern void *__divlu(long, long);
-extern void *__remlu(long, long);
-extern void *__divq(long, long);
-extern void *__divqu(long, long);
-extern void *__remq(long, long);
-extern void *__remqu(long, long);
-#endif
-
-#if defined(__sparc__) && defined(__FreeBSD__)
-extern float _Qp_qtos(unsigned int *);
-extern double _Qp_qtod(unsigned int *);
-extern unsigned long long _Qp_qtoux(unsigned int *);
-extern void _Qp_dtoq(unsigned int *, double);
-extern void _Qp_uitoq(unsigned int *, unsigned int);
-#endif
-
-#if defined(__GNUC__)
-#ifndef __UNIXOS2__
-extern long __div64(long, long);
-#endif
-extern long __divdf3(long, long);
-extern long __divdi3(long, long);
-extern long __divsf3(long, long);
-extern long __divsi3(long, long);
-extern long __moddi3(long, long);
-extern long __modsi3(long, long);
-
-#ifndef __UNIXOS2__
-extern long __mul64(long, long);
-#endif
-extern long __muldf3(long, long);
-extern long __muldi3(long, long);
-extern long __mulsf3(long, long);
-extern long __mulsi3(long, long);
-extern long __udivdi3(long, long);
-extern long __udivsi3(long, long);
-extern long __umoddi3(long, long);
-extern long __umodsi3(long, long);
-
-#ifndef __UNIXOS2__
-#pragma weak __div64
-#endif
-#pragma weak __divdf3
-#pragma weak __divdi3
-#pragma weak __divsf3
-#pragma weak __divsi3
-#pragma weak __moddi3
-#pragma weak __modsi3
-#ifndef __UNIXOS2__
-#pragma weak __mul64
-#endif
-#pragma weak __muldf3
-#pragma weak __muldi3
-#pragma weak __mulsf3
-#pragma weak __mulsi3
-#pragma weak __udivdi3
-#pragma weak __udivsi3
-#pragma weak __umoddi3
-#pragma weak __umodsi3
-#endif
-
-#if defined(__arm__) && defined(__linux__)
-#include <sys/io.h>
-#endif
-
-#if defined(__powerpc__) && (defined(Lynx) || defined(linux))
-void _restf14();
-void _restf17();
-void _restf18();
-void _restf19();
-void _restf20();
-void _restf22();
-void _restf23();
-void _restf24();
-void _restf25();
-void _restf26();
-void _restf27();
-void _restf28();
-void _restf29();
-void _savef14();
-void _savef17();
-void _savef18();
-void _savef19();
-void _savef20();
-void _savef22();
-void _savef23();
-void _savef24();
-void _savef25();
-void _savef26();
-void _savef27();
-void _savef28();
-void _savef29();
-
-/* even if we compile without -DNO_INLINE we still provide
- * the usual port i/o functions for module use
- */
-
-extern volatile unsigned char *ioBase;
-
-/* XXX Should get all of these from elsewhere */
-#ifndef linux
-extern void outb(IOADDRESS, unsigned char);
-extern void outw(IOADDRESS, unsigned short);
-extern void outl(IOADDRESS, unsigned int);
-extern unsigned int inb(IOADDRESS);
-extern unsigned int inw(IOADDRESS);
-extern unsigned int inl(IOADDRESS);
-#endif
-extern void stl_brx(unsigned long, volatile unsigned char *, int);
-extern void stw_brx(unsigned short, volatile unsigned char *, int);
-extern unsigned long ldl_brx(volatile unsigned char *, int);
-extern unsigned short ldw_brx(volatile unsigned char *, int);
-#endif
-
-/* XFree86 things */
-
-LOOKUP xfree86LookupTab[] = {
-
-    /* Public OSlib functions */
-    SYMFUNC(xf86ReadBIOS)
-    SYMFUNC(xf86EnableIO)
-    SYMFUNC(xf86DisableIO)
-    SYMFUNC(xf86DisableInterrupts)
-    SYMFUNC(xf86EnableInterrupts)
-    SYMFUNC(xf86LinearVidMem)
-    SYMFUNC(xf86CheckMTRR)
-    SYMFUNC(xf86MapVidMem)
-    SYMFUNC(xf86UnMapVidMem)
-    SYMFUNC(xf86MapReadSideEffects)
-    SYMFUNC(xf86GetPciDomain)
-    SYMFUNC(xf86MapDomainMemory)
-    SYMFUNC(xf86MapDomainIO)
-    SYMFUNC(xf86ReadDomainMemory)
-    SYMFUNC(xf86UDelay)
-    SYMFUNC(xf86IODelay)
-    SYMFUNC(xf86SlowBcopy)
-#ifdef __alpha__
-    SYMFUNC(xf86SlowBCopyToBus)
-    SYMFUNC(xf86SlowBCopyFromBus)
-#endif
-    SYMFUNC(xf86BusToMem)
-    SYMFUNC(xf86MemToBus)
-    SYMFUNC(xf86OpenSerial)
-    SYMFUNC(xf86SetSerial)
-    SYMFUNC(xf86SetSerialSpeed)
-    SYMFUNC(xf86ReadSerial)
-    SYMFUNC(xf86WriteSerial)
-    SYMFUNC(xf86CloseSerial)
-    SYMFUNC(xf86GetErrno)
-    SYMFUNC(xf86WaitForInput)
-    SYMFUNC(xf86SerialSendBreak)
-    SYMFUNC(xf86FlushInput)
-    SYMFUNC(xf86SetSerialModemState)
-    SYMFUNC(xf86GetSerialModemState)
-    SYMFUNC(xf86SerialModemSetBits)
-    SYMFUNC(xf86SerialModemClearBits)
-    SYMFUNC(xf86LoadKernelModule)
-    SYMFUNC(xf86OSMouseInit)
-    SYMFUNC(xf86OSKbdPreInit)
-    SYMFUNC(xf86AgpGARTSupported)
-    SYMFUNC(xf86GetAGPInfo)
-    SYMFUNC(xf86AcquireGART)
-    SYMFUNC(xf86ReleaseGART)
-    SYMFUNC(xf86AllocateGARTMemory)
-    SYMFUNC(xf86DeallocateGARTMemory)
-    SYMFUNC(xf86BindGARTMemory)
-    SYMFUNC(xf86UnbindGARTMemory)
-    SYMFUNC(xf86EnableAGP)
-    SYMFUNC(xf86SoundKbdBell)
-    SYMFUNC(xf86GARTCloseScreen)
-#ifdef XINPUT
-    /* XISB routines  (Merged from Metrolink tree) */
-    SYMFUNC(XisbNew)
-    SYMFUNC(XisbFree)
-    SYMFUNC(XisbRead)
-    SYMFUNC(XisbWrite)
-    SYMFUNC(XisbTrace)
-    SYMFUNC(XisbBlockDuration)
-#endif
-
-    /* xf86Bus.c */
-    SYMFUNC(xf86CheckPciSlot)
-    SYMFUNC(xf86ClaimPciSlot)
-    SYMFUNC(xf86GetPciVideoInfo)
-    SYMFUNC(xf86GetPciEntity)
-    SYMFUNC(xf86GetPciConfigInfo)
-    SYMFUNC(xf86SetPciVideo)
-    SYMFUNC(xf86ClaimIsaSlot)
-    SYMFUNC(xf86ClaimFbSlot)
-    SYMFUNC(xf86ClaimNoSlot)
-    SYMFUNC(xf86ParsePciBusString)
-    SYMFUNC(xf86ComparePciBusString)
-    SYMFUNC(xf86FormatPciBusNumber)
-    SYMFUNC(xf86ParseIsaBusString)
-    SYMFUNC(xf86EnableAccess)
-    SYMFUNC(xf86SetCurrentAccess)
-    SYMFUNC(xf86IsPrimaryPci)
-    SYMFUNC(xf86IsPrimaryIsa)
-    SYMFUNC(xf86PrintResList)
-    SYMFUNC(xf86AddResToList)
-    SYMFUNC(xf86JoinResLists)
-    SYMFUNC(xf86DupResList)
-    SYMFUNC(xf86FreeResList)
-    SYMFUNC(xf86ClaimFixedResources)
-    SYMFUNC(xf86AddEntityToScreen)
-    SYMFUNC(xf86SetEntityInstanceForScreen)
-    SYMFUNC(xf86RemoveEntityFromScreen)
-    SYMFUNC(xf86GetEntityInfo)
-    SYMFUNC(xf86GetNumEntityInstances)
-    SYMFUNC(xf86GetDevFromEntity)
-    SYMFUNC(xf86GetPciInfoForEntity)
-    SYMFUNC(xf86SetEntityFuncs)
-    SYMFUNC(xf86DeallocateResourcesForEntity)
-    SYMFUNC(xf86RegisterResources)
-    SYMFUNC(xf86CheckPciMemBase)
-    SYMFUNC(xf86SetAccessFuncs)
-    SYMFUNC(xf86IsEntityPrimary)
-    SYMFUNC(xf86FixPciResource)
-    SYMFUNC(xf86SetOperatingState)
-    SYMFUNC(xf86EnterServerState)
-    SYMFUNC(xf86GetBlock)
-    SYMFUNC(xf86GetSparse)
-    SYMFUNC(xf86ReallocatePciResources)
-    SYMFUNC(xf86ChkConflict)
-    SYMFUNC(xf86IsPciDevPresent)
-    SYMFUNC(xf86FindScreenForEntity)
-    SYMFUNC(xf86FindPciDeviceVendor)
-    SYMFUNC(xf86FindPciClass)
-#ifdef INCLUDE_DEPRECATED
-    SYMFUNC(xf86EnablePciBusMaster)
-#endif
-    SYMFUNC(xf86RegisterStateChangeNotificationCallback)
-    SYMFUNC(xf86DeregisterStateChangeNotificationCallback)
-    SYMFUNC(xf86NoSharedResources)
-#ifdef async
-    SYMFUNC(xf86QueueAsyncEvent)
-#endif
-    /* Shared Accel Accessor Functions */
-    SYMFUNC(xf86GetLastScrnFlag)
-    SYMFUNC(xf86SetLastScrnFlag)
-    SYMFUNC(xf86IsEntityShared)
-    SYMFUNC(xf86SetEntityShared)
-    SYMFUNC(xf86IsEntitySharable)
-    SYMFUNC(xf86SetEntitySharable)
-    SYMFUNC(xf86IsPrimInitDone)
-    SYMFUNC(xf86SetPrimInitDone)
-    SYMFUNC(xf86ClearPrimInitDone)
-    SYMFUNC(xf86AllocateEntityPrivateIndex)
-    SYMFUNC(xf86GetEntityPrivate)
-
-    /* xf86Configure.c */
-    SYMFUNC(xf86AddDeviceToConfigure)
-
-    /* xf86Cursor.c */
-    SYMFUNC(xf86GetPointerScreenFuncs)
-
-    /* xf86DGA.c */
-    /* For drivers */
-    SYMFUNC(DGAInit)
-    SYMFUNC(DGAReInitModes)
-    /* For extmod */
-    SYMFUNC(DGAAvailable)
-    SYMFUNC(DGAActive)
-    SYMFUNC(DGASetMode)
-    SYMFUNC(DGASetInputMode)
-    SYMFUNC(DGASelectInput)
-    SYMFUNC(DGAGetViewportStatus)
-    SYMFUNC(DGASetViewport)
-    SYMFUNC(DGAInstallCmap)
-    SYMFUNC(DGASync)
-    SYMFUNC(DGAFillRect)
-    SYMFUNC(DGABlitRect)
-    SYMFUNC(DGABlitTransRect)
-    SYMFUNC(DGAGetModes)
-    SYMFUNC(DGAGetOldDGAMode)
-    SYMFUNC(DGAGetModeInfo)
-    SYMFUNC(DGAChangePixmapMode)
-    SYMFUNC(DGACreateColormap)
-    SYMFUNC(DGAOpenFramebuffer)
-    SYMFUNC(DGACloseFramebuffer)
-
-    /* xf86DPMS.c */
-    SYMFUNC(xf86DPMSInit)
-
-    /* xf86Events.c */
-    SYMFUNC(SetTimeSinceLastInputEvent)
-    SYMFUNC(xf86AddInputHandler)
-    SYMFUNC(xf86RemoveInputHandler)
-    SYMFUNC(xf86DisableInputHandler)
-    SYMFUNC(xf86EnableInputHandler)
-    SYMFUNC(xf86AddEnabledDevice)
-    SYMFUNC(xf86RemoveEnabledDevice)
-    SYMFUNC(xf86InterceptSignals)
-    SYMFUNC(xf86InterceptSigIll)
-    SYMFUNC(xf86EnableVTSwitch)
-
-    /* xf86Helper.c */
-    SYMFUNC(xf86AddDriver)
-    SYMFUNC(xf86AddInputDriver)
-    SYMFUNC(xf86DeleteDriver)
-    SYMFUNC(xf86DeleteInput)
-    SYMFUNC(xf86AllocateInput)
-    SYMFUNC(xf86AllocateScreen)
-    SYMFUNC(xf86DeleteScreen)
-    SYMFUNC(xf86AllocateScrnInfoPrivateIndex)
-    SYMFUNC(xf86AddPixFormat)
-    SYMFUNC(xf86SetDepthBpp)
-    SYMFUNC(xf86PrintDepthBpp)
-    SYMFUNC(xf86SetWeight)
-    SYMFUNC(xf86SetDefaultVisual)
-    SYMFUNC(xf86SetGamma)
-    SYMFUNC(xf86SetDpi)
-    SYMFUNC(xf86SetBlackWhitePixels)
-    SYMFUNC(xf86EnableDisableFBAccess)
-    SYMFUNC(xf86VDrvMsgVerb)
-    SYMFUNC(xf86DrvMsgVerb)
-    SYMFUNC(xf86DrvMsg)
-    SYMFUNC(xf86MsgVerb)
-    SYMFUNC(xf86Msg)
-    SYMFUNC(xf86ErrorFVerb)
-    SYMFUNC(xf86ErrorF)
-    SYMFUNC(xf86TokenToString)
-    SYMFUNC(xf86StringToToken)
-    SYMFUNC(xf86ShowClocks)
-    SYMFUNC(xf86PrintChipsets)
-    SYMFUNC(xf86MatchDevice)
-    SYMFUNC(xf86MatchPciInstances)
-    SYMFUNC(xf86MatchIsaInstances)
-    SYMFUNC(xf86GetVerbosity)
-    SYMFUNC(xf86GetVisualName)
-    SYMFUNC(xf86GetPix24)
-    SYMFUNC(xf86GetDepth)
-    SYMFUNC(xf86GetWeight)
-    SYMFUNC(xf86GetGamma)
-    SYMFUNC(xf86GetFlipPixels)
-    SYMFUNC(xf86GetServerName)
-    SYMFUNC(xf86ServerIsExiting)
-    SYMFUNC(xf86ServerIsOnlyDetecting)
-    SYMFUNC(xf86ServerIsOnlyProbing)
-    SYMFUNC(xf86ServerIsResetting)
-    SYMFUNC(xf86CaughtSignal)
-    SYMFUNC(xf86GetVidModeAllowNonLocal)
-    SYMFUNC(xf86GetVidModeEnabled)
-    SYMFUNC(xf86GetModInDevAllowNonLocal)
-    SYMFUNC(xf86GetModInDevEnabled)
-    SYMFUNC(xf86GetAllowMouseOpenFail)
-    SYMFUNC(xf86CommonSpecialKey)
-    SYMFUNC(xf86IsPc98)
-    SYMFUNC(xf86DisableRandR)
-    SYMFUNC(xf86GetRotation)
-    SYMFUNC(xf86GetVersion)
-    SYMFUNC(xf86GetModuleVersion)
-    SYMFUNC(xf86GetClocks)
-    SYMFUNC(xf86SetPriority)
-    SYMFUNC(xf86LoadDrvSubModule)
-    SYMFUNC(xf86LoadSubModule)
-    SYMFUNC(xf86LoadOneModule)
-    SYMFUNC(xf86UnloadSubModule)
-    SYMFUNC(xf86LoaderCheckSymbol)
-    SYMFUNC(xf86LoaderRefSymLists)
-    SYMFUNC(xf86LoaderRefSymbols)
-    SYMFUNC(xf86LoaderReqSymLists)
-    SYMFUNC(xf86LoaderReqSymbols)
-    SYMFUNC(xf86SetBackingStore)
-    SYMFUNC(xf86SetSilkenMouse)
-    /* SYMFUNC(xf86NewSerialNumber) */
-    SYMFUNC(xf86FindXvOptions)
-    SYMFUNC(xf86GetOS)
-    SYMFUNC(xf86ConfigPciEntity)
-    SYMFUNC(xf86ConfigIsaEntity)
-    SYMFUNC(xf86ConfigFbEntity)
-    SYMFUNC(xf86ConfigActivePciEntity)
-    SYMFUNC(xf86ConfigActiveIsaEntity)
-    SYMFUNC(xf86ConfigPciEntityInactive)
-    SYMFUNC(xf86ConfigIsaEntityInactive)
-    SYMFUNC(xf86IsScreenPrimary)
-    SYMFUNC(xf86RegisterRootWindowProperty)
-    SYMFUNC(xf86IsUnblank)
-    SYMFUNC(xf86AddModuleInfo)
-    SYMFUNC(xf86DeleteModuleInfo)
-
-#if defined(__sparc__) && !defined(__OpenBSD__)
-    /* xf86sbusBus.c */
-    SYMFUNC(xf86MatchSbusInstances)
-    SYMFUNC(xf86GetSbusInfoForEntity)
-    SYMFUNC(xf86GetEntityForSbusInfo)
-    SYMFUNC(xf86SbusUseBuiltinMode)
-    SYMFUNC(xf86MapSbusMem)
-    SYMFUNC(xf86UnmapSbusMem)
-    SYMFUNC(xf86SbusHideOsHwCursor)
-    SYMFUNC(xf86SbusSetOsHwCursorCmap)
-    SYMFUNC(xf86SbusHandleColormaps)
-    SYMFUNC(sparcPromInit)
-    SYMFUNC(sparcPromClose)
-    SYMFUNC(sparcPromGetProperty)
-    SYMFUNC(sparcPromGetBool)
-#endif
-
-    /* xf86Init.c */
-    SYMFUNC(xf86GetPixFormat)
-    SYMFUNC(xf86GetBppFromDepth)
-
-    /* xf86Mode.c */
-    SYMFUNC(xf86GetNearestClock)
-    SYMFUNC(xf86ModeStatusToString)
-    SYMFUNC(xf86LookupMode)
-    SYMFUNC(xf86CheckModeForMonitor)
-    SYMFUNC(xf86InitialCheckModeForDriver)
-    SYMFUNC(xf86CheckModeForDriver)
-    SYMFUNC(xf86ValidateModes)
-    SYMFUNC(xf86DeleteMode)
-    SYMFUNC(xf86PruneDriverModes)
-    SYMFUNC(xf86SetCrtcForModes)
-    SYMFUNC(xf86PrintModes)
-    SYMFUNC(xf86ShowClockRanges)
-
-    /* xf86Option.c */
-    SYMFUNC(xf86CollectOptions)
-    SYMFUNC(xf86CollectInputOptions)
-    /* Merging of XInput stuff   */
-    SYMFUNC(xf86AddNewOption)
-    SYMFUNC(xf86NewOption)
-    SYMFUNC(xf86NextOption)
-    SYMFUNC(xf86OptionListCreate)
-    SYMFUNC(xf86OptionListMerge)
-    SYMFUNC(xf86OptionListFree)
-    SYMFUNC(xf86OptionName)
-    SYMFUNC(xf86OptionValue)
-    SYMFUNC(xf86OptionListReport)
-    SYMFUNC(xf86SetIntOption)
-    SYMFUNC(xf86SetRealOption)
-    SYMFUNC(xf86SetStrOption)
-    SYMFUNC(xf86SetBoolOption)
-    SYMFUNC(xf86CheckIntOption)
-    SYMFUNC(xf86CheckRealOption)
-    SYMFUNC(xf86CheckStrOption)
-    SYMFUNC(xf86CheckBoolOption)
-    SYMFUNC(xf86ReplaceIntOption)
-    SYMFUNC(xf86ReplaceRealOption)
-    SYMFUNC(xf86ReplaceStrOption)
-    SYMFUNC(xf86ReplaceBoolOption)
-    SYMFUNC(xf86FindOption)
-    SYMFUNC(xf86FindOptionValue)
-    SYMFUNC(xf86MarkOptionUsed)
-    SYMFUNC(xf86MarkOptionUsedByName)
-    SYMFUNC(xf86CheckIfOptionUsed)
-    SYMFUNC(xf86CheckIfOptionUsedByName)
-    SYMFUNC(xf86ShowUnusedOptions)
-    SYMFUNC(xf86ProcessOptions)
-    SYMFUNC(xf86TokenToOptinfo)
-    SYMFUNC(xf86TokenToOptName)
-    SYMFUNC(xf86IsOptionSet)
-    SYMFUNC(xf86GetOptValString)
-    SYMFUNC(xf86GetOptValInteger)
-    SYMFUNC(xf86GetOptValULong)
-    SYMFUNC(xf86GetOptValReal)
-    SYMFUNC(xf86GetOptValFreq)
-    SYMFUNC(xf86GetOptValBool)
-    SYMFUNC(xf86ReturnOptValBool)
-    SYMFUNC(xf86NameCmp)
-    SYMFUNC(xf86InitValuatorAxisStruct)
-    SYMFUNC(xf86InitValuatorDefaults)
-
-    /* xf86fbman.c */
-    SYMFUNC(xf86InitFBManager)
-    SYMFUNC(xf86InitFBManagerArea)
-    SYMFUNC(xf86InitFBManagerRegion)
-    SYMFUNC(xf86InitFBManagerLinear)
-    SYMFUNC(xf86RegisterFreeBoxCallback)
-    SYMFUNC(xf86FreeOffscreenArea)
-    SYMFUNC(xf86AllocateOffscreenArea)
-    SYMFUNC(xf86AllocateLinearOffscreenArea)
-    SYMFUNC(xf86ResizeOffscreenArea)
-    SYMFUNC(xf86FBManagerRunning)
-    SYMFUNC(xf86QueryLargestOffscreenArea)
-    SYMFUNC(xf86PurgeUnlockedOffscreenAreas)
-    SYMFUNC(xf86RegisterOffscreenManager)
-    SYMFUNC(xf86AllocateOffscreenLinear)
-    SYMFUNC(xf86ResizeOffscreenLinear)
-    SYMFUNC(xf86QueryLargestOffscreenLinear)
-    SYMFUNC(xf86FreeOffscreenLinear)
-
-    /* xf86cmap.c */
-    SYMFUNC(xf86HandleColormaps)
-    SYMFUNC(xf86GetGammaRampSize)
-    SYMFUNC(xf86GetGammaRamp)
-    SYMFUNC(xf86ChangeGammaRamp)
-
-    /* xf86RandR.c */
-#ifdef RANDR
-    SYMFUNC(xf86RandRSetNewVirtualAndDimensions)
-#endif
-
-    /* xf86xv.c */
-#ifdef XV
-    SYMFUNC(xf86XVScreenInit)
-    SYMFUNC(xf86XVRegisterGenericAdaptorDriver)
-    SYMFUNC(xf86XVListGenericAdaptors)
-    SYMFUNC(xf86XVRegisterOffscreenImages)
-    SYMFUNC(xf86XVQueryOffscreenImages)
-    SYMFUNC(xf86XVAllocateVideoAdaptorRec)
-    SYMFUNC(xf86XVFreeVideoAdaptorRec)
-    SYMFUNC(xf86XVFillKeyHelper)
-    SYMFUNC(xf86XVClipVideoHelper)
-    SYMFUNC(xf86XVCopyYUV12ToPacked)
-    SYMFUNC(xf86XVCopyPacked)
-
-    /* xf86xvmc.c */
-    SYMFUNC(xf86XvMCScreenInit)
-    SYMFUNC(xf86XvMCCreateAdaptorRec)
-    SYMFUNC(xf86XvMCDestroyAdaptorRec)
-#endif
-
-    /* xf86VidMode.c */
-    SYMFUNC(VidModeExtensionInit)
-#ifdef XF86VIDMODE
-    SYMFUNC(VidModeGetCurrentModeline)
-    SYMFUNC(VidModeGetFirstModeline)
-    SYMFUNC(VidModeGetNextModeline)
-    SYMFUNC(VidModeDeleteModeline)
-    SYMFUNC(VidModeZoomViewport)
-    SYMFUNC(VidModeGetViewPort)
-    SYMFUNC(VidModeSetViewPort)
-    SYMFUNC(VidModeSwitchMode)
-    SYMFUNC(VidModeLockZoom)
-    SYMFUNC(VidModeGetMonitor)
-    SYMFUNC(VidModeGetNumOfClocks)
-    SYMFUNC(VidModeGetClocks)
-    SYMFUNC(VidModeCheckModeForMonitor)
-    SYMFUNC(VidModeCheckModeForDriver)
-    SYMFUNC(VidModeSetCrtcForMode)
-    SYMFUNC(VidModeAddModeline)
-    SYMFUNC(VidModeGetDotClock)
-    SYMFUNC(VidModeGetNumOfModes)
-    SYMFUNC(VidModeSetGamma)
-    SYMFUNC(VidModeGetGamma)
-    SYMFUNC(VidModeCreateMode)
-    SYMFUNC(VidModeCopyMode)
-    SYMFUNC(VidModeGetModeValue)
-    SYMFUNC(VidModeSetModeValue)
-    SYMFUNC(VidModeGetMonitorValue)
-    SYMFUNC(VidModeSetGammaRamp)
-    SYMFUNC(VidModeGetGammaRamp)
-    SYMFUNC(VidModeGetGammaRampSize)
-#endif
-
-    /* xf86Versions.c */
-    SYMFUNC(xf86GetBuiltinInterfaceVersion)
-    SYMFUNC(xf86RegisterBuiltinInterfaceVersion)
-
-    /* xf86MiscExt.c */
-#ifdef XF86MISC
-    SYMFUNC(MiscExtGetMouseSettings)
-    SYMFUNC(MiscExtGetMouseValue)
-    SYMFUNC(MiscExtSetMouseValue)
-    SYMFUNC(MiscExtSetMouseDevice)
-    SYMFUNC(MiscExtGetKbdSettings)
-    SYMFUNC(MiscExtGetKbdValue)
-    SYMFUNC(MiscExtSetKbdValue)
-    SYMFUNC(MiscExtSetGrabKeysState)
-    SYMFUNC(MiscExtCreateStruct)
-    SYMFUNC(MiscExtDestroyStruct)
-    SYMFUNC(MiscExtApply)
-    SYMFUNC(MiscExtGetFilePaths)
-    SYMFUNC(MiscExtPassMessage)
-#endif
-
-    /* Misc */
-    SYMFUNC(GetTimeInMillis)
-
-    /* xf86Xinput.c */
-#ifdef XINPUT
-    SYMFUNC(xf86ProcessCommonOptions)
-    SYMFUNC(xf86IsCorePointer)
-    SYMFUNC(xf86PostMotionEvent)
-    SYMFUNC(xf86PostProximityEvent)
-    SYMFUNC(xf86PostButtonEvent)
-    SYMFUNC(xf86PostKeyEvent)
-    SYMFUNC(xf86PostKeyboardEvent)
-    SYMFUNC(xf86GetMotionEvents)
-    SYMFUNC(xf86MotionHistoryAllocate)
-    SYMFUNC(xf86FirstLocalDevice)
-    SYMFUNC(xf86eqEnqueue)
-    SYMFUNC(xf86ActivateDevice)
-/* The following segment merged from Metrolink tree */
-    SYMFUNC(xf86XInputSetScreen)
-    SYMFUNC(xf86ScaleAxis)
-    SYMFUNC(xf86XInputSetSendCoreEvents)
-/* End merged segment */
-#endif
-#ifdef DPMSExtension
-    SYMFUNC(DPMSGet)
-    SYMFUNC(DPMSSet)
-    SYMFUNC(DPMSSupported)
-#endif
-/* xf86Debug.c */
-#ifdef BUILDDEBUG
-    SYMFUNC(xf86Break1)
-    SYMFUNC(xf86Break2)
-    SYMFUNC(xf86Break3)
-    SYMFUNC(xf86SPTimestamp)
-    SYMFUNC(xf86STimestamp)
-#endif
-
-    SYMFUNC(pciFindFirst)
-    SYMFUNC(pciFindNext)
-    SYMFUNC(pciWriteByte)
-    SYMFUNC(pciWriteWord)
-    SYMFUNC(pciWriteLong)
-    SYMFUNC(pciReadByte)
-    SYMFUNC(pciReadWord)
-    SYMFUNC(pciReadLong)
-    SYMFUNC(pciSetBitsLong)
-    SYMFUNC(pciTag)
-    SYMFUNC(pciBusAddrToHostAddr)
-    SYMFUNC(pciHostAddrToBusAddr)
-    SYMFUNC(xf86MapPciMem)
-    SYMFUNC(xf86scanpci)
-    SYMFUNC(xf86ReadPciBIOS)
-
-    /* Loader functions */
-    SYMFUNC(LoaderDefaultFunc)
-    SYMFUNC(LoadSubModule)
-    SYMFUNC(DuplicateModule)
-    SYMFUNC(LoaderErrorMsg)
-    SYMFUNC(LoaderCheckUnresolved)
-    SYMFUNC(LoadExtension)
-    SYMFUNC(LoadFont)
-    SYMFUNC(LoaderReqSymbols)
-    SYMFUNC(LoaderReqSymLists)
-    SYMFUNC(LoaderRefSymbols)
-    SYMFUNC(LoaderRefSymLists)
-    SYMFUNC(UnloadSubModule)
-    SYMFUNC(LoaderSymbol)
-    SYMFUNC(LoaderListDirs)
-    SYMFUNC(LoaderFreeDirList)
-    SYMFUNC(LoaderGetOS)
-    SYMFUNC(LoaderGetABIVersion)
-
-    /*
-     * These are our own interfaces to libc functions.
-     */
-    SYMFUNC(xf86abort)
-    SYMFUNC(xf86abs)
-    SYMFUNC(xf86acos)
-    SYMFUNC(xf86asin)
-    SYMFUNC(xf86atan)
-    SYMFUNC(xf86atan2)
-    SYMFUNC(xf86atof)
-    SYMFUNC(xf86atoi)
-    SYMFUNC(xf86atol)
-    SYMFUNC(xf86bsearch)
-    SYMFUNC(xf86ceil)
-    SYMFUNC(xf86calloc)
-    SYMFUNC(xf86clearerr)
-    SYMFUNC(xf86close)
-    SYMFUNC(xf86cos)
-    SYMFUNC(xf86exit)
-    SYMFUNC(xf86exp)
-    SYMFUNC(xf86fabs)
-    SYMFUNC(xf86fclose)
-    SYMFUNC(xf86feof)
-    SYMFUNC(xf86ferror)
-    SYMFUNC(xf86fflush)
-    SYMFUNC(xf86fgetc)
-    SYMFUNC(xf86fgetpos)
-    SYMFUNC(xf86fgets)
-    SYMFUNC(xf86finite)
-    SYMFUNC(xf86floor)
-    SYMFUNC(xf86fmod)
-    SYMFUNC(xf86fopen)
-    SYMFUNC(xf86fprintf)
-    SYMFUNC(xf86fputc)
-    SYMFUNC(xf86fputs)
-    SYMFUNC(xf86fread)
-    SYMFUNC(xf86free)
-    SYMFUNC(xf86freopen)
-    SYMFUNC(xf86frexp)
-    SYMFUNC(xf86fscanf)
-    SYMFUNC(xf86fseek)
-    SYMFUNC(xf86fsetpos)
-    SYMFUNC(xf86ftell)
-    SYMFUNC(xf86fwrite)
-    SYMFUNC(xf86getc)
-    SYMFUNC(xf86getenv)
-    SYMFUNC(xf86getpagesize)
-    SYMFUNC(xf86hypot)
-    SYMFUNC(xf86ioctl)
-    SYMFUNC(xf86isalnum)
-    SYMFUNC(xf86isalpha)
-    SYMFUNC(xf86iscntrl)
-    SYMFUNC(xf86isdigit)
-    SYMFUNC(xf86isgraph)
-    SYMFUNC(xf86islower)
-    SYMFUNC(xf86isprint)
-    SYMFUNC(xf86ispunct)
-    SYMFUNC(xf86isspace)
-    SYMFUNC(xf86isupper)
-    SYMFUNC(xf86isxdigit)
-    SYMFUNC(xf86labs)
-    SYMFUNC(xf86ldexp)
-    SYMFUNC(xf86log)
-    SYMFUNC(xf86log10)
-    SYMFUNC(xf86lseek)
-    SYMFUNC(xf86malloc)
-    SYMFUNC(xf86memchr)
-    SYMFUNC(xf86memcmp)
-    SYMFUNC(xf86memcpy)
-    /*
-     * Some compilers generate calls to memcpy to handle structure copies
-     * or run-time initializations.
-     */
-    SYMFUNCALIAS("memcpy", xf86memcpy)
-    SYMFUNC(xf86memset)
-    /*
-     * Some compilers generate calls to memset to handle aggregate
-     * initializations.
-     */
-    SYMFUNCALIAS("memset", xf86memset)
-    SYMFUNC(xf86memmove)
-    SYMFUNC(xf86mmap)
-    SYMFUNC(xf86modf)
-    SYMFUNC(xf86munmap)
-    SYMFUNC(xf86open)
-    SYMFUNC(xf86perror)
-    SYMFUNC(xf86pow)
-    SYMFUNC(xf86printf)
-    SYMFUNC(xf86qsort)
-    SYMFUNC(xf86read)
-    SYMFUNC(xf86realloc)
-    SYMFUNC(xf86remove)
-    SYMFUNC(xf86rename)
-    SYMFUNC(xf86rewind)
-    SYMFUNC(xf86setbuf)
-    SYMFUNC(xf86setvbuf)
-    SYMFUNC(xf86sin)
-    SYMFUNC(xf86snprintf)
-    SYMFUNC(xf86sprintf)
-    SYMFUNC(xf86sqrt)
-    SYMFUNC(xf86sscanf)
-    SYMFUNC(xf86strcat)
-    SYMFUNC(xf86strcmp)
-    SYMFUNC(xf86strcasecmp)
-    SYMFUNC(xf86strcpy)
-    SYMFUNC(xf86strcspn)
-    SYMFUNC(xf86strerror)
-    SYMFUNC(xf86strlcat)
-    SYMFUNC(xf86strlcpy)
-    SYMFUNC(xf86strlen)
-    SYMFUNC(xf86strncasecmp)
-    SYMFUNC(xf86strncat)
-    SYMFUNC(xf86strncmp)
-    SYMFUNC(xf86strncpy)
-    SYMFUNC(xf86strpbrk)
-    SYMFUNC(xf86strchr)
-    SYMFUNC(xf86strrchr)
-    SYMFUNC(xf86strspn)
-    SYMFUNC(xf86strstr)
-    SYMFUNC(xf86strtod)
-    SYMFUNC(xf86strtok)
-    SYMFUNC(xf86strtol)
-    SYMFUNC(xf86strtoul)
-    SYMFUNC(xf86tan)
-    SYMFUNC(xf86tmpfile)
-    SYMFUNC(xf86tolower)
-    SYMFUNC(xf86toupper)
-    SYMFUNC(xf86ungetc)
-    SYMFUNC(xf86vfprintf)
-    SYMFUNC(xf86vsnprintf)
-    SYMFUNC(xf86vsprintf)
-    SYMFUNC(xf86write)
-
-    /* non-ANSI C functions */
-    SYMFUNC(xf86opendir)
-    SYMFUNC(xf86closedir)
-    SYMFUNC(xf86readdir)
-    SYMFUNC(xf86rewinddir)
-    SYMFUNC(xf86ffs)
-    SYMFUNC(xf86strdup)
-    SYMFUNC(xf86bzero)
-    SYMFUNC(xf86usleep)
-    SYMFUNC(xf86execl)
-
-    SYMFUNC(xf86getsecs)
-    SYMFUNC(xf86fpossize) /* for returning sizeof(fpos_t) */
-
-    /* Some of these were added for DRI support. */
-    SYMFUNC(xf86stat)
-    SYMFUNC(xf86fstat)
-    SYMFUNC(xf86access)
-    SYMFUNC(xf86geteuid)
-    SYMFUNC(xf86getegid)
-    SYMFUNC(xf86getpid)
-    SYMFUNC(xf86mknod)
-    SYMFUNC(xf86chmod)
-    SYMFUNC(xf86chown)
-    SYMFUNC(xf86sleep)
-    SYMFUNC(xf86mkdir)
-    SYMFUNC(xf86shmget)
-    SYMFUNC(xf86shmat)
-    SYMFUNC(xf86shmdt)
-    SYMFUNC(xf86shmctl)
-#ifdef HAS_GLIBC_SIGSETJMP
-    SYMFUNC(xf86setjmp)
-    SYMFUNC(xf86setjmp0)
-#if defined(__GLIBC__) && (__GLIBC__ >= 2)
-    SYMFUNCALIAS("xf86setjmp1", __sigsetjmp)
-#else
-    SYMFUNC(xf86setjmp1)	/* For libc5 */
-#endif
-#else
-    SYMFUNCALIAS("xf86setjmp", setjmp)
-    SYMFUNC(xf86setjmp0)
-    SYMFUNC(xf86setjmp1)
-#endif
-    SYMFUNCALIAS("xf86longjmp", longjmp)
-    SYMFUNC(xf86getjmptype)
-    SYMFUNC(xf86setjmp1_arg2)
-    SYMFUNC(xf86setjmperror)
-#ifdef XF86DRI
-    /*
-     * These may have more general uses, but for now, they are only used
-     * by the DRI.  Loading them only when the DRI is built may make porting
-     * (the non-DRI portions of the X server) easier.
-     */
-    SYMFUNC(xf86InstallSIGIOHandler)
-    SYMFUNC(xf86RemoveSIGIOHandler)
-# if defined(__alpha__) && defined(linux)
-    SYMFUNC(_bus_base)
-# endif
-#endif
-    SYMFUNC(xf86BlockSIGIO)
-    SYMFUNC(xf86UnblockSIGIO)
-
-#if defined(__alpha__)
-    SYMFUNC(__divl)
-    SYMFUNC(__reml)
-    SYMFUNC(__divlu)
-    SYMFUNC(__remlu)
-    SYMFUNC(__divq)
-    SYMFUNC(__divqu)
-    SYMFUNC(__remq)
-    SYMFUNC(__remqu)
-
-# ifdef linux
-    SYMFUNC(_outw)
-    SYMFUNC(_outb)
-    SYMFUNC(_outl)
-    SYMFUNC(_inb)
-    SYMFUNC(_inw)
-    SYMFUNC(_inl)
-    SYMFUNC(_alpha_outw)
-    SYMFUNC(_alpha_outb)
-    SYMFUNC(_alpha_outl)
-    SYMFUNC(_alpha_inb)
-    SYMFUNC(_alpha_inw)
-    SYMFUNC(_alpha_inl)
-# else
-    SYMFUNC(outw)
-    SYMFUNC(outb)
-    SYMFUNC(outl)
-    SYMFUNC(inb)
-    SYMFUNC(inw)
-    SYMFUNC(inl)
-# endif
-    SYMFUNC(xf86ReadMmio32)
-    SYMFUNC(xf86ReadMmio16)
-    SYMFUNC(xf86ReadMmio8)
-    SYMFUNC(xf86WriteMmio32)
-    SYMFUNC(xf86WriteMmio16)
-    SYMFUNC(xf86WriteMmio8)
-    SYMFUNC(xf86WriteMmioNB32)
-    SYMFUNC(xf86WriteMmioNB16)
-    SYMFUNC(xf86WriteMmioNB8)
-#endif
-#if defined(sun) && defined(SVR4)
-    SYMFUNC(inb)
-    SYMFUNC(inw)
-    SYMFUNC(inl)
-    SYMFUNC(outb)
-    SYMFUNC(outw)
-    SYMFUNC(outl)
-#endif
-#if defined(__powerpc__) && !defined(__OpenBSD__)
-    SYMFUNC(inb)
-    SYMFUNC(inw)
-    SYMFUNC(inl)
-    SYMFUNC(outb)
-    SYMFUNC(outw)
-    SYMFUNC(outl)
-# if defined(NO_INLINE) || defined(Lynx)
-    SYMFUNC(mem_barrier)
-    SYMFUNC(ldl_u)
-    SYMFUNC(eieio)
-    SYMFUNC(ldl_brx)
-    SYMFUNC(ldw_brx)
-    SYMFUNC(stl_brx)
-    SYMFUNC(stw_brx)
-    SYMFUNC(ldq_u)
-    SYMFUNC(ldw_u)
-    SYMFUNC(stl_u)
-    SYMFUNC(stq_u)
-    SYMFUNC(stw_u)
-    SYMFUNC(write_mem_barrier)
-# endif
-# if defined(Lynx)
-    SYMFUNC(_restf14)
-    SYMFUNC(_restf17)
-    SYMFUNC(_restf18)
-    SYMFUNC(_restf19)
-    SYMFUNC(_restf20)
-    SYMFUNC(_restf22)
-    SYMFUNC(_restf23)
-    SYMFUNC(_restf24)
-    SYMFUNC(_restf25)
-    SYMFUNC(_restf26)
-    SYMFUNC(_restf27)
-    SYMFUNC(_restf28)
-    SYMFUNC(_restf29)
-    SYMFUNC(_savef14)
-    SYMFUNC(_savef17)
-    SYMFUNC(_savef18)
-    SYMFUNC(_savef19)
-    SYMFUNC(_savef20)
-    SYMFUNC(_savef22)
-    SYMFUNC(_savef23)
-    SYMFUNC(_savef24)
-    SYMFUNC(_savef25)
-    SYMFUNC(_savef26)
-    SYMFUNC(_savef27)
-    SYMFUNC(_savef28)
-    SYMFUNC(_savef29)
-# endif
-# if PPCIO_DEBUG
-    SYMFUNC(debug_inb)
-    SYMFUNC(debug_inw)
-    SYMFUNC(debug_inl)
-    SYMFUNC(debug_outb)
-    SYMFUNC(debug_outw)
-    SYMFUNC(debug_outl)
-# endif
-#endif
-#if defined(__GNUC__)
-#if !defined(__UNIXOS2__) && !defined(Lynx)
-    SYMFUNC(__div64)
-#endif
-#if !defined(Lynx)	/* FIXME: test on others than x86 and !3.1.0a/x86 */
-    SYMFUNC(__divdf3)
-#endif
-    SYMFUNC(__divdi3)
-#if !defined(Lynx)
-    SYMFUNC(__divsf3)
-    SYMFUNC(__divsi3)
-#endif
-    SYMFUNC(__moddi3)
-#if !defined(Lynx)
-    SYMFUNC(__modsi3)
-#endif
-#if !defined(__UNIXOS2__) && !defined(Lynx)
-    SYMFUNC(__mul64)
-#endif
-#if !defined(Lynx)
-    SYMFUNC(__muldf3)
-#endif
-    SYMFUNC(__muldi3)
-#if !defined(Lynx)
-    SYMFUNC(__mulsf3)
-    SYMFUNC(__mulsi3)
-    SYMFUNC(__udivdi3)
-    SYMFUNC(__udivsi3)
-#endif
-    SYMFUNC(__umoddi3)
-#if !defined(Lynx)
-    SYMFUNC(__umodsi3)
-#endif
-#endif
-#if defined(__ia64__)
-    SYMFUNC(outw)
-    SYMFUNC(outb)
-    SYMFUNC(outl)
-    SYMFUNC(inb)
-    SYMFUNC(inw)
-    SYMFUNC(inl)
-#endif
-#if defined(__arm__)
-    SYMFUNC(outw)
-    SYMFUNC(outb)
-    SYMFUNC(outl)
-    SYMFUNC(inb)
-    SYMFUNC(inw)
-    SYMFUNC(inl)
-#endif
-
-#ifdef __FreeBSD__
-#if defined(__sparc__)
-    SYMFUNC(_Qp_qtos)
-    SYMFUNC(_Qp_qtod)
-    SYMFUNC(_Qp_qtoux)
-    SYMFUNC(_Qp_uitoq)
-    SYMFUNC(_Qp_dtoq)
-#endif
-#endif
-
-    /* Some variables. */
-
-    SYMVAR(xf86stdin)
-    SYMVAR(xf86stdout)
-    SYMVAR(xf86stderr)
-    SYMVAR(xf86errno)
-    SYMVAR(xf86HUGE_VAL)
-
-    /* General variables (from xf86.h) */
-    SYMVAR(xf86ScreenIndex)
-    SYMVAR(xf86PixmapIndex)
-    SYMVAR(xf86Screens)
-    SYMVAR(byte_reversed)
-    SYMVAR(xf86inSuspend)
-    /* debugging variables */
-#ifdef BUILDDEBUG
-    SYMVAR(xf86p8bit)
-    SYMVAR(xf86DummyVar1)
-    SYMVAR(xf86DummyVar2)
-    SYMVAR(xf86DummyVar3)
-#endif
-
-#ifdef async
-    SYMVAR(xf86CurrentScreen)
-#endif
-    /* predefined resource lists from xf86Bus.h */
-    SYMVAR(resVgaExclusive)
-    SYMVAR(resVgaShared)
-    SYMVAR(resVgaMemShared)
-    SYMVAR(resVgaIoShared)
-    SYMVAR(resVgaUnusedExclusive)
-    SYMVAR(resVgaUnusedShared)
-    SYMVAR(resVgaSparseExclusive)
-    SYMVAR(resVgaSparseShared)
-    SYMVAR(res8514Exclusive)
-    SYMVAR(res8514Shared)
-    SYMVAR(PciAvoid)
-
-#if defined(__powerpc__) && (!defined(NO_INLINE) || defined(Lynx))
-    SYMVAR(ioBase)
-#endif
-
-    /* Globals from xf86Globals.c and xf86Priv.h */
-    SYMVAR(xf86ConfigDRI)
-
-    /* Globals from xf86Configure.c */
-    SYMVAR(ConfiguredMonitor)
-
-    /* Pci.c */
-    SYMVAR(pciNumBuses)
-
-    {0, 0}
-};



More information about the xorg-commit mailing list