split jim_jtag_command into multiple handlers
[openocd.git] / src / helper / jim-eventloop.h
1 /* Jim - A small embeddable Tcl interpreter
2 *
3 * Copyright 2005 Salvatore Sanfilippo <antirez@invece.org>
4 * Copyright 2005 Clemens Hintze <c.hintze@gmx.net>
5 * Copyright 2005 patthoyts - Pat Thoyts <patthoyts@users.sf.net>
6 * Copyright 2008 oharboe - Øyvind Harboe - oyvind.harboe@zylin.com
7 * Copyright 2008 Andrew Lunn <andrew@lunn.ch>
8 * Copyright 2008 Duane Ellis <openocd@duaneellis.com>
9 * Copyright 2008 Uwe Klein <uklein@klein-messgeraete.de>
10 *
11 * The FreeBSD license
12 *
13 * Redistribution and use in source and binary forms, with or without
14 * modification, are permitted provided that the following conditions
15 * are met:
16 *
17 * 1. Redistributions of source code must retain the above copyright
18 * notice, this list of conditions and the following disclaimer.
19 * 2. Redistributions in binary form must reproduce the above
20 * copyright notice, this list of conditions and the following
21 * disclaimer in the documentation and/or other materials
22 * provided with the distribution.
23 *
24 * THIS SOFTWARE IS PROVIDED BY THE JIM TCL PROJECT ``AS IS'' AND ANY
25 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
26 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
27 * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
28 * JIM TCL PROJECT OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
29 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
30 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
31 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
32 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
33 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
35 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36 *
37 * The views and conclusions contained in the software and documentation
38 * are those of the authors and should not be interpreted as representing
39 * official policies, either expressed or implied, of the Jim Tcl Project.
40 **/
41 /* ------ USAGE -------
42 *
43 * In order to use this file from other extensions include it in every
44 * file where you need to call the eventloop API, also in the init
45 * function of your extension call Jim_ImportEventloopAPI(interp)
46 * after the Jim_InitExtension() call.
47 *
48 * See the UDP extension as example.
49 */
50
51
52 #ifndef __JIM_EVENTLOOP_H__
53 #define __JIM_EVENTLOOP_H__
54
55 typedef int Jim_FileProc(Jim_Interp *interp, void *clientData, int mask);
56 typedef int Jim_SignalProc(Jim_Interp *interp, void *clientData, void *msg);
57 typedef void Jim_TimeProc(Jim_Interp *interp, void *clientData);
58 typedef void Jim_EventFinalizerProc(Jim_Interp *interp, void *clientData);
59
60 /* File event structure */
61 #define JIM_EVENT_READABLE 1
62 #define JIM_EVENT_WRITABLE 2
63 #define JIM_EVENT_EXCEPTION 4
64 #define JIM_EVENT_FEOF 8
65
66 #define JIM_API(x) x
67 #define JIM_STATIC
68
69 JIM_STATIC int Jim_EventLoopOnLoad(Jim_Interp *interp);
70
71 /* --- POSIX version of Jim_ProcessEvents, for now the only available --- */
72 #define JIM_FILE_EVENTS 1
73 #define JIM_TIME_EVENTS 2
74 #define JIM_ALL_EVENTS (JIM_FILE_EVENTS | JIM_TIME_EVENTS)
75 #define JIM_DONT_WAIT 4
76
77 JIM_STATIC void JIM_API(Jim_CreateFileHandler) (Jim_Interp *interp,
78 void *handle, int mask,
79 Jim_FileProc *proc, void *clientData,
80 Jim_EventFinalizerProc *finalizerProc);
81 JIM_STATIC void JIM_API(Jim_DeleteFileHandler) (Jim_Interp *interp,
82 void *handle);
83 JIM_STATIC jim_wide JIM_API(Jim_CreateTimeHandler) (Jim_Interp *interp,
84 jim_wide milliseconds,
85 Jim_TimeProc *proc, void *clientData,
86 Jim_EventFinalizerProc *finalizerProc);
87 JIM_STATIC jim_wide JIM_API(Jim_DeleteTimeHandler) (Jim_Interp *interp, jim_wide id);
88 JIM_STATIC int JIM_API(Jim_ProcessEvents) (Jim_Interp *interp, int flags);
89
90 #undef JIM_STATIC
91 #undef JIM_API
92
93 #ifndef __JIM_EVENTLOOP_CORE__
94
95 #define JIM_GET_API(name) \
96 Jim_GetApi(interp, "Jim_" #name, ((void *)&Jim_ ## name))
97
98 #undef JIM_GET_API
99 #endif /* __JIM_EVENTLOOP_CORE__ */
100
101 #endif /* __JIM_EVENTLOOP_H__ */

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)