From 9e002dfcd71439fd81563db1f70e8c1964d52fab Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Tue, 9 Dec 2014 18:27:11 -0800 Subject: Get rid of const warnings in XSERVER_INPUT_EVENT dtrace probe calls Use typedefs to work around dtrace dropping const qualifiers from probe arguments when generating Xserver-dtrace.h. Add new probes.h header to avoid having to replicate these typedefs in every file with dtrace probes. Gets rid of these warnings from gcc 4.8: getevents.c:1096:9: warning: passing argument 6 of '__dtrace_Xserver___input__event' discards 'const' qualifier from pointer target type [enabled by default] getevents.c:1096:9: warning: passing argument 7 of '__dtrace_Xserver___input__event' disards 'const' qualifier from pointer target type [enabled by default] getevents.c:1651:9: warning: passing argument 6 of '__dtrace_Xserver___input__event' disards 'const' qualifier from pointer target type [enabled by default] getevents.c:1651:9: warning: passing argument 7 of '__dtrace_Xserver___input__event' disards 'const' qualifier from pointer target type [enabled by default] getevents.c:1791:9: warning: passing argument 6 of '__dtrace_Xserver___input__event' disards 'const' qualifier from pointer target type [enabled by default] getevents.c:1791:9: warning: passing argument 7 of '__dtrace_Xserver___input__event' disards 'const' qualifier from pointer target type [enabled by default] getevents.c:1921:9: warning: passing argument 6 of '__dtrace_Xserver___input__event' disards 'const' qualifier from pointer target type [enabled by default] getevents.c:1921:9: warning: passing argument 7 of '__dtrace_Xserver___input__event' disards 'const' qualifier from pointer target type [enabled by default] Signed-off-by: Alan Coopersmith Reviewed-by: Peter Hutterer --- dix/Xserver.d | 5 ++++- dix/dispatch.c | 5 +---- dix/events.c | 8 +------- dix/getevents.c | 7 +------ dix/resource.c | 5 +---- include/Makefile.am | 1 + include/probes.h | 41 +++++++++++++++++++++++++++++++++++++++++ os/connection.c | 12 +++--------- 8 files changed, 53 insertions(+), 31 deletions(-) create mode 100644 include/probes.h diff --git a/dix/Xserver.d b/dix/Xserver.d index 248d48e24..f4f229d84 100644 --- a/dix/Xserver.d +++ b/dix/Xserver.d @@ -31,6 +31,9 @@ #include #endif +typedef const uint8_t *const_uint8_p; +typedef const double *const_double_p; + provider Xserver { /* reqType, data, length, client id, request buffer */ probe request__start(string, uint8_t, uint16_t, int, void *); @@ -49,7 +52,7 @@ provider Xserver { /* client id, event type, event* */ probe send__event(int, uint8_t, void *); /* deviceid, type, button/keycode/touchid, flags, nvalues, mask, values */ - probe input__event(int, int, uint32_t, uint32_t, int8_t, uint8_t*, double*); + probe input__event(int, int, uint32_t, uint32_t, int8_t, const_uint8_p, const_double_p); }; #pragma D attributes Unstable/Unstable/Common provider Xserver provider diff --git a/dix/dispatch.c b/dix/dispatch.c index 9044ac786..17fa75e19 100644 --- a/dix/dispatch.c +++ b/dix/dispatch.c @@ -131,10 +131,7 @@ int ProcInitialConnection(); #ifdef XSERVER_DTRACE #include "registry.h" -#include -typedef const char *string; - -#include "Xserver-dtrace.h" +#include "probes.h" #endif #define mskcnt ((MAXCLIENTS + 31) / 32) diff --git a/dix/events.c b/dix/events.c index b8c67fdfc..c232ebadc 100644 --- a/dix/events.c +++ b/dix/events.c @@ -125,13 +125,7 @@ Equipment Corporation. #include #include "xkbsrv.h" #include "xace.h" - -#ifdef XSERVER_DTRACE -#include -typedef const char *string; - -#include "Xserver-dtrace.h" -#endif +#include "probes.h" #include #include diff --git a/dix/getevents.c b/dix/getevents.c index 6fb12c5c1..bc7ffa63b 100644 --- a/dix/getevents.c +++ b/dix/getevents.c @@ -68,12 +68,7 @@ #include "exevents.h" #include "extnsionst.h" #include "listdev.h" /* for sizing up DeviceClassesChangedEvent */ - -#if XSERVER_DTRACE -#include -typedef const char *string; -#include -#endif +#include "probes.h" /* Number of motion history events to store. */ #define MOTION_HISTORY_SIZE 256 diff --git a/dix/resource.c b/dix/resource.c index 26debdb00..964f0b306 100644 --- a/dix/resource.c +++ b/dix/resource.c @@ -144,10 +144,7 @@ Equipment Corporation. #include "gcstruct.h" #ifdef XSERVER_DTRACE -#include -typedef const char *string; - -#include "Xserver-dtrace.h" +#include "probes.h" #define TypeNameString(t) LookupResourceName(t) #endif diff --git a/include/Makefile.am b/include/Makefile.am index 6578038a5..168b00f70 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -71,6 +71,7 @@ EXTRA_DIST = \ busfault.h dbus-core.h \ dix-config-apple-verbatim.h \ dixfontstubs.h eventconvert.h eventstr.h inpututils.h \ + probes.h \ protocol-versions.h \ systemd-logind.h \ xsha1.h diff --git a/include/probes.h b/include/probes.h new file mode 100644 index 000000000..e9cdd3e8e --- /dev/null +++ b/include/probes.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice (including the next + * paragraph) shall be included in all copies or substantial portions of the + * Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef XORG_PROBES_H +#define XORG_PROBES_H + +#ifdef HAVE_DIX_CONFIG_H +#include +#endif + +/* definitions needed to include Dtrace probes in a source file */ + +#if XSERVER_DTRACE +#include +typedef const char *string; +typedef const uint8_t *const_uint8_p; +typedef const double *const_double_p; +#include "../dix/Xserver-dtrace.h" +#endif + +#endif /* XORG_PROBES_H */ diff --git a/os/connection.c b/os/connection.c index da3397da6..ddfe50a3e 100644 --- a/os/connection.c +++ b/os/connection.c @@ -113,17 +113,11 @@ SOFTWARE. #ifdef HAVE_GETPEERUCRED #include #include -#endif - -#ifdef XSERVER_DTRACE -#include -typedef const char *string; - -#ifndef HAVE_GETPEERUCRED +#else #define zoneid_t int #endif -#include "../dix/Xserver-dtrace.h" -#endif + +#include "probes.h" static int lastfdesc; /* maximum file descriptor */ -- cgit v1.2.3