+enum lttng_event_type {
+ LTTNG_TYPE_EVENT = 0,
+ LTTNG_TYPE_ENABLER = 1,
+};
+
+struct lttng_filter_bytecode_node {
+ struct list_head node;
+ struct lttng_enabler *enabler;
+ /*
+ * struct lttng_kernel_filter_bytecode has var. sized array, must be
+ * last field.
+ */
+ struct lttng_kernel_filter_bytecode bc;
+};
+
+/*
+ * Filter return value masks.
+ */
+enum lttng_filter_ret {
+ LTTNG_FILTER_DISCARD = 0,
+ LTTNG_FILTER_RECORD_FLAG = (1ULL << 0),
+ /* Other bits are kept for future use. */
+};
+
+struct lttng_bytecode_runtime {
+ /* Associated bytecode */
+ struct lttng_filter_bytecode_node *bc;
+ uint64_t (*filter)(void *filter_data, const char *filter_stack_data);
+ int link_failed;
+ struct list_head node; /* list of bytecode runtime in event */
+};
+
+/*
+ * Objects in a linked-list of enablers, owned by an event.
+ */
+struct lttng_enabler_ref {
+ struct list_head node; /* enabler ref list */
+ struct lttng_enabler *ref; /* backward ref */
+};
+