Fix: sym name len (kernel)
[lttng-tools.git] / src / bin / lttng-sessiond / snapshot.c
index 28364bbc75575508dc823c0ca6f819981bf66d0f..d22b5d52c98b730d122d91605c0f6851ef578c61 100644 (file)
@@ -47,7 +47,13 @@ static int output_init(uint64_t max_size, const char *name,
 
        assert(output);
 
+       memset(output, 0, sizeof(struct snapshot_output));
+
+       if (max_size == (uint64_t) -1ULL) {
+               max_size = 0;
+       }
        output->max_size = max_size;
+
        if (snapshot) {
                output->id = get_next_output_id(snapshot);
        }
@@ -218,6 +224,32 @@ void snapshot_output_destroy(struct snapshot_output *obj)
        free(obj);
 }
 
+/*
+ * RCU read side lock MUST be acquired before calling this since the returned
+ * pointer is in a RCU hash table.
+ *
+ * Return the reference on success or else NULL.
+ */
+struct snapshot_output *snapshot_find_output_by_name(const char *name,
+               struct snapshot *snapshot)
+{
+       struct lttng_ht_iter iter;
+       struct snapshot_output *output = NULL;
+
+       assert(snapshot);
+       assert(name);
+
+       cds_lfht_for_each_entry(snapshot->output_ht->ht, &iter.iter, output,
+               node.node) {
+               if (!strncmp(output->name, name, strlen(name))) {
+                       return output;
+               }
+       }
+
+       /* Not found */
+       return NULL;
+}
+
 /*
  * RCU read side lock MUST be acquired before calling this since the returned
  * pointer is in a RCU hash table.
This page took 0.024329 seconds and 4 git commands to generate.