#include "channel.h"
#include "hashtable.h"
-#include "kernel-ctl.h"
+#include "kernel.h"
#include "ust-ctl.h"
#include "utils.h"
chan = zmalloc(sizeof(struct lttng_channel));
if (chan == NULL) {
- perror("malloc channel init");
+ perror("zmalloc channel init");
goto error_alloc;
}
chan->attr.read_timer_interval = DEFAULT_CHANNEL_READ_TIMER;
switch (dom) {
- case LTTNG_DOMAIN_KERNEL:
- chan->attr.subbuf_size = DEFAULT_KERNEL_CHANNEL_SUBBUF_SIZE;
- chan->attr.num_subbuf = DEFAULT_KERNEL_CHANNEL_SUBBUF_NUM;
- chan->attr.output = DEFAULT_KERNEL_CHANNEL_OUTPUT;
- break;
- case LTTNG_DOMAIN_UST:
- case LTTNG_DOMAIN_UST_PID:
- chan->attr.subbuf_size = DEFAULT_UST_CHANNEL_SUBBUF_SIZE;
- chan->attr.num_subbuf = DEFAULT_UST_CHANNEL_SUBBUF_NUM;
- chan->attr.output = DEFAULT_UST_CHANNEL_OUTPUT;
- break;
- default:
- goto error; /* Not implemented */
+ case LTTNG_DOMAIN_KERNEL:
+ chan->attr.subbuf_size = DEFAULT_KERNEL_CHANNEL_SUBBUF_SIZE;
+ chan->attr.num_subbuf = DEFAULT_KERNEL_CHANNEL_SUBBUF_NUM;
+ chan->attr.output = DEFAULT_KERNEL_CHANNEL_OUTPUT;
+ break;
+ case LTTNG_DOMAIN_UST:
+ case LTTNG_DOMAIN_UST_PID:
+ chan->attr.subbuf_size = DEFAULT_UST_CHANNEL_SUBBUF_SIZE;
+ chan->attr.num_subbuf = DEFAULT_UST_CHANNEL_SUBBUF_NUM;
+ chan->attr.output = DEFAULT_UST_CHANNEL_OUTPUT;
+ break;
+ default:
+ goto error; /* Not implemented */
}
return chan;
/*
cds_list_for_each_entry(uevent, &src->events.head, list) {
- new_uevent = malloc(sizeof(struct ltt_ust_event));
+ new_uevent = zmalloc(sizeof(struct ltt_ust_event));
if (new_uevent == NULL) {
- perror("malloc ltt_ust_event");
+ perror("zmalloc ltt_ust_event");
goto error;
}
* Create kernel channel of the kernel session and notify kernel thread.
*/
int channel_kernel_create(struct ltt_kernel_session *ksession,
- struct lttng_channel *chan, int kernel_pipe)
+ struct lttng_channel *attr, int kernel_pipe)
{
int ret;
- struct lttng_channel *attr = chan;
+ struct lttng_channel *defattr = NULL;
/* Creating channel attributes if needed */
if (attr == NULL) {
- /* FIXME: this appears to be a memory leak */
- attr = channel_new_default_attr(LTTNG_DOMAIN_KERNEL);
- if (attr == NULL) {
+ defattr = channel_new_default_attr(LTTNG_DOMAIN_KERNEL);
+ if (defattr == NULL) {
ret = LTTCOMM_FATAL;
goto error;
}
+ attr = defattr;
}
/* Channel not found, creating it */
}
ret = LTTCOMM_OK;
-
error:
+ free(defattr);
return ret;
}