2008-12-12 Rodrigo Kumpera <rkumpera@novell.com>
[mono.git] / mono / metadata / profiler-private.h
index c99529012ce53a3a9edf06edb053f7f1fc59e836..f85da9bb219df4bb13685cd4ff268e2758a2f53f 100644 (file)
@@ -28,13 +28,21 @@ void mono_profiler_method_enter    (MonoMethod *method) MONO_INTERNAL;
 void mono_profiler_method_leave    (MonoMethod *method) MONO_INTERNAL;
 void mono_profiler_method_jit      (MonoMethod *method) MONO_INTERNAL;
 void mono_profiler_method_end_jit  (MonoMethod *method, MonoJitInfo* jinfo, int result) MONO_INTERNAL;
+void mono_profiler_method_free     (MonoMethod *method) MONO_INTERNAL;
 
 void mono_profiler_code_transition (MonoMethod *method, int result) MONO_INTERNAL;
 void mono_profiler_allocation      (MonoObject *obj, MonoClass *klass) MONO_INTERNAL;
 void mono_profiler_stat_hit        (guchar *ip, void *context) MONO_INTERNAL;
+void mono_profiler_stat_call_chain (int call_chain_depth, guchar **ips, void *context) MONO_INTERNAL;
+#define MONO_PROFILER_MAX_STAT_CALL_CHAIN_DEPTH 16
+int  mono_profiler_stat_get_call_chain_depth (void) MONO_INTERNAL;
 void mono_profiler_thread_start    (gsize tid) MONO_INTERNAL;
 void mono_profiler_thread_end      (gsize tid) MONO_INTERNAL;
 
+void mono_profiler_exception_thrown         (MonoObject *exception) MONO_INTERNAL;
+void mono_profiler_exception_method_leave   (MonoMethod *method) MONO_INTERNAL;
+void mono_profiler_exception_clause_handler (MonoMethod *method, int clause_type, int clause_num) MONO_INTERNAL;
+
 void mono_profiler_assembly_event  (MonoAssembly *assembly, int code) MONO_INTERNAL;
 void mono_profiler_assembly_loaded (MonoAssembly *assembly, int result) MONO_INTERNAL;
 
@@ -53,5 +61,7 @@ void                     mono_profiler_coverage_free  (MonoMethod *method) MONO_
 void mono_profiler_gc_event       (MonoGCEvent e, int generation) MONO_INTERNAL;
 void mono_profiler_gc_heap_resize (gint64 new_size) MONO_INTERNAL;
 
+void mono_profiler_runtime_initialized (void) MONO_INTERNAL;
+
 #endif /* __MONO_PROFILER_PRIVATE_H__ */