Mixed mode exception handling (#4777)
[mono.git] / mono / mini / interp / interp.h
1 /**
2  * \file
3  */
4
5 #ifndef __MONO_MINI_INTERPRETER_H__
6 #define __MONO_MINI_INTERPRETER_H__
7 #include <mono/mini/mini.h>
8
9 typedef struct _MonoInterpStackIter MonoInterpStackIter;
10
11 /* Needed for stack allocation */
12 struct _MonoInterpStackIter {
13         gpointer dummy [8];
14 };
15
16 int
17 mono_interp_regression_list (int verbose, int count, char *images []);
18
19 void
20 mono_interp_init (void);
21
22 gpointer
23 mono_interp_create_method_pointer (MonoMethod *method, MonoError *error);
24
25 MonoObject*
26 mono_interp_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObject **exc, MonoError *error);
27
28 void
29 mono_interp_init_delegate (MonoDelegate *del);
30
31 gpointer
32 mono_interp_create_trampoline (MonoDomain *domain, MonoMethod *method, MonoError *error);
33
34 void
35 mono_interp_parse_options (const char *options);
36
37 void
38 interp_walk_stack_with_ctx (MonoInternalStackWalk func, MonoContext *ctx, MonoUnwindOptions options, void *user_data);
39
40 void
41 mono_interp_set_resume_state (MonoException *ex, StackFrameInfo *frame, gpointer handler_ip);
42
43 void
44 mono_interp_run_finally (StackFrameInfo *frame, int clause_index, gpointer handler_ip);
45
46 void
47 mono_interp_frame_iter_init (MonoInterpStackIter *iter, gpointer interp_exit_data);
48
49 gboolean
50 mono_interp_frame_iter_next (MonoInterpStackIter *iter, StackFrameInfo *frame);
51
52 #endif /* __MONO_MINI_INTERPRETER_H__ */