#include <lttng/types.h>
#include <lttng/probe-user.h>
#include <lttng/events.h>
-#include <lttng/events-internal.h> /* TODO: remove this include after refactoring is done. */
#include <lttng/tracer-core.h>
#include <lttng/tp-mempool.h>
lttng_kernel_static_type_integer_from_type(_length_type, __BYTE_ORDER, 10), \
_nowrite, 0, 1), \
lttng_kernel_static_event_field(#_item, \
- lttng_kernel_static_type_sequence("_" #_item "_length", \
+ lttng_kernel_static_type_sequence(NULL, /* Use previous field. */ \
lttng_kernel_static_type_integer_from_type(_type, _byte_order, _elem_type_base), \
0, \
_encoding), \
lttng_kernel_static_type_integer_from_type(_length_type, __BYTE_ORDER, 10), \
_nowrite, 0, 1), \
lttng_kernel_static_event_field(#_item, \
- lttng_kernel_static_type_sequence("_" #_item "_length", \
+ lttng_kernel_static_type_sequence(NULL, /* Use previous field. */ \
lttng_kernel_static_type_integer(1, 1, 0, __LITTLE_ENDIAN, 10), \
lttng_alignof(_type), \
none), \
{ \
struct probe_local_vars { _locvar }; \
struct lttng_kernel_event_common *__event = __data; \
- struct lttng_probe_ctx __lttng_probe_ctx = { \
+ struct lttng_kernel_probe_ctx __lttng_probe_ctx = { \
.event = __event, \
.interruptible = !irqs_disabled(), \
}; \
__dynamic_len_idx = __orig_dynamic_len_offset; \
_code_pre \
if (unlikely(READ_ONCE(__event->eval_filter))) { \
- struct lttng_bytecode_runtime *bc_runtime; \
- bool __filter_record = false; \
- \
__event_prepare_interpreter_stack__##_name(__stackvar.__interpreter_stack_data, \
_locvar_args); \
__interpreter_stack_prepared = true; \
- lttng_list_for_each_entry_rcu(bc_runtime, &__event->priv->filter_bytecode_runtime_head, node) { \
- if (unlikely(bc_runtime->interpreter_funcs.filter(bc_runtime, &__lttng_probe_ctx, \
- __stackvar.__interpreter_stack_data) & LTTNG_INTERPRETER_RECORD_FLAG)) { \
- __filter_record = true; \
- break; \
- } \
- } \
- if (likely(!__filter_record)) \
+ if (likely(__event->run_filter(__event, \
+ __stackvar.__interpreter_stack_data, &__lttng_probe_ctx, NULL) != LTTNG_KERNEL_EVENT_FILTER_ACCEPT)) \
goto __post; \
} \
switch (__event->type) { \
goto __post; \
} \
__event_align = __event_get_align__##_name(_locvar_args); \
- lib_ring_buffer_ctx_init(&__ctx, __chan->chan, &__lttng_probe_ctx, __event_len, \
- __event_align, -1); \
- __ret = __chan->ops->event_reserve(&__ctx, __event_recorder->priv->id); \
+ lib_ring_buffer_ctx_init(&__ctx, __event_recorder, __event_len, \
+ __event_align, &__lttng_probe_ctx); \
+ __ret = __chan->ops->event_reserve(&__ctx); \
if (__ret < 0) \
goto __post; \
_fields \
_locvar_args); \
\
__event_notifier->notification_send(__event_notifier, \
- &__lttng_probe_ctx, \
__stackvar.__interpreter_stack_data, \
+ &__lttng_probe_ctx, \
&__notif_ctx); \
break; \
} \