#include <common/optional.hpp>
#include <common/payload-view.hpp>
#include <common/payload.hpp>
#include <common/optional.hpp>
#include <common/payload-view.hpp>
#include <common/payload.hpp>
#include <lttng/action/action-internal.hpp>
#include <lttng/condition/buffer-usage.h>
#include <lttng/condition/condition-internal.hpp>
#include <lttng/action/action-internal.hpp>
#include <lttng/condition/buffer-usage.h>
#include <lttng/condition/condition-internal.hpp>
#include <lttng/event-expr-internal.hpp>
#include <lttng/event-rule/event-rule-internal.hpp>
#include <lttng/trigger/trigger-internal.hpp>
#include <lttng/event-expr-internal.hpp>
#include <lttng/event-rule/event-rule-internal.hpp>
#include <lttng/trigger/trigger-internal.hpp>
-struct lttng_trigger *lttng_trigger_create(
- struct lttng_condition *condition,
- struct lttng_action *action)
+struct lttng_trigger *lttng_trigger_create(struct lttng_condition *condition,
+ struct lttng_action *action)
* This API was exposed as such in 2.11. The client is not expected to call
* lttng_condition_destroy on the returned object.
*/
* This API was exposed as such in 2.11. The client is not expected to call
* lttng_condition_destroy on the returned object.
*/
* This API was exposed as such in 2.11. The client is not expected to call
* lttng_action_destroy on the returned object.
*/
* This API was exposed as such in 2.11. The client is not expected to call
* lttng_action_destroy on the returned object.
*/
-ssize_t lttng_trigger_create_from_payload(
- struct lttng_payload_view *src_view,
- struct lttng_trigger **_trigger)
+ssize_t lttng_trigger_create_from_payload(struct lttng_payload_view *src_view,
+ struct lttng_trigger **_trigger)
{
ssize_t ret, offset = 0, condition_size, action_size, name_size = 0;
{
ssize_t ret, offset = 0, condition_size, action_size, name_size = 0;
struct lttng_credentials creds = {
.uid = LTTNG_OPTIONAL_INIT_UNSET,
.gid = LTTNG_OPTIONAL_INIT_UNSET,
};
struct lttng_credentials creds = {
.uid = LTTNG_OPTIONAL_INIT_UNSET,
.gid = LTTNG_OPTIONAL_INIT_UNSET,
};
- lttng_payload_view_from_view(
- src_view, 0, sizeof(*trigger_comm));
+ lttng_payload_view_from_view(src_view, 0, sizeof(*trigger_comm));
- if (!lttng_buffer_view_contains_string(&name_view.buffer, name,
- trigger_comm->name_length)) {
+ if (!lttng_buffer_view_contains_string(
+ &name_view.buffer, name, trigger_comm->name_length)) {
* Both elements are stored contiguously, see their "*_comm" structure
* for the detailed format.
*/
* Both elements are stored contiguously, see their "*_comm" structure
* for the detailed format.
*/
{
int ret;
size_t header_offset, size_before_payload, size_name;
struct lttng_trigger_comm trigger_comm = {};
struct lttng_trigger_comm *header;
{
int ret;
size_t header_offset, size_before_payload, size_name;
struct lttng_trigger_comm trigger_comm = {};
struct lttng_trigger_comm *header;
- ret = lttng_dynamic_buffer_append(
- &payload->buffer, trigger->name, size_name);
+ ret = lttng_dynamic_buffer_append(&payload->buffer, trigger->name, size_name);
-struct lttng_trigger *lttng_triggers_borrow_mutable_at_index(
- const struct lttng_triggers *triggers, unsigned int index)
+struct lttng_trigger *lttng_triggers_borrow_mutable_at_index(const struct lttng_triggers *triggers,
+ unsigned int index)
- trigger = (struct lttng_trigger *)
- lttng_dynamic_pointer_array_get_pointer(
- &triggers->array, index);
+ trigger = (struct lttng_trigger *) lttng_dynamic_pointer_array_get_pointer(&triggers->array,
+ index);
-const struct lttng_trigger *lttng_triggers_get_at_index(
- const struct lttng_triggers *triggers, unsigned int index)
+const struct lttng_trigger *lttng_triggers_get_at_index(const struct lttng_triggers *triggers,
+ unsigned int index)
- ret = lttng_dynamic_buffer_append(&payload->buffer, &triggers_comm,
- sizeof(triggers_comm));
+ ret = lttng_dynamic_buffer_append(&payload->buffer, &triggers_comm, sizeof(triggers_comm));
-ssize_t lttng_triggers_create_from_payload(
- struct lttng_payload_view *src_view,
- struct lttng_triggers **triggers)
+ssize_t lttng_triggers_create_from_payload(struct lttng_payload_view *src_view,
+ struct lttng_triggers **triggers)
{
ssize_t ret, offset = 0, triggers_size = 0;
unsigned int i;
const struct lttng_triggers_comm *triggers_comm;
{
ssize_t ret, offset = 0, triggers_size = 0;
unsigned int i;
const struct lttng_triggers_comm *triggers_comm;
LTTNG_ASSERT(c_status == LTTNG_CONDITION_STATUS_OK);
type = lttng_event_rule_get_domain_type(event_rule);
break;
case LTTNG_CONDITION_TYPE_BUFFER_USAGE_HIGH:
case LTTNG_CONDITION_TYPE_BUFFER_USAGE_LOW:
/* Return the domain of the channel being monitored. */
LTTNG_ASSERT(c_status == LTTNG_CONDITION_STATUS_OK);
type = lttng_event_rule_get_domain_type(event_rule);
break;
case LTTNG_CONDITION_TYPE_BUFFER_USAGE_HIGH:
case LTTNG_CONDITION_TYPE_BUFFER_USAGE_LOW:
/* Return the domain of the channel being monitored. */
* Generate bytecode related to the trigger.
* On success LTTNG_OK. On error, returns lttng_error code.
*/
* Generate bytecode related to the trigger.
* On success LTTNG_OK. On error, returns lttng_error code.
*/
-enum lttng_error_code lttng_trigger_generate_bytecode(
- struct lttng_trigger *trigger,
- const struct lttng_credentials *creds)
+enum lttng_error_code lttng_trigger_generate_bytecode(struct lttng_trigger *trigger,
+ const struct lttng_credentials *creds)
if (ret != LTTNG_OK) {
goto end;
}
/* Generate the capture bytecode. */
ret = lttng_condition_event_rule_matches_generate_capture_descriptor_bytecode(
if (ret != LTTNG_OK) {
goto end;
}
/* Generate the capture bytecode. */
ret = lttng_condition_event_rule_matches_generate_capture_descriptor_bytecode(
- struct lttng_condition *condition_copy = NULL;
- struct lttng_action *action_copy = NULL;
- struct lttng_trigger *copy = NULL;
+ struct lttng_condition *condition_copy = nullptr;
+ struct lttng_action *action_copy = nullptr;
+ struct lttng_trigger *copy = nullptr;
switch (trigger_status) {
case LTTNG_TRIGGER_STATUS_OK:
LTTNG_OPTIONAL_SET(©->creds.uid, trigger_owner_uid);
switch (trigger_status) {
case LTTNG_TRIGGER_STATUS_OK:
LTTNG_OPTIONAL_SET(©->creds.uid, trigger_owner_uid);
bool lttng_trigger_needs_tracer_notifier(const struct lttng_trigger *trigger)
{
bool needs_tracer_notifier = false;
bool lttng_trigger_needs_tracer_notifier(const struct lttng_trigger *trigger)
{
bool needs_tracer_notifier = false;
-enum lttng_error_code lttng_trigger_mi_serialize(const struct lttng_trigger *trigger,
- struct mi_writer *writer,
- const struct mi_lttng_error_query_callbacks
- *error_query_callbacks)
+enum lttng_error_code
+lttng_trigger_mi_serialize(const struct lttng_trigger *trigger,
+ struct mi_writer *writer,
+ const struct mi_lttng_error_query_callbacks *error_query_callbacks)
/* Open trigger element. */
ret = mi_lttng_writer_open_element(writer, mi_lttng_element_trigger);
/* Open trigger element. */
ret = mi_lttng_writer_open_element(writer, mi_lttng_element_trigger);
- ret = mi_lttng_writer_write_element_string(
- writer, config_element_name, trigger->name);
+ ret = mi_lttng_writer_write_element_string(writer, config_element_name, trigger->name);
- ret = mi_lttng_writer_write_element_signed_int(writer,
- mi_lttng_element_trigger_owner_uid,
- (int64_t) owner_uid);
+ ret = mi_lttng_writer_write_element_signed_int(
+ writer, mi_lttng_element_trigger_owner_uid, (int64_t) owner_uid);
- ret_code = lttng_condition_mi_serialize(
- trigger, condition, writer, error_query_callbacks);
+ ret_code = lttng_condition_mi_serialize(trigger, condition, writer, error_query_callbacks);
- ret_code = lttng_action_mi_serialize(trigger, action, writer,
- error_query_callbacks, &action_path_indexes);
+ ret_code = lttng_action_mi_serialize(
+ trigger, action, writer, error_query_callbacks, &action_path_indexes);
ret_code = error_query_callbacks->trigger_cb(trigger, &results);
if (ret_code != LTTNG_OK) {
goto end;
}
ret_code = error_query_callbacks->trigger_cb(trigger, &results);
if (ret_code != LTTNG_OK) {
goto end;
}
/* Used by qsort, which expects the semantics of strcmp(). */
static int compare_triggers_by_name(const void *a, const void *b)
{
/* Used by qsort, which expects the semantics of strcmp(). */
static int compare_triggers_by_name(const void *a, const void *b)
{
- const struct lttng_trigger *trigger_a =
- *((const struct lttng_trigger **) a);
- const struct lttng_trigger *trigger_b =
- *((const struct lttng_trigger **) b);
+ const struct lttng_trigger *trigger_a = *((const struct lttng_trigger **) a);
+ const struct lttng_trigger *trigger_b = *((const struct lttng_trigger **) b);
const char *name_a, *name_b;
enum lttng_trigger_status trigger_status;
const char *name_a, *name_b;
enum lttng_trigger_status trigger_status;
-enum lttng_error_code lttng_triggers_mi_serialize(const struct lttng_triggers *triggers,
- struct mi_writer *writer,
- const struct mi_lttng_error_query_callbacks
- *error_query_callbacks)
+enum lttng_error_code
+lttng_triggers_mi_serialize(const struct lttng_triggers *triggers,
+ struct mi_writer *writer,
+ const struct mi_lttng_error_query_callbacks *error_query_callbacks)
* Sort trigger by name to ensure an order at the MI level and ignore
* any anonymous trigger present.
*/
* Sort trigger by name to ensure an order at the MI level and ignore
* any anonymous trigger present.
*/
status = lttng_triggers_get_count(triggers, &count);
LTTNG_ASSERT(status == LTTNG_TRIGGER_STATUS_OK);
status = lttng_triggers_get_count(triggers, &count);
LTTNG_ASSERT(status == LTTNG_TRIGGER_STATUS_OK);
- qsort(sorted_triggers.array.buffer.data, count,
- sizeof(struct lttng_trigger *),
- compare_triggers_by_name);
+ qsort(sorted_triggers.array.buffer.data,
+ count,
+ sizeof(struct lttng_trigger *),
+ compare_triggers_by_name);
/* Open triggers element. */
ret = mi_lttng_writer_open_element(writer, mi_lttng_element_triggers);
/* Open triggers element. */
ret = mi_lttng_writer_open_element(writer, mi_lttng_element_triggers);
for (i = 0; i < lttng_dynamic_pointer_array_get_count(&sorted_triggers); i++) {
const struct lttng_trigger *trigger =
for (i = 0; i < lttng_dynamic_pointer_array_get_count(&sorted_triggers); i++) {
const struct lttng_trigger *trigger =