-/* This is defined in enable_events.c. */
-LTTNG_HIDDEN
-int create_exclusion_list_and_validate(const char *event_name,
- const char *exclusions_arg,
- char ***exclusion_list);
+static bool parse_syscall_emission_site_from_type(const char *str,
+ enum lttng_event_rule_kernel_syscall_emission_site *type)
+{
+ bool ret = false;
+ const char kernel_prefix[] = "kernel:";
+ const size_t kernel_prefix_len = sizeof(kernel_prefix) - 1;
+
+ /*
+ * If the passed string is of the form "kernel:syscall*", move the
+ * pointer passed "kernel:".
+ */
+ if (strncmp(str, kernel_prefix, kernel_prefix_len) == 0) {
+ str = &str[kernel_prefix_len];
+ }
+
+ if (strcmp(str, "syscall") == 0 ||
+ strcmp(str, "syscall:entry+exit") == 0) {
+ *type = LTTNG_EVENT_RULE_KERNEL_SYSCALL_EMISSION_SITE_ENTRY_EXIT;
+ } else if (strcmp(str, "syscall:entry") == 0) {
+ *type = LTTNG_EVENT_RULE_KERNEL_SYSCALL_EMISSION_SITE_ENTRY;
+ } else if (strcmp(str, "syscall:exit") == 0) {
+ *type = LTTNG_EVENT_RULE_KERNEL_SYSCALL_EMISSION_SITE_EXIT;
+ } else {
+ goto error;
+ }
+
+ ret = true;
+
+error:
+ return ret;
+}