C:/Users/Dennis/src/lang/russell.orig/src/gc/mark.c File Reference

#include <stdio.h>
#include "gc_private.h"

Go to the source code of this file.

Defines

#define INITIAL_MARK_STACK_SIZE   (1*HBLKSIZE)
#define SPLIT_RANGE_WORDS   128
#define BUFSIZE   1024

Functions

mseGC_normal_mark_proc (word *addr, hdr *hhdr, mse *msp, mse *msl)
mseGC_no_mark_proc (word *addr, hdr *hhdr, mse *msp, mse *msl)
void GC_mark ()
static void alloc_mark_stack (word n)
void GC_mark_init ()
void GC_mark_reliable ()
void GC_mark_all (ptr_t bottom, ptr_t top)
void GC_mark_all_stack (ptr_t bottom, ptr_t top)
static void remark_block (struct hblk *h, word dummy)
void GC_remark ()

Variables

mseGC_mark_stack
word GC_mark_stack_size = 0
mseGC_mark_stack_top
static bool dropped_some = FALSE
wordGC_buffer


Define Documentation

#define BUFSIZE   1024

Definition at line 263 of file mark.c.

Referenced by GC_mark_all_stack().

#define INITIAL_MARK_STACK_SIZE   (1*HBLKSIZE)

Definition at line 27 of file mark.c.

Referenced by GC_mark_init().

#define SPLIT_RANGE_WORDS   128

Referenced by GC_mark().


Function Documentation

static void alloc_mark_stack ( word  n  )  [static]

Definition at line 194 of file mark.c.

References EXIT, GC_add_to_heap(), GC_err_printf0, GC_mark_stack_size, and GET_MEM.

Referenced by GC_mark_init(), and GC_mark_reliable().

void GC_mark (  ) 

Definition at line 96 of file mark.c.

References BYTES_TO_WORDS, divWORDSZ, GC_ADD_TO_BLACK_LIST_NORMAL, GC_greatest_plausible_heap_addr, GC_least_plausible_heap_addr, GC_mark_stack_size, hblkhdr::hb_sz, HBLKDISPL, HBLKPTR, HBLKSIZE, HDR, HDR_BYTES, IS_FORWARDING_ADDR_OR_NIL, MAP_ENTRY, map_entry_type, modWORDSZ, OBJ_INVALID, and SPLIT_RANGE_WORDS.

Referenced by GC_mark_reliable(), and remark_block().

void GC_mark_all ( ptr_t  bottom,
ptr_t  top 
)

Definition at line 245 of file mark.c.

References ABORT, and GC_mark_reliable().

void GC_mark_all_stack ( ptr_t  bottom,
ptr_t  top 
)

Definition at line 268 of file mark.c.

References BUFSIZE, GC_add_to_black_list_stack(), GC_base(), GC_buffer, GC_greatest_plausible_heap_addr, GC_least_plausible_heap_addr, GC_mark_all(), and GC_scratch_alloc().

void GC_mark_init (  ) 

Definition at line 218 of file mark.c.

References alloc_mark_stack(), and INITIAL_MARK_STACK_SIZE.

void GC_mark_reliable (  ) 

Definition at line 225 of file mark.c.

References alloc_mark_stack(), dropped_some, FALSE, GC_mark(), GC_mark_stack_size, GC_printf1, and GC_remark().

Referenced by GC_mark_all().

mse* GC_no_mark_proc ( word addr,
hdr hhdr,
mse msp,
mse msl 
)

Definition at line 76 of file mark.c.

mse* GC_normal_mark_proc ( word addr,
hdr hhdr,
mse msp,
mse msl 
)

Definition at line 53 of file mark.c.

References dropped_some, and TRUE.

void GC_remark (  ) 

Definition at line 357 of file mark.c.

References GC_apply_to_all_blocks(), and remark_block().

Referenced by GC_mark_reliable().

static void remark_block ( struct hblk h,
word  dummy 
) [static]

Definition at line 324 of file mark.c.

References GC_mark(), HDR, HDR_WORDS, mark_bit_from_hdr, and MAXOBJSZ.

Referenced by GC_remark().


Variable Documentation

bool dropped_some = FALSE [static]

Definition at line 44 of file mark.c.

Referenced by GC_mark_reliable(), and GC_normal_mark_proc().

word* GC_buffer

Definition at line 262 of file mark.c.

Referenced by GC_mark_all_stack().

mse* GC_mark_stack

Definition at line 38 of file mark.c.

word GC_mark_stack_size = 0

Definition at line 40 of file mark.c.

Referenced by alloc_mark_stack(), GC_mark(), and GC_mark_reliable().

mse* GC_mark_stack_top

Definition at line 42 of file mark.c.


Generated on Fri Jan 25 10:39:49 2008 for russell by  doxygen 1.5.4