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

#include "gc_private.h"

Go to the source code of this file.

Defines

#define LOG_HT_ENTRIES   14
#define HT_ENTRIES   ((word)1 << LOG_HT_ENTRIES)
#define HT_SIZE   (HT_ENTRIES >> LOGWL)
#define HASH(addr)   (((addr) >> LOG_HBLKSIZE) & (HT_ENTRIES - 1))
#define get_bl_entry_from_index(bl, index)   (((bl)[divWORDSZ(index)] >> modWORDSZ(index)) & 1)
#define set_bl_entry_from_index(bl, index)   (bl)[divWORDSZ(index)] |= 1 << modWORDSZ(index)
#define clear_bl_entry_from_index(bl, index)   (bl)[divWORDSZ(index)] &= ~(1 << modWORDSZ(index))

Typedefs

typedef word black_list_t [HT_SIZE]

Functions

 GC_bl_init ()
void GC_clear_bl (word *doomed)
void GC_promote_black_lists ()
void GC_add_to_black_list_normal (word p)
void GC_add_to_black_list_stack (word p)
struct hblkGC_is_black_listed (struct hblk *h, word len)

Variables

wordGC_new_normal_bl
wordGC_old_normal_bl
wordGC_incomplete_normal_bl
wordGC_new_stack_bl
wordGC_old_stack_bl
wordGC_incomplete_stack_bl


Define Documentation

#define clear_bl_entry_from_index ( bl,
index   )     (bl)[divWORDSZ(index)] &= ~(1 << modWORDSZ(index))

Definition at line 61 of file black_list.c.

#define get_bl_entry_from_index ( bl,
index   )     (((bl)[divWORDSZ(index)] >> modWORDSZ(index)) & 1)

Definition at line 57 of file black_list.c.

Referenced by GC_add_to_black_list_normal(), GC_add_to_black_list_stack(), and GC_is_black_listed().

#define HASH ( addr   )     (((addr) >> LOG_HBLKSIZE) & (HT_ENTRIES - 1))

Definition at line 40 of file black_list.c.

Referenced by GC_add_to_black_list_normal(), GC_add_to_black_list_stack(), GC_is_black_listed(), GC_register_disappearing_link(), GC_register_finalizer(), and GC_unregister_disappearing_link().

#define HT_ENTRIES   ((word)1 << LOG_HT_ENTRIES)

Definition at line 36 of file black_list.c.

#define HT_SIZE   (HT_ENTRIES >> LOGWL)

Definition at line 37 of file black_list.c.

Referenced by for_each_vr(), and GC_clear_bl().

#define LOG_HT_ENTRIES   14

Definition at line 33 of file black_list.c.

#define set_bl_entry_from_index ( bl,
index   )     (bl)[divWORDSZ(index)] |= 1 << modWORDSZ(index)

Definition at line 59 of file black_list.c.

Referenced by GC_add_to_black_list_normal(), and GC_add_to_black_list_stack().


Typedef Documentation

typedef word black_list_t[HT_SIZE]

Definition at line 38 of file black_list.c.


Function Documentation

void GC_add_to_black_list_normal ( word  p  ) 

Definition at line 107 of file black_list.c.

References GC_incomplete_normal_bl, GC_modws_valid_offsets, GC_new_normal_bl, GC_printf1, get_bl_entry_from_index, HASH, HDR, and set_bl_entry_from_index.

void GC_add_to_black_list_stack ( word  p  ) 

Definition at line 129 of file black_list.c.

References GC_incomplete_stack_bl, GC_new_stack_bl, GC_printf1, get_bl_entry_from_index, HASH, HDR, and set_bl_entry_from_index.

Referenced by GC_mark_all_stack().

GC_bl_init (  ) 

Definition at line 64 of file black_list.c.

References GC_incomplete_normal_bl, GC_incomplete_stack_bl, GC_new_normal_bl, GC_new_stack_bl, GC_old_normal_bl, GC_old_stack_bl, and GC_scratch_alloc().

void GC_clear_bl ( word doomed  ) 

Definition at line 78 of file black_list.c.

References bzero, and HT_SIZE.

Referenced by GC_promote_black_lists().

struct hblk* GC_is_black_listed ( struct hblk h,
word  len 
) [read]

Definition at line 153 of file black_list.c.

References divHBLKSZ, divWORDSZ, GC_new_normal_bl, GC_new_stack_bl, GC_old_normal_bl, GC_old_stack_bl, get_bl_entry_from_index, HASH, modWORDSZ, and WORDSZ.

Referenced by GC_allochblk().

void GC_promote_black_lists (  ) 

Definition at line 86 of file black_list.c.

References GC_clear_bl(), GC_incomplete_normal_bl, GC_incomplete_stack_bl, GC_new_normal_bl, GC_new_stack_bl, GC_old_normal_bl, and GC_old_stack_bl.

Referenced by GC_gcollect_inner().


Variable Documentation

word* GC_incomplete_normal_bl

Definition at line 50 of file black_list.c.

Referenced by GC_add_to_black_list_normal(), GC_bl_init(), and GC_promote_black_lists().

word* GC_incomplete_stack_bl

Definition at line 55 of file black_list.c.

Referenced by GC_add_to_black_list_stack(), GC_bl_init(), and GC_promote_black_lists().

word* GC_new_normal_bl

Definition at line 44 of file black_list.c.

Referenced by GC_add_to_black_list_normal(), GC_bl_init(), GC_is_black_listed(), and GC_promote_black_lists().

word* GC_new_stack_bl

Definition at line 53 of file black_list.c.

Referenced by GC_add_to_black_list_stack(), GC_bl_init(), GC_is_black_listed(), and GC_promote_black_lists().

word* GC_old_normal_bl

Definition at line 47 of file black_list.c.

Referenced by GC_bl_init(), GC_is_black_listed(), and GC_promote_black_lists().

word* GC_old_stack_bl

Definition at line 54 of file black_list.c.

Referenced by GC_bl_init(), GC_is_black_listed(), and GC_promote_black_lists().


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