1 /* *
2  * \file
3  * DTrace probes
4  *
5  * Authors:
6  *   Andreas Faerber <andreas.faerber@web.de>
7  *
8  */
9 
10 #ifndef __UTILS_DTRACE_H__
11 #define __UTILS_DTRACE_H__
12 
13 #ifdef ENABLE_DTRACE
14 
15 #include <mono/utils/mono-dtrace.h>
16 
17 #define MONO_PROBE_METHOD_COMPILE_BEGIN(method) \
18 	MONO_METHOD_COMPILE_BEGIN ( \
19 		mono_type_get_full_name ((method)->klass), \
20 		(gchar*)(method)->name, \
21 		mono_signature_get_desc ((method)->signature, TRUE) \
22 	)
23 
24 #define MONO_PROBE_METHOD_COMPILE_END(method, success) \
25 	MONO_METHOD_COMPILE_END ( \
26 		mono_type_get_full_name ((method)->klass), \
27 		(gchar*)(method)->name, \
28 		mono_signature_get_desc ((method)->signature, TRUE), \
29 		success \
30 	)
31 
32 #else
33 
34 #define MONO_VES_INIT_BEGIN()
35 #define MONO_VES_INIT_BEGIN_ENABLED() (0)
36 
37 #define MONO_VES_INIT_END()
38 #define MONO_VES_INIT_END_ENABLED() (0)
39 
40 
41 #define MONO_PROBE_METHOD_COMPILE_BEGIN(method)
42 #define MONO_METHOD_COMPILE_BEGIN_ENABLED() (0)
43 
44 #define MONO_PROBE_METHOD_COMPILE_END(method, success)
45 #define MONO_METHOD_COMPILE_END_ENABLED() (0)
46 
47 
48 #define MONO_GC_BEGIN(generation)
49 #define MONO_GC_BEGIN_ENABLED() (0)
50 
51 #define MONO_GC_END(generation)
52 #define MONO_GC_END_ENABLED() (0)
53 
54 
55 #define MONO_GC_REQUESTED(generation,requested_size,wait_to_finish)
56 #define MONO_GC_REQUESTED_ENABLED()	(0)
57 
58 
59 #define MONO_GC_CONCURRENT_START_BEGIN(generation)
60 #define MONO_GC_CONCURRENT_START_BEGIN_ENABLED()	(0)
61 
62 #define MONO_GC_CONCURRENT_UPDATE_FINISH_BEGIN(generation,num_major_objects_marked)
63 #define MONO_GC_CONCURRENT_UPDATE_FINISH_BEGIN_ENABLED()	(0)
64 
65 #define MONO_GC_SWEEP_BEGIN(generation,full_sweep)
66 #define MONO_GC_SWEEP_BEGIN_ENABLED()	(0)
67 
68 #define MONO_GC_SWEEP_END(generation,full_sweep)
69 #define MONO_GC_SWEEP_END_ENABLED()	(0)
70 
71 
72 #define MONO_GC_WORLD_STOP_BEGIN()
73 #define MONO_GC_WORLD_STOP_BEGIN_ENABLED()	(0)
74 
75 #define MONO_GC_WORLD_STOP_END()
76 #define MONO_GC_WORLD_STOP_END_ENABLED()	(0)
77 
78 #define MONO_GC_WORLD_RESTART_BEGIN(generation)
79 #define MONO_GC_WORLD_RESTART_BEGIN_ENABLED()	(0)
80 
81 #define MONO_GC_WORLD_RESTART_END(generation)
82 #define MONO_GC_WORLD_RESTART_END_ENABLED()	(0)
83 
84 
85 #define MONO_GC_NURSERY_TLAB_ALLOC(addr,len)
86 #define MONO_GC_NURSERY_TLAB_ALLOC_ENABLED()	(0)
87 
88 #define MONO_GC_NURSERY_OBJ_ALLOC(addr,size,ns_name,class_name)
89 #define MONO_GC_NURSERY_OBJ_ALLOC_ENABLED()	(0)
90 
91 
92 #define MONO_GC_MAJOR_OBJ_ALLOC_LARGE(addr,size,ns_name,class_name)
93 #define MONO_GC_MAJOR_OBJ_ALLOC_LARGE_ENABLED()	(0)
94 
95 #define MONO_GC_MAJOR_OBJ_ALLOC_PINNED(addr,size,ns_name,class_name)
96 #define MONO_GC_MAJOR_OBJ_ALLOC_PINNED_ENABLED()	(0)
97 
98 #define MONO_GC_MAJOR_OBJ_ALLOC_DEGRADED(addr,size,ns_name,class_name)
99 #define MONO_GC_MAJOR_OBJ_ALLOC_DEGRADED_ENABLED()	(0)
100 
101 
102 #define MONO_GC_OBJ_MOVED(dest,src,dest_gen,src_gen,size,ns_name,class_name)
103 #define MONO_GC_OBJ_MOVED_ENABLED()	(0)
104 
105 
106 #define MONO_GC_NURSERY_SWEPT(addr,len)
107 #define MONO_GC_NURSERY_SWEPT_ENABLED()	(0)
108 
109 #define MONO_GC_MAJOR_SWEPT(addr,len)
110 #define MONO_GC_MAJOR_SWEPT_ENABLED()	(0)
111 
112 
113 #define MONO_GC_OBJ_PINNED(addr,size,ns_name,class_name,generation)
114 #define MONO_GC_OBJ_PINNED_ENABLED()	(0)
115 
116 
117 #define MONO_GC_FINALIZE_ENQUEUE(addr,size,ns_name,class_name,generation,is_critical)
118 #define MONO_GC_FINALIZE_ENQUEUE_ENABLED()	(0)
119 
120 #define MONO_GC_FINALIZE_INVOKE(addr,size,ns_name,class_name)
121 #define MONO_GC_FINALIZE_INVOKE_ENABLED()	(0)
122 
123 
124 #define MONO_GC_WEAK_UPDATE(ref_addr,new_addr,size,ns_name,class_name,track)
125 #define MONO_GC_WEAK_UPDATE_ENABLED()	(0)
126 
127 
128 #define MONO_GC_GLOBAL_REMSET_ADD(ref_addr,obj_addr,size,ns_name,class_name)
129 #define MONO_GC_GLOBAL_REMSET_ADD_ENABLED()	(0)
130 
131 #define MONO_GC_OBJ_CEMENTED(addr,size,ns_name,class_name)
132 #define MONO_GC_OBJ_CEMENTED_ENABLED()	(0)
133 
134 #endif
135 
136 #endif
137