X-Git-Url: http://git.efficios.com/?p=lttng-tools.git;a=blobdiff_plain;f=ltt-sessiond%2Fkernel-ctl.c;h=969acfbf437deb51de608fcba7d991e9ba8353b6;hp=02e87e3401b88d1e6f81b999dd71e6f81a2d4438;hb=4e332453e14dd64400835b60c0a93c3629e173d3;hpb=f34daff7d0139d162e949f1b4fbb4cd003746b15 diff --git a/ltt-sessiond/kernel-ctl.c b/ltt-sessiond/kernel-ctl.c index 02e87e340..969acfbf4 100644 --- a/ltt-sessiond/kernel-ctl.c +++ b/ltt-sessiond/kernel-ctl.c @@ -88,6 +88,7 @@ int kernel_create_channel(struct command_ctx *cmd_ctx) ret = kernctl_create_channel(cmd_ctx->session->kernel_session->fd, chan); if (ret < 0) { + perror("ioctl create channel"); goto error; } @@ -141,3 +142,44 @@ int kernel_enable_event(struct ltt_kernel_channel *channel, char *name) error: return ret; } + +/* + * kernel_open_metadata + * + * Open metadata stream. + */ +int kernel_open_metadata(struct ltt_kernel_session *session) +{ + int ret; + struct ltt_kernel_metadata *lkm; + struct lttng_kernel_channel *conf; + + lkm = malloc(sizeof(struct ltt_kernel_metadata)); + conf = malloc(sizeof(struct lttng_kernel_channel)); + + if (lkm == NULL || conf == NULL) { + perror("kernel open metadata malloc"); + ret = -errno; + goto error; + } + + conf->overwrite = DEFAULT_KERNEL_OVERWRITE; + conf->subbuf_size = DEFAULT_KERNEL_SUBBUF_SIZE; + conf->num_subbuf = DEFAULT_KERNEL_SUBBUF_NUM; + conf->switch_timer_interval = DEFAULT_KERNEL_SWITCH_TIMER; + conf->read_timer_interval = DEFAULT_KERNEL_READ_TIMER; + + ret = kernctl_open_metadata(session->fd, conf); + if (ret < 0) { + goto error; + } + + session->metadata = lkm; + session->metadata->fd = ret; + session->metadata->conf = conf; + + return 0; + +error: + return ret; +}