aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw
Commit message (Collapse)AuthorAgeFilesLines
* Keystroke.c: detect duplicate keystroke definitionsUlrich Sibiller2017-04-031-0/+23
| | | | | | We cannot check if an action is defined twice because the viewport stuff is controlled by multiple keystrokes (arrow keys and keypad) in the default configuration.
* Keystroke.c: use KEYSTROKE_NOTHINGUlrich Sibiller2017-04-031-3/+3
| | | | | instead of KEYSTROKE_END_MARKER. This is cleaner since KEYSTROKE_END_MARKER really marks the end of the list.
* Args.c: add two missing options to help messageUlrich Sibiller2017-04-031-0/+2
|
* os: Remove the useless -x optionAdam Jackson2017-03-211-4/+0
| | | | | | | | | | commit cbb165ab88cb0810268001e84d87671440baf837 Author: Adam Jackson <ajax@redhat.com> Date: Fri Apr 3 18:34:45 2009 -0400 os: Remove the useless -x option Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* os: Add -displayfd optionChase Douglas2017-03-211-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | commit 88bacc49f06da5927f716869f5a32672a8297ed0 Author: Chase Douglas <chase.douglas@canonical.com> Date: Wed Apr 4 15:29:42 2012 -0700 os: Add -displayfd option This option specifies a file descriptor in the launching process. X will scan for an available display number and write that number back to the launching process, at the same time as SIGUSR1 generation. This means display managers don't need to guess at available display numbers. As a consequence, if X fails to start when using -displayfd, it's not because the display was in use, so there's no point in retrying the X launch on a higher display number. Signed-off-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Chase Douglas <chase.douglas@canonical.com> Reviewed-by: Julien Cristau <jcristau@debian.org> Tested-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* dix/os: backport various signal handling and smart scheduler changes from X.orgMike Gabriel2017-03-214-26/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backported from X.org: commit 6178b1c91cfc9e860914acc6f0be2f2d2e07a124 Author: Adam Jackson <ajax@redhat.com> Date: Tue Jun 7 15:52:11 2016 -0400 dix: Use OsSignal() not signal() As the man page for the latter states: The effects of signal() in a multithreaded process are unspecified. We already have an interface to call sigaction() instead, use it. Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com> commit e10ba9e4b52269b2ac75c4802dce4ca47d169657 Author: Keith Packard <keithp@keithp.com> Date: Wed Nov 11 22:02:01 2015 -0800 Remove non-smart scheduler. Don't require setitimer. This allows the server to call GetTimeInMillis() after each request is processed to avoid needing setitimer. -dumbSched now turns off the setitimer. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com> commit 1f915e8b524dd02011158aa038935970684c7630 Author: Daniel Drake <drake@endlessm.com> Date: Wed May 20 13:16:12 2015 -0600 Keep SIGALRM restart flag after Popen Commit 94ab7455 added SA_RESTART to the SIGALRM handler. However, the Popen code tears down and recreates the SIGALRM handler via OsSignal(), and this flag is dropped at this time. Clean the code to use just a single codepath for creating this signal handler, always applying SA_RESTART. [ajax: Fixed commit id] Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Daniel Drake <drake@endlessm.com> commit 94ab7455abc213fc96760e29ab2e943ec682fb22 Author: Daniel Drake <drake@endlessm.com> Date: Tue May 12 16:39:22 2015 -0600 Allow system call restarts upon signal interruption The X server frequently deals with SIGIO and SIGALRM interruptions. If process execution is inside certain blocking system calls when these signals arrive, e.g. with the kernel blocked on a contended semaphore, the system calls will be interrupted. Some system calls are automatically restartable (the kernel re-executes them with the same parameters once the signal handler returns) but only if the signal handler allows it. Set SA_RESTART on the signal handlers to enable this convenient behaviour. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Daniel Drake <drake@endlessm.com> commit a6c71ce5d2d2fe89e07a2ef5041c915acc3dc686 Author: Tiago Vignatti <tiago.vignatti@nokia.com> Date: Mon Mar 28 19:21:28 2011 +0300 os: fix memory and fd leaks in Popen Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Nicolas Peninguy <nico@lostgeeks.org> commit c9051b684b524549eab6d5b88ee3e195a6f6fbe8 Author: Alan Coopersmith <alan.coopersmith@sun.com> Date: Wed Nov 5 18:25:57 2008 -0800 Use OsSignal in Popen/Pclose to avoid SysV signal() stupidity commit 0e9ef65fa583bf2393dd0fda82df6f092387b425 Author: Keith Packard <keithp@koto.keithp.com> Date: Wed Nov 7 16:33:10 2007 -0800 Don't frob timers unless SmartSchedule is running commit 2338d5c9914e2a43c3a4f7ee0f4355ad0a1ad9e7 Author: Arjan van de Ven <arjan@linux.intel.com> Date: Sun Oct 28 09:37:52 2007 +0100 reduce wakeups from smart scheduler The smart scheduler itimer currently always fires after each request (which in turn causes the CPU to wake out of idle, burning precious power). Rather than doing this, just stop the timer before going into the select() portion of the WaitFor loop. It's a cheap system call, and it will only get called if there's no more commands batched up from the active fd. This change also allows some of the functions to be simplified; setitimer() will only fail if it's passed invalid data, and we don't do that... so make it void and remove all the conditional code that deals with failure. The change also allows us to remove a few variables that were used for housekeeping between the signal handler and the main loop. Signed-off-by: Keith Packard <keithp@koto.keithp.com> **Note**: The above change also required ABI changes in hw/nxagent/. commit abe0a51f3f790f8c055289465e130177c4b647cc Author: Ben Byer <bbyer@bbyer.apple.com> Date: Fri Sep 21 17:07:36 2007 -0700 So, like, checking return codes of system calls (signal, etc) is good. Also, only restore an old signal handler if one was actually set (prevents the server from dying on OS X). commit 6da39c67905500ab2db00a45cda4a9f756cdde96 Author: Eric Anholt <eric@anholt.net> Date: Wed Sep 12 13:23:13 2007 +0000 Fix build on FreeBSD after Popen changes. commit a5b8053606d6e786cdcf6734f271acc05f9cc588 Author: Adam Jackson <ajax@benzedrine.nwnk.net> Date: Tue Sep 11 11:37:06 2007 -0400 Ignore - not just block - SIGALRM around Popen()/Pclose(). Because our "popen" implementation uses stdio, and because nobody's stdio library is capable of surviving signals, we need to make absolutely sure that we hide the SIGALRM from the smart scheduler. Otherwise, when you open a menu in openoffice, and it recompiles XKB to deal with the accelerators, and you popen xkbcomp because we suck, then the scheduler will tell you you're taking forever doing something stupid, and the wait() code will get confused, and input will hang and your CPU usage slams to 100%. Down, not across. Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* Keystroke.c: ignore CapsLock and NumLock most of the timeUlrich Sibiller2017-03-193-3/+32
| | | | | | CapsLock and NumLock will only be taken into account for keystrokes that explicitly require them. This is implemented for convenience and fixes ArcticaProject/nx-libs#397
* nxagent: Use SetNotifyFd to receive events.Mike Gabriel2017-03-174-3/+12
| | | | | | | | | | | | | Inspired by X.org commit: commit 55c2e1a3aa587c58a74066724e11e30b3df267b8 Author: Keith Packard <keithp@keithp.com> Date: Mon Dec 7 15:11:33 2015 -0800 xnest: Use SetNotifyFd to receive events Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
* Keystroke.c: remove unneeded capital keys for default keystrokesUlrich Sibiller2017-03-131-11/+0
|
* Keystroke.c: add new keystroke to reread keystroke configUlrich Sibiller2017-03-132-6/+34
| | | | Default is ctrl-alt-k
* Keystroke.c: simplify parse_keystroke_fileUlrich Sibiller2017-03-131-36/+15
|
* Keystroke.c: fix formattingUlrich Sibiller2017-03-131-1/+1
|
* Keystroke.c: use an own environment variable for X2GoUlrich Sibiller2017-03-131-3/+10
|
* Keystroke.c: make nxagentKeystrokeFileParsed localUlrich Sibiller2017-03-131-4/+5
|
* Keystroke.c: add missing Mod5 modifierUlrich Sibiller2017-03-131-0/+1
|
* Keystroke.c: fix code orderUlrich Sibiller2017-03-131-1/+3
| | | | Do not use map before calling parse_keystroke_file() since it will malloc map.
* Keystroke.h: sane struct initUlrich Sibiller2017-03-131-0/+1
| | | | | Correctly use constant for unused structs instead of implicitly setting it through calloc().
* Keyboard.c: Introduce separate masks for Alt and MetaUlrich Sibiller2017-03-131-0/+8
| | | | Unclear why they have been merged at all.
* Keystroke.c: Fix modifier handlingUlrich Sibiller2017-03-131-1/+2
| | | | | | Code could not distinguish between ctrl-alt-shift and ctrl-alt. Fixes ArcticaProject/nx-libs#395
* Keystroke.c: more/fixed debug outputUlrich Sibiller2017-03-131-2/+17
|
* Keystroke: whitespace fixesUlrich Sibiller2017-03-132-2/+2
|
* Keystroke.c: arrange switch_all_screens and fullscreen close togetherUlrich Sibiller2017-03-132-17/+17
| | | | | Both use the same keystroke 'f' (with different modifiers) for a very similar function.
* Keystroke.c: print keystroke name in TEST modeUlrich Sibiller2017-03-131-2/+6
|
* Keystroke.c: improve TEST outputUlrich Sibiller2017-03-131-3/+3
|
* Keystroke.c: add another FIXMEUlrich Sibiller2017-03-131-0/+2
|
* Keystroke.c: Simplify read_binding_from_xmlnodeUlrich Sibiller2017-03-131-16/+17
|
* Keystroke.c: use symbols instead of integersUlrich Sibiller2017-03-131-2/+4
| | | | We have defined them, so use them!
* Keystroke.c: Boolify read_binding_from_xmlnodeUlrich Sibiller2017-03-132-45/+45
|
* Keystroke.c: Boolify nxagentCheckSpecialKeystrokeUlrich Sibiller2017-03-132-8/+8
|
* Keystroke.c: reorder parse_keystroke_fileUlrich Sibiller2017-03-131-7/+5
| | | | for better readability
* Keystroke.c: handle parsing state in parse_keystroke_file()Ulrich Sibiller2017-03-131-5/+6
|
* Keystroke.c: simplify nxagentCheckSpecialKeystrokeUlrich Sibiller2017-03-131-19/+3
|
* Keystroke.c: fix code formattingUlrich Sibiller2017-03-131-5/+4
|
* Keystroke.c: rework read_binding_from_xmlnode()Ulrich Sibiller2017-03-111-54/+30
| | | | code cleanup
* Keystroke.c: use Bool type where appropriateUlrich Sibiller2017-03-111-4/+4
|
* Display.c: remove unused logo codeUlrich Sibiller2017-03-101-37/+0
|
* Rootless.c: improve debugging outputUlrich Sibiller2017-03-101-4/+4
|
* Rootless.c: improve malloc failure handlingUlrich Sibiller2017-03-101-2/+34
|
* Rootless.c: fix possible memleakUlrich Sibiller2017-03-101-0/+1
|
* Display.c: pid is always 0, remove checkUlrich Sibiller2017-03-101-1/+1
|
* Window.c: Fix reference before check for null pointerUlrich Sibiller2017-03-101-3/+7
|
* Keyboard.c: Simplify if clauseUlrich Sibiller2017-03-101-4/+2
|
* Rootless.c: Fix wrongly negated comparisonsUlrich Sibiller2017-03-101-2/+2
|
* Args.c: Fix missing parenthesesUlrich Sibiller2017-03-101-0/+2
|
* replace (DE)ALLOCATE_LOCAL by malloc/freeUlrich Sibiller2017-03-036-21/+21
| | | | | | | | | | | | | | | | | | | | | | This is basically a backport of the following commits + replacing xalloc/xfree by malloc/free. Fixes ArcticaProject/nx-libs#358. commit 2761c103311a1160bc483fd0367d654733df8598 Author: Daniel Stone <daniel@fooishbar.org> Date: Mon Nov 5 14:03:26 2007 +0000 OS: Remove usage of alloca Replace with heap allocations. commit 5e363500c86042c394595e1a6633581eb8fcd1bb Author: Daniel Stone <daniel@fooishbar.org> Date: Mon Nov 5 14:38:28 2007 +0000 OS: Remove ALLOCATE_LOCAL from os.h Remove ALLOCATE_LOCAL_FALLBACK and DEALLOCATE_LOCAL_FALLBACK from os.h, and remove the include of Xalloca.h as well.
* nxagent: move validateString as inline func to Utils.hUlrich Sibiller2017-03-037-9/+8
|
* nxagent: half number of NameForAtom callsUlrich Sibiller2017-03-036-2/+9
| | | | | | | | Because of validateString being a macro NameForAtom was called twice most of the time. Fix that by making validateString a function. Fixes ArticaProject/nx-libs#357
* misc nx-X11/programs/Xserver/{hw/nxagent,miext,render}/: move code around so ↵Mihai Moldovan2017-03-034-247/+192
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | that we can drop nx-X11/programs/Xserver/render/miglyph.c (and by extension nx-X11/programs/Xserver/hw/nxagent/NXmiglyph.c.) This is essentially a bastardized cross/backport of these X.Org commits - based on our current architecture: commit 4b14c9a9cd2033d3839c4ba364d41ab4c4b198ab Author: Eric Anholt <eric@anholt.net> Date: Fri Oct 19 16:34:54 2007 -0700 Replace calls to Glyphs screen hook with CompositeGlyphs and remove dead code. Not all of the DDX/miext Glyphs hook implementations have been removed, but they should be. and commit 2251572062b2c25643671b8d5070de1c3f7ae976 Author: Aaron Plattner <aplattner@nvidia.com> Date: Fri Oct 26 15:13:50 2007 -0700 Restore the CompositeGlyphs -> ps->Glyphs -> miGlyphs callchain to allow acceleration architectures to wrap above miGlyphs. Conflicts: nx-X11/programs/Xserver/render/miglyph.c nx-X11/programs/Xserver/render/mipict.h nx-X11/programs/Xserver/render/picture.c
* hw/nxagent/Display.c: Fix uninitialized newAction in ↵Mike Gabriel2017-03-031-0/+2
| | | | | | nxagentResetSignalHandlers(). Fixes ArcticaProject/nx-libs#328.
* Fix "uninitialised byte(s)" complaints from valgrindUlrich Sibiller2017-03-026-17/+42
|