#include "../utils.h"
static char *opt_channels;
-static char *opt_kernel;
+static int opt_kernel;
static char *opt_cmd_name;
static char *opt_session_name;
static int opt_pid_all;
fprintf(ofp, "\n");
}
+/*
+ * Set default attributes depending on those already defined from the command
+ * line.
+ */
+static void set_default_attr(struct lttng_domain *dom)
+{
+ struct lttng_channel_attr default_attr;
+
+ /* Set attributes */
+ lttng_channel_set_default_attr(dom, &default_attr);
+
+ if (chan.attr.overwrite == -1) {
+ chan.attr.overwrite = default_attr.overwrite;
+ }
+ if (chan.attr.subbuf_size == -1) {
+ chan.attr.subbuf_size = default_attr.subbuf_size;
+ }
+ if (chan.attr.num_subbuf == -1) {
+ chan.attr.num_subbuf = default_attr.num_subbuf;
+ }
+ if (chan.attr.switch_timer_interval == -1) {
+ chan.attr.switch_timer_interval = default_attr.switch_timer_interval;
+ }
+ if (chan.attr.read_timer_interval == -1) {
+ chan.attr.read_timer_interval = default_attr.read_timer_interval;
+ }
+ if (chan.attr.output == -1) {
+ chan.attr.output = default_attr.output;
+ }
+}
+
/*
* Adding channel using the lttng API.
*/
goto error;
}
+ set_default_attr(&dom);
+
handle = lttng_create_handle(session_name, &dom);
if (handle == NULL) {
ret = -1;
*/
static void init_channel_config(void)
{
- if (opt_kernel) {
- /* kernel default */
- chan.attr.overwrite = DEFAULT_CHANNEL_OVERWRITE;
- chan.attr.switch_timer_interval = DEFAULT_CHANNEL_SWITCH_TIMER;
- chan.attr.read_timer_interval = DEFAULT_CHANNEL_READ_TIMER;
-
- 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;
- } else {
- /* default behavior, used by UST. */
- chan.attr.overwrite = DEFAULT_CHANNEL_OVERWRITE;
- chan.attr.switch_timer_interval = DEFAULT_CHANNEL_SWITCH_TIMER;
- chan.attr.read_timer_interval = DEFAULT_CHANNEL_READ_TIMER;
-
- chan.attr.subbuf_size = DEFAULT_UST_CHANNEL_SUBBUF_SIZE;
- chan.attr.num_subbuf = DEFAULT_UST_CHANNEL_SUBBUF_NUM;
- chan.attr.output = DEFAULT_CHANNEL_OUTPUT;
- }
+ /*
+ * Put -1 everywhere so we can identify those set by the command line and
+ * those needed to be set by the default values.
+ */
+ memset(&chan.attr, -1, sizeof(chan.attr));
}
/*