X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fcommon%2Fconfig%2Fsession-config.cpp;fp=src%2Fcommon%2Fconfig%2Fsession-config.cpp;h=5f3c44dba06a6fd391534c6f9944783523559bb4;hp=8f96b7f21e638a122fef392a4a5ed0e7dd3a86bf;hb=28ab034a2c3582d07d3423d2d746731f87d3969f;hpb=52e345b9ac912d033c2a2c25a170a01cf209839d diff --git a/src/common/config/session-config.cpp b/src/common/config/session-config.cpp index 8f96b7f21..5f3c44dba 100644 --- a/src/common/config/session-config.cpp +++ b/src/common/config/session-config.cpp @@ -7,35 +7,36 @@ #include "lttng/tracker.h" #define _LGPL_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include "config-internal.hpp" +#include "session-config.hpp" +#include #include +#include #include #include #include -#include -#include + #include -#include -#include -#include -#include #include -#include #include +#include #include -#include "session-config.hpp" -#include "config-internal.hpp" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #define CONFIG_USERSPACE_PROBE_LOOKUP_METHOD_NAME_MAX_LEN 7 @@ -47,185 +48,189 @@ struct session_config_validation_ctx { }; } /* namespace */ -const char * const config_element_all = "all"; +const char *const config_element_all = "all"; LTTNG_EXPORT const char *config_xml_encoding = "UTF-8"; -LTTNG_EXPORT size_t config_xml_encoding_bytes_per_char = 2; /* Size of the encoding's largest character */ +LTTNG_EXPORT size_t config_xml_encoding_bytes_per_char = 2; /* Size of the encoding's largest + character */ LTTNG_EXPORT const char *config_xml_indent_string = "\t"; LTTNG_EXPORT const char *config_xml_true = "true"; LTTNG_EXPORT const char *config_xml_false = "false"; -const char * const config_element_channel = "channel"; -const char * const config_element_channels = "channels"; -const char * const config_element_domain = "domain"; -const char * const config_element_domains = "domains"; -const char * const config_element_event = "event"; -const char * const config_element_events = "events"; -const char * const config_element_context = "context"; -const char * const config_element_contexts = "contexts"; -const char * const config_element_attributes = "attributes"; -const char * const config_element_exclusion = "exclusion"; -const char * const config_element_exclusions = "exclusions"; -const char * const config_element_function_attributes = "function_attributes"; -const char * const config_element_probe_attributes = "probe_attributes"; -const char * const config_element_symbol_name = "symbol_name"; -const char * const config_element_address = "address"; -const char * const config_element_offset = "offset"; - -const char * const config_element_userspace_probe_lookup = "lookup_method"; -const char * const config_element_userspace_probe_lookup_function_default = "DEFAULT"; -const char * const config_element_userspace_probe_lookup_function_elf = "ELF"; -const char * const config_element_userspace_probe_lookup_tracepoint_sdt = "SDT"; -const char * const config_element_userspace_probe_location_binary_path = "binary_path"; -const char * const config_element_userspace_probe_function_attributes = "userspace_probe_function_attributes"; -const char * const config_element_userspace_probe_function_location_function_name = "function_name"; -const char * const config_element_userspace_probe_tracepoint_attributes = "userspace_probe_tracepoint_attributes"; -const char * const config_element_userspace_probe_tracepoint_location_provider_name = "provider_name"; -const char * const config_element_userspace_probe_tracepoint_location_probe_name = "probe_name"; - -const char * const config_element_name = "name"; -const char * const config_element_enabled = "enabled"; -const char * const config_element_overwrite_mode = "overwrite_mode"; -const char * const config_element_subbuf_size = "subbuffer_size"; -const char * const config_element_num_subbuf = "subbuffer_count"; -const char * const config_element_switch_timer_interval = "switch_timer_interval"; -const char * const config_element_read_timer_interval = "read_timer_interval"; -const char * const config_element_monitor_timer_interval = "monitor_timer_interval"; -const char * const config_element_blocking_timeout = "blocking_timeout"; -const char * const config_element_output = "output"; -const char * const config_element_output_type = "output_type"; -const char * const config_element_tracefile_size = "tracefile_size"; -const char * const config_element_tracefile_count = "tracefile_count"; -const char * const config_element_live_timer_interval = "live_timer_interval"; -const char * const config_element_discarded_events = "discarded_events"; -const char * const config_element_lost_packets = "lost_packets"; -const char * const config_element_type = "type"; -const char * const config_element_buffer_type = "buffer_type"; -const char * const config_element_session = "session"; -const char * const config_element_sessions = "sessions"; -const char * const config_element_context_perf = "perf"; -const char * const config_element_context_app = "app"; -const char * const config_element_context_app_provider_name = "provider_name"; -const char * const config_element_context_app_ctx_name = "ctx_name"; -const char * const config_element_config = "config"; -const char * const config_element_started = "started"; -const char * const config_element_snapshot_mode = "snapshot_mode"; -const char * const config_element_loglevel = "loglevel"; -const char * const config_element_loglevel_type = "loglevel_type"; -const char * const config_element_filter = "filter"; -const char * const config_element_filter_expression = "filter_expression"; -const char * const config_element_snapshot_outputs = "snapshot_outputs"; -const char * const config_element_consumer_output = "consumer_output"; -const char * const config_element_destination = "destination"; -const char * const config_element_path = "path"; -const char * const config_element_net_output = "net_output"; -const char * const config_element_control_uri = "control_uri"; -const char * const config_element_data_uri = "data_uri"; -const char * const config_element_max_size = "max_size"; -const char * const config_element_pid = "pid"; -const char * const config_element_pids = "pids"; -const char * const config_element_shared_memory_path = "shared_memory_path"; - -const char * const config_element_process_attr_id = "id"; -const char * const config_element_process_attr_tracker_pid = "pid_process_attr_tracker"; -const char * const config_element_process_attr_tracker_vpid = "vpid_process_attr_tracker"; -const char * const config_element_process_attr_tracker_uid = "uid_process_attr_tracker"; -const char * const config_element_process_attr_tracker_vuid = "vuid_process_attr_tracker"; -const char * const config_element_process_attr_tracker_gid = "gid_process_attr_tracker"; -const char * const config_element_process_attr_tracker_vgid = "vgid_process_attr_tracker"; -const char * const config_element_process_attr_trackers = "process_attr_trackers"; -const char * const config_element_process_attr_values = "process_attr_values"; -const char * const config_element_process_attr_value_type = "process_attr_value_type"; -const char * const config_element_process_attr_pid_value = "pid"; -const char * const config_element_process_attr_vpid_value = "vpid"; -const char * const config_element_process_attr_uid_value = "uid"; -const char * const config_element_process_attr_vuid_value = "vuid"; -const char * const config_element_process_attr_gid_value = "gid"; -const char * const config_element_process_attr_vgid_value = "vgid"; -const char * const config_element_process_attr_tracker_type = "process_attr_tracker_type"; +const char *const config_element_channel = "channel"; +const char *const config_element_channels = "channels"; +const char *const config_element_domain = "domain"; +const char *const config_element_domains = "domains"; +const char *const config_element_event = "event"; +const char *const config_element_events = "events"; +const char *const config_element_context = "context"; +const char *const config_element_contexts = "contexts"; +const char *const config_element_attributes = "attributes"; +const char *const config_element_exclusion = "exclusion"; +const char *const config_element_exclusions = "exclusions"; +const char *const config_element_function_attributes = "function_attributes"; +const char *const config_element_probe_attributes = "probe_attributes"; +const char *const config_element_symbol_name = "symbol_name"; +const char *const config_element_address = "address"; +const char *const config_element_offset = "offset"; + +const char *const config_element_userspace_probe_lookup = "lookup_method"; +const char *const config_element_userspace_probe_lookup_function_default = "DEFAULT"; +const char *const config_element_userspace_probe_lookup_function_elf = "ELF"; +const char *const config_element_userspace_probe_lookup_tracepoint_sdt = "SDT"; +const char *const config_element_userspace_probe_location_binary_path = "binary_path"; +const char *const config_element_userspace_probe_function_attributes = + "userspace_probe_function_attributes"; +const char *const config_element_userspace_probe_function_location_function_name = "function_name"; +const char *const config_element_userspace_probe_tracepoint_attributes = + "userspace_probe_tracepoint_attributes"; +const char *const config_element_userspace_probe_tracepoint_location_provider_name = + "provider_name"; +const char *const config_element_userspace_probe_tracepoint_location_probe_name = "probe_name"; + +const char *const config_element_name = "name"; +const char *const config_element_enabled = "enabled"; +const char *const config_element_overwrite_mode = "overwrite_mode"; +const char *const config_element_subbuf_size = "subbuffer_size"; +const char *const config_element_num_subbuf = "subbuffer_count"; +const char *const config_element_switch_timer_interval = "switch_timer_interval"; +const char *const config_element_read_timer_interval = "read_timer_interval"; +const char *const config_element_monitor_timer_interval = "monitor_timer_interval"; +const char *const config_element_blocking_timeout = "blocking_timeout"; +const char *const config_element_output = "output"; +const char *const config_element_output_type = "output_type"; +const char *const config_element_tracefile_size = "tracefile_size"; +const char *const config_element_tracefile_count = "tracefile_count"; +const char *const config_element_live_timer_interval = "live_timer_interval"; +const char *const config_element_discarded_events = "discarded_events"; +const char *const config_element_lost_packets = "lost_packets"; +const char *const config_element_type = "type"; +const char *const config_element_buffer_type = "buffer_type"; +const char *const config_element_session = "session"; +const char *const config_element_sessions = "sessions"; +const char *const config_element_context_perf = "perf"; +const char *const config_element_context_app = "app"; +const char *const config_element_context_app_provider_name = "provider_name"; +const char *const config_element_context_app_ctx_name = "ctx_name"; +const char *const config_element_config = "config"; +const char *const config_element_started = "started"; +const char *const config_element_snapshot_mode = "snapshot_mode"; +const char *const config_element_loglevel = "loglevel"; +const char *const config_element_loglevel_type = "loglevel_type"; +const char *const config_element_filter = "filter"; +const char *const config_element_filter_expression = "filter_expression"; +const char *const config_element_snapshot_outputs = "snapshot_outputs"; +const char *const config_element_consumer_output = "consumer_output"; +const char *const config_element_destination = "destination"; +const char *const config_element_path = "path"; +const char *const config_element_net_output = "net_output"; +const char *const config_element_control_uri = "control_uri"; +const char *const config_element_data_uri = "data_uri"; +const char *const config_element_max_size = "max_size"; +const char *const config_element_pid = "pid"; +const char *const config_element_pids = "pids"; +const char *const config_element_shared_memory_path = "shared_memory_path"; + +const char *const config_element_process_attr_id = "id"; +const char *const config_element_process_attr_tracker_pid = "pid_process_attr_tracker"; +const char *const config_element_process_attr_tracker_vpid = "vpid_process_attr_tracker"; +const char *const config_element_process_attr_tracker_uid = "uid_process_attr_tracker"; +const char *const config_element_process_attr_tracker_vuid = "vuid_process_attr_tracker"; +const char *const config_element_process_attr_tracker_gid = "gid_process_attr_tracker"; +const char *const config_element_process_attr_tracker_vgid = "vgid_process_attr_tracker"; +const char *const config_element_process_attr_trackers = "process_attr_trackers"; +const char *const config_element_process_attr_values = "process_attr_values"; +const char *const config_element_process_attr_value_type = "process_attr_value_type"; +const char *const config_element_process_attr_pid_value = "pid"; +const char *const config_element_process_attr_vpid_value = "vpid"; +const char *const config_element_process_attr_uid_value = "uid"; +const char *const config_element_process_attr_vuid_value = "vuid"; +const char *const config_element_process_attr_gid_value = "gid"; +const char *const config_element_process_attr_vgid_value = "vgid"; +const char *const config_element_process_attr_tracker_type = "process_attr_tracker_type"; /* Used for support of legacy tracker serialization (< 2.12). */ -const char * const config_element_trackers_legacy = "trackers"; -const char * const config_element_pid_tracker_legacy = "pid_tracker"; -const char * const config_element_tracker_targets_legacy = "targets"; -const char * const config_element_tracker_pid_legacy = "pid"; - -const char * const config_element_rotation_schedules = "rotation_schedules"; -const char * const config_element_rotation_schedule_periodic = "periodic"; -const char * const config_element_rotation_schedule_periodic_time_us = "time_us"; -const char * const config_element_rotation_schedule_size_threshold = "size_threshold"; -const char * const config_element_rotation_schedule_size_threshold_bytes = "bytes"; - -const char * const config_domain_type_kernel = "KERNEL"; -const char * const config_domain_type_ust = "UST"; -const char * const config_domain_type_jul = "JUL"; -const char * const config_domain_type_log4j = "LOG4J"; -const char * const config_domain_type_python = "PYTHON"; - -const char * const config_buffer_type_per_pid = "PER_PID"; -const char * const config_buffer_type_per_uid = "PER_UID"; -const char * const config_buffer_type_global = "GLOBAL"; - -const char * const config_overwrite_mode_discard = "DISCARD"; -const char * const config_overwrite_mode_overwrite = "OVERWRITE"; - -const char * const config_output_type_splice = "SPLICE"; -const char * const config_output_type_mmap = "MMAP"; - -const char * const config_loglevel_type_all = "ALL"; -const char * const config_loglevel_type_range = "RANGE"; -const char * const config_loglevel_type_single = "SINGLE"; - -const char * const config_event_type_all = "ALL"; -const char * const config_event_type_tracepoint = "TRACEPOINT"; -const char * const config_event_type_probe = "PROBE"; -const char * const config_event_type_userspace_probe = "USERSPACE_PROBE"; -const char * const config_event_type_function = "FUNCTION"; -const char * const config_event_type_function_entry = "FUNCTION_ENTRY"; -const char * const config_event_type_noop = "NOOP"; -const char * const config_event_type_syscall = "SYSCALL"; -const char * const config_event_type_kprobe = "KPROBE"; -const char * const config_event_type_kretprobe = "KRETPROBE"; - -const char * const config_event_context_pid = "PID"; -const char * const config_event_context_procname = "PROCNAME"; -const char * const config_event_context_prio = "PRIO"; -const char * const config_event_context_nice = "NICE"; -const char * const config_event_context_vpid = "VPID"; -const char * const config_event_context_tid = "TID"; -const char * const config_event_context_vtid = "VTID"; -const char * const config_event_context_ppid = "PPID"; -const char * const config_event_context_vppid = "VPPID"; -const char * const config_event_context_pthread_id = "PTHREAD_ID"; -const char * const config_event_context_hostname = "HOSTNAME"; -const char * const config_event_context_ip = "IP"; -const char * const config_event_context_perf_thread_counter = "PERF_THREAD_COUNTER"; -const char * const config_event_context_app = "APP"; -const char * const config_event_context_interruptible = "INTERRUPTIBLE"; -const char * const config_event_context_preemptible = "PREEMPTIBLE"; -const char * const config_event_context_need_reschedule = "NEED_RESCHEDULE"; -const char * const config_event_context_migratable = "MIGRATABLE"; -const char * const config_event_context_callstack_user= "CALLSTACK_USER"; -const char * const config_event_context_callstack_kernel = "CALLSTACK_KERNEL"; -const char * const config_event_context_cgroup_ns = "CGROUP_NS"; -const char * const config_event_context_ipc_ns = "IPC_NS"; -const char * const config_event_context_mnt_ns = "MNT_NS"; -const char * const config_event_context_net_ns = "NET_NS"; -const char * const config_event_context_pid_ns = "PID_NS"; -const char * const config_event_context_time_ns = "TIME_NS"; -const char * const config_event_context_user_ns = "USER_NS"; -const char * const config_event_context_uts_ns = "UTS_NS"; -const char * const config_event_context_uid = "UID"; -const char * const config_event_context_euid = "EUID"; -const char * const config_event_context_suid = "SUID"; -const char * const config_event_context_gid = "GID"; -const char * const config_event_context_egid = "EGID"; -const char * const config_event_context_sgid = "SGID"; -const char * const config_event_context_vuid = "VUID"; -const char * const config_event_context_veuid = "VEUID"; -const char * const config_event_context_vsuid = "VSUID"; -const char * const config_event_context_vgid = "VGID"; -const char * const config_event_context_vegid = "VEGID"; -const char * const config_event_context_vsgid = "VSGID"; +const char *const config_element_trackers_legacy = "trackers"; +const char *const config_element_pid_tracker_legacy = "pid_tracker"; +const char *const config_element_tracker_targets_legacy = "targets"; +const char *const config_element_tracker_pid_legacy = "pid"; + +const char *const config_element_rotation_schedules = "rotation_schedules"; +const char *const config_element_rotation_schedule_periodic = "periodic"; +const char *const config_element_rotation_schedule_periodic_time_us = "time_us"; +const char *const config_element_rotation_schedule_size_threshold = "size_threshold"; +const char *const config_element_rotation_schedule_size_threshold_bytes = "bytes"; + +const char *const config_domain_type_kernel = "KERNEL"; +const char *const config_domain_type_ust = "UST"; +const char *const config_domain_type_jul = "JUL"; +const char *const config_domain_type_log4j = "LOG4J"; +const char *const config_domain_type_python = "PYTHON"; + +const char *const config_buffer_type_per_pid = "PER_PID"; +const char *const config_buffer_type_per_uid = "PER_UID"; +const char *const config_buffer_type_global = "GLOBAL"; + +const char *const config_overwrite_mode_discard = "DISCARD"; +const char *const config_overwrite_mode_overwrite = "OVERWRITE"; + +const char *const config_output_type_splice = "SPLICE"; +const char *const config_output_type_mmap = "MMAP"; + +const char *const config_loglevel_type_all = "ALL"; +const char *const config_loglevel_type_range = "RANGE"; +const char *const config_loglevel_type_single = "SINGLE"; + +const char *const config_event_type_all = "ALL"; +const char *const config_event_type_tracepoint = "TRACEPOINT"; +const char *const config_event_type_probe = "PROBE"; +const char *const config_event_type_userspace_probe = "USERSPACE_PROBE"; +const char *const config_event_type_function = "FUNCTION"; +const char *const config_event_type_function_entry = "FUNCTION_ENTRY"; +const char *const config_event_type_noop = "NOOP"; +const char *const config_event_type_syscall = "SYSCALL"; +const char *const config_event_type_kprobe = "KPROBE"; +const char *const config_event_type_kretprobe = "KRETPROBE"; + +const char *const config_event_context_pid = "PID"; +const char *const config_event_context_procname = "PROCNAME"; +const char *const config_event_context_prio = "PRIO"; +const char *const config_event_context_nice = "NICE"; +const char *const config_event_context_vpid = "VPID"; +const char *const config_event_context_tid = "TID"; +const char *const config_event_context_vtid = "VTID"; +const char *const config_event_context_ppid = "PPID"; +const char *const config_event_context_vppid = "VPPID"; +const char *const config_event_context_pthread_id = "PTHREAD_ID"; +const char *const config_event_context_hostname = "HOSTNAME"; +const char *const config_event_context_ip = "IP"; +const char *const config_event_context_perf_thread_counter = "PERF_THREAD_COUNTER"; +const char *const config_event_context_app = "APP"; +const char *const config_event_context_interruptible = "INTERRUPTIBLE"; +const char *const config_event_context_preemptible = "PREEMPTIBLE"; +const char *const config_event_context_need_reschedule = "NEED_RESCHEDULE"; +const char *const config_event_context_migratable = "MIGRATABLE"; +const char *const config_event_context_callstack_user = "CALLSTACK_USER"; +const char *const config_event_context_callstack_kernel = "CALLSTACK_KERNEL"; +const char *const config_event_context_cgroup_ns = "CGROUP_NS"; +const char *const config_event_context_ipc_ns = "IPC_NS"; +const char *const config_event_context_mnt_ns = "MNT_NS"; +const char *const config_event_context_net_ns = "NET_NS"; +const char *const config_event_context_pid_ns = "PID_NS"; +const char *const config_event_context_time_ns = "TIME_NS"; +const char *const config_event_context_user_ns = "USER_NS"; +const char *const config_event_context_uts_ns = "UTS_NS"; +const char *const config_event_context_uid = "UID"; +const char *const config_event_context_euid = "EUID"; +const char *const config_event_context_suid = "SUID"; +const char *const config_event_context_gid = "GID"; +const char *const config_event_context_egid = "EGID"; +const char *const config_event_context_sgid = "SGID"; +const char *const config_event_context_vuid = "VUID"; +const char *const config_event_context_veuid = "VEUID"; +const char *const config_event_context_vsuid = "VSUID"; +const char *const config_event_context_vgid = "VGID"; +const char *const config_event_context_vegid = "VEGID"; +const char *const config_event_context_vsgid = "VSGID"; /* Deprecated symbols */ LTTNG_EXPORT const char *config_element_perf; @@ -303,14 +308,12 @@ struct config_writer *config_writer_create(int fd_output, int indent) } writer->writer = xmlNewTextWriter(buffer); - ret = xmlTextWriterStartDocument(writer->writer, NULL, - config_xml_encoding, NULL); + ret = xmlTextWriterStartDocument(writer->writer, NULL, config_xml_encoding, NULL); if (ret < 0) { goto error_destroy; } - ret = xmlTextWriterSetIndentString(writer->writer, - BAD_CAST config_xml_indent_string); + ret = xmlTextWriterSetIndentString(writer->writer, BAD_CAST config_xml_indent_string); if (ret) { goto error_destroy; } @@ -350,8 +353,7 @@ end: return ret; } -int config_writer_open_element(struct config_writer *writer, - const char *element_name) +int config_writer_open_element(struct config_writer *writer, const char *element_name) { int ret; xmlChar *encoded_element_name; @@ -373,8 +375,7 @@ end: return ret >= 0 ? 0 : ret; } -int config_writer_write_attribute(struct config_writer *writer, - const char *name, const char *value) +int config_writer_write_attribute(struct config_writer *writer, const char *name, const char *value) { int ret; xmlChar *encoded_name = NULL; @@ -397,8 +398,7 @@ int config_writer_write_attribute(struct config_writer *writer, goto end; } - ret = xmlTextWriterWriteAttribute(writer->writer, encoded_name, - encoded_value); + ret = xmlTextWriterWriteAttribute(writer->writer, encoded_name, encoded_value); end: xmlFree(encoded_name); xmlFree(encoded_value); @@ -420,7 +420,8 @@ end: } int config_writer_write_element_unsigned_int(struct config_writer *writer, - const char *element_name, uint64_t value) + const char *element_name, + uint64_t value) { int ret; xmlChar *encoded_element_name; @@ -436,15 +437,16 @@ int config_writer_write_element_unsigned_int(struct config_writer *writer, goto end; } - ret = xmlTextWriterWriteFormatElement(writer->writer, - encoded_element_name, "%" PRIu64, value); + ret = xmlTextWriterWriteFormatElement( + writer->writer, encoded_element_name, "%" PRIu64, value); xmlFree(encoded_element_name); end: return ret >= 0 ? 0 : ret; } int config_writer_write_element_signed_int(struct config_writer *writer, - const char *element_name, int64_t value) + const char *element_name, + int64_t value) { int ret; xmlChar *encoded_element_name; @@ -460,23 +462,24 @@ int config_writer_write_element_signed_int(struct config_writer *writer, goto end; } - ret = xmlTextWriterWriteFormatElement(writer->writer, - encoded_element_name, "%" PRIi64, value); + ret = xmlTextWriterWriteFormatElement( + writer->writer, encoded_element_name, "%" PRIi64, value); xmlFree(encoded_element_name); end: return ret >= 0 ? 0 : ret; } int config_writer_write_element_bool(struct config_writer *writer, - const char *element_name, int value) + const char *element_name, + int value) { - return config_writer_write_element_string(writer, element_name, - value ? config_xml_true : config_xml_false); + return config_writer_write_element_string( + writer, element_name, value ? config_xml_true : config_xml_false); } int config_writer_write_element_double(struct config_writer *writer, - const char *element_name, - double value) + const char *element_name, + double value) { int ret; xmlChar *encoded_element_name; @@ -492,22 +495,21 @@ int config_writer_write_element_double(struct config_writer *writer, goto end; } - ret = xmlTextWriterWriteFormatElement( - writer->writer, encoded_element_name, "%f", value); + ret = xmlTextWriterWriteFormatElement(writer->writer, encoded_element_name, "%f", value); xmlFree(encoded_element_name); end: return ret >= 0 ? 0 : ret; } int config_writer_write_element_string(struct config_writer *writer, - const char *element_name, const char *value) + const char *element_name, + const char *value) { int ret; xmlChar *encoded_element_name = NULL; xmlChar *encoded_value = NULL; - if (!writer || !writer->writer || !element_name || !element_name[0] || - !value) { + if (!writer || !writer->writer || !element_name || !element_name[0] || !value) { ret = -1; goto end; } @@ -524,16 +526,16 @@ int config_writer_write_element_string(struct config_writer *writer, goto end; } - ret = xmlTextWriterWriteElement(writer->writer, encoded_element_name, - encoded_value); + ret = xmlTextWriterWriteElement(writer->writer, encoded_element_name, encoded_value); end: xmlFree(encoded_element_name); xmlFree(encoded_value); return ret >= 0 ? 0 : ret; } -static ATTR_FORMAT_PRINTF(2, 3) -void xml_error_handler(void *ctx __attribute__((unused)), const char *format, ...) +static ATTR_FORMAT_PRINTF(2, 3) void xml_error_handler(void *ctx __attribute__((unused)), + const char *format, + ...) { char *errMsg; va_list args; @@ -551,9 +553,7 @@ void xml_error_handler(void *ctx __attribute__((unused)), const char *format, .. free(errMsg); } -static -void fini_session_config_validation_ctx( - struct session_config_validation_ctx *ctx) +static void fini_session_config_validation_ctx(struct session_config_validation_ctx *ctx) { if (ctx->parser_ctx) { xmlSchemaFreeParserCtxt(ctx->parser_ctx); @@ -570,8 +570,7 @@ void fini_session_config_validation_ctx( memset(ctx, 0, sizeof(struct session_config_validation_ctx)); } -static -char *get_session_config_xsd_path(void) +static char *get_session_config_xsd_path(void) { char *xsd_path; const char *base_path = lttng_secure_getenv(DEFAULT_SESSION_CONFIG_XSD_PATH_ENV); @@ -583,8 +582,7 @@ char *get_session_config_xsd_path(void) } base_path_len = strlen(base_path); - max_path_len = base_path_len + - sizeof(DEFAULT_SESSION_CONFIG_XSD_FILENAME) + 1; + max_path_len = base_path_len + sizeof(DEFAULT_SESSION_CONFIG_XSD_FILENAME) + 1; xsd_path = zmalloc(max_path_len); if (!xsd_path) { goto end; @@ -600,9 +598,7 @@ end: return xsd_path; } -static -int init_session_config_validation_ctx( - struct session_config_validation_ctx *ctx) +static int init_session_config_validation_ctx(struct session_config_validation_ctx *ctx) { int ret; char *xsd_path = get_session_config_xsd_path(); @@ -618,8 +614,7 @@ int init_session_config_validation_ctx( ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } - xmlSchemaSetParserErrors(ctx->parser_ctx, xml_error_handler, - xml_error_handler, NULL); + xmlSchemaSetParserErrors(ctx->parser_ctx, xml_error_handler, xml_error_handler, NULL); ctx->schema = xmlSchemaParse(ctx->parser_ctx); if (!ctx->schema) { @@ -635,8 +630,8 @@ int init_session_config_validation_ctx( goto end; } - xmlSchemaSetValidErrors(ctx->schema_validation_ctx, xml_error_handler, - xml_error_handler, NULL); + xmlSchemaSetValidErrors( + ctx->schema_validation_ctx, xml_error_handler, xml_error_handler, NULL); ret = 0; end: @@ -648,8 +643,7 @@ end: return ret; } -static -int parse_uint(xmlChar *str, uint64_t *val) +static int parse_uint(xmlChar *str, uint64_t *val) { int ret; char *endptr; @@ -670,8 +664,7 @@ end: return ret; } -static -int parse_int(xmlChar *str, int64_t *val) +static int parse_int(xmlChar *str, int64_t *val) { int ret; char *endptr; @@ -692,8 +685,7 @@ end: return ret; } -static -int parse_bool(xmlChar *str, int *val) +static int parse_bool(xmlChar *str, int *val) { int ret = 0; @@ -702,23 +694,20 @@ int parse_bool(xmlChar *str, int *val) goto end; } - if (!strcmp((const char *) str, config_xml_true) || - !strcmp((const char *) str, "1")) { + if (!strcmp((const char *) str, config_xml_true) || !strcmp((const char *) str, "1")) { *val = 1; } else if (!strcmp((const char *) str, config_xml_false) || - !strcmp((const char *) str, "0")) { + !strcmp((const char *) str, "0")) { *val = 0; } else { - WARN("Invalid boolean value encountered (%s).", - (const char *) str); + WARN("Invalid boolean value encountered (%s).", (const char *) str); ret = -1; } end: return ret; } -static -int get_domain_type(xmlChar *domain) +static int get_domain_type(xmlChar *domain) { int ret; @@ -745,8 +734,7 @@ error: return -1; } -static -int get_buffer_type(xmlChar *buffer_type) +static int get_buffer_type(xmlChar *buffer_type) { int ret; @@ -769,8 +757,7 @@ error: return -1; } -static -int get_overwrite_mode(xmlChar *overwrite_mode) +static int get_overwrite_mode(xmlChar *overwrite_mode) { int ret; @@ -780,8 +767,7 @@ int get_overwrite_mode(xmlChar *overwrite_mode) if (!strcmp((char *) overwrite_mode, config_overwrite_mode_overwrite)) { ret = 1; - } else if (!strcmp((char *) overwrite_mode, - config_overwrite_mode_discard)) { + } else if (!strcmp((char *) overwrite_mode, config_overwrite_mode_discard)) { ret = 0; } else { goto error; @@ -792,8 +778,7 @@ error: return -1; } -static -int get_output_type(xmlChar *output_type) +static int get_output_type(xmlChar *output_type) { int ret; @@ -814,8 +799,7 @@ error: return -1; } -static -int get_event_type(xmlChar *event_type) +static int get_event_type(xmlChar *event_type) { int ret; @@ -829,13 +813,11 @@ int get_event_type(xmlChar *event_type) ret = LTTNG_EVENT_TRACEPOINT; } else if (!strcmp((char *) event_type, config_event_type_probe)) { ret = LTTNG_EVENT_PROBE; - } else if (!strcmp((char *) event_type, - config_event_type_userspace_probe)) { + } else if (!strcmp((char *) event_type, config_event_type_userspace_probe)) { ret = LTTNG_EVENT_USERSPACE_PROBE; } else if (!strcmp((char *) event_type, config_event_type_function)) { ret = LTTNG_EVENT_FUNCTION; - } else if (!strcmp((char *) event_type, - config_event_type_function_entry)) { + } else if (!strcmp((char *) event_type, config_event_type_function_entry)) { ret = LTTNG_EVENT_FUNCTION_ENTRY; } else if (!strcmp((char *) event_type, config_event_type_noop)) { ret = LTTNG_EVENT_NOOP; @@ -850,8 +832,7 @@ error: return -1; } -static -int get_loglevel_type(xmlChar *loglevel_type) +static int get_loglevel_type(xmlChar *loglevel_type) { int ret; @@ -861,11 +842,9 @@ int get_loglevel_type(xmlChar *loglevel_type) if (!strcmp((char *) loglevel_type, config_loglevel_type_all)) { ret = LTTNG_EVENT_LOGLEVEL_ALL; - } else if (!strcmp((char *) loglevel_type, - config_loglevel_type_range)) { + } else if (!strcmp((char *) loglevel_type, config_loglevel_type_range)) { ret = LTTNG_EVENT_LOGLEVEL_RANGE; - } else if (!strcmp((char *) loglevel_type, - config_loglevel_type_single)) { + } else if (!strcmp((char *) loglevel_type, config_loglevel_type_single)) { ret = LTTNG_EVENT_LOGLEVEL_SINGLE; } else { goto error; @@ -879,8 +858,7 @@ error: /* * Return the context type or -1 on error. */ -static -int get_context_type(xmlChar *context_type) +static int get_context_type(xmlChar *context_type) { int ret; @@ -890,116 +868,79 @@ int get_context_type(xmlChar *context_type) if (!strcmp((char *) context_type, config_event_context_pid)) { ret = LTTNG_EVENT_CONTEXT_PID; - } else if (!strcmp((char *) context_type, - config_event_context_procname)) { + } else if (!strcmp((char *) context_type, config_event_context_procname)) { ret = LTTNG_EVENT_CONTEXT_PROCNAME; - } else if (!strcmp((char *) context_type, - config_event_context_prio)) { + } else if (!strcmp((char *) context_type, config_event_context_prio)) { ret = LTTNG_EVENT_CONTEXT_PRIO; - } else if (!strcmp((char *) context_type, - config_event_context_nice)) { + } else if (!strcmp((char *) context_type, config_event_context_nice)) { ret = LTTNG_EVENT_CONTEXT_NICE; - } else if (!strcmp((char *) context_type, - config_event_context_vpid)) { + } else if (!strcmp((char *) context_type, config_event_context_vpid)) { ret = LTTNG_EVENT_CONTEXT_VPID; - } else if (!strcmp((char *) context_type, - config_event_context_tid)) { + } else if (!strcmp((char *) context_type, config_event_context_tid)) { ret = LTTNG_EVENT_CONTEXT_TID; - } else if (!strcmp((char *) context_type, - config_event_context_vtid)) { + } else if (!strcmp((char *) context_type, config_event_context_vtid)) { ret = LTTNG_EVENT_CONTEXT_VTID; - } else if (!strcmp((char *) context_type, - config_event_context_ppid)) { + } else if (!strcmp((char *) context_type, config_event_context_ppid)) { ret = LTTNG_EVENT_CONTEXT_PPID; - } else if (!strcmp((char *) context_type, - config_event_context_vppid)) { + } else if (!strcmp((char *) context_type, config_event_context_vppid)) { ret = LTTNG_EVENT_CONTEXT_VPPID; - } else if (!strcmp((char *) context_type, - config_event_context_pthread_id)) { + } else if (!strcmp((char *) context_type, config_event_context_pthread_id)) { ret = LTTNG_EVENT_CONTEXT_PTHREAD_ID; - } else if (!strcmp((char *) context_type, - config_event_context_hostname)) { + } else if (!strcmp((char *) context_type, config_event_context_hostname)) { ret = LTTNG_EVENT_CONTEXT_HOSTNAME; - } else if (!strcmp((char *) context_type, - config_event_context_ip)) { + } else if (!strcmp((char *) context_type, config_event_context_ip)) { ret = LTTNG_EVENT_CONTEXT_IP; - } else if (!strcmp((char *) context_type, - config_event_context_interruptible)) { + } else if (!strcmp((char *) context_type, config_event_context_interruptible)) { ret = LTTNG_EVENT_CONTEXT_INTERRUPTIBLE; - } else if (!strcmp((char *) context_type, - config_event_context_preemptible)) { + } else if (!strcmp((char *) context_type, config_event_context_preemptible)) { ret = LTTNG_EVENT_CONTEXT_PREEMPTIBLE; - } else if (!strcmp((char *) context_type, - config_event_context_need_reschedule)) { + } else if (!strcmp((char *) context_type, config_event_context_need_reschedule)) { ret = LTTNG_EVENT_CONTEXT_NEED_RESCHEDULE; - } else if (!strcmp((char *) context_type, - config_event_context_migratable)) { + } else if (!strcmp((char *) context_type, config_event_context_migratable)) { ret = LTTNG_EVENT_CONTEXT_MIGRATABLE; - } else if (!strcmp((char *) context_type, - config_event_context_callstack_user)) { + } else if (!strcmp((char *) context_type, config_event_context_callstack_user)) { ret = LTTNG_EVENT_CONTEXT_CALLSTACK_USER; - } else if (!strcmp((char *) context_type, - config_event_context_callstack_kernel)) { + } else if (!strcmp((char *) context_type, config_event_context_callstack_kernel)) { ret = LTTNG_EVENT_CONTEXT_CALLSTACK_KERNEL; - } else if (!strcmp((char *) context_type, - config_event_context_cgroup_ns)) { + } else if (!strcmp((char *) context_type, config_event_context_cgroup_ns)) { ret = LTTNG_EVENT_CONTEXT_CGROUP_NS; - } else if (!strcmp((char *) context_type, - config_event_context_ipc_ns)) { + } else if (!strcmp((char *) context_type, config_event_context_ipc_ns)) { ret = LTTNG_EVENT_CONTEXT_IPC_NS; - } else if (!strcmp((char *) context_type, - config_event_context_mnt_ns)) { + } else if (!strcmp((char *) context_type, config_event_context_mnt_ns)) { ret = LTTNG_EVENT_CONTEXT_MNT_NS; - } else if (!strcmp((char *) context_type, - config_event_context_net_ns)) { + } else if (!strcmp((char *) context_type, config_event_context_net_ns)) { ret = LTTNG_EVENT_CONTEXT_NET_NS; - } else if (!strcmp((char *) context_type, - config_event_context_pid_ns)) { + } else if (!strcmp((char *) context_type, config_event_context_pid_ns)) { ret = LTTNG_EVENT_CONTEXT_PID_NS; - } else if (!strcmp((char *) context_type, - config_event_context_time_ns)) { + } else if (!strcmp((char *) context_type, config_event_context_time_ns)) { ret = LTTNG_EVENT_CONTEXT_TIME_NS; - } else if (!strcmp((char *) context_type, - config_event_context_user_ns)) { + } else if (!strcmp((char *) context_type, config_event_context_user_ns)) { ret = LTTNG_EVENT_CONTEXT_USER_NS; - } else if (!strcmp((char *) context_type, - config_event_context_uts_ns)) { + } else if (!strcmp((char *) context_type, config_event_context_uts_ns)) { ret = LTTNG_EVENT_CONTEXT_UTS_NS; - } else if (!strcmp((char *) context_type, - config_event_context_uid)) { + } else if (!strcmp((char *) context_type, config_event_context_uid)) { ret = LTTNG_EVENT_CONTEXT_UID; - } else if (!strcmp((char *) context_type, - config_event_context_euid)) { + } else if (!strcmp((char *) context_type, config_event_context_euid)) { ret = LTTNG_EVENT_CONTEXT_EUID; - } else if (!strcmp((char *) context_type, - config_event_context_suid)) { + } else if (!strcmp((char *) context_type, config_event_context_suid)) { ret = LTTNG_EVENT_CONTEXT_SUID; - } else if (!strcmp((char *) context_type, - config_event_context_gid)) { + } else if (!strcmp((char *) context_type, config_event_context_gid)) { ret = LTTNG_EVENT_CONTEXT_GID; - } else if (!strcmp((char *) context_type, - config_event_context_egid)) { + } else if (!strcmp((char *) context_type, config_event_context_egid)) { ret = LTTNG_EVENT_CONTEXT_EGID; - } else if (!strcmp((char *) context_type, - config_event_context_sgid)) { + } else if (!strcmp((char *) context_type, config_event_context_sgid)) { ret = LTTNG_EVENT_CONTEXT_SGID; - } else if (!strcmp((char *) context_type, - config_event_context_vuid)) { + } else if (!strcmp((char *) context_type, config_event_context_vuid)) { ret = LTTNG_EVENT_CONTEXT_VUID; - } else if (!strcmp((char *) context_type, - config_event_context_veuid)) { + } else if (!strcmp((char *) context_type, config_event_context_veuid)) { ret = LTTNG_EVENT_CONTEXT_VEUID; - } else if (!strcmp((char *) context_type, - config_event_context_vsuid)) { + } else if (!strcmp((char *) context_type, config_event_context_vsuid)) { ret = LTTNG_EVENT_CONTEXT_VSUID; - } else if (!strcmp((char *) context_type, - config_event_context_vgid)) { + } else if (!strcmp((char *) context_type, config_event_context_vgid)) { ret = LTTNG_EVENT_CONTEXT_VGID; - } else if (!strcmp((char *) context_type, - config_event_context_vegid)) { + } else if (!strcmp((char *) context_type, config_event_context_vegid)) { ret = LTTNG_EVENT_CONTEXT_VEGID; - } else if (!strcmp((char *) context_type, - config_event_context_vsgid)) { + } else if (!strcmp((char *) context_type, config_event_context_vsgid)) { ret = LTTNG_EVENT_CONTEXT_VSGID; } else { goto error; @@ -1010,14 +951,12 @@ error: return -1; } -static -int init_domain(xmlNodePtr domain_node, struct lttng_domain *domain) +static int init_domain(xmlNodePtr domain_node, struct lttng_domain *domain) { int ret; xmlNodePtr node; - for (node = xmlFirstElementChild(domain_node); node; - node = xmlNextElementSibling(node)) { + for (node = xmlFirstElementChild(domain_node); node; node = xmlNextElementSibling(node)) { if (!strcmp((const char *) node->name, config_element_type)) { /* domain type */ xmlChar *node_content = xmlNodeGetContent(node); @@ -1034,8 +973,7 @@ int init_domain(xmlNodePtr domain_node, struct lttng_domain *domain) } domain->type = (lttng_domain_type) ret; - } else if (!strcmp((const char *) node->name, - config_element_buffer_type)) { + } else if (!strcmp((const char *) node->name, config_element_buffer_type)) { /* buffer type */ xmlChar *node_content = xmlNodeGetContent(node); if (!node_content) { @@ -1058,14 +996,12 @@ end: return ret; } -static -int get_net_output_uris(xmlNodePtr net_output_node, char **control_uri, - char **data_uri) +static int get_net_output_uris(xmlNodePtr net_output_node, char **control_uri, char **data_uri) { xmlNodePtr node; for (node = xmlFirstElementChild(net_output_node); node; - node = xmlNextElementSibling(node)) { + node = xmlNextElementSibling(node)) { if (!strcmp((const char *) node->name, config_element_control_uri)) { /* control_uri */ *control_uri = (char *) xmlNodeGetContent(node); @@ -1084,9 +1020,7 @@ int get_net_output_uris(xmlNodePtr net_output_node, char **control_uri, return *control_uri || *data_uri ? 0 : -LTTNG_ERR_LOAD_INVALID_CONFIG; } -static -int process_consumer_output(xmlNodePtr consumer_output_node, - struct consumer_output *output) +static int process_consumer_output(xmlNodePtr consumer_output_node, struct consumer_output *output) { int ret; xmlNodePtr node; @@ -1094,7 +1028,7 @@ int process_consumer_output(xmlNodePtr consumer_output_node, LTTNG_ASSERT(output); for (node = xmlFirstElementChild(consumer_output_node); node; - node = xmlNextElementSibling(node)) { + node = xmlNextElementSibling(node)) { if (!strcmp((const char *) node->name, config_element_enabled)) { xmlChar *enabled_str = xmlNodeGetContent(node); @@ -1119,8 +1053,7 @@ int process_consumer_output(xmlNodePtr consumer_output_node, goto end; } - if (!strcmp((const char *) output_type_node->name, - config_element_path)) { + if (!strcmp((const char *) output_type_node->name, config_element_path)) { /* path */ output->path = (char *) xmlNodeGetContent(output_type_node); if (!output->path) { @@ -1129,8 +1062,8 @@ int process_consumer_output(xmlNodePtr consumer_output_node, } } else { /* net_output */ - ret = get_net_output_uris(output_type_node, - &output->control_uri, &output->data_uri); + ret = get_net_output_uris( + output_type_node, &output->control_uri, &output->data_uri); if (ret) { goto end; } @@ -1149,9 +1082,9 @@ end: return ret; } -static -int create_snapshot_session(const char *session_name, xmlNodePtr output_node, - const struct config_load_session_override_attr *overrides) +static int create_snapshot_session(const char *session_name, + xmlNodePtr output_node, + const struct config_load_session_override_attr *overrides) { int ret; enum lttng_error_code ret_code; @@ -1182,10 +1115,9 @@ int create_snapshot_session(const char *session_name, xmlNodePtr output_node, snapshot_output_list_node = xmlFirstElementChild(output_node); /* Parse and create snapshot outputs */ - for (snapshot_output_node = - xmlFirstElementChild(snapshot_output_list_node); - snapshot_output_node; snapshot_output_node = - xmlNextElementSibling(snapshot_output_node)) { + for (snapshot_output_node = xmlFirstElementChild(snapshot_output_list_node); + snapshot_output_node; + snapshot_output_node = xmlNextElementSibling(snapshot_output_node)) { char *name = NULL; uint64_t max_size = UINT64_MAX; struct consumer_output output = {}; @@ -1195,17 +1127,15 @@ int create_snapshot_session(const char *session_name, xmlNodePtr output_node, const char *path = NULL; for (node = xmlFirstElementChild(snapshot_output_node); node; - node = xmlNextElementSibling(node)) { - if (!strcmp((const char *) node->name, - config_element_name)) { + node = xmlNextElementSibling(node)) { + if (!strcmp((const char *) node->name, config_element_name)) { /* name */ name = (char *) xmlNodeGetContent(node); if (!name) { ret = -LTTNG_ERR_NOMEM; goto error_snapshot_output; } - } else if (!strcmp((const char *) node->name, - config_element_max_size)) { + } else if (!strcmp((const char *) node->name, config_element_max_size)) { xmlChar *content = xmlNodeGetContent(node); /* max_size */ @@ -1269,23 +1199,21 @@ int create_snapshot_session(const char *session_name, xmlNodePtr output_node, } if (path) { - ret = lttng_snapshot_output_set_ctrl_url(path, - snapshot_output); + ret = lttng_snapshot_output_set_ctrl_url(path, snapshot_output); if (ret) { goto error_snapshot_output; } } else { if (control_uri) { ret = lttng_snapshot_output_set_ctrl_url(control_uri, - snapshot_output); + snapshot_output); if (ret) { goto error_snapshot_output; } } if (data_uri) { - ret = lttng_snapshot_output_set_data_url(data_uri, - snapshot_output); + ret = lttng_snapshot_output_set_data_url(data_uri, snapshot_output); if (ret) { goto error_snapshot_output; } @@ -1293,7 +1221,7 @@ int create_snapshot_session(const char *session_name, xmlNodePtr output_node, } ret = lttng_snapshot_add_output(session_name, snapshot_output); -error_snapshot_output: + error_snapshot_output: free(name); free(output.path); free(output.control_uri); @@ -1308,11 +1236,10 @@ end: return ret; } -static -int create_session(const char *name, - xmlNodePtr output_node, - uint64_t live_timer_interval, - const struct config_load_session_override_attr *overrides) +static int create_session(const char *name, + xmlNodePtr output_node, + uint64_t live_timer_interval, + const struct config_load_session_override_attr *overrides) { int ret = 0; enum lttng_error_code ret_code; @@ -1333,9 +1260,9 @@ int create_session(const char *name, } if (strcmp((const char *) consumer_output_node->name, - config_element_consumer_output)) { + config_element_consumer_output)) { WARN("Invalid output type, expected %s node", - config_element_consumer_output); + config_element_consumer_output); ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } @@ -1385,10 +1312,10 @@ int create_session(const char *name, * NULL is passed here and will be set right after. */ session_descriptor = lttng_session_descriptor_live_network_create( - name, control_uri, data_uri, live_timer_interval); + name, control_uri, data_uri, live_timer_interval); } else { session_descriptor = lttng_session_descriptor_network_create( - name, control_uri, data_uri); + name, control_uri, data_uri); } } else if (path != nullptr) { @@ -1417,10 +1344,8 @@ end: return ret; } -static -struct lttng_userspace_probe_location * -process_userspace_probe_function_attribute_node( - xmlNodePtr attribute_node) +static struct lttng_userspace_probe_location * +process_userspace_probe_function_attribute_node(xmlNodePtr attribute_node) { xmlNodePtr function_attribute_node; char *function_name = NULL, *binary_path = NULL; @@ -1433,30 +1358,27 @@ process_userspace_probe_function_attribute_node( * and check at the end if everything we need for this location type is * there. */ - for (function_attribute_node = - xmlFirstElementChild(attribute_node); - function_attribute_node; - function_attribute_node = xmlNextElementSibling( - function_attribute_node)) { + for (function_attribute_node = xmlFirstElementChild(attribute_node); + function_attribute_node; + function_attribute_node = xmlNextElementSibling(function_attribute_node)) { /* Handle function name, binary path and lookup method. */ if (!strcmp((const char *) function_attribute_node->name, - config_element_userspace_probe_function_location_function_name)) { + config_element_userspace_probe_function_location_function_name)) { function_name = (char *) xmlNodeGetContent(function_attribute_node); if (!function_name) { goto error; } } else if (!strcmp((const char *) function_attribute_node->name, - config_element_userspace_probe_location_binary_path)) { + config_element_userspace_probe_location_binary_path)) { binary_path = (char *) xmlNodeGetContent(function_attribute_node); if (!binary_path) { goto error; } } else if (!strcmp((const char *) function_attribute_node->name, - config_element_userspace_probe_lookup)) { + config_element_userspace_probe_lookup)) { char *lookup_method_name; - lookup_method_name = (char *) xmlNodeGetContent( - function_attribute_node); + lookup_method_name = (char *) xmlNodeGetContent(function_attribute_node); if (!lookup_method_name) { goto error; } @@ -1465,9 +1387,12 @@ process_userspace_probe_function_attribute_node( * function_default lookup method defaults to * function_elf lookup method at the moment. */ - if (!strcmp(lookup_method_name, config_element_userspace_probe_lookup_function_elf) - || !strcmp(lookup_method_name, config_element_userspace_probe_lookup_function_default)) { - lookup_method = lttng_userspace_probe_location_lookup_method_function_elf_create(); + if (!strcmp(lookup_method_name, + config_element_userspace_probe_lookup_function_elf) || + !strcmp(lookup_method_name, + config_element_userspace_probe_lookup_function_default)) { + lookup_method = + lttng_userspace_probe_location_lookup_method_function_elf_create(); if (!lookup_method) { PERROR("Error creating function default/ELF lookup method"); } @@ -1486,10 +1411,8 @@ process_userspace_probe_function_attribute_node( /* Check if all the necessary fields were found. */ if (binary_path && function_name && lookup_method) { /* Ownership of lookup_method is transferred. */ - location = - lttng_userspace_probe_location_function_create( - binary_path, function_name, - lookup_method); + location = lttng_userspace_probe_location_function_create( + binary_path, function_name, lookup_method); lookup_method = NULL; goto error; } @@ -1501,10 +1424,8 @@ error: return location; } -static -struct lttng_userspace_probe_location * -process_userspace_probe_tracepoint_attribute_node( - xmlNodePtr attribute_node) +static struct lttng_userspace_probe_location * +process_userspace_probe_tracepoint_attribute_node(xmlNodePtr attribute_node) { xmlNodePtr tracepoint_attribute_node; char *probe_name = NULL, *provider_name = NULL, *binary_path = NULL; @@ -1517,40 +1438,38 @@ process_userspace_probe_tracepoint_attribute_node( * and check at the end if everything we need for this location type is * there. */ - for (tracepoint_attribute_node = - xmlFirstElementChild(attribute_node); tracepoint_attribute_node; - tracepoint_attribute_node = xmlNextElementSibling( - tracepoint_attribute_node)) { + for (tracepoint_attribute_node = xmlFirstElementChild(attribute_node); + tracepoint_attribute_node; + tracepoint_attribute_node = xmlNextElementSibling(tracepoint_attribute_node)) { if (!strcmp((const char *) tracepoint_attribute_node->name, - config_element_userspace_probe_tracepoint_location_probe_name)) { + config_element_userspace_probe_tracepoint_location_probe_name)) { probe_name = (char *) xmlNodeGetContent(tracepoint_attribute_node); if (!probe_name) { goto error; } } else if (!strcmp((const char *) tracepoint_attribute_node->name, - config_element_userspace_probe_tracepoint_location_provider_name)) { + config_element_userspace_probe_tracepoint_location_provider_name)) { provider_name = (char *) xmlNodeGetContent(tracepoint_attribute_node); if (!provider_name) { goto error; } } else if (!strcmp((const char *) tracepoint_attribute_node->name, - config_element_userspace_probe_location_binary_path)) { + config_element_userspace_probe_location_binary_path)) { binary_path = (char *) xmlNodeGetContent(tracepoint_attribute_node); if (!binary_path) { goto error; } } else if (!strcmp((const char *) tracepoint_attribute_node->name, - config_element_userspace_probe_lookup)) { + config_element_userspace_probe_lookup)) { char *lookup_method_name; - lookup_method_name = (char *) xmlNodeGetContent( - tracepoint_attribute_node); + lookup_method_name = (char *) xmlNodeGetContent(tracepoint_attribute_node); if (!lookup_method_name) { goto error; } if (!strcmp(lookup_method_name, - config_element_userspace_probe_lookup_tracepoint_sdt)) { + config_element_userspace_probe_lookup_tracepoint_sdt)) { lookup_method = lttng_userspace_probe_location_lookup_method_tracepoint_sdt_create(); if (!lookup_method) { @@ -1572,10 +1491,8 @@ process_userspace_probe_tracepoint_attribute_node( /* Check if all the necessary fields were found. */ if (binary_path && provider_name && probe_name && lookup_method) { /* Ownership of lookup_method is transferred. */ - location = - lttng_userspace_probe_location_tracepoint_create( - binary_path, provider_name, - probe_name, lookup_method); + location = lttng_userspace_probe_location_tracepoint_create( + binary_path, provider_name, probe_name, lookup_method); lookup_method = NULL; goto error; } @@ -1588,17 +1505,15 @@ error: return location; } -static -int process_probe_attribute_node(xmlNodePtr probe_attribute_node, - struct lttng_event_probe_attr *attr) +static int process_probe_attribute_node(xmlNodePtr probe_attribute_node, + struct lttng_event_probe_attr *attr) { int ret; LTTNG_ASSERT(probe_attribute_node); LTTNG_ASSERT(attr); - if (!strcmp((const char *) probe_attribute_node->name, - config_element_address)) { + if (!strcmp((const char *) probe_attribute_node->name, config_element_address)) { xmlChar *content; uint64_t addr = 0; @@ -1617,8 +1532,7 @@ int process_probe_attribute_node(xmlNodePtr probe_attribute_node, } attr->addr = addr; - } else if (!strcmp((const char *) probe_attribute_node->name, - config_element_offset)) { + } else if (!strcmp((const char *) probe_attribute_node->name, config_element_offset)) { xmlChar *content; uint64_t offset = 0; @@ -1637,8 +1551,7 @@ int process_probe_attribute_node(xmlNodePtr probe_attribute_node, } attr->offset = offset; - } else if (!strcmp((const char *) probe_attribute_node->name, - config_element_symbol_name)) { + } else if (!strcmp((const char *) probe_attribute_node->name, config_element_symbol_name)) { xmlChar *content; /* symbol_name */ @@ -1648,14 +1561,13 @@ int process_probe_attribute_node(xmlNodePtr probe_attribute_node, goto end; } - ret = lttng_strncpy(attr->symbol_name, - (const char *) content, - LTTNG_SYMBOL_NAME_LEN); + ret = lttng_strncpy( + attr->symbol_name, (const char *) content, LTTNG_SYMBOL_NAME_LEN); if (ret == -1) { - ERR("symbol name \"%s\"'s length (%zu) exceeds the maximal permitted length (%d) in session configuration", - (const char *) content, - strlen((const char *) content), - LTTNG_SYMBOL_NAME_LEN); + ERR("symbol name \"%s\"'s length (%zu) exceeds the maximal permitted length (%d) in session configuration", + (const char *) content, + strlen((const char *) content), + LTTNG_SYMBOL_NAME_LEN); ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; free(content); goto end; @@ -1667,9 +1579,10 @@ end: return ret; } -static -int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, - const char *channel_name, const enum process_event_node_phase phase) +static int process_event_node(xmlNodePtr event_node, + struct lttng_handle *handle, + const char *channel_name, + const enum process_event_node_phase phase) { int ret = 0, i; xmlNodePtr node; @@ -1689,8 +1602,7 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, } /* Initialize default log level which varies by domain */ - switch (handle->domain.type) - { + switch (handle->domain.type) { case LTTNG_DOMAIN_JUL: event->loglevel = LTTNG_LOGLEVEL_JUL_ALL; break; @@ -1708,8 +1620,7 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, abort(); } - for (node = xmlFirstElementChild(event_node); node; - node = xmlNextElementSibling(node)) { + for (node = xmlFirstElementChild(event_node); node; node = xmlNextElementSibling(node)) { if (!strcmp((const char *) node->name, config_element_name)) { xmlChar *content; @@ -1720,21 +1631,19 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, goto end; } - ret = lttng_strncpy(event->name, - (const char *) content, - LTTNG_SYMBOL_NAME_LEN); + ret = lttng_strncpy( + event->name, (const char *) content, LTTNG_SYMBOL_NAME_LEN); if (ret == -1) { WARN("Event \"%s\"'s name length (%zu) exceeds the maximal permitted length (%d) in session configuration", - (const char *) content, - strlen((const char *) content), - LTTNG_SYMBOL_NAME_LEN); + (const char *) content, + strlen((const char *) content), + LTTNG_SYMBOL_NAME_LEN); ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; free(content); goto end; } free(content); - } else if (!strcmp((const char *) node->name, - config_element_enabled)) { + } else if (!strcmp((const char *) node->name, config_element_enabled)) { xmlChar *content = xmlNodeGetContent(node); /* enabled */ @@ -1749,8 +1658,7 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } - } else if (!strcmp((const char *) node->name, - config_element_type)) { + } else if (!strcmp((const char *) node->name, config_element_type)) { xmlChar *content = xmlNodeGetContent(node); /* type */ @@ -1767,8 +1675,7 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, } event->type = (lttng_event_type) ret; - } else if (!strcmp((const char *) node->name, - config_element_loglevel_type)) { + } else if (!strcmp((const char *) node->name, config_element_loglevel_type)) { xmlChar *content = xmlNodeGetContent(node); /* loglevel_type */ @@ -1785,8 +1692,7 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, } event->loglevel_type = (lttng_loglevel_type) ret; - } else if (!strcmp((const char *) node->name, - config_element_loglevel)) { + } else if (!strcmp((const char *) node->name, config_element_loglevel)) { xmlChar *content; int64_t loglevel = 0; @@ -1811,10 +1717,8 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, } event->loglevel = loglevel; - } else if (!strcmp((const char *) node->name, - config_element_filter)) { - xmlChar *content = - xmlNodeGetContent(node); + } else if (!strcmp((const char *) node->name, config_element_filter)) { + xmlChar *content = xmlNodeGetContent(node); /* filter */ if (!content) { @@ -1829,8 +1733,7 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, ret = -LTTNG_ERR_NOMEM; goto end; } - } else if (!strcmp((const char *) node->name, - config_element_exclusions)) { + } else if (!strcmp((const char *) node->name, config_element_exclusions)) { xmlNodePtr exclusion_node; int exclusion_index = 0; @@ -1857,9 +1760,8 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, } for (exclusion_node = xmlFirstElementChild(node); exclusion_node; - exclusion_node = xmlNextElementSibling(exclusion_node)) { - xmlChar *content = - xmlNodeGetContent(exclusion_node); + exclusion_node = xmlNextElementSibling(exclusion_node)) { + xmlChar *content = xmlNodeGetContent(exclusion_node); if (!content) { ret = -LTTNG_ERR_NOMEM; @@ -1876,8 +1778,7 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, } event->exclusion = 1; - } else if (!strcmp((const char *) node->name, - config_element_attributes)) { + } else if (!strcmp((const char *) node->name, config_element_attributes)) { xmlNodePtr attribute_node = xmlFirstElementChild(node); /* attributes */ @@ -1887,23 +1788,22 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, } if (!strcmp((const char *) attribute_node->name, - config_element_probe_attributes)) { + config_element_probe_attributes)) { xmlNodePtr probe_attribute_node; /* probe_attributes */ - for (probe_attribute_node = - xmlFirstElementChild(attribute_node); probe_attribute_node; - probe_attribute_node = xmlNextElementSibling( - probe_attribute_node)) { - + for (probe_attribute_node = xmlFirstElementChild(attribute_node); + probe_attribute_node; + probe_attribute_node = + xmlNextElementSibling(probe_attribute_node)) { ret = process_probe_attribute_node(probe_attribute_node, - &event->attr.probe); + &event->attr.probe); if (ret) { goto end; } } } else if (!strcmp((const char *) attribute_node->name, - config_element_function_attributes)) { + config_element_function_attributes)) { size_t sym_len; xmlChar *content; xmlNodePtr symbol_node = xmlFirstElementChild(attribute_node); @@ -1924,8 +1824,7 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, } ret = lttng_strncpy( - event->attr.ftrace.symbol_name, - (char *) content, sym_len); + event->attr.ftrace.symbol_name, (char *) content, sym_len); if (ret == -1) { ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; free(content); @@ -1933,43 +1832,39 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, } free(content); } else if (!strcmp((const char *) attribute_node->name, - config_element_userspace_probe_tracepoint_attributes)) { + config_element_userspace_probe_tracepoint_attributes)) { struct lttng_userspace_probe_location *location; - location = process_userspace_probe_tracepoint_attribute_node(attribute_node); + location = process_userspace_probe_tracepoint_attribute_node( + attribute_node); if (!location) { WARN("Error processing userspace probe tracepoint attribute"); ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } - ret = lttng_event_set_userspace_probe_location( - event, location); + ret = lttng_event_set_userspace_probe_location(event, location); if (ret) { WARN("Error setting userspace probe location field"); - lttng_userspace_probe_location_destroy( - location); + lttng_userspace_probe_location_destroy(location); ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } } else if (!strcmp((const char *) attribute_node->name, - config_element_userspace_probe_function_attributes)) { + config_element_userspace_probe_function_attributes)) { struct lttng_userspace_probe_location *location; - location = - process_userspace_probe_function_attribute_node( - attribute_node); + location = process_userspace_probe_function_attribute_node( + attribute_node); if (!location) { WARN("Error processing userspace probe function attribute"); ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } - ret = lttng_event_set_userspace_probe_location( - event, location); + ret = lttng_event_set_userspace_probe_location(event, location); if (ret) { WARN("Error setting userspace probe location field"); - lttng_userspace_probe_location_destroy( - location); + lttng_userspace_probe_location_destroy(location); ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } @@ -1982,8 +1877,8 @@ int process_event_node(xmlNodePtr event_node, struct lttng_handle *handle, } if ((event->enabled && phase == ENABLE) || phase == CREATION) { - ret = lttng_enable_event_with_exclusions(handle, event, channel_name, - filter_expression, exclusion_count, exclusions); + ret = lttng_enable_event_with_exclusions( + handle, event, channel_name, filter_expression, exclusion_count, exclusions); if (ret < 0) { WARN("Enabling event (name:%s) on load failed.", event->name); ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; @@ -2002,9 +1897,8 @@ end: return ret; } -static -int process_events_node(xmlNodePtr events_node, struct lttng_handle *handle, - const char *channel_name) +static int +process_events_node(xmlNodePtr events_node, struct lttng_handle *handle, const char *channel_name) { int ret = 0; struct lttng_event event; @@ -2014,8 +1908,7 @@ int process_events_node(xmlNodePtr events_node, struct lttng_handle *handle, LTTNG_ASSERT(handle); LTTNG_ASSERT(channel_name); - for (node = xmlFirstElementChild(events_node); node; - node = xmlNextElementSibling(node)) { + for (node = xmlFirstElementChild(events_node); node; node = xmlNextElementSibling(node)) { ret = process_event_node(node, handle, channel_name, CREATION); if (ret) { goto end; @@ -2035,8 +1928,7 @@ int process_events_node(xmlNodePtr events_node, struct lttng_handle *handle, goto end; } - for (node = xmlFirstElementChild(events_node); node; - node = xmlNextElementSibling(node)) { + for (node = xmlFirstElementChild(events_node); node; node = xmlNextElementSibling(node)) { ret = process_event_node(node, handle, channel_name, ENABLE); if (ret) { goto end; @@ -2047,10 +1939,10 @@ end: return ret; } -static -int process_channel_attr_node(xmlNodePtr attr_node, - struct lttng_channel *channel, xmlNodePtr *contexts_node, - xmlNodePtr *events_node) +static int process_channel_attr_node(xmlNodePtr attr_node, + struct lttng_channel *channel, + xmlNodePtr *contexts_node, + xmlNodePtr *events_node) { int ret; @@ -2069,21 +1961,18 @@ int process_channel_attr_node(xmlNodePtr attr_node, goto end; } - ret = lttng_strncpy(channel->name, - (const char *) content, - LTTNG_SYMBOL_NAME_LEN); + ret = lttng_strncpy(channel->name, (const char *) content, LTTNG_SYMBOL_NAME_LEN); if (ret == -1) { WARN("Channel \"%s\"'s name length (%zu) exceeds the maximal permitted length (%d) in session configuration", - (const char *) content, - strlen((const char *) content), - LTTNG_SYMBOL_NAME_LEN); + (const char *) content, + strlen((const char *) content), + LTTNG_SYMBOL_NAME_LEN); ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; free(content); goto end; } free(content); - } else if (!strcmp((const char *) attr_node->name, - config_element_enabled)) { + } else if (!strcmp((const char *) attr_node->name, config_element_enabled)) { xmlChar *content; int enabled; @@ -2102,8 +1991,7 @@ int process_channel_attr_node(xmlNodePtr attr_node, } channel->enabled = enabled; - } else if (!strcmp((const char *) attr_node->name, - config_element_overwrite_mode)) { + } else if (!strcmp((const char *) attr_node->name, config_element_overwrite_mode)) { xmlChar *content; /* overwrite_mode */ @@ -2121,8 +2009,7 @@ int process_channel_attr_node(xmlNodePtr attr_node, } channel->attr.overwrite = ret; - } else if (!strcmp((const char *) attr_node->name, - config_element_subbuf_size)) { + } else if (!strcmp((const char *) attr_node->name, config_element_subbuf_size)) { xmlChar *content; /* subbuffer_size */ @@ -2138,8 +2025,7 @@ int process_channel_attr_node(xmlNodePtr attr_node, ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } - } else if (!strcmp((const char *) attr_node->name, - config_element_num_subbuf)) { + } else if (!strcmp((const char *) attr_node->name, config_element_num_subbuf)) { xmlChar *content; /* subbuffer_count */ @@ -2155,8 +2041,7 @@ int process_channel_attr_node(xmlNodePtr attr_node, ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } - } else if (!strcmp((const char *) attr_node->name, - config_element_switch_timer_interval)) { + } else if (!strcmp((const char *) attr_node->name, config_element_switch_timer_interval)) { xmlChar *content; uint64_t switch_timer_interval = 0; @@ -2180,10 +2065,8 @@ int process_channel_attr_node(xmlNodePtr attr_node, goto end; } - channel->attr.switch_timer_interval = - switch_timer_interval; - } else if (!strcmp((const char *) attr_node->name, - config_element_read_timer_interval)) { + channel->attr.switch_timer_interval = switch_timer_interval; + } else if (!strcmp((const char *) attr_node->name, config_element_read_timer_interval)) { xmlChar *content; uint64_t read_timer_interval = 0; @@ -2207,10 +2090,8 @@ int process_channel_attr_node(xmlNodePtr attr_node, goto end; } - channel->attr.read_timer_interval = - read_timer_interval; - } else if (!strcmp((const char *) attr_node->name, - config_element_output_type)) { + channel->attr.read_timer_interval = read_timer_interval; + } else if (!strcmp((const char *) attr_node->name, config_element_output_type)) { xmlChar *content; /* output_type */ @@ -2228,8 +2109,7 @@ int process_channel_attr_node(xmlNodePtr attr_node, } channel->attr.output = (lttng_event_output) ret; - } else if (!strcmp((const char *) attr_node->name, - config_element_tracefile_size)) { + } else if (!strcmp((const char *) attr_node->name, config_element_tracefile_size)) { xmlChar *content; /* tracefile_size */ @@ -2245,8 +2125,7 @@ int process_channel_attr_node(xmlNodePtr attr_node, ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } - } else if (!strcmp((const char *) attr_node->name, - config_element_tracefile_count)) { + } else if (!strcmp((const char *) attr_node->name, config_element_tracefile_count)) { xmlChar *content; /* tracefile_count */ @@ -2262,8 +2141,7 @@ int process_channel_attr_node(xmlNodePtr attr_node, ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } - } else if (!strcmp((const char *) attr_node->name, - config_element_live_timer_interval)) { + } else if (!strcmp((const char *) attr_node->name, config_element_live_timer_interval)) { xmlChar *content; uint64_t live_timer_interval = 0; @@ -2287,10 +2165,8 @@ int process_channel_attr_node(xmlNodePtr attr_node, goto end; } - channel->attr.live_timer_interval = - live_timer_interval; - } else if (!strcmp((const char *) attr_node->name, - config_element_monitor_timer_interval)) { + channel->attr.live_timer_interval = live_timer_interval; + } else if (!strcmp((const char *) attr_node->name, config_element_monitor_timer_interval)) { xmlChar *content; uint64_t monitor_timer_interval = 0; @@ -2308,14 +2184,12 @@ int process_channel_attr_node(xmlNodePtr attr_node, goto end; } - ret = lttng_channel_set_monitor_timer_interval(channel, - monitor_timer_interval); + ret = lttng_channel_set_monitor_timer_interval(channel, monitor_timer_interval); if (ret) { ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } - } else if (!strcmp((const char *) attr_node->name, - config_element_blocking_timeout)) { + } else if (!strcmp((const char *) attr_node->name, config_element_blocking_timeout)) { xmlChar *content; int64_t blocking_timeout = 0; @@ -2333,14 +2207,12 @@ int process_channel_attr_node(xmlNodePtr attr_node, goto end; } - ret = lttng_channel_set_blocking_timeout(channel, - blocking_timeout); + ret = lttng_channel_set_blocking_timeout(channel, blocking_timeout); if (ret) { ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } - } else if (!strcmp((const char *) attr_node->name, - config_element_events)) { + } else if (!strcmp((const char *) attr_node->name, config_element_events)) { /* events */ *events_node = attr_node; } else { @@ -2352,9 +2224,8 @@ end: return ret; } -static -int process_context_node(xmlNodePtr context_node, - struct lttng_handle *handle, const char *channel_name) +static int +process_context_node(xmlNodePtr context_node, struct lttng_handle *handle, const char *channel_name) { int ret; struct lttng_event_context context; @@ -2370,8 +2241,7 @@ int process_context_node(xmlNodePtr context_node, memset(&context, 0, sizeof(context)); - if (!strcmp((const char *) context_child_node->name, - config_element_type)) { + if (!strcmp((const char *) context_child_node->name, config_element_type)) { /* type */ xmlChar *content = xmlNodeGetContent(context_child_node); @@ -2388,19 +2258,16 @@ int process_context_node(xmlNodePtr context_node, } context.ctx = (lttng_event_context_type) ret; - } else if (!strcmp((const char *) context_child_node->name, - config_element_context_perf)) { + } else if (!strcmp((const char *) context_child_node->name, config_element_context_perf)) { /* perf */ xmlNodePtr perf_attr_node; context.ctx = handle->domain.type == LTTNG_DOMAIN_KERNEL ? LTTNG_EVENT_CONTEXT_PERF_CPU_COUNTER : LTTNG_EVENT_CONTEXT_PERF_THREAD_COUNTER; - for (perf_attr_node = xmlFirstElementChild(context_child_node); - perf_attr_node; perf_attr_node = - xmlNextElementSibling(perf_attr_node)) { - if (!strcmp((const char *) perf_attr_node->name, - config_element_type)) { + for (perf_attr_node = xmlFirstElementChild(context_child_node); perf_attr_node; + perf_attr_node = xmlNextElementSibling(perf_attr_node)) { + if (!strcmp((const char *) perf_attr_node->name, config_element_type)) { xmlChar *content; uint64_t type = 0; @@ -2426,7 +2293,7 @@ int process_context_node(xmlNodePtr context_node, context.u.perf_counter.type = type; } else if (!strcmp((const char *) perf_attr_node->name, - config_element_config)) { + config_element_config)) { xmlChar *content; uint64_t config = 0; @@ -2446,7 +2313,7 @@ int process_context_node(xmlNodePtr context_node, context.u.perf_counter.config = config; } else if (!strcmp((const char *) perf_attr_node->name, - config_element_name)) { + config_element_name)) { xmlChar *content; /* name */ @@ -2457,13 +2324,13 @@ int process_context_node(xmlNodePtr context_node, } ret = lttng_strncpy(context.u.perf_counter.name, - (const char *) content, - LTTNG_SYMBOL_NAME_LEN); + (const char *) content, + LTTNG_SYMBOL_NAME_LEN); if (ret == -1) { WARN("Perf counter \"%s\"'s name length (%zu) exceeds the maximal permitted length (%d) in session configuration", - (const char *) content, - strlen((const char *) content), - LTTNG_SYMBOL_NAME_LEN); + (const char *) content, + strlen((const char *) content), + LTTNG_SYMBOL_NAME_LEN); ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; free(content); goto end; @@ -2471,21 +2338,18 @@ int process_context_node(xmlNodePtr context_node, free(content); } } - } else if (!strcmp((const char *) context_child_node->name, - config_element_context_app)) { + } else if (!strcmp((const char *) context_child_node->name, config_element_context_app)) { /* application context */ xmlNodePtr app_ctx_node; context.ctx = LTTNG_EVENT_CONTEXT_APP_CONTEXT; - for (app_ctx_node = xmlFirstElementChild(context_child_node); - app_ctx_node; app_ctx_node = - xmlNextElementSibling(app_ctx_node)) { + for (app_ctx_node = xmlFirstElementChild(context_child_node); app_ctx_node; + app_ctx_node = xmlNextElementSibling(app_ctx_node)) { xmlChar *content; - char **target = strcmp( - (const char *) app_ctx_node->name, - config_element_context_app_provider_name) == 0 ? - &context.u.app_ctx.provider_name : - &context.u.app_ctx.ctx_name; + char **target = strcmp((const char *) app_ctx_node->name, + config_element_context_app_provider_name) == 0 ? + &context.u.app_ctx.provider_name : + &context.u.app_ctx.ctx_name; content = xmlNodeGetContent(app_ctx_node); if (!content) { @@ -2510,15 +2374,15 @@ end: return ret; } -static -int process_contexts_node(xmlNodePtr contexts_node, - struct lttng_handle *handle, const char *channel_name) +static int process_contexts_node(xmlNodePtr contexts_node, + struct lttng_handle *handle, + const char *channel_name) { int ret = 0; xmlNodePtr context_node; for (context_node = xmlFirstElementChild(contexts_node); context_node; - context_node = xmlNextElementSibling(context_node)) { + context_node = xmlNextElementSibling(context_node)) { ret = process_context_node(context_node, handle, channel_name); if (ret) { goto end; @@ -2529,11 +2393,11 @@ end: } static int get_tracker_elements(enum lttng_process_attr process_attr, - const char **element_id_tracker, - const char **element_value_type, - const char **element_value, - const char **element_value_alias, - const char **element_name) + const char **element_id_tracker, + const char **element_value_type, + const char **element_value, + const char **element_value_alias, + const char **element_name) { int ret = 0; @@ -2586,8 +2450,7 @@ static int get_tracker_elements(enum lttng_process_attr process_attr, return ret; } -static int process_legacy_pid_tracker_node( - xmlNodePtr trackers_node, struct lttng_handle *handle) +static int process_legacy_pid_tracker_node(xmlNodePtr trackers_node, struct lttng_handle *handle) { int ret = 0, child_count; xmlNodePtr targets_node = NULL; @@ -2600,34 +2463,32 @@ static int process_legacy_pid_tracker_node( enum lttng_error_code tracker_handle_ret_code; struct lttng_process_attr_tracker_handle *tracker_handle = NULL; enum lttng_process_attr_tracker_handle_status status; - const enum lttng_process_attr process_attr = - handle->domain.type == LTTNG_DOMAIN_UST ? - LTTNG_PROCESS_ATTR_VIRTUAL_PROCESS_ID : - LTTNG_PROCESS_ATTR_PROCESS_ID; + const enum lttng_process_attr process_attr = handle->domain.type == LTTNG_DOMAIN_UST ? + LTTNG_PROCESS_ATTR_VIRTUAL_PROCESS_ID : + LTTNG_PROCESS_ATTR_PROCESS_ID; LTTNG_ASSERT(handle); tracker_handle_ret_code = lttng_session_get_tracker_handle( - handle->session_name, handle->domain.type, - process_attr, - &tracker_handle); + handle->session_name, handle->domain.type, process_attr, &tracker_handle); if (tracker_handle_ret_code != LTTNG_OK) { ret = LTTNG_ERR_INVALID; goto end; } - ret = get_tracker_elements(process_attr, &element_id_tracker, - &element_target_id, &element_id, &element_id_alias, - &element_name); + ret = get_tracker_elements(process_attr, + &element_id_tracker, + &element_target_id, + &element_id, + &element_id_alias, + &element_name); if (ret) { goto end; } /* Get the targets node */ - for (node = xmlFirstElementChild(trackers_node); node; - node = xmlNextElementSibling(node)) { - if (!strcmp((const char *) node->name, - config_element_tracker_targets_legacy)) { + for (node = xmlFirstElementChild(trackers_node); node; node = xmlNextElementSibling(node)) { + if (!strcmp((const char *) node->name, config_element_tracker_targets_legacy)) { targets_node = node; break; } @@ -2641,24 +2502,22 @@ static int process_legacy_pid_tracker_node( /* Go through all id target node */ child_count = xmlChildElementCount(targets_node); status = lttng_process_attr_tracker_handle_set_tracking_policy( - tracker_handle, - child_count == 0 ? LTTNG_TRACKING_POLICY_EXCLUDE_ALL : - LTTNG_TRACKING_POLICY_INCLUDE_SET); + tracker_handle, + child_count == 0 ? LTTNG_TRACKING_POLICY_EXCLUDE_ALL : + LTTNG_TRACKING_POLICY_INCLUDE_SET); if (status != LTTNG_PROCESS_ATTR_TRACKER_HANDLE_STATUS_OK) { ret = LTTNG_ERR_UNK; goto end; } /* Add all tracked values. */ - for (node = xmlFirstElementChild(targets_node); node; - node = xmlNextElementSibling(node)) { + for (node = xmlFirstElementChild(targets_node); node; node = xmlNextElementSibling(node)) { xmlNodePtr pid_target_node = node; /* get pid_target node and track it */ for (node = xmlFirstElementChild(pid_target_node); node; - node = xmlNextElementSibling(node)) { - if (!strcmp((const char *) node->name, - config_element_tracker_pid_legacy)) { + node = xmlNextElementSibling(node)) { + if (!strcmp((const char *) node->name, config_element_tracker_pid_legacy)) { int64_t id; xmlChar *content = xmlNodeGetContent(node); @@ -2676,14 +2535,14 @@ static int process_legacy_pid_tracker_node( switch (process_attr) { case LTTNG_PROCESS_ATTR_PROCESS_ID: - status = lttng_process_attr_process_id_tracker_handle_add_pid( - tracker_handle, - (pid_t) id); + status = + lttng_process_attr_process_id_tracker_handle_add_pid( + tracker_handle, (pid_t) id); break; case LTTNG_PROCESS_ATTR_VIRTUAL_PROCESS_ID: - status = lttng_process_attr_virtual_process_id_tracker_handle_add_pid( - tracker_handle, - (pid_t) id); + status = + lttng_process_attr_virtual_process_id_tracker_handle_add_pid( + tracker_handle, (pid_t) id); break; default: ret = LTTNG_ERR_INVALID; @@ -2715,11 +2574,11 @@ static int process_legacy_pid_tracker_node( end: lttng_process_attr_tracker_handle_destroy(tracker_handle); return ret; - } +} static int process_id_tracker_node(xmlNodePtr id_tracker_node, - struct lttng_handle *handle, - enum lttng_process_attr process_attr) + struct lttng_handle *handle, + enum lttng_process_attr process_attr) { int ret = 0, child_count; xmlNodePtr values_node = NULL; @@ -2737,25 +2596,26 @@ static int process_id_tracker_node(xmlNodePtr id_tracker_node, LTTNG_ASSERT(id_tracker_node); tracker_handle_ret_code = lttng_session_get_tracker_handle( - handle->session_name, handle->domain.type, process_attr, - &tracker_handle); + handle->session_name, handle->domain.type, process_attr, &tracker_handle); if (tracker_handle_ret_code != LTTNG_OK) { ret = LTTNG_ERR_INVALID; goto end; } - ret = get_tracker_elements(process_attr, &element_id_tracker, - &element_target_id, &element_id, &element_id_alias, - &element_name); + ret = get_tracker_elements(process_attr, + &element_id_tracker, + &element_target_id, + &element_id, + &element_id_alias, + &element_name); if (ret) { goto end; } /* get the values node */ for (node = xmlFirstElementChild(id_tracker_node); node; - node = xmlNextElementSibling(node)) { - if (!strcmp((const char *) node->name, - config_element_process_attr_values)) { + node = xmlNextElementSibling(node)) { + if (!strcmp((const char *) node->name, config_element_process_attr_values)) { values_node = node; break; } @@ -2769,26 +2629,24 @@ static int process_id_tracker_node(xmlNodePtr id_tracker_node, /* Go through all id target node */ child_count = xmlChildElementCount(values_node); status = lttng_process_attr_tracker_handle_set_tracking_policy( - tracker_handle, - child_count == 0 ? LTTNG_TRACKING_POLICY_EXCLUDE_ALL : - LTTNG_TRACKING_POLICY_INCLUDE_SET); + tracker_handle, + child_count == 0 ? LTTNG_TRACKING_POLICY_EXCLUDE_ALL : + LTTNG_TRACKING_POLICY_INCLUDE_SET); if (status != LTTNG_PROCESS_ATTR_TRACKER_HANDLE_STATUS_OK) { ret = LTTNG_ERR_UNK; goto end; } /* Add all tracked values. */ - for (node = xmlFirstElementChild(values_node); node; - node = xmlNextElementSibling(node)) { + for (node = xmlFirstElementChild(values_node); node; node = xmlNextElementSibling(node)) { xmlNodePtr id_target_node = node; /* get id node and track it */ for (node = xmlFirstElementChild(id_target_node); node; - node = xmlNextElementSibling(node)) { + node = xmlNextElementSibling(node)) { if (!strcmp((const char *) node->name, element_id) || - (element_id_alias && - !strcmp((const char *) node->name, - element_id_alias))) { + (element_id_alias && + !strcmp((const char *) node->name, element_id_alias))) { int64_t id; xmlChar *content = xmlNodeGetContent(node); @@ -2806,42 +2664,39 @@ static int process_id_tracker_node(xmlNodePtr id_tracker_node, switch (process_attr) { case LTTNG_PROCESS_ATTR_PROCESS_ID: - status = lttng_process_attr_process_id_tracker_handle_add_pid( - tracker_handle, - (pid_t) id); + status = + lttng_process_attr_process_id_tracker_handle_add_pid( + tracker_handle, (pid_t) id); break; case LTTNG_PROCESS_ATTR_VIRTUAL_PROCESS_ID: - status = lttng_process_attr_virtual_process_id_tracker_handle_add_pid( - tracker_handle, - (pid_t) id); + status = + lttng_process_attr_virtual_process_id_tracker_handle_add_pid( + tracker_handle, (pid_t) id); break; case LTTNG_PROCESS_ATTR_USER_ID: status = lttng_process_attr_user_id_tracker_handle_add_uid( - tracker_handle, - (uid_t) id); + tracker_handle, (uid_t) id); break; case LTTNG_PROCESS_ATTR_VIRTUAL_USER_ID: - status = lttng_process_attr_virtual_user_id_tracker_handle_add_uid( - tracker_handle, - (uid_t) id); + status = + lttng_process_attr_virtual_user_id_tracker_handle_add_uid( + tracker_handle, (uid_t) id); break; case LTTNG_PROCESS_ATTR_GROUP_ID: status = lttng_process_attr_group_id_tracker_handle_add_gid( - tracker_handle, - (gid_t) id); + tracker_handle, (gid_t) id); break; case LTTNG_PROCESS_ATTR_VIRTUAL_GROUP_ID: - status = lttng_process_attr_virtual_group_id_tracker_handle_add_gid( - tracker_handle, - (gid_t) id); + status = + lttng_process_attr_virtual_group_id_tracker_handle_add_gid( + tracker_handle, (gid_t) id); break; default: ret = LTTNG_ERR_INVALID; goto end; } } else if (element_name && - !strcmp((const char *) node->name, - element_name)) { + !strcmp((const char *) node->name, element_name)) { xmlChar *content = xmlNodeGetContent(node); if (!content) { @@ -2851,24 +2706,24 @@ static int process_id_tracker_node(xmlNodePtr id_tracker_node, switch (process_attr) { case LTTNG_PROCESS_ATTR_USER_ID: - status = lttng_process_attr_user_id_tracker_handle_add_user_name( - tracker_handle, - (const char *) content); + status = + lttng_process_attr_user_id_tracker_handle_add_user_name( + tracker_handle, (const char *) content); break; case LTTNG_PROCESS_ATTR_VIRTUAL_USER_ID: - status = lttng_process_attr_virtual_user_id_tracker_handle_add_user_name( - tracker_handle, - (const char *) content); + status = + lttng_process_attr_virtual_user_id_tracker_handle_add_user_name( + tracker_handle, (const char *) content); break; case LTTNG_PROCESS_ATTR_GROUP_ID: - status = lttng_process_attr_group_id_tracker_handle_add_group_name( - tracker_handle, - (const char *) content); + status = + lttng_process_attr_group_id_tracker_handle_add_group_name( + tracker_handle, (const char *) content); break; case LTTNG_PROCESS_ATTR_VIRTUAL_GROUP_ID: - status = lttng_process_attr_virtual_group_id_tracker_handle_add_group_name( - tracker_handle, - (const char *) content); + status = + lttng_process_attr_virtual_group_id_tracker_handle_add_group_name( + tracker_handle, (const char *) content); break; default: free(content); @@ -2904,8 +2759,7 @@ end: return ret; } -static -int process_domain_node(xmlNodePtr domain_node, const char *session_name) +static int process_domain_node(xmlNodePtr domain_node, const char *session_name) { int ret; struct lttng_domain domain {}; @@ -2935,10 +2789,8 @@ int process_domain_node(xmlNodePtr domain_node, const char *session_name) } /* get the channels node */ - for (node = xmlFirstElementChild(domain_node); node; - node = xmlNextElementSibling(node)) { - if (!strcmp((const char *) node->name, - config_element_channels)) { + for (node = xmlFirstElementChild(domain_node); node; node = xmlNextElementSibling(node)) { + if (!strcmp((const char *) node->name, config_element_channels)) { channels_node = node; break; } @@ -2949,8 +2801,7 @@ int process_domain_node(xmlNodePtr domain_node, const char *session_name) } /* create all channels */ - for (node = xmlFirstElementChild(channels_node); node; - node = xmlNextElementSibling(node)) { + for (node = xmlFirstElementChild(channels_node); node; node = xmlNextElementSibling(node)) { const enum lttng_domain_type original_domain = domain.type; xmlNodePtr contexts_node = NULL; xmlNodePtr events_node = NULL; @@ -2982,11 +2833,10 @@ int process_domain_node(xmlNodePtr domain_node, const char *session_name) goto end; } - for (channel_attr_node = xmlFirstElementChild(node); - channel_attr_node; channel_attr_node = - xmlNextElementSibling(channel_attr_node)) { - ret = process_channel_attr_node(channel_attr_node, - channel, &contexts_node, &events_node); + for (channel_attr_node = xmlFirstElementChild(node); channel_attr_node; + channel_attr_node = xmlNextElementSibling(channel_attr_node)) { + ret = process_channel_attr_node( + channel_attr_node, channel, &contexts_node, &events_node); if (ret) { goto end; } @@ -3005,8 +2855,7 @@ int process_domain_node(xmlNodePtr domain_node, const char *session_name) goto end; } - ret = process_contexts_node(contexts_node, handle, - channel->name); + ret = process_contexts_node(contexts_node, handle, channel->name); if (ret) { goto end; } @@ -3016,16 +2865,13 @@ int process_domain_node(xmlNodePtr domain_node, const char *session_name) channel = NULL; /* get the trackers node */ - for (node = xmlFirstElementChild(domain_node); node; - node = xmlNextElementSibling(node)) { - if (!strcmp((const char *) node->name, - config_element_process_attr_trackers) || - !strcmp((const char *) node->name, - config_element_trackers_legacy)) { + for (node = xmlFirstElementChild(domain_node); node; node = xmlNextElementSibling(node)) { + if (!strcmp((const char *) node->name, config_element_process_attr_trackers) || + !strcmp((const char *) node->name, config_element_trackers_legacy)) { if (trackers_node) { ERR("Only one instance of `%s` or `%s` is allowed in a session configuration", - config_element_process_attr_trackers, - config_element_trackers_legacy); + config_element_process_attr_trackers, + config_element_trackers_legacy); ret = -1; goto end; } @@ -3038,64 +2884,56 @@ int process_domain_node(xmlNodePtr domain_node, const char *session_name) goto end; } - for (node = xmlFirstElementChild(trackers_node); node; - node = xmlNextElementSibling(node)) { - if (!strcmp((const char *) node->name, - config_element_process_attr_tracker_pid)) { + for (node = xmlFirstElementChild(trackers_node); node; node = xmlNextElementSibling(node)) { + if (!strcmp((const char *) node->name, config_element_process_attr_tracker_pid)) { pid_tracker_node = node; - ret = process_id_tracker_node(pid_tracker_node, handle, - LTTNG_PROCESS_ATTR_PROCESS_ID); + ret = process_id_tracker_node( + pid_tracker_node, handle, LTTNG_PROCESS_ATTR_PROCESS_ID); if (ret) { goto end; } } - if (!strcmp((const char *) node->name, - config_element_process_attr_tracker_vpid)) { + if (!strcmp((const char *) node->name, config_element_process_attr_tracker_vpid)) { vpid_tracker_node = node; - ret = process_id_tracker_node(vpid_tracker_node, handle, - LTTNG_PROCESS_ATTR_VIRTUAL_PROCESS_ID); + ret = process_id_tracker_node( + vpid_tracker_node, handle, LTTNG_PROCESS_ATTR_VIRTUAL_PROCESS_ID); if (ret) { goto end; } } - if (!strcmp((const char *) node->name, - config_element_process_attr_tracker_uid)) { + if (!strcmp((const char *) node->name, config_element_process_attr_tracker_uid)) { uid_tracker_node = node; - ret = process_id_tracker_node(uid_tracker_node, handle, - LTTNG_PROCESS_ATTR_USER_ID); + ret = process_id_tracker_node( + uid_tracker_node, handle, LTTNG_PROCESS_ATTR_USER_ID); if (ret) { goto end; } } - if (!strcmp((const char *) node->name, - config_element_process_attr_tracker_vuid)) { + if (!strcmp((const char *) node->name, config_element_process_attr_tracker_vuid)) { vuid_tracker_node = node; - ret = process_id_tracker_node(vuid_tracker_node, handle, - LTTNG_PROCESS_ATTR_VIRTUAL_USER_ID); + ret = process_id_tracker_node( + vuid_tracker_node, handle, LTTNG_PROCESS_ATTR_VIRTUAL_USER_ID); if (ret) { goto end; } } - if (!strcmp((const char *) node->name, - config_element_process_attr_tracker_gid)) { + if (!strcmp((const char *) node->name, config_element_process_attr_tracker_gid)) { gid_tracker_node = node; - ret = process_id_tracker_node(gid_tracker_node, handle, - LTTNG_PROCESS_ATTR_GROUP_ID); + ret = process_id_tracker_node( + gid_tracker_node, handle, LTTNG_PROCESS_ATTR_GROUP_ID); if (ret) { goto end; } } - if (!strcmp((const char *) node->name, - config_element_process_attr_tracker_vgid)) { + if (!strcmp((const char *) node->name, config_element_process_attr_tracker_vgid)) { vgid_tracker_node = node; - ret = process_id_tracker_node(vgid_tracker_node, handle, - LTTNG_PROCESS_ATTR_VIRTUAL_GROUP_ID); + ret = process_id_tracker_node( + vgid_tracker_node, handle, LTTNG_PROCESS_ATTR_VIRTUAL_GROUP_ID); if (ret) { goto end; } } - if (!strcmp((const char *) node->name, - config_element_pid_tracker_legacy)) { + if (!strcmp((const char *) node->name, config_element_pid_tracker_legacy)) { ret = process_legacy_pid_tracker_node(node, handle); if (ret) { goto end; @@ -3109,21 +2947,18 @@ end: return ret; } -static -int add_periodic_rotation(const char *name, uint64_t time_us) +static int add_periodic_rotation(const char *name, uint64_t time_us) { int ret; enum lttng_rotation_status status; - struct lttng_rotation_schedule *periodic = - lttng_rotation_schedule_periodic_create(); + struct lttng_rotation_schedule *periodic = lttng_rotation_schedule_periodic_create(); if (!periodic) { ret = -LTTNG_ERR_NOMEM; goto error; } - status = lttng_rotation_schedule_periodic_set_period(periodic, - time_us); + status = lttng_rotation_schedule_periodic_set_period(periodic, time_us); if (status != LTTNG_ROTATION_STATUS_OK) { ret = -LTTNG_ERR_INVALID; goto error; @@ -3147,21 +2982,18 @@ error: return ret; } -static -int add_size_rotation(const char *name, uint64_t size_bytes) +static int add_size_rotation(const char *name, uint64_t size_bytes) { int ret; enum lttng_rotation_status status; - struct lttng_rotation_schedule *size = - lttng_rotation_schedule_size_threshold_create(); + struct lttng_rotation_schedule *size = lttng_rotation_schedule_size_threshold_create(); if (!size) { ret = -LTTNG_ERR_NOMEM; goto error; } - status = lttng_rotation_schedule_size_threshold_set_threshold(size, - size_bytes); + status = lttng_rotation_schedule_size_threshold_set_threshold(size, size_bytes); if (status != LTTNG_ROTATION_STATUS_OK) { ret = -LTTNG_ERR_INVALID; goto error; @@ -3185,28 +3017,25 @@ error: return ret; } -static -int process_session_rotation_schedules_node( - xmlNodePtr schedules_node, - uint64_t *rotation_timer_interval, - uint64_t *rotation_size) +static int process_session_rotation_schedules_node(xmlNodePtr schedules_node, + uint64_t *rotation_timer_interval, + uint64_t *rotation_size) { int ret = 0; xmlNodePtr child; - for (child = xmlFirstElementChild(schedules_node); - child; - child = xmlNextElementSibling(child)) { + for (child = xmlFirstElementChild(schedules_node); child; + child = xmlNextElementSibling(child)) { if (!strcmp((const char *) child->name, - config_element_rotation_schedule_periodic)) { + config_element_rotation_schedule_periodic)) { xmlChar *content; xmlNodePtr time_us_node; /* periodic rotation schedule */ time_us_node = xmlFirstElementChild(child); if (!time_us_node || - strcmp((const char *) time_us_node->name, - config_element_rotation_schedule_periodic_time_us)) { + strcmp((const char *) time_us_node->name, + config_element_rotation_schedule_periodic_time_us)) { ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } @@ -3224,15 +3053,15 @@ int process_session_rotation_schedules_node( goto end; } } else if (!strcmp((const char *) child->name, - config_element_rotation_schedule_size_threshold)) { + config_element_rotation_schedule_size_threshold)) { xmlChar *content; xmlNodePtr bytes_node; /* size_threshold rotation schedule */ bytes_node = xmlFirstElementChild(child); if (!bytes_node || - strcmp((const char *) bytes_node->name, - config_element_rotation_schedule_size_threshold_bytes)) { + strcmp((const char *) bytes_node->name, + config_element_rotation_schedule_size_threshold_bytes)) { ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto end; } @@ -3256,15 +3085,13 @@ end: return ret; } -static -int process_session_node(xmlNodePtr session_node, const char *session_name, - int overwrite, - const struct config_load_session_override_attr *overrides) +static int process_session_node(xmlNodePtr session_node, + const char *session_name, + int overwrite, + const struct config_load_session_override_attr *overrides) { int ret, started = -1, snapshot_mode = -1; - uint64_t live_timer_interval = UINT64_MAX, - rotation_timer_interval = 0, - rotation_size = 0; + uint64_t live_timer_interval = UINT64_MAX, rotation_timer_interval = 0, rotation_size = 0; xmlChar *name = NULL; xmlChar *shm_path = NULL; xmlNodePtr domains_node = NULL; @@ -3277,10 +3104,8 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, struct lttng_domain *log4j_domain = NULL; struct lttng_domain *python_domain = NULL; - for (node = xmlFirstElementChild(session_node); node; - node = xmlNextElementSibling(node)) { - if (!name && !strcmp((const char *) node->name, - config_element_name)) { + for (node = xmlFirstElementChild(session_node); node; node = xmlNextElementSibling(node)) { + if (!name && !strcmp((const char *) node->name, config_element_name)) { /* name */ xmlChar *node_content = xmlNodeGetContent(node); if (!node_content) { @@ -3289,12 +3114,12 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, } name = node_content; - } else if (!domains_node && !strcmp((const char *) node->name, - config_element_domains)) { + } else if (!domains_node && + !strcmp((const char *) node->name, config_element_domains)) { /* domains */ domains_node = node; - } else if (started == -1 && !strcmp((const char *) node->name, - config_element_started)) { + } else if (started == -1 && + !strcmp((const char *) node->name, config_element_started)) { /* started */ xmlChar *node_content = xmlNodeGetContent(node); if (!node_content) { @@ -3308,12 +3133,12 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto error; } - } else if (!output_node && !strcmp((const char *) node->name, - config_element_output)) { + } else if (!output_node && + !strcmp((const char *) node->name, config_element_output)) { /* output */ output_node = node; - } else if (!shm_path && !strcmp((const char *) node->name, - config_element_shared_memory_path)) { + } else if (!shm_path && + !strcmp((const char *) node->name, config_element_shared_memory_path)) { /* shared memory path */ xmlChar *node_content = xmlNodeGetContent(node); if (!node_content) { @@ -3328,9 +3153,9 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, * rotation_timer_interval. */ for (attributes_child = xmlFirstElementChild(node); attributes_child; - attributes_child = xmlNextElementSibling(attributes_child)) { + attributes_child = xmlNextElementSibling(attributes_child)) { if (!strcmp((const char *) attributes_child->name, - config_element_snapshot_mode)) { + config_element_snapshot_mode)) { /* snapshot_mode */ xmlChar *snapshot_mode_content = xmlNodeGetContent(attributes_child); @@ -3346,7 +3171,7 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, goto error; } } else if (!strcmp((const char *) attributes_child->name, - config_element_live_timer_interval)) { + config_element_live_timer_interval)) { /* live_timer_interval */ xmlChar *timer_interval_content = xmlNodeGetContent(attributes_child); @@ -3355,23 +3180,23 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, goto error; } - ret = parse_uint(timer_interval_content, &live_timer_interval); + ret = parse_uint(timer_interval_content, + &live_timer_interval); free(timer_interval_content); if (ret) { ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto error; } } else if (!strcmp((const char *) attributes_child->name, - config_element_rotation_schedules)) { + config_element_rotation_schedules)) { ret = process_session_rotation_schedules_node( - attributes_child, - &rotation_timer_interval, - &rotation_size); + attributes_child, + &rotation_timer_interval, + &rotation_size); if (ret) { ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto error; } - } } } @@ -3390,8 +3215,7 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, } /* Init domains to create the session handles */ - for (node = xmlFirstElementChild(domains_node); node; - node = xmlNextElementSibling(node)) { + for (node = xmlFirstElementChild(domains_node); node; node = xmlNextElementSibling(node)) { lttng_domain *domain = zmalloc(); if (!domain) { @@ -3445,7 +3269,7 @@ int process_session_node(xmlNodePtr session_node, const char *session_name, goto domain_init_error; } continue; -domain_init_error: + domain_init_error: free(domain); ret = -LTTNG_ERR_LOAD_INVALID_CONFIG; goto error; @@ -3477,31 +3301,26 @@ domain_init_error: /* Create session type depending on output type */ if (snapshot_mode && snapshot_mode != -1) { - ret = create_snapshot_session((const char *) name, output_node, - overrides); - } else if (live_timer_interval && - live_timer_interval != UINT64_MAX) { - ret = create_session((const char *) name, - output_node, live_timer_interval, overrides); + ret = create_snapshot_session((const char *) name, output_node, overrides); + } else if (live_timer_interval && live_timer_interval != UINT64_MAX) { + ret = create_session( + (const char *) name, output_node, live_timer_interval, overrides); } else { /* regular session */ - ret = create_session((const char *) name, - output_node, UINT64_MAX, overrides); + ret = create_session((const char *) name, output_node, UINT64_MAX, overrides); } if (ret) { goto error; } if (shm_path) { - ret = lttng_set_session_shm_path((const char *) name, - (const char *) shm_path); + ret = lttng_set_session_shm_path((const char *) name, (const char *) shm_path); if (ret) { goto error; } } - for (node = xmlFirstElementChild(domains_node); node; - node = xmlNextElementSibling(node)) { + for (node = xmlFirstElementChild(domains_node); node; node = xmlNextElementSibling(node)) { ret = process_domain_node(node, (const char *) name); if (ret) { goto end; @@ -3509,15 +3328,13 @@ domain_init_error: } if (rotation_timer_interval) { - ret = add_periodic_rotation((const char *) name, - rotation_timer_interval); + ret = add_periodic_rotation((const char *) name, rotation_timer_interval); if (ret < 0) { goto error; } } if (rotation_size) { - ret = add_size_rotation((const char *) name, - rotation_size); + ret = add_size_rotation((const char *) name, rotation_size); if (ret < 0) { goto error; } @@ -3532,8 +3349,7 @@ domain_init_error: end: if (ret < 0) { - ERR("Failed to load session %s: %s", (const char *) name, - lttng_strerror(ret)); + ERR("Failed to load session %s: %s", (const char *) name, lttng_strerror(ret)); lttng_destroy_session((const char *) name); } @@ -3573,10 +3389,11 @@ valid: return 1; } -static -int load_session_from_file(const char *path, const char *session_name, - struct session_config_validation_ctx *validation_ctx, int overwrite, - const struct config_load_session_override_attr *overrides) +static int load_session_from_file(const char *path, + const char *session_name, + struct session_config_validation_ctx *validation_ctx, + int overwrite, + const struct config_load_session_override_attr *overrides) { int ret, session_found = !session_name; xmlDocPtr doc = NULL; @@ -3615,11 +3432,9 @@ int load_session_from_file(const char *path, const char *session_name, goto end; } - for (session_node = xmlFirstElementChild(sessions_node); - session_node; session_node = - xmlNextElementSibling(session_node)) { - ret = process_session_node(session_node, - session_name, overwrite, overrides); + for (session_node = xmlFirstElementChild(sessions_node); session_node; + session_node = xmlNextElementSibling(session_node)) { + ret = process_session_node(session_node, session_name, overwrite, overrides); if (!session_name && ret) { /* Loading error occurred. */ goto end; @@ -3648,10 +3463,11 @@ end: return ret; } -static -int load_session_from_path(const char *path, const char *session_name, - struct session_config_validation_ctx *validation_ctx, int overwrite, - const struct config_load_session_override_attr *overrides) +static int load_session_from_path(const char *path, + const char *session_name, + struct session_config_validation_ctx *validation_ctx, + int overwrite, + const struct config_load_session_override_attr *overrides) { int ret, session_found = !session_name; DIR *directory = NULL; @@ -3664,7 +3480,9 @@ int load_session_from_path(const char *path, const char *session_name, lttng_dynamic_buffer_init(&file_path); if (path_len >= LTTNG_PATH_MAX) { ERR("Session configuration load path \"%s\" length (%zu) exceeds the maximal length allowed (%d)", - path, path_len, LTTNG_PATH_MAX); + path, + path_len, + LTTNG_PATH_MAX); ret = -LTTNG_ERR_INVALID; goto end; } @@ -3686,21 +3504,20 @@ int load_session_from_path(const char *path, const char *session_name, if (directory) { size_t file_path_root_len; - ret = lttng_dynamic_buffer_set_capacity(&file_path, - LTTNG_PATH_MAX); + ret = lttng_dynamic_buffer_set_capacity(&file_path, LTTNG_PATH_MAX); if (ret) { ret = -LTTNG_ERR_NOMEM; goto end; } - ret = lttng_dynamic_buffer_append(&file_path, path, path_len); + ret = lttng_dynamic_buffer_append(&file_path, path, path_len); if (ret) { ret = -LTTNG_ERR_NOMEM; goto end; } if (file_path.data[file_path.size - 1] != '/') { - ret = lttng_dynamic_buffer_append(&file_path, "/", 1); + ret = lttng_dynamic_buffer_append(&file_path, "/", 1); if (ret) { ret = -LTTNG_ERR_NOMEM; goto end; @@ -3730,7 +3547,8 @@ int load_session_from_path(const char *path, const char *session_name, /* Reached end of dir stream or error out. */ if (!result) { if (errno) { - PERROR("Failed to enumerate the contents of path \"%s\" while loading session, readdir returned", path); + PERROR("Failed to enumerate the contents of path \"%s\" while loading session, readdir returned", + path); ret = -LTTNG_ERR_LOAD_IO_FAIL; goto end; } @@ -3739,38 +3557,36 @@ int load_session_from_path(const char *path, const char *session_name, file_name_len = strlen(result->d_name); - if (file_name_len <= - sizeof(DEFAULT_SESSION_CONFIG_FILE_EXTENSION)) { + if (file_name_len <= sizeof(DEFAULT_SESSION_CONFIG_FILE_EXTENSION)) { continue; } if (file_path.size + file_name_len >= LTTNG_PATH_MAX) { WARN("Ignoring file \"%s\" since the path's length (%zu) would exceed the maximal permitted size (%d)", - result->d_name, - /* +1 to account for NULL terminator. */ - file_path.size + file_name_len + 1, - LTTNG_PATH_MAX); + result->d_name, + /* +1 to account for NULL terminator. */ + file_path.size + file_name_len + 1, + LTTNG_PATH_MAX); continue; } /* Does the file end with .lttng? */ if (strcmp(DEFAULT_SESSION_CONFIG_FILE_EXTENSION, - result->d_name + file_name_len - sizeof( - DEFAULT_SESSION_CONFIG_FILE_EXTENSION) + 1)) { + result->d_name + file_name_len - + sizeof(DEFAULT_SESSION_CONFIG_FILE_EXTENSION) + 1)) { continue; } - ret = lttng_dynamic_buffer_append(&file_path, result->d_name, - file_name_len + 1); + ret = lttng_dynamic_buffer_append( + &file_path, result->d_name, file_name_len + 1); if (ret) { ret = -LTTNG_ERR_NOMEM; goto end; } - ret = load_session_from_file(file_path.data, session_name, - validation_ctx, overwrite, overrides); - if (session_name && - (!ret || ret != -LTTNG_ERR_LOAD_SESSION_NOENT)) { + ret = load_session_from_file( + file_path.data, session_name, validation_ctx, overwrite, overrides); + if (session_name && (!ret || ret != -LTTNG_ERR_LOAD_SESSION_NOENT)) { session_found = 1; break; } @@ -3781,16 +3597,15 @@ int load_session_from_path(const char *path, const char *session_name, * Reset the buffer's size to the location of the * path's trailing '/'. */ - ret = lttng_dynamic_buffer_set_size(&file_path, - file_path_root_len); + ret = lttng_dynamic_buffer_set_size(&file_path, file_path_root_len); if (ret) { ret = -LTTNG_ERR_UNK; goto end; } } } else { - ret = load_session_from_file(path, session_name, - validation_ctx, overwrite, overrides); + ret = load_session_from_file( + path, session_name, validation_ctx, overwrite, overrides); if (ret) { goto end; } @@ -3844,9 +3659,11 @@ invalid: return 0; } -int config_load_session(const char *path, const char *session_name, - int overwrite, unsigned int autoload, - const struct config_load_session_override_attr *overrides) +int config_load_session(const char *path, + const char *session_name, + int overwrite, + unsigned int autoload, + const struct config_load_session_override_attr *overrides) { int ret; bool session_loaded = false; @@ -3872,10 +3689,11 @@ int config_load_session(const char *path, const char *session_name, * continue loading the system wide sessions. */ if (autoload) { - ret = snprintf(path_buf, sizeof(path_buf), - DEFAULT_SESSION_HOME_CONFIGPATH - "/" DEFAULT_SESSION_CONFIG_AUTOLOAD, - home_path); + ret = snprintf(path_buf, + sizeof(path_buf), + DEFAULT_SESSION_HOME_CONFIGPATH + "/" DEFAULT_SESSION_CONFIG_AUTOLOAD, + home_path); if (ret < 0) { PERROR("snprintf session autoload home config path"); ret = -LTTNG_ERR_INVALID; @@ -3892,9 +3710,10 @@ int config_load_session(const char *path, const char *session_name, path_ptr = path_buf; } } else { - ret = snprintf(path_buf, sizeof(path_buf), - DEFAULT_SESSION_HOME_CONFIGPATH, - home_path); + ret = snprintf(path_buf, + sizeof(path_buf), + DEFAULT_SESSION_HOME_CONFIGPATH, + home_path); if (ret < 0) { PERROR("snprintf session home config path"); ret = -LTTNG_ERR_INVALID; @@ -3903,8 +3722,11 @@ int config_load_session(const char *path, const char *session_name, path_ptr = path_buf; } if (path_ptr) { - ret = load_session_from_path(path_ptr, session_name, - &validation_ctx, overwrite, overrides); + ret = load_session_from_path(path_ptr, + session_name, + &validation_ctx, + overwrite, + overrides); if (ret && ret != -LTTNG_ERR_LOAD_SESSION_NOENT) { goto end; } @@ -3921,8 +3743,8 @@ int config_load_session(const char *path, const char *session_name, /* Try system wide configuration directory. */ if (autoload) { - sys_path = DEFAULT_SESSION_SYSTEM_CONFIGPATH "/" - DEFAULT_SESSION_CONFIG_AUTOLOAD; + sys_path = DEFAULT_SESSION_SYSTEM_CONFIGPATH + "/" DEFAULT_SESSION_CONFIG_AUTOLOAD; ret = validate_path_creds(sys_path); if (ret) { path_ptr = sys_path; @@ -3933,8 +3755,8 @@ int config_load_session(const char *path, const char *session_name, } if (path_ptr) { - ret = load_session_from_path(path_ptr, session_name, - &validation_ctx, overwrite, overrides); + ret = load_session_from_path( + path_ptr, session_name, &validation_ctx, overwrite, overrides); if (!ret) { session_loaded = true; } @@ -3960,8 +3782,8 @@ int config_load_session(const char *path, const char *session_name, goto end; } - ret = load_session_from_path(path, session_name, - &validation_ctx, overwrite, overrides); + ret = load_session_from_path( + path, session_name, &validation_ctx, overwrite, overrides); } end: fini_session_config_validation_ctx(&validation_ctx); @@ -3980,8 +3802,7 @@ end: return ret; } -static -void __attribute__((destructor)) session_config_exit(void) +static void __attribute__((destructor)) session_config_exit(void) { xmlCleanupParser(); }