From mboxrd@z Thu Jan 1 00:00:00 1970 From: nils.carlson@ericsson.com (Nils Carlson) Date: Fri, 25 Feb 2011 09:41:32 +0100 Subject: [ltt-dev] [UST PATCH v2] Allow backward compatibility to ustctl <= 0.11 for some commands In-Reply-To: <1298580012-27962-1-git-send-email-jason.wessel@windriver.com> References: <1298580012-27962-1-git-send-email-jason.wessel@windriver.com> Message-ID: merged, thanks! /Nils On Thu, 24 Feb 2011, 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 | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- > 1 files changed, 58 insertions(+), 3 deletions(-) > > diff --git a/ustctl/ustctl.c b/ustctl/ustctl.c > index c1bbe8c..d6debb6 100644 > --- a/ustctl/ustctl.c > +++ b/ustctl/ustctl.c > @@ -45,8 +45,33 @@ void usage(const char *process_name) > list_cli_cmds(CLI_DESCRIPTIVE_LIST); > } > > +/* > + * Provide backward compatibility for scripts that make use of the > + * --commands in ustctl version <= 0.11 > + */ > +enum command { > + CREATE_TRACE=1000, > + ALLOC_TRACE, > + START_TRACE, > + STOP_TRACE, > + DESTROY_TRACE, > + LIST_MARKERS, > + LIST_TRACE_EVENTS, > + ENABLE_MARKER, > + DISABLE_MARKER, > +}; > + > struct option options[] = > { > + { "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 }, > {"help", 2, NULL, 'h'}, > {"list", 0, NULL, 'l'}, > {"extended-list", 0, NULL, 'e'}, > @@ -56,7 +81,9 @@ struct option options[] = > int main(int argc, char *argv[]) > { > struct cli_cmd *cli_cmd; > + char **args = argv; > int opt; > + int i; > > if(argc <= 1) { > fprintf(stderr, "No operation specified.\n"); > @@ -85,20 +112,48 @@ int main(int argc, char *argv[]) > case 'e': > list_cli_cmds(CLI_EXTENDED_LIST); > exit(EXIT_FAILURE); > + 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: > + 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; > default: > fprintf(stderr, "Unknown option\n"); > break; > } > } > > - cli_cmd = find_cli_cmd(argv[optind]); > +do_cli: > + 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 >