boehm-gc: revert all CACAO-specific modifications; this is now an exact copy of the...
[cacao.git] / src / mm / boehm-gc / include / gc_mark.h
index 8ee50b5d4deb8b36afc0ad6016be13fe33a013a3..71e62dbe286af51eefdcd6f2f6538d36252c314b 100644 (file)
@@ -32,7 +32,7 @@
 /* A client supplied mark procedure.  Returns new mark stack pointer.  */
 /* Primary effect should be to push new entries on the mark stack.     */
 /* Mark stack pointer values are passed and returned explicitly.       */
-/* Global variables decribing mark stack are not necessarily valid.    */
+/* Global variables describing mark stack are not necessarily valid.   */
 /* (This usually saves a few cycles by keeping things in registers.)   */
 /* Assumed to scan about GC_PROC_BYTES on average.  If it needs to do  */
 /* much more work than that, it should do it in smaller pieces by      */
@@ -74,7 +74,7 @@ typedef struct GC_ms_entry * (*GC_mark_proc) (
 #define GC_DS_LENGTH 0 /* The entire word is a length in bytes that    */
                        /* must be a multiple of 4.                     */
 #define GC_DS_BITMAP 1 /* 30 (62) bits are a bitmap describing pointer */
-                       /* fields.  The msb is 1 iff the first word     */
+                       /* fields.  The msb is 1 if the first word      */
                        /* is a pointer.                                */
                        /* (This unconventional ordering sometimes      */
                        /* makes the marker slightly faster.)           */
@@ -99,7 +99,7 @@ typedef struct GC_ms_entry * (*GC_mark_proc) (
                        /* object contains a type descriptor in the     */
                        /* first word.                                  */
                        /* Note that in multithreaded environments      */
-                       /* per object descriptors maust be located in   */
+                       /* per object descriptors must be located in    */
                        /* either the first two or last two words of    */
                        /* the object, since only those are guaranteed  */
                        /* to be cleared while the allocation lock is   */
@@ -110,6 +110,8 @@ extern void * GC_least_plausible_heap_addr;
 extern void * GC_greatest_plausible_heap_addr;
                        /* Bounds on the heap.  Guaranteed valid        */
                        /* Likely to include future heap expansion.     */
+                       /* Hence usually includes not-yet-mapped        */
+                       /* memory.                                      */
 
 /* Handle nested references in a custom mark procedure.                        */
 /* Check if obj is a valid object. If so, ensure that it is marked.    */
@@ -178,7 +180,7 @@ unsigned GC_new_proc_inner(GC_mark_proc);
 /* cause a GC crash if they are accidentally traced.                   */
 void * GC_generic_malloc(size_t lb, int k);
 
-typedef void (*GC_describe_type_fn) (void *p, char *out_buf);
+typedef void (GC_CALLBACK * GC_describe_type_fn) (void *p, char *out_buf);
                                /* A procedure which                    */
                                /* produces a human-readable            */
                                /* description of the "type" of object  */
@@ -192,7 +194,7 @@ typedef void (*GC_describe_type_fn) (void *p, char *out_buf);
                                /* global free list.                    */
 #      define GC_TYPE_DESCR_LEN 40
 
-void GC_register_describe_type_fn(int kind, GC_describe_type_fn knd);
+void GC_CALL GC_register_describe_type_fn(int kind, GC_describe_type_fn knd);
                                /* Register a describe_type function    */
                                /* to be used when printing objects     */
                                /* of a particular kind.                */