-struct lttng_event_notifier {
- uint64_t user_token;
- uint64_t error_counter_index;
- 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;
- struct cds_list_head enablers_ref_head;
- const struct lttng_event_desc *desc;
- struct cds_hlist_node hlist; /* hashtable of event_notifiers */
- struct cds_list_head node; /* event_notifier list in session */
- struct lttng_event_notifier_group *group; /* weak ref */
+struct lttng_ust_event_recorder_private;
+
+/*
+ * IMPORTANT: this structure is part of the ABI between the probe and
+ * UST. Fields need to be only added at the end, never reordered, never
+ * removed.
+ *
+ * struct lttng_ust_event_recorder is the action for recording events
+ * into a ring buffer. It inherits from struct lttng_ust_event_common
+ * by composition to ensure both parent and child structure are
+ * extensible.
+ *
+ * The field @struct_size should be used to determine the size of the
+ * structure. It should be queried before using additional fields added
+ * at the end of the structure.
+ */
+struct lttng_ust_event_recorder {
+ uint32_t struct_size; /* Size of this structure. */
+
+ struct lttng_ust_event_common *parent; /* Inheritance by aggregation. */
+ struct lttng_ust_event_recorder_private *priv; /* Private event record interface */
+
+ unsigned int id;
+ struct lttng_ust_channel_buffer *chan;
+
+ /* End of base ABI. Fields below should be used after checking struct_size. */
+};
+
+/*
+ * IMPORTANT: this structure is part of the ABI between the probe and
+ * UST. Fields need to be only added at the end, never reordered, never
+ * removed.
+ *
+ * The field @struct_size should be used to determine the size of the
+ * structure. It should be queried before using additional fields added
+ * at the end of the structure.
+ */
+struct lttng_ust_notification_ctx {
+ uint32_t struct_size; /* Size of this structure. */
+ int eval_capture; /* Capture evaluation available. */
+
+ /* End of base ABI. Fields below should be used after checking struct_size. */