From mboxrd@z Thu Jan 1 00:00:00 1970 From: nils.carlson@ludd.ltu.se (Nils Carlson) Date: Thu, 24 Feb 2011 20:59:15 +0100 Subject: [ltt-dev] [UST PATCH] Allow backward compatibility to ustctl <= 0.11 for some commands In-Reply-To: <1298562404-20669-1-git-send-email-jason.wessel@windriver.com> References: <1298562404-20669-1-git-send-email-jason.wessel@windriver.com> Message-ID: <066CB591-C1F3-4E5F-8F04-349ACD9B1CEC@ludd.ltu.se> Hi, Any reason you want to ifdef these? The idea with the new api was to make it nicer, but I wouldn't mind being backwards compatible as well. If its ok with you I can pull this patch tomorrow and remove the #ifdefs? /Nils On Feb 24, 2011, at 4:46 PM, Jason Wessel wrote: > The rewrite of the ustctl broke all the existing scripts > that make use of ustctl. This allows the original commands, > examples, and external scripts to continue working properly. > > This covers the commands: > > --list-markers > --list-trace-events > --alloc-trace > --start-trace > --stop-trace > --create-trace > --destroy-trace > --enable-marker > --disable-marker > > Signed-off-by: Jason Wessel > --- > ustctl/ustctl.c | 74 ++++++++++++++++++++++++++++++++++++++++++++++ > ++++++-- > 1 files changed, 71 insertions(+), 3 deletions(-) > > diff --git a/ustctl/ustctl.c b/ustctl/ustctl.c > index c1bbe8c..5463a1c 100644 > --- a/ustctl/ustctl.c > +++ b/ustctl/ustctl.c > @@ -45,8 +45,40 @@ void usage(const char *process_name) > list_cli_cmds(CLI_DESCRIPTIVE_LIST); > } > > +#define DASH_DASH_COMPAT 1 > +#ifdef DASH_DASH_COMPAT > +/* > + * If DASH_DASH_COMPAT is defined allow the some of the ustctl > command > + * in version <= 0.11 commands to live on a while longer such that > + * scripts do not immediately have to be changed. > + */ > +enum command { > + CREATE_TRACE=1000, > + ALLOC_TRACE, > + START_TRACE, > + STOP_TRACE, > + DESTROY_TRACE, > + LIST_MARKERS, > + LIST_TRACE_EVENTS, > + ENABLE_MARKER, > + DISABLE_MARKER, > +}; > + > +#endif /* DASH_DASH_COMPAT */ > + > struct option options[] = > { > +#ifdef DASH_DASH_COMPAT > + { "create-trace", 0, 0, CREATE_TRACE }, > + { "alloc-trace", 0, 0, ALLOC_TRACE }, > + { "start-trace", 0, 0, START_TRACE }, > + { "stop-trace", 0, 0, STOP_TRACE }, > + { "destroy-trace", 0, 0, DESTROY_TRACE }, > + { "list-markers", 0, 0, LIST_MARKERS }, > + { "list-trace-events", 0, 0, LIST_TRACE_EVENTS}, > + { "enable-marker", 0, 0, ENABLE_MARKER }, > + { "disable-marker", 0, 0, DISABLE_MARKER }, > +#endif /* DASH_DASH_COMPAT */ > {"help", 2, NULL, 'h'}, > {"list", 0, NULL, 'l'}, > {"extended-list", 0, NULL, 'e'}, > @@ -56,6 +88,7 @@ struct option options[] = > int main(int argc, char *argv[]) > { > struct cli_cmd *cli_cmd; > + char **args = argv; > int opt; > > if(argc <= 1) { > @@ -85,20 +118,55 @@ int main(int argc, char *argv[]) > case 'e': > list_cli_cmds(CLI_EXTENDED_LIST); > exit(EXIT_FAILURE); > +#ifdef DASH_DASH_COMPAT > + case LIST_MARKERS: > + case LIST_TRACE_EVENTS: > + case CREATE_TRACE: > + case ALLOC_TRACE: > + case START_TRACE: > + case STOP_TRACE: > + case DESTROY_TRACE: > + case ENABLE_MARKER: > + case DISABLE_MARKER: > + { > + int i; > + args = (char **)malloc(sizeof(char **) * argc + 3); > + optind--; > + args[optind] = strdup(&argv[optind][2]); > + for (i = optind + 1; i < argc; i++) { > + args[i] = argv[i]; > + } > + if (opt >= CREATE_TRACE && opt <= DESTROY_TRACE) { > + args[argc] = strdup("auto"); > + argc++; > + } > + if (opt >= ENABLE_MARKER && opt <= DISABLE_MARKER) { > + args[argc] = args[argc - 2]; > + args[argc - 2] = args[argc - 1]; > + args[argc - 1] = strdup("auto"); > + argc++; > + } > + args[argc] = NULL; > + goto do_cli; > + } > +#endif /* DASH_DASH_COMPAT */ > default: > fprintf(stderr, "Unknown option\n"); > break; > } > } > > - cli_cmd = find_cli_cmd(argv[optind]); > +#ifdef DASH_DASH_COMPAT > +do_cli: > +#endif /* DASH_DASH_COMPAT */ > + cli_cmd = find_cli_cmd(args[optind]); > if (!cli_cmd) { > fprintf(stderr, "No such command %s\n", > - argv[optind]); > + args[optind]); > exit(EXIT_FAILURE); > } > > - cli_dispatch_cmd(cli_cmd, argc - optind, &argv[optind]); > + cli_dispatch_cmd(cli_cmd, argc - optind, &args[optind]); > > return 0; > } > -- > 1.6.6.2 > > > _______________________________________________ > ltt-dev mailing list > ltt-dev at lists.casi.polymtl.ca > http://lists.casi.polymtl.ca/cgi-bin/mailman/listinfo/ltt-dev