use COMMAND_REGISTER macro
[fw/openocd] / src / server / tcl_server.c
index 178d86ba8cef9b4cfd45d6cce04241d0cac8b8bf..a12176eeac647bb716b1efaa75133c33658039e9 100644 (file)
 #define TCL_SERVER_VERSION     "TCL Server 0.1"
 #define TCL_MAX_LINE           (4096)
 
-typedef struct tcl_connection_s {
+struct tcl_connection {
        int tc_linedrop;
        int tc_lineoffset;
        char tc_line[TCL_MAX_LINE];
        int tc_outerror; /* flag an output error */
-} tcl_connection_t;
+};
 
 static unsigned short tcl_port = 6666;
 
-/* commands */
-static int handle_tcl_port_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc);
-
 /* handlers */
-static int tcl_new_connection(connection_t *connection);
-static int tcl_input(connection_t *connection);
-static int tcl_output(connection_t *connection, const void *buf, ssize_t len);
-static int tcl_closed(connection_t *connection);
+static int tcl_new_connection(struct connection *connection);
+static int tcl_input(struct connection *connection);
+static int tcl_output(struct connection *connection, const void *buf, ssize_t len);
+static int tcl_closed(struct connection *connection);
 
 /* write data out to a socket.
  *
  * this is a blocking write, so the return value must equal the length, if
  * that is not the case then flag the connection with an output error.
  */
-int tcl_output(connection_t *connection, const void *data, ssize_t len)
+int tcl_output(struct connection *connection, const void *data, ssize_t len)
 {
        ssize_t wlen;
-       tcl_connection_t *tclc;
+       struct tcl_connection *tclc;
 
        tclc = connection->priv;
        if (tclc->tc_outerror)
@@ -69,27 +66,27 @@ int tcl_output(connection_t *connection, const void *data, ssize_t len)
 }
 
 /* connections */
-static int tcl_new_connection(connection_t *connection)
+static int tcl_new_connection(struct connection *connection)
 {
-       tcl_connection_t *tclc;
+       struct tcl_connection *tclc;
 
-       tclc = malloc(sizeof(tcl_connection_t));
+       tclc = malloc(sizeof(struct tcl_connection));
        if (tclc == NULL)
                return ERROR_CONNECTION_REJECTED;
 
-       memset(tclc, 0, sizeof(tcl_connection_t));
+       memset(tclc, 0, sizeof(struct tcl_connection));
        connection->priv = tclc;
        return ERROR_OK;
 }
 
-static int tcl_input(connection_t *connection)
+static int tcl_input(struct connection *connection)
 {
        int retval;
        int i;
        ssize_t rlen;
        const char *result;
        int reslen;
-       tcl_connection_t *tclc;
+       struct tcl_connection *tclc;
        char in[256];
 
        rlen = read_socket(connection->fd, &in, sizeof(in));
@@ -149,7 +146,7 @@ static int tcl_input(connection_t *connection)
        return ERROR_OK;
 }
 
-static int tcl_closed(connection_t *connection)
+static int tcl_closed(struct connection *connection)
 {
        /* cleanup connection context */
        if (connection->priv) {
@@ -173,14 +170,15 @@ int tcl_init(void)
        return retval;
 }
 
-int tcl_register_commands(command_context_t *cmd_ctx)
+COMMAND_HANDLER(handle_tcl_port_command)
 {
-       register_command(cmd_ctx, NULL, "tcl_port", handle_tcl_port_command, COMMAND_CONFIG, "port on which to listen for incoming TCL syntax");
-       return ERROR_OK;
+       return CALL_COMMAND_HANDLER(server_port_command, &tcl_port);
 }
 
-static int handle_tcl_port_command(struct command_context_s *cmd_ctx,
-               char *cmd, char **args, int argc)
+int tcl_register_commands(struct command_context *cmd_ctx)
 {
-       return server_port_command(cmd_ctx, cmd, args, argc, &tcl_port);
+       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;
 }