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:
parent
cb7dbc1af4
commit
5e229bbf87
|
@ -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
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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, ...)
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue