Apply changes from https://github.com/dotnet/runtime/commit/eb1756e97d23df13bc6fe798e...
[mono-project.git] / mono / metadata / callspec.h
blob34feef21f993cc88a9c36029d9a5a930163f286a
1 /**
2 * \file
3 */
5 #ifndef __MONO_CALLSPEC_H__
6 #define __MONO_CALLSPEC_H__
7 #include <glib.h>
8 #include <mono/utils/mono-compiler.h>
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;
21 typedef struct {
22 MonoTraceOpcode op;
23 int exclude;
24 void *data, *data2;
25 } MonoTraceOperation;
27 typedef struct {
28 int len;
29 gboolean enabled;
30 MonoTraceOperation *ops;
31 } MonoCallSpec;
33 MONO_PROFILER_API gboolean mono_callspec_parse (const char *options,
34 MonoCallSpec *spec,
35 char **errstr);
36 MONO_PROFILER_API void mono_callspec_cleanup (MonoCallSpec *spec);
37 MONO_PROFILER_API gboolean mono_callspec_eval_exception (MonoClass *klass,
38 MonoCallSpec *spec);
39 MONO_PROFILER_API gboolean mono_callspec_eval (MonoMethod *method,
40 const MonoCallSpec *spec);
41 void mono_callspec_set_assembly (MonoAssembly *assembly);
43 #endif /* __MONO_CALLSPEC_H__ */