# HG changeset patch # User Mychaela Falconia # Date 1464650370 0 # Node ID 1178befeda762a3f699cef1f051bac7a1e70db9c # Parent f511bbac0efa9adf2edb88008e8fc41abfbda288 fc-shell: tch command framework started diff -r f511bbac0efa -r 1178befeda76 rvinterf/asyncshell/tchcmd.c --- a/rvinterf/asyncshell/tchcmd.c Mon May 30 22:45:48 2016 +0000 +++ b/rvinterf/asyncshell/tchcmd.c Mon May 30 23:19:30 2016 +0000 @@ -118,3 +118,54 @@ goto inv; } } + +static void +cmd_tch_dumpraw(argc, argv) + char **argv; +{ + if (argc < 2) { + printf("error: too few arguments\n"); + return; + } + if (!strcmp(argv[1], "enable") || !strcmp(argv[1], "on") || + !strcmp(argv[1], "1")) + tch_rawdump_mode = 1; + else if (!strcmp(argv[1], "disable") || !strcmp(argv[1], "off") || + !strcmp(argv[1], "0")) + tch_rawdump_mode = 0; + else + printf("error: boolean argument required\n"); +} + +static void +cmd_tch_status(argc, argv) + char **argv; +{ + if (argc > 1) { + printf("error: too many arguments\n"); + return; + } + printf("TCH raw dump mode is %s\n", + tch_rawdump_mode ? "enabled" : "disabled"); +} + +void +cmd_tch_dispatch(argstr) + char *argstr; +{ + char *argv[3]; + int argc, rc; + + rc = parse_interactive_command_into_argv(argstr, argv, 1, 2, &argc); + if (rc < 0) + return; + if (!strcmp(argv[0], "dump-raw")) { + cmd_tch_dumpraw(argc, argv); + return; + } + if (!strcmp(argv[0], "status")) { + cmd_tch_status(argc, argv); + return; + } + printf("error: invalid tch subcommand\n"); +} diff -r f511bbac0efa -r 1178befeda76 rvinterf/asyncshell/usercmd.c --- a/rvinterf/asyncshell/usercmd.c Mon May 30 22:45:48 2016 +0000 +++ b/rvinterf/asyncshell/usercmd.c Mon May 30 23:19:30 2016 +0000 @@ -17,6 +17,7 @@ extern void cmd_sendat(); extern void cmd_send_interactive(); extern void cmd_sp_interactive(); +extern void cmd_tch_dispatch(); extern void cmd_tchdl_interactive(); extern void cmd_tgtreset(); @@ -39,6 +40,7 @@ {"send", cmd_send_interactive}, {"sp", cmd_sp_interactive}, {"str", cmd_sendat}, + {"tch", cmd_tch_dispatch}, {"tch-dl", cmd_tchdl_interactive}, {"tgtreset", cmd_tgtreset}, {0, 0}