# HG changeset patch # User Mychaela Falconia # Date 1583108472 0 # Node ID 0d199c6a6ea409841fb4141f342de181f8acb183 # Parent 880c6d31e487e60106341f7e9acb5d62a5a800ca fc-loadtool: timeout-cal internal developer command implemented diff -r 880c6d31e487 -r 0d199c6a6ea4 loadtools/ltdispatch.c --- a/loadtools/ltdispatch.c Sun Mar 01 23:56:35 2020 +0000 +++ b/loadtools/ltdispatch.c Mon Mar 02 00:21:12 2020 +0000 @@ -17,6 +17,7 @@ extern int cmd_exit(); extern int cmd_flash(); extern int cmd_help(); +extern int cmd_timeout_cal(); extern int loadtool_cmd_passthru(); static struct cmdtab { @@ -42,6 +43,7 @@ {"r8", 1, 1, loadtool_cmd_passthru}, {"r16", 1, 1, loadtool_cmd_passthru}, {"r32", 1, 1, loadtool_cmd_passthru}, + {"timeout-cal", 1, 1, cmd_timeout_cal}, {"w8", 2, 2, loadtool_cmd_passthru}, {"w16", 2, 2, loadtool_cmd_passthru}, {"w32", 2, 2, loadtool_cmd_passthru}, diff -r 880c6d31e487 -r 0d199c6a6ea4 loadtools/ltmisc.c --- a/loadtools/ltmisc.c Sun Mar 01 23:56:35 2020 +0000 +++ b/loadtools/ltmisc.c Mon Mar 02 00:21:12 2020 +0000 @@ -4,6 +4,7 @@ */ #include +#include #include #include #include @@ -58,3 +59,29 @@ printf("Saved to %s\n", argv[1]); return(0); } + +cmd_timeout_cal(argc, argv) + char **argv; +{ + char *targv[3]; + struct timeval time1, time2, diff; + int rc; + + targv[0] = "sertimeout"; + targv[1] = argv[1]; + targv[2] = 0; + if (tpinterf_make_cmd(argv) < 0) { + fprintf(stderr, "error: unable to form target command\n"); + return(-1); + } + if (tpinterf_send_cmd() < 0) + return(-1); + gettimeofday(&time1, 0); + rc = tpinterf_pass_output(60); + gettimeofday(&time2, 0); + if (rc) + return(rc); + timersub(&time2, &time1, &diff); + printf("%u.%06u s\n", (unsigned) diff.tv_sec, (unsigned) diff.tv_usec); + return(0); +}