+ break;
+ }
+ case LTTNG_EVENT_RULE_TYPE_KERNEL_TRACEPOINT:
+ {
+ enum lttng_event_rule_status event_rule_status;
+
+ res.er = lttng_event_rule_kernel_tracepoint_create();
+ if (!res.er) {
+ ERR("Failed to create kernel_tracepoint event rule.");
+ goto error;
+ }
+
+ /* Set pattern. */
+ event_rule_status = lttng_event_rule_kernel_tracepoint_set_name_pattern(
+ res.er, name);
+ if (event_rule_status != LTTNG_EVENT_RULE_STATUS_OK) {
+ ERR("Failed to set kernel_tracepoint event rule's pattern to '%s'.",
+ name);
+ goto error;
+ }
+
+ /* Set filter. */
+ if (filter) {
+ event_rule_status = lttng_event_rule_kernel_tracepoint_set_filter(
+ res.er, filter);
+ if (event_rule_status != LTTNG_EVENT_RULE_STATUS_OK) {
+ ERR("Failed to set kernel_tracepoint event rule's filter to '%s'.",
+ filter);
+ goto error;
+ }
+ }
+ break;
+ }
+ case LTTNG_EVENT_RULE_TYPE_JUL_LOGGING:
+ {
+ enum lttng_event_rule_status event_rule_status;
+
+ res.er = lttng_event_rule_jul_logging_create();
+ if (!res.er) {
+ ERR("Failed to create jul_logging event rule.");
+ goto error;
+ }
+
+ /* Set pattern. */
+ event_rule_status = lttng_event_rule_jul_logging_set_name_pattern(
+ res.er, name);
+ if (event_rule_status != LTTNG_EVENT_RULE_STATUS_OK) {
+ ERR("Failed to set jul_logging event rule's pattern to '%s'.",
+ name);
+ goto error;
+ }
+
+ /* Set filter. */
+ if (filter) {
+ event_rule_status = lttng_event_rule_jul_logging_set_filter(
+ res.er, filter);
+ if (event_rule_status != LTTNG_EVENT_RULE_STATUS_OK) {
+ ERR("Failed to set jul_logging event rule's filter to '%s'.",
+ filter);
+ goto error;