X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Ferror-query.cpp;h=8c1bb95414feb84e1300a5570c47cd9ce0c83501;hp=13efbbfd7d03f6154ceca9dcc8f9b7b2e8fb69fb;hb=HEAD;hpb=64803277bbdbe0a943360d918298a48157d9da55 diff --git a/src/common/error-query.cpp b/src/common/error-query.cpp index 13efbbfd7..2410d9b1c 100644 --- a/src/common/error-query.cpp +++ b/src/common/error-query.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2021 Jérémie Galarneau * - * SPDX-License-Identifier: GPL-2.1-only + * SPDX-License-Identifier: LGPL-2.1-only * */ @@ -12,18 +12,31 @@ #include #include #include + #include #include #include #include #include #include + #include struct lttng_error_query { enum lttng_error_query_target_type target_type; }; +struct lttng_error_query_result { + enum lttng_error_query_result_type type; + char *name; + char *description; +}; + +struct lttng_error_query_results { + struct lttng_dynamic_pointer_array results; +}; + +namespace { struct lttng_error_query_comm { /* enum lttng_error_query_target_type */ int8_t target_type; @@ -47,13 +60,7 @@ struct lttng_error_query_action { struct lttng_error_query parent; /* Mutable only because of the reference count. */ struct lttng_trigger *trigger; - struct lttng_action_path action_path; -}; - -struct lttng_error_query_result { - enum lttng_error_query_result_type type; - char *name; - char *description; + struct lttng_action_path *action_path; }; struct lttng_error_query_result_comm { @@ -81,26 +88,20 @@ struct lttng_error_query_results_comm { /* `count` instances of `struct lttng_error_query_result` follow. */ char payload[]; } LTTNG_PACKED; +} /* namespace */ -struct lttng_error_query_results { - struct lttng_dynamic_pointer_array results; -}; - -static -enum lttng_error_code lttng_error_query_result_mi_serialize( - const struct lttng_error_query_result *result, - struct mi_writer *writer); +static enum lttng_error_code +lttng_error_query_result_mi_serialize(const struct lttng_error_query_result *result, + struct mi_writer *writer); -static -enum lttng_error_code lttng_error_query_result_counter_mi_serialize( - const struct lttng_error_query_result *result, - struct mi_writer *writer); +static enum lttng_error_code +lttng_error_query_result_counter_mi_serialize(const struct lttng_error_query_result *result, + struct mi_writer *writer); -struct lttng_error_query *lttng_error_query_trigger_create( - const struct lttng_trigger *trigger) +struct lttng_error_query *lttng_error_query_trigger_create(const struct lttng_trigger *trigger) { - struct lttng_error_query_trigger *query = NULL; - struct lttng_trigger *trigger_copy = NULL; + struct lttng_error_query_trigger *query = nullptr; + struct lttng_trigger *trigger_copy = nullptr; if (!trigger) { goto end; @@ -119,19 +120,18 @@ struct lttng_error_query *lttng_error_query_trigger_create( query->parent.target_type = LTTNG_ERROR_QUERY_TARGET_TYPE_TRIGGER; query->trigger = trigger_copy; - trigger_copy = NULL; + trigger_copy = nullptr; error: lttng_trigger_put(trigger_copy); end: - return query ? &query->parent : NULL; + return query ? &query->parent : nullptr; } -struct lttng_error_query *lttng_error_query_condition_create( - const struct lttng_trigger *trigger) +struct lttng_error_query *lttng_error_query_condition_create(const struct lttng_trigger *trigger) { - struct lttng_error_query_condition *query = NULL; - struct lttng_trigger *trigger_copy = NULL; + struct lttng_error_query_condition *query = nullptr; + struct lttng_trigger *trigger_copy = nullptr; if (!trigger) { goto end; @@ -150,25 +150,23 @@ struct lttng_error_query *lttng_error_query_condition_create( query->parent.target_type = LTTNG_ERROR_QUERY_TARGET_TYPE_CONDITION; query->trigger = trigger_copy; - trigger_copy = NULL; + trigger_copy = nullptr; error: lttng_trigger_put(trigger_copy); end: - return query ? &query->parent : NULL; + return query ? &query->parent : nullptr; } -static -struct lttng_action *get_trigger_action_from_path( - struct lttng_trigger *trigger, - const struct lttng_action_path *action_path) +static struct lttng_action * +get_trigger_action_from_path(struct lttng_trigger *trigger, + const struct lttng_action_path *action_path) { size_t index_count, i; enum lttng_action_path_status path_status; - struct lttng_action *current_action = NULL; + struct lttng_action *current_action = nullptr; - path_status = lttng_action_path_get_index_count( - action_path, &index_count); + path_status = lttng_action_path_get_index_count(action_path, &index_count); if (path_status != LTTNG_ACTION_PATH_STATUS_OK) { goto end; } @@ -177,10 +175,9 @@ struct lttng_action *get_trigger_action_from_path( for (i = 0; i < index_count; i++) { uint64_t path_index; - path_status = lttng_action_path_get_index_at_index( - action_path, i, &path_index); - current_action = lttng_action_list_borrow_mutable_at_index( - current_action, path_index); + path_status = lttng_action_path_get_index_at_index(action_path, i, &path_index); + current_action = + lttng_action_list_borrow_mutable_at_index(current_action, path_index); if (!current_action) { /* Invalid action path. */ goto end; @@ -191,28 +188,25 @@ end: return current_action; } -static -bool is_valid_action_path(const struct lttng_trigger *trigger, - const struct lttng_action_path *action_path) +static bool is_valid_action_path(const struct lttng_trigger *trigger, + const struct lttng_action_path *action_path) { /* * While 'trigger's constness is casted-away, the trigger and resulting * action are not modified; we merely check for the action's existence. */ - return !!get_trigger_action_from_path( - (struct lttng_trigger *) trigger, action_path); + return !!get_trigger_action_from_path((struct lttng_trigger *) trigger, action_path); } -struct lttng_error_query *lttng_error_query_action_create( - const struct lttng_trigger *trigger, - const struct lttng_action_path *action_path) +struct lttng_error_query * +lttng_error_query_action_create(const struct lttng_trigger *trigger, + const struct lttng_action_path *action_path) { - struct lttng_error_query_action *query = NULL; - struct lttng_trigger *trigger_copy = NULL; + struct lttng_error_query_action *query = nullptr; + struct lttng_trigger *trigger_copy = nullptr; int ret_copy; - if (!trigger || !action_path || - !is_valid_action_path(trigger, action_path)) { + if (!trigger || !action_path || !is_valid_action_path(trigger, action_path)) { goto end; } @@ -234,78 +228,100 @@ struct lttng_error_query *lttng_error_query_action_create( query->parent.target_type = LTTNG_ERROR_QUERY_TARGET_TYPE_ACTION; query->trigger = trigger_copy; - trigger_copy = NULL; + trigger_copy = nullptr; goto end; error: lttng_trigger_put(trigger_copy); - lttng_error_query_destroy(query ? &query->parent : NULL); + lttng_error_query_destroy(query ? &query->parent : nullptr); end: - return query ? &query->parent : NULL; + return query ? &query->parent : nullptr; } void lttng_error_query_destroy(struct lttng_error_query *query) { - struct lttng_error_query_trigger *trigger_query; - if (!query) { return; } - trigger_query = container_of(query, typeof(*trigger_query), parent); - lttng_trigger_put(trigger_query->trigger); - free(trigger_query); + switch (query->target_type) { + case LTTNG_ERROR_QUERY_TARGET_TYPE_TRIGGER: + { + struct lttng_error_query_trigger *trigger_query = + lttng::utils::container_of(query, <tng_error_query_trigger::parent); + + lttng_trigger_put(trigger_query->trigger); + free(trigger_query); + break; + } + case LTTNG_ERROR_QUERY_TARGET_TYPE_CONDITION: + { + struct lttng_error_query_condition *condition_query = + lttng::utils::container_of(query, <tng_error_query_condition::parent); + + lttng_trigger_put(condition_query->trigger); + free(condition_query); + break; + } + case LTTNG_ERROR_QUERY_TARGET_TYPE_ACTION: + { + struct lttng_error_query_action *action_query = + lttng::utils::container_of(query, <tng_error_query_action::parent); + + lttng_trigger_put(action_query->trigger); + lttng_action_path_destroy(action_query->action_path); + free(action_query); + break; + } + default: + abort(); + } } -static -int lttng_error_query_result_counter_serialize( - const struct lttng_error_query_result *result, - struct lttng_payload *payload) +static int lttng_error_query_result_counter_serialize(const struct lttng_error_query_result *result, + struct lttng_payload *payload) { const struct lttng_error_query_result_counter *counter_result; LTTNG_ASSERT(result->type == LTTNG_ERROR_QUERY_RESULT_TYPE_COUNTER); - counter_result = container_of(result, typeof(*counter_result), parent); + counter_result = + lttng::utils::container_of(result, <tng_error_query_result_counter::parent); lttng_error_query_result_counter_comm comm = { .value = counter_result->value, }; - return lttng_dynamic_buffer_append(&payload->buffer, - &comm, - sizeof(struct lttng_error_query_result_counter_comm)); + return lttng_dynamic_buffer_append( + &payload->buffer, &comm, sizeof(struct lttng_error_query_result_counter_comm)); } -int lttng_error_query_result_serialize( - const struct lttng_error_query_result *result, - struct lttng_payload *payload) +int lttng_error_query_result_serialize(const struct lttng_error_query_result *result, + struct lttng_payload *payload) { int ret; - struct lttng_error_query_result_comm header = { - .type = (uint8_t) result->type, - .name_len = (typeof(header.name_len)) strlen(result->name) + 1, - .description_len = (typeof(header.name_len)) strlen(result->description) + 1, - }; + struct lttng_error_query_result_comm header; + + header.type = (uint8_t) result->type; + header.name_len = (typeof(header.name_len)) strlen(result->name) + 1; + header.description_len = (typeof(header.name_len)) strlen(result->description) + 1; /* Header. */ - ret = lttng_dynamic_buffer_append( - &payload->buffer, &header, sizeof(header)); + ret = lttng_dynamic_buffer_append(&payload->buffer, &header, sizeof(header)); if (ret) { ERR("Failed to append error query result communication header to payload"); goto end; } /* Name. */ - ret = lttng_dynamic_buffer_append( - &payload->buffer, result->name, header.name_len); + ret = lttng_dynamic_buffer_append(&payload->buffer, result->name, header.name_len); if (ret) { ERR("Failed to append error query result name to payload"); goto end; } /* Description. */ - ret = lttng_dynamic_buffer_append(&payload->buffer, result->description, - header.description_len); + ret = lttng_dynamic_buffer_append( + &payload->buffer, result->description, header.description_len); if (ret) { ERR("Failed to append error query result description to payload"); goto end; @@ -314,8 +330,7 @@ int lttng_error_query_result_serialize( /* Type-specific payload. */ switch (result->type) { case LTTNG_ERROR_QUERY_RESULT_TYPE_COUNTER: - ret = lttng_error_query_result_counter_serialize( - result, payload); + ret = lttng_error_query_result_counter_serialize(result, payload); if (ret) { ERR("Failed to serialize counter error query result"); goto end; @@ -329,12 +344,10 @@ end: return ret; } -static -int lttng_error_query_result_init( - struct lttng_error_query_result *result, - enum lttng_error_query_result_type result_type, - const char *name, - const char *description) +static int lttng_error_query_result_init(struct lttng_error_query_result *result, + enum lttng_error_query_result_type result_type, + const char *name, + const char *description) { int ret; @@ -382,8 +395,7 @@ void lttng_error_query_result_destroy(struct lttng_error_query_result *counter) } struct lttng_error_query_result * -lttng_error_query_result_counter_create( - const char *name, const char *description, uint64_t value) +lttng_error_query_result_counter_create(const char *name, const char *description, uint64_t value) { int init_ret; struct lttng_error_query_result_counter *counter; @@ -394,9 +406,8 @@ lttng_error_query_result_counter_create( goto end; } - init_ret = lttng_error_query_result_init(&counter->parent, - LTTNG_ERROR_QUERY_RESULT_TYPE_COUNTER, name, - description); + init_ret = lttng_error_query_result_init( + &counter->parent, LTTNG_ERROR_QUERY_RESULT_TYPE_COUNTER, name, description); if (init_ret) { goto error; } @@ -406,18 +417,17 @@ lttng_error_query_result_counter_create( error: lttng_error_query_result_destroy(&counter->parent); end: - return counter ? &counter->parent : NULL; + return counter ? &counter->parent : nullptr; } -static -void destroy_result(void *ptr) +static void destroy_result(void *ptr) { struct lttng_error_query_result *result = (typeof(result)) ptr; lttng_error_query_result_destroy(result); } -struct lttng_error_query_results *lttng_error_query_results_create(void) +struct lttng_error_query_results *lttng_error_query_results_create() { struct lttng_error_query_results *set = zmalloc(); @@ -431,22 +441,19 @@ end: return set; } -int lttng_error_query_results_add_result( - struct lttng_error_query_results *results, - struct lttng_error_query_result *result) +int lttng_error_query_results_add_result(struct lttng_error_query_results *results, + struct lttng_error_query_result *result) { - return lttng_dynamic_pointer_array_add_pointer( - &results->results, result); + return lttng_dynamic_pointer_array_add_pointer(&results->results, result); } -ssize_t lttng_error_query_result_create_from_payload( - struct lttng_payload_view *view, - struct lttng_error_query_result **result) +ssize_t lttng_error_query_result_create_from_payload(struct lttng_payload_view *view, + struct lttng_error_query_result **result) { ssize_t used_size = 0; struct lttng_error_query_result_comm *header; struct lttng_payload_view header_view = - lttng_payload_view_from_view(view, 0, sizeof(*header)); + lttng_payload_view_from_view(view, 0, sizeof(*header)); const char *name; const char *description; @@ -460,14 +467,11 @@ ssize_t lttng_error_query_result_create_from_payload( { struct lttng_payload_view name_view = - lttng_payload_view_from_view(view, used_size, - header->name_len); + lttng_payload_view_from_view(view, used_size, header->name_len); if (!lttng_payload_view_is_valid(&name_view) || - !lttng_buffer_view_contains_string( - &name_view.buffer, - name_view.buffer.data, - header->name_len)) { + !lttng_buffer_view_contains_string( + &name_view.buffer, name_view.buffer.data, header->name_len)) { used_size = -1; goto end; } @@ -478,14 +482,12 @@ ssize_t lttng_error_query_result_create_from_payload( { struct lttng_payload_view description_view = - lttng_payload_view_from_view(view, used_size, - header->description_len); + lttng_payload_view_from_view(view, used_size, header->description_len); if (!lttng_payload_view_is_valid(&description_view) || - !lttng_buffer_view_contains_string( - &description_view.buffer, - description_view.buffer.data, - header->description_len)) { + !lttng_buffer_view_contains_string(&description_view.buffer, + description_view.buffer.data, + header->description_len)) { used_size = -1; goto end; } @@ -499,8 +501,7 @@ ssize_t lttng_error_query_result_create_from_payload( { struct lttng_error_query_result_counter_comm *counter; struct lttng_payload_view counter_payload_view = - lttng_payload_view_from_view(view, used_size, - sizeof(*counter)); + lttng_payload_view_from_view(view, used_size, sizeof(*counter)); if (!lttng_payload_view_is_valid(&counter_payload_view)) { used_size = -1; @@ -508,8 +509,8 @@ ssize_t lttng_error_query_result_create_from_payload( } counter = (typeof(counter)) counter_payload_view.buffer.data; - *result = lttng_error_query_result_counter_create( - name, description, counter->value); + *result = + lttng_error_query_result_counter_create(name, description, counter->value); if (!*result) { used_size = -1; goto end; @@ -527,17 +528,15 @@ end: return used_size; } -int lttng_error_query_results_serialize( - const struct lttng_error_query_results *results, - struct lttng_payload *payload) +int lttng_error_query_results_serialize(const struct lttng_error_query_results *results, + struct lttng_payload *payload) { int ret; size_t result_index; - const size_t result_count = lttng_dynamic_pointer_array_get_count( - &results->results); - const struct lttng_error_query_results_comm header = { - .count = (decltype(header.count)) result_count, - }; + const size_t result_count = lttng_dynamic_pointer_array_get_count(&results->results); + struct lttng_error_query_results_comm header; + + header.count = (decltype(header.count)) result_count; /* Header. */ ret = lttng_dynamic_buffer_append(&payload->buffer, &header, sizeof(header)); @@ -548,10 +547,9 @@ int lttng_error_query_results_serialize( /* Results. */ for (result_index = 0; result_index < result_count; result_index++) { - const struct lttng_error_query_result *result = (typeof(result)) - lttng_dynamic_pointer_array_get_pointer( - &results->results, - result_index); + const struct lttng_error_query_result *result = + (typeof(result)) lttng_dynamic_pointer_array_get_pointer(&results->results, + result_index); ret = lttng_error_query_result_serialize(result, payload); if (ret) { @@ -563,16 +561,15 @@ end: return ret; } -ssize_t lttng_error_query_results_create_from_payload( - struct lttng_payload_view *view, - struct lttng_error_query_results **_results) +ssize_t lttng_error_query_results_create_from_payload(struct lttng_payload_view *view, + struct lttng_error_query_results **_results) { size_t result_index; ssize_t total_used_size = 0; struct lttng_error_query_results_comm *header; struct lttng_payload_view header_view = - lttng_payload_view_from_view(view, 0, sizeof(*header)); - struct lttng_error_query_results *results = NULL; + lttng_payload_view_from_view(view, 0, sizeof(*header)); + struct lttng_error_query_results *results = nullptr; if (!lttng_payload_view_is_valid(&header_view)) { ERR("Failed to map view to error query result set header"); @@ -592,16 +589,14 @@ ssize_t lttng_error_query_results_create_from_payload( ssize_t used_size; struct lttng_error_query_result *result; struct lttng_payload_view result_view = - lttng_payload_view_from_view( - view, total_used_size, -1); + lttng_payload_view_from_view(view, total_used_size, -1); if (!lttng_payload_view_is_valid(&result_view)) { total_used_size = -1; goto end; } - used_size = lttng_error_query_result_create_from_payload( - &result_view, &result); + used_size = lttng_error_query_result_create_from_payload(&result_view, &result); if (used_size < 0) { total_used_size = -1; goto end; @@ -609,8 +604,7 @@ ssize_t lttng_error_query_results_create_from_payload( total_used_size += used_size; - if (lttng_dynamic_pointer_array_add_pointer( - &results->results, result)) { + if (lttng_dynamic_pointer_array_add_pointer(&results->results, result)) { lttng_error_query_result_destroy(result); total_used_size = -1; goto end; @@ -618,19 +612,18 @@ ssize_t lttng_error_query_results_create_from_payload( } *_results = results; - results = NULL; + results = nullptr; end: lttng_error_query_results_destroy(results); return total_used_size; } -static -int lttng_error_query_trigger_serialize(const struct lttng_error_query *query, - struct lttng_payload *payload) +static int lttng_error_query_trigger_serialize(const struct lttng_error_query *query, + struct lttng_payload *payload) { int ret; const struct lttng_error_query_trigger *query_trigger = - container_of(query, typeof(*query_trigger), parent); + lttng::utils::container_of(query, <tng_error_query_trigger::parent); if (!lttng_trigger_validate(query_trigger->trigger)) { ret = -1; @@ -646,13 +639,12 @@ end: return ret; } -static -int lttng_error_query_condition_serialize(const struct lttng_error_query *query, - struct lttng_payload *payload) +static int lttng_error_query_condition_serialize(const struct lttng_error_query *query, + struct lttng_payload *payload) { int ret; const struct lttng_error_query_condition *query_trigger = - container_of(query, typeof(*query_trigger), parent); + lttng::utils::container_of(query, <tng_error_query_condition::parent); if (!lttng_trigger_validate(query_trigger->trigger)) { ret = -1; @@ -668,13 +660,12 @@ end: return ret; } -static -int lttng_error_query_action_serialize(const struct lttng_error_query *query, - struct lttng_payload *payload) +static int lttng_error_query_action_serialize(const struct lttng_error_query *query, + struct lttng_payload *payload) { int ret; const struct lttng_error_query_action *query_action = - container_of(query, typeof(*query_action), parent); + lttng::utils::container_of(query, <tng_error_query_action::parent); if (!lttng_trigger_validate(query_action->trigger)) { ret = -1; @@ -686,7 +677,7 @@ int lttng_error_query_action_serialize(const struct lttng_error_query *query, goto end; } - ret = lttng_action_path_serialize(&query_action->action_path, payload); + ret = lttng_action_path_serialize(query_action->action_path, payload); if (ret) { goto end; } @@ -695,60 +686,58 @@ end: return ret; } -enum lttng_error_query_target_type lttng_error_query_get_target_type( - const struct lttng_error_query *query) +enum lttng_error_query_target_type +lttng_error_query_get_target_type(const struct lttng_error_query *query) { return query->target_type; } -const struct lttng_trigger *lttng_error_query_trigger_borrow_target( - const struct lttng_error_query *query) +const struct lttng_trigger * +lttng_error_query_trigger_borrow_target(const struct lttng_error_query *query) { const struct lttng_error_query_trigger *query_trigger = - container_of(query, typeof(*query_trigger), parent); + lttng::utils::container_of(query, <tng_error_query_trigger::parent); return query_trigger->trigger; } -const struct lttng_trigger *lttng_error_query_condition_borrow_target( - const struct lttng_error_query *query) +const struct lttng_trigger * +lttng_error_query_condition_borrow_target(const struct lttng_error_query *query) { const struct lttng_error_query_condition *query_trigger = - container_of(query, typeof(*query_trigger), parent); + lttng::utils::container_of(query, <tng_error_query_condition::parent); return query_trigger->trigger; } -const struct lttng_trigger *lttng_error_query_action_borrow_trigger_target( - const struct lttng_error_query *query) +const struct lttng_trigger * +lttng_error_query_action_borrow_trigger_target(const struct lttng_error_query *query) { const struct lttng_error_query_action *query_action = - container_of(query, typeof(*query_action), parent); + lttng::utils::container_of(query, <tng_error_query_action::parent); return query_action->trigger; } -struct lttng_action *lttng_error_query_action_borrow_action_target( - const struct lttng_error_query *query, - struct lttng_trigger *trigger) +struct lttng_action * +lttng_error_query_action_borrow_action_target(const struct lttng_error_query *query, + struct lttng_trigger *trigger) { const struct lttng_error_query_action *query_action = - container_of(query, typeof(*query_action), parent); + lttng::utils::container_of(query, <tng_error_query_action::parent); - return get_trigger_action_from_path( - trigger, &query_action->action_path); + return get_trigger_action_from_path(trigger, query_action->action_path); } int lttng_error_query_serialize(const struct lttng_error_query *query, - struct lttng_payload *payload) + struct lttng_payload *payload) { int ret; - const struct lttng_error_query_comm header = { - .target_type = (decltype(header.target_type)) query->target_type, - }; + struct lttng_error_query_comm header; - ret = lttng_dynamic_buffer_append( - &payload->buffer, &header, sizeof(header)); + header.target_type = (decltype(header.target_type)) query->target_type; + + ret = lttng_dynamic_buffer_append(&payload->buffer, &header, sizeof(header)); if (ret) { ERR("Failed to append error query header to payload"); goto end; @@ -784,13 +773,13 @@ end: } ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view, - struct lttng_error_query **query) + struct lttng_error_query **query) { ssize_t used_size = 0; struct lttng_error_query_comm *header; - struct lttng_trigger *trigger = NULL; + struct lttng_trigger *trigger = nullptr; struct lttng_payload_view header_view = - lttng_payload_view_from_view(view, 0, sizeof(*header)); + lttng_payload_view_from_view(view, 0, sizeof(*header)); if (!lttng_payload_view_is_valid(&header_view)) { ERR("Failed to map error query header"); @@ -806,16 +795,14 @@ ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view, { ssize_t trigger_used_size; struct lttng_payload_view trigger_view = - lttng_payload_view_from_view( - view, used_size, -1); + lttng_payload_view_from_view(view, used_size, -1); if (!lttng_payload_view_is_valid(&trigger_view)) { used_size = -1; goto end; } - trigger_used_size = lttng_trigger_create_from_payload( - &trigger_view, &trigger); + trigger_used_size = lttng_trigger_create_from_payload(&trigger_view, &trigger); if (trigger_used_size < 0) { used_size = -1; goto end; @@ -835,16 +822,14 @@ ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view, { ssize_t trigger_used_size; struct lttng_payload_view trigger_view = - lttng_payload_view_from_view( - view, used_size, -1); + lttng_payload_view_from_view(view, used_size, -1); if (!lttng_payload_view_is_valid(&trigger_view)) { used_size = -1; goto end; } - trigger_used_size = lttng_trigger_create_from_payload( - &trigger_view, &trigger); + trigger_used_size = lttng_trigger_create_from_payload(&trigger_view, &trigger); if (trigger_used_size < 0) { used_size = -1; goto end; @@ -862,21 +847,20 @@ ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view, } case LTTNG_ERROR_QUERY_TARGET_TYPE_ACTION: { - struct lttng_action_path *action_path = NULL; + struct lttng_action_path *action_path = nullptr; { ssize_t trigger_used_size; struct lttng_payload_view trigger_view = - lttng_payload_view_from_view( - view, used_size, -1); + lttng_payload_view_from_view(view, used_size, -1); if (!lttng_payload_view_is_valid(&trigger_view)) { used_size = -1; goto end; } - trigger_used_size = lttng_trigger_create_from_payload( - &trigger_view, &trigger); + trigger_used_size = + lttng_trigger_create_from_payload(&trigger_view, &trigger); if (trigger_used_size < 0) { used_size = -1; goto end; @@ -888,8 +872,7 @@ ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view, { ssize_t action_path_used_size; struct lttng_payload_view action_path_view = - lttng_payload_view_from_view( - view, used_size, -1); + lttng_payload_view_from_view(view, used_size, -1); if (!lttng_payload_view_is_valid(&action_path_view)) { used_size = -1; @@ -897,7 +880,7 @@ ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view, } action_path_used_size = lttng_action_path_create_from_payload( - &action_path_view, &action_path); + &action_path_view, &action_path); if (action_path_used_size < 0) { used_size = -1; goto end; @@ -906,8 +889,7 @@ ssize_t lttng_error_query_create_from_payload(struct lttng_payload_view *view, used_size += action_path_used_size; } - *query = lttng_error_query_action_create( - trigger, action_path); + *query = lttng_error_query_action_create(trigger, action_path); lttng_action_path_destroy(action_path); if (!*query) { used_size = -1; @@ -926,9 +908,9 @@ end: return used_size; } -enum lttng_error_query_results_status lttng_error_query_results_get_count( - const struct lttng_error_query_results *results, - unsigned int *count) +enum lttng_error_query_results_status +lttng_error_query_results_get_count(const struct lttng_error_query_results *results, + unsigned int *count) { enum lttng_error_query_results_status status; @@ -944,10 +926,9 @@ end: } enum lttng_error_query_results_status -lttng_error_query_results_get_result( - const struct lttng_error_query_results *results, - const struct lttng_error_query_result **result, - unsigned int index) +lttng_error_query_results_get_result(const struct lttng_error_query_results *results, + const struct lttng_error_query_result **result, + unsigned int index) { unsigned int result_count; enum lttng_error_query_results_status status; @@ -967,16 +948,15 @@ lttng_error_query_results_get_result( goto end; } - *result = (typeof(*result)) lttng_dynamic_pointer_array_get_pointer( - &results->results, index); + *result = + (typeof(*result)) lttng_dynamic_pointer_array_get_pointer(&results->results, index); LTTNG_ASSERT(*result); status = LTTNG_ERROR_QUERY_RESULTS_STATUS_OK; end: return status; } -void lttng_error_query_results_destroy( - struct lttng_error_query_results *results) +void lttng_error_query_results_destroy(struct lttng_error_query_results *results) { if (!results) { return; @@ -992,9 +972,8 @@ lttng_error_query_result_get_type(const struct lttng_error_query_result *result) return result ? result->type : LTTNG_ERROR_QUERY_RESULT_TYPE_UNKNOWN; } -enum lttng_error_query_result_status lttng_error_query_result_get_name( - const struct lttng_error_query_result *result, - const char **name) +enum lttng_error_query_result_status +lttng_error_query_result_get_name(const struct lttng_error_query_result *result, const char **name) { enum lttng_error_query_result_status status; @@ -1009,9 +988,9 @@ end: return status; } -enum lttng_error_query_result_status lttng_error_query_result_get_description( - const struct lttng_error_query_result *result, - const char **description) +enum lttng_error_query_result_status +lttng_error_query_result_get_description(const struct lttng_error_query_result *result, + const char **description) { enum lttng_error_query_result_status status; @@ -1026,20 +1005,20 @@ end: return status; } -enum lttng_error_query_result_status lttng_error_query_result_counter_get_value( - const struct lttng_error_query_result *result, - uint64_t *value) +enum lttng_error_query_result_status +lttng_error_query_result_counter_get_value(const struct lttng_error_query_result *result, + uint64_t *value) { enum lttng_error_query_result_status status; const struct lttng_error_query_result_counter *counter_result; - if (!result || !value || - result->type != LTTNG_ERROR_QUERY_RESULT_TYPE_COUNTER) { + if (!result || !value || result->type != LTTNG_ERROR_QUERY_RESULT_TYPE_COUNTER) { status = LTTNG_ERROR_QUERY_RESULT_STATUS_INVALID_PARAMETER; goto end; } - counter_result = container_of(result, typeof(*counter_result), parent); + counter_result = + lttng::utils::container_of(result, <tng_error_query_result_counter::parent); *value = counter_result->value; status = LTTNG_ERROR_QUERY_RESULT_STATUS_OK; @@ -1047,10 +1026,9 @@ end: return status; } -static -enum lttng_error_code lttng_error_query_result_counter_mi_serialize( - const struct lttng_error_query_result *result, - struct mi_writer *writer) +static enum lttng_error_code +lttng_error_query_result_counter_mi_serialize(const struct lttng_error_query_result *result, + struct mi_writer *writer) { int ret; enum lttng_error_code ret_code; @@ -1064,16 +1042,14 @@ enum lttng_error_code lttng_error_query_result_counter_mi_serialize( LTTNG_ASSERT(status == LTTNG_ERROR_QUERY_RESULT_STATUS_OK); /* Open error query result counter element. */ - ret = mi_lttng_writer_open_element( - writer, mi_lttng_element_error_query_result_counter); + ret = mi_lttng_writer_open_element(writer, mi_lttng_element_error_query_result_counter); if (ret) { goto mi_error; } /* Value. */ - ret = mi_lttng_writer_write_element_unsigned_int(writer, - mi_lttng_element_error_query_result_counter_value, - value); + ret = mi_lttng_writer_write_element_unsigned_int( + writer, mi_lttng_element_error_query_result_counter_value, value); if (ret) { goto mi_error; } @@ -1093,17 +1069,16 @@ end: return ret_code; } -static -enum lttng_error_code lttng_error_query_result_mi_serialize( - const struct lttng_error_query_result *result, - struct mi_writer *writer) +static enum lttng_error_code +lttng_error_query_result_mi_serialize(const struct lttng_error_query_result *result, + struct mi_writer *writer) { int ret; enum lttng_error_code ret_code; enum lttng_error_query_result_status result_status; enum lttng_error_query_result_type type; - const char *name = NULL; - const char *description = NULL; + const char *name = nullptr; + const char *description = nullptr; LTTNG_ASSERT(result); LTTNG_ASSERT(writer); @@ -1113,28 +1088,25 @@ enum lttng_error_code lttng_error_query_result_mi_serialize( result_status = lttng_error_query_result_get_name(result, &name); LTTNG_ASSERT(result_status == LTTNG_ERROR_QUERY_RESULT_STATUS_OK); - result_status = lttng_error_query_result_get_description( - result, &description); + result_status = lttng_error_query_result_get_description(result, &description); LTTNG_ASSERT(result_status == LTTNG_ERROR_QUERY_RESULT_STATUS_OK); /* Open error query result element. */ - ret = mi_lttng_writer_open_element( - writer, mi_lttng_element_error_query_result); + ret = mi_lttng_writer_open_element(writer, mi_lttng_element_error_query_result); if (ret) { goto mi_error; } /* Name. */ ret = mi_lttng_writer_write_element_string( - writer, mi_lttng_element_error_query_result_name, name); + writer, mi_lttng_element_error_query_result_name, name); if (ret) { goto mi_error; } /* Description. */ - ret = mi_lttng_writer_write_element_string(writer, - mi_lttng_element_error_query_result_description, - description); + ret = mi_lttng_writer_write_element_string( + writer, mi_lttng_element_error_query_result_description, description); if (ret) { goto mi_error; } @@ -1142,8 +1114,7 @@ enum lttng_error_code lttng_error_query_result_mi_serialize( /* Serialize the result according to its sub type. */ switch (type) { case LTTNG_ERROR_QUERY_RESULT_TYPE_COUNTER: - ret_code = lttng_error_query_result_counter_mi_serialize( - result, writer); + ret_code = lttng_error_query_result_counter_mi_serialize(result, writer); break; default: abort(); @@ -1168,9 +1139,9 @@ end: return ret_code; } -enum lttng_error_code lttng_error_query_results_mi_serialize( - const struct lttng_error_query_results *results, - struct mi_writer *writer) +enum lttng_error_code +lttng_error_query_results_mi_serialize(const struct lttng_error_query_results *results, + struct mi_writer *writer) { int ret; enum lttng_error_code ret_code; @@ -1181,8 +1152,7 @@ enum lttng_error_code lttng_error_query_results_mi_serialize( LTTNG_ASSERT(writer); /* Open error query results element. */ - ret = mi_lttng_writer_open_element( - writer, mi_lttng_element_error_query_results); + ret = mi_lttng_writer_open_element(writer, mi_lttng_element_error_query_results); if (ret) { goto mi_error; } @@ -1193,8 +1163,7 @@ enum lttng_error_code lttng_error_query_results_mi_serialize( for (i = 0; i < count; i++) { const struct lttng_error_query_result *result; - results_status = lttng_error_query_results_get_result( - results, &result, i); + results_status = lttng_error_query_results_get_result(results, &result, i); LTTNG_ASSERT(results_status == LTTNG_ERROR_QUERY_RESULTS_STATUS_OK); /* A single error query result. */