X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fserver%2Fserver.c;h=0f977a76c81515ab44ad348b99f296205b2c1728;hb=6ec526e706483cd2de6c8de4bafa885522a782cd;hp=258c89bcc54f162855b43df456cf320d59b5ec97;hpb=23402315ce01071f30d7ec0c5ca7563ce41f1cc6;p=openocd.git diff --git a/src/server/server.c b/src/server/server.c index 258c89bcc5..0f977a76c8 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -30,6 +30,8 @@ #include "server.h" #include "target.h" #include "openocd.h" +#include "tcl_server.h" +#include "telnet_server.h" #include @@ -309,7 +311,7 @@ int server_loop(struct command_context *command_context) while (!shutdown_openocd) { - /* monitor sockets for acitvity */ + /* monitor sockets for activity */ fd_max = 0; FD_ZERO(&read_fds); @@ -384,7 +386,7 @@ int server_loop(struct command_context *command_context) } target_call_timer_callbacks(); - process_jim_events (); + process_jim_events(command_context); if (retval == 0) { @@ -485,7 +487,7 @@ void sig_handler(int sig) { } #endif -int server_init(void) +int server_init(struct command_context *cmd_ctx) { #ifdef _WIN32 WORD wVersionRequested; @@ -516,7 +518,11 @@ int server_init(void) signal(SIGABRT, sig_handler); #endif - return ERROR_OK; + int ret = tcl_init(cmd_ctx); + if (ERROR_OK != ret) + return ret; + + return telnet_init("Open On-Chip Debugger"); } int server_quit(void) @@ -539,21 +545,34 @@ 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) { - register_command(context, NULL, "shutdown", - handle_shutdown_command, COMMAND_ANY, - "shut the server down"); + int retval = telnet_register_commands(cmd_ctx); + if (ERROR_OK != retval) + return retval; - return ERROR_OK; -} + retval = tcl_register_commands(cmd_ctx); + if (ERROR_OK != retval) + return retval; + return register_commands(cmd_ctx, NULL, server_command_handlers); +} SERVER_PORT_COMMAND() { switch (CMD_ARGC) { case 0: - command_print(cmd_ctx, "%d", *out); + command_print(CMD_CTX, "%d", *out); break; case 1: {