#define _LGPL_SOURCE
#include <inttypes.h>
-#include <common/common.h>
-#include <common/hashtable/utils.h>
+#include <common/common.hpp>
+#include <common/hashtable/utils.hpp>
-#include "buffer-registry.h"
-#include "fd-limit.h"
-#include "ust-consumer.h"
-#include "lttng-ust-ctl.h"
-#include "lttng-ust-error.h"
-#include "utils.h"
+#include "buffer-registry.hpp"
+#include "fd-limit.hpp"
+#include "ust-consumer.hpp"
+#include "lttng-ust-ctl.hpp"
+#include "lttng-ust-error.hpp"
+#include "utils.hpp"
/*
* Set in main.c during initialization process of the daemon. This contains
LTTNG_ASSERT(regp);
- reg = (buffer_reg_uid *) zmalloc(sizeof(*reg));
+ reg = zmalloc<buffer_reg_uid>();
if (!reg) {
PERROR("zmalloc buffer registry uid");
ret = -ENOMEM;
goto error;
}
- reg->registry = (buffer_reg_session *) zmalloc(sizeof(struct buffer_reg_session));
+ reg->registry = zmalloc<buffer_reg_session>();
if (!reg->registry) {
PERROR("zmalloc buffer registry uid session");
ret = -ENOMEM;
struct buffer_reg_uid *reg = NULL, key;
struct lttng_ht *ht = buffer_registry_uid;
+ ASSERT_RCU_READ_LOCKED();
+
/* Setup key we are looking for. */
key.session_id = session_id;
key.bits_per_long = bits_per_long;
if (!node) {
goto end;
}
- reg = caa_container_of(node, struct buffer_reg_uid, node);
+ reg = lttng::utils::container_of(node, &buffer_reg_uid::node);
end:
return reg;
LTTNG_ASSERT(regp);
- reg = (buffer_reg_pid *) zmalloc(sizeof(*reg));
+ reg = zmalloc<buffer_reg_pid>();
if (!reg) {
PERROR("zmalloc buffer registry pid");
ret = -ENOMEM;
goto error;
}
- reg->registry = (buffer_reg_session *) zmalloc(sizeof(struct buffer_reg_session));
+ reg->registry = zmalloc<buffer_reg_session>();
if (!reg->registry) {
PERROR("zmalloc buffer registry pid session");
ret = -ENOMEM;
if (!node) {
goto end;
}
- reg = caa_container_of(node, struct buffer_reg_pid, node);
+ reg = lttng::utils::container_of(node, &buffer_reg_pid::node);
end:
return reg;
DBG3("Buffer registry channel create with key: %" PRIu64, key);
- reg = (buffer_reg_channel *) zmalloc(sizeof(*reg));
+ reg = zmalloc<buffer_reg_channel>();
if (!reg) {
PERROR("zmalloc buffer registry channel");
return -ENOMEM;
DBG3("Buffer registry creating stream");
- reg = (buffer_reg_stream *) zmalloc(sizeof(*reg));
+ reg = zmalloc<buffer_reg_stream>();
if (!reg) {
PERROR("zmalloc buffer registry stream");
return -ENOMEM;
if (!node) {
goto end;
}
- chan = caa_container_of(node, struct buffer_reg_channel, node);
+ chan = lttng::utils::container_of(node, &buffer_reg_channel::node);
end:
return chan;
switch (domain) {
case LTTNG_DOMAIN_UST:
ust_registry_session_destroy(regp->reg.ust);
- free(regp->reg.ust);
break;
default:
abort();
static void rcu_free_buffer_reg_uid(struct rcu_head *head)
{
struct lttng_ht_node_u64 *node =
- caa_container_of(head, struct lttng_ht_node_u64, head);
+ lttng::utils::container_of(head, <tng_ht_node_u64::head);
struct buffer_reg_uid *reg =
- caa_container_of(node, struct buffer_reg_uid, node);
+ lttng::utils::container_of(node, &buffer_reg_uid::node);
buffer_reg_session_destroy(reg->registry, reg->domain);
free(reg);
static void rcu_free_buffer_reg_pid(struct rcu_head *head)
{
struct lttng_ht_node_u64 *node =
- caa_container_of(head, struct lttng_ht_node_u64, head);
+ lttng::utils::container_of(head, <tng_ht_node_u64::head);
struct buffer_reg_pid *reg =
- caa_container_of(node, struct buffer_reg_pid, node);
+ lttng::utils::container_of(node, &buffer_reg_pid::node);
buffer_reg_session_destroy(reg->registry, LTTNG_DOMAIN_UST);
free(reg);
switch (regp->domain) {
case LTTNG_DOMAIN_UST:
- if (regp->registry->reg.ust->metadata_key) {
+ if (regp->registry->reg.ust->_metadata_key) {
/* Return value does not matter. This call will print errors. */
(void) consumer_close_metadata(socket,
- regp->registry->reg.ust->metadata_key);
+ regp->registry->reg.ust->_metadata_key);
}
break;
default: