X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fust-app.h;h=fd5e93fe9e4cb80224fd9668eade6cb845fa8d87;hb=9d5b2fc0e9759ad89c5f0551dfe64fabd07afbfb;hp=67088a7c9eaeb17643bbddce6e5787680ee8ae9a;hpb=7972aab22f74b18faa168c0482216a3dd711a075;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/ust-app.h b/src/bin/lttng-sessiond/ust-app.h index 67088a7c9..fd5e93fe9 100644 --- a/src/bin/lttng-sessiond/ust-app.h +++ b/src/bin/lttng-sessiond/ust-app.h @@ -102,6 +102,7 @@ struct ust_app_ctx { struct lttng_ust_context ctx; struct lttng_ust_object_data *obj; struct lttng_ht_node_ulong node; + struct cds_list_head list; }; struct ust_app_event { @@ -141,8 +142,17 @@ struct ust_app_channel { struct ust_app_stream_list streams; /* Session pointer that owns this object. */ struct ust_app_session *session; + /* + * Contexts are kept in a hash table for fast lookup and in an ordered list + * so we are able to enable them on the tracer side in the same order the + * user added them. + */ struct lttng_ht *ctx; + struct cds_list_head ctx_list; + struct lttng_ht *events; + uint64_t tracefile_size; + uint64_t tracefile_count; /* * Node indexed by channel name in the channels' hash table of a session. */ @@ -152,6 +162,8 @@ struct ust_app_channel { * ust_objd hash table in the ust_app object. */ struct lttng_ht_node_ulong ust_objd_node; + /* For delayed reclaim */ + struct rcu_head rcu_head; }; struct ust_app_session { @@ -171,10 +183,10 @@ struct ust_app_session { * Tracing session ID. Multiple ust app session can have the same tracing * session id making this value NOT unique to the object. */ - int tracing_id; + uint64_t tracing_id; uint64_t id; /* Unique session identifier */ struct lttng_ht *channels; /* Registered channels */ - struct lttng_ht_node_ulong node; + struct lttng_ht_node_u64 node; char path[PATH_MAX]; /* UID/GID of the application owning the session */ uid_t uid; @@ -191,6 +203,10 @@ struct ust_app_session { enum lttng_buffer_type buffer_type; /* ABI of the session. Same value as the application. */ uint32_t bits_per_long; + /* For delayed reclaim */ + struct rcu_head rcu_head; + /* If the channel's streams have to be outputed or not. */ + unsigned int output_traces; }; /* @@ -255,8 +271,6 @@ int ust_app_register_done(int sock) int ust_app_version(struct ust_app *app); void ust_app_unregister(int sock); unsigned long ust_app_list_count(void); -int ust_app_start_trace(struct ltt_ust_session *usess, struct ust_app *app); -int ust_app_stop_trace(struct ltt_ust_session *usess, struct ust_app *app); int ust_app_start_trace_all(struct ltt_ust_session *usess); int ust_app_stop_trace_all(struct ltt_ust_session *usess); int ust_app_destroy_trace_all(struct ltt_ust_session *usess); @@ -299,6 +313,18 @@ int ust_app_recv_notify(int sock); void ust_app_add(struct ust_app *app); struct ust_app *ust_app_create(struct ust_register_msg *msg, int sock); void ust_app_notify_sock_unregister(int sock); +ssize_t ust_app_push_metadata(struct ust_registry_session *registry, + struct consumer_socket *socket, int send_zero_data); +void ust_app_destroy(struct ust_app *app); +int ust_app_snapshot_record(struct ltt_ust_session *usess, + struct snapshot_output *output, int wait, unsigned int nb_streams); +unsigned int ust_app_get_nb_stream(struct ltt_ust_session *usess); + +static inline +int ust_app_supported(void) +{ + return 1; +} #else /* HAVE_LIBLTTNG_UST_CTL */ @@ -485,6 +511,34 @@ static inline void ust_app_notify_sock_unregister(int sock) { } +static inline +ssize_t ust_app_push_metadata(struct ust_registry_session *registry, + struct consumer_socket *socket, int send_zero_data) +{ + return 0; +} +static inline +void ust_app_destroy(struct ust_app *app) +{ + return; +} +static inline +int ust_app_snapshot_record(struct ltt_ust_session *usess, + struct snapshot_output *output, int wait, unsigned int nb_stream) +{ + return 0; +} +static inline +unsigned int ust_app_get_nb_stream(struct ltt_ust_session *usess) +{ + return 0; +} + +static inline +int ust_app_supported(void) +{ + return 0; +} #endif /* HAVE_LIBLTTNG_UST_CTL */