[mini] Initialize profiler in mini_init
[mono.git] / mono / mini / jit.h
index 5200da4dd91d8167ec790c67fc2bbd2a2d8d5b88..ed5eca5248beb4e1d7bff51a183720e7cc3e2498 100644 (file)
@@ -33,9 +33,32 @@ mono_set_signal_chaining   (mono_bool chain_signals);
 MONO_API void
 mono_set_crash_chaining   (mono_bool chain_signals);
 
+/**
+ * This function is deprecated, use mono_jit_set_aot_mode instead.
+ */
 MONO_API void
 mono_jit_set_aot_only      (mono_bool aot_only);
 
+/**
+ * Allows control over our AOT (Ahead-of-time) compilation mode.
+ */
+typedef enum {
+       /* Disables AOT mode */
+       MONO_AOT_MODE_NONE,
+       /* Enables normal AOT mode, equivalent to mono_jit_set_aot_only (false) */
+       MONO_AOT_MODE_NORMAL,
+       /* Enables hybrid AOT mode, JIT can still be used for wrappers */
+       MONO_AOT_MODE_HYBRID,
+       /* Enables full AOT mode, JIT is disabled and not allowed,
+        * equivalent to mono_jit_set_aot_only (true) */
+       MONO_AOT_MODE_FULL,
+       /* Same as full, but use only llvm compiled code */
+       MONO_AOT_MODE_LLVMONLY
+} MonoAotMode;
+
+MONO_API void
+mono_jit_set_aot_mode      (MonoAotMode mode);
+
 /* Allow embedders to decide wherther to actually obey breakpoint instructions
  * in specific methods (works for both break IL instructions and Debugger.Break ()
  * method calls).
@@ -60,6 +83,14 @@ mono_jit_parse_options     (int argc, char * argv[]);
 
 MONO_API char*       mono_get_runtime_build_info    (void);
 
+/* The following APIs are not stable. Avoid if possible. */
+
+MONO_API MonoJitInfo *
+mono_get_jit_info_from_method (MonoDomain *domain, MonoMethod *method);
+
+MONO_API MONO_RT_EXTERNAL_ONLY void *
+mono_aot_get_method (MonoDomain *domain, MonoMethod *method);
+
 MONO_END_DECLS
 
 #endif