#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 roots * | root_index [RT_SIZE] |
| word | GC_root_size = 0 |
| #define LOG_RT_SIZE 6 |
| #define MAX_ROOT_SETS 64 |
| #define RT_SIZE 64 |
| 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 | ( | ) |
| 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 | ) |
| 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().
| 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().
1.5.4