Refactoring: ring buffer context
[lttng-modules.git] / include / lttng / tracepoint-event-impl.h
index d70c1f9743efbf3b10fbc091c87e4afc3daa5a39..dbb92b8535485b9805705736d3ab0a00668508d7 100644 (file)
@@ -252,7 +252,7 @@ void __event_template_proto___##_name(void);
                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),                             \
@@ -266,7 +266,7 @@ void __event_template_proto___##_name(void);
                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),                                  \
@@ -1068,20 +1068,11 @@ static void __event_probe__##_name(_data_proto)                                         \
        __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) {                                                        \
@@ -1101,8 +1092,8 @@ static void __event_probe__##_name(_data_proto)                                           \
                        goto __post;                                                    \
                }                                                                       \
                __event_align = __event_get_align__##_name(_locvar_args);               \
-               lib_ring_buffer_ctx_init(&__ctx, __chan->chan, __event_len,             \
-                                        __event_align, -1, &__lttng_probe_ctx);        \
+               lib_ring_buffer_ctx_init(&__ctx, __event_recorder, __event_len,         \
+                                        __event_align, &__lttng_probe_ctx);            \
                __ret = __chan->ops->event_reserve(&__ctx, __event_recorder->priv->id); \
                if (__ret < 0)                                                          \
                        goto __post;                                                    \
This page took 0.023951 seconds and 4 git commands to generate.