helper/jim-eventloop: review scope of symbols
[fw/openocd] / src / helper / jim-eventloop.h
index 3923463e7f1a2a6eb3e13d7565e3c099fdf418db..77ee8fecdad4ae8b5b4c56484b8c2233601d18fa 100644 (file)
-/* Jim - A small embeddable Tcl interpreter\r
- *\r
- * Copyright 2005 Salvatore Sanfilippo <antirez@invece.org>\r
- * Copyright 2005 Clemens Hintze <c.hintze@gmx.net>\r
- * Copyright 2005 patthoyts - Pat Thoyts <patthoyts@users.sf.net> \r
- * Copyright 2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com\r
- * Copyright 2008 Andrew Lunn <andrew@lunn.ch>\r
- * Copyright 2008 Duane Ellis <openocd@duaneellis.com>\r
- * Copyright 2008 Uwe Klein <uklein@klein-messgeraete.de>\r
- * \r
- * The FreeBSD license\r
- * \r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * \r
- * 1. Redistributions of source code must retain the above copyright\r
- *    notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above\r
- *    copyright notice, this list of conditions and the following\r
- *    disclaimer in the documentation and/or other materials\r
- *    provided with the distribution.\r
- * \r
- * THIS SOFTWARE IS PROVIDED BY THE JIM TCL PROJECT ``AS IS'' AND ANY\r
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,\r
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\r
- * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE\r
- * JIM TCL PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,\r
- * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,\r
- * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\r
- * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- * \r
- * The views and conclusions contained in the software and documentation\r
- * are those of the authors and should not be interpreted as representing\r
- * official policies, either expressed or implied, of the Jim Tcl Project.\r
- **/\r
-/* ------ USAGE -------\r
- *\r
- * In order to use this file from other extensions include it in every\r
- * file where you need to call the eventloop API, also in the init\r
- * function of your extension call Jim_ImportEventloopAPI(interp)\r
- * after the Jim_InitExtension() call.\r
- *\r
- * See the UDP extension as example.\r
- */\r
-\r
-\r
-#ifndef __JIM_EVENTLOOP_H__\r
-#define __JIM_EVENTLOOP_H__\r
-\r
-typedef int Jim_FileProc(Jim_Interp *interp, void *clientData, int mask);\r
-typedef int Jim_SignalProc(Jim_Interp *interp, void *clientData, void *msg);\r
-typedef void Jim_TimeProc(Jim_Interp *interp, void *clientData);\r
-typedef void Jim_EventFinalizerProc(Jim_Interp *interp, void *clientData);\r
-\r
-/* File event structure */\r
-#define JIM_EVENT_READABLE 1\r
-#define JIM_EVENT_WRITABLE 2\r
-#define JIM_EVENT_EXCEPTION 4\r
-#define JIM_EVENT_FEOF 8\r
-\r
-#define JIM_API(x) x\r
-#define JIM_STATIC \r
-\r
-/* --- POSIX version of Jim_ProcessEvents, for now the only available --- */\r
-#define JIM_FILE_EVENTS 1\r
-#define JIM_TIME_EVENTS 2\r
-#define JIM_ALL_EVENTS (JIM_FILE_EVENTS|JIM_TIME_EVENTS)\r
-#define JIM_DONT_WAIT 4\r
-\r
-JIM_STATIC void JIM_API(Jim_CreateFileHandler) (Jim_Interp *interp,\r
-        void *handle, int mask,\r
-        Jim_FileProc *proc, void *clientData,\r
-        Jim_EventFinalizerProc *finalizerProc);\r
-JIM_STATIC void JIM_API(Jim_DeleteFileHandler) (Jim_Interp *interp,\r
-        void *handle);\r
-JIM_STATIC jim_wide JIM_API(Jim_CreateTimeHandler) (Jim_Interp *interp,\r
-        jim_wide milliseconds,\r
-        Jim_TimeProc *proc, void *clientData,\r
-        Jim_EventFinalizerProc *finalizerProc);\r
-JIM_STATIC jim_wide JIM_API(Jim_DeleteTimeHandler) (Jim_Interp *interp, jim_wide id);\r
-JIM_STATIC int JIM_API(Jim_ProcessEvents) (Jim_Interp *interp, int flags);\r
-\r
-#undef JIM_STATIC\r
-#undef JIM_API\r
-\r
-#ifndef __JIM_EVENTLOOP_CORE__\r
-\r
-#define JIM_GET_API(name) \\r
-    Jim_GetApi(interp, "Jim_" #name, ((void *)&Jim_ ## name))\r
-\r
-#if defined(JIM_EXTENSION) || defined(JIM_EMBEDDED)\r
-/* This must be included "inline" inside the extension */\r
-static void Jim_ImportEventloopAPI(Jim_Interp *interp)\r
-{\r
-  JIM_GET_API(CreateFileHandler);\r
-  JIM_GET_API(DeleteFileHandler);\r
-  JIM_GET_API(CreateTimeHandler);\r
-  JIM_GET_API(DeleteTimeHandler);\r
-  JIM_GET_API(ProcessEvents);\r
-}\r
-#endif /* defined JIM_EXTENSION || defined JIM_EMBEDDED */\r
-#undef JIM_GET_API\r
-#endif /* __JIM_EVENTLOOP_CORE__ */\r
-\r
-#endif /* __JIM_EVENTLOOP_H__ */\r
+/* Jim - A small embeddable Tcl interpreter
+ *
+ * Copyright 2005 Salvatore Sanfilippo <antirez@invece.org>
+ * Copyright 2005 Clemens Hintze <c.hintze@gmx.net>
+ * Copyright 2005 patthoyts - Pat Thoyts <patthoyts@users.sf.net>
+ * Copyright 2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
+ * Copyright 2008 Andrew Lunn <andrew@lunn.ch>
+ * Copyright 2008 Duane Ellis <openocd@duaneellis.com>
+ * Copyright 2008 Uwe Klein <uklein@klein-messgeraete.de>
+ *
+ * The FreeBSD license
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above
+ *    copyright notice, this list of conditions and the following
+ *    disclaimer in the documentation and/or other materials
+ *    provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE JIM TCL PROJECT ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ * JIM TCL PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * The views and conclusions contained in the software and documentation
+ * are those of the authors and should not be interpreted as representing
+ * official policies, either expressed or implied, of the Jim Tcl Project.
+ **/
+/* ------ USAGE -------
+ *
+ * In order to use this file from other extensions include it in every
+ * file where you need to call the eventloop API, also in the init
+ * function of your extension call Jim_ImportEventloopAPI(interp)
+ * after the Jim_InitExtension() call.
+ *
+ * See the UDP extension as example.
+ */
+
+
+#ifndef __JIM_EVENTLOOP_H__
+#define __JIM_EVENTLOOP_H__
+
+typedef int Jim_FileProc(Jim_Interp *interp, void *clientData, int mask);
+typedef int Jim_SignalProc(Jim_Interp *interp, void *clientData, void *msg);
+typedef void Jim_TimeProc(Jim_Interp *interp, void *clientData);
+typedef void Jim_EventFinalizerProc(Jim_Interp *interp, void *clientData);
+
+/* File event structure */
+#define JIM_EVENT_READABLE 1
+#define JIM_EVENT_WRITABLE 2
+#define JIM_EVENT_EXCEPTION 4
+#define JIM_EVENT_FEOF 8
+
+#define JIM_API(x) x
+
+int Jim_EventLoopOnLoad(Jim_Interp *interp);
+
+/* --- 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
+
+int JIM_API(Jim_ProcessEvents) (Jim_Interp *interp, int flags);
+
+#undef JIM_API
+
+#ifndef __JIM_EVENTLOOP_CORE__
+
+#define JIM_GET_API(name) \
+    Jim_GetApi(interp, "Jim_" #name, ((void *)&Jim_ ## name))
+
+#undef JIM_GET_API
+#endif /* __JIM_EVENTLOOP_CORE__ */
+
+#endif /* __JIM_EVENTLOOP_H__ */