Save in a few special cases, _X_EXPORT should not be used in C source
files. Instead, it should be used in headers, and the proper C source
include that header. Some special cases are symbols that need to be
shared between modules, but not expected to be used by external drivers,
and symbols that are accessible via LoaderSymbol/dlopen.
This patch also adds conditionally some new sdk header files, depending
on extensions enabled. These files were added to match pattern for
other extensions/modules, that is, have the headers "deciding" symbol
visibility in the sdk. These headers are:
o Xext/panoramiXsrv.h, Xext/panoramiX.h
o fbpict.h (unconditionally)
o vidmodeproc.h
o mioverlay.h (unconditionally, used only by xaa)
o xfixes.h (unconditionally, symbols required by dri2)
LoaderSymbol and similar functions now don't have different prototypes,
in loaderProcs.h and xf86Module.h, so that both headers can be included,
without the need of defining IN_LOADER.
xf86NewInputDevice() device prototype readded to xf86Xinput.h, but
not exported (and with a comment about it).
The warnings corrected were only the ones that should correct
real problems. The most common one is 64 bit integers as
"printf %l" arguments.
Note that there is a patch related to this at:
http://bugs.freedesktop.org/show_bug.cgi?id=18204
This is the biggest "visibility" patch. Instead of doing a "export"
symbol on demand, export everything in the sdk, so that if some module
fails due to an unresolved symbol, it is because it is using a symbol
not in the sdk.
Most exported symbols shouldn't really be made visible, neither
advertised in the sdk, as they are only used by a single shared object.
Symbols in the sdk (or referenced in sdk macros), but not defined
anywhere include:
XkbBuildCoreState()
XkbInitialMap
XkbXIUnsupported
XkbCheckActionVMods()
XkbSendCompatNotify()
XkbDDXFakePointerButton()
XkbDDXApplyConfig()
_XkbStrCaseCmp()
_XkbErrMessages[]
_XkbErrCode
_XkbErrLocation
_XkbErrData
XkbAccessXDetailText()
XkbNKNDetailMaskText()
XkbLookupGroupAndLevel()
XkbInitAtoms()
XkbGetOrderedDrawables()
XkbFreeOrderedDrawables()
XkbConvertXkbComponents()
XkbWriteXKBSemantics()
XkbWriteXKBLayout()
XkbWriteXKBKeymap()
XkbWriteXKBFile()
XkbWriteCFile()
XkbWriteXKMFile()
XkbWriteToServer()
XkbMergeFile()
XkmFindTOCEntry()
XkmReadFileSection()
XkmReadFileSectionName()
InitExtInput()
xf86CheckButton()
xf86SwitchCoreDevice()
RamDacSetGamma()
RamDacRestoreDACValues()
xf86Bpp
xf86ConfigPix24
xf86MouseCflags[]
xf86SupportedMouseTypes[]
xf86NumMouseTypes
xf86ChangeBusIndex()
xf86EntityEnter()
xf86EntityLeave()
xf86WrapperInit()
xf86RingBell()
xf86findOptionBoolean()
xf86debugListOptions()
LoadSubModuleLocal()
LoaderSymbolLocal()
getInt10Rec()
xf86CurrentScreen
xf86ReallocatePciResources()
xf86NewSerialNumber()
xf86RandRSetInitialMode()
fbCompositeSolidMask_nx1xn
fbCompositeSolidMask_nx8888x0565C
fbCompositeSolidMask_nx8888x8888C
fbCompositeSolidMask_nx8x0565
fbCompositeSolidMask_nx8x0888
fbCompositeSolidMask_nx8x8888
fbCompositeSrc_0565x0565
fbCompositeSrc_8888x0565
fbCompositeSrc_8888x0888
fbCompositeSrc_8888x8888
fbCompositeSrcAdd_1000x1000
fbCompositeSrcAdd_8000x8000
fbCompositeSrcAdd_8888x8888
fbGeneration
fbIn
fbOver
fbOver24
fbOverlayGeneration
fbRasterizeEdges
fbRestoreAreas
fbSaveAreas
composeFunctions
VBEBuildVbeModeList()
VBECalcVbeModeIndex()
TIramdac3030CalculateMNPForClock()
shadowBufPtr
shadowFindBuf()
miRRGetScreenInfo()
RRSetScreenConfig()
RRModePruneUnused()
PixmanImageFromPicture()
extern int miPointerGetMotionEvents()
miClipPicture()
miRasterizeTriangle()
fbPush1toN()
fbInitializeBackingStore()
ddxBeforeReset()
SetupSprite()
InitSprite()
DGADeliverEvent()
SPECIAL CASES
o defined as _X_INTERNAL
xf86NewInputDevice()
o defined as static
fbGCPrivateKey
fbOverlayScreenPrivateKey
fbScreenPrivateKey
fbWinPrivateKey
o defined in libXfont.so, but declared in xorg/dixfont.h
GetGlyphs()
QueryGlyphExtents()
QueryTextExtents()
ParseGlyphCachingMode()
InitGlyphCaching()
SetGlyphCachingMode()
FindPCIVideoInfo() function isn't need anymore.
xf86scanpci() is being called only once so we don't need permanent
(static) variables there.
restorePciState() is not used for now (until we find why multiple
cards aren't working).
There's no need to store the slot information for a PCI device as its
ID. Instead, skip the middle man and just store a pointer to the
pci_device structure.
Eliminate xf86GetPciDomain. The domain from libpciaccess is the
domain. Period. This means that 0 is a valid domain. Make sure that
INCLUDE_XF86_NO_DOMAIN is *not* set. Always run in "domain mode,"
even if the only domain possible is 0.
Dummy out all of the PCI bus and device access control functions. We
need a better way to do this, and that will probably be in
libpciaccess and / or the kernel.
Refactor xf86GetPciInfoForEntity to use pci_device_find_by_slot.
Refector xf86CheckPciSlot to use xf86GetPciEntity.
Eliminate disablePciBios and the one place that calls it.
Conflicts:
hw/xfree86/common/xf86Init.c
hw/xfree86/int10/pci.c
hw/xfree86/scanpci/xf86PciData.h
hw/xfree86/scanpci/xf86PciStdIds.h
hw/xfree86/scanpci/xf86PciStr.h
hw/xfree86/scanpci/xf86ScanPci.h
hw/xfree86/utils/pcitweak/pcitweak.c
hw/xfree86/utils/scanpci/scanpci.c
Re-removed most of the conflicting files.
okay? Since xf86MapLegacyIO is called from only one place, cut the
parameter list down to the one parameter that actually conveys some
information: the one that gives a PCI device. Change from using a
PCITAG to a pci_device.
Get rid of almost all uses of these definitions. They're still defined for
delinquent out-of-tree drivers, and also for the Mesa build. As well as
for miinitext.c. But largely gone.
Class information is not, and never has been, stored there. Therefore,
this is just a bunch of elaborate code to read 0x00000000.
This has received testing on x86 and x86-64 Linux.
Add XSERV_t, TRANS_SERVER, TRANS_REOPEN to quash warnings.
Add #include <dix-config.h> or <xorg-config.h>, as appropriate, to all
source files in the xserver/xorg tree, predicated on defines of
HAVE_{DIX,XORG}_CONFIG_H. Change all Xfont includes to
<X11/fonts/foo.h>.
change "foo.h" to <X11/foo.h> for core headers, e.g. X.h, Xpoll.h;
change "foo.h", "extensions/foo.h" and "X11/foo.h" to
<X11/extensions/foo.h> for extension headers, e.g. Xv.h;
change "foo.[ch]" to <X11/Xtrans/foo.[ch]> for Xtrans files.
Added support for IBM space saver keyboard (Stefan Dirsch). Added support
for Cherry CyMotion Master XPress (Marcus Schaefer).
Change order of SetDisplayDevice(), HWRestore(), UnbindGART() and
RestoreBIOSMemSize() to be exactly opposite to the Save procedure in
EnterVT() (Matthias Hopf, Alan Hourihane).
Fix text mode restauration by removing the assumption that the register
which determines which head is programmed is set. to the active head by
the BIOS (Mark Vojkovich).
When I wrote the resource code 5 years ago I made some assumptions which
turned out to be false: I've assumed that the bus number of the PCI
hostbridge would be the PCI bus the bridge links to. This is not
correct. Fixing this assumption is not easy. However I hope that the
attached patch will make the system work regardless as it 'ignores'
host bridges from which the target bus is not known. This should not
matter at all as we really don't care about host bridges (unless we
have bridge specific code which retrieves information about the
bridge).
Fixed server crash on reset when a structure allocated in PreInit() was
freed on CloseScreen().
Fixed ring buffer lock ups that happened because the structure that
contained ringbuffer data was not zeroed after allocation.
Fixed numerous warnings due to signed unsigned comparisons.
programs/Xserver/hw/xfree86/drivers/nv/nv_driver.c:
(NVBacklightEnable): Changed the order in which the sequencer registers
and the backlight control registers are written. The sequencer control
register need to be written first otherwise DPMS screen blanking
produces vertical bars on a mobile device. lib/Xau/Imakefile: Build
libXau static library PIC so it can be linked into toolkits that would
like to wrap its functionality.
Harold L. Hunt II, Alexander Gottwald).
Fix crash when using X core font in zh_CN.UTF-8 locale (Bug #368, Yu Shao,
David Dawes).
Fix glXMakeCurrent(Dpy, None, NULL) crash (Bug #719, Adam Jackson).
HP-PA build fix (Bug #828, Guy Martin, Paul Anderson).
Fix SDK build for GATOS and Wacom driver (Bug #829, Bryan Stine).
Fix attempt to read video ROM before enabling it (Bug #843, Ivan
Kokshaysky, Mike A. Harris).
Fix detection of primary adapter (Bug #843, Ivan Kokshaysky, Mike A.
Harris).
Clarify xset man page description of how to use the keyboard repeat rate
settings (Bug #846, Mike A. Harris).
Fix problem where print-screen key would get remapped to sys-req in certain
keymaps, which broke GNOME printscreen functionality (Bug #847, Owen
Taylor).
Fix several render problems:
- MMIO mode support
- Hang on IGP chips
- VT switching hang
- 3D render corruption (Bug #922, Hui Yu).
IA64 (Egbert Eich).
Fixed wrong function prototype (Egbert Eich).
Don't test for generic VGA on IA64 (Egbert Eich).
Fixed a segfault when accessing a structure before verifying the pointer
exists (Egbert Eich).
Added a showcache option for debugging (Egbert Eich).
Increase default video RAM size to 16MB when DRI is enabled and more than
128MB are available (Egbert Eich). Fixed lockups during mode switch.
Problem was introduced when attempting to copy the behavior during
LeaveVT()/EnterVT() but but forgetting to call I810DRILeave() before
I810DRIEnter(). The entire DRILeave()/Enter() scenario has been
commented out as it didn't seem to be necessary (Egbert Eich).
Fix TweakMemorySize() (tested with i855/i865) (Egbert Eich).
increased MAX_DEVICES to 128 (Egbert Eich).
Use OS provided PCI config space access as default method (Egbert Eich).
Added support for Linux 2.6 proc file format.
Fixed unaligned accesses to pieces of the VBE info block. VESA did not
align elements to size (Egbert Eich).