case LTTNG_LIST_TRACEPOINTS:
break;
default:
- DBG("Getting session %s by name", cmd_ctx->lsm->session_name);
- cmd_ctx->session = find_session_by_name(cmd_ctx->lsm->session_name);
+ DBG("Getting session %s by name", cmd_ctx->lsm->session.name);
+ cmd_ctx->session = find_session_by_name(cmd_ctx->lsm->session.name);
if (cmd_ctx->session == NULL) {
/* If session name not found */
- if (cmd_ctx->lsm->session_name != NULL) {
+ if (cmd_ctx->lsm->session.name != NULL) {
ret = LTTCOMM_SESS_NOT_FOUND;
} else { /* If no session name specified */
ret = LTTCOMM_SELECT_SESS;
*/
switch (cmd_ctx->lsm->cmd_type) {
case LTTNG_ADD_CONTEXT:
- case LTTNG_KERNEL_DISABLE_ALL_EVENT:
- case LTTNG_KERNEL_DISABLE_CHANNEL:
- case LTTNG_KERNEL_DISABLE_EVENT:
+ case LTTNG_DISABLE_ALL_EVENT:
+ case LTTNG_DISABLE_CHANNEL:
+ case LTTNG_DISABLE_EVENT:
case LTTNG_KERNEL_ENABLE_ALL_EVENT:
case LTTNG_KERNEL_ENABLE_CHANNEL:
case LTTNG_KERNEL_ENABLE_EVENT:
default:
/* TODO: Userspace tracing */
ret = LTTCOMM_NOT_IMPLEMENTED;
+ goto error;
}
ret = LTTCOMM_OK;
break;
}
- case LTTNG_KERNEL_DISABLE_CHANNEL:
+ case LTTNG_DISABLE_CHANNEL:
{
- struct ltt_kernel_channel *chan;
+ struct ltt_kernel_channel *kchan;
/* Setup lttng message with no payload */
ret = setup_lttng_msg(cmd_ctx, 0);
goto setup_error;
}
- chan = get_kernel_channel_by_name(cmd_ctx->lsm->u.disable.channel_name,
- cmd_ctx->session->kernel_session);
- if (chan == NULL) {
- ret = LTTCOMM_KERN_CHAN_NOT_FOUND;
- goto error;
- } else if (chan->enabled == 1) {
- ret = kernel_disable_channel(chan);
- if (ret < 0) {
- if (ret != EEXIST) {
- ret = LTTCOMM_KERN_CHAN_DISABLE_FAIL;
- }
+ switch (cmd_ctx->lsm->domain.type) {
+ case LTTNG_DOMAIN_KERNEL:
+ kchan = get_kernel_channel_by_name(cmd_ctx->lsm->u.disable.channel_name,
+ cmd_ctx->session->kernel_session);
+ if (kchan == NULL) {
+ ret = LTTCOMM_KERN_CHAN_NOT_FOUND;
goto error;
+ } else if (kchan->enabled == 1) {
+ ret = kernel_disable_channel(kchan);
+ if (ret < 0) {
+ if (ret != EEXIST) {
+ ret = LTTCOMM_KERN_CHAN_DISABLE_FAIL;
+ }
+ goto error;
+ }
}
+ kernel_wait_quiescent(kernel_tracer_fd);
+ break;
+ default:
+ /* TODO: Userspace tracing */
+ ret = LTTCOMM_NOT_IMPLEMENTED;
+ goto error;
}
- kernel_wait_quiescent(kernel_tracer_fd);
ret = LTTCOMM_OK;
break;
}
- case LTTNG_KERNEL_DISABLE_EVENT:
+ case LTTNG_DISABLE_EVENT:
{
- struct ltt_kernel_channel *chan;
- struct ltt_kernel_event *ev;
+ struct ltt_kernel_channel *kchan;
+ struct ltt_kernel_event *kevent;
/* Setup lttng message with no payload */
ret = setup_lttng_msg(cmd_ctx, 0);
goto setup_error;
}
- chan = get_kernel_channel_by_name(cmd_ctx->lsm->u.disable.channel_name,
- cmd_ctx->session->kernel_session);
- if (chan == NULL) {
- ret = LTTCOMM_KERN_CHAN_NOT_FOUND;
- goto error;
- }
-
- ev = get_kernel_event_by_name(cmd_ctx->lsm->u.disable.name, chan);
- if (ev != NULL) {
- DBG("Disabling kernel event %s for channel %s.",
- cmd_ctx->lsm->u.disable.name, cmd_ctx->lsm->u.disable.channel_name);
- ret = kernel_disable_event(ev);
- if (ret < 0) {
- ret = LTTCOMM_KERN_ENABLE_FAIL;
+ switch (cmd_ctx->lsm->domain.type) {
+ case LTTNG_DOMAIN_KERNEL:
+ kchan = get_kernel_channel_by_name(cmd_ctx->lsm->u.disable.channel_name,
+ cmd_ctx->session->kernel_session);
+ if (kchan == NULL) {
+ ret = LTTCOMM_KERN_CHAN_NOT_FOUND;
goto error;
}
+
+ kevent = get_kernel_event_by_name(cmd_ctx->lsm->u.disable.name, kchan);
+ if (kevent != NULL) {
+ DBG("Disabling kernel event %s for channel %s.", kevent->event->name,
+ kchan->channel->name);
+ ret = kernel_disable_event(kevent);
+ if (ret < 0) {
+ ret = LTTCOMM_KERN_ENABLE_FAIL;
+ goto error;
+ }
+ }
+
+ kernel_wait_quiescent(kernel_tracer_fd);
+ break;
+ default:
+ /* TODO: Userspace tracing */
+ ret = LTTCOMM_NOT_IMPLEMENTED;
+ goto error;
}
- kernel_wait_quiescent(kernel_tracer_fd);
ret = LTTCOMM_OK;
break;
}
- case LTTNG_KERNEL_DISABLE_ALL_EVENT:
+ case LTTNG_DISABLE_ALL_EVENT:
{
- struct ltt_kernel_channel *chan;
- struct ltt_kernel_event *ev;
+ struct ltt_kernel_channel *kchan;
+ struct ltt_kernel_event *kevent;
/* Setup lttng message with no payload */
ret = setup_lttng_msg(cmd_ctx, 0);
goto setup_error;
}
- DBG("Disabling all enabled kernel events");
-
- chan = get_kernel_channel_by_name(cmd_ctx->lsm->u.disable.channel_name,
- cmd_ctx->session->kernel_session);
- if (chan == NULL) {
- ret = LTTCOMM_KERN_CHAN_NOT_FOUND;
- goto error;
- }
+ switch (cmd_ctx->lsm->domain.type) {
+ case LTTNG_DOMAIN_KERNEL:
+ DBG("Disabling all enabled kernel events");
+ kchan = get_kernel_channel_by_name(cmd_ctx->lsm->u.disable.channel_name,
+ cmd_ctx->session->kernel_session);
+ if (kchan == NULL) {
+ ret = LTTCOMM_KERN_CHAN_NOT_FOUND;
+ goto error;
+ }
- /* For each event in the kernel session */
- cds_list_for_each_entry(ev, &chan->events_list.head, list) {
- DBG("Disabling kernel event %s for channel %s.",
- ev->event->name, cmd_ctx->lsm->u.disable.channel_name);
- ret = kernel_disable_event(ev);
- if (ret < 0) {
- continue;
+ /* For each event in the kernel session */
+ cds_list_for_each_entry(kevent, &kchan->events_list.head, list) {
+ DBG("Disabling kernel event %s for channel %s.",
+ kevent->event->name, kchan->channel->name);
+ ret = kernel_disable_event(kevent);
+ if (ret < 0) {
+ continue;
+ }
}
+
+ /* Quiescent wait after event disable */
+ kernel_wait_quiescent(kernel_tracer_fd);
+ break;
+ default:
+ /* TODO: Userspace tracing */
+ ret = LTTCOMM_NOT_IMPLEMENTED;
+ goto error;
}
- /* Quiescent wait after event disable */
- kernel_wait_quiescent(kernel_tracer_fd);
ret = LTTCOMM_OK;
break;
}
goto setup_error;
}
- ret = create_session(cmd_ctx->lsm->session_name, cmd_ctx->lsm->path);
+ ret = create_session(cmd_ctx->lsm->session.name, cmd_ctx->lsm->session.path);
if (ret < 0) {
if (ret == -EEXIST) {
ret = LTTCOMM_EXIST_SESS;
/* Clean kernel session teardown */
teardown_kernel_session(cmd_ctx->session);
- ret = destroy_session(cmd_ctx->lsm->session_name);
+ ret = destroy_session(cmd_ctx->lsm->session.name);
if (ret < 0) {
ret = LTTCOMM_FATAL;
goto error;