X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=include%2Flttng%2Fevent-rule%2Fevent-rule-internal.h;h=dd2d7dd18636b1560c655bf2a08eb1a7ca4d3cf7;hb=2b00d46244cab86f1186a7b00cdc660f24a26f72;hp=31465c7694dc13b701bf3cdf45e3e3d170e0b629;hpb=993578ff7c4fce4d9a834918d192f896ba3021c7;p=lttng-tools.git diff --git a/include/lttng/event-rule/event-rule-internal.h b/include/lttng/event-rule/event-rule-internal.h index 31465c769..dd2d7dd18 100644 --- a/include/lttng/event-rule/event-rule-internal.h +++ b/include/lttng/event-rule/event-rule-internal.h @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -45,7 +46,7 @@ typedef enum lttng_error_code (*event_rule_generate_filter_bytecode_cb)( const struct lttng_credentials *creds); typedef const char *(*event_rule_get_filter_cb)( const struct lttng_event_rule *event_rule); -typedef const struct lttng_filter_bytecode *( +typedef const struct lttng_bytecode *( *event_rule_get_filter_bytecode_cb)( const struct lttng_event_rule *event_rule); typedef enum lttng_event_rule_generate_exclusions_status ( @@ -54,6 +55,8 @@ typedef enum lttng_event_rule_generate_exclusions_status ( struct lttng_event_exclusion **exclusions); typedef unsigned long (*event_rule_hash_cb)( const struct lttng_event_rule *event_rule); +typedef struct lttng_event *(*event_rule_generate_lttng_event_cb)( + const struct lttng_event_rule *event_rule); struct lttng_event_rule { struct urcu_ref ref; @@ -67,6 +70,7 @@ struct lttng_event_rule { event_rule_get_filter_bytecode_cb get_filter_bytecode; event_rule_generate_exclusions_cb generate_exclusions; event_rule_hash_cb hash; + event_rule_generate_lttng_event_cb generate_lttng_event; }; struct lttng_event_rule_comm { @@ -122,7 +126,7 @@ const char *lttng_event_rule_get_filter(const struct lttng_event_rule *rule); * Caller DOES NOT own the returned object. */ LTTNG_HIDDEN -const struct lttng_filter_bytecode *lttng_event_rule_get_filter_bytecode( +const struct lttng_bytecode *lttng_event_rule_get_filter_bytecode( const struct lttng_event_rule *rule); /* @@ -140,4 +144,21 @@ const char *lttng_event_rule_type_str(enum lttng_event_rule_type type); LTTNG_HIDDEN unsigned long lttng_event_rule_hash(const struct lttng_event_rule *rule); +/* + * This is a compatibility helper allowing us to generate a sessiond-side (not + * communication) `struct lttng_event` object from an event rule. + * + * This effectively bridges older parts of the code using those structures and + * new event-rule based code. + * + * The caller owns the returned object. + */ +LTTNG_HIDDEN +struct lttng_event *lttng_event_rule_generate_lttng_event( + const struct lttng_event_rule *rule); + +/* Test if an event rule targets an agent domain. */ +LTTNG_HIDDEN +bool lttng_event_rule_targets_agent_domain(const struct lttng_event_rule *rule); + #endif /* LTTNG_EVENT_RULE_INTERNAL_H */