summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/helper/Makefile.am4
-rw-r--r--src/helper/command.c5
-rw-r--r--src/helper/jim-eventloop.c6
3 files changed, 12 insertions, 3 deletions
diff --git a/src/helper/Makefile.am b/src/helper/Makefile.am
index 2165fad9..9d9a79c5 100644
--- a/src/helper/Makefile.am
+++ b/src/helper/Makefile.am
@@ -6,11 +6,11 @@ noinst_LIBRARIES = libhelper.a
if ECOSBOARD
CONFIGFILES =
else
-CONFIGFILES = options.c jim.c
+CONFIGFILES = options.c jim.c jim-eventloop.c
endif
libhelper_a_SOURCES = binarybuffer.c $(CONFIGFILES) configuration.c log.c command.c time_support.c \
- replacements.c fileio.c jim-eventloop.c startup_tcl.c
+ replacements.c fileio.c startup_tcl.c
noinst_HEADERS = binarybuffer.h configuration.h types.h log.h command.h \
time_support.h replacements.h fileio.h jim.h
diff --git a/src/helper/command.c b/src/helper/command.c
index 811328dc..7dc62dd5 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -655,8 +655,9 @@ command_context_t* command_init()
add_default_dirs();
+#ifdef JIM_EMBEDDED
Jim_EventLoopOnLoad(interp);
-
+#endif
if (Jim_Eval(interp, startup_tcl)==JIM_ERR)
{
LOG_ERROR("Failed to run startup.tcl (embedded into OpenOCD compile time)");
@@ -710,6 +711,7 @@ int handle_fast_command(struct command_context_s *cmd_ctx, char *cmd, char **arg
void process_jim_events()
{
+#ifdef JIM_EMBEDDED
static int recursion = 0;
if (!recursion)
@@ -718,6 +720,7 @@ void process_jim_events()
Jim_ProcessEvents (interp, JIM_ALL_EVENTS|JIM_DONT_WAIT);
recursion--;
}
+#endif
}
void register_jim(struct command_context_s *cmd_ctx, const char *name, int (*cmd)(Jim_Interp *interp, int argc, Jim_Obj *const *argv), const char *help)
diff --git a/src/helper/jim-eventloop.c b/src/helper/jim-eventloop.c
index 73bc29b4..1e0f4774 100644
--- a/src/helper/jim-eventloop.c
+++ b/src/helper/jim-eventloop.c
@@ -242,6 +242,12 @@ static Jim_TimeEvent *JimSearchNearestTimer(Jim_EventLoop *eventLoop)
return nearest;
}
+/* --- POSIX version of Jim_ProcessEvents, for now the only available --- */
+#define JIM_FILE_EVENTS 1
+#define JIM_TIME_EVENTS 2
+#define JIM_ALL_EVENTS (JIM_FILE_EVENTS|JIM_TIME_EVENTS)
+#define JIM_DONT_WAIT 4
+
/* Process every pending time event, then every pending file event
* (that may be registered by time event callbacks just processed).
* Without special flags the function sleeps until some file event