Commit Graph

184 Commits

Author SHA1 Message Date
Mikhail Gusarov
5a0fc0ad21 Replace deprecated bzero with memset
Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Marcin BaczyƄski <marbacz@gmail.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
2010-06-06 15:07:27 +07:00
Keith Packard
faeebead7b Change the devPrivates API to require dixRegisterPrivateKey
This patch only changes the API, not the implementation of the
devPrivates infrastructure. This will permit a new devPrivates
implementation to be layed into the server without requiring
simultaneous changes in every devPrivates user.

Signed-off-by: Keith Packard <keithp@keithp.com>
Tested-by: Tiago Vignatti <tiago.vignatti@nokia.com>
2010-06-05 19:23:03 -07:00
Tiago Vignatti
99fcf655bd xfree86: remove PCI dependency from InitOutput
All functions that touch PCI and BUS were moved to their own files, organizing
the mess inside the InitOutput. Now, inside InitOutput, mostly accesses to
buses are coordinated by the new xf86BusConfig.

Two PCI probe functions just changed the name and a procedure to receive the
isolate devices parameters was created also, named xf86PciIsolateDevice.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
2010-05-19 18:34:41 +03:00
Tiago Vignatti
2464eb7d56 xfree86: bus: simplify entity related hooks
Remove some out dated commentaries either.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
2010-05-19 18:34:15 +03:00
Tiago Vignatti
b37462b4da xfree86: remove unused xf86AccessInit()
The function was only initializing the boolean xf86ResAccessEnter, which
couldn't get any other value in the life of the server.

The only possible, though suspicious, code was in xf86AccessLeave(), which
could be triggered if AbortDDX is called before xf86AccessInit(). Even so,
such change is safety because no driver would have configured any entity leave
procedure at this point.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
2010-05-19 18:33:37 +03:00
Mikhail Gusarov
3f3ff971ec Replace X-allocation functions with their C89 counterparts
The only remaining X-functions used in server are XNF*, the rest is converted to
plain alloc/calloc/realloc/free/strdup.

X* functions are still exported from server and x* macros are still defined in
header file, so both ABI and API are not affected by this change.

Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-05-13 00:22:37 +07:00
Tiago Vignatti
64fd39f2f0 xfree86: no need to assign numScreens again
numScreens is always being assigned to 0 in dix for any server generation.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2010-04-23 16:13:57 +03:00
Keith Packard
28b7b2b8d0 unifdef -B -DRENDER to always include RENDER code
This patch was created with:

git ls-files '*.[ch]' | while read f; do unifdef -B -DRENDER -o $f $f; done

Signed-off-by: Keith Packard <keithp@keithp.com>
2010-04-19 09:26:10 -07:00
Tiago Vignatti
b9ad452ec9 xfree86: die gracefully in the vga arbiter if AddScreen fails
vga arbiter will be locked in one device while AbortDDX will call LeaveVT
routines from the other device. Fail!

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-04-02 00:09:20 -07:00
Rami Ylimaki
5b9a52be7e os: Prevent core dump from being truncated.
The problem fixed by this patch can be reproduced on Linux with the
following steps.
- Access NULL pointer intentionally in ProcessOtherEvent on key press.
- Instead of saving core dump to a file, write it into a pipe.
  echo "|/usr/sbin/my-core-dumper" > /proc/sys/kernel/core_pattern
- Dump the core by pressing a key.

While the core is being dumped into the pipe, the smart schedule timer
will cause a pending SIGALRM. Linux kernel stops writing data to the
pipe when there are pending signals. This causes the core dump to be
truncated. On my system I'm expecting a 6 MB dump but the size will be
60 kB instead. The problem is solved if we block the SIGALRM caused by
expired smart schedule timer.

I haven't been able to reproduce this problem in the following cases.
- Save core dump to a file instead of a pipe.
- kill -SEGV `pidof Xorg`
- Press a key to dump core while gdb is attached to Xorg.
- Give option -dumbSched to Xorg.

Also note that the fix works only when NoTrapSignals has the default
value FALSE. The problem can still be reproduced if error signals
aren't trapped. In addition to pending SIGALRM, there is a similar
problem with pending SIGIO from the keyboard driver during core dump.

Signed-off-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2010-02-17 23:20:52 -08:00
Peter Hutterer
d33adcdf03 dix: move config_init into the DDX.
The only DDX currently using hotplugging is the xfree86 one and it looks
like it'll stay that way for a bit. Move the initialization to the DDX,
since Xephyr, Xnest, and friends don't need HAL or udev notifications.

