From 410fab9ea8c6632da2e4967d960f66eecc7821ec Mon Sep 17 00:00:00 2001 From: Zachary T Welch Date: Wed, 18 Nov 2009 05:36:18 -0800 Subject: [PATCH] use COMMAND_PARSE_ENABLE macro where appropriate Updates all command parsing of simple "enable" and "disable" arguments. A few case in the tree use a tri-state or extended arguments, which cannot use this simple macro. Simlifies the xscale icache/dcache command handler logic. --- src/flash/nand.c | 9 +----- src/jtag/tcl.c | 18 ++++------- src/server/gdb_server.c | 45 ++-------------------------- src/target/arm7_9_common.c | 45 ++-------------------------- src/target/etm.c | 21 ++++--------- src/target/xscale.c | 61 ++++++++++++++------------------------ 6 files changed, 41 insertions(+), 158 deletions(-) diff --git a/src/flash/nand.c b/src/flash/nand.c index c96354aa..23caed0d 100644 --- a/src/flash/nand.c +++ b/src/flash/nand.c @@ -1663,14 +1663,7 @@ COMMAND_HANDLER(handle_nand_raw_access_command) } if (CMD_ARGC == 2) - { - if (strcmp("enable", CMD_ARGV[1]) == 0) - p->use_raw = 1; - else if (strcmp("disable", CMD_ARGV[1]) == 0) - p->use_raw = 0; - else - return ERROR_COMMAND_SYNTAX_ERROR; - } + COMMAND_PARSE_ENABLE(CMD_ARGV[1], p->use_raw); const char *msg = p->use_raw ? "enabled" : "disabled"; command_print(CMD_CTX, "raw access is %s", msg); diff --git a/src/jtag/tcl.c b/src/jtag/tcl.c index 96018b59..1266cd74 100644 --- a/src/jtag/tcl.c +++ b/src/jtag/tcl.c @@ -1357,12 +1357,9 @@ COMMAND_HANDLER(handle_verify_ircapture_command) if (CMD_ARGC == 1) { - if (strcmp(CMD_ARGV[0], "enable") == 0) - jtag_set_verify_capture_ir(true); - else if (strcmp(CMD_ARGV[0], "disable") == 0) - jtag_set_verify_capture_ir(false); - else - return ERROR_COMMAND_SYNTAX_ERROR; + bool enable; + COMMAND_PARSE_ENABLE(CMD_ARGV[0], enable); + jtag_set_verify_capture_ir(enable); } const char *status = jtag_will_verify_capture_ir() ? "enabled": "disabled"; @@ -1378,12 +1375,9 @@ COMMAND_HANDLER(handle_verify_jtag_command) if (CMD_ARGC == 1) { - if (strcmp(CMD_ARGV[0], "enable") == 0) - jtag_set_verify(true); - else if (strcmp(CMD_ARGV[0], "disable") == 0) - jtag_set_verify(false); - else - return ERROR_COMMAND_SYNTAX_ERROR; + bool enable; + COMMAND_PARSE_ENABLE(CMD_ARGV[0], enable); + jtag_set_verify(enable); } const char *status = jtag_will_verify() ? "enabled": "disabled"; diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index 9605f81a..21dc24c9 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -2271,20 +2271,7 @@ COMMAND_HANDLER(handle_gdb_port_command) COMMAND_HANDLER(handle_gdb_memory_map_command) { if (CMD_ARGC == 1) - { - if (strcmp(CMD_ARGV[0], "enable") == 0) - { - gdb_use_memory_map = 1; - return ERROR_OK; - } - else if (strcmp(CMD_ARGV[0], "disable") == 0) - { - gdb_use_memory_map = 0; - return ERROR_OK; - } - else - LOG_WARNING("invalid gdb_memory_map configuration directive %s", CMD_ARGV[0]); - } + COMMAND_PARSE_ENABLE(CMD_ARGV[0], gdb_use_memory_map); return ERROR_COMMAND_SYNTAX_ERROR; } @@ -2292,20 +2279,7 @@ COMMAND_HANDLER(handle_gdb_memory_map_command) COMMAND_HANDLER(handle_gdb_flash_program_command) { if (CMD_ARGC == 1) - { - if (strcmp(CMD_ARGV[0], "enable") == 0) - { - gdb_flash_program = 1; - return ERROR_OK; - } - else if (strcmp(CMD_ARGV[0], "disable") == 0) - { - gdb_flash_program = 0; - return ERROR_OK; - } - else - LOG_WARNING("invalid gdb_flash_program configuration directive: %s", CMD_ARGV[0]); - } + COMMAND_PARSE_ENABLE(CMD_ARGV[0], gdb_flash_program); return ERROR_COMMAND_SYNTAX_ERROR; } @@ -2313,20 +2287,7 @@ COMMAND_HANDLER(handle_gdb_flash_program_command) COMMAND_HANDLER(handle_gdb_report_data_abort_command) { if (CMD_ARGC == 1) - { - if (strcmp(CMD_ARGV[0], "enable") == 0) - { - gdb_report_data_abort = 1; - return ERROR_OK; - } - else if (strcmp(CMD_ARGV[0], "disable") == 0) - { - gdb_report_data_abort = 0; - return ERROR_OK; - } - else - LOG_WARNING("invalid gdb_report_data_abort configuration directive: %s", CMD_ARGV[0]); - } + COMMAND_PARSE_ENABLE(CMD_ARGV[0], gdb_report_data_abort); return ERROR_COMMAND_SYNTAX_ERROR; } diff --git a/src/target/arm7_9_common.c b/src/target/arm7_9_common.c index 37aa0660..16c8a925 100644 --- a/src/target/arm7_9_common.c +++ b/src/target/arm7_9_common.c @@ -2870,20 +2870,7 @@ COMMAND_HANDLER(handle_arm7_9_dbgrq_command) } if (CMD_ARGC > 0) - { - if (strcmp("enable", CMD_ARGV[0]) == 0) - { - arm7_9->use_dbgrq = 1; - } - else if (strcmp("disable", CMD_ARGV[0]) == 0) - { - arm7_9->use_dbgrq = 0; - } - else - { - command_print(CMD_CTX, "usage: arm7_9 dbgrq "); - } - } + COMMAND_PARSE_ENABLE(CMD_ARGV[0],arm7_9->use_dbgrq); command_print(CMD_CTX, "use of EmbeddedICE dbgrq instead of breakpoint for target halt %s", (arm7_9->use_dbgrq) ? "enabled" : "disabled"); @@ -2902,20 +2889,7 @@ COMMAND_HANDLER(handle_arm7_9_fast_memory_access_command) } if (CMD_ARGC > 0) - { - if (strcmp("enable", CMD_ARGV[0]) == 0) - { - arm7_9->fast_memory_access = 1; - } - else if (strcmp("disable", CMD_ARGV[0]) == 0) - { - arm7_9->fast_memory_access = 0; - } - else - { - command_print(CMD_CTX, "usage: arm7_9 fast_memory_access "); - } - } + COMMAND_PARSE_ENABLE(CMD_ARGV[0], arm7_9->fast_memory_access); command_print(CMD_CTX, "fast memory access is %s", (arm7_9->fast_memory_access) ? "enabled" : "disabled"); @@ -2934,20 +2908,7 @@ COMMAND_HANDLER(handle_arm7_9_dcc_downloads_command) } if (CMD_ARGC > 0) - { - if (strcmp("enable", CMD_ARGV[0]) == 0) - { - arm7_9->dcc_downloads = 1; - } - else if (strcmp("disable", CMD_ARGV[0]) == 0) - { - arm7_9->dcc_downloads = 0; - } - else - { - command_print(CMD_CTX, "usage: arm7_9 dcc_downloads "); - } - } + COMMAND_PARSE_ENABLE(CMD_ARGV[0], arm7_9->dcc_downloads); command_print(CMD_CTX, "dcc downloads are %s", (arm7_9->dcc_downloads) ? "enabled" : "disabled"); diff --git a/src/target/etm.c b/src/target/etm.c index 3b5fa61f..85cc6ebd 100644 --- a/src/target/etm.c +++ b/src/target/etm.c @@ -1214,25 +1214,14 @@ static COMMAND_HELPER(handle_etm_tracemode_command_update, return ERROR_INVALID_ARGUMENTS; } - if (strcmp(CMD_ARGV[2], "enable") == 0) + bool etmv1_cycle_accurate; + COMMAND_PARSE_ENABLE(CMD_ARGV[2], etmv1_cycle_accurate); + if (etmv1_cycle_accurate) tracemode |= ETMV1_CYCLE_ACCURATE; - else if (strcmp(CMD_ARGV[2], "disable") == 0) - tracemode |= 0; - else - { - command_print(CMD_CTX, "invalid option '%s'", CMD_ARGV[2]); - return ERROR_INVALID_ARGUMENTS; - } - if (strcmp(CMD_ARGV[3], "enable") == 0) + bool etmv1_branch_output; + COMMAND_PARSE_ENABLE(CMD_ARGV[3], etmv1_branch_output); tracemode |= ETMV1_BRANCH_OUTPUT; - else if (strcmp(CMD_ARGV[3], "disable") == 0) - tracemode |= 0; - else - { - command_print(CMD_CTX, "invalid option '%s'", CMD_ARGV[3]); - return ERROR_INVALID_ARGUMENTS; - } /* IGNORED: * - CPRT tracing (coprocessor register transfers) diff --git a/src/target/xscale.c b/src/target/xscale.c index 09e68254..28f89f1a 100644 --- a/src/target/xscale.c +++ b/src/target/xscale.c @@ -3130,16 +3130,13 @@ COMMAND_HANDLER(xscale_handle_mmu_command) if (CMD_ARGC >= 1) { - if (strcmp("enable", CMD_ARGV[0]) == 0) - { + bool enable; + COMMAND_PARSE_ENABLE(CMD_ARGV[0], enable); + if (enable) xscale_enable_mmu_caches(target, 1, 0, 0); - xscale->armv4_5_mmu.mmu_enabled = 1; - } - else if (strcmp("disable", CMD_ARGV[0]) == 0) - { + else xscale_disable_mmu_caches(target, 1, 0, 0); - xscale->armv4_5_mmu.mmu_enabled = 0; - } + xscale->armv4_5_mmu.mmu_enabled = enable; } command_print(CMD_CTX, "mmu %s", (xscale->armv4_5_mmu.mmu_enabled) ? "enabled" : "disabled"); @@ -3151,10 +3148,8 @@ COMMAND_HANDLER(xscale_handle_idcache_command) { struct target *target = get_current_target(CMD_CTX); struct xscale_common *xscale = target_to_xscale(target); - int icache = 0, dcache = 0; - int retval; - retval = xscale_verify_pointer(CMD_CTX, xscale); + int retval = xscale_verify_pointer(CMD_CTX, xscale); if (retval != ERROR_OK) return retval; @@ -3164,38 +3159,28 @@ COMMAND_HANDLER(xscale_handle_idcache_command) return ERROR_OK; } - if (strcmp(CMD_NAME, "icache") == 0) - icache = 1; - else if (strcmp(CMD_NAME, "dcache") == 0) - dcache = 1; + bool icache; + COMMAND_PARSE_BOOL(CMD_NAME, icache, "icache", "dcache"); if (CMD_ARGC >= 1) { - if (strcmp("enable", CMD_ARGV[0]) == 0) - { - xscale_enable_mmu_caches(target, 0, dcache, icache); - - if (icache) - xscale->armv4_5_mmu.armv4_5_cache.i_cache_enabled = 1; - else if (dcache) - xscale->armv4_5_mmu.armv4_5_cache.d_u_cache_enabled = 1; - } - else if (strcmp("disable", CMD_ARGV[0]) == 0) - { - xscale_disable_mmu_caches(target, 0, dcache, icache); - - if (icache) - xscale->armv4_5_mmu.armv4_5_cache.i_cache_enabled = 0; - else if (dcache) - xscale->armv4_5_mmu.armv4_5_cache.d_u_cache_enabled = 0; - } + bool enable; + COMMAND_PARSE_ENABLE(CMD_ARGV[0], enable); + if (enable) + xscale_enable_mmu_caches(target, 1, 0, 0); + else + xscale_disable_mmu_caches(target, 1, 0, 0); + if (icache) + xscale->armv4_5_mmu.armv4_5_cache.i_cache_enabled = enable; + else + xscale->armv4_5_mmu.armv4_5_cache.d_u_cache_enabled = enable; } - if (icache) - command_print(CMD_CTX, "icache %s", (xscale->armv4_5_mmu.armv4_5_cache.i_cache_enabled) ? "enabled" : "disabled"); - - if (dcache) - command_print(CMD_CTX, "dcache %s", (xscale->armv4_5_mmu.armv4_5_cache.d_u_cache_enabled) ? "enabled" : "disabled"); + bool enabled = icache ? + xscale->armv4_5_mmu.armv4_5_cache.i_cache_enabled : + xscale->armv4_5_mmu.armv4_5_cache.d_u_cache_enabled; + const char *msg = enabled ? "enabled" : "disabled"; + command_print(CMD_CTX, "%s %s", CMD_NAME, msg); return ERROR_OK; } -- 2.39.5