From 570631454df083f2af26e453939424a14a9684f1 Mon Sep 17 00:00:00 2001 From: zwelch Date: Thu, 21 May 2009 09:28:57 +0000 Subject: [PATCH] David Brownell : This patch adds annotations to the key command_*() helper functions, fixng the bugs that turned up. Several of these bugs were from misuse of PRIi64; that's for 64-bit integers, NOT for "long long" or "u64" (which work best with %lld). git-svn-id: svn://svn.berlios.de/openocd/trunk@1873 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/flash/flash.c | 11 +++++++---- src/flash/nand.c | 10 +++++----- src/helper/command.h | 10 +++++++--- src/pld/pld.c | 9 +++++---- src/svf/svf.c | 2 +- src/target/armv4_5.c | 2 +- src/target/armv4_5_mmu.c | 2 +- src/target/etm.c | 2 +- src/target/target.c | 8 +++++--- src/target/trace.c | 2 +- 10 files changed, 34 insertions(+), 24 deletions(-) diff --git a/src/flash/flash.c b/src/flash/flash.c index ff66a396f..9beec5a13 100644 --- a/src/flash/flash.c +++ b/src/flash/flash.c @@ -432,7 +432,7 @@ static int handle_flash_erase_check_command(struct command_context_s *cmd_ctx, c int j; if ((retval = p->driver->erase_check(p)) == ERROR_OK) { - command_print(cmd_ctx, "successfully checked erase state", p->driver->name, p->base); + command_print(cmd_ctx, "successfully checked erase state"); } else { @@ -567,7 +567,8 @@ static int handle_flash_erase_command(struct command_context_s *cmd_ctx, char *c return retval; } - command_print(cmd_ctx, "erased sectors %i through %i on flash bank %i in %s", first, last, strtoul(args[0], 0, 0), duration_text); + command_print(cmd_ctx, "erased sectors %i through %i on flash bank %li in %s", + first, last, strtoul(args[0], 0, 0), duration_text); free(duration_text); } } @@ -606,7 +607,9 @@ static int handle_flash_protect_command(struct command_context_s *cmd_ctx, char retval = flash_driver_protect(p, set, first, last); if (retval == ERROR_OK) { - command_print(cmd_ctx, "%s protection for sectors %i through %i on flash bank %i", (set) ? "set" : "cleared", first, last, strtoul(args[0], 0, 0)); + command_print(cmd_ctx, "%s protection for sectors %i through %i on flash bank %li", + (set) ? "set" : "cleared", first, + last, strtoul(args[0], 0, 0)); } } else @@ -873,7 +876,7 @@ static int handle_flash_write_bank_command(struct command_context_s *cmd_ctx, ch } if (retval==ERROR_OK) { - command_print(cmd_ctx, "wrote %"PRIi64" byte from file %s to flash bank %i at offset 0x%8.8x in %s (%f kb/s)", + command_print(cmd_ctx, "wrote %lld byte from file %s to flash bank %li at offset 0x%8.8x in %s (%f kb/s)", fileio.size, args[1], strtoul(args[0], NULL, 0), offset, duration_text, (float)fileio.size / 1024.0 / ((float)duration.duration.tv_sec + ((float)duration.duration.tv_usec / 1000000.0))); } diff --git a/src/flash/nand.c b/src/flash/nand.c index 85ca0fed4..6ca008c7f 100644 --- a/src/flash/nand.c +++ b/src/flash/nand.c @@ -1148,7 +1148,7 @@ static int handle_nand_info_command(struct command_context_s *cmd_ctx, char *cmd } else { - command_print(cmd_ctx, "#%i: not probed"); + command_print(cmd_ctx, "#%s: not probed", args[0]); } } @@ -1251,7 +1251,7 @@ int handle_nand_check_bad_blocks_command(struct command_context_s *cmd_ctx, char { if ((retval = nand_build_bbt(p, first, last)) == ERROR_OK) { - command_print(cmd_ctx, "checked NAND flash device for bad blocks, use \"nand info\" command to list blocks", p->device->name); + command_print(cmd_ctx, "checked NAND flash device for bad blocks, use \"nand info\" command to list blocks"); } else if (retval == ERROR_NAND_OPERATION_FAILED) { @@ -1570,13 +1570,13 @@ static int handle_nand_dump_command(struct command_context_s *cmd_ctx, char *cmd fileio_close(&fileio); duration_stop_measure(&duration, &duration_text); - command_print(cmd_ctx, "dumped %"PRIi64" byte in %s", fileio.size, duration_text); + command_print(cmd_ctx, "dumped %lld byte in %s", fileio.size, duration_text); free(duration_text); duration_text = NULL; } else { - command_print(cmd_ctx, "#%i: not probed"); + command_print(cmd_ctx, "#%s: not probed", args[0]); } } else @@ -1621,7 +1621,7 @@ static int handle_nand_raw_access_command(struct command_context_s *cmd_ctx, cha } else { - command_print(cmd_ctx, "#%i: not probed"); + command_print(cmd_ctx, "#%s: not probed", args[0]); } } else diff --git a/src/helper/command.h b/src/helper/command.h index 48cbdaab7..df3d37a52 100644 --- a/src/helper/command.h +++ b/src/helper/command.h @@ -83,10 +83,14 @@ extern command_context_t* copy_command_context(command_context_t* context); extern int command_context_mode(command_context_t *context, enum command_mode mode); extern command_context_t* command_init(void); extern int command_done(command_context_t *context); -extern void command_print(command_context_t *context, char *format, ...); -extern void command_print_sameline(command_context_t *context, char *format, ...); + +extern void command_print(command_context_t *context, char *format, ...) + __attribute__ ((format (printf, 2, 3))); +extern void command_print_sameline(command_context_t *context, char *format, ...) + __attribute__ ((format (printf, 2, 3))); extern int command_run_line(command_context_t *context, char *line); -extern int command_run_linef(command_context_t *context, char *format, ...); +extern int command_run_linef(command_context_t *context, char *format, ...) + __attribute__ ((format (printf, 2, 3))); extern void command_output_text(command_context_t *context, const char *data); extern void process_jim_events(void); diff --git a/src/pld/pld.c b/src/pld/pld.c index 48638b925..8b3b1ac3c 100644 --- a/src/pld/pld.c +++ b/src/pld/pld.c @@ -178,7 +178,7 @@ int handle_pld_load_command(struct command_context_s *cmd_ctx, char *cmd, char * if ((retval = p->driver->load(p, args[1])) != ERROR_OK) { - command_print(cmd_ctx, "failed loading file %s to pld device %i", + command_print(cmd_ctx, "failed loading file %s to pld device %lu", args[1], strtoul(args[0], NULL, 0)); switch (retval) { @@ -188,9 +188,10 @@ int handle_pld_load_command(struct command_context_s *cmd_ctx, char *cmd, char * { gettimeofday(&end, NULL); timeval_subtract(&duration, &end, &start); - - command_print(cmd_ctx, "loaded file %s to pld device %i in %is %ius", - args[1], strtoul(args[0], NULL, 0), duration.tv_sec, duration.tv_usec); + + command_print(cmd_ctx, "loaded file %s to pld device %lu in %lis %lius", + args[1], strtoul(args[0], NULL, 0), + duration.tv_sec, duration.tv_usec); } return ERROR_OK; diff --git a/src/svf/svf.c b/src/svf/svf.c index 1267755b9..3cad4c7e9 100644 --- a/src/svf/svf.c +++ b/src/svf/svf.c @@ -330,7 +330,7 @@ static int handle_svf_command(struct command_context_s *cmd_ctx, char *cmd, char } // print time - command_print(cmd_ctx, "%d ms used", timeval_ms() - time_ago); + command_print(cmd_ctx, "%lld ms used", timeval_ms() - time_ago); free_all: diff --git a/src/target/armv4_5.c b/src/target/armv4_5.c index 14aec0198..eebf866a7 100644 --- a/src/target/armv4_5.c +++ b/src/target/armv4_5.c @@ -342,7 +342,7 @@ int handle_armv4_5_reg_command(struct command_context_s *cmd_ctx, char *cmd, cha output_len += snprintf(output + output_len, 128 - output_len, "%8s: %8.8x ", ARMV4_5_CORE_REG_MODENUM(armv4_5->core_cache, mode, num).name, buf_get_u32(ARMV4_5_CORE_REG_MODENUM(armv4_5->core_cache, mode, num).value, 0, 32)); } - command_print(cmd_ctx, output); + command_print(cmd_ctx, "%s", output); } command_print(cmd_ctx, " cpsr: %8.8x spsr_fiq: %8.8x spsr_irq: %8.8x spsr_svc: %8.8x spsr_abt: %8.8x spsr_und: %8.8x", buf_get_u32(armv4_5->core_cache->reg_list[ARMV4_5_CPSR].value, 0, 32), diff --git a/src/target/armv4_5_mmu.c b/src/target/armv4_5_mmu.c index cc8fb3a23..abcd10e43 100644 --- a/src/target/armv4_5_mmu.c +++ b/src/target/armv4_5_mmu.c @@ -299,7 +299,7 @@ int armv4_5_mmu_handle_md_phys_command(command_context_t *cmd_ctx, char *cmd, ch if ((i % 8 == 7) || (i == count - 1)) { - command_print(cmd_ctx, output); + command_print(cmd_ctx, "%s", output); output_len = 0; } } diff --git a/src/target/etm.c b/src/target/etm.c index 5b83db893..7cb07d6b7 100644 --- a/src/target/etm.c +++ b/src/target/etm.c @@ -1674,7 +1674,7 @@ static int handle_etm_trigger_percent_command(struct command_context_s *cmd_ctx, if ((new_value < 2) || (new_value > 100)) { - command_print(cmd_ctx, "valid settings are 2% to 100%"); + command_print(cmd_ctx, "valid settings are 2%% to 100%%"); } else { diff --git a/src/target/target.c b/src/target/target.c index 3bb2fa360..3921e8252 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -1910,7 +1910,7 @@ static int handle_md_command(struct command_context_s *cmd_ctx, char *cmd, char if ((i%line_modulo == line_modulo-1) || (i == count - 1)) { - command_print(cmd_ctx, output); + command_print(cmd_ctx, "%s", output); output_len = 0; } } @@ -2168,7 +2168,8 @@ static int handle_dump_image_command(struct command_context_s *cmd_ctx, char *cm if (retval==ERROR_OK) { - command_print(cmd_ctx, "dumped %"PRIi64" byte in %s", fileio.size, duration_text); + command_print(cmd_ctx, "dumped %lld byte in %s", + fileio.size, duration_text); free(duration_text); } @@ -2369,7 +2370,8 @@ static int handle_bp_command(struct command_context_s *cmd_ctx, char *cmd, char } else { - command_print(cmd_ctx, "breakpoint added at address 0x%8.8x", strtoul(args[0], NULL, 0)); + command_print(cmd_ctx, "breakpoint added at address 0x%8.8lx", + strtoul(args[0], NULL, 0)); } } else diff --git a/src/target/trace.c b/src/target/trace.c index 2e7d45804..d0f40b2d9 100644 --- a/src/target/trace.c +++ b/src/target/trace.c @@ -60,7 +60,7 @@ static int handle_trace_point_command(struct command_context_s *cmd_ctx, char *c for (i = 0; i < trace->num_trace_points; i++) { - command_print(cmd_ctx, "trace point 0x%8.8x (%"PRIi64" times hit)", + command_print(cmd_ctx, "trace point 0x%8.8x (%lld times hit)", trace->trace_points[i].address, trace->trace_points[i].hit_counter); }