Add CloseInput (counterpart to InitInput) to be able to clean up the config
initialization from the DDX as well.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2010-02-15 09:15:18 +10:00
Dan Nicholson
592b20c517 xfree86: Allow config directory to be specified on command line
Add a new command line parameter, -configdir, to specify the config
directory to be used. Rules are the same as -config for root vs. user
privileges.

Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
2009-12-22 23:20:52 -08:00
Tiago Vignatti
5f898ddbaa xfree86: fix -quiet option behaviour
Previously it was trying to set the same value as the default one. Sigh.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Acked-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-16 21:49:31 -08:00
Tiago Vignatti
f57240a0a8 xfree86: spam output but with verbose level checked instead
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Acked-by: Rami Ylimaki <ext-rami.ylimaki@nokia.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-12-16 21:49:22 -08:00
Julien Cristau
30be7ceaf2 xfree86: set a sane umask before opening the log
Xorg creates its log file following the umask of the user running
startx, which may result in a world-writable log.  Set umask to 022 to
prevent this.

Debian bug#555308 <http://bugs.debian.org/555308>
See also http://thread.gmane.org/gmane.comp.security.oss.general/2299

Signed-off-by: Julien Cristau <jcristau@debian.org>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-11-17 12:55:44 -08:00
Jamey Sharp
83d520d86c Add video driver flag to indicate that console access is not needed.
Existing video drivers will get the console enabled by default.

Signed-off-by: Jamey Sharp <jamey@minilop.net>
Signed-off-by: Keith Packard <keithp@keithp.com>
2009-10-28 18:24:29 -07:00
Keith Packard
ded35b7bf7 xf86Xinput.c: get DIX event queue pointer once at InitInput time
The DIX event queue is allocated before InitInput is called, so fetch
the pointer there and not randomly at other times. This avoids failing
to fetch the pointer sometimes during server regen and then smashing
memory through the stale pointer from the previous server generation.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:24 +10:00
Keith Packard
54f15a4141 probe_devices_from_device_sections: don't leak list of devices
xf86MatchDevice returned malloc'd storage containing the list of
devices to look at; make sure that gets freed.

Signed-off-by: Keith Packard <keithp@keithp.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-20 20:45:24 +10:00
Tiago Vignatti
281ebb453d xfree86: vgaarb: close and cleanup vga arbiter
So far there are no apparently issues on not closing the fd. But let's do the
right job here.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-09-11 09:19:36 +10:00
Tiago Vignatti
79182538b4 xfree86: removal of some dead code due VGA arbiter's inclusion
Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
2009-08-31 19:25:48 +03:00
Dave Airlie
e454f106dc xf86 ddx: add vga arbiter support.
This adds support for using the libpciaccess interface for
vga arbitration support on top of a kernel which supports it.

Currently patches are queued for kernel 2.6.32 in jbarnes
pci tree, and shipping in Fedora kernel.

Co-authors:
Tiago Vignatti <tiago.vignatti@nokia.com>

Signed-off-by: Dave Airlie <airlied@redhat.com>
2009-08-28 11:39:42 +10:00
Adam Jackson
ae68708ebe xfree86: dump /proc/cmdline in the log on Linux 2009-08-20 15:45:57 -04:00
Tiago Vignatti
c553161e17 xfree86: delete devices probe code (-probe and -probeonly options)
Inside a windowing system, it's not the place to probe for devices. Goodbye
-probe and -probeonly.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
2009-07-28 18:20:22 +03:00
Tiago Vignatti
c09779f95a xfree86: delete stupid video driver dump (-modalias option)
Such stupid and ugly way to dump PCI information! Oh boy... Anyway, this
doesn't belong to the X server at all. Go away!

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
2009-07-28 18:20:18 +03:00
Dave Airlie
4b42448a23 xserver: remove RAC/resource handling code.
This changes the ABI, but since the video ABI is at 6 already
it should be fine.

driver changes are in the pipeline after this.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2009-07-28 15:14:28 +10:00
Peter Hutterer
d3f6b43a24 Update to xextproto 7.0.99.1.
xextproto had Xlib client headers moved into libXext.
Protocol header files are named fooproto.h, header files with constants
foo.h or fooconst.h where foo.h was already in use for client-side headers.
2009-07-15 17:00:05 +10:00
Matthias Hopf
43ee8d2ead Unclaim PCI slot if driver probing fails.
Otherwise no subsequent driver will be able to claim this pci slot.
Example for this: fbdev tries to claim, but framebuffer device is not
available. Later on VESA cannot claim the device.
2009-07-06 18:38:26 +02:00
SĂžren Sandmann Pedersen
c733660428 Use pixman_version_string() instead of PIXMAN_VERSION_STRING
Pointed out by Julien Cristau.
2009-06-19 08:37:54 -04:00
SĂžren Sandmann Pedersen
d9b5e77a0e Print the current version of pixman. 2009-06-18 12:36:10 -04:00
Peter Hutterer
e3f296d91d xfree86: Remove superfluous ifdef DEBUG checks.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2009-05-16 12:20:57 +10:00
Alan Coopersmith
a0b6a363dc Lift fatal signal handlers from DDX'es up to a common DIX implementation
Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
2009-04-09 17:10:12 -07:00
Keith Packard
76f18b94bd Add XkbDir to Files config file section
The XKB base directory was not configuable through the config file.

