refactor command registration
[fw/openocd] / src / openocd.c
index 78f220c7d3107fa8803fef9f5f2f2a2652789e4d..8e8ceac45eb8ece54df1b877b6438d1ae2e1631f 100644 (file)
 #include "config.h"
 #endif
 
+#include "openocd.h"
 #include "jtag.h"
 #include "configuration.h"
 #include "xsvf.h"
 #include "svf.h"
-#include "target.h"
-#include "flash.h"
 #include "nand.h"
 #include "pld.h"
 #include "mflash.h"
 #define OPENOCD_VERSION \
                "Open On-Chip Debugger " VERSION RELSTR " (" PKGBLDDATE ")"
 
-static void print_version(void)
-{
-       /* DANGER!!! make sure that the line below does not appear in a patch, do not remove */
-       /* DANGER!!! make sure that the line below does not appear in a patch, do not remove */
-       /* DANGER!!! make sure that the line below does not appear in a patch, do not remove */
-       /* DANGER!!! make sure that the line below does not appear in a patch, do not remove */
-       /* DANGER!!! make sure that the line below does not appear in a patch, do not remove */
-       LOG_OUTPUT("$URL$\n");
-       /* DANGER!!! make sure that the line above does not appear in a patch, do not remove */
-       /* DANGER!!! make sure that the line above does not appear in a patch, do not remove */
-       /* DANGER!!! make sure that the line above does not appear in a patch, do not remove */
-       /* DANGER!!! make sure that the line above does not appear in a patch, do not remove */
-       /* DANGER!!! make sure that the line above does not appear in a patch, do not remove */
-}
-
 /* Give TELNET a way to find out what version this is */
 COMMAND_HANDLER(handle_version_command)
 {
-       if (argc != 0)
+       if (CMD_ARGC != 0)
                return ERROR_COMMAND_SYNTAX_ERROR;
 
-       command_print(cmd_ctx, OPENOCD_VERSION);
+       command_print(CMD_CTX, OPENOCD_VERSION);
 
        return ERROR_OK;
 }
@@ -112,7 +96,7 @@ int ioutil_init(struct command_context *cmd_ctx);
 COMMAND_HANDLER(handle_init_command)
 {
 
-       if (argc != 0)
+       if (CMD_ARGC != 0)
                return ERROR_COMMAND_SYNTAX_ERROR;
 
        int retval;
@@ -124,11 +108,11 @@ COMMAND_HANDLER(handle_init_command)
 
        atexit(exit_handler);
 
-       if (target_init(cmd_ctx) != ERROR_OK)
+       if (target_init(CMD_CTX) != ERROR_OK)
                return ERROR_FAIL;
        LOG_DEBUG("target init complete");
 
-       if ((retval = jtag_interface_init(cmd_ctx)) != ERROR_OK)
+       if ((retval = jtag_interface_init(CMD_CTX)) != ERROR_OK)
        {
                /* we must be able to set up the jtag interface */
                return retval;
@@ -137,7 +121,7 @@ COMMAND_HANDLER(handle_init_command)
 
        /* Try to initialize & examine the JTAG chain at this point, but
         * continue startup regardless */
-       if (jtag_init(cmd_ctx) == ERROR_OK)
+       if (jtag_init(CMD_CTX) == ERROR_OK)
        {
                LOG_DEBUG("jtag init complete");
                if (target_examine() == ERROR_OK)
@@ -146,19 +130,19 @@ COMMAND_HANDLER(handle_init_command)
                }
        }
 
-       if (flash_init_drivers(cmd_ctx) != ERROR_OK)
+       if (flash_init_drivers(CMD_CTX) != ERROR_OK)
                return ERROR_FAIL;
        LOG_DEBUG("flash init complete");
 
-       if (mflash_init_drivers(cmd_ctx) != ERROR_OK)
+       if (mflash_init_drivers(CMD_CTX) != ERROR_OK)
                return ERROR_FAIL;
        LOG_DEBUG("mflash init complete");
 
-       if (nand_init(cmd_ctx) != ERROR_OK)
+       if (nand_init(CMD_CTX) != ERROR_OK)
                return ERROR_FAIL;
        LOG_DEBUG("NAND init complete");
 
-       if (pld_init(cmd_ctx) != ERROR_OK)
+       if (pld_init(CMD_CTX) != ERROR_OK)
                return ERROR_FAIL;
        LOG_DEBUG("pld init complete");
 
@@ -170,7 +154,7 @@ COMMAND_HANDLER(handle_init_command)
        gdb_init();
        tcl_init(); /* allows tcl to just connect without going thru telnet */
 
-       target_register_event_callback(log_target_callback_event_handler, cmd_ctx);
+       target_register_event_callback(log_target_callback_event_handler, CMD_CTX);
 
        return ERROR_OK;
 }
@@ -185,7 +169,7 @@ struct command_context *setup_command_handler(void)
 {
        struct command_context *cmd_ctx;
 
-       global_cmd_ctx = cmd_ctx = command_init();
+       global_cmd_ctx = cmd_ctx = command_init(openocd_startup_tcl);
 
        register_command(cmd_ctx, NULL, "version", handle_version_command,
                                         COMMAND_EXEC, "show OpenOCD version");
@@ -257,8 +241,6 @@ int openocd_main(int argc, char *argv[])
        }
 #endif
 
-       print_version();
-
        LOG_OUTPUT("For bug reports, read\n\t"
                "http://openocd.berlios.de/doc/doxygen/bugs.html"
                "\n");
@@ -296,7 +278,7 @@ int openocd_main(int argc, char *argv[])
        httpd_stop();
 #endif
 
-       unregister_all_commands(cmd_ctx);
+       unregister_all_commands(cmd_ctx, NULL);
 
        /* free commandline interface */
        command_done(cmd_ctx);