Filter: prepare filter stack data
[lttng-ust.git] / include / lttng / ust-events.h
index 9c015821b53a8f651f0e032098cd96e9fcea768b..91d5839bfa6c1386ea13f9160207e7c27413be3e 100644 (file)
@@ -212,7 +212,7 @@ 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;
@@ -282,6 +282,7 @@ struct lttng_ust_field_list {
 };
 
 struct ust_pending_probe;
+struct ltt_event;
 
 /*
  * ltt_event structure is referred to by the tracing fast path. It must be
@@ -292,7 +293,8 @@ struct ltt_event {
        struct ltt_channel *chan;
        int enabled;
        const struct lttng_event_desc *desc;
-       void *filter;
+       int (*filter)(void *filter_data, const char *filter_stack_data);
+       void *filter_data;
        struct lttng_ctx *ctx;
        enum lttng_ust_instrumentation instrumentation;
        union {
@@ -412,7 +414,9 @@ 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,
+               int (*filter)(void *filter_data,
+                       const char *filter_stack_data),
+               void *filter_data,
                struct ltt_event **event);
 
 int ltt_channel_enable(struct ltt_channel *channel);
@@ -444,9 +448,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.024812 seconds and 4 git commands to generate.