[mini] factor out interp into a library (#6419)
[mono-project.git] / mono / mini / interp-stubs.c
blob28d3a639345582be9a3abfa92e86454449bb0e82
1 #include <config.h>
3 #include "interp/interp.h"
5 /* interpreter callback stubs */
7 static MonoJitInfo*
8 stub_find_jit_info (MonoDomain *domain, MonoMethod *method)
10 return NULL;
13 static void
14 stub_set_breakpoint (MonoJitInfo *jinfo, gpointer ip)
16 g_assert_not_reached ();
19 static void
20 stub_clear_breakpoint (MonoJitInfo *jinfo, gpointer ip)
22 g_assert_not_reached ();
25 static MonoJitInfo*
26 stub_frame_get_jit_info (MonoInterpFrameHandle frame)
28 g_assert_not_reached ();
29 return NULL;
32 static gpointer
33 stub_frame_get_ip (MonoInterpFrameHandle frame)
35 g_assert_not_reached ();
36 return NULL;
39 static gpointer
40 stub_frame_get_arg (MonoInterpFrameHandle frame, int pos)
42 g_assert_not_reached ();
43 return NULL;
46 static gpointer
47 stub_frame_get_local (MonoInterpFrameHandle frame, int pos)
49 g_assert_not_reached ();
50 return NULL;
53 static gpointer
54 stub_frame_get_this (MonoInterpFrameHandle frame)
56 g_assert_not_reached ();
57 return NULL;
60 static MonoInterpFrameHandle
61 stub_frame_get_parent (MonoInterpFrameHandle frame)
63 g_assert_not_reached ();
64 return NULL;
67 static void
68 stub_start_single_stepping (void)
72 static void
73 stub_stop_single_stepping (void)
77 static void
78 stub_set_resume_state (MonoJitTlsData *jit_tls, MonoException *ex, MonoJitExceptionInfo *ei, MonoInterpFrameHandle interp_frame, gpointer handler_ip)
80 g_assert_not_reached ();
83 static gboolean
84 stub_run_finally (StackFrameInfo *frame, int clause_index, gpointer handler_ip)
86 g_assert_not_reached ();
89 static gboolean
90 stub_run_filter (StackFrameInfo *frame, MonoException *ex, int clause_index, gpointer handler_ip)
92 g_assert_not_reached ();
93 return FALSE;
96 static void
97 stub_frame_iter_init (MonoInterpStackIter *iter, gpointer interp_exit_data)
99 g_assert_not_reached ();
102 static gboolean
103 stub_frame_iter_next (MonoInterpStackIter *iter, StackFrameInfo *frame)
105 g_assert_not_reached ();
106 return FALSE;
109 static gpointer
110 stub_create_method_pointer (MonoMethod *method, MonoError *error)
112 g_assert_not_reached ();
113 return NULL;
116 static MonoObject*
117 stub_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObject **exc, MonoError *error)
119 g_assert_not_reached ();
120 return NULL;
123 static void
124 stub_init_delegate (MonoDelegate *del)
126 g_assert_not_reached ();
129 static gpointer
130 stub_get_remoting_invoke (gpointer imethod, MonoError *error)
132 g_assert_not_reached ();
133 return NULL;
136 static gpointer
137 stub_create_trampoline (MonoDomain *domain, MonoMethod *method, MonoError *error)
139 g_assert_not_reached ();
140 return NULL;
143 static void
144 stub_walk_stack_with_ctx (MonoInternalStackWalk func, MonoContext *ctx, MonoUnwindOptions options, void *user_data)
146 g_assert_not_reached ();
149 void
150 mono_interp_stub_init (void)
152 if (mini_get_interp_callbacks ()->create_method_pointer)
153 /* already initialized */
154 return;
156 MonoEECallbacks c;
157 c.create_method_pointer = stub_create_method_pointer;
158 c.runtime_invoke = stub_runtime_invoke;
159 c.init_delegate = stub_init_delegate;
160 c.get_remoting_invoke = stub_get_remoting_invoke;
161 c.create_trampoline = stub_create_trampoline;
162 c.walk_stack_with_ctx = stub_walk_stack_with_ctx;
163 c.set_resume_state = stub_set_resume_state;
164 c.run_finally = stub_run_finally;
165 c.run_filter = stub_run_filter;
166 c.frame_iter_init = stub_frame_iter_init;
167 c.frame_iter_next = stub_frame_iter_next;
168 c.find_jit_info = stub_find_jit_info;
169 c.set_breakpoint = stub_set_breakpoint;
170 c.clear_breakpoint = stub_clear_breakpoint;
171 c.frame_get_jit_info = stub_frame_get_jit_info;
172 c.frame_get_ip = stub_frame_get_ip;
173 c.frame_get_arg = stub_frame_get_arg;
174 c.frame_get_local = stub_frame_get_local;
175 c.frame_get_this = stub_frame_get_this;
176 c.frame_get_parent = stub_frame_get_parent;
177 c.start_single_stepping = stub_start_single_stepping;
178 c.stop_single_stepping = stub_stop_single_stepping;
179 mini_install_interp_callbacks (&c);