/*
* Agent application context representation.
*/
+namespace {
struct agent_app_ctx {
char *provider_name;
char *ctx_name;
/* For call_rcu teardown. */
struct rcu_head rcu_node;
};
+} /* namespace */
/*
* Human readable agent return code.
static void destroy_event_agent_rcu(struct rcu_head *head)
{
struct lttng_ht_node_str *node =
- caa_container_of(head, struct lttng_ht_node_str, head);
+ lttng::utils::container_of(head, <tng_ht_node_str::head);
struct agent_event *event =
- caa_container_of(node, struct agent_event, node);
+ lttng::utils::container_of(node, &agent_event::node);
agent_destroy_event(event);
}
static void destroy_app_agent_rcu(struct rcu_head *head)
{
struct lttng_ht_node_ulong *node =
- caa_container_of(head, struct lttng_ht_node_ulong, head);
+ lttng::utils::container_of(head, <tng_ht_node_ulong::head);
struct agent_app *app =
- caa_container_of(node, struct agent_app, node);
+ lttng::utils::container_of(node, &agent_app::node);
free(app);
}
if (node == NULL) {
goto error;
}
- app = caa_container_of(node, struct agent_app, node);
+ app = lttng::utils::container_of(node, &agent_app::node);
DBG3("Agent app pid %d found by sock %d.", app->pid, sock);
return app;
}
DBG3("Agent event found %s.", name);
- return caa_container_of(node, struct agent_event, node);
+ return lttng::utils::container_of(node, &agent_event::node);
error:
DBG3("Agent event NOT found %s.", name);
void destroy_app_ctx_rcu(struct rcu_head *head)
{
struct agent_app_ctx *ctx =
- caa_container_of(head, struct agent_app_ctx, rcu_node);
+ lttng::utils::container_of(head, &agent_app_ctx::rcu_node);
destroy_app_ctx(ctx);
}
* value is not important since we have to continue anyway
* destroying the object.
*/
- event = caa_container_of(node, struct agent_event, node);
+ event = lttng::utils::container_of(node, &agent_event::node);
(void) agent_disable_event(event, agt->domain);
ret = lttng_ht_del(agt->events, &iter);
the_agent_apps_ht_by_sock->ht, &iter.iter, node, node) {
struct agent_app *app;
- app = caa_container_of(node, struct agent_app, node);
+ app = lttng::utils::container_of(node, &agent_app::node);
agent_destroy_app_by_sock(app->sock->fd);
}
rcu_read_unlock();
cds_lfht_for_each_entry(the_trigger_agents_ht_by_domain->ht,
&iter.iter, node, node) {
struct agent *agent =
- caa_container_of(node, struct agent, node);
+ lttng::utils::container_of(node, &agent::node);
const int ret = lttng_ht_del(
the_trigger_agents_ht_by_domain, &iter);
goto end;
}
- agt = caa_container_of(node, struct agent, node);
+ agt = lttng::utils::container_of(node, &agent::node);
end:
return agt;