Refactoring: introduce lttng_get_event_ht_from_enabler
[lttng-modules.git] / src / lttng-syscalls.c
index 360f12b4b28a9d203e384230f5e8dd466158a650..82829dcbda09cf97595760d42ac9b653623bc43e 100644 (file)
@@ -536,9 +536,9 @@ int lttng_create_syscall_event_if_missing(const struct trace_syscall_entry *tabl
        struct hlist_head *chan_table, struct lttng_event_recorder_enabler *syscall_event_enabler,
        enum sc_type type)
 {
+       struct lttng_event_ht *events_ht = lttng_get_event_ht_from_enabler(&syscall_event_enabler->parent);
        struct lttng_kernel_syscall_table *syscall_table = get_syscall_table_from_enabler(&syscall_event_enabler->parent);
        struct lttng_kernel_channel_buffer *chan = syscall_event_enabler->chan;
-       struct lttng_kernel_session *session = chan->parent.session;
        unsigned int i;
 
        /* Allocate events for each syscall matching enabler, insert into table */
@@ -546,8 +546,8 @@ int lttng_create_syscall_event_if_missing(const struct trace_syscall_entry *tabl
                const struct lttng_kernel_event_desc *desc = table[i].desc;
                struct lttng_event_recorder_enabler *event_enabler;
                struct lttng_kernel_abi_event ev;
-               struct lttng_kernel_event_recorder_private *event_recorder_priv;
                struct lttng_kernel_event_recorder *event_recorder;
+               struct lttng_kernel_event_common_private *event_priv;
                struct hlist_head *head;
                bool found = false;
 
@@ -561,12 +561,10 @@ int lttng_create_syscall_event_if_missing(const struct trace_syscall_entry *tabl
                /*
                 * Check if already created.
                 */
-               head = utils_borrow_hash_table_bucket(
-                       session->priv->events_ht.table, LTTNG_EVENT_HT_SIZE,
-                       desc->event_name);
-               lttng_hlist_for_each_entry(event_recorder_priv, head, hlist) {
-                       if (event_recorder_priv->parent.desc == desc
-                               && get_syscall_table_from_event(event_recorder_priv->parent.pub) == syscall_table)
+               head = utils_borrow_hash_table_bucket(events_ht->table, LTTNG_EVENT_HT_SIZE, desc->event_name);
+               lttng_hlist_for_each_entry(event_priv, head, hlist_node) {
+                       if (event_priv->desc == desc
+                               && get_syscall_table_from_event(event_priv->pub) == syscall_table)
                                found = true;
                }
                if (found)
@@ -832,7 +830,8 @@ int create_unknown_event_notifier(
                struct lttng_event_notifier_enabler *event_notifier_enabler,
                enum sc_type type)
 {
-       struct lttng_kernel_event_notifier_private *event_notifier_priv;
+       struct lttng_event_ht *events_ht = lttng_get_event_ht_from_enabler(&event_notifier_enabler->parent);
+       struct lttng_kernel_event_common_private *event_priv;
        struct lttng_kernel_event_notifier *event_notifier;
        const struct lttng_kernel_event_desc *desc;
        struct lttng_event_notifier_group *group = event_notifier_enabler->group;
@@ -881,11 +880,10 @@ int create_unknown_event_notifier(
        /*
         * Check if already created.
         */
-       head = utils_borrow_hash_table_bucket(group->events_ht.table,
-               LTTNG_EVENT_HT_SIZE, desc->event_name);
-       lttng_hlist_for_each_entry(event_notifier_priv, head, hlist) {
-               if (event_notifier_priv->parent.desc == desc &&
-                               event_notifier_priv->parent.user_token == base_enabler->user_token)
+       head = utils_borrow_hash_table_bucket(events_ht->table, LTTNG_EVENT_HT_SIZE, desc->event_name);
+       lttng_hlist_for_each_entry(event_priv, head, hlist_node) {
+               if (event_priv->desc == desc &&
+                               event_priv->user_token == base_enabler->user_token)
                        found = true;
        }
        if (found)
@@ -926,6 +924,7 @@ static int create_matching_event_notifiers(
                const struct trace_syscall_entry *table,
                size_t table_len, enum sc_type type)
 {
+       struct lttng_event_ht *events_ht = lttng_get_event_ht_from_enabler(&syscall_event_notifier_enabler->parent);
        struct lttng_event_notifier_group *group = syscall_event_notifier_enabler->group;
        const struct lttng_kernel_event_desc *desc;
        uint64_t user_token = syscall_event_notifier_enabler->parent.user_token;
@@ -936,7 +935,7 @@ static int create_matching_event_notifiers(
        /* iterate over all syscall and create event_notifier that match */
        for (i = 0; i < table_len; i++) {
                struct lttng_event_notifier_enabler *event_notifier_enabler;
-               struct lttng_kernel_event_notifier_private *event_notifier_priv;
+               struct lttng_kernel_event_common_private *event_priv;
                struct lttng_kernel_event_notifier *event_notifier;
                struct lttng_kernel_abi_event_notifier event_notifier_param;
                struct hlist_head *head;
@@ -955,11 +954,10 @@ static int create_matching_event_notifiers(
                /*
                 * Check if already created.
                 */
-               head = utils_borrow_hash_table_bucket(group->events_ht.table,
-                       LTTNG_EVENT_HT_SIZE, desc->event_name);
-               lttng_hlist_for_each_entry(event_notifier_priv, head, hlist) {
-                       if (event_notifier_priv->parent.desc == desc
-                               && event_notifier_priv->parent.user_token == syscall_event_notifier_enabler->parent.user_token)
+               head = utils_borrow_hash_table_bucket(events_ht->table, LTTNG_EVENT_HT_SIZE, desc->event_name);
+               lttng_hlist_for_each_entry(event_priv, head, hlist_node) {
+                       if (event_priv->desc == desc
+                               && event_priv->user_token == syscall_event_notifier_enabler->parent.user_token)
                                found = 1;
                }
                if (found)
This page took 0.027168 seconds and 4 git commands to generate.