X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fserver%2Fserver.c;h=0f977a76c81515ab44ad348b99f296205b2c1728;hp=7416784c768b18bc1adec1cb3263b72600c0a702;hb=8fc5a9a5e90ba1c7580e9d883aed0d790e594c8e;hpb=98723c4ecdbe06f90c66f3abec27b792c3b38e34 diff --git a/src/server/server.c b/src/server/server.c index 7416784c76..0f977a76c8 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -29,6 +29,9 @@ #include "server.h" #include "target.h" +#include "openocd.h" +#include "tcl_server.h" +#include "telnet_server.h" #include @@ -285,9 +288,6 @@ int remove_services(void) return ERROR_OK; } -extern void openocd_sleep_prelude(void); -extern void openocd_sleep_postlude(void); - int server_loop(struct command_context *command_context) { struct service *service; @@ -311,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); @@ -386,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) { @@ -487,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; @@ -518,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) @@ -541,26 +545,39 @@ 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 (argc) { + switch (CMD_ARGC) { case 0: - command_print(cmd_ctx, "%d", *out); + command_print(CMD_CTX, "%d", *out); break; case 1: { uint16_t port; - COMMAND_PARSE_NUMBER(u16, args[0], port); + COMMAND_PARSE_NUMBER(u16, CMD_ARGV[0], port); *out = port; break; }