]> git.sur5r.net Git - openocd/blobdiff - src/helper/command.h
found two more gaffes for reset wip
[openocd] / src / helper / command.h
index 262786a82ac52d6cdac464edf7860e7c9990087e..6e6af75eb8b0ed0194ba1b23eef3b4a2171d9f9e 100644 (file)
@@ -34,7 +34,20 @@ typedef struct command_context_s
        enum command_mode mode;
        struct command_s *commands;
        int current_target;
-       int echo;
+       /* Execute a command.
+        * 
+        * If the command fails, it *MUST* return a value != ERROR_OK
+        * (many commands break this rule, patches welcome!)
+        * 
+        * This is *especially* important for commands such as writing
+        * to flash or verifying memory. The reason is that those commands
+        * can be used by programs to determine if the operation succeded
+        * or not. If the operation failed, then a program can try
+        * an alternative approach.
+        * 
+        * Returning ERROR_COMMAND_SYNTAX_ERROR will have the effect of
+        * printing out the syntax of the command.
+        */
        int (*output_handler)(struct command_context_s *context, char* line);
        void *output_handler_priv;
 } command_context_t;
@@ -58,10 +71,12 @@ extern command_context_t* copy_command_context(command_context_t* context);
 extern command_context_t* command_init();
 extern int command_done(command_context_t *context);
 extern void command_print(command_context_t *context, char *format, ...);
+extern void command_print_sameline(command_context_t *context, char *format, ...);
 extern int command_run_line(command_context_t *context, char *line);
 extern int command_run_file(command_context_t *context, FILE *file, enum command_mode mode);
 
 
 #define                ERROR_COMMAND_CLOSE_CONNECTION          (-600)
+#define                ERROR_COMMAND_SYNTAX_ERROR                      (-601)
 
 #endif /* COMMAND_H */