pass startup_tcl to command_init

Removes external linkage from helper module, making the startup
code a parameter to a new command context's initialization routine.
This commit is contained in:
Zachary T Welch 2009-11-17 09:15:09 -08:00
parent cb7dbc1af4
commit 5e229bbf87
5 changed files with 11 additions and 5 deletions

View File

@ -116,7 +116,7 @@ BIN2C = $(builddir)/helper/bin2char$(EXEEXT_FOR_BUILD)
# Convert .tcl to cfile # Convert .tcl to cfile
startup_tcl.c: startup.tcl $(BIN2C) startup_tcl.c: startup.tcl $(BIN2C)
$(BIN2C) startup_tcl < $< > $@ || rm -f $@ $(BIN2C) openocd_startup_tcl < $< > $@ || rm -f $@
# add startup_tcl.c to make clean list # add startup_tcl.c to make clean list
CLEANFILES = startup.tcl startup_tcl.c CLEANFILES = startup.tcl startup_tcl.c

View File

@ -766,10 +766,9 @@ COMMAND_HANDLER(handle_fast_command)
} }
struct command_context* command_init() struct command_context* command_init(const char *startup_tcl)
{ {
struct command_context* context = malloc(sizeof(struct command_context)); struct command_context* context = malloc(sizeof(struct command_context));
extern const char startup_tcl[];
const char *HostOs; const char *HostOs;
context->mode = COMMAND_EXEC; context->mode = COMMAND_EXEC;

View File

@ -190,7 +190,10 @@ struct command_context* copy_command_context(struct command_context* context);
int command_context_mode(struct command_context *context, enum command_mode mode); int command_context_mode(struct command_context *context, enum command_mode mode);
struct command_context* command_init(void); /**
* Creates a new command context using the startup TCL provided.
*/
struct command_context* command_init(const char *startup_tcl);
int command_done(struct command_context *context); int command_done(struct command_context *context);
void command_print(struct command_context *context, const char *format, ...) void command_print(struct command_context *context, const char *format, ...)

View File

@ -28,6 +28,7 @@
#include "config.h" #include "config.h"
#endif #endif
#include "openocd.h"
#include "jtag.h" #include "jtag.h"
#include "configuration.h" #include "configuration.h"
#include "xsvf.h" #include "xsvf.h"
@ -168,7 +169,7 @@ struct command_context *setup_command_handler(void)
{ {
struct command_context *cmd_ctx; 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, register_command(cmd_ctx, NULL, "version", handle_version_command,
COMMAND_EXEC, "show OpenOCD version"); COMMAND_EXEC, "show OpenOCD version");

View File

@ -36,4 +36,7 @@ void openocd_sleep_prelude(void);
/// used by the server_loop() function in src/server/server.c /// used by the server_loop() function in src/server/server.c
void openocd_sleep_postlude(void); void openocd_sleep_postlude(void);
/// provides a hard-coded command environment setup
extern const char *openocd_startup_tcl;
#endif #endif