projects
/
lttng-tools.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Remove session daemon kernel list events command
[lttng-tools.git]
/
ltt-sessiond
/
kernel-ctl.c
diff --git
a/ltt-sessiond/kernel-ctl.c
b/ltt-sessiond/kernel-ctl.c
index 64a55084132245f8051e81fbd3820758339d111c..09a3763eb835c30aaaa25fca4081f27d34aeb881 100644
(file)
--- a/
ltt-sessiond/kernel-ctl.c
+++ b/
ltt-sessiond/kernel-ctl.c
@@
-3,8
+3,8
@@
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation;
either
version 2
- * of the License
, or (at your option) any later version
.
+ * as published by the Free Software Foundation;
only
version 2
+ * of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
@@
-124,7
+124,6
@@
int kernel_create_session(struct ltt_session *session, int tracer_fd)
lks->kconsumer_fds_sent = 0;
session->kernel_session = lks;
lks->kconsumer_fds_sent = 0;
session->kernel_session = lks;
- session->kern_session_count++;
DBG("Kernel session created (fd: %d)", lks->fd);
DBG("Kernel session created (fd: %d)", lks->fd);
@@
-210,6
+209,8
@@
int kernel_create_event(struct lttng_event *ev, struct ltt_kernel_channel *chann
/* Add event to event list */
cds_list_add(&event->list, &channel->events_list.head);
/* Add event to event list */
cds_list_add(&event->list, &channel->events_list.head);
+ channel->event_count++;
+
DBG("Event %s created (fd: %d)", ev->name, event->fd);
return 0;
DBG("Event %s created (fd: %d)", ev->name, event->fd);
return 0;
@@
-282,6
+283,9
@@
int kernel_enable_event(struct ltt_kernel_event *event)
ret = kernctl_enable(event->fd);
if (ret < 0) {
perror("enable event ioctl");
ret = kernctl_enable(event->fd);
if (ret < 0) {
perror("enable event ioctl");
+ if (errno == EEXIST) {
+ ret = -EEXIST;
+ }
goto error;
}
goto error;
}
@@
-541,18
+545,16
@@
error:
}
/*
}
/*
- * kernel_list_events
- *
- * Get the event list from the kernel tracer and return that list in the CTF
- * format.
+ * Get the event list from the kernel tracer and return the number of elements.
*/
*/
-ssize_t kernel_list_events(int tracer_fd,
char **list
)
+ssize_t kernel_list_events(int tracer_fd,
struct lttng_event **events
)
{
{
- int fd;
- char *
buf, *line = NULL
;
- size_t nb
, nbmem, total
= 0;
+ int fd
, pos
;
+ char *
event
;
+ size_t nb
mem, count
= 0;
ssize_t size;
FILE *fp;
ssize_t size;
FILE *fp;
+ struct lttng_event *elist;
fd = kernctl_tracepoint_list(tracer_fd);
if (fd < 0) {
fd = kernctl_tracepoint_list(tracer_fd);
if (fd < 0) {
@@
-571,29
+573,29
@@
ssize_t kernel_list_events(int tracer_fd, char **list)
* See kernel-ctl.h for explanation of this value
*/
nbmem = KERNEL_EVENT_LIST_SIZE;
* See kernel-ctl.h for explanation of this value
*/
nbmem = KERNEL_EVENT_LIST_SIZE;
-
buf = malloc(
nbmem);
+
elist = malloc(sizeof(struct lttng_event) *
nbmem);
- while ((size =
getline(&line, &nb, fp)) != -
1) {
- if (
total + size
> nbmem) {
+ 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 %zd to %zd bytes", nbmem,
-
total + size
+ KERNEL_EVENT_LIST_SIZE);
+
nbmem
+ KERNEL_EVENT_LIST_SIZE);
/* Adding the default size again */
/* Adding the default size again */
- nbmem
= total + size +
KERNEL_EVENT_LIST_SIZE;
-
buf = realloc(buf
, nbmem);
- if (
buf
== NULL) {
+ nbmem
+=
KERNEL_EVENT_LIST_SIZE;
+
elist = realloc(elist
, nbmem);
+ if (
elist
== NULL) {
perror("realloc list events");
goto error;
}
}
perror("realloc list events");
goto error;
}
}
-
memcpy(buf + total, line, size
);
-
total += size
;
+
strncpy(elist[count].name, event, strlen(event)
);
+
count++
;
}
}
- *
list = buf
;
+ *
events = elist
;
- DBG("Kernel list events done
"
);
+ DBG("Kernel list events done
(%ld events)", count
);
- return
total
;
+ return
count
;
error:
return -1;
error:
return -1;
This page took
0.026502 seconds
and
5
git commands to generate.