typedef enum {
MONO_PROFILER_CODE_BUFFER_UNKNOWN,
MONO_PROFILER_CODE_BUFFER_METHOD,
+ MONO_PROFILER_CODE_BUFFER_METHOD_TRAMPOLINE,
+ MONO_PROFILER_CODE_BUFFER_UNBOX_TRAMPOLINE,
+ MONO_PROFILER_CODE_BUFFER_IMT_TRAMPOLINE,
+ MONO_PROFILER_CODE_BUFFER_GENERICS_TRAMPOLINE,
+ MONO_PROFILER_CODE_BUFFER_SPECIFIC_TRAMPOLINE,
+ MONO_PROFILER_CODE_BUFFER_HELPER,
+ MONO_PROFILER_CODE_BUFFER_MONITOR,
+ MONO_PROFILER_CODE_BUFFER_DELEGATE_INVOKE,
MONO_PROFILER_CODE_BUFFER_LAST
} MonoProfilerCodeBufferType;
MONO_API void mono_profiler_load (const char *desc);
+typedef enum {
+ /* Elapsed time is tracked by user+kernel time of the process - this is the default*/
+ MONO_PROFILER_STAT_MODE_PROCESS = 0,
+ /* Elapsed time is tracked by wallclock time */
+ MONO_PROFILER_STAT_MODE_REAL = 1,
+} MonoProfileSamplingMode;
+
+MONO_API void mono_profiler_set_statistical_mode (MonoProfileSamplingMode mode, int64_t sampling_frequency_is_us);
+
MONO_END_DECLS
#endif /* __MONO_PROFILER_H__ */