#include <common/tracker.hpp>
#include <lttng/lttng-error.h>
+struct process_attr_tracker {
+ enum lttng_tracking_policy policy;
+ struct cds_lfht *inclusion_set_ht;
+};
+
+namespace {
struct process_attr_tracker_value_node {
struct process_attr_value *value;
struct cds_lfht_node inclusion_set_ht_node;
struct rcu_head rcu_head;
};
-
-struct process_attr_tracker {
- enum lttng_tracking_policy policy;
- struct cds_lfht *inclusion_set_ht;
-};
+} /* namespace */
static void process_attr_tracker_value_node_rcu_free(struct rcu_head *rcu_head)
{
- struct process_attr_tracker_value_node *node =
- container_of(rcu_head, typeof(*node), rcu_head);
+ struct process_attr_tracker_value_node *node = lttng::utils::container_of(
+ rcu_head, &process_attr_tracker_value_node::rcu_head);
free(node);
}
{
struct process_attr_tracker *tracker;
- tracker = (process_attr_tracker *) zmalloc(sizeof(*tracker));
+ tracker = zmalloc<process_attr_tracker>();
if (!tracker) {
return NULL;
}
node = cds_lfht_iter_get_node(&iter);
rcu_read_unlock();
- return node ? container_of(node, struct process_attr_tracker_value_node,
- inclusion_set_ht_node) :
- NULL;
+ return node ? lttng::utils::container_of(node,
+ &process_attr_tracker_value_node::inclusion_set_ht_node) :
+ NULL;
}
/* Protected by session mutex held by caller. */
goto end;
}
- value_node = (process_attr_tracker_value_node *) zmalloc(sizeof(*value_node));
+ value_node = zmalloc<process_attr_tracker_value_node>();
if (!value_node) {
status = PROCESS_ATTR_TRACKER_STATUS_ERROR;
goto end;