[ltt-dev] [UST PATCH v2] Allow backward compatibility to ustctl <= 0.11 for some commands
Nils Carlson
nils.carlson at ericsson.com
Fri Feb 25 03:41:32 EST 2011
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 <jason.wessel at windriver.com>
> ---
> 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
>
More information about the lttng-dev
mailing list