AC_PREREQ(2.57)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
#AC_WITH_LTDL # not needed ?
AC_PREREQ(2.57)
AC_INIT(FULL-PACKAGE-NAME, VERSION, BUG-REPORT-ADDRESS)
#AC_WITH_LTDL # not needed ?
-AM_INIT_AUTOMAKE(ltt-control,0.67-05032009)
+AM_INIT_AUTOMAKE(ltt-control,0.68-19062009)
AM_CONFIG_HEADER(config.h)
AM_PROG_LIBTOOL
AM_CONFIG_HEADER(config.h)
AM_PROG_LIBTOOL
ret = initdebugfsmntdir();
if (ret) {
fprintf(stderr, "Get debugfs mount point failed\n");
ret = initdebugfsmntdir();
if (ret) {
fprintf(stderr, "Get debugfs mount point failed\n");
}
ret = initmodule();
if (ret) {
fprintf(stderr, "Control module seems not work\n");
}
ret = initmodule();
if (ret) {
fprintf(stderr, "Control module seems not work\n");
}
if (write(fd, op, strlen(op)) == -1) {
}
if (write(fd, op, strlen(op)) == -1) {
fprintf(stderr, "%s: write %s to %s failed: %s\n", __func__, op,
fname, strerror(errno));
close(fd);
fprintf(stderr, "%s: write %s to %s failed: %s\n", __func__, op,
fname, strerror(errno));
close(fd);
+ * -(EEXIST | ENOENT): check failed
* -ERRNO: error happened (no check)
*/
static int lttctl_check_trace(const char *name, int expect)
* -ERRNO: error happened (no check)
*/
static int lttctl_check_trace(const char *name, int expect)
if (!expect != !exist) {
if (exist)
if (!expect != !exist) {
if (exist)
fprintf(stderr, "Trace %s already exist\n", name);
fprintf(stderr, "Trace %s already exist\n", name);
fprintf(stderr, "Trace %s not exist\n", name);
fprintf(stderr, "Trace %s not exist\n", name);
+static void lttctl_free_channellist(char **channellist, int n_channel)
+{
+ int i = 0;
+ for(; i < n_channel; ++i)
+ free(channellist[i]);
+ free(channellist);
+}
+
int lttctl_setup_trace(const char *name)
{
int ret;
int lttctl_setup_trace(const char *name)
{
int ret;
+ char **channellist;
+ int n_channel;
if (!name || !channel) {
fprintf(stderr, "%s: args invalid\n", __func__);
if (!name || !channel) {
fprintf(stderr, "%s: args invalid\n", __func__);
if (ret)
goto op_err;
} else {
if (ret)
goto op_err;
} else {
- char **channellist;
- int n_channel;
-
/* Don't allow set enable state for metadata channel */
n_channel = lttctl_get_channellist(name, &channellist, 0);
if (n_channel < 0) {
/* Don't allow set enable state for metadata channel */
n_channel = lttctl_get_channellist(name, &channellist, 0);
if (n_channel < 0) {
ret = __lttctl_set_channel_enable(name,
channellist[n_channel - 1], enable);
if (ret)
ret = __lttctl_set_channel_enable(name,
channellist[n_channel - 1], enable);
if (ret)
+ lttctl_free_channellist(channellist, n_channel);
+op_err_clean:
+ lttctl_free_channellist(channellist, n_channel);
op_err:
arg_error:
return ret;
op_err:
arg_error:
return ret;
int overwrite)
{
int ret;
int overwrite)
{
int ret;
+ char **channellist;
+ int n_channel;
if (!name || !channel) {
fprintf(stderr, "%s: args invalid\n", __func__);
if (!name || !channel) {
fprintf(stderr, "%s: args invalid\n", __func__);
if (ret)
goto op_err;
} else {
if (ret)
goto op_err;
} else {
- char **channellist;
- int n_channel;
-
/* Don't allow set overwrite for metadata channel */
n_channel = lttctl_get_channellist(name, &channellist, 0);
if (n_channel < 0) {
/* Don't allow set overwrite for metadata channel */
n_channel = lttctl_get_channellist(name, &channellist, 0);
if (n_channel < 0) {
ret = __lttctl_set_channel_overwrite(name,
channellist[n_channel - 1], overwrite);
if (ret)
ret = __lttctl_set_channel_overwrite(name,
channellist[n_channel - 1], overwrite);
if (ret)
+ lttctl_free_channellist(channellist, n_channel);
+op_err_clean:
+ lttctl_free_channellist(channellist, n_channel);
op_err:
arg_error:
return ret;
op_err:
arg_error:
return ret;
unsigned subbuf_num)
{
int ret;
unsigned subbuf_num)
{
int ret;
+ char **channellist;
+ int n_channel;
if (!name || !channel) {
fprintf(stderr, "%s: args invalid\n", __func__);
if (!name || !channel) {
fprintf(stderr, "%s: args invalid\n", __func__);
if (ret)
goto op_err;
} else {
if (ret)
goto op_err;
} else {
- char **channellist;
- int n_channel;
-
/* allow set subbuf_num for metadata channel */
n_channel = lttctl_get_channellist(name, &channellist, 1);
if (n_channel < 0) {
/* allow set subbuf_num for metadata channel */
n_channel = lttctl_get_channellist(name, &channellist, 1);
if (n_channel < 0) {
ret = __lttctl_set_channel_subbuf_num(name,
channellist[n_channel - 1], subbuf_num);
if (ret)
ret = __lttctl_set_channel_subbuf_num(name,
channellist[n_channel - 1], subbuf_num);
if (ret)
+ lttctl_free_channellist(channellist, n_channel);
+op_err_clean:
+ lttctl_free_channellist(channellist, n_channel);
op_err:
arg_error:
return ret;
op_err:
arg_error:
return ret;
unsigned subbuf_size)
{
int ret;
unsigned subbuf_size)
{
int ret;
+ char **channellist;
+ int n_channel;
if (!name || !channel) {
fprintf(stderr, "%s: args invalid\n", __func__);
if (!name || !channel) {
fprintf(stderr, "%s: args invalid\n", __func__);
if (ret)
goto op_err;
} else {
if (ret)
goto op_err;
} else {
- char **channellist;
- int n_channel;
-
/* allow set subbuf_size for metadata channel */
n_channel = lttctl_get_channellist(name, &channellist, 1);
if (n_channel < 0) {
/* allow set subbuf_size for metadata channel */
n_channel = lttctl_get_channellist(name, &channellist, 1);
if (n_channel < 0) {
ret = __lttctl_set_channel_subbuf_size(name,
channellist[n_channel - 1], subbuf_size);
if (ret)
ret = __lttctl_set_channel_subbuf_size(name,
channellist[n_channel - 1], subbuf_size);
if (ret)
+ lttctl_free_channellist(channellist, n_channel);
+op_err_clean:
+ lttctl_free_channellist(channellist, n_channel);
op_err:
arg_error:
return ret;
op_err:
arg_error:
return ret;