/* 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 */
#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.) */
/* 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 */
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. */
/* 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 */
/* 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. */