aboutsummaryrefslogtreecommitdiff
path: root/jim-eventloop.h
diff options
context:
space:
mode:
authoroharboe <oharboe>2009-10-08 10:47:23 +0000
committerSteve Bennett <steveb@workware.net.au>2010-10-15 11:02:17 +1000
commit2a219122c883585f7d62268a512b9c11f9373fee (patch)
tree73c48c6d474c5ec8930bc0665f9ae14d34e3051c /jim-eventloop.h
parente7ec2ab41cb55ee6ec624e4f9e9cdf8ab9c1b93c (diff)
downloadjimtcl-2a219122c883585f7d62268a512b9c11f9373fee.zip
jimtcl-2a219122c883585f7d62268a512b9c11f9373fee.tar.gz
jimtcl-2a219122c883585f7d62268a512b9c11f9373fee.tar.bz2
2009-10-08 Øyvind Harboe
* jim.c/h: bring in changes from OpenOCD. Warnings and some bug fixes. Copyright list updated in jim.c
Diffstat (limited to 'jim-eventloop.h')
-rw-r--r--jim-eventloop.h45
1 files changed, 40 insertions, 5 deletions
diff --git a/jim-eventloop.h b/jim-eventloop.h
index 39be1c2..e09170e 100644
--- a/jim-eventloop.h
+++ b/jim-eventloop.h
@@ -63,17 +63,52 @@ typedef void Jim_EventFinalizerProc(Jim_Interp *interp, void *clientData);
#define JIM_EVENT_EXCEPTION 4
#define JIM_EVENT_FEOF 8
-JIM_EXPORT void Jim_CreateFileHandler (Jim_Interp *interp,
+#ifndef __JIM_EVENTLOOP_CORE__
+# if defined JIM_EXTENSION || defined JIM_EMBEDDED
+# define JIM_API(x) (*x)
+# define JIM_STATIC
+# else
+# define JIM_API(x) (*x)
+# define JIM_STATIC extern
+# endif
+#else
+# define JIM_API(x) x
+# define JIM_STATIC static
+#endif /* __JIM_EVENTLOOP_CORE__ */
+
+JIM_STATIC void JIM_API(Jim_CreateFileHandler) (Jim_Interp *interp,
void *handle, int mask,
Jim_FileProc *proc, void *clientData,
Jim_EventFinalizerProc *finalizerProc);
-JIM_EXPORT void Jim_DeleteFileHandler (Jim_Interp *interp,
+JIM_STATIC void JIM_API(Jim_DeleteFileHandler) (Jim_Interp *interp,
void *handle);
-JIM_EXPORT jim_wide Jim_CreateTimeHandler (Jim_Interp *interp,
+JIM_STATIC jim_wide JIM_API(Jim_CreateTimeHandler) (Jim_Interp *interp,
jim_wide milliseconds,
Jim_TimeProc *proc, void *clientData,
Jim_EventFinalizerProc *finalizerProc);
-JIM_EXPORT jim_wide Jim_DeleteTimeHandler (Jim_Interp *interp, jim_wide id);
-JIM_EXPORT int Jim_ProcessEvents (Jim_Interp *interp, int flags);
+JIM_STATIC jim_wide JIM_API(Jim_DeleteTimeHandler) (Jim_Interp *interp, jim_wide id);
+JIM_STATIC int JIM_API(Jim_ProcessEvents) (Jim_Interp *interp, int flags);
+
+#undef JIM_STATIC
+#undef JIM_API
+
+#ifndef __JIM_EVENTLOOP_CORE__
+
+#define JIM_GET_API(name) \
+ Jim_GetApi(interp, "Jim_" #name, ((void *)&Jim_ ## name))
+
+#if defined(JIM_EXTENSION) || defined(JIM_EMBEDDED)
+/* This must be included "inline" inside the extension */
+static void Jim_ImportEventloopAPI(Jim_Interp *interp)
+{
+ JIM_GET_API(CreateFileHandler);
+ JIM_GET_API(DeleteFileHandler);
+ JIM_GET_API(CreateTimeHandler);
+ JIM_GET_API(DeleteTimeHandler);
+ JIM_GET_API(ProcessEvents);
+}
+#endif /* defined JIM_EXTENSION || defined JIM_EMBEDDED */
+#undef JIM_GET_API
+#endif /* __JIM_EVENTLOOP_CORE__ */
#endif /* __JIM_EVENTLOOP_H__ */