callstack context: use delimiter when stack is incomplete
[lttng-modules.git] / lttng-tracker-pid.c
index f8f0a51dcc1e738727286b69e28f343ac43476e1..d74d8c92ad45480f3ab10b94ce8eba012c68c416 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * lttng-tracker-pid.c
  *
- * LTTng Process ID trackering.
+ * LTTng Process ID tracking.
  *
  * Copyright (C) 2014 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  *
 #include <linux/err.h>
 #include <linux/seq_file.h>
 #include <linux/stringify.h>
-#include <linux/rculist.h>
 #include <linux/hash.h>
 #include <linux/rcupdate.h>
 
-#include "wrapper/tracepoint.h"
-#include "lttng-events.h"
+#include <wrapper/tracepoint.h>
+#include <wrapper/rcu.h>
+#include <wrapper/list.h>
+#include <lttng-events.h>
 
 /*
  * Hash table is allocated and freed when there are no possible
  * sessions_mutex across calls to create, destroy, add, and del
  * functions of this API.
  */
-struct lttng_pid_hash_node {
-       struct hlist_node hlist;
-       int pid;
-};
+int lttng_pid_tracker_get_node_pid(const struct lttng_pid_hash_node *node)
+{
+       return node->pid;
+}
 
 /*
  * Lookup performed from RCU read-side critical section (RCU sched),
@@ -59,7 +60,7 @@ bool lttng_pid_tracker_lookup(struct lttng_pid_tracker *lpf, int pid)
        uint32_t hash = hash_32(pid, 32);
 
        head = &lpf->pid_hash[hash & (LTTNG_PID_TABLE_SIZE - 1)];
-       hlist_for_each_entry_rcu_notrace(e, head, hlist) {
+       lttng_hlist_for_each_entry_rcu(e, head, hlist) {
                if (pid == e->pid)
                        return 1;       /* Found */
        }
@@ -77,7 +78,7 @@ int lttng_pid_tracker_add(struct lttng_pid_tracker *lpf, int pid)
        uint32_t hash = hash_32(pid, 32);
 
        head = &lpf->pid_hash[hash & (LTTNG_PID_TABLE_SIZE - 1)];
-       hlist_for_each_entry(e, head, hlist) {
+       lttng_hlist_for_each_entry(e, head, hlist) {
                if (pid == e->pid)
                        return -EEXIST;
        }
@@ -127,7 +128,7 @@ int lttng_pid_tracker_del(struct lttng_pid_tracker *lpf, int pid)
         * No need of _safe iteration, because we stop traversal as soon
         * as we remove the entry.
         */
-       hlist_for_each_entry(e, head, hlist) {
+       lttng_hlist_for_each_entry(e, head, hlist) {
                if (pid == e->pid) {
                        pid_tracker_del_node_rcu(e);
                        return 0;
@@ -150,7 +151,7 @@ void lttng_pid_tracker_destroy(struct lttng_pid_tracker *lpf)
                struct lttng_pid_hash_node *e;
                struct hlist_node *tmp;
 
-               hlist_for_each_entry_safe(e, tmp, head, hlist)
+               lttng_hlist_for_each_entry_safe(e, tmp, head, hlist)
                        pid_tracker_del_node(e);
        }
        kfree(lpf);
This page took 0.024759 seconds and 4 git commands to generate.