Save filter expression as part of agent events and save them
[lttng-tools.git] / src / bin / lttng-sessiond / trace-ust.c
index 2740d0f803a6d3393a2431dac53e85e85f21e846..0fca3b33a85bde64ff8173fe55b2693a9214956f 100644 (file)
@@ -30,6 +30,7 @@
 #include "trace-ust.h"
 #include "utils.h"
 #include "ust-app.h"
+#include "agent.h"
 
 /*
  * Match function for the events hash table lookup.
@@ -308,7 +309,8 @@ error:
  *
  * Return pointer to structure or NULL.
  */
-struct ltt_ust_channel *trace_ust_create_channel(struct lttng_channel *chan)
+struct ltt_ust_channel *trace_ust_create_channel(struct lttng_channel *chan,
+               enum lttng_domain_type domain)
 {
        struct ltt_ust_channel *luc;
 
@@ -320,6 +322,8 @@ struct ltt_ust_channel *trace_ust_create_channel(struct lttng_channel *chan)
                goto error;
        }
 
+       luc->domain = domain;
+
        /* Copy UST channel attributes */
        luc->attr.overwrite = chan->attr.overwrite;
        luc->attr.subbuf_size = chan->attr.subbuf_size;
@@ -374,7 +378,8 @@ error:
 struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev,
                char *filter_expression,
                struct lttng_filter_bytecode *filter,
-               struct lttng_event_exclusion *exclusion)
+               struct lttng_event_exclusion *exclusion,
+               bool internal_event)
 {
        struct ltt_ust_event *lue;
 
@@ -386,6 +391,8 @@ struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev,
                goto error;
        }
 
+       lue->internal = internal_event;
+
        switch (ev->type) {
        case LTTNG_EVENT_PROBE:
                lue->attr.instrumentation = LTTNG_UST_PROBE;
@@ -428,8 +435,8 @@ struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev,
 
        /* Same layout. */
        lue->filter_expression = filter_expression;
-       lue->filter = (struct lttng_ust_filter_bytecode *) filter;
-       lue->exclusion = (struct lttng_event_exclusion *) exclusion;
+       lue->filter = filter;
+       lue->exclusion = exclusion;
 
        /* Init node */
        lttng_ht_node_init_str(&lue->node, lue->attr.name);
@@ -655,7 +662,7 @@ int pid_tracker_add_pid(struct ust_pid_tracker *pid_tracker, int pid)
        tracker_node = pid_tracker_lookup(pid_tracker, pid, &iter);
        if (tracker_node) {
                /* Already exists. */
-               retval = LTTNG_ERR_INVALID;
+               retval = LTTNG_ERR_PID_TRACKED;
                goto end;
        }
        tracker_node = zmalloc(sizeof(*tracker_node));
@@ -683,7 +690,7 @@ int pid_tracker_del_pid(struct ust_pid_tracker *pid_tracker, int pid)
        tracker_node = pid_tracker_lookup(pid_tracker, pid, &iter);
        if (!tracker_node) {
                /* Not found */
-               retval = LTTNG_ERR_INVALID;
+               retval = LTTNG_ERR_PID_NOT_TRACKED;
                goto end;
        }
        ret = lttng_ht_del(pid_tracker->ht, &iter);
This page took 0.02501 seconds and 4 git commands to generate.