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.
This commit is contained in:
Adam Jackson 2006-06-21 20:49:21 -04:00
parent 40aafaf154
commit d8135eb9e4
9 changed files with 2139 additions and 100 deletions

View File

@ -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 = \

View File

@ -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)

532
hw/xfree86/loader/dixsym.c Normal file
View File

@ -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 <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 */
_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
};

View File

@ -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 <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
_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
};

109
hw/xfree86/loader/fontsym.c Normal file
View File

@ -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 <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
_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
};

View File

@ -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),

219
hw/xfree86/loader/misym.c Normal file
View File

@ -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 <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;
_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
};

View File

@ -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 */

1177
hw/xfree86/loader/xf86sym.c Normal file

File diff suppressed because it is too large Load Diff