Make sure x86 ATOMIC_CAS doesn't overwrite its own operands.
[mono-debugger.git] / mono / mini / trace.h
blob6ef4c6471b6be5cdd89e01ba1de636e29f97b5af
1 #ifndef __MONO_TRACE_H__
2 #define __MONO_TRACE_H__
3 #include <glib.h>
4 #include "mono/utils/mono-compiler.h"
6 typedef enum {
7 MONO_TRACEOP_ALL,
8 MONO_TRACEOP_PROGRAM,
9 MONO_TRACEOP_METHOD,
10 MONO_TRACEOP_ASSEMBLY,
11 MONO_TRACEOP_CLASS,
12 MONO_TRACEOP_NAMESPACE
13 } MonoTraceOpcode;
15 typedef struct {
16 MonoTraceOpcode op;
17 int exclude;
18 void *data, *data2;
19 } MonoTraceOperation;
21 struct MonoTraceSpec {
22 int len;
23 gboolean enabled;
24 MonoTraceOperation *ops;
26 MonoAssembly *assembly;
29 G_BEGIN_DECLS
31 void
32 mono_trace_enter_method (MonoMethod *method, char *ebp) MONO_INTERNAL;
34 void
35 mono_trace_leave_method (MonoMethod *method, ...) MONO_INTERNAL;
37 void mono_trace_enable (gboolean enable) MONO_INTERNAL;
38 gboolean mono_trace_is_enabled (void) MONO_INTERNAL;
40 G_END_DECLS
42 #endif /* __MONO_TRACE_H__ */