#include <lttng/userspace-probe.h>
#include <lttng/userspace-probe-internal.h>
-#include <lttng/condition/on-event.h>
-#include <lttng/condition/on-event-internal.h>
+#include <lttng/condition/event-rule-matches.h>
+#include <lttng/condition/event-rule-matches-internal.h>
#include <lttng/event-rule/event-rule.h>
#include <lttng/event-rule/event-rule-internal.h>
#include <lttng/event-rule/userspace-probe-internal.h>
ret = kernctl_disable(event->fd);
if (ret < 0) {
- switch (-ret) {
- case EEXIST:
- ret = LTTNG_ERR_KERN_EVENT_EXIST;
- break;
- default:
- PERROR("disable kernel event");
- break;
- }
+ PERROR("Failed to disable kernel event: name = '%s', fd = %d",
+ event->event->name, event->fd);
goto error;
}
ret = kernctl_disable(event->fd);
if (ret < 0) {
- switch (-ret) {
- case EEXIST:
- ret = LTTNG_ERR_KERN_EVENT_EXIST;
- break;
- default:
- PERROR("Failed to disable kernel event notifier: fd = %d, token = %" PRIu64,
- event->fd, event->token);
- break;
- }
+ PERROR("Failed to disable kernel event notifier: fd = %d, token = %" PRIu64,
+ event->fd, event->token);
goto error;
}
}
/* Validate kernel version */
- ret = kernel_validate_version(&kernel_tracer_version,
- &kernel_tracer_abi_version);
+ ret = kernel_validate_version(&the_kernel_tracer_version,
+ &the_kernel_tracer_abi_version);
if (ret < 0) {
goto error_version;
}
PERROR("Failed to close kernel tracer file descriptor: fd = %d",
kernel_tracer_fd);
}
+
kernel_tracer_fd = -1;
return LTTNG_ERR_KERN_VERSION;
kernel_tracer_event_notifier_group_notification_fd);
}
+ kernel_tracer_event_notifier_group_notification_fd = -1;
+
error_modules:
ret = close(kernel_tracer_event_notifier_group_fd);
if (ret) {
kernel_tracer_event_notifier_group_fd);
}
+ kernel_tracer_event_notifier_group_fd = -1;
+
ret = close(kernel_tracer_fd);
if (ret) {
PERROR("Failed to close kernel tracer file descriptor: fd = %d",
kernel_tracer_fd);
}
+ kernel_tracer_fd = -1;
+
error_open:
modprobe_remove_lttng_control();
DBG2("Closing kernel event notifier group notification file descriptor");
if (kernel_tracer_event_notifier_group_notification_fd >= 0) {
int ret = notification_thread_command_remove_tracer_event_source(
- notification_thread_handle,
+ the_notification_thread_handle,
kernel_tracer_event_notifier_group_notification_fd);
if (ret != LTTNG_OK) {
ERR("Failed to remove kernel event notifier notification from notification thread");
assert(condition);
condition_type = lttng_condition_get_type(condition);
- assert(condition_type == LTTNG_CONDITION_TYPE_ON_EVENT);
+ assert(condition_type == LTTNG_CONDITION_TYPE_EVENT_RULE_MATCHES);
/* Does not acquire a reference. */
- condition_status = lttng_condition_on_event_get_rule(
+ condition_status = lttng_condition_event_rule_matches_get_rule(
condition, &event_rule);
assert(condition_status == LTTNG_CONDITION_STATUS_OK);
assert(event_rule);
assert(event_rule_type != LTTNG_EVENT_RULE_TYPE_UNKNOWN);
error_code_ret = trace_kernel_create_event_notifier_rule(trigger, token,
- lttng_condition_on_event_get_error_counter_index(condition),
+ lttng_condition_event_rule_matches_get_error_counter_index(
+ condition),
&event_notifier_rule);
if (error_code_ret != LTTNG_OK) {
goto error;
kernel_event_notifier.event.token = event_notifier_rule->token;
kernel_event_notifier.error_counter_idx =
- lttng_condition_on_event_get_error_counter_index(condition);
+ lttng_condition_event_rule_matches_get_error_counter_index(
+ condition);
fd = kernctl_create_event_notifier(
kernel_tracer_event_notifier_group_fd,
}
/* Set the capture bytecode if any. */
- cond_status = lttng_condition_on_event_get_capture_descriptor_count(
+ cond_status = lttng_condition_event_rule_matches_get_capture_descriptor_count(
condition, &capture_bytecode_count);
assert(cond_status == LTTNG_CONDITION_STATUS_OK);
for (i = 0; i < capture_bytecode_count; i++) {
const struct lttng_bytecode *capture_bytecode =
- lttng_condition_on_event_get_capture_bytecode_at_index(
+ lttng_condition_event_rule_matches_get_capture_bytecode_at_index(
condition, i);
if (capture_bytecode == NULL) {
assert(condition);
/* Does not acquire a reference to the event rule. */
- status = lttng_condition_on_event_get_rule(
+ status = lttng_condition_event_rule_matches_get_rule(
condition, &event_rule);
assert(status == LTTNG_CONDITION_STATUS_OK);