+
+void
+mono_sgen_copying_init (SgenMajorCollector *collector)
+{
+#ifdef HEAVY_STATISTICS
+ mono_counters_register ("# major copy_object() failed forwarded", MONO_COUNTER_GC | MONO_COUNTER_LONG, &stat_major_copy_object_failed_forwarded);
+ mono_counters_register ("# major copy_object() failed pinned", MONO_COUNTER_GC | MONO_COUNTER_LONG, &stat_major_copy_object_failed_pinned);
+ mono_counters_register ("# major copy_object() failed large or pinned chunk", MONO_COUNTER_GC | MONO_COUNTER_LONG, &stat_major_copy_object_failed_large_pinned);
+ mono_counters_register ("# major copy_object() failed to space", MONO_COUNTER_GC | MONO_COUNTER_LONG, &stat_major_copy_object_failed_to_space);
+#endif
+
+ collector->section_size = MAJOR_SECTION_SIZE;
+ collector->supports_cardtable = FALSE;
+ collector->is_parallel = FALSE;
+
+ collector->have_swept = &have_swept;
+
+ collector->alloc_heap = major_alloc_heap;
+ collector->is_object_live = major_is_object_live;
+ collector->alloc_small_pinned_obj = major_alloc_small_pinned_obj;
+ collector->alloc_degraded = major_alloc_degraded;
+ collector->copy_or_mark_object = major_copy_or_mark_object;
+ collector->alloc_object = major_alloc_object;
+ collector->free_pinned_object = free_pinned_object;
+ collector->iterate_objects = major_iterate_objects;
+ collector->free_non_pinned_object = major_free_non_pinned_object;
+ collector->find_pin_queue_start_ends = major_find_pin_queue_start_ends;
+ collector->pin_objects = major_pin_objects;
+ collector->init_to_space = major_init_to_space;
+ collector->sweep = major_sweep;
+ collector->check_scan_starts = major_check_scan_starts;
+ collector->dump_heap = major_dump_heap;
+ collector->get_used_size = major_get_used_size;
+ collector->start_nursery_collection = major_start_nursery_collection;
+ collector->finish_nursery_collection = major_finish_nursery_collection;
+ collector->finish_major_collection = major_finish_major_collection;
+ collector->ptr_is_in_non_pinned_space = major_ptr_is_in_non_pinned_space;
+ collector->obj_is_from_pinned_alloc = obj_is_from_pinned_alloc;
+ collector->report_pinned_memory_usage = major_report_pinned_memory_usage;
+ collector->get_num_major_sections = get_num_major_sections;
+ collector->handle_gc_param = NULL;
+ collector->print_gc_param_usage = NULL;
+
+ FILL_COLLECTOR_COPY_OBJECT (collector);
+ FILL_COLLECTOR_SCAN_OBJECT (collector);
+}
+
+#endif