[PATCH xserver] xfree86: Provide xf86BlockSIGIO and xf86ReleaseSIGIO as wrappers for input mutex
Peter Hutterer
peter.hutterer at who-t.net
Mon May 30 04:21:31 UTC 2016
On Sun, May 29, 2016 at 07:17:53PM -0700, Keith Packard wrote:
> Threaded input doesn't use SIGIO anymore, but existing drivers using
> xf86BlockSIGIO and xf86ReleaseSIGIO probably want to lock the input
> mutex during those operations. Provide inline functions to do this
> which are marked as 'deprecated' so that drivers will get warnings
> until they are changed.
>
> Signed-off-by: Keith Packard <keithp at keithp.com>
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
thanks
Cheers,
Peter
> ---
> hw/xfree86/common/xf86.h | 4 ++++
> hw/xfree86/os-support/shared/sigio.c | 10 +++++-----
> 2 files changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/hw/xfree86/common/xf86.h b/hw/xfree86/common/xf86.h
> index adb5601..e54c811 100644
> --- a/hw/xfree86/common/xf86.h
> +++ b/hw/xfree86/common/xf86.h
> @@ -93,6 +93,10 @@ extern _X_EXPORT Bool VTSwitchEnabled; /* kbd driver */
> #define PIX24TOBPP(p) (((p) == Pix24Use24) ? 24 : \
> (((p) == Pix24Use32) ? 32 : 0))
>
> +/* Compatibility functions for pre-input-thread drivers */
> +static inline _X_DEPRECATED int xf86BlockSIGIO(void) { input_lock(); return 0; }
> +static inline _X_DEPRECATED void xf86UnblockSIGIO(int wasset) { input_unlock(); }
> +
> /* Function Prototypes */
> #ifndef _NO_XF86_PROTOTYPES
>
> diff --git a/hw/xfree86/os-support/shared/sigio.c b/hw/xfree86/os-support/shared/sigio.c
> index 37d35f7..37ef38f 100644
> --- a/hw/xfree86/os-support/shared/sigio.c
> +++ b/hw/xfree86/os-support/shared/sigio.c
> @@ -131,7 +131,7 @@ xf86IsPipe(int fd)
> }
>
> static void
> -xf86BlockSIGIO(void)
> +block_sigio(void)
> {
> sigset_t set;
>
> @@ -141,7 +141,7 @@ xf86BlockSIGIO(void)
> }
>
> static void
> -xf86ReleaseSIGIO(void)
> +release_sigio(void)
> {
> sigset_t set;
>
> @@ -165,7 +165,7 @@ xf86InstallSIGIOHandler(int fd, void (*f) (int, void *), void *closure)
> if (!xf86SigIOFuncs[i].f) {
> if (xf86IsPipe(fd))
> return 0;
> - xf86BlockSIGIO();
> + block_sigio();
> #ifdef O_ASYNC
> if (fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_ASYNC) == -1) {
> xf86Msg(X_WARNING, "fcntl(%d, O_ASYNC): %s\n",
> @@ -193,7 +193,7 @@ xf86InstallSIGIOHandler(int fd, void (*f) (int, void *), void *closure)
> }
> #endif
> if (!installed) {
> - xf86ReleaseSIGIO();
> + release_sigio();
> return 0;
> }
> sigemptyset(&sa.sa_mask);
> @@ -209,7 +209,7 @@ xf86InstallSIGIOHandler(int fd, void (*f) (int, void *), void *closure)
> if (fd >= xf86SigIOMaxFd)
> xf86SigIOMaxFd = fd + 1;
> FD_SET(fd, &xf86SigIOMask);
> - xf86ReleaseSIGIO();
> + release_sigio();
> return 1;
> }
> /* Allow overwriting of the closure and callback */
> --
> 2.8.1
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: https://lists.x.org/mailman/listinfo/xorg-devel
>
More information about the xorg-devel
mailing list