-struct ltt_session *ltt_session_create(void);
-int ltt_session_enable(struct ltt_session *session);
-int ltt_session_disable(struct ltt_session *session);
-void ltt_session_destroy(struct ltt_session *session);
-
-struct ltt_channel *ltt_channel_create(struct ltt_session *session,
- const char *transport_name,
- void *buf_addr,
- size_t subbuf_size, size_t num_subbuf,
- unsigned int switch_timer_interval,
- unsigned int read_timer_interval,
- int **shm_fd, int **wait_fd,
- uint64_t **memory_map_size,
- struct ltt_channel *chan_priv_init);
-struct ltt_channel *ltt_global_channel_create(struct ltt_session *session,
- int overwrite, void *buf_addr,
- size_t subbuf_size, size_t num_subbuf,
- unsigned int switch_timer_interval,
- unsigned int read_timer_interval,
- int **shm_fd, int **wait_fd,
- uint64_t **memory_map_size);
-
-int ltt_event_create(struct ltt_channel *chan,
- struct lttng_ust_event *event_param,
- void (*filter)(struct ltt_event *event),
- struct ltt_event **event);
-
-int ltt_channel_enable(struct ltt_channel *channel);
-int ltt_channel_disable(struct ltt_channel *channel);
-int ltt_event_enable(struct ltt_event *event);
-int ltt_event_disable(struct ltt_event *event);
-
-void ltt_transport_register(struct ltt_transport *transport);
-void ltt_transport_unregister(struct ltt_transport *transport);
-
-void synchronize_trace(void);
-
-int ltt_probe_register(struct lttng_probe_desc *desc);
-void ltt_probe_unregister(struct lttng_probe_desc *desc);
-int pending_probe_fix_events(const struct lttng_event_desc *desc);
-const struct lttng_event_desc *ltt_event_get(const char *name);
-void ltt_event_put(const struct lttng_event_desc *desc);
-int ltt_probes_init(void);
-void ltt_probes_exit(void);
-int lttng_find_context(struct lttng_ctx *ctx, const char *name);
-struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx_p);
-void lttng_remove_context_field(struct lttng_ctx **ctx_p,
- struct lttng_ctx_field *field);
-void lttng_destroy_context(struct lttng_ctx *ctx);
-int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_vpid_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_pthread_id_to_ctx(struct lttng_ctx **ctx);
-int lttng_add_procname_to_ctx(struct lttng_ctx **ctx);
-void lttng_context_vtid_reset(void);
-void lttng_context_vpid_reset(void);
-
-extern const struct lttng_ust_lib_ring_buffer_client_cb *lttng_client_callbacks_metadata;
-extern const struct lttng_ust_lib_ring_buffer_client_cb *lttng_client_callbacks_discard;
-extern const struct lttng_ust_lib_ring_buffer_client_cb *lttng_client_callbacks_overwrite;
-
-struct ltt_transport *ltt_transport_find(const char *name);
-
-int ltt_probes_get_event_list(struct lttng_ust_tracepoint_list *list);
-void ltt_probes_prune_event_list(struct lttng_ust_tracepoint_list *list);
-struct lttng_ust_tracepoint_iter *
- lttng_ust_tracepoint_list_get_iter_next(struct lttng_ust_tracepoint_list *list);
-int ltt_probes_get_field_list(struct lttng_ust_field_list *list);
-void ltt_probes_prune_field_list(struct lttng_ust_field_list *list);
-struct lttng_ust_field_iter *
- lttng_ust_field_list_get_iter_next(struct lttng_ust_field_list *list);
-
-int ltt_wildcard_enable(struct session_wildcard *wildcard);
-int ltt_wildcard_disable(struct session_wildcard *wildcard);
-int ltt_wildcard_create(struct ltt_channel *chan,
- struct lttng_ust_event *event_param,
- struct session_wildcard **sl);
-int ltt_loglevel_match(const struct lttng_event_desc *desc,
- enum lttng_ust_loglevel_type req_type,
- int req_loglevel);
-void ltt_probes_create_wildcard_events(struct wildcard_entry *entry,
- struct session_wildcard *wildcard);
+#define LTTNG_UST_EVENT_NOTIFIER_HT_BITS 12
+#define LTTNG_UST_EVENT_NOTIFIER_HT_SIZE (1U << LTTNG_UST_EVENT_NOTIFIER_HT_BITS)
+struct lttng_ust_event_notifier_ht {
+ struct cds_hlist_head table[LTTNG_UST_EVENT_NOTIFIER_HT_SIZE];
+};
+
+#define LTTNG_UST_ENUM_HT_BITS 12
+#define LTTNG_UST_ENUM_HT_SIZE (1U << LTTNG_UST_ENUM_HT_BITS)
+
+struct lttng_ust_enum_ht {
+ struct cds_hlist_head table[LTTNG_UST_ENUM_HT_SIZE];
+};
+
+struct lttng_ust_session_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_session {
+ uint32_t struct_size; /* Size of this structure */
+ struct lttng_ust_session_private *priv; /* Private session interface */
+
+ int active; /* Is trace session active ? */
+};
+
+int lttng_probe_register(struct lttng_probe_desc *desc);
+void lttng_probe_unregister(struct lttng_probe_desc *desc);
+
+/*
+ * Can be used by applications that change their procname to clear the ust cached value.
+ */
+void lttng_context_procname_reset(void);
+
+struct lttng_transport *lttng_transport_find(const char *name);
+
+int lttng_session_active(void);
+
+void lttng_ust_dl_update(void *ip);
+
+#ifdef __cplusplus
+}
+#endif