* We tolerate no failure path after channel creation. It will stay
* invariant for the rest of the session.
*/
- chan = lttng_channel_create(session, transport_name, NULL,
+ chan = lttng_channel_buffer_create(session, transport_name, NULL,
chan_param->subbuf_size,
chan_param->num_subbuf,
chan_param->switch_timer_interval,
lttng_fallthrough;
case LTTNG_KERNEL_ABI_UPROBE:
{
- struct lttng_kernel_event_recorder *event;
+ struct lttng_kernel_event_common *event;
struct lttng_event_recorder_enabler *event_enabler;
event_enabler = lttng_event_recorder_enabler_create(LTTNG_ENABLER_FORMAT_NAME,
* We tolerate no failure path after event creation. It
* will stay invariant for the rest of the session.
*/
- event = lttng_kernel_event_recorder_create(event_enabler, NULL);
+ event = lttng_kernel_event_create(&event_enabler->parent, NULL);
WARN_ON_ONCE(!event);
- lttng_event_enabler_destroy(event_enabler);
+ lttng_event_enabler_destroy(&event_enabler->parent);
if (IS_ERR(event)) {
ret = PTR_ERR(event);
goto event_error;
}
- priv = event;
+ priv = container_of(event, struct lttng_kernel_event_recorder, parent);
break;
}
switch (cmd) {
case LTTNG_KERNEL_ABI_ENABLE:
- return lttng_event_notifier_enabler_enable(event_notifier_enabler);
+ return lttng_event_enabler_enable(&event_notifier_enabler->parent);
case LTTNG_KERNEL_ABI_DISABLE:
- return lttng_event_notifier_enabler_disable(event_notifier_enabler);
+ return lttng_event_enabler_disable(&event_notifier_enabler->parent);
case LTTNG_KERNEL_ABI_FILTER:
- return lttng_event_notifier_enabler_attach_filter_bytecode(
- event_notifier_enabler,
+ return lttng_event_enabler_attach_filter_bytecode(&event_notifier_enabler->parent,
(struct lttng_kernel_abi_filter_bytecode __user *) arg);
case LTTNG_KERNEL_ABI_CAPTURE:
return lttng_event_notifier_enabler_attach_capture_bytecode(
* we create the special star globbing enabler.
*/
enabler = lttng_event_notifier_enabler_create(
- event_notifier_group,
LTTNG_ENABLER_FORMAT_STAR_GLOB,
- event_notifier_param);
+ event_notifier_param,
+ event_notifier_group);
} else {
enabler = lttng_event_notifier_enabler_create(
- event_notifier_group,
LTTNG_ENABLER_FORMAT_NAME,
- event_notifier_param);
+ event_notifier_param,
+ event_notifier_group);
}
+ if (enabler)
+ lttng_event_notifier_enabler_group_add(event_notifier_group, enabler);
priv = enabler;
break;
}
lttng_fallthrough;
case LTTNG_KERNEL_ABI_UPROBE:
{
- struct lttng_kernel_event_notifier *event_notifier;
+ struct lttng_kernel_event_common *event;
+ struct lttng_event_notifier_enabler *event_notifier_enabler;
- /*
- * We tolerate no failure path after event notifier creation.
- * It will stay invariant for the rest of the session.
- */
- event_notifier = lttng_event_notifier_create(NULL,
- event_notifier_param->event.token,
- event_notifier_param->error_counter_index,
- event_notifier_group,
- event_notifier_param,
- event_notifier_param->event.instrumentation);
- WARN_ON_ONCE(!event_notifier);
- if (IS_ERR(event_notifier)) {
- ret = PTR_ERR(event_notifier);
+ event_notifier_enabler = lttng_event_notifier_enabler_create(LTTNG_ENABLER_FORMAT_NAME,
+ event_notifier_param, event_notifier_group);
+ if (!event_notifier_enabler) {
+ ret = -ENOMEM;
+ goto event_notifier_error;
+ }
+ event = lttng_kernel_event_create(&event_notifier_enabler->parent, NULL);
+ WARN_ON_ONCE(!event);
+ lttng_event_enabler_destroy(&event_notifier_enabler->parent);
+ if (IS_ERR(event)) {
+ ret = PTR_ERR(event);
goto event_notifier_error;
}
- priv = event_notifier;
+ priv = container_of(event, struct lttng_kernel_event_notifier, parent);
break;
}
}
case LTTNG_KERNEL_ABI_OLD_ENABLE:
case LTTNG_KERNEL_ABI_ENABLE:
- return lttng_channel_enable(channel);
+ return lttng_channel_enable(&channel->parent);
case LTTNG_KERNEL_ABI_OLD_DISABLE:
case LTTNG_KERNEL_ABI_DISABLE:
- return lttng_channel_disable(channel);
+ return lttng_channel_disable(&channel->parent);
case LTTNG_KERNEL_ABI_SYSCALL_MASK:
- return lttng_channel_syscall_mask(channel,
+ return lttng_syscall_table_get_active_mask(&channel->priv->parent.syscall_table,
(struct lttng_kernel_abi_syscall_mask __user *) arg);
default:
return -ENOIOCTLCMD;
}
case LTTNG_KERNEL_ABI_OLD_ENABLE:
case LTTNG_KERNEL_ABI_ENABLE:
- return lttng_event_enabler_enable(event_enabler);
+ return lttng_event_enabler_enable(&event_enabler->parent);
case LTTNG_KERNEL_ABI_OLD_DISABLE:
case LTTNG_KERNEL_ABI_DISABLE:
- return lttng_event_enabler_disable(event_enabler);
+ return lttng_event_enabler_disable(&event_enabler->parent);
case LTTNG_KERNEL_ABI_FILTER:
- return lttng_event_enabler_attach_filter_bytecode(
- event_enabler,
+ return lttng_event_enabler_attach_filter_bytecode(&event_enabler->parent,
(struct lttng_kernel_abi_filter_bytecode __user *) arg);
case LTTNG_KERNEL_ABI_ADD_CALLSITE:
return -EINVAL;