struct cds_list_head filter_bytecode_head;
/* head list of struct lttng_ust_excluder_node */
struct cds_list_head excluder_head;
- struct cds_list_head node; /* per-session list of enablers */
struct lttng_ust_event event_param;
- struct lttng_channel *chan;
- /*
- * Unused, but kept around to make it explicit that the tracer can do
- * it.
- */
- struct lttng_ctx *ctx;
unsigned int enabled:1;
};
struct ust_pending_probe;
struct lttng_event;
-struct lttng_ust_filter_bytecode_node {
- struct cds_list_head node;
- struct lttng_enabler *enabler;
- /*
- * struct lttng_ust_filter_bytecode has var. sized array, must
- * be last field.
- */
- struct lttng_ust_filter_bytecode bc;
-};
-
-struct lttng_ust_excluder_node {
- struct cds_list_head node;
- struct lttng_enabler *enabler;
- /*
- * struct lttng_ust_event_exclusion had variable sized array,
- * must be last field.
- */
- struct lttng_ust_event_exclusion excluder;
-};
/*
* Filter return value masks.
*/
int lttng_channel_enable(struct lttng_channel *channel);
int lttng_channel_disable(struct lttng_channel *channel);
-struct lttng_enabler *lttng_enabler_create(enum lttng_enabler_format_type type,
- struct lttng_ust_event *event_param,
- struct lttng_channel *chan);
-int lttng_enabler_enable(struct lttng_enabler *enabler);
-int lttng_enabler_disable(struct lttng_enabler *enabler);
-int lttng_enabler_attach_bytecode(struct lttng_enabler *enabler,
- struct lttng_ust_filter_bytecode_node *bytecode);
-int lttng_enabler_attach_context(struct lttng_enabler *enabler,
- struct lttng_ust_context *ctx);
-int lttng_enabler_attach_exclusion(struct lttng_enabler *enabler,
- struct lttng_ust_excluder_node *excluder);
-
int lttng_attach_context(struct lttng_ust_context *context_param,
union ust_args *uargs,
struct lttng_ctx **ctx, struct lttng_session *session);
struct lttng_ust_field_iter *
lttng_ust_field_list_get_iter_next(struct lttng_ust_field_list *list);
-void lttng_enabler_event_link_bytecode(struct lttng_event *event,
- struct lttng_enabler *enabler);
void lttng_free_event_filter_runtime(struct lttng_event *event);
void lttng_filter_sync_state(struct lttng_bytecode_runtime *runtime);
/* For backward compatibility. Leave those exported symbols in place. */
extern struct lttng_ctx *lttng_static_ctx;
+struct lttng_ust_filter_bytecode_node;
+struct lttng_ust_excluder_node;
void lttng_context_init(void);
void lttng_context_exit(void);
void lttng_filter_event_link_bytecode(struct lttng_event *event);
+struct lttng_enabler *lttng_enabler_create(
+ enum lttng_enabler_format_type format_type,
+ struct lttng_ust_event *event_param,
+ struct lttng_channel *chan);
+int lttng_enabler_enable(struct lttng_enabler *enabler);
+int lttng_enabler_disable(struct lttng_enabler *enabler);
+int lttng_enabler_attach_bytecode(struct lttng_enabler *enabler,
+ struct lttng_ust_filter_bytecode_node *bytecode);
+int lttng_enabler_attach_context(struct lttng_enabler *enabler,
+ struct lttng_ust_context *ctx);
+int lttng_enabler_attach_exclusion(struct lttng_enabler *enabler,
+ struct lttng_ust_excluder_node *excluder);
+void lttng_enabler_event_link_bytecode(struct lttng_event *event,
+ struct lttng_enabler *enabler);
#ifdef __cplusplus
}