Move hash tables to internal header
[lttng-ust.git] / liblttng-ust / ust-events-internal.h
index f351e954767f0fe0e8c19a6f92fa82e15a507383..15025b0956e3bcff31ed73ccca026d2f1cb1a515 100644 (file)
@@ -164,6 +164,26 @@ struct lttng_counter_dimension {
        uint8_t has_overflow;
 };
 
+struct lttng_counter_ops {
+       struct lib_counter *(*counter_create)(size_t nr_dimensions,
+                       const struct lttng_counter_dimension *dimensions,
+                       int64_t global_sum_step,
+                       int global_counter_fd,
+                       int nr_counter_cpu_fds,
+                       const int *counter_cpu_fds,
+                       bool is_daemon);
+       void (*counter_destroy)(struct lib_counter *counter);
+       int (*counter_add)(struct lib_counter *counter,
+                       const size_t *dimension_indexes, int64_t v);
+       int (*counter_read)(struct lib_counter *counter,
+                       const size_t *dimension_indexes, int cpu,
+                       int64_t *value, bool *overflow, bool *underflow);
+       int (*counter_aggregate)(struct lib_counter *counter,
+                       const size_t *dimension_indexes, int64_t *value,
+                       bool *overflow, bool *underflow);
+       int (*counter_clear)(struct lib_counter *counter, const size_t *dimension_indexes);
+};
+
 struct lttng_counter {
        int objd;
        struct lttng_event_notifier_group *event_notifier_group;    /* owner */
@@ -172,6 +192,26 @@ struct lttng_counter {
        struct lttng_counter_ops *ops;
 };
 
+#define LTTNG_UST_EVENT_HT_BITS                12
+#define LTTNG_UST_EVENT_HT_SIZE                (1U << LTTNG_UST_EVENT_HT_BITS)
+
+struct lttng_ust_event_ht {
+       struct cds_hlist_head table[LTTNG_UST_EVENT_HT_SIZE];
+};
+
+#define LTTNG_UST_EVENT_NOTIFIER_HT_BITS               12
+#define LTTNG_UST_EVENT_NOTIFIER_HT_SIZE               (1U << LTTNG_UST_EVENT_NOTIFIER_HT_BITS)
+struct lttng_ust_event_notifier_ht {
+       struct cds_hlist_head table[LTTNG_UST_EVENT_NOTIFIER_HT_SIZE];
+};
+
+#define LTTNG_UST_ENUM_HT_BITS         12
+#define LTTNG_UST_ENUM_HT_SIZE         (1U << LTTNG_UST_ENUM_HT_BITS)
+
+struct lttng_ust_enum_ht {
+       struct cds_hlist_head table[LTTNG_UST_ENUM_HT_SIZE];
+};
+
 struct lttng_event_notifier_group {
        int objd;
        void *owner;
@@ -189,7 +229,7 @@ struct lttng_event_notifier_group {
 struct lttng_transport {
        char *name;
        struct cds_list_head node;
-       struct lttng_channel_ops ops;
+       struct lttng_ust_channel_ops ops;
        const struct lttng_ust_lib_ring_buffer_config *client_config;
 };
 
@@ -266,6 +306,14 @@ struct lttng_ust_session_private {
        struct lttng_ctx *ctx;                  /* contexts for filters. */
 };
 
+struct lttng_enum {
+       const struct lttng_ust_enum_desc *desc;
+       struct lttng_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 */
+};
+
 static inline
 struct lttng_enabler *lttng_event_enabler_as_enabler(
                struct lttng_event_enabler *event_enabler)
This page took 0.024464 seconds and 4 git commands to generate.