From d8135eb9e414bf6957f64c5102ee0ef7c2404c6f Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Wed, 21 Jun 2006 20:49:21 -0400 Subject: [PATCH] Unbreak unbreaking the loader. Re-add the symbol reference lists so that the linker will include everything it's supposed to. This is a terrible solution, but ld semantics don't let you do anything better. --- hw/xfree86/Makefile.am | 2 +- hw/xfree86/loader/Makefile.am | 9 +- hw/xfree86/loader/dixsym.c | 532 +++++++++++++++ hw/xfree86/loader/extsym.c | 79 +++ hw/xfree86/loader/fontsym.c | 109 +++ hw/xfree86/loader/loader.c | 85 +-- hw/xfree86/loader/misym.c | 219 ++++++ hw/xfree86/loader/sym.h | 27 +- hw/xfree86/loader/xf86sym.c | 1177 +++++++++++++++++++++++++++++++++ 9 files changed, 2139 insertions(+), 100 deletions(-) create mode 100644 hw/xfree86/loader/dixsym.c create mode 100644 hw/xfree86/loader/extsym.c create mode 100644 hw/xfree86/loader/fontsym.c create mode 100644 hw/xfree86/loader/misym.c create mode 100644 hw/xfree86/loader/xf86sym.c diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am index ab29d4d6d..b50b6ab07 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 502bb5aeb..0cda5c159 100644 --- a/hw/xfree86/loader/Makefile.am +++ b/hw/xfree86/loader/Makefile.am @@ -1,6 +1,8 @@ noinst_LIBRARIES = libloader.a -INCLUDES = $(XORG_INCS) -I$(srcdir)/../parser +INCLUDES = $(XORG_INCS) -I$(srcdir)/../parser -I$(srcdir)/../dixmods/extmod \ + -I$(srcdir)/../vbe -I$(top_srcdir)/miext/cw -I$(srcdir)/../int10 \ + -I$(srcdir)/../ddc -I$(srcdir)/../i2c #AM_LDFLAGS = -r AM_CFLAGS = -DIN_LOADER $(XORG_CFLAGS) @SERVER_DEFINES@ @LOADER_DEFINES@ @@ -23,4 +25,9 @@ libloader_a_SOURCES = \ loadfont.c \ dlloader.c \ os.c \ + dixsym.c \ + extsym.c \ + fontsym.c \ + misym.c \ + xf86sym.c \ $(SPARC_SOURCES) diff --git a/hw/xfree86/loader/dixsym.c b/hw/xfree86/loader/dixsym.c new file mode 100644 index 000000000..0e8bb89dd --- /dev/null +++ b/hw/xfree86/loader/dixsym.c @@ -0,0 +1,532 @@ +/* + * 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 +#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 +#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 +extern int XkbDfltRepeatDelay, XkbDfltRepeatInterval; +#endif + +extern Selection *CurrentSelections; +extern int NumCurrentSelections; + +/* DIX things */ + +_X_HIDDEN void *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 +}; diff --git a/hw/xfree86/loader/extsym.c b/hw/xfree86/loader/extsym.c new file mode 100644 index 000000000..e09e9c084 --- /dev/null +++ b/hw/xfree86/loader/extsym.c @@ -0,0 +1,79 @@ +/* + * + * 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 +#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 + +_X_HIDDEN void *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 +}; diff --git a/hw/xfree86/loader/fontsym.c b/hw/xfree86/loader/fontsym.c new file mode 100644 index 000000000..82d4b1cf8 --- /dev/null +++ b/hw/xfree86/loader/fontsym.c @@ -0,0 +1,109 @@ +/* + * 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 +#endif + +#include +#include "sym.h" +#include +#include +#ifdef FONTENC_COMPATIBILITY +#include +#endif +#include +#include +#include +#include +#ifdef FONTCACHE +#define _FONTCACHE_SERVER_ +#include "fontcache.h" +#endif + +_X_HIDDEN void *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 +}; diff --git a/hw/xfree86/loader/loader.c b/hw/xfree86/loader/loader.c index da70b022a..a5c5b2c8e 100644 --- a/hw/xfree86/loader/loader.c +++ b/hw/xfree86/loader/loader.c @@ -73,8 +73,8 @@ #include "loaderProcs.h" #include "xf86.h" #include "xf86Priv.h" - #include "compiler.h" +#include "sym.h" #if defined(Lynx) && defined(sun) /* Cross build machine doesn;t have strerror() */ @@ -91,85 +91,6 @@ static char freeHandles[MAX_HANDLE]; static int refCount[MAX_HANDLE]; -#if defined(__sparc__) && defined(__GNUC__) && !defined(__FreeBSD__) -# define SYMFUNCDOT(func) { "." #func, (funcptr)&__sparc_dot_ ## func }, -# if !defined(__OpenBSD__) -# define SYMFUNCDOT89(func) { "." #func, (funcptr)&func ## _sparcv89 }, -# define DEFFUNCDOT(func) \ -extern void __sparc_dot_ ## func (void) __asm__ ("." #func); \ -extern void func ## _sparcv89 (void); -# else -# define SYMFUNCDOT(func) { "." #func, (funcptr)&__sparc_dot_ ## func }, -# define DEFFUNCDOT(func) \ -extern void __sparc_dot_ ## func (void) __asm__ ("." #func); -#endif -DEFFUNCDOT(rem) -DEFFUNCDOT(urem) -DEFFUNCDOT(mul) -DEFFUNCDOT(umul) -DEFFUNCDOT(div) -DEFFUNCDOT(udiv) - -#ifdef linux -#if defined(__GNUC__) && defined(__GLIBC__) -#define HWCAP_SPARC_MULDIV 8 -extern unsigned long int _dl_hwcap; -#endif - -static int -sparcUseHWMulDiv(void) -{ - FILE *f; - char buffer[1024]; - char *p; - -#if defined(__GNUC__) && defined(__GLIBC__) - unsigned long *hwcap; - - __asm(".weak _dl_hwcap"); - - hwcap = &_dl_hwcap; - __asm("": "=r"(hwcap):"0"(hwcap)); - if (hwcap) { - if (*hwcap & HWCAP_SPARC_MULDIV) - return 1; - else - return 0; - } -#endif - f = fopen("/proc/cpuinfo", "r"); - if (!f) - return 0; - while (fgets(buffer, 1024, f) != NULL) { - if (!strncmp(buffer, "type", 4)) { - p = strstr(buffer, "sun4"); - if (p && (p[4] == 'u' || p[4] == 'd')) { - fclose(f); - return 1; - } else if (p && p[4] == 'm') { - fclose(f); - f = fopen("/proc/cpuinfo","r"); - if (!f) return 0; - while (fgets(buffer, 1024, f) != NULL) { - if (!strncmp (buffer, "MMU type", 8)) { - p = strstr (buffer, "Cypress"); - if (p) { - fclose(f); - return 1; - } - } - } - fclose(f); - return 0; - } - } - } - fclose(f); - return 0; -} -#endif -#endif - /* * modules are used to identify compilation units (ie object modules). * Archives contain multiple modules, each of which is treated seperately. @@ -206,6 +127,10 @@ LoaderInit(void) xf86Msg(X_ERROR, "LD_BIND_NOW is set, dlloader will NOT work!\n"); } + xf86MsgVerb(X_INFO, 2, "Loader magic: %p\n", (void *) + ((long)dixLookupTab ^ (long)extLookupTab + ^ (long)fontLookupTab ^ (long)miLookupTab + ^ (long)xfree86LookupTab)); xf86MsgVerb(X_INFO, 2, "Module ABI versions:\n"); xf86ErrorFVerb(2, "\t%s: %d.%d\n", ABI_CLASS_ANSIC, GET_ABI_MAJOR(LoaderVersionInfo.ansicVersion), diff --git a/hw/xfree86/loader/misym.c b/hw/xfree86/loader/misym.c new file mode 100644 index 000000000..3f959faa2 --- /dev/null +++ b/hw/xfree86/loader/misym.c @@ -0,0 +1,219 @@ +/* + * + * 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 +#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; + +_X_HIDDEN void *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 +}; diff --git a/hw/xfree86/loader/sym.h b/hw/xfree86/loader/sym.h index 5b34718d6..e708a92f9 100644 --- a/hw/xfree86/loader/sym.h +++ b/hw/xfree86/loader/sym.h @@ -1,7 +1,4 @@ -/* $XFree86: xc/programs/Xserver/hw/xfree86/loader/sym.h,v 1.6 2000/10/24 00:06:55 anderson Exp $ */ - /* - * * Copyright 1995,96 by Metro Link, Inc. * * Permission to use, copy, modify, distribute, and sell this software and its @@ -30,21 +27,15 @@ #ifndef _SYM_H #define _SYM_H -/* - * This structure is used to pass in symbol information that is being - * added to the symbol table. - */ +extern void *dixLookupTab[]; +extern void *extLookupTab[]; +extern void *fontLookupTab[]; +extern void *miLookupTab[]; +extern void *xfree86LookupTab[]; -typedef void (*funcptr) (void); - -typedef struct { - char *symName; - funcptr offset; -} LOOKUP; - -#define SYMFUNC( func ) { #func, (funcptr)&func }, -#define SYMFUNCALIAS( name, func ) { name, (funcptr)&func }, -#define SYMVAR( var ) { #var, (funcptr)&var }, -#define SYMVARALIAS( name, var ) { name, (funcptr)&var }, +#define SYMFUNC( func ) &func, +#define SYMFUNCALIAS( name, func ) &func, +#define SYMVAR( var ) &var, +#define SYMVARALIAS( name, var ) &var, #endif /* _SYM_H */ diff --git a/hw/xfree86/loader/xf86sym.c b/hw/xfree86/loader/xf86sym.c new file mode 100644 index 000000000..ad4f77353 --- /dev/null +++ b/hw/xfree86/loader/xf86sym.c @@ -0,0 +1,1177 @@ +/* + * 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 +#endif + +#include +#include +#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 +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 +#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 */ + +_X_HIDDEN void *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(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) +};