Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mono / metadata / callspec.h
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__ */