2 * All binary protocol entries are defined here. To keep compatibility with past binary
3 * protocol files, new protocol entries need to be defined at the end of the file so that
4 * the sequential numbering is preserved. We also can't change the types or numbers of
5 * arguments of existing entries. Instead, a new entry has to be added and the old entry
6 * retired - add a comment to make clear it's not used anymore, but it needs to stay in the
7 * definition file, both to preserve the numbering as well as for the benefit of
8 * `sgen-grep-binprot`, which will still want to read the old entries.
10 * It might become necessary to add a header protocol entry that includes version
11 * information. If/when we do that, we should also include word length and endianness. As
12 * of right now, binary protocol files don't identify themselves as 32 vs 64 bits or big- vs
13 * little-endian. At that point, `sgen-grep-binprot` should also be made able to read all
14 * combinations of files, regardless of the host.
17 BEGIN_PROTOCOL_ENTRY3 (binary_protocol_collection_requested
, TYPE_INT
, generation
, TYPE_SIZE
, requested_size
, TYPE_BOOL
, force
)
19 IS_ALWAYS_MATCH (TRUE
)
20 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
21 IS_VTABLE_MATCH (FALSE
)
24 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_collection_begin
, TYPE_INT
, index
, TYPE_INT
, generation
)
26 IS_ALWAYS_MATCH (TRUE
)
27 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
28 IS_VTABLE_MATCH (FALSE
)
29 END_PROTOCOL_ENTRY_FLUSH
31 BEGIN_PROTOCOL_ENTRY4 (binary_protocol_collection_end
, TYPE_INT
, index
, TYPE_INT
, generation
, TYPE_LONGLONG
, num_scanned_objects
, TYPE_LONGLONG
, num_unique_scanned_objects
)
32 CUSTOM_PRINT (printf ("%d generation %d scanned %lld unique %lld %0.2f%%", entry
->index
, entry
->generation
, entry
->num_scanned_objects
, entry
->num_unique_scanned_objects
, entry
->num_unique_scanned_objects
? (100.0 * (double) entry
->num_scanned_objects
/ (double) entry
->num_unique_scanned_objects
) : 0.0))
33 IS_ALWAYS_MATCH (TRUE
)
34 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
35 IS_VTABLE_MATCH (FALSE
)
36 END_PROTOCOL_ENTRY_FLUSH
38 BEGIN_PROTOCOL_ENTRY0 (binary_protocol_concurrent_start
)
40 IS_ALWAYS_MATCH (TRUE
)
41 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
42 IS_VTABLE_MATCH (FALSE
)
45 BEGIN_PROTOCOL_ENTRY0 (binary_protocol_concurrent_update
)
47 IS_ALWAYS_MATCH (TRUE
)
48 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
49 IS_VTABLE_MATCH (FALSE
)
52 BEGIN_PROTOCOL_ENTRY0 (binary_protocol_concurrent_finish
)
54 IS_ALWAYS_MATCH (TRUE
)
55 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
56 IS_VTABLE_MATCH (FALSE
)
59 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_sweep_begin
, TYPE_INT
, generation
, TYPE_BOOL
, full_sweep
)
61 IS_ALWAYS_MATCH (TRUE
)
62 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
63 IS_VTABLE_MATCH (FALSE
)
66 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_sweep_end
, TYPE_INT
, generation
, TYPE_BOOL
, full_sweep
)
68 IS_ALWAYS_MATCH (TRUE
)
69 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
70 IS_VTABLE_MATCH (FALSE
)
73 BEGIN_PROTOCOL_ENTRY3 (binary_protocol_world_stopping
, TYPE_INT
, generation
, TYPE_LONGLONG
, timestamp
, TYPE_POINTER
, thread
)
75 IS_ALWAYS_MATCH (TRUE
)
76 MATCH_INDEX (ptr
== entry
->thread
? 2 : BINARY_PROTOCOL_MATCH
)
77 IS_VTABLE_MATCH (FALSE
)
80 BEGIN_PROTOCOL_ENTRY6 (binary_protocol_world_stopped
, TYPE_INT
, generation
, TYPE_LONGLONG
, timestamp
, TYPE_LONGLONG
, total_major_cards
, TYPE_LONGLONG
, marked_major_cards
, TYPE_LONGLONG
, total_los_cards
, TYPE_LONGLONG
, marked_los_cards
)
81 CUSTOM_PRINT (printf ("generation %d timestamp %lld total %lld marked %lld %0.2f%%", entry
->generation
, entry
->timestamp
, entry
->total_major_cards
+ entry
->total_los_cards
, entry
->marked_major_cards
+ entry
->marked_los_cards
, 100.0 * (double) (entry
->marked_major_cards
+ entry
->marked_los_cards
) / (double) (entry
->total_major_cards
+ entry
->total_los_cards
)))
82 IS_ALWAYS_MATCH (TRUE
)
83 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
84 IS_VTABLE_MATCH (FALSE
)
87 BEGIN_PROTOCOL_ENTRY6 (binary_protocol_world_restarting
, TYPE_INT
, generation
, TYPE_LONGLONG
, timestamp
, TYPE_LONGLONG
, total_major_cards
, TYPE_LONGLONG
, marked_major_cards
, TYPE_LONGLONG
, total_los_cards
, TYPE_LONGLONG
, marked_los_cards
)
88 CUSTOM_PRINT (printf ("generation %d timestamp %lld total %lld marked %lld %0.2f%%", entry
->generation
, entry
->timestamp
, entry
->total_major_cards
+ entry
->total_los_cards
, entry
->marked_major_cards
+ entry
->marked_los_cards
, 100.0 * (double) (entry
->marked_major_cards
+ entry
->marked_los_cards
) / (double) (entry
->total_major_cards
+ entry
->total_los_cards
)))
89 IS_ALWAYS_MATCH (TRUE
)
90 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
91 IS_VTABLE_MATCH (FALSE
)
94 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_world_restarted
, TYPE_INT
, generation
, TYPE_LONGLONG
, timestamp
)
96 IS_ALWAYS_MATCH (TRUE
)
97 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
98 IS_VTABLE_MATCH (FALSE
)
101 BEGIN_PROTOCOL_ENTRY_HEAVY2 (binary_protocol_block_alloc
, TYPE_POINTER
, addr
, TYPE_SIZE
, size
)
103 IS_ALWAYS_MATCH (FALSE
)
104 MATCH_INDEX (matches_interval (ptr
, entry
->addr
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
105 IS_VTABLE_MATCH (FALSE
)
106 END_PROTOCOL_ENTRY_HEAVY
108 BEGIN_PROTOCOL_ENTRY_HEAVY2 (binary_protocol_block_free
, TYPE_POINTER
, addr
, TYPE_SIZE
, size
)
110 IS_ALWAYS_MATCH (FALSE
)
111 MATCH_INDEX (matches_interval (ptr
, entry
->addr
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
112 IS_VTABLE_MATCH (FALSE
)
113 END_PROTOCOL_ENTRY_HEAVY
115 BEGIN_PROTOCOL_ENTRY_HEAVY4 (binary_protocol_block_set_state
, TYPE_POINTER
, addr
, TYPE_SIZE
, size
, TYPE_INT
, old
, TYPE_INT
, new_
)
117 IS_ALWAYS_MATCH (FALSE
)
118 MATCH_INDEX (matches_interval (ptr
, entry
->addr
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
119 IS_VTABLE_MATCH (FALSE
)
120 END_PROTOCOL_ENTRY_HEAVY
122 BEGIN_PROTOCOL_ENTRY1 (binary_protocol_mark_start
, TYPE_INT
, generation
)
124 IS_ALWAYS_MATCH (TRUE
)
125 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
126 IS_VTABLE_MATCH (FALSE
)
129 BEGIN_PROTOCOL_ENTRY1 (binary_protocol_mark_end
, TYPE_INT
, generation
)
131 IS_ALWAYS_MATCH (TRUE
)
132 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
133 IS_VTABLE_MATCH (FALSE
)
136 /* FIXME: unify sweep and reclaim */
137 BEGIN_PROTOCOL_ENTRY1 (binary_protocol_reclaim_start
, TYPE_INT
, generation
)
139 IS_ALWAYS_MATCH (TRUE
)
140 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
141 IS_VTABLE_MATCH (FALSE
)
144 BEGIN_PROTOCOL_ENTRY1 (binary_protocol_reclaim_end
, TYPE_INT
, generation
)
146 IS_ALWAYS_MATCH (TRUE
)
147 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
148 IS_VTABLE_MATCH (FALSE
)
151 BEGIN_PROTOCOL_ENTRY_HEAVY4 (binary_protocol_alloc
, TYPE_POINTER
, obj
, TYPE_POINTER
, vtable
, TYPE_SIZE
, size
, TYPE_POINTER
, provenance
)
153 IS_ALWAYS_MATCH (FALSE
)
154 MATCH_INDEX (matches_interval (ptr
, entry
->obj
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
155 IS_VTABLE_MATCH (ptr
== entry
->vtable
)
156 END_PROTOCOL_ENTRY_HEAVY
158 BEGIN_PROTOCOL_ENTRY_HEAVY4 (binary_protocol_copy
, TYPE_POINTER
, from
, TYPE_POINTER
, to
, TYPE_POINTER
, vtable
, TYPE_SIZE
, size
)
160 IS_ALWAYS_MATCH (FALSE
)
161 MATCH_INDEX (matches_interval (ptr
, entry
->from
, entry
->size
) ? 0 : matches_interval (ptr
, entry
->to
, entry
->size
) ? 1 : BINARY_PROTOCOL_NO_MATCH
)
162 IS_VTABLE_MATCH (ptr
== entry
->vtable
)
163 END_PROTOCOL_ENTRY_HEAVY
165 BEGIN_PROTOCOL_ENTRY_HEAVY2 (binary_protocol_pin_stage
, TYPE_POINTER
, addr_ptr
, TYPE_POINTER
, addr
)
167 IS_ALWAYS_MATCH (FALSE
)
168 MATCH_INDEX (ptr
== entry
->addr_ptr
? 0 : ptr
== entry
->addr
? 1 : BINARY_PROTOCOL_NO_MATCH
)
169 IS_VTABLE_MATCH (FALSE
)
170 END_PROTOCOL_ENTRY_HEAVY
172 BEGIN_PROTOCOL_ENTRY_HEAVY1 (binary_protocol_cement_stage
, TYPE_POINTER
, addr
)
174 IS_ALWAYS_MATCH (FALSE
)
175 MATCH_INDEX (ptr
== entry
->addr
? 0 : BINARY_PROTOCOL_NO_MATCH
)
176 IS_VTABLE_MATCH (FALSE
)
177 END_PROTOCOL_ENTRY_HEAVY
179 BEGIN_PROTOCOL_ENTRY_HEAVY3 (binary_protocol_pin
, TYPE_POINTER
, obj
, TYPE_POINTER
, vtable
, TYPE_SIZE
, size
)
181 IS_ALWAYS_MATCH (FALSE
)
182 MATCH_INDEX (matches_interval (ptr
, entry
->obj
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
183 IS_VTABLE_MATCH (ptr
== entry
->vtable
)
184 END_PROTOCOL_ENTRY_HEAVY
186 BEGIN_PROTOCOL_ENTRY_HEAVY3 (binary_protocol_mark
, TYPE_POINTER
, obj
, TYPE_POINTER
, vtable
, TYPE_SIZE
, size
)
188 IS_ALWAYS_MATCH (FALSE
)
189 MATCH_INDEX (matches_interval (ptr
, entry
->obj
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
190 IS_VTABLE_MATCH (FALSE
)
191 END_PROTOCOL_ENTRY_HEAVY
193 BEGIN_PROTOCOL_ENTRY_HEAVY3 (binary_protocol_scan_begin
, TYPE_POINTER
, obj
, TYPE_POINTER
, vtable
, TYPE_SIZE
, size
)
195 IS_ALWAYS_MATCH (FALSE
)
196 MATCH_INDEX (matches_interval (ptr
, entry
->obj
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
197 IS_VTABLE_MATCH (ptr
== entry
->vtable
)
198 END_PROTOCOL_ENTRY_HEAVY
200 BEGIN_PROTOCOL_ENTRY_HEAVY2 (binary_protocol_scan_vtype_begin
, TYPE_POINTER
, obj
, TYPE_SIZE
, size
)
202 IS_ALWAYS_MATCH (FALSE
)
203 MATCH_INDEX (matches_interval (ptr
, entry
->obj
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
204 IS_VTABLE_MATCH (FALSE
)
205 END_PROTOCOL_ENTRY_HEAVY
207 BEGIN_PROTOCOL_ENTRY_HEAVY3 (binary_protocol_scan_process_reference
, TYPE_POINTER
, obj
, TYPE_POINTER
, ptr
, TYPE_POINTER
, value
)
209 IS_ALWAYS_MATCH (FALSE
)
210 MATCH_INDEX (ptr
== entry
->obj
? 0 : ptr
== entry
->ptr
? 1 : ptr
== entry
->value
? 2 : BINARY_PROTOCOL_NO_MATCH
)
211 IS_VTABLE_MATCH (FALSE
)
212 END_PROTOCOL_ENTRY_HEAVY
214 BEGIN_PROTOCOL_ENTRY_HEAVY4 (binary_protocol_scan_stack
, TYPE_POINTER
, thread
, TYPE_POINTER
, stack_start
, TYPE_POINTER
, stack_end
, TYPE_INT
, skip_reason
)
216 IS_ALWAYS_MATCH (FALSE
)
217 MATCH_INDEX (ptr
== entry
->thread
? 0 : (ptr
>= entry
->stack_start
&& ptr
< entry
->stack_end
) ? 1 : BINARY_PROTOCOL_NO_MATCH
)
218 IS_VTABLE_MATCH (FALSE
)
219 END_PROTOCOL_ENTRY_HEAVY
221 BEGIN_PROTOCOL_ENTRY_HEAVY3 (binary_protocol_wbarrier
, TYPE_POINTER
, ptr
, TYPE_POINTER
, value
, TYPE_POINTER
, value_vtable
)
223 IS_ALWAYS_MATCH (FALSE
)
224 MATCH_INDEX (ptr
== entry
->ptr
? 0 : ptr
== entry
->value
? 1 : BINARY_PROTOCOL_NO_MATCH
)
225 IS_VTABLE_MATCH (ptr
== entry
->value_vtable
)
226 END_PROTOCOL_ENTRY_HEAVY
228 BEGIN_PROTOCOL_ENTRY_HEAVY3 (binary_protocol_global_remset
, TYPE_POINTER
, ptr
, TYPE_POINTER
, value
, TYPE_POINTER
, value_vtable
)
230 IS_ALWAYS_MATCH (FALSE
)
231 MATCH_INDEX (ptr
== entry
->ptr
? 0 : ptr
== entry
->value
? 1 : BINARY_PROTOCOL_NO_MATCH
)
232 IS_VTABLE_MATCH (ptr
== entry
->value_vtable
)
233 END_PROTOCOL_ENTRY_HEAVY
235 BEGIN_PROTOCOL_ENTRY_HEAVY5 (binary_protocol_ptr_update
, TYPE_POINTER
, ptr
, TYPE_POINTER
, old_value
, TYPE_POINTER
, new_value
, TYPE_POINTER
, vtable
, TYPE_SIZE
, size
)
237 IS_ALWAYS_MATCH (FALSE
)
238 MATCH_INDEX (ptr
== entry
->ptr
? 0 : matches_interval (ptr
, entry
->old_value
, entry
->size
) ? 1 : matches_interval (ptr
, entry
->new_value
, entry
->size
) ? 2 : BINARY_PROTOCOL_NO_MATCH
)
239 IS_VTABLE_MATCH (ptr
== entry
->vtable
)
240 END_PROTOCOL_ENTRY_HEAVY
242 BEGIN_PROTOCOL_ENTRY_HEAVY3 (binary_protocol_cleanup
, TYPE_POINTER
, ptr
, TYPE_POINTER
, vtable
, TYPE_SIZE
, size
)
244 IS_ALWAYS_MATCH (FALSE
)
245 MATCH_INDEX (matches_interval (ptr
, entry
->ptr
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
246 IS_VTABLE_MATCH (ptr
== entry
->vtable
)
247 END_PROTOCOL_ENTRY_HEAVY
249 BEGIN_PROTOCOL_ENTRY_HEAVY2 (binary_protocol_empty
, TYPE_POINTER
, start
, TYPE_SIZE
, size
)
251 IS_ALWAYS_MATCH (FALSE
)
252 MATCH_INDEX (matches_interval (ptr
, entry
->start
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
253 IS_VTABLE_MATCH (FALSE
)
254 END_PROTOCOL_ENTRY_HEAVY
256 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_thread_suspend
, TYPE_POINTER
, thread
, TYPE_POINTER
, stopped_ip
)
258 IS_ALWAYS_MATCH (TRUE
)
259 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
260 IS_VTABLE_MATCH (FALSE
)
263 BEGIN_PROTOCOL_ENTRY1 (binary_protocol_thread_restart
, TYPE_POINTER
, thread
)
265 IS_ALWAYS_MATCH (TRUE
)
266 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
267 IS_VTABLE_MATCH (FALSE
)
270 BEGIN_PROTOCOL_ENTRY1 (binary_protocol_thread_register
, TYPE_POINTER
, thread
)
272 IS_ALWAYS_MATCH (TRUE
)
273 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
274 IS_VTABLE_MATCH (FALSE
)
277 BEGIN_PROTOCOL_ENTRY1 (binary_protocol_thread_unregister
, TYPE_POINTER
, thread
)
279 IS_ALWAYS_MATCH (TRUE
)
280 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
281 IS_VTABLE_MATCH (FALSE
)
284 BEGIN_PROTOCOL_ENTRY6 (binary_protocol_missing_remset
, TYPE_POINTER
, obj
, TYPE_POINTER
, obj_vtable
, TYPE_INT
, offset
, TYPE_POINTER
, value
, TYPE_POINTER
, value_vtable
, TYPE_BOOL
, value_pinned
)
286 IS_ALWAYS_MATCH (FALSE
)
287 MATCH_INDEX (ptr
== entry
->obj
? 0 : ptr
== entry
->value
? 3 : ptr
== entry
->obj
+ entry
->offset
? BINARY_PROTOCOL_MATCH
: BINARY_PROTOCOL_NO_MATCH
)
288 IS_VTABLE_MATCH (ptr
== entry
->obj_vtable
|| ptr
== entry
->value_vtable
)
291 BEGIN_PROTOCOL_ENTRY_HEAVY4 (binary_protocol_alloc_pinned
, TYPE_POINTER
, obj
, TYPE_POINTER
, vtable
, TYPE_SIZE
, size
, TYPE_POINTER
, provenance
)
293 IS_ALWAYS_MATCH (FALSE
)
294 MATCH_INDEX (matches_interval (ptr
, entry
->obj
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
295 IS_VTABLE_MATCH (ptr
== entry
->vtable
)
296 END_PROTOCOL_ENTRY_HEAVY
298 BEGIN_PROTOCOL_ENTRY_HEAVY4 (binary_protocol_alloc_degraded
, TYPE_POINTER
, obj
, TYPE_POINTER
, vtable
, TYPE_SIZE
, size
, TYPE_POINTER
, provenance
)
300 IS_ALWAYS_MATCH (FALSE
)
301 MATCH_INDEX (matches_interval (ptr
, entry
->obj
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
302 IS_VTABLE_MATCH (ptr
== entry
->vtable
)
303 END_PROTOCOL_ENTRY_HEAVY
305 BEGIN_PROTOCOL_ENTRY_HEAVY2 (binary_protocol_card_scan
, TYPE_POINTER
, start
, TYPE_SIZE
, size
)
307 IS_ALWAYS_MATCH (FALSE
)
308 MATCH_INDEX (matches_interval (ptr
, entry
->start
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
309 IS_VTABLE_MATCH (FALSE
)
310 END_PROTOCOL_ENTRY_HEAVY
312 BEGIN_PROTOCOL_ENTRY3 (binary_protocol_cement
, TYPE_POINTER
, obj
, TYPE_POINTER
, vtable
, TYPE_SIZE
, size
)
314 IS_ALWAYS_MATCH (FALSE
)
315 MATCH_INDEX (matches_interval (ptr
, entry
->obj
, entry
->size
) ? 0 : BINARY_PROTOCOL_NO_MATCH
)
316 IS_VTABLE_MATCH (ptr
== entry
->vtable
)
319 BEGIN_PROTOCOL_ENTRY0 (binary_protocol_cement_reset
)
321 IS_ALWAYS_MATCH (TRUE
)
322 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
323 IS_VTABLE_MATCH (FALSE
)
326 BEGIN_PROTOCOL_ENTRY_HEAVY3 (binary_protocol_dislink_add
, TYPE_POINTER
, link
, TYPE_POINTER
, obj
, TYPE_BOOL
, track
)
328 IS_ALWAYS_MATCH (FALSE
)
329 MATCH_INDEX (ptr
== entry
->link
? 0 : ptr
== entry
->obj
? 1 : BINARY_PROTOCOL_NO_MATCH
)
330 IS_VTABLE_MATCH (FALSE
)
331 END_PROTOCOL_ENTRY_HEAVY
333 BEGIN_PROTOCOL_ENTRY_HEAVY3 (binary_protocol_dislink_update
, TYPE_POINTER
, link
, TYPE_POINTER
, obj
, TYPE_BOOL
, track
)
334 CUSTOM_PRINT(entry
->obj
? printf ("link 0x%"MWORD_FORMAT_SPEC_P
" obj 0x%"MWORD_FORMAT_SPEC_P
" track %d", entry
->link
, entry
->obj
, entry
->track
) : printf ("link 0x%"MWORD_FORMAT_SPEC_P
" obj 0x%"MWORD_FORMAT_SPEC_P
, entry
->link
, entry
->obj
))
335 IS_ALWAYS_MATCH (FALSE
)
336 MATCH_INDEX (ptr
== entry
->link
? 0 : ptr
== entry
->obj
? 1 : BINARY_PROTOCOL_NO_MATCH
)
337 IS_VTABLE_MATCH (FALSE
)
338 END_PROTOCOL_ENTRY_HEAVY
340 BEGIN_PROTOCOL_ENTRY_HEAVY2 (binary_protocol_dislink_remove
, TYPE_POINTER
, link
, TYPE_BOOL
, track
)
342 IS_ALWAYS_MATCH (FALSE
)
343 MATCH_INDEX (ptr
== entry
->link
? 0 : BINARY_PROTOCOL_NO_MATCH
)
344 IS_VTABLE_MATCH (FALSE
)
345 END_PROTOCOL_ENTRY_HEAVY
347 BEGIN_PROTOCOL_ENTRY1 (binary_protocol_domain_unload_begin
, TYPE_POINTER
, domain
)
349 IS_ALWAYS_MATCH (TRUE
)
350 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
351 IS_VTABLE_MATCH (FALSE
)
354 BEGIN_PROTOCOL_ENTRY1 (binary_protocol_domain_unload_end
, TYPE_POINTER
, domain
)
356 IS_ALWAYS_MATCH (TRUE
)
357 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
358 IS_VTABLE_MATCH (FALSE
)
361 BEGIN_PROTOCOL_ENTRY_HEAVY3 (binary_protocol_gray_enqueue
, TYPE_POINTER
, queue
, TYPE_POINTER
, cursor
, TYPE_POINTER
, value
)
363 IS_ALWAYS_MATCH (FALSE
)
364 MATCH_INDEX (ptr
== entry
->cursor
? 1 : ptr
== entry
->value
? 2 : BINARY_PROTOCOL_NO_MATCH
)
365 IS_VTABLE_MATCH (FALSE
)
366 END_PROTOCOL_ENTRY_HEAVY
368 BEGIN_PROTOCOL_ENTRY_HEAVY3 (binary_protocol_gray_dequeue
, TYPE_POINTER
, queue
, TYPE_POINTER
, cursor
, TYPE_POINTER
, value
)
370 IS_ALWAYS_MATCH (FALSE
)
371 MATCH_INDEX (ptr
== entry
->cursor
? 1 : ptr
== entry
->value
? 2 : BINARY_PROTOCOL_NO_MATCH
)
372 IS_VTABLE_MATCH (FALSE
)
373 END_PROTOCOL_ENTRY_HEAVY
375 BEGIN_PROTOCOL_ENTRY_HEAVY4 (binary_protocol_mod_union_remset
, TYPE_POINTER
, obj
, TYPE_POINTER
, ptr
, TYPE_POINTER
, value
, TYPE_POINTER
, value_vtable
)
377 IS_ALWAYS_MATCH (FALSE
)
378 MATCH_INDEX (ptr
== entry
->obj
? 0 : ptr
== entry
->ptr
? 1 : ptr
== entry
->value
? 2 : BINARY_PROTOCOL_NO_MATCH
)
379 IS_VTABLE_MATCH (ptr
== entry
->value_vtable
)
380 END_PROTOCOL_ENTRY_HEAVY
382 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_major_card_table_scan_start
, TYPE_LONGLONG
, timestamp
, TYPE_BOOL
, mod_union
)
384 IS_ALWAYS_MATCH (TRUE
)
385 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
386 IS_VTABLE_MATCH (FALSE
)
389 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_major_card_table_scan_end
, TYPE_LONGLONG
, timestamp
, TYPE_BOOL
, mod_union
)
391 IS_ALWAYS_MATCH (TRUE
)
392 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
393 IS_VTABLE_MATCH (FALSE
)
396 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_los_card_table_scan_start
, TYPE_LONGLONG
, timestamp
, TYPE_BOOL
, mod_union
)
398 IS_ALWAYS_MATCH (TRUE
)
399 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
400 IS_VTABLE_MATCH (FALSE
)
403 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_los_card_table_scan_end
, TYPE_LONGLONG
, timestamp
, TYPE_BOOL
, mod_union
)
405 IS_ALWAYS_MATCH (TRUE
)
406 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
407 IS_VTABLE_MATCH (FALSE
)
410 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_finish_gray_stack_start
, TYPE_LONGLONG
, timestamp
, TYPE_INT
, generation
)
412 IS_ALWAYS_MATCH (TRUE
)
413 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
414 IS_VTABLE_MATCH (FALSE
)
417 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_finish_gray_stack_end
, TYPE_LONGLONG
, timestamp
, TYPE_INT
, generation
)
419 IS_ALWAYS_MATCH (TRUE
)
420 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
421 IS_VTABLE_MATCH (FALSE
)
424 BEGIN_PROTOCOL_ENTRY2 (binary_protocol_worker_finish
, TYPE_LONGLONG
, timestamp
, TYPE_BOOL
, forced
)
426 IS_ALWAYS_MATCH (TRUE
)
427 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
428 IS_VTABLE_MATCH (FALSE
)
431 BEGIN_PROTOCOL_ENTRY1 (binary_protocol_evacuating_blocks
, TYPE_SIZE
, block_size
)
433 IS_ALWAYS_MATCH (TRUE
)
434 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
435 IS_VTABLE_MATCH (FALSE
)
438 BEGIN_PROTOCOL_ENTRY1 (binary_protocol_concurrent_sweep_end
, TYPE_LONGLONG
, timestamp
)
440 IS_ALWAYS_MATCH (TRUE
)
441 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
442 IS_VTABLE_MATCH (FALSE
)
445 BEGIN_PROTOCOL_ENTRY4 (binary_protocol_header
, TYPE_LONGLONG
, check
, TYPE_INT
, version
, TYPE_INT
, ptr_size
, TYPE_BOOL
, little_endian
)
447 IS_ALWAYS_MATCH (TRUE
)
448 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
449 IS_VTABLE_MATCH (FALSE
)
450 END_PROTOCOL_ENTRY_FLUSH
452 BEGIN_PROTOCOL_ENTRY4 (binary_protocol_pin_stats
, TYPE_INT
, objects_pinned_in_nursery
, TYPE_SIZE
, bytes_pinned_in_nursery
, TYPE_INT
, objects_pinned_in_major
, TYPE_SIZE
, bytes_pinned_in_major
)
454 IS_ALWAYS_MATCH (TRUE
)
455 MATCH_INDEX (BINARY_PROTOCOL_MATCH
)
456 IS_VTABLE_MATCH (FALSE
)
459 #undef BEGIN_PROTOCOL_ENTRY0
460 #undef BEGIN_PROTOCOL_ENTRY1
461 #undef BEGIN_PROTOCOL_ENTRY2
462 #undef BEGIN_PROTOCOL_ENTRY3
463 #undef BEGIN_PROTOCOL_ENTRY4
464 #undef BEGIN_PROTOCOL_ENTRY5
465 #undef BEGIN_PROTOCOL_ENTRY6
466 #undef BEGIN_PROTOCOL_ENTRY_HEAVY0
467 #undef BEGIN_PROTOCOL_ENTRY_HEAVY1
468 #undef BEGIN_PROTOCOL_ENTRY_HEAVY2
469 #undef BEGIN_PROTOCOL_ENTRY_HEAVY3
470 #undef BEGIN_PROTOCOL_ENTRY_HEAVY4
471 #undef BEGIN_PROTOCOL_ENTRY_HEAVY5
472 #undef BEGIN_PROTOCOL_ENTRY_HEAVY6
477 #undef IS_ALWAYS_MATCH
479 #undef IS_VTABLE_MATCH
481 #undef END_PROTOCOL_ENTRY
482 #undef END_PROTOCOL_ENTRY_FLUSH
483 #undef END_PROTOCOL_ENTRY_HEAVY