Merge pull request #1588 from BrzVlad/feature-aot-wbarrier
[mono.git] / mono / metadata / sgen-gc.h
index c732fc7664b6a68350e3e4b79a45914e5d39ef1f..0c99daf3d21fe66847435019e2251fb181a4b3ca 100644 (file)
@@ -243,34 +243,22 @@ extern int num_ready_finalizers;
 #define HIDE_POINTER(p,t)      ((gpointer)(~((size_t)(p)|((t)?1:0))))
 #define REVEAL_POINTER(p)      ((gpointer)((~(size_t)(p))&~3L))
 
-#ifdef SGEN_ALIGN_NURSERY
 #define SGEN_PTR_IN_NURSERY(p,bits,start,end)  (((mword)(p) & ~((1 << (bits)) - 1)) == (mword)(start))
-#else
-#define SGEN_PTR_IN_NURSERY(p,bits,start,end)  ((char*)(p) >= (start) && (char*)(p) < (end))
-#endif
 
 #ifdef USER_CONFIG
 
 /* good sizes are 512KB-1MB: larger ones increase a lot memzeroing time */
 #define DEFAULT_NURSERY_SIZE (sgen_nursery_size)
 extern size_t sgen_nursery_size;
-#ifdef SGEN_ALIGN_NURSERY
 /* The number of trailing 0 bits in DEFAULT_NURSERY_SIZE */
 #define DEFAULT_NURSERY_BITS (sgen_nursery_bits)
 extern int sgen_nursery_bits;
-#endif
 
 #else
 
 #define DEFAULT_NURSERY_SIZE (4*1024*1024)
-#ifdef SGEN_ALIGN_NURSERY
 #define DEFAULT_NURSERY_BITS 22
-#endif
-
-#endif
 
-#ifndef SGEN_ALIGN_NURSERY
-#define DEFAULT_NURSERY_BITS -1
 #endif
 
 extern char *sgen_nursery_start;
@@ -684,7 +672,6 @@ struct _SgenMajorCollector {
        void (*free_pinned_object) (char *obj, size_t size);
        void (*iterate_objects) (IterateObjectsFlags flags, IterateObjectCallbackFunc callback, void *data);
        void (*free_non_pinned_object) (char *obj, size_t size);
-       void (*find_pin_queue_start_ends) (SgenGrayQueue *queue);
        void (*pin_objects) (SgenGrayQueue *queue);
        void (*pin_major_object) (char *obj, SgenGrayQueue *queue);
        void (*scan_card_table) (gboolean mod_union, SgenGrayQueue *queue);
@@ -730,7 +717,7 @@ void sgen_marksweep_conc_init (SgenMajorCollector *collector);
 SgenMajorCollector* sgen_get_major_collector (void);
 
 
-typedef struct _SgenRemeberedSet {
+typedef struct _SgenRememberedSet {
        void (*wbarrier_set_field) (MonoObject *obj, gpointer field_ptr, MonoObject* value);
        void (*wbarrier_set_arrayref) (MonoArray *arr, gpointer slot_ptr, MonoObject* value);
        void (*wbarrier_arrayref_copy) (gpointer dest_ptr, gpointer src_ptr, int count);
@@ -739,16 +726,16 @@ typedef struct _SgenRemeberedSet {
        void (*wbarrier_generic_nostore) (gpointer ptr);
        void (*record_pointer) (gpointer ptr);
 
-       void (*finish_scan_remsets) (void *start_nursery, void *end_nursery, SgenGrayQueue *queue);
+       void (*scan_remsets) (SgenGrayQueue *queue);
 
-       void (*prepare_for_major_collection) (void);
+       void (*clear_cards) (void);
 
        void (*finish_minor_collection) (void);
        gboolean (*find_address) (char *addr);
        gboolean (*find_address_with_cards) (char *cards_start, guint8 *cards, char *addr);
-} SgenRemeberedSet;
+} SgenRememberedSet;
 
-SgenRemeberedSet *sgen_get_remset (void);
+SgenRememberedSet *sgen_get_remset (void);
 
 static mword /*__attribute__((noinline)) not sure if this hint is a good idea*/
 slow_object_get_size (MonoVTable *vtable, MonoObject* o)
@@ -949,7 +936,6 @@ enum {
 };
 
 void sgen_pin_object (void *object, SgenGrayQueue *queue);
-void sgen_parallel_pin_or_update (void **ptr, void *obj, MonoVTable *vt, SgenGrayQueue *queue);
 void sgen_set_pinned_from_failed_allocation (mword objsize);
 
 void sgen_ensure_free_space (size_t size);
@@ -1161,6 +1147,7 @@ void sgen_check_heap_marked (gboolean nursery_must_be_pinned);
 void sgen_check_nursery_objects_pinned (gboolean pinned);
 void sgen_scan_for_registered_roots_in_domain (MonoDomain *domain, int root_type);
 void sgen_check_for_xdomain_refs (void);
+char* sgen_find_object_for_ptr (char *ptr);
 
 void mono_gc_scan_for_specific_ref (MonoObject *key, gboolean precise);