potion
0.2
|
non-API GC internals More...
Go to the source code of this file.
Macros | |
#define | POTION_BIRTH_SIZE (PN_SIZE_T << 21) |
#define | POTION_MIN_BIRTH_SIZE (PN_SIZE_T << 15) |
#define | POTION_MAX_BIRTH_SIZE (16 * POTION_BIRTH_SIZE) |
#define | POTION_GC_THRESHOLD (3 * POTION_BIRTH_SIZE) |
#define | POTION_GC_PERIOD 256 |
#define | POTION_NB_ROOTS 64 |
#define | SET_GEN(t, p, s) |
#define | SET_STOREPTR(n) M->birth_storeptr = (void *)(((void **)M->birth_hi) - (n)) |
#define | GC_KEEP(p) *(M->birth_storeptr--) = (void *)p |
#define | DEL_BIRTH_REGION() |
#define | IS_GC_PROTECTED(p) ((_PN)(p) >= (_PN)M && (_PN)(p) < (_PN)M->protect) |
#define | IN_BIRTH_REGION(p) ((_PN)(p) > (_PN)M->birth_lo && (_PN)(p) < (_PN)M->birth_hi) |
#define | IN_OLDER_REGION(p) ((_PN)(p) > (_PN)M->old_lo && (_PN)(p) < (_PN)M->old_hi) |
#define | IS_NEW_PTR(p) (PN_IS_PTR(p) && IN_BIRTH_REGION(p) && !IS_GC_PROTECTED(p)) |
#define | GC_FORWARD(p, v) |
#define | GC_MINOR_UPDATE(p) |
#define | GC_MAJOR_UPDATE(p) |
#define | GC_MINOR_UPDATE_TABLE(name, kh, is_map) |
#define | GC_MAJOR_UPDATE_TABLE(name, kh, is_map) |
#define | GC_MINOR_STRINGS() |
#define | GC_MAJOR_STRINGS() |
Functions | |
static int | potion_birth_suggest (int need, volatile void *oldlo, volatile void *oldhi) |
PN_SIZE | potion_stack_len (Potion *, _PN **) |
PN_SIZE | potion_mark_stack (Potion *, int) |
void * | potion_gc_copy (Potion *, struct PNObject *) |
void * | pngc_page_new (int *, const char) |
void * | potion_mark_minor (Potion *, const struct PNObject *) |
void * | potion_mark_major (Potion *, const struct PNObject *) |
void | potion_gc_release (Potion *) |
#define POTION_MAX_BIRTH_SIZE (16 * POTION_BIRTH_SIZE) |
#define POTION_GC_THRESHOLD (3 * POTION_BIRTH_SIZE) |
#define SET_GEN | ( | t, | |
p, | |||
s | |||
) |
#define DEL_BIRTH_REGION | ( | ) |
#define IS_NEW_PTR | ( | p | ) | (PN_IS_PTR(p) && IN_BIRTH_REGION(p) && !IS_GC_PROTECTED(p)) |
#define GC_FORWARD | ( | p, | |
v | |||
) |
#define GC_MINOR_UPDATE | ( | p | ) |
#define GC_MAJOR_UPDATE | ( | p | ) |
#define GC_MINOR_UPDATE_TABLE | ( | name, | |
kh, | |||
is_map | |||
) |
#define GC_MAJOR_UPDATE_TABLE | ( | name, | |
kh, | |||
is_map | |||
) |
#define GC_MINOR_STRINGS | ( | ) |
#define GC_MAJOR_STRINGS | ( | ) |
|
inlinestatic |