X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fsvf%2Fsvf.c;h=dfdecbcd83c6c082c563d74f9853db66944deeaa;hb=12c143d5948355b3b54c9c0decc779177b22d5d9;hp=fb5e1b0e5ae51ffe0d3417ecb308bb9fa9134c2f;hpb=dc1685ca25567fe75c8d50c825fb0303fbb66fac;p=fw%2Fopenocd diff --git a/src/svf/svf.c b/src/svf/svf.c index fb5e1b0e5..dfdecbcd8 100644 --- a/src/svf/svf.c +++ b/src/svf/svf.c @@ -31,9 +31,9 @@ #include "config.h" #endif -#include "jtag.h" +#include #include "svf.h" -#include "time_support.h" +#include // SVF command @@ -308,38 +308,38 @@ COMMAND_HANDLER(handle_svf_command) int ret = ERROR_OK; long long time_ago; - if ((argc < 1) || (argc > (1 + SVF_NUM_OF_OPTIONS))) + if ((CMD_ARGC < 1) || (CMD_ARGC > (1 + SVF_NUM_OF_OPTIONS))) { - command_print(cmd_ctx, "usage: svf [quiet]"); + command_print(CMD_CTX, "usage: svf [quiet]"); return ERROR_FAIL; } // parse variant svf_quiet = 0; - for (unsigned i = 1; i < argc; i++) + for (unsigned i = 1; i < CMD_ARGC; i++) { - if (!strcmp(args[i], "quiet")) + if (!strcmp(CMD_ARGV[i], "quiet")) { svf_quiet = 1; } else { - LOG_ERROR("unknown variant for svf: %s", args[i]); + LOG_ERROR("unknown variant for svf: %s", CMD_ARGV[i]); // no need to free anything now return ERROR_FAIL; } } - if ((svf_fd = open(args[0], O_RDONLY)) < 0) + if ((svf_fd = open(CMD_ARGV[0], O_RDONLY)) < 0) { - command_print(cmd_ctx, "file \"%s\" not found", args[0]); + command_print(CMD_CTX, "file \"%s\" not found", CMD_ARGV[0]); // no need to free anything now return ERROR_FAIL; } - LOG_USER("svf processing file: \"%s\"", args[0]); + LOG_USER("svf processing file: \"%s\"", CMD_ARGV[0]); // get time time_ago = timeval_ms(); @@ -392,7 +392,7 @@ COMMAND_HANDLER(handle_svf_command) while (ERROR_OK == svf_read_command_from_file(svf_fd)) { - if (ERROR_OK != svf_run_command(cmd_ctx, svf_command_buffer)) + if (ERROR_OK != svf_run_command(CMD_CTX, svf_command_buffer)) { LOG_ERROR("fail to run command at line %d", svf_line_number); ret = ERROR_FAIL; @@ -410,7 +410,7 @@ COMMAND_HANDLER(handle_svf_command) } // print time - command_print(cmd_ctx, "%lld ms used", timeval_ms() - time_ago); + command_print(CMD_CTX, "%lld ms used", timeval_ms() - time_ago); free_all: @@ -457,11 +457,11 @@ free_all: if (ERROR_OK == ret) { - command_print(cmd_ctx, "svf file programmed successfully for %d commands", command_num); + command_print(CMD_CTX, "svf file programmed successfully for %d commands", command_num); } else { - command_print(cmd_ctx, "svf file programmed failed"); + command_print(CMD_CTX, "svf file programmed failed"); } return ret; @@ -470,7 +470,8 @@ free_all: #define SVFP_CMD_INC_CNT 1024 static int svf_read_command_from_file(int fd) { - char ch, *tmp_buffer = NULL; + unsigned char ch; + char *tmp_buffer = NULL; int cmd_pos = 0, cmd_ok = 0, slash = 0, comment = 0; while (!cmd_ok && (read(fd, &ch, 1) > 0)) @@ -1350,12 +1351,9 @@ static int svf_run_command(struct command_context *cmd_ctx, char *cmd_str) return ERROR_FAIL; } } - // no need to keep this memory, in jtag_add_pathmove, path will be duplicated - if (NULL != path) - { - free(path); - path = NULL; - } + + free(path); + path = NULL; } else { @@ -1460,11 +1458,18 @@ static int svf_run_command(struct command_context *cmd_ctx, char *cmd_str) return ERROR_OK; } +static const struct command_registration svf_command_handlers[] = { + { + .name = "svf", + .handler = &handle_svf_command, + .mode = COMMAND_EXEC, + .help = "Runs a SVF file.", + .usage = "", + }, + COMMAND_REGISTRATION_DONE +}; + int svf_register_commands(struct command_context *cmd_ctx) { - register_command(cmd_ctx, NULL, "svf", - &handle_svf_command, COMMAND_EXEC, - "run svf "); - - return ERROR_OK; + return register_commands(cmd_ctx, NULL, svf_command_handlers); }