/* lttng-ust supported version. */
#define LTTNG_UST_COMM_MAJOR 2 /* comm protocol major version */
-#define UST_APP_MAJOR_VERSION 2 /* UST version supported */
+#define UST_APP_MAJOR_VERSION 3 /* Internal UST version supported */
#define UST_APP_EVENT_LIST_SIZE 32
+struct lttng_filter_bytecode;
+struct lttng_ust_filter_bytecode;
+
extern int ust_consumerd64_fd, ust_consumerd32_fd;
+struct ust_app_ht_key {
+ const char *name;
+ const struct lttng_ust_filter_bytecode *filter;
+ enum lttng_ust_loglevel_type loglevel;
+};
+
/*
* Application registration data structure.
*/
struct lttng_ust_object_data *obj;
struct lttng_ust_event attr;
char name[LTTNG_UST_SYM_NAME_LEN];
- struct lttng_ht *ctx;
struct lttng_ht_node_str node;
+ struct lttng_ust_filter_bytecode *filter;
};
struct ust_app_channel {
/* UID/GID of the user owning the session */
uid_t uid;
gid_t gid;
+ struct cds_list_head teardown_node;
};
/*
struct lttng_ht *sessions;
struct lttng_ht_node_ulong pid_n;
struct lttng_ht_node_ulong sock_n;
+ /*
+ * This is a list of ust app session that, once the app is going into
+ * teardown mode, in the RCU call, each node in this list is removed and
+ * deleted.
+ *
+ * Element of the list are added when an application unregisters after each
+ * ht_del of ust_app_session associated to this app. This list is NOT used
+ * when a session is destroyed.
+ */
+ struct cds_list_head teardown_head;
};
#ifdef HAVE_LIBLTTNG_UST_CTL
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(struct ltt_ust_session *usess, struct ust_app *app);
int ust_app_destroy_trace_all(struct ltt_ust_session *usess);
int ust_app_list_events(struct lttng_event **events);
int ust_app_list_event_fields(struct lttng_event_field **fields);
struct ltt_ust_channel *uchan);
int ust_app_disable_event_glb(struct ltt_ust_session *usess,
struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent);
-int ust_app_add_ctx_event_glb(struct ltt_ust_session *usess,
- struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent,
- struct ltt_ust_context *uctx);
int ust_app_add_ctx_channel_glb(struct ltt_ust_session *usess,
struct ltt_ust_channel *uchan, struct ltt_ust_context *uctx);
void ust_app_global_update(struct ltt_ust_session *usess, int sock);
static inline
int ust_app_list_events(struct lttng_event **events)
{
- return 0;
+ return -ENOSYS;
+}
+static inline
+int ust_app_list_event_fields(struct lttng_event_field **fields)
+{
+ return -ENOSYS;
}
static inline
int ust_app_register(struct ust_register_msg *msg, int sock)
return 0;
}
static inline
-int ust_app_add_ctx_event_glb(struct ltt_ust_session *usess,
- struct ltt_ust_channel *uchan, struct ltt_ust_event *uevent,
- struct ltt_ust_context *uctx)
-{
- return 0;
-}
-static inline
int ust_app_add_ctx_channel_glb(struct ltt_ust_session *usess,
struct ltt_ust_channel *uchan, struct ltt_ust_context *uctx)
{