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

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

Go to the source code of this file.

Data Structures

struct  roots

Defines

#define MAX_ROOT_SETS   64
#define RT_SIZE   64
#define LOG_RT_SIZE   6

Functions

static int rt_hash (char *addr)
static bool roots_present (char *b, char *e)
static void add_roots_to_index (struct roots *p)
void GC_add_roots (char *b, char *e)
void GC_add_roots_inner (char *b, char *e)
void GC_clear_roots ()
ptr_t GC_approx_sp ()
 GC_mark_roots ()
void GC_tl_mark (word p)

Variables

static struct roots static_roots [MAX_ROOT_SETS]
static n_root_sets = 0
static struct rootsroot_index [RT_SIZE]
word GC_root_size = 0


Define Documentation

#define LOG_RT_SIZE   6

Definition at line 28 of file mark_roots.c.

Referenced by rt_hash().

#define MAX_ROOT_SETS   64

Definition at line 10 of file mark_roots.c.

Referenced by GC_add_roots_inner().

#define RT_SIZE   64

Definition at line 27 of file mark_roots.c.

Referenced by rt_hash().


Function Documentation

static void add_roots_to_index ( struct roots p  )  [static]

Definition at line 65 of file mark_roots.c.

References roots::r_next, roots::r_start, and rt_hash().

Referenced by GC_add_roots_inner().

void GC_add_roots ( char *  b,
char *  e 
)

Definition at line 77 of file mark_roots.c.

References DCL_LOCK_STATE, DISABLE_SIGNALS, ENABLE_SIGNALS, GC_add_roots_inner(), LOCK, and UNLOCK.

void GC_add_roots_inner ( char *  b,
char *  e 
)

Definition at line 94 of file mark_roots.c.

References ABORT, add_roots_to_index(), beginGC_arrays, endGC_arrays, GC_add_roots_inner(), GC_root_size, MAX_ROOT_SETS, n_root_sets, roots::r_end, roots::r_next, roots::r_start, roots_present(), and static_roots.

ptr_t GC_approx_sp (  ) 

Definition at line 153 of file mark_roots.c.

Referenced by GC_mark_roots().

void GC_clear_roots (  ) 

Definition at line 122 of file mark_roots.c.

References DCL_LOCK_STATE, DISABLE_SIGNALS, ENABLE_SIGNALS, GC_root_size, LOCK, n_root_sets, and UNLOCK.

GC_mark_roots (  ) 

Definition at line 166 of file mark_roots.c.

References ABORT, GC_add_roots_inner(), GC_approx_sp(), GC_mark_all(), GC_mark_all_stack(), GC_mark_regs(), GC_register_dynamic_libraries(), GC_stackbottom, n_root_sets, NIL, and static_roots.

Referenced by GC_gcollect_inner().

void GC_tl_mark ( word  p  ) 

Definition at line 243 of file mark_roots.c.

References GC_mark_all_stack().

static bool roots_present ( char *  b,
char *  e 
) [static]

Definition at line 51 of file mark_roots.c.

References FALSE, roots::r_end, roots::r_next, roots::r_start, rt_hash(), and TRUE.

Referenced by GC_add_roots_inner().

static int rt_hash ( char *  addr  )  [static]

Definition at line 34 of file mark_roots.c.

References LOG_RT_SIZE, and RT_SIZE.

Referenced by add_roots_to_index(), and roots_present().


Variable Documentation

word GC_root_size = 0

Definition at line 75 of file mark_roots.c.

Referenced by GC_add_roots_inner(), GC_clear_roots(), and min_words_allocd().

n_root_sets = 0 [static]

Definition at line 23 of file mark_roots.c.

Referenced by GC_add_roots_inner(), GC_clear_roots(), and GC_mark_roots().

struct roots* root_index[RT_SIZE] [static]

Definition at line 30 of file mark_roots.c.

struct roots static_roots[MAX_ROOT_SETS] [static]

Definition at line 21 of file mark_roots.c.

Referenced by GC_add_roots_inner(), and GC_mark_roots().


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