From b4c4b5f71ef069a641adad541b42ef79ca43ac60 Mon Sep 17 00:00:00 2001 From: Zachary T Welch Date: Sat, 21 Nov 2009 14:42:05 -0800 Subject: [PATCH 1/1] server: use register_commands Converts server directory to use new command registration paradigm. --- src/server/gdb_server.c | 72 ++++++++++++++++++++++++++------------ src/server/server.c | 19 ++++++---- src/server/tcl_server.c | 17 ++++++--- src/server/telnet_server.c | 32 ++++++++++------- 4 files changed, 95 insertions(+), 45 deletions(-) diff --git a/src/server/gdb_server.c b/src/server/gdb_server.c index be1f8dbc78..cb14cc3f8f 100644 --- a/src/server/gdb_server.c +++ b/src/server/gdb_server.c @@ -2326,27 +2326,55 @@ COMMAND_HANDLER(handle_gdb_breakpoint_override_command) return ERROR_OK; } -int gdb_register_commands(struct command_context *command_context) +static const struct command_registration gdb_command_handlers[] = { + { + .name = "gdb_sync", + .handler = &handle_gdb_sync_command, + .mode = COMMAND_ANY, + .help = "next stepi will return immediately allowing " + "GDB to fetch register state without affecting " + "target state", + }, + { + .name = "gdb_port", + .handler = &handle_gdb_port_command, + .mode = COMMAND_ANY, + .help = "daemon configuration command gdb_port", + .usage = "", + }, + { + .name = "gdb_memory_map", + .handler = &handle_gdb_memory_map_command, + .mode = COMMAND_CONFIG, + .help = "enable or disable memory map", + .usage = "enable|disable" + }, + { + .name = "gdb_flash_program", + .handler = &handle_gdb_flash_program_command, + .mode = COMMAND_CONFIG, + .help = "enable or disable flash program", + .usage = "enable|disable" + }, + { + .name = "gdb_report_data_abort", + .handler = &handle_gdb_report_data_abort_command, + .mode = COMMAND_CONFIG, + .help = "enable or disable reporting data aborts", + .usage = "enable|disable" + }, + { + .name = "gdb_breakpoint_override", + .handler = &handle_gdb_breakpoint_override_command, + .mode = COMMAND_EXEC, + .help = "force type of breakpoint " + "used by gdb 'break' commands.", + .usage = "hard|soft|disable", + }, + COMMAND_REGISTRATION_DONE +}; + +int gdb_register_commands(struct command_context *cmd_ctx) { - COMMAND_REGISTER(command_context, NULL, "gdb_sync", - handle_gdb_sync_command, COMMAND_ANY, - "next stepi will return immediately allowing GDB to " - "fetch register state without affecting target state"); - COMMAND_REGISTER(command_context, NULL, "gdb_port", - handle_gdb_port_command, COMMAND_ANY, - "daemon configuration command gdb_port"); - COMMAND_REGISTER(command_context, NULL, "gdb_memory_map", - handle_gdb_memory_map_command, COMMAND_CONFIG, - "enable or disable memory map"); - COMMAND_REGISTER(command_context, NULL, "gdb_flash_program", - handle_gdb_flash_program_command, COMMAND_CONFIG, - "enable or disable flash program"); - COMMAND_REGISTER(command_context, NULL, "gdb_report_data_abort", - handle_gdb_report_data_abort_command, COMMAND_CONFIG, - "enable or disable reporting data aborts"); - COMMAND_REGISTER(command_context, NULL, "gdb_breakpoint_override", - handle_gdb_breakpoint_override_command, COMMAND_EXEC, - "hard/soft/disable - force type of breakpoint " - "used by gdb 'break' commands."); - return ERROR_OK; + return register_commands(cmd_ctx, NULL, gdb_command_handlers); } diff --git a/src/server/server.c b/src/server/server.c index 5be131668f..50bc00eb18 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -539,16 +539,21 @@ COMMAND_HANDLER(handle_shutdown_command) return ERROR_COMMAND_CLOSE_CONNECTION; } -int server_register_commands(struct command_context *context) +static const struct command_registration server_command_handlers[] = { + { + .name = "shutdown", + .handler = &handle_shutdown_command, + .mode = COMMAND_ANY, + .help = "shut the server down", + }, + COMMAND_REGISTRATION_DONE +}; + +int server_register_commands(struct command_context *cmd_ctx) { - COMMAND_REGISTER(context, NULL, "shutdown", - handle_shutdown_command, COMMAND_ANY, - "shut the server down"); - - return ERROR_OK; + return register_commands(cmd_ctx, NULL, server_command_handlers); } - SERVER_PORT_COMMAND() { switch (CMD_ARGC) { diff --git a/src/server/tcl_server.c b/src/server/tcl_server.c index a12176eeac..22469a4f37 100644 --- a/src/server/tcl_server.c +++ b/src/server/tcl_server.c @@ -175,10 +175,19 @@ COMMAND_HANDLER(handle_tcl_port_command) return CALL_COMMAND_HANDLER(server_port_command, &tcl_port); } +static const struct command_registration tcl_command_handlers[] = { + { + .name = "tcl_port", + .handler = &handle_tcl_port_command, + .mode = COMMAND_CONFIG, + .help = "port on which to listen " + "for incoming TCL syntax", + .usage = "", + }, + COMMAND_REGISTRATION_DONE +}; + int tcl_register_commands(struct command_context *cmd_ctx) { - COMMAND_REGISTER(cmd_ctx, NULL, "tcl_port", - handle_tcl_port_command, COMMAND_CONFIG, - "port on which to listen for incoming TCL syntax"); - return ERROR_OK; + return register_commands(cmd_ctx, NULL, tcl_command_handlers); } diff --git a/src/server/telnet_server.c b/src/server/telnet_server.c index c52119dac6..8a86efa0ca 100644 --- a/src/server/telnet_server.c +++ b/src/server/telnet_server.c @@ -616,17 +616,25 @@ COMMAND_HANDLER(handle_exit_command) return ERROR_COMMAND_CLOSE_CONNECTION; } -int telnet_register_commands(struct command_context *command_context) +static const struct command_registration telnet_command_handlers[] = { + { + .name = "exit", + .handler = &handle_exit_command, + .mode = COMMAND_EXEC, + .help = "exit telnet session", + }, + { + .name = "telnet_port", + .handler = &handle_telnet_port_command, + .mode = COMMAND_ANY, + .help = "port on which to listen " + "for incoming telnet connections", + .usage = "", + }, + COMMAND_REGISTRATION_DONE +}; + +int telnet_register_commands(struct command_context *cmd_ctx) { - COMMAND_REGISTER(command_context, NULL, "exit", - &handle_exit_command, COMMAND_EXEC, - "exit telnet session"); - - COMMAND_REGISTER(command_context, NULL, "telnet_port", - &handle_telnet_port_command, COMMAND_ANY, - "port on which to listen for incoming telnet connections"); - - return ERROR_OK; + return register_commands(cmd_ctx, NULL, telnet_command_handlers); } - - -- 2.30.2