Merge pull request #225 from mistoll/master
[mono.git] / mono / mini / jit.h
index 1e9b1ab754f8b5edee00459301def00a9e1bb098..37e871f6a91add58c77550884c56397437feebb3 100644 (file)
 
 #include <mono/metadata/appdomain.h>
 
-G_BEGIN_DECLS
+MONO_BEGIN_DECLS
 
 MonoDomain * 
 mono_jit_init              (const char *file);
 
 MonoDomain * 
-mono_jit_init_version      (const char *file, const char *runtime_version);
+mono_jit_init_version      (const char *root_domain_name, const char *runtime_version);
 
 int
 mono_jit_exec              (MonoDomain *domain, MonoAssembly *assembly, 
@@ -24,7 +24,38 @@ mono_jit_exec              (MonoDomain *domain, MonoAssembly *assembly,
 void        
 mono_jit_cleanup           (MonoDomain *domain);
 
-G_END_DECLS
+mono_bool
+mono_jit_set_trace_options (const char* options);
+
+void
+mono_set_signal_chaining   (mono_bool chain_signals);
+
+void
+mono_jit_set_aot_only      (mono_bool aot_only);
+
+/* Allow embedders to decide wherther to actually obey breakpoint instructions
+ * in specific methods (works for both break IL instructions and Debugger.Break ()
+ * method calls).
+ */
+typedef enum {
+       /* the default is to always obey the breakpoint */
+       MONO_BREAK_POLICY_ALWAYS,
+       /* a nop is inserted instead of a breakpoint */
+       MONO_BREAK_POLICY_NEVER,
+       /* the breakpoint is executed only if the program has ben started under
+        * the debugger (that is if a debugger was attached at the time the method
+        * was compiled).
+        */
+       MONO_BREAK_POLICY_ON_DBG
+} MonoBreakPolicy;
+
+typedef MonoBreakPolicy (*MonoBreakPolicyFunc) (MonoMethod *method);
+void mono_set_break_policy (MonoBreakPolicyFunc policy_callback);
+
+void
+mono_jit_parse_options     (int argc, char * argv[]);
+
+MONO_END_DECLS
 
 #endif