event-rule: Normalize pattern for syscall and tracepoint
[lttng-tools.git] / src / common / trigger.c
index ca082d139ac888b76ed229ab9869fc694c833fa8..b79b9e0448c6e624e6e819dc3a1b9fe254dc8382 100644 (file)
@@ -92,7 +92,6 @@ const struct lttng_condition *lttng_trigger_get_const_condition(
        return trigger ? trigger->condition : NULL;
 }
 
-
 /*
  * Note: the lack of reference counting 'get' on the action object is normal.
  * This API was exposed as such in 2.11. The client is not expected to call
@@ -394,9 +393,10 @@ bool lttng_trigger_is_equal(
                return false;
        }
 
-       /*
-        * Name is not taken into account since it is cosmetic only.
-        */
+       if (strcmp(a->name, b->name) != 0) {
+               return false;
+       }
+
        if (!lttng_condition_is_equal(a->condition, b->condition)) {
                return false;
        }
@@ -1013,3 +1013,28 @@ end:
        lttng_payload_reset(&copy_buffer);
        return copy;
 }
+
+LTTNG_HIDDEN
+bool lttng_trigger_needs_tracer_notifier(const struct lttng_trigger *trigger)
+{
+       bool needs_tracer_notifier = false;
+       const struct lttng_condition *condition =
+                       lttng_trigger_get_const_condition(trigger);
+
+       switch (lttng_condition_get_type(condition)) {
+       case LTTNG_CONDITION_TYPE_ON_EVENT:
+               needs_tracer_notifier = true;
+               goto end;
+       case LTTNG_CONDITION_TYPE_SESSION_CONSUMED_SIZE:
+       case LTTNG_CONDITION_TYPE_BUFFER_USAGE_HIGH:
+       case LTTNG_CONDITION_TYPE_BUFFER_USAGE_LOW:
+       case LTTNG_CONDITION_TYPE_SESSION_ROTATION_ONGOING:
+       case LTTNG_CONDITION_TYPE_SESSION_ROTATION_COMPLETED:
+               goto end;
+       case LTTNG_CONDITION_TYPE_UNKNOWN:
+       default:
+               abort();
+       }
+end:
+       return needs_tracer_notifier;
+}
This page took 0.024213 seconds and 4 git commands to generate.