-struct ust_app_list {
- /*
- * This lock protects any read/write access to the list and count (which is
- * basically the list size). All public functions in traceable-app.c
- * acquire this lock and release it before returning. If none of those
- * functions are used, the lock MUST be acquired in order to iterate or/and
- * do any actions on that list.
- */
- pthread_mutex_t lock;
-
- /*
- * Number of element in the list. The session list lock MUST be acquired if
- * this counter is used when iterating over the session list.
- */
- unsigned int count;
-
- /* Linked list head */
- struct cds_list_head head;
+struct cds_lfht *ust_app_ht;
+
+struct cds_lfht *ust_app_sock_key_map;
+
+struct ust_app_key {
+ pid_t pid;
+ int sock;
+ struct cds_lfht_node node;
+};
+
+struct ust_app_event {
+ int enabled;
+ int handle;
+ struct lttng_ust_object_data *obj;
+ char name[LTTNG_UST_SYM_NAME_LEN];
+ struct cds_lfht *ctx;
+ struct cds_lfht_node node;
+};
+
+struct ust_app_channel {
+ int enabled;
+ int handle;
+ char name[LTTNG_UST_SYM_NAME_LEN];
+ struct lttng_ust_channel attr;
+ struct lttng_ust_object_data *obj;
+ struct cds_lfht *streams;
+ struct cds_lfht *ctx;
+ struct cds_lfht *events;
+ struct cds_lfht_node node;
+};
+
+struct ust_app_session {
+ int enabled;
+ int handle; /* Used has unique identifier */
+ unsigned int uid;
+ struct ltt_ust_metadata *metadata;
+ struct lttng_ust_object_data *obj;
+ struct cds_lfht *channels; /* Registered channels */
+ struct cds_lfht_node node;