summaryrefslogtreecommitdiff
path: root/src/target/arm11.c
diff options
context:
space:
mode:
authorZachary T Welch <zw@superlucidity.net>2009-11-18 06:58:27 -0800
committerZachary T Welch <zw@superlucidity.net>2009-11-18 15:51:07 -0800
commit7e4adfe1c53aa18d4feba1e58ceb5c5aaa470775 (patch)
treeb6e359af900dc57c08f10fa8c7ab535a40e35379 /src/target/arm11.c
parent410fab9ea8c6632da2e4967d960f66eecc7821ec (diff)
downloadopenocd+libswd-7e4adfe1c53aa18d4feba1e58ceb5c5aaa470775.tar.gz
openocd+libswd-7e4adfe1c53aa18d4feba1e58ceb5c5aaa470775.tar.bz2
openocd+libswd-7e4adfe1c53aa18d4feba1e58ceb5c5aaa470775.tar.xz
openocd+libswd-7e4adfe1c53aa18d4feba1e58ceb5c5aaa470775.zip
add handle_command_parse_bool command helper
Rewrite arm11_handle_bool to provide a generic on/off command helper. Refactors COMMAND_PARSE_BOOL to use new command_parse_bool helper, which gets reused by the new command_parse_bool_any helper. This later helper is called by the new command helper function to accepts any on/off, enable/disable, true/false, yes/no, or 0/1 parameter.
Diffstat (limited to 'src/target/arm11.c')
-rw-r--r--src/target/arm11.c55
1 files changed, 10 insertions, 45 deletions
diff --git a/src/target/arm11.c b/src/target/arm11.c
index 6e007cfa..58b5d542 100644
--- a/src/target/arm11.c
+++ b/src/target/arm11.c
@@ -1981,52 +1981,17 @@ static int arm11_build_reg_cache(struct target *target)
return ERROR_OK;
}
-static COMMAND_HELPER(arm11_handle_bool, bool *var, char *name)
-{
- if (CMD_ARGC == 0)
- {
- LOG_INFO("%s is %s.", name, *var ? "enabled" : "disabled");
- return ERROR_OK;
- }
-
- if (CMD_ARGC != 1)
- return ERROR_COMMAND_SYNTAX_ERROR;
-
- switch (CMD_ARGV[0][0])
- {
- case '0': /* 0 */
- case 'f': /* false */
- case 'F':
- case 'd': /* disable */
- case 'D':
- *var = false;
- break;
-
- case '1': /* 1 */
- case 't': /* true */
- case 'T':
- case 'e': /* enable */
- case 'E':
- *var = true;
- break;
- }
-
- LOG_INFO("%s %s.", *var ? "Enabled" : "Disabled", name);
-
- return ERROR_OK;
-}
-
-#define BOOL_WRAPPER(name, print_name) \
-COMMAND_HANDLER(arm11_handle_bool_##name) \
-{ \
- return CALL_COMMAND_HANDLER(arm11_handle_bool, \
- &arm11_config_##name, print_name); \
-}
+#define ARM11_BOOL_WRAPPER(name, print_name) \
+ COMMAND_HANDLER(arm11_handle_bool_##name) \
+ { \
+ return CALL_COMMAND_HANDLER(handle_command_parse_bool, \
+ &arm11_config_##name, print_name); \
+ }
-BOOL_WRAPPER(memwrite_burst, "memory write burst mode")
-BOOL_WRAPPER(memwrite_error_fatal, "fatal error mode for memory writes")
-BOOL_WRAPPER(step_irq_enable, "IRQs while stepping")
-BOOL_WRAPPER(hardware_step, "hardware single step")
+ARM11_BOOL_WRAPPER(memwrite_burst, "memory write burst mode")
+ARM11_BOOL_WRAPPER(memwrite_error_fatal, "fatal error mode for memory writes")
+ARM11_BOOL_WRAPPER(step_irq_enable, "IRQs while stepping")
+ARM11_BOOL_WRAPPER(hardware_step, "hardware single step")
COMMAND_HANDLER(arm11_handle_vcr)
{