projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
common: replace container_of with a C++ safe implementation
[lttng-tools.git]
/
src
/
bin
/
lttng-sessiond
/
notification-thread-events.cpp
diff --git
a/src/bin/lttng-sessiond/notification-thread-events.cpp
b/src/bin/lttng-sessiond/notification-thread-events.cpp
index 95932b972e424273ccae84b56fea671af751262e..ef066f49bf6156d390f0befe9e83b70e47003648 100644
(file)
--- a/
src/bin/lttng-sessiond/notification-thread-events.cpp
+++ b/
src/bin/lttng-sessiond/notification-thread-events.cpp
@@
-60,12
+60,6
@@
enum lttng_object_type {
LTTNG_OBJECT_TYPE_SESSION,
};
LTTNG_OBJECT_TYPE_SESSION,
};
-struct lttng_trigger_list_element {
- /* No ownership of the trigger object is assumed. */
- struct lttng_trigger *trigger;
- struct cds_list_head node;
-};
-
struct lttng_channel_trigger_list {
struct channel_key channel_key;
/* List of struct lttng_trigger_list_element. */
struct lttng_channel_trigger_list {
struct channel_key channel_key;
/* List of struct lttng_trigger_list_element. */
@@
-117,6
+111,13
@@
struct lttng_session_trigger_list {
struct rcu_head rcu_node;
};
struct rcu_head rcu_node;
};
+namespace {
+struct lttng_trigger_list_element {
+ /* No ownership of the trigger object is assumed. */
+ struct lttng_trigger *trigger;
+ struct cds_list_head node;
+};
+
struct lttng_trigger_ht_element {
struct lttng_trigger *trigger;
struct cds_lfht_node node;
struct lttng_trigger_ht_element {
struct lttng_trigger *trigger;
struct cds_lfht_node node;
@@
-140,6
+141,7
@@
struct channel_state_sample {
/* call_rcu delayed reclaim. */
struct rcu_head rcu_node;
};
/* call_rcu delayed reclaim. */
struct rcu_head rcu_node;
};
+} /* namespace */
static unsigned long hash_channel_key(struct channel_key *key);
static int evaluate_buffer_condition(const struct lttng_condition *condition,
static unsigned long hash_channel_key(struct channel_key *key);
static int evaluate_buffer_condition(const struct lttng_condition *condition,
@@
-223,8
+225,8
@@
int match_client_id(struct cds_lfht_node *node, const void *key)
{
/* This double-cast is intended to supress pointer-to-cast warning. */
const notification_client_id id = *((notification_client_id *) key);
{
/* This double-cast is intended to supress pointer-to-cast warning. */
const notification_client_id id = *((notification_client_id *) key);
- const struct notification_client *client =
caa_
container_of(
- node,
struct notification_client,
client_id_ht_node);
+ const struct notification_client *client =
lttng::utils::
container_of(
+ node,
¬ification_client::
client_id_ht_node);
return client->id == id;
}
return client->id == id;
}
@@
-323,8
+325,8
@@
static
int match_session(struct cds_lfht_node *node, const void *key)
{
const char *name = (const char *) key;
int match_session(struct cds_lfht_node *node, const void *key)
{
const char *name = (const char *) key;
- struct session_info *session_info =
caa_
container_of(
- node,
struct session_info,
sessions_ht_node);
+ struct session_info *session_info =
lttng::utils::
container_of(
+ node,
&session_info::
sessions_ht_node);
return !strcmp(session_info->name, name);
}
return !strcmp(session_info->name, name);
}
@@
-491,7
+493,7
@@
enum lttng_object_type get_condition_binding_object(
static
void free_channel_info_rcu(struct rcu_head *node)
{
static
void free_channel_info_rcu(struct rcu_head *node)
{
- free(
caa_container_of(node, struct channel_info,
rcu_node));
+ free(
lttng::utils::container_of(node, &channel_info::
rcu_node));
}
static
}
static
@@
-515,7
+517,7
@@
void channel_info_destroy(struct channel_info *channel_info)
static
void free_session_info_rcu(struct rcu_head *node)
{
static
void free_session_info_rcu(struct rcu_head *node)
{
- free(
caa_container_of(node, struct session_info,
rcu_node));
+ free(
lttng::utils::container_of(node, &session_info::
rcu_node));
}
/* Don't call directly, use the ref-counting mechanism. */
}
/* Don't call directly, use the ref-counting mechanism. */
@@
-670,7
+672,7
@@
static
void notification_client_list_release(struct urcu_ref *list_ref)
{
struct notification_client_list *list =
void notification_client_list_release(struct urcu_ref *list_ref)
{
struct notification_client_list *list =
-
container_of(list_ref, typeof(*list),
ref);
+
lttng::utils::container_of(list_ref, ¬ification_client_list::
ref);
struct notification_client_list_element *client_list_element, *tmp;
lttng_condition_put(list->condition);
struct notification_client_list_element *client_list_element, *tmp;
lttng_condition_put(list->condition);
@@
-814,8
+816,8
@@
struct notification_client_list *get_client_list_from_condition(
&iter);
node = cds_lfht_iter_get_node(&iter);
if (node) {
&iter);
node = cds_lfht_iter_get_node(&iter);
if (node) {
- list =
container_of(node, struct notification_client_list
,
- notification_trigger_clients_ht_node);
+ list =
lttng::utils::container_of(node
,
+
¬ification_client_list::
notification_trigger_clients_ht_node);
list = notification_client_list_get(list) ? list : NULL;
}
list = notification_client_list_get(list) ? list : NULL;
}
@@
-1282,7
+1284,7
@@
end:
static
void free_notification_client_rcu(struct rcu_head *node)
{
static
void free_notification_client_rcu(struct rcu_head *node)
{
- free(
caa_container_of(node, struct notification_client,
rcu_node));
+ free(
lttng::utils::container_of(node, ¬ification_client::
rcu_node));
}
static
}
static
@@
-4205,9
+4207,8
@@
bool evaluate_buffer_usage_condition(const struct lttng_condition *condition,
bool result = false;
uint64_t threshold;
enum lttng_condition_type condition_type;
bool result = false;
uint64_t threshold;
enum lttng_condition_type condition_type;
- const struct lttng_condition_buffer_usage *use_condition = container_of(
- condition, struct lttng_condition_buffer_usage,
- parent);
+ const struct lttng_condition_buffer_usage *use_condition = lttng::utils::container_of(
+ condition, <tng_condition_buffer_usage::parent);
if (use_condition->threshold_bytes.set) {
threshold = use_condition->threshold_bytes.value;
if (use_condition->threshold_bytes.set) {
threshold = use_condition->threshold_bytes.value;
@@
-4263,9
+4264,8
@@
bool evaluate_session_consumed_size_condition(
{
uint64_t threshold;
const struct lttng_condition_session_consumed_size *size_condition =
{
uint64_t threshold;
const struct lttng_condition_session_consumed_size *size_condition =
- container_of(condition,
- struct lttng_condition_session_consumed_size,
- parent);
+ lttng::utils::container_of(condition,
+ <tng_condition_session_consumed_size::parent);
threshold = size_condition->consumed_threshold_bytes.value;
DBG("Session consumed size condition being evaluated: threshold = %" PRIu64 ", current size = %" PRIu64,
threshold = size_condition->consumed_threshold_bytes.value;
DBG("Session consumed size condition being evaluated: threshold = %" PRIu64 ", current size = %" PRIu64,
@@
-4748,10
+4748,9
@@
int dispatch_one_event_notifier_notification(struct notification_thread_state *s
}
evaluation = lttng_evaluation_event_rule_matches_create(
}
evaluation = lttng_evaluation_event_rule_matches_create(
- container_of(lttng_trigger_get_const_condition(
+
lttng::utils::
container_of(lttng_trigger_get_const_condition(
element->trigger),
element->trigger),
- struct lttng_condition_event_rule_matches,
- parent),
+ <tng_condition_event_rule_matches::parent),
notification->capture_buffer,
notification->capture_buf_size, false);
notification->capture_buffer,
notification->capture_buf_size, false);
This page took
0.025495 seconds
and
4
git commands to generate.