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) */
*/
struct tracepoint_entry {
struct cds_hlist_node hlist;
- struct probe *probes;
+ struct tracepoint_probe *probes;
int refcount; /* Number of times armed. 0 if disarmed. */
char name[0];
};
//ust// struct rcu_head rcu;
struct cds_list_head list;
} u;
- struct probe probes[0];
+ struct tracepoint_probe probes[0];
};
static inline void *allocate_probes(int count)
{
- struct tp_probes *p = zmalloc(count * sizeof(struct probe)
+ struct tp_probes *p = zmalloc(count * sizeof(struct tracepoint_probe)
+ sizeof(struct tp_probes));
return p == NULL ? NULL : p->probes;
}
void *probe, void *data)
{
int nr_probes = 0;
- struct probe *old, *new;
+ struct tracepoint_probe *old, *new;
WARN_ON(!probe);
if (new == NULL)
return ERR_PTR(-ENOMEM);
if (old)
- memcpy(new, old, nr_probes * sizeof(struct probe));
+ memcpy(new, old, nr_probes * sizeof(struct tracepoint_probe));
new[nr_probes].func = probe;
new[nr_probes].data = data;
new[nr_probes + 1].func = NULL;
void *data)
{
int nr_probes = 0, nr_del = 0, i;
- struct probe *old, *new;
+ struct tracepoint_probe *old, *new;
old = entry->probes;
lib_update_tracepoints();
}
-static struct probe *
+static struct tracepoint_probe *
tracepoint_add_probe(const char *name, void *probe, void *data)
{
struct tracepoint_entry *entry;
- struct probe *old;
+ struct tracepoint_probe *old;
entry = get_tracepoint(name);
if (!entry) {
entry = add_tracepoint(name);
if (IS_ERR(entry))
- return (struct probe *)entry;
+ return (struct tracepoint_probe *)entry;
}
old = tracepoint_entry_add_probe(entry, probe, data);
if (IS_ERR(old) && !entry->refcount)