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 <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Alan Coopersmith 2014-12-09 18:27:11 -08:00
parent 20079c36cf
commit 9e002dfcd7
8 changed files with 53 additions and 31 deletions

View File

@ -31,6 +31,9 @@
#include <sys/types.h>
#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

View File

@ -131,10 +131,7 @@ int ProcInitialConnection();
#ifdef XSERVER_DTRACE
#include "registry.h"
#include <sys/types.h>
typedef const char *string;
#include "Xserver-dtrace.h"
#include "probes.h"
#endif
#define mskcnt ((MAXCLIENTS + 31) / 32)

View File

@ -125,13 +125,7 @@ Equipment Corporation.
#include <X11/extensions/XKBproto.h>
#include "xkbsrv.h"
#include "xace.h"
#ifdef XSERVER_DTRACE
#include <sys/types.h>
typedef const char *string;
#include "Xserver-dtrace.h"
#endif
#include "probes.h"
#include <X11/extensions/XIproto.h>
#include <X11/extensions/XI2proto.h>

View File

@ -68,12 +68,7 @@
#include "exevents.h"
#include "extnsionst.h"
#include "listdev.h" /* for sizing up DeviceClassesChangedEvent */
#if XSERVER_DTRACE
#include <sys/types.h>
typedef const char *string;
#include <Xserver-dtrace.h>
#endif
#include "probes.h"
/* Number of motion history events to store. */
#define MOTION_HISTORY_SIZE 256

View File

@ -144,10 +144,7 @@ Equipment Corporation.
#include "gcstruct.h"
#ifdef XSERVER_DTRACE
#include <sys/types.h>
typedef const char *string;
#include "Xserver-dtrace.h"
#include "probes.h"
#define TypeNameString(t) LookupResourceName(t)
#endif

View File

@ -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

41
include/probes.h Normal file
View File

@ -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 <dix-config.h>
#endif
/* definitions needed to include Dtrace probes in a source file */
#if XSERVER_DTRACE
#include <sys/types.h>
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 */

View File

@ -113,17 +113,11 @@ SOFTWARE.
#ifdef HAVE_GETPEERUCRED
#include <ucred.h>
#include <zone.h>
#endif
#ifdef XSERVER_DTRACE
#include <sys/types.h>
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 */