+struct ust_registry_map_key_ht_entry {
+ struct lttng_map_key *key;
+ struct lttng_ht_node_u64 node;
+};
+
+struct ust_registry_map_index_ht_entry {
+ uint64_t index;
+ char *formated_key;
+ struct lttng_ht_node_str node;
+};
+
+struct ust_registry_map {
+ uint64_t key;
+ /* Id set when replying to a register map. */
+ uint32_t map_id;
+
+ /* Indicates if this map registry has already been registered. */
+ unsigned int register_done;
+
+ /*
+ * Hash table containing events sent by the UST tracer. MUST be accessed
+ * with a RCU read side lock acquired.
+ */
+ struct lttng_ht *events_ht;
+ /* Next event ID available for a newly registered event. */
+ uint32_t next_event_id;
+ /* Once this value reaches UINT32_MAX, no more id can be allocated. */
+ uint32_t used_event_id;
+
+ /* tracer_token -> ust_registry_map_key_ht_entry */
+ struct lttng_ht *tracer_token_to_map_key_ht;
+ /* format key -> ust_registry_map_index_ht_entry */
+ struct lttng_ht *key_string_to_bucket_index_ht;
+
+ struct lttng_ht_node_u64 node;
+ /* For delayed reclaim */
+ struct rcu_head rcu_head;
+};
+