target: fix init_targets script handling
[fw/openocd] / src / openocd.c
index a5002d19268b1f58c167bc18c9acf07002816404..66555e60b1420ac218993ebb2dd4f7f5b342cf10 100644 (file)
@@ -31,7 +31,7 @@
 #include "openocd.h"
 #include <jtag/driver.h>
 #include <jtag/jtag.h>
-#include <jtag/transport.h>
+#include <transport/transport.h>
 #include <helper/ioutil.h>
 #include <helper/util.h>
 #include <helper/configuration.h>
@@ -184,29 +184,6 @@ COMMAND_HANDLER(handle_add_script_search_dir_command)
        return ERROR_OK;
 }
 
-
-static int jim_stacktrace_command(Jim_Interp *interp, int argc,
-               Jim_Obj * const *argv)
-{
-       if (argc != 1)
-       {
-               return JIM_ERR;
-       }
-       Jim_Obj * stacktrace = Jim_DuplicateObj(interp, interp->stackTrace);
-       
-       /* insert actual error site at beginning of list*/
-       Jim_Obj *procname = Jim_NewStringObj(interp, "", -1); /* Uhhh... don't know this one. */
-       Jim_ListInsertElements(interp, stacktrace, 0, 1, &procname);
-       Jim_Obj *filename = Jim_NewStringObj(interp, interp->errorFileName, -1);
-       Jim_ListInsertElements(interp, stacktrace, 1, 1, &filename);
-       Jim_Obj *line = Jim_NewIntObj(interp, interp->errorLine);
-       Jim_ListInsertElements(interp, stacktrace, 2, 1, &line);
-
-       Jim_SetResult(interp, stacktrace);
-
-       return JIM_OK;
-}
-
 static const struct command_registration openocd_command_handlers[] = {
        {
                .name = "version",
@@ -237,14 +214,6 @@ static const struct command_registration openocd_command_handlers[] = {
                .help = "dir to search for config files and scripts",
 
        },
-       {
-               .name = "stacktrace",
-               .jim_handler = jim_stacktrace_command,
-               .mode = COMMAND_ANY,
-               .help = "returns the stacktrace as a list of triples: proc, file, line."
-               "The stack trace is reset when a new stack trace is being built after "
-               "a new failure has occurred.",
-       },
        COMMAND_REGISTRATION_DONE
 };
 
@@ -301,7 +270,11 @@ struct command_context *setup_command_handler(Jim_Interp *interp)
        return cmd_ctx;
 }
 
-static int main2(int argc, char *argv[], struct command_context *cmd_ctx)
+/** OpenOCD runtime meat that can become single-thread in future. It parse
+ * commandline, reads configuration, sets up the target and starts server loop.
+ * Commandline arguments are passed into this function from openocd_main().
+ */
+static int openocd_thread(int argc, char *argv[], struct command_context *cmd_ctx)
 {
        int ret;
 
@@ -319,10 +292,6 @@ static int main2(int argc, char *argv[], struct command_context *cmd_ctx)
        if (ERROR_OK != ret)
                return EXIT_FAILURE;
 
-       ret = command_run_line(cmd_ctx, "init_targets");
-       if (ERROR_OK != ret)
-               ret = EXIT_FAILURE;
-
        if (init_at_startup)
        {
                ret = command_run_line(cmd_ctx, "init");
@@ -356,13 +325,14 @@ int openocd_main(int argc, char *argv[])
                return EXIT_FAILURE;
 
        LOG_OUTPUT("For bug reports, read\n\t"
-               "http://openocd.berlios.de/doc/doxygen/bugs.html"
+               "http://openocd.sourceforge.net/doc/doxygen/bugs.html"
                "\n");
 
        command_context_mode(cmd_ctx, COMMAND_CONFIG);
        command_set_output_handler(cmd_ctx, configuration_output_handler, NULL);
 
-       ret = main2(argc, argv, cmd_ctx);
+       /* Start the executable meat that can evolve into thread in future. */
+       ret = openocd_thread(argc, argv, cmd_ctx);
 
        unregister_all_commands(cmd_ctx, NULL);