X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fflash%2Fmflash.c;h=8fca4aa310a4e152767382b8c509b41e0cc0e0b7;hp=272127be5746af38a1cd1a206f167557969fa2c6;hb=4668bd264cfe64c3e3ddd0f75cb5bf2e5e85f717;hpb=3a693ef526575633cc350a69aa1a5d1f08e64c46 diff --git a/src/flash/mflash.c b/src/flash/mflash.c index 272127be57..8fca4aa310 100644 --- a/src/flash/mflash.c +++ b/src/flash/mflash.c @@ -141,7 +141,7 @@ static int s3c2440_set_gpio_to_output (struct mflash_gpio_num gpio) gpio_con = S3C2440_GPJCON; } else { LOG_ERROR("mflash: invalid port %d%s", gpio.num, gpio.port); - return ERROR_INVALID_ARGUMENTS; + return ERROR_COMMAND_SYNTAX_ERROR; } ret = target_read_u32(target, gpio_con, &data); @@ -173,7 +173,7 @@ static int s3c2440_set_gpio_output_val (struct mflash_gpio_num gpio, uint8_t val gpio_dat = S3C2440_GPJDAT; } else { LOG_ERROR("mflash: invalid port %d%s", gpio.num, gpio.port); - return ERROR_INVALID_ARGUMENTS; + return ERROR_COMMAND_SYNTAX_ERROR; } ret = target_read_u32(target, gpio_dat, &data); @@ -720,14 +720,20 @@ COMMAND_HANDLER(mg_write_cmd) if (ret != ERROR_OK) return ret; + int filesize; buffer = malloc(MG_FILEIO_CHUNK); if (!buffer) { fileio_close(&fileio); return ERROR_FAIL; } + int retval = fileio_size(&fileio, &filesize); + if (retval != ERROR_OK) { + fileio_close(&fileio); + return retval; + } - cnt = fileio_size(&fileio) / MG_FILEIO_CHUNK; - res = fileio_size(&fileio) % MG_FILEIO_CHUNK; + cnt = filesize / MG_FILEIO_CHUNK; + res = filesize % MG_FILEIO_CHUNK; struct duration bench; duration_start(&bench); @@ -752,8 +758,8 @@ COMMAND_HANDLER(mg_write_cmd) if (duration_measure(&bench) == ERROR_OK) { command_print(CMD_CTX, "wrote %ld bytes from file %s " - "in %fs (%0.3f kB/s)", (long)fileio_size(&fileio), CMD_ARGV[1], - duration_elapsed(&bench), duration_kbps(&bench, fileio_size(&fileio))); + "in %fs (%0.3f kB/s)", (long)filesize, CMD_ARGV[1], + duration_elapsed(&bench), duration_kbps(&bench, filesize)); } free(buffer);