};
/*
- * Filter return value masks.
+ * Bytecode interpreter return value masks.
*/
-enum lttng_filter_ret {
- LTTNG_FILTER_DISCARD = 0,
- LTTNG_FILTER_RECORD_FLAG = (1ULL << 0),
+enum lttng_bytecode_interpreter_ret {
+ LTTNG_INTERPRETER_DISCARD = 0,
+ LTTNG_INTERPRETER_RECORD_FLAG = (1ULL << 0),
/* Other bits are kept for future use. */
};
struct lttng_bytecode_runtime {
/* Associated bytecode */
struct lttng_bytecode_node *bc;
- uint64_t (*filter)(void *filter_data,
- struct lttng_probe_ctx *lttng_probe_ctx,
- const char *filter_stack_data);
+ union {
+ uint64_t (*filter)(void *filter_data,
+ struct lttng_probe_ctx *lttng_probe_ctx,
+ const char *filter_stack_data);
+ } interpreter_funcs;
int link_failed;
struct list_head node; /* list of bytecode runtime in event */
struct lttng_ctx *ctx;
#endif
-void lttng_filter_sync_state(struct lttng_bytecode_runtime *runtime);
int lttng_event_enabler_attach_filter_bytecode(struct lttng_event_enabler *event_enabler,
struct lttng_kernel_filter_bytecode __user *bytecode);
int lttng_event_notifier_enabler_attach_filter_bytecode(