Fix C99 strict compatibility: don't use void * for function pointers
[lttng-ust.git] / include / lttng / ust-events.h
index 2bf05d56af0b199a492541304badeb0e0d982306..bf00f062482b154695e2579f7c0538537e55854c 100644 (file)
@@ -4,18 +4,19 @@
 /*
  * lttng/ust-events.h
  *
- * Copyright 2010 (c) - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ * Copyright 2010-2012 (c) - Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  *
  * Holds LTTng per-session event registry.
  *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED.  ANY USE IS AT YOUR OWN RISK.
+ * 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:
  *
- * Permission is hereby granted to use or copy this program
- * for any purpose,  provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
  */
 
 #include <urcu/list.h>
@@ -210,11 +211,12 @@ struct lttng_ctx {
 #define LTTNG_UST_EVENT_DESC_PADDING   40
 struct lttng_event_desc {
        const char *name;
-       void *probe_callback;
+       void (*probe_callback)(void);
        const struct lttng_event_ctx *ctx;      /* context */
        const struct lttng_event_field *fields; /* event payload */
        unsigned int nr_fields;
        const int **loglevel;
+       const char *signature;  /* Argument types/names received */
        char padding[LTTNG_UST_EVENT_DESC_PADDING];
 };
 
@@ -269,6 +271,7 @@ struct lttng_ust_tracepoint_list {
 };
 
 struct ust_pending_probe;
+struct ltt_event;
 
 /*
  * ltt_event structure is referred to by the tracing fast path. It must be
@@ -279,7 +282,7 @@ struct ltt_event {
        struct ltt_channel *chan;
        int enabled;
        const struct lttng_event_desc *desc;
-       void *filter;
+       void (*filter)(struct ltt_event *event);
        struct lttng_ctx *ctx;
        enum lttng_ust_instrumentation instrumentation;
        union {
@@ -399,7 +402,7 @@ struct ltt_channel *ltt_global_channel_create(struct ltt_session *session,
 
 int ltt_event_create(struct ltt_channel *chan,
                struct lttng_ust_event *event_param,
-               void *filter,
+               void (*filter)(struct ltt_event *event),
                struct ltt_event **event);
 
 int ltt_channel_enable(struct ltt_channel *channel);
@@ -431,9 +434,9 @@ int lttng_add_procname_to_ctx(struct lttng_ctx **ctx);
 void lttng_context_vtid_reset(void);
 void lttng_context_vpid_reset(void);
 
-const struct lttng_ust_lib_ring_buffer_client_cb *lttng_client_callbacks_metadata;
-const struct lttng_ust_lib_ring_buffer_client_cb *lttng_client_callbacks_discard;
-const struct lttng_ust_lib_ring_buffer_client_cb *lttng_client_callbacks_overwrite;
+extern const struct lttng_ust_lib_ring_buffer_client_cb *lttng_client_callbacks_metadata;
+extern const struct lttng_ust_lib_ring_buffer_client_cb *lttng_client_callbacks_discard;
+extern const struct lttng_ust_lib_ring_buffer_client_cb *lttng_client_callbacks_overwrite;
 
 struct ltt_transport *ltt_transport_find(const char *name);
 
This page took 0.025489 seconds and 4 git commands to generate.