X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=include%2Flttng%2Fust-tracepoint-event.h;h=4fc1ea91aa8c6f49abe3e5871221d4db5110f0af;hb=22c30e27e59035f165bfa0540022eeca113fcd59;hp=af51f9bc95cf5dae50ae9f231f5498639b9d2592;hpb=e016c06adf51c2e213303343026c2b5d3d7776e1;p=lttng-ust.git diff --git a/include/lttng/ust-tracepoint-event.h b/include/lttng/ust-tracepoint-event.h index af51f9bc..4fc1ea91 100644 --- a/include/lttng/ust-tracepoint-event.h +++ b/include/lttng/ust-tracepoint-event.h @@ -824,14 +824,18 @@ void __event_probe__##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args)) \ if (caa_unlikely(!cds_list_empty(&__event->filter_bytecode_runtime_head))) { \ struct lttng_ust_bytecode_runtime *__filter_bc_runtime; \ int __filter_record = __event->has_enablers_without_bytecode; \ + struct lttng_ust_bytecode_filter_ctx filter_ctx; \ \ + filter_ctx.struct_size = sizeof(struct lttng_ust_bytecode_filter_ctx); \ __event_prepare_interpreter_stack__##_provider##___##_name(__stackvar.__interpreter_stack_data, \ _TP_ARGS_DATA_VAR(_args)); \ tp_list_for_each_entry_rcu(__filter_bc_runtime, &__event->filter_bytecode_runtime_head, node) { \ - if (caa_unlikely(__filter_bc_runtime->interpreter_funcs.filter(__filter_bc_runtime, \ - __stackvar.__interpreter_stack_data) & LTTNG_UST_BYTECODE_INTERPRETER_RECORD_FLAG)) { \ - __filter_record = 1; \ - break; \ + if (caa_likely(__filter_bc_runtime->interpreter_func(__filter_bc_runtime, \ + __stackvar.__interpreter_stack_data, &filter_ctx) == LTTNG_UST_BYTECODE_INTERPRETER_OK)) { \ + if (caa_unlikely(filter_ctx.result == LTTNG_UST_BYTECODE_FILTER_ACCEPT)) { \ + __filter_record = 1; \ + break; \ + } \ } \ } \ if (caa_likely(!__filter_record)) \