- return bytecode_interpret(capture_data,
- capture_stack_data, lttng_probe_ctx, output);
+ struct lttng_bytecode_runtime *filter_bc_runtime;
+ struct list_head *filter_bytecode_runtime_head = &event->priv->filter_bytecode_runtime_head;
+ struct lttng_kernel_bytecode_filter_ctx bytecode_filter_ctx;
+ bool filter_record = false;
+
+ list_for_each_entry_rcu(filter_bc_runtime, filter_bytecode_runtime_head, node) {
+ if (likely(filter_bc_runtime->interpreter_func(filter_bc_runtime,
+ interpreter_stack_data, probe_ctx, &bytecode_filter_ctx) == LTTNG_KERNEL_BYTECODE_INTERPRETER_OK)) {
+ if (unlikely(bytecode_filter_ctx.result == LTTNG_KERNEL_BYTECODE_FILTER_ACCEPT)) {
+ filter_record = true;
+ break;
+ }
+ }
+ }
+ if (filter_record)
+ return LTTNG_KERNEL_EVENT_FILTER_ACCEPT;
+ else
+ return LTTNG_KERNEL_EVENT_FILTER_REJECT;