Signed-off-by: Keith Packard <keithp@keithp.com>
2009-02-17 11:01:15 -08:00
Adam Jackson
9ff6180161 Bus: Delete some obfuscatory macros 2009-02-04 22:49:33 -05:00
Julien Cristau
aec4c0caca xfree86: ANSI cleanups 2009-01-11 08:54:11 +01:00
Daniel Stone
7da4e901e0 XFree86: Fix build with DGA disabled
It's optional, so we might as well work when it's disabled.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2009-01-05 11:23:39 +02:00
Alan Coopersmith
89bbd07e9d Remove obsolete XF86_DATE & xf86Date.h 2008-12-23 21:40:21 -08:00
Alan Coopersmith
8dc3a7d681 Remove unused CLOG_DATE (leftover from pre-git ChangeLog) 2008-12-23 14:59:46 -08:00
Peter Hutterer
cb95642dc8 Remove #define NEED_EVENTS and NEED_REPLIES
A grep on xorg/* revealed there's no consumer of this define.

Quote Alan Coopersmith:
"The consumer was in past versions of the headers now located
in proto/x11proto - for instance, in X11R6.0's xc/include/Xproto.h,
all the event definitions were only available if NEED_EVENTS were
defined, and all the reply definitions required NEED_REPLIES.

Looks like Xproto.h dropped them by X11R6.3, which didn't have
the #ifdef's anymore, so these are truly ancient now."

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2008-12-12 11:43:32 +10:00
Peter Hutterer
39db182b63 xfree86: init EQ before trying to initialise the devices (#18890)
The kbd driver may send events during device initialisation, and these events
need the EQ set up already.

X.Org Bug 18890 <http://bugs.freedesktop.org/show_bug.cgi?id=18890>

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2008-12-08 13:46:12 +10:00
Paulo Cesar Pereira de Andrade
49f77fff14 Rework symbol visibility for easier maintenance
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).
2008-12-03 05:43:34 -02:00
Alan Coopersmith
8561514574 Don't need to check uid/euid for every commandline argument
Check uid/euid only when handling the arguments that are restricted
to root/non-setuid users
2008-12-02 13:35:03 -08:00
Peter Hutterer
d507f60689 xfree86: don't FatalError on "too many input devices".
Just ignore devices after MAXDEVICES has been reached, but warn the user that
the devices are ignored.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
2008-12-02 15:50:38 +10:00
Paulo Cesar Pereira de Andrade
d6cbd4511e Export symbols defined in the sdk.
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()
2008-11-29 23:56:06 -02:00
Adam Jackson
8b9253f638 Code motion: subsume xf86DoProbe.c into xf86Init.c 2008-11-25 15:05:17 -05:00
Adam Jackson
df14682a31 Bus: Remove ISA support.
No, really.  PCI is old enough to drive now.  If you want this, get the kernel
to expose a framebuffer device.
2008-11-24 23:40:06 -05:00
Peter Hutterer
0dbcbd35f6 xfree86: Split the working code of NIDR into new xf86NewInputDevice.
The xfree86 server previously hat NewInputDeviceRequest and InitInput, and
both basically did the same thing. Reduce NIDR to parameter checking and use
xf86NewInputDevice from both InitInput and NIDR to actually create the device.

Signed-off-by: Peter Hutterer <peter.hutterer@redhat.com>
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Adam Jackson <ajax@redhat.com>
2008-11-24 10:17:45 +10:00
Stefan Dirsch
f6e01fa1b8 Added '-showopts' option to print available driver options (#5564). 2008-11-23 11:16:03 +01:00
Julien Cristau
ffaaa1a198 xfree86: fix compiler warnings in DoModalias()
The precedence of == is higher than that of &, so that code was
probably buggy.

xf86Init.c: In function 'DoModalias':
xf86Init.c:300: warning: suggest parentheses around comparison in operand of &
xf86Init.c:304: warning: suggest parentheses around comparison in operand of &
xf86Init.c:308: warning: suggest parentheses around comparison in operand of &
2008-10-26 13:13:21 +01:00
Julien Cristau
66fd05acd6 xfree86: Silence compiler warnings about function prototypes
xf86Init.c:136: warning: function declaration isn't a prototype
xf86Init.c:243: warning: function declaration isn't a prototype
xf86Init.c:249: warning: function declaration isn't a prototype
2008-10-26 13:11:41 +01:00
Nathaniel McCallum
8e368cf5b9 Xorg: add -modalias option
This scans the installed video drivers and prints a Linux-style modalias
listing of the devices each driver claims to support.
2008-10-14 09:50:29 -04:00