X-Git-Url: https://git.liburcu.org/?a=blobdiff_plain;f=include%2Flttng%2Fcondition%2Fevent-rule.h;h=4505076131937ae8053a5eb6946e6f144b649e87;hb=d602bd6a8ee25d5ca662dde4edb3db3cabf264e1;hp=91fce32d63a22a91858866d8342bb0c599f051b9;hpb=381140130b556bdccc8c7a45d843dcd34c6d7b8f;p=lttng-tools.git diff --git a/include/lttng/condition/event-rule.h b/include/lttng/condition/event-rule.h index 91fce32d6..450507613 100644 --- a/include/lttng/condition/event-rule.h +++ b/include/lttng/condition/event-rule.h @@ -5,8 +5,8 @@ * */ -#ifndef LTTNG_CONDITION_EVENT_RULE_H -#define LTTNG_CONDITION_EVENT_RULE_H +#ifndef LTTNG_CONDITION_ON_EVENT_H +#define LTTNG_CONDITION_ON_EVENT_H #include #include @@ -17,12 +17,13 @@ extern "C" { #endif struct lttng_event_expr; +struct lttng_event_field_value; /** - * Event rule conditions allows an action to be taken whenever an event matching - * the event rule is hit by the tracers. + * On event conditions allows an action to be taken whenever an event matching + * the on event is hit by the tracers. * - * An event rule condition can also specify a payload to be captured at runtime. + * An on event condition can also specify a payload to be captured at runtime. * This is done via the capture descriptor. * * Note: the dynamic runtime capture of payload is only available for the @@ -30,16 +31,16 @@ struct lttng_event_expr; */ /* - * Create a newly allocated event rule condition. + * Create a newly allocated on event condition. * * Returns a new condition on success, NULL on failure. This condition must be * destroyed using lttng_condition_destroy(). */ -extern struct lttng_condition *lttng_condition_event_rule_create( +extern struct lttng_condition *lttng_condition_on_event_create( struct lttng_event_rule *rule); /* - * Get the rule property of a event rule condition. + * Get the rule property of a on event condition. * * The caller does not assume the ownership of the returned rule. The * rule shall only be used for the duration of the condition's @@ -48,35 +49,59 @@ extern struct lttng_condition *lttng_condition_event_rule_create( * Returns LTTNG_CONDITION_STATUS_OK and a pointer to the condition's rule * on success, LTTNG_CONDITION_STATUS_INVALID if an invalid * parameter is passed. */ -extern enum lttng_condition_status lttng_condition_event_rule_get_rule( - const struct lttng_condition *condition, +extern enum lttng_condition_status lttng_condition_on_event_get_rule( + const struct lttng_condition *condition, const struct lttng_event_rule **rule); /** - * lttng_evaluation_event_rule_hit are specialised lttng_evaluations which + * lttng_evaluation_on_event_hit are specialised lttng_evaluations which * allow users to query a number of properties resulting from the evaluation * of a condition which evaluated to true. * - * The evaluation of a event rule hit yields two different results: + * The evaluation of a on event hit yields two different results: * TEMPORARY - The name of the triggers associated with the condition. * TODO - The captured event payload if any */ /* - * Get the trigger name property of a event rule hit evaluation. + * Get the trigger name property of a on event hit evaluation. * * Returns LTTNG_EVALUATION_STATUS_OK on success and a trigger name * or LTTNG_EVALUATION_STATUS_INVALID if * an invalid parameter is passed. */ extern enum lttng_evaluation_status -lttng_evaluation_event_rule_get_trigger_name( +lttng_evaluation_on_event_get_trigger_name( const struct lttng_evaluation *evaluation, const char **name); +/* + * Sets `*field_val` to the array event field value of the on event + * condition evaluation `evaluation` which contains its captured values. + * + * Returns: + * + * `LTTNG_EVALUATION_STATUS_OK`: + * Success. + * + * `*field_val` is an array event field value with a length of at + * least one. + * + * `LTTNG_EVALUATION_STATUS_INVALID`: + * * `evaluation` is `NULL`. + * * The type of the condition of `evaluation` is not + * `LTTNG_CONDITION_TYPE_ON_EVENT`. + * * The condition of `evaluation` has no capture descriptors. + * * `field_val` is `NULL`. + */ +extern enum lttng_evaluation_status +lttng_evaluation_on_event_get_captured_values( + const struct lttng_evaluation *evaluation, + const struct lttng_event_field_value **field_val); + /* * Appends (transfering the ownership) the capture descriptor `expr` to - * the event rule condition `condition`. + * the on event condition `condition`. * * Returns: * @@ -89,7 +114,7 @@ lttng_evaluation_event_rule_get_trigger_name( * `LTTNG_CONDITION_STATUS_INVALID`: * * `condition` is `NULL`. * * The type of `condition` is not - * `LTTNG_CONDITION_TYPE_EVENT_RULE_HIT`. + * `LTTNG_CONDITION_TYPE_ON_EVENT`. * * `expr` is `NULL`. * * `expr` is not a locator expression, that is, its type is not * one of: @@ -98,14 +123,17 @@ lttng_evaluation_event_rule_get_trigger_name( * * `LTTNG_EVENT_EXPR_TYPE_CHANNEL_CONTEXT_FIELD` * * `LTTNG_EVENT_EXPR_TYPE_APP_SPECIFIC_CONTEXT_FIELD` * * `LTTNG_EVENT_EXPR_TYPE_ARRAY_FIELD_ELEMENT` + * + * `LTTNG_CONDITION_STATUS_UNSUPPORTED`: + * * The associated event-rule does not support runtime capture. */ extern enum lttng_condition_status -lttng_condition_event_rule_append_capture_descriptor( +lttng_condition_on_event_append_capture_descriptor( struct lttng_condition *condition, struct lttng_event_expr *expr); /* - * Sets `*count` to the number of capture descriptors in the event rule + * Sets `*count` to the number of capture descriptors in the on event * condition `condition`. * * Returns: @@ -116,30 +144,30 @@ lttng_condition_event_rule_append_capture_descriptor( * `LTTNG_CONDITION_STATUS_INVALID`: * * `condition` is `NULL`. * * The type of `condition` is not - * `LTTNG_CONDITION_TYPE_EVENT_RULE_HIT`. + * `LTTNG_CONDITION_TYPE_ON_EVENT`. * * `count` is `NULL`. */ extern enum lttng_condition_status -lttng_condition_event_rule_get_capture_descriptor_count( +lttng_condition_on_event_get_capture_descriptor_count( const struct lttng_condition *condition, unsigned int *count); /* - * Returns the capture descriptor (borrowed) of the event rule condition + * Returns the capture descriptor (borrowed) of the on event condition * `condition` at the index `index`, or `NULL` if: * * * `condition` is `NULL`. * * The type of `condition` is not - * `LTTNG_CONDITION_TYPE_EVENT_RULE_HIT`. + * `LTTNG_CONDITION_TYPE_ON_EVENT`. * * `index` is greater than or equal to the number of capture * descriptors in `condition` (as returned by - * lttng_condition_event_rule_get_capture_descriptor_count()). + * lttng_condition_on_event_get_capture_descriptor_count()). */ extern const struct lttng_event_expr * -lttng_condition_event_rule_get_capture_descriptor_at_index( +lttng_condition_on_event_get_capture_descriptor_at_index( const struct lttng_condition *condition, unsigned int index); #ifdef __cplusplus } #endif -#endif /* LTTNG_CONDITION_EVENT_RULE_H */ +#endif /* LTTNG_CONDITION_ON_EVENT_H */