DBG("Adding context to channel %s", chan->channel->name);
ret = kernctl_add_context(chan->fd, ctx);
if (ret < 0) {
- perror("add context ioctl");
+ if (errno != EEXIST) {
+ perror("add context ioctl");
+ } else {
+ /* If EEXIST, we just ignore the error */
+ ret = 0;
+ }
goto error;
}
}
}
+/*
+ * kernel_calibrate
+ */
+int kernel_calibrate(int fd, struct lttng_kernel_calibrate *calibrate)
+{
+ int ret;
+
+ ret = kernctl_calibrate(fd, calibrate);
+ if (ret < 0) {
+ perror("calibrate ioctl");
+ return -1;
+ }
+
+ return 0;
+}
+
+
/*
* kernel_metadata_flush_buffer
*
while ((size = fscanf(fp, "event { name = %m[^;]; };%n\n", &event, &pos)) == 1) {
if (count > nbmem) {
- DBG("Reallocating event list from %zd to %zd bytes", nbmem,
+ DBG("Reallocating event list from %zu to %zu bytes", nbmem,
nbmem + KERNEL_EVENT_LIST_SIZE);
/* Adding the default size again */
nbmem += KERNEL_EVENT_LIST_SIZE;
goto error;
}
}
- strncpy(elist[count].name, event, strlen(event));
+ strncpy(elist[count].name, event, LTTNG_SYMBOL_NAME_LEN);
+ elist[count].name[LTTNG_SYMBOL_NAME_LEN - 1] = '\0';
count++;
}
*events = elist;
- DBG("Kernel list events done (%ld events)", count);
+ DBG("Kernel list events done (%zu events)", count);
return count;