1 /** 2 * \file 3 */ 4 5 #ifndef __MONO_CALLSPEC_H__ 6 #define __MONO_CALLSPEC_H__ 7 #include <glib.h> 8 #include <mono/utils/mono-compiler.h> 9 10 typedef enum { 11 MONO_TRACEOP_ALL, 12 MONO_TRACEOP_PROGRAM, 13 MONO_TRACEOP_METHOD, 14 MONO_TRACEOP_ASSEMBLY, 15 MONO_TRACEOP_CLASS, 16 MONO_TRACEOP_NAMESPACE, 17 MONO_TRACEOP_EXCEPTION, 18 MONO_TRACEOP_WRAPPER, 19 } MonoTraceOpcode; 20 21 typedef struct { 22 MonoTraceOpcode op; 23 int exclude; 24 void *data, *data2; 25 } MonoTraceOperation; 26 27 typedef struct { 28 int len; 29 gboolean enabled; 30 MonoTraceOperation *ops; 31 } MonoCallSpec; 32 33 G_BEGIN_DECLS 34 35 MONO_PROFILER_API gboolean mono_callspec_parse (const char *options, 36 MonoCallSpec *spec, 37 char **errstr); 38 MONO_PROFILER_API void mono_callspec_cleanup (MonoCallSpec *spec); 39 MONO_PROFILER_API gboolean mono_callspec_eval_exception (MonoClass *klass, 40 MonoCallSpec *spec); 41 MONO_PROFILER_API gboolean mono_callspec_eval (MonoMethod *method, 42 const MonoCallSpec *spec); 43 void mono_callspec_set_assembly (MonoAssembly *assembly); 44 45 G_END_DECLS 46 47 #endif /* __MONO_CALLSPEC_H__ */ 48