aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw/nxagent
Commit message (Collapse)AuthorAgeFilesLines
* 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
|
* Xserver/dix/atom.c (et al.): Constify atom name strings.Mike Gabriel2017-03-024-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Inspired by X.org commits: commit 08093c25a91c07ab8af7cece9bba738b827cfd1b Author: Alan Coopersmith <alan.coopersmith@oracle.com> Date: Mon Oct 24 23:16:30 2011 -0700 Convert some malloc + strncpy pairs into strndup calls Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> commit 816b79dd061e9839cec94a4986a7820b70ca8a7f Author: Mikhail Gusarov <dottedmag@dottedmag.net> Date: Thu May 13 03:45:21 2010 +0700 Remove useless casts Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net> Reviewed-by: Keith Packard <keithp@keithp.com> This PR ships a tiny change in MakeAtom, that we adopted. We did not adopt the full commit. commit 5623c27700b7b23a8dbbd8c8f45e5d4fa0c667e3 Author: Alan Coopersmith <alan.coopersmith@sun.com> Date: Mon Feb 2 19:25:14 2009 -0800 Constify atom name strings Changes MakeAtom to take a const char * and NameForAtom to return them, since many callers pass pointers to constant strings stored in read-only ELF sections. Updates in-tree callers as necessary to clear const mismatch warnings introduced by this change. Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com> Acked-by: Peter Hutterer <peter.hutterer@who-t.net> Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* {dix/,hw/nxagent/NX}dixfont.{c,h}: Support using builtin-fonts. Makes ↵Mike Gabriel2017-02-271-11/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dependency on X11's misc fonts package obsolete. This backports a mixture of these X.org commits (only focusing on SetDefaultFontPath() function): commit 03e8bfa1d122f7dea905d48c93cfd54afd991dfd Author: Alan Coopersmith <alan.coopersmith@oracle.com> Date: Sat Nov 27 20:09:04 2010 -0800 Convert existing Xprintf style calls to asprintf style Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net> commit 12e46e83733b47d2704e1509960192365102af46 Author: Tiago Vignatti <tiago.vignatti@nokia.com> Date: Fri Mar 25 22:07:31 2011 +0200 dix: fix memory leak in SetDefaultFontPath Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com> Reviewed-by: Nicolas Peninguy <nico@lostgeeks.org> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> commit 6592db6bb526f0c43b4c7b55859c629709e039b4 Author: Mikhail Gusarov <dottedmag@dottedmag.net> Date: Fri Jun 4 16:58:58 2010 +0700 Get rid of xstrdup when argument is definitely non-NULL Replace xstrdup with strdup when either constant string is being duplicated or argument is guarded by conditionals and obviously can't be NULL Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net> Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> commit f56cbe1ef24415d0142b9a7d0ab0a031069ccb52 Author: Rémi Cardona <remi@gentoo.org> Date: Mon Sep 14 17:09:59 2009 +0200 dix: append "built-ins" to the font path in SetDefaultFontPath 49b93df8a3002db7196aa3fc1fd8dca1c12a55d6 made the hard dependency on a "fixed" font go away but only Xorg could use the built-ins fonts by default. With this commit, all DDXs get "built-ins" appended to their FontPath, not just Xorg. Tested with Xorg, Xvfb and Xnest. Signed-off-by: Rémi Cardona <remi@gentoo.org> Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Tested-by: Jon TURNEY <jon.turney@dronecode.org.uk> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> commit 49b93df8a3002db7196aa3fc1fd8dca1c12a55d6 Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br> Date: Wed Jan 7 19:37:03 2009 -0200 Default to use standard bitmap fonts, with builtins as fallback The builtin-fonts configure option was removed, as it at best should have been a runtime option. Instead, now it always register all "font path element" backends, and adds built-ins fonts at the end of the default font path. This should be a more reasonable solution, to "correct" the most common Xorg FAQ (could not open default font 'fixed'), and also don't break by default applications that use only the standard/historical X Font rendering. Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Fixes ArcticaProject/nx-libs#84. Fixes ArcticaProject/nx-libs#285.
* Xserver/hw/nxagent/Font.c: Drop references to /usr/NX/share/fonts/base as ↵Mike Gabriel2017-02-271-8/+4
| | | | default font path, entirely.
* Xserver/hw/nxagent/Font.c: Change (alternative) default font path order to ↵Mike Gabriel2017-02-271-10/+10
| | | | make font path search compliant with latest FHS for X11 fonts (though, prefer /usr/share/nx/fonts as default path).
* Xserver/hw/nxagent/Font.c: Drop NXAGENT_ALTERNATE_FONT_PATH_4 (pointing to ↵Mike Gabriel2017-02-271-30/+0
| | | | /usr/NX/share/fonts/base) entirely.