Skip to content

Commit

Permalink
jim tests: use installed
Browse files Browse the repository at this point in the history
Delete obsolete jim that comes with OpenOCD.
  • Loading branch information
oharboe committed Oct 29, 2010
1 parent 4617cd0 commit 559d08c
Show file tree
Hide file tree
Showing 14 changed files with 79 additions and 14,903 deletions.
2 changes: 1 addition & 1 deletion src/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ MAINFILE = main.c
endif

openocd_SOURCES = $(MAINFILE)
openocd_LDADD = libopenocd.la
openocd_LDADD = libopenocd.la -ljim

libopenocd_la_SOURCES = \
hello.c \
Expand Down
4 changes: 4 additions & 0 deletions src/ecosboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -500,6 +500,10 @@ static void zylinjtag_startNetwork(void)

cyg_httpd_init_tcl_interpreter();

// Kludge! Why can't I do this from httpd.c??? I get linker errors...
// some of that --start/end-group stuff?
Jim_InitStaticExtensions(httpstate.jim_interp);

Jim_CreateCommand(httpstate.jim_interp, "log", zylinjtag_Jim_Command_log,
NULL, NULL);
Jim_CreateCommand(httpstate.jim_interp, "zy1000_reboot",
Expand Down
4 changes: 1 addition & 3 deletions src/helper/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ noinst_LTLIBRARIES = libhelper.la
if ECOSBOARD
CONFIGFILES = time_support_ecos.c
else
CONFIGFILES = options.c jim.c jim-eventloop.c time_support_common.c
CONFIGFILES = options.c time_support_common.c
endif


Expand Down Expand Up @@ -48,8 +48,6 @@ noinst_HEADERS = \
time_support.h \
replacements.h \
fileio.h \
jim.h \
jim-eventloop.h \
system.h \
bin2char.c

Expand Down
104 changes: 5 additions & 99 deletions src/helper/command.c
Original file line number Diff line number Diff line change
Expand Up @@ -684,7 +684,8 @@ int command_run_line(struct command_context *context, char *line)
if (retval != ERROR_COMMAND_CLOSE_CONNECTION)
{
/* We do not print the connection closed error message */
Jim_PrintErrorMessage(interp);
Jim_MakeErrorMessage(interp);
LOG_USER_N("%s\n", Jim_GetString(Jim_GetResult(interp), NULL));
}
if (retval == ERROR_OK)
{
Expand Down Expand Up @@ -785,89 +786,6 @@ static int jim_echo(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
return JIM_OK;
}

static size_t openocd_jim_fwrite(const void *_ptr, size_t size, size_t n, void *cookie)
{
size_t nbytes;
const char *ptr;
Jim_Interp *interp;

/* make it a char easier to read code */
ptr = _ptr;
interp = cookie;
nbytes = size * n;
if (ptr == NULL || interp == NULL || nbytes == 0) {
return 0;
}

/* do we have to chunk it? */
if (ptr[nbytes] == 0)
{
/* no it is a C style string */
LOG_USER_N("%s", ptr);
return strlen(ptr);
}
/* GRR we must chunk - not null terminated */
while (nbytes) {
char chunk[128 + 1];
int x;

x = nbytes;
if (x > 128) {
x = 128;
}
/* copy it */
memcpy(chunk, ptr, x);
/* terminate it */
chunk[n] = 0;
/* output it */
LOG_USER_N("%s", chunk);
ptr += x;
nbytes -= x;
}

return n;
}

static size_t openocd_jim_fread(void *ptr, size_t size, size_t n, void *cookie)
{
/* TCL wants to read... tell him no */
return 0;
}

static int openocd_jim_vfprintf(void *cookie, const char *fmt, va_list ap)
{
char *cp;
int n;
Jim_Interp *interp;

n = -1;
interp = cookie;
if (interp == NULL)
return n;

cp = alloc_vprintf(fmt, ap);
if (cp)
{
LOG_USER_N("%s", cp);
n = strlen(cp);
free(cp);
}
return n;
}

static int openocd_jim_fflush(void *cookie)
{
/* nothing to flush */
return 0;
}

static char* openocd_jim_fgets(char *s, int size, void *cookie)
{
/* not supported */
errno = ENOTSUP;
return NULL;
}

/* Capture progress output and return as tcl return value. If the
* progress output was empty, return tcl return value.
*/
Expand Down Expand Up @@ -1400,11 +1318,11 @@ struct command_context* command_init(const char *startup_tcl, Jim_Interp *interp
/* Create a jim interpreter if we were not handed one */
if (interp == NULL)
{
Jim_InitEmbedded();
/* Create an interpreter */
interp = Jim_CreateInterp();
/* Add all the Jim core commands */
Jim_RegisterCoreCommands(interp);
Jim_InitStaticExtensions(interp);
}
#endif
context->interp = interp;
Expand Down Expand Up @@ -1442,26 +1360,14 @@ struct command_context* command_init(const char *startup_tcl, Jim_Interp *interp
Jim_CreateCommand(interp, "echo", jim_echo, NULL, NULL);
Jim_CreateCommand(interp, "capture", jim_capture, NULL, NULL);

/* Set Jim's STDIO */
interp->cookie_stdin = interp;
interp->cookie_stdout = interp;
interp->cookie_stderr = interp;
interp->cb_fwrite = openocd_jim_fwrite;
interp->cb_fread = openocd_jim_fread ;
interp->cb_vfprintf = openocd_jim_vfprintf;
interp->cb_fflush = openocd_jim_fflush;
interp->cb_fgets = openocd_jim_fgets;

register_commands(context, NULL, command_builtin_handlers);

#if !BUILD_ECOSBOARD
Jim_EventLoopOnLoad(interp);
#endif
Jim_SetAssocData(interp, "context", NULL, context);
if (Jim_Eval_Named(interp, startup_tcl, "embedded:startup.tcl",1) == JIM_ERR)
{
LOG_ERROR("Failed to run startup.tcl (embedded into OpenOCD)");
Jim_PrintErrorMessage(interp);
Jim_MakeErrorMessage(interp);
LOG_USER_N("%s", Jim_GetString(Jim_GetResult(interp), NULL));
exit(-1);
}
Jim_DeleteAssocData(interp, "context");
Expand Down
7 changes: 3 additions & 4 deletions src/helper/command.h
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,11 @@
#if BUILD_ECOSBOARD
#include <stdio.h>
#include <stdarg.h>
/* Jim is provied by eCos */
#include <cyg/jimtcl/jim.h>
#else
#include <helper/jim.h>
#endif

#include <jim.h>
#include <jim-nvp.h>

/* To achieve C99 printf compatibility in MinGW, gnu_printf should be
* used for __attribute__((format( ... ))), with GCC v4.4 or later
*/
Expand Down
Loading

0 comments on commit 559d08c

Please sign in to comment.