X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fflash%2Fnor%2Ffaux.c;h=ed278b42402e77b6d7f07adb26d2bc95ce48c44b;hp=c996522c58388050392c574de65fa965351f528d;hb=64c2e03b23d9;hpb=f7bd1e8f3a302378687ded559e865c258d441c89 diff --git a/src/flash/nor/faux.c b/src/flash/nor/faux.c index c996522c58..ed278b4240 100644 --- a/src/flash/nor/faux.c +++ b/src/flash/nor/faux.c @@ -13,21 +13,18 @@ * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * along with this program. If not, see . * ***************************************************************************/ + #ifdef HAVE_CONFIG_H #include "config.h" #endif -#include +#include "imp.h" #include #include "hello.h" - -struct faux_flash_bank -{ +struct faux_flash_bank { struct target *target; uint8_t *memory; uint32_t start_address; @@ -43,20 +40,15 @@ FLASH_BANK_COMMAND_HANDLER(faux_flash_bank_command) struct faux_flash_bank *info; if (CMD_ARGC < 6) - { - LOG_WARNING("incomplete flash_bank faux configuration"); - return ERROR_FLASH_BANK_INVALID; - } + return ERROR_COMMAND_SYNTAX_ERROR; info = malloc(sizeof(struct faux_flash_bank)); - if (info == NULL) - { + if (info == NULL) { LOG_ERROR("no memory for flash bank info"); return ERROR_FAIL; } info->memory = malloc(bank->size); - if (info == NULL) - { + if (info->memory == NULL) { free(info); LOG_ERROR("no memory for flash bank info"); return ERROR_FAIL; @@ -64,12 +56,10 @@ FLASH_BANK_COMMAND_HANDLER(faux_flash_bank_command) bank->driver_priv = info; /* Use 0x10000 as a fixed sector size. */ - int i = 0; uint32_t offset = 0; bank->num_sectors = bank->size/sectorSize; bank->sectors = malloc(sizeof(struct flash_sector) * bank->num_sectors); - for (i = 0; i < bank->num_sectors; i++) - { + for (unsigned int i = 0; i < bank->num_sectors; i++) { bank->sectors[i].offset = offset; bank->sectors[i].size = sectorSize; offset += bank->sectors[i].size; @@ -78,8 +68,7 @@ FLASH_BANK_COMMAND_HANDLER(faux_flash_bank_command) } info->target = get_target(CMD_ARGV[5]); - if (info->target == NULL) - { + if (info->target == NULL) { LOG_ERROR("target '%s' not defined", CMD_ARGV[5]); free(info->memory); free(info); @@ -88,34 +77,24 @@ FLASH_BANK_COMMAND_HANDLER(faux_flash_bank_command) return ERROR_OK; } -static int faux_erase(struct flash_bank *bank, int first, int last) +static int faux_erase(struct flash_bank *bank, unsigned int first, + unsigned int last) { struct faux_flash_bank *info = bank->driver_priv; memset(info->memory + first*sectorSize, 0xff, sectorSize*(last-first + 1)); return ERROR_OK; } -static int faux_protect(struct flash_bank *bank, int set, int first, int last) -{ - LOG_USER("set protection sector %d to %d to %s", first, last, set?"on":"off"); - return ERROR_OK; -} - -static int faux_write(struct flash_bank *bank, uint8_t *buffer, uint32_t offset, uint32_t count) +static int faux_write(struct flash_bank *bank, const uint8_t *buffer, uint32_t offset, uint32_t count) { struct faux_flash_bank *info = bank->driver_priv; memcpy(info->memory + offset, buffer, count); return ERROR_OK; } -static int faux_protect_check(struct flash_bank *bank) +static int faux_info(struct flash_bank *bank, struct command_invocation *cmd) { - return ERROR_OK; -} - -static int faux_info(struct flash_bank *bank, char *buf, int buf_size) -{ - snprintf(buf, buf_size, "faux flash driver"); + command_print_sameline(cmd, "faux flash driver"); return ERROR_OK; } @@ -130,20 +109,21 @@ static const struct command_registration faux_command_handlers[] = { .mode = COMMAND_ANY, .help = "faux flash command group", .chain = hello_command_handlers, + .usage = "", }, COMMAND_REGISTRATION_DONE }; -struct flash_driver faux_flash = { - .name = "faux", - .commands = faux_command_handlers, - .flash_bank_command = &faux_flash_bank_command, - .erase = &faux_erase, - .protect = &faux_protect, - .write = &faux_write, - .probe = &faux_probe, - .auto_probe = &faux_probe, - .erase_check = &default_flash_blank_check, - .protect_check = &faux_protect_check, - .info = &faux_info - }; +const struct flash_driver faux_flash = { + .name = "faux", + .commands = faux_command_handlers, + .flash_bank_command = faux_flash_bank_command, + .erase = faux_erase, + .write = faux_write, + .read = default_flash_read, + .probe = faux_probe, + .auto_probe = faux_probe, + .erase_check = default_flash_blank_check, + .info = faux_info, + .free_driver_priv = default_flash_free_driver_priv, +};