struct lttng_ust_lib_ring_buffer_ctx;
struct lttng_ust_context_app;
struct lttng_event_field;
+struct lttng_event_notifier;
struct lttng_event_notifier_group;
/*
int enabled;
int registered; /* has reg'd tracepoint probe */
size_t num_captures; /* Needed to allocate the msgpack array. */
+ void (*notification_send)(struct lttng_event_notifier *event_notifier,
+ const char *stack_data);
struct cds_list_head filter_bytecode_runtime_head;
struct cds_list_head capture_bytecode_runtime_head;
int has_enablers_without_bytecode;
int lttng_session_statedump(struct lttng_session *session);
void lttng_session_destroy(struct lttng_session *session);
-void lttng_event_notifier_notification_send(
- struct lttng_event_notifier *event_notifier,
- const char *stack_data);
-
struct lttng_channel *lttng_channel_create(struct lttng_session *session,
const char *transport_name,
void *buf_addr,
size_t __dynamic_len[__num_fields]; \
char __interpreter_stack_data[2 * sizeof(unsigned long) * __num_fields]; \
} __stackvar; \
+ \
if (caa_unlikely(!CMM_ACCESS_ONCE(__event_notifier->enabled))) \
return; \
if (caa_unlikely(!TP_RCU_LINK_TEST())) \
__event_prepare_interpreter_stack__##_provider##___##_name(__stackvar.__interpreter_stack_data, \
_TP_ARGS_DATA_VAR(_args)); \
\
- lttng_event_notifier_notification_send(__event_notifier, \
+ __event_notifier->notification_send(__event_notifier, \
__stackvar.__interpreter_stack_data); \
}
CDS_INIT_LIST_HEAD(&event_notifier->capture_bytecode_runtime_head);
CDS_INIT_LIST_HEAD(&event_notifier->enablers_ref_head);
event_notifier->desc = desc;
+ event_notifier->notification_send = lttng_event_notifier_notification_send;
cds_list_add(&event_notifier->node,
&event_notifier_group->event_notifiers_head);
extern void (*lttng_ust_liburcu_bp_after_fork_parent)(void);
extern void (*lttng_ust_liburcu_bp_after_fork_child)(void);
+LTTNG_HIDDEN
+void lttng_event_notifier_notification_send(
+ struct lttng_event_notifier *event_notifier,
+ const char *stack_data);
+
#ifdef LTTNG_UST_HAVE_PERF_EVENT
void lttng_ust_fixup_perf_counter_tls(void);
void lttng_perf_lock(void);