X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fcommon%2Ftrigger.c;h=e708694b1c0969a7feb649691af0c9b411f05cac;hb=c05d4d1f7b815c3e422630cbed8937658b425e83;hp=8a88c6d91ffb84d1e50a293dbca334b1bb4d0552;hpb=0f7c296359bf90005e1dadf2d7a02a4b223a8031;p=lttng-tools.git diff --git a/src/common/trigger.c b/src/common/trigger.c index 8a88c6d91..e708694b1 100644 --- a/src/common/trigger.c +++ b/src/common/trigger.c @@ -370,9 +370,26 @@ bool lttng_trigger_is_equal( return false; } + if (a->is_hidden != b->is_hidden) { + return false; + } + return true; } +LTTNG_HIDDEN +bool lttng_trigger_is_hidden(const struct lttng_trigger *trigger) +{ + return trigger->is_hidden; +} + +LTTNG_HIDDEN +void lttng_trigger_set_hidden(struct lttng_trigger *trigger) +{ + assert(!trigger->is_hidden); + trigger->is_hidden = true; +} + LTTNG_HIDDEN enum lttng_trigger_status lttng_trigger_set_name(struct lttng_trigger *trigger, const char* name) @@ -460,7 +477,7 @@ int lttng_trigger_generate_name(struct lttng_trigger *trigger, int ret = 0; char *generated_name = NULL; - ret = asprintf(&generated_name, "T%" PRIu64 "", unique_id); + ret = asprintf(&generated_name, "trigger%" PRIu64 "", unique_id); if (ret < 0) { ERR("Failed to generate trigger name"); ret = -1; @@ -550,6 +567,40 @@ int lttng_triggers_add( return ret; } +LTTNG_HIDDEN +int lttng_triggers_remove_hidden_triggers(struct lttng_triggers *triggers) +{ + int ret; + unsigned int trigger_count, i = 0; + enum lttng_trigger_status trigger_status; + + assert(triggers); + + trigger_status = lttng_triggers_get_count(triggers, &trigger_count); + assert(trigger_status == LTTNG_TRIGGER_STATUS_OK); + + while (i < trigger_count) { + const struct lttng_trigger *trigger = + lttng_triggers_get_at_index(triggers, i); + + if (lttng_trigger_is_hidden(trigger)) { + ret = lttng_dynamic_pointer_array_remove_pointer( + &triggers->array, i); + if (ret) { + goto end; + } + + trigger_count--; + } else { + i++; + } + } + + ret = 0; +end: + return ret; +} + const struct lttng_trigger *lttng_triggers_get_at_index( const struct lttng_triggers *triggers, unsigned int index) { @@ -942,6 +993,7 @@ struct lttng_trigger *lttng_trigger_copy(const struct lttng_trigger *trigger) copy->tracer_token = trigger->tracer_token; copy->registered = trigger->registered; + copy->is_hidden = trigger->is_hidden; goto end; error_cleanup_trigger: