[runtime] New profiler API.
[mono.git] / samples / profiler / sample.c
index 45c46da07d983742adb54409ac23b3aeea64e873..75e2f779590a3d43267625f2650644de75be969c 100644 (file)
@@ -35,19 +35,25 @@ sample_method_leave (MonoProfiler *prof, MonoMethod *method)
 {
 }
 
+static MonoProfilerCallInstrumentationFlags
+sample_instrumentation_filter (MonoProfiler *prof, MonoMethod *method)
+{
+       return MONO_PROFILER_CALL_INSTRUMENTATION_PROLOGUE | MONO_PROFILER_CALL_INSTRUMENTATION_EPILOGUE;
+}
+
 /* the entry point */
 void
-mono_profiler_startup (const char *desc)
+mono_profiler_init (const char *desc)
 {
        MonoProfiler *prof;
 
        prof = g_new0 (MonoProfiler, 1);
 
-       mono_profiler_install (prof, sample_shutdown);
-       
-       mono_profiler_install_enter_leave (sample_method_enter, sample_method_leave);
-
-       mono_profiler_set_events (MONO_PROFILE_ENTER_LEAVE);
+       MonoProfilerHandle handle = mono_profiler_install (prof);
+       mono_profiler_set_runtime_shutdown_callback (handle, sample_shutdown);
+       mono_profiler_set_call_instrumentation_filter_callback (handle, sample_instrumentation_filter);
+       mono_profiler_set_method_enter_callback (handle, sample_method_enter);
+       mono_profiler_set_method_leave_callback (handle, sample_method_leave);
 }