sessiond: Implement kernel event notifier error counter
[lttng-tools.git] / src / bin / lttng-sessiond / trace-kernel.c
index 72de7eadd3ddcf8cd2c408a6f4c13adeb0d9d9de..f779952a0eeb15b44b2a0d7cc94a862663cedffd 100644 (file)
@@ -24,7 +24,7 @@
 #include <lttng/event-rule/syscall-internal.h>
 #include <lttng/event-rule/tracepoint.h>
 #include <lttng/event-rule/tracepoint-internal.h>
-#include <lttng/event-rule/uprobe-internal.h>
+#include <lttng/event-rule/userspace-probe-internal.h>
 #include <common/common.h>
 #include <common/defaults.h>
 #include <common/trace-chunk.h>
@@ -485,6 +485,7 @@ error:
 enum lttng_error_code trace_kernel_create_event_notifier_rule(
                struct lttng_trigger *trigger,
                uint64_t token,
+               uint64_t error_counter_index,
                struct ltt_kernel_event_notifier_rule **event_notifier_rule)
 {
        enum lttng_error_code ret = LTTNG_OK;
@@ -497,13 +498,13 @@ enum lttng_error_code trace_kernel_create_event_notifier_rule(
 
        assert(event_notifier_rule);
 
-       condition = lttng_trigger_get_condition(trigger);
+       condition = lttng_trigger_get_const_condition(trigger);
        assert(condition);
 
        condition_type = lttng_condition_get_type(condition);
-       assert(condition_type == LTTNG_CONDITION_TYPE_EVENT_RULE_HIT);
+       assert(condition_type == LTTNG_CONDITION_TYPE_ON_EVENT);
 
-       condition_status = lttng_condition_event_rule_get_rule(
+       condition_status = lttng_condition_on_event_get_rule(
                        condition, &event_rule);
        assert(condition_status == LTTNG_CONDITION_STATUS_OK);
        assert(event_rule);
@@ -522,6 +523,7 @@ enum lttng_error_code trace_kernel_create_event_notifier_rule(
        local_kernel_token_event_rule->fd = -1;
        local_kernel_token_event_rule->enabled = 1;
        local_kernel_token_event_rule->token = token;
+       local_kernel_token_event_rule->error_counter_index = error_counter_index;
 
        /* Get the reference of the event rule. */
        lttng_trigger_get(trigger);
@@ -601,18 +603,18 @@ enum lttng_error_code trace_kernel_init_event_notifier_from_event_rule(
 
                kernel_event_notifier->event.u.kprobe.symbol_name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0';
 
-               status = lttng_event_rule_kernel_probe_get_name(rule, &name);
+               status = lttng_event_rule_kernel_probe_get_event_name(rule, &name);
                assert(status == LTTNG_EVENT_RULE_STATUS_OK);
                ret_code = LTTNG_OK;
                break;
        }
-       case LTTNG_EVENT_RULE_TYPE_UPROBE:
+       case LTTNG_EVENT_RULE_TYPE_USERSPACE_PROBE:
        {
                const struct lttng_userspace_probe_location* location = NULL;
                const struct lttng_userspace_probe_location_lookup_method *lookup = NULL;
                enum lttng_event_rule_status status;
 
-               status = lttng_event_rule_uprobe_get_location(rule, &location);
+               status = lttng_event_rule_userspace_probe_get_location(rule, &location);
                if (status != LTTNG_EVENT_RULE_STATUS_OK) {
                        ret_code = LTTNG_ERR_PROBE_LOCATION_INVAL;
                        goto error;
@@ -647,7 +649,8 @@ enum lttng_error_code trace_kernel_init_event_notifier_from_event_rule(
                        abort();
                }
 
-               status = lttng_event_rule_uprobe_get_name(rule, &name);
+               status = lttng_event_rule_userspace_probe_get_event_name(
+                               rule, &name);
                assert(status == LTTNG_EVENT_RULE_STATUS_OK);
                ret_code = LTTNG_OK;
                break;
@@ -687,7 +690,7 @@ enum lttng_error_code trace_kernel_init_event_notifier_from_event_rule(
                ret_code = LTTNG_OK;
                break;
        }
-       case LTTNG_EVENT_RULE_TYPE_KRETPROBE:
+       case LTTNG_EVENT_RULE_TYPE_KERNEL_FUNCTION:
        default:
                abort();
                break;
This page took 0.024438 seconds and 4 git commands to generate.