trigger: introduce firing policies
[lttng-tools.git] / include / lttng / trigger / trigger-internal.h
index 6942ece78d7a88d9b15a2585fdb200e43f0261f8..87368476958f08186e5f907545764bc3a6376086 100644 (file)
@@ -30,6 +30,11 @@ struct lttng_trigger {
        char *name;
        /* For now only the uid portion of the credentials is used. */
        struct lttng_credentials creds;
+       struct {
+               enum lttng_trigger_firing_policy type;
+               uint64_t threshold;
+               uint64_t current_count;
+       } firing_policy;
        /*
         * Internal use only.
         * The unique token passed to the tracer to identify an event-rule
@@ -55,6 +60,10 @@ struct lttng_trigger_comm {
        uint32_t length;
        /* Includes '\0' terminator. */
        uint32_t name_length;
+       /* Firing policy. */
+       /* Maps to enum lttng_trigger_firing_policy. */
+       uint8_t firing_policy_type;
+       uint64_t firing_policy_threshold;
        /* A null-terminated name, a condition, and an action follow. */
        char payload[];
 } LTTNG_PACKED;
@@ -161,4 +170,18 @@ LTTNG_HIDDEN
 void lttng_trigger_set_credentials(struct lttng_trigger *trigger,
                const struct lttng_credentials *creds);
 
+
+/*
+ * Fire the trigger.
+ * Increments the occurrence count.
+ */
+LTTNG_HIDDEN
+void lttng_trigger_fire(struct lttng_trigger *trigger);
+
+/*
+ * Check if the trigger would fire.
+ */
+LTTNG_HIDDEN
+bool lttng_trigger_should_fire(const struct lttng_trigger *trigger);
+
 #endif /* LTTNG_TRIGGER_INTERNAL_H */
This page took 0.022859 seconds and 4 git commands to generate.