|
Classes |
| struct | marker |
Defines |
| #define | GC_MIN_ALLOC_THRESHOLD 1000 |
| #define | GC_MAX_ALLOC_THRESHOLD (ALLOC_COUNT_TYPE_MAX - 10000000) |
| #define | ALLOC_COUNT_TYPE unsigned long |
| #define | ALLOC_COUNT_TYPE_MAX ULONG_MAX |
| #define | PRINT_ALLOC_COUNT_TYPE "%lu" |
| #define | gc_destruct_everything 0 |
| #define | gc_keep_markers 0 |
| #define | ADD_GC_CALLBACK() do { if(!gc_evaluator_callback) gc_evaluator_callback=add_to_callback(&evaluator_callbacks,(callback_func)do_gc,0,0); }while(0) |
| #define | LOW_GC_ALLOC(OBJ) |
| #define | GC_ALLOC(OBJ) |
| #define | GC_FREE_SIMPLE_BLOCK(PTR) do {} while (0) |
| #define | GC_FREE_BLOCK(PTR) do {} while (0) |
| #define | GC_FREE(PTR) |
| #define | GC_MARKED 0x0001 |
| #define | GC_NOT_REFERENCED 0x0002 |
| #define | GC_CYCLE_CHECKED 0x0004 |
| #define | GC_LIVE 0x0008 |
| #define | GC_LIVE_OBJ 0x0010 |
| #define | GC_LIVE_RECURSE 0x0020 |
| #define | GC_GOT_DEAD_REF 0x0040 |
| #define | GC_FREE_VISITED 0x0080 |
| #define | GC_USER_1 0x0100 |
| #define | GC_USER_2 0x0200 |
| #define | GC_PRETOUCHED 0x4000 |
| #define | GC_MIDDLETOUCHED 0x8000 |
| #define | DMALLOC_TOUCH_MARKER(X, EXPR) (EXPR) |
| #define | gc_check(VP) DMALLOC_TOUCH_MARKER(VP, real_gc_check(debug_malloc_pass(VP))) |
| #define | gc_check_weak(VP) DMALLOC_TOUCH_MARKER(VP, real_gc_check_weak(debug_malloc_pass(VP))) |
| #define | gc_mark_enqueue(FN, DATA) enqueue (&gc_mark_queue, (FN), (DATA)) |
| #define | gc_mark_run_queue() run_queue (&gc_mark_queue) |
| #define | gc_mark_discard_queue() discard_queue (&gc_mark_queue) |
| #define | GC_ENTER(THING, TYPE) do |
| #define | GC_LEAVE while (0) |
| #define | debug_gc_check(X, PLACE) gc_check (X) |
| #define | debug_gc_check_weak(X, PLACE) gc_check_weak (X) |
| #define | debug_gc_check_svalues(S, NUM, PLACE) gc_check_svalues ((S), (NUM)) |
| #define | debug_gc_check_weak_svalues(S, NUM, PLACE) gc_check_weak_svalues ((S), (NUM)) |
| #define | gc_fatal fprintf(stderr, "%s:%d: GC fatal:\n", __FILE__, __LINE__), debug_gc_fatal |
| #define | gc_checked_as_weak(X) do {} while (0) |
| #define | gc_assert_checked_as_weak(X) do {} while (0) |
| #define | gc_assert_checked_as_nonweak(X) do {} while (0) |
| #define | gc_recurse_svalues(S, N) |
| #define | gc_recurse_short_svalue(U, T) |
| #define | gc_recurse_weak_svalues(S, N) |
| #define | gc_recurse_weak_short_svalue(U, T) |
| #define | GC_RECURSE_THING(V, T) |
| #define | gc_recurse_array(V) GC_RECURSE_THING((V), array) |
| #define | gc_recurse_mapping(V) GC_RECURSE_THING((V), mapping) |
| #define | gc_recurse_multiset(V) GC_RECURSE_THING((V), multiset) |
| #define | gc_recurse_object(V) GC_RECURSE_THING((V), object) |
| #define | gc_recurse_program(V) GC_RECURSE_THING((V), program) |
| #define | gc_is_referenced(X) !(get_marker(X)->flags & GC_NOT_REFERENCED) |
| #define | add_gc_callback(X, Y, Z) dmalloc_touch(struct callback *,debug_add_gc_callback((X),(Y),(Z))) |
| #define | gc_add_extra_ref(X) (++*(INT32 *)(X)) |
| #define | gc_free_extra_ref(X) |
| #define | GC_PASS_PREPARE 50 |
| #define | GC_PASS_PRETOUCH 90 |
| #define | GC_PASS_CHECK 100 |
| #define | GC_PASS_MARK 200 |
| #define | GC_PASS_CYCLE 250 |
| #define | GC_PASS_ZAP_WEAK 260 |
| #define | GC_PASS_MIDDLETOUCH 270 |
| #define | GC_PASS_FREE 300 |
| #define | GC_PASS_KILL 400 |
| #define | GC_PASS_DESTRUCT 500 |
| #define | GC_PASS_POSTTOUCH 510 |
| #define | GC_PASS_LOCATE -1 |
| #define | GC_PASS_DISABLED -2 |
| #define | GC_CYCLE_ENTER(X, TYPE, WEAK) |
| #define | GC_CYCLE_ENTER_OBJECT(X, WEAK) |
| #define | GC_CYCLE_LEAVE |
Typedefs |
| typedef void | gc_cycle_check_cb (void *data, int weak) |
Functions |
| | PTR_HASH_ALLOC_FIXED_FILL_PAGES (marker, n/a) |
| callback * | debug_add_gc_callback (callback_func call, void *arg, callback_func free_func) |
| void | dump_gc_info (void) |
| int | attempt_to_identify (void *something, void **inblock) |
| void | describe_location (void *real_memblock, int real_type, void *location, int indent, int depth, int flags) |
| void | debug_gc_fatal (void *a, int flags, const char *fmt,...) |
| void | low_describe_something (void *a, int t, int indent, int depth, int flags, void *inblock) |
| void | describe_something (void *a, int t, int indent, int depth, int flags, void *inblock) |
| PMOD_EXPORT void | describe (void *x) |
| void | debug_describe_svalue (struct svalue *s) |
| void | gc_watch (void *a) |
| void | debug_gc_touch (void *a) |
| PMOD_EXPORT int | real_gc_check (void *a) |
| int | real_gc_check_weak (void *a) |
| void | exit_gc (void) |
| void | locate_references (void *a) |
| void | debug_gc_add_extra_ref (void *a) |
| void | debug_gc_free_extra_ref (void *a) |
| int | debug_gc_is_referenced (void *a) |
| int | gc_mark_external (void *a, const char *place) |
| void | debug_really_free_gc_frame (struct gc_frame *l) |
| int | gc_do_weak_free (void *a) |
| void | gc_delayed_free (void *a, int type) |
| void | debug_gc_mark_enqueue (queue_call call, void *data) |
| int | gc_mark (void *a) |
| PMOD_EXPORT void | gc_cycle_enqueue (gc_cycle_check_cb *checkfn, void *data, int weak) |
| void | gc_cycle_run_queue (void) |
| int | gc_cycle_push (void *x, struct marker *m, int weak) |
| void | do_gc_recurse_svalues (struct svalue *s, int num) |
| void | do_gc_recurse_short_svalue (union anything *u, int type) |
| int | gc_do_free (void *a) |
| size_t | do_gc (void *ignored, int explicit_call) |
| void | f__gc_status (INT32 args) |
| void | cleanup_gc (void) |
Variables |
| int | gc_enabled |
| double | gc_garbage_ratio_low |
| double | gc_time_ratio |
| double | gc_garbage_ratio_high |
| double | gc_average_slowness |
| INT32 | num_objects |
| ALLOC_COUNT_TYPE | num_allocs |
| ALLOC_COUNT_TYPE | alloc_threshold |
| PMOD_EXPORT int | Pike_in_gc |
| int | gc_generation |
| int | gc_trace |
| int | gc_debug |
| cpu_time_t | auto_gc_time |
| callback * | gc_evaluator_callback |
| size_t | gc_ext_weak_refs |
| pike_queue | gc_mark_queue |