X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=include%2Flttng%2Fevent-rule%2Fevent-rule-internal.h;h=b0f8a76fc92bbfd37e3678da80e6a3c06ff3fd50;hp=9fb115caf670bd5b924c112be6369ec003361911;hb=2463b7879c00298daa79744cdaae82ac061a4ed8;hpb=3a4595c2469472dee1656cde5f8882c2123efd3c diff --git a/include/lttng/event-rule/event-rule-internal.h b/include/lttng/event-rule/event-rule-internal.h index 9fb115caf..b0f8a76fc 100644 --- a/include/lttng/event-rule/event-rule-internal.h +++ b/include/lttng/event-rule/event-rule-internal.h @@ -10,6 +10,7 @@ #include #include +#include #include #include #include @@ -35,11 +36,13 @@ typedef enum lttng_error_code (*event_rule_generate_filter_bytecode_cb)( struct lttng_event_rule *event_rule, uid_t uid, gid_t gid); 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 struct lttng_event_exclusion *(*event_rule_generate_exclusions_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; @@ -52,6 +55,7 @@ struct lttng_event_rule { event_rule_get_filter_cb get_filter; event_rule_get_filter_bytecode_cb get_filter_bytecode; event_rule_generate_exclusions_cb generate_exclusions; + event_rule_generate_lttng_event_cb generate_lttng_event; }; struct lttng_event_rule_comm { @@ -106,7 +110,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); /* @@ -120,4 +124,18 @@ struct lttng_event_exclusion *lttng_event_rule_generate_exclusions( LTTNG_HIDDEN const char *lttng_event_rule_type_str(enum lttng_event_rule_type type); +/* + * This is compatibility helper, allowing us to generate a sessiond side (not + * communication) struct lttng_event object. This facilitate integration with + * current code. + * Caller OWN the returned object + */ +LTTNG_HIDDEN +struct lttng_event *lttng_event_rule_generate_lttng_event( + const struct lttng_event_rule *rule); + +/* Quick helper to test if the event rule apply to an agent domain */ +LTTNG_HIDDEN +bool lttng_event_rule_is_agent(const struct lttng_event_rule *rule); + #endif /* LTTNG_EVENT_RULE_INTERNAL_H */