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
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
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));
extern const char startup_tcl[];
const char *HostOs;
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);
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);
void command_print(struct command_context *context, const char *format, ...)

View File

@ -28,6 +28,7 @@
#include "config.h"
#endif
#include "openocd.h"
#include "jtag.h"
#include "configuration.h"
#include "xsvf.h"
@ -168,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");

View File

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