Move on-event*.* to event-rule-matches*.*
[lttng-tools.git] / src / bin / lttng-sessiond / trace-kernel.c
index f779952a0eeb15b44b2a0d7cc94a862663cedffd..382902a901ee321e5f7ec6d01ce547fe91f7d156 100644 (file)
@@ -676,15 +676,35 @@ enum lttng_error_code trace_kernel_init_event_notifier_from_event_rule(
                const enum lttng_event_rule_status status =
                                lttng_event_rule_syscall_get_pattern(
                                                rule, &name);
+               const enum lttng_event_rule_syscall_emission_site_type
+                       emission_site_type =
+                       lttng_event_rule_syscall_get_emission_site_type(rule);
+               enum lttng_kernel_syscall_entryexit entryexit;
 
                assert(status == LTTNG_EVENT_RULE_STATUS_OK);
+               assert(emission_site_type != LTTNG_EVENT_RULE_SYSCALL_EMISSION_SITE_UNKNOWN);
+
+               switch(emission_site_type) {
+               case LTTNG_EVENT_RULE_SYSCALL_EMISSION_SITE_ENTRY:
+                       entryexit = LTTNG_KERNEL_SYSCALL_ENTRY;
+                       break;
+               case LTTNG_EVENT_RULE_SYSCALL_EMISSION_SITE_EXIT:
+                       entryexit = LTTNG_KERNEL_SYSCALL_EXIT;
+                       break;
+               case LTTNG_EVENT_RULE_SYSCALL_EMISSION_SITE_ENTRY_EXIT:
+                       entryexit = LTTNG_KERNEL_SYSCALL_ENTRYEXIT;
+                       break;
+               default:
+                       abort();
+                       break;
+               }
 
                kernel_event_notifier->event.instrumentation =
                                LTTNG_KERNEL_SYSCALL;
                kernel_event_notifier->event.u.syscall.abi =
                                LTTNG_KERNEL_SYSCALL_ABI_ALL;
                kernel_event_notifier->event.u.syscall.entryexit =
-                               LTTNG_KERNEL_SYSCALL_ENTRY;
+                               entryexit;
                kernel_event_notifier->event.u.syscall.match =
                                LTTNG_KERNEL_SYSCALL_MATCH_NAME;
                ret_code = LTTNG_OK;
@@ -946,11 +966,11 @@ void trace_kernel_destroy_channel(struct ltt_kernel_channel *channel)
        /* Remove from channel list */
        cds_list_del(&channel->list);
 
-       if (notification_thread_handle
-                       && channel->published_to_notification_thread) {
+       if (the_notification_thread_handle &&
+                       channel->published_to_notification_thread) {
                status = notification_thread_command_remove_channel(
-                               notification_thread_handle,
-                               channel->key, LTTNG_DOMAIN_KERNEL);
+                               the_notification_thread_handle, channel->key,
+                               LTTNG_DOMAIN_KERNEL);
                assert(status == LTTNG_OK);
        }
        free(channel->channel->attr.extended.ptr);
This page took 0.025142 seconds and 4 git commands to generate.