PIN_TYPE_MAX
};
-void sgen_pin_stage_ptr (void *ptr) MONO_INTERNAL;
-void sgen_optimize_pin_queue (void) MONO_INTERNAL;
-void sgen_init_pinning (void) MONO_INTERNAL;
-void sgen_finish_pinning (void) MONO_INTERNAL;
-void sgen_pin_queue_clear_discarded_entries (GCMemSection *section, size_t max_pin_slot) MONO_INTERNAL;
-size_t sgen_get_pinned_count (void) MONO_INTERNAL;
-void sgen_pinning_setup_section (GCMemSection *section) MONO_INTERNAL;
-void sgen_pinning_trim_queue_to_section (GCMemSection *section) MONO_INTERNAL;
-
-void sgen_dump_pin_queue (void) MONO_INTERNAL;
+void sgen_pin_stage_ptr (void *ptr);
+void sgen_optimize_pin_queue (void);
+void sgen_init_pinning (void);
+void sgen_finish_pinning (void);
+void sgen_pin_queue_clear_discarded_entries (GCMemSection *section, size_t max_pin_slot);
+size_t sgen_get_pinned_count (void);
+void sgen_pinning_setup_section (GCMemSection *section);
+void sgen_pinning_trim_queue_to_section (GCMemSection *section);
+
+void sgen_dump_pin_queue (void);
+
+gboolean sgen_find_optimized_pin_queue_area (void *start, void *end, size_t *first_out, size_t *last_out);
+void sgen_find_section_pin_queue_start_end (GCMemSection *section);
+void** sgen_pinning_get_entry (size_t index);
+void sgen_pin_objects_in_section (GCMemSection *section, ScanCopyContext ctx);
/* Pinning stats */
-void sgen_pin_stats_register_address (char *addr, int pin_type) MONO_INTERNAL;
-size_t sgen_pin_stats_get_pinned_byte_count (int pin_type) MONO_INTERNAL;
-ObjectList *sgen_pin_stats_get_object_list (void) MONO_INTERNAL;
-void sgen_pin_stats_reset (void) MONO_INTERNAL;
+void sgen_pin_stats_register_address (char *addr, int pin_type);
+size_t sgen_pin_stats_get_pinned_byte_count (int pin_type);
+ObjectList *sgen_pin_stats_get_object_list (void);
+void sgen_pin_stats_reset (void);
/* Perpetual pinning, aka cementing */
-void sgen_cement_init (gboolean enabled) MONO_INTERNAL;
-void sgen_cement_reset (void) MONO_INTERNAL;
-void sgen_cement_concurrent_start (void) MONO_INTERNAL;
-void sgen_cement_concurrent_finish (void) MONO_INTERNAL;
-gboolean sgen_cement_lookup (char *obj) MONO_INTERNAL;
-gboolean sgen_cement_lookup_or_register (char *obj) MONO_INTERNAL;
-void sgen_cement_iterate (IterateObjectCallbackFunc callback, void *callback_data) MONO_INTERNAL;
-void sgen_cement_clear_below_threshold (void) MONO_INTERNAL;
+void sgen_cement_init (gboolean enabled);
+void sgen_cement_reset (void);
+gboolean sgen_cement_lookup (char *obj);
+gboolean sgen_cement_lookup_or_register (char *obj);
+void sgen_pin_cemented_objects (void);
+void sgen_cement_clear_below_threshold (void);
#endif