*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
struct tracepoint;
-struct probe {
+struct tracepoint_probe {
void *func;
void *data;
};
struct tracepoint {
const char *name; /* Tracepoint name */
char state; /* State. */
- struct probe *probes;
+ struct tracepoint_probe *probes;
};
-#define PARAMS(args...) args
-
+#define TP_PARAMS(args...) args
#define TP_PROTO(args...) args
#define TP_ARGS(args...) args
*/
#define __DO_TRACE(tp, proto, args) \
do { \
- struct probe *it_probe_ptr; \
- void *it_func; \
- void *__data; \
+ struct tracepoint_probe *__tp_it_probe_ptr; \
+ void *__tp_it_func; \
+ void *__tp_cb_data; \
\
rcu_read_lock(); \
- it_probe_ptr = rcu_dereference((tp)->probes); \
- if (it_probe_ptr) { \
+ __tp_it_probe_ptr = rcu_dereference((tp)->probes); \
+ if (__tp_it_probe_ptr) { \
do { \
- it_func = (it_probe_ptr)->func; \
- __data = (it_probe_ptr)->data; \
- ((void(*)(proto))(it_func))(args); \
- } while ((++it_probe_ptr)->func); \
+ __tp_it_func = __tp_it_probe_ptr->func; \
+ __tp_cb_data = __tp_it_probe_ptr->data; \
+ ((void(*)(proto))__tp_it_func)(args); \
+ } while ((++__tp_it_probe_ptr)->func); \
} \
rcu_read_unlock(); \
} while (0)
* "(void *data, void)". The second prototype is invalid.
*
* DECLARE_TRACE_NOARGS() passes "void" as the tracepoint prototype
- * and "void *__data" as the callback prototype.
+ * and "void *__tp_cb_data" as the callback prototype.
*
* DECLARE_TRACE() passes "proto" as the tracepoint protoype and
- * "void *__data, proto" as the callback prototype.
+ * "void *__tp_cb_data, proto" as the callback prototype.
*/
#define DECLARE_TRACE_NOARGS(name) \
- __DECLARE_TRACE(name, void, , void *__data, __data)
+ __DECLARE_TRACE(name, void, , void *__tp_cb_data, __tp_cb_data)
#define DECLARE_TRACE(name, proto, args) \
- __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \
- PARAMS(void *__data, proto), \
- PARAMS(__data, args))
+ __DECLARE_TRACE(name, TP_PARAMS(proto), TP_PARAMS(args),\
+ TP_PARAMS(void *__tp_cb_data, proto), \
+ TP_PARAMS(__tp_cb_data, args))
/*
* Connect a probe to a tracepoint.
#define DECLARE_TRACE_EVENT_CLASS(name, proto, args, tstruct, assign, print)
#define DEFINE_TRACE_EVENT(template, name, proto, args) \
- DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
+ DECLARE_TRACE(name, TP_PARAMS(proto), TP_PARAMS(args))
#define DEFINE_TRACE_EVENT_PRINT(template, name, proto, args, print) \
- DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
+ DECLARE_TRACE(name, TP_PARAMS(proto), TP_PARAMS(args))
#define TRACE_EVENT(name, proto, args, struct, assign, print) \
- DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
+ DECLARE_TRACE(name, TP_PARAMS(proto), TP_PARAMS(args))
#define TRACE_EVENT_FN(name, proto, args, struct, \
assign, print, reg, unreg) \
- DECLARE_TRACE(name, PARAMS(proto), PARAMS(args))
+ DECLARE_TRACE(name, TP_PARAMS(proto), TP_PARAMS(args))
#endif /* ifdef TRACE_EVENT (see note above) */