#include <lttng/ust-events.h>
+#include "ust-context-provider.h"
struct lttng_ust_abi_obj;
+struct lttng_event_notifier_group;
union lttng_ust_abi_args {
struct {
* Unused, but kept around to make it explicit that the tracer can do
* it.
*/
- struct lttng_ctx *ctx;
+ struct lttng_ust_ctx *ctx;
};
struct lttng_event_notifier_enabler {
struct cds_list_head enablers_head;
struct cds_list_head event_notifiers_head; /* list of event_notifiers */
struct lttng_ust_event_notifier_ht event_notifiers_ht; /* hashtable of event_notifiers */
- struct lttng_ctx *ctx; /* contexts for filters. */
+ struct lttng_ust_ctx *ctx; /* contexts for filters. */
struct lttng_counter *error_counter;
size_t error_counter_len;
* Pointer to a URCU-protected pointer owned by an `struct
* lttng_session`or `struct lttng_event_notifier_group`.
*/
- struct lttng_ctx **pctx;
+ struct lttng_ust_ctx **pctx;
};
struct lttng_ust_session_private {
- struct lttng_session *pub; /* Public session interface */
+ struct lttng_ust_session *pub; /* Public session interface */
int been_active; /* Been active ? */
int objd; /* Object associated */
/* New UST 2.8 */
struct lttng_ust_enum_ht enums_ht; /* ht of enumerations */
struct cds_list_head enums_head;
- struct lttng_ctx *ctx; /* contexts for filters. */
+ struct lttng_ust_ctx *ctx; /* contexts for filters. */
};
struct lttng_enum {
const struct lttng_ust_enum_desc *desc;
- struct lttng_session *session;
+ struct lttng_ust_session *session;
struct cds_list_head node; /* Enum list in session */
struct cds_hlist_node hlist; /* Session ht of enums */
uint64_t id; /* Enumeration ID in sessiond */
};
+struct lttng_ust_channel_ops_private {
+ struct lttng_ust_channel_ops *pub; /* Public channels ops interface */
+
+ struct lttng_channel *(*channel_create)(const char *name,
+ void *buf_addr,
+ size_t subbuf_size, size_t num_subbuf,
+ unsigned int switch_timer_interval,
+ unsigned int read_timer_interval,
+ unsigned char *uuid,
+ uint32_t chan_id,
+ const int *stream_fds, int nr_stream_fds,
+ int64_t blocking_timeout);
+ void (*channel_destroy)(struct lttng_channel *chan);
+ /*
+ * packet_avail_size returns the available size in the current
+ * packet. Note that the size returned is only a hint, since it
+ * may change due to concurrent writes.
+ */
+ size_t (*packet_avail_size)(struct lttng_ust_lib_ring_buffer_channel *chan,
+ struct lttng_ust_shm_handle *handle);
+ int (*is_finalized)(struct lttng_ust_lib_ring_buffer_channel *chan);
+ int (*is_disabled)(struct lttng_ust_lib_ring_buffer_channel *chan);
+ int (*flush_buffer)(struct lttng_ust_lib_ring_buffer_channel *chan,
+ struct lttng_ust_shm_handle *handle);
+};
+
static inline
struct lttng_enabler *lttng_event_enabler_as_enabler(
struct lttng_event_enabler *event_enabler)
*/
__attribute__((visibility("hidden")))
void lttng_enabler_link_bytecode(const struct lttng_ust_event_desc *event_desc,
- struct lttng_ctx **ctx,
+ struct lttng_ust_ctx **ctx,
struct cds_list_head *instance_bytecode_runtime_head,
struct cds_list_head *enabler_bytecode_runtime_head);
int lttng_add_perf_counter_to_ctx(uint32_t type,
uint64_t config,
const char *name,
- struct lttng_ctx **ctx);
+ struct lttng_ust_ctx **ctx);
__attribute__((visibility("hidden")))
int lttng_perf_counter_init(void);
int lttng_add_perf_counter_to_ctx(uint32_t type,
uint64_t config,
const char *name,
- struct lttng_ctx **ctx)
+ struct lttng_ust_ctx **ctx)
{
return -ENOSYS;
}
lttng_ust_field_list_get_iter_next(struct lttng_ust_field_list *list);
__attribute__((visibility("hidden")))
-struct lttng_session *lttng_session_create(void);
+struct lttng_ust_session *lttng_session_create(void);
+
+__attribute__((visibility("hidden")))
+int lttng_session_enable(struct lttng_ust_session *session);
__attribute__((visibility("hidden")))
-int lttng_session_enable(struct lttng_session *session);
+int lttng_session_disable(struct lttng_ust_session *session);
__attribute__((visibility("hidden")))
-int lttng_session_disable(struct lttng_session *session);
+int lttng_session_statedump(struct lttng_ust_session *session);
__attribute__((visibility("hidden")))
-int lttng_session_statedump(struct lttng_session *session);
+void lttng_session_destroy(struct lttng_ust_session *session);
+/*
+ * Called with ust lock held.
+ */
__attribute__((visibility("hidden")))
-void lttng_session_destroy(struct lttng_session *session);
+int lttng_session_active(void);
__attribute__((visibility("hidden")))
struct cds_list_head *lttng_get_sessions(void);
void lttng_handle_pending_statedump(void *owner);
__attribute__((visibility("hidden")))
-struct lttng_channel *lttng_channel_create(struct lttng_session *session,
+struct lttng_channel *lttng_channel_create(struct lttng_ust_session *session,
const char *transport_name,
void *buf_addr,
size_t subbuf_size, size_t num_subbuf,
__attribute__((visibility("hidden")))
void lttng_transport_unregister(struct lttng_transport *transport);
+/* This is ABI between liblttng-ust and liblttng-ust-ctl */
+struct lttng_transport *lttng_ust_transport_find(const char *name);
+
+/* This is ABI between liblttng-ust and liblttng-ust-dl */
+void lttng_ust_dl_update(void *ip);
+
__attribute__((visibility("hidden")))
void lttng_probe_provider_unregister_events(struct lttng_ust_probe_desc *desc);
struct cds_list_head *lttng_get_probe_list_head(void);
__attribute__((visibility("hidden")))
-struct lttng_enum *lttng_ust_enum_get_from_desc(struct lttng_session *session,
+struct lttng_enum *lttng_ust_enum_get_from_desc(struct lttng_ust_session *session,
const struct lttng_ust_enum_desc *enum_desc);
__attribute__((visibility("hidden")))