struct lttng_condition *condition;
struct lttng_action *action;
- LTTNG_OPTIONAL(struct lttng_credentials) creds;
+ char *name;
+ /* For now only the uid portion of the credentials is used. */
+ struct lttng_credentials creds;
+ /*
+ * Internal use only.
+ * The unique token passed to the tracer to identify an event-rule
+ * notification.
+ */
+ LTTNG_OPTIONAL(uint64_t) tracer_token;
};
struct lttng_trigger_comm {
- /* length excludes its own length. */
+ /*
+ * Credentials, only the uid portion is used for now.
+ * Used as an override when desired by the root user.
+ */
+ uint64_t uid;
+ /*
+ * Length of the variable length payload (name, condition, and
+ * an action).
+ */
uint32_t length;
- /* A condition and action object follow. */
+ /* Includes '\0' terminator. */
+ uint32_t name_length;
+ /* A null-terminated name, a condition, and an action follow. */
char payload[];
} LTTNG_PACKED;
LTTNG_HIDDEN
bool lttng_trigger_validate(struct lttng_trigger *trigger);
+LTTNG_HIDDEN
+int lttng_trigger_assign_name(
+ struct lttng_trigger *dst, const struct lttng_trigger *src);
+
+LTTNG_HIDDEN
+void lttng_trigger_set_tracer_token(
+ struct lttng_trigger *trigger, uint64_t token);
+
+LTTNG_HIDDEN
+uint64_t lttng_trigger_get_tracer_token(const struct lttng_trigger *trigger);
+
+LTTNG_HIDDEN
+int lttng_trigger_generate_name(struct lttng_trigger *trigger,
+ uint64_t unique_id);
+
+LTTNG_HIDDEN
+bool lttng_trigger_is_equal(
+ const struct lttng_trigger *a, const struct lttng_trigger *b);
+
LTTNG_HIDDEN
void lttng_trigger_get(struct lttng_trigger *trigger);
const struct lttng_trigger *trigger);
LTTNG_HIDDEN
-void lttng_trigger_set_credentials(
- struct lttng_trigger *trigger,
+void lttng_trigger_set_credentials(struct lttng_trigger *trigger,
const struct lttng_credentials *creds);
#endif /* LTTNG_TRIGGER_INTERNAL_H */