namespace factor { struct data_heap { cell start; cell young_size; cell aging_size; cell tenured_size; segment *seg; nursery_space *nursery; aging_space *aging; aging_space *aging_semispace; tenured_space *tenured; card *cards; card *cards_end; card_deck *decks; card_deck *decks_end; explicit data_heap(cell young_size, cell aging_size, cell tenured_size); ~data_heap(); data_heap *grow(cell requested_size); template void clear_cards(Generation *gen); template void clear_decks(Generation *gen); void reset_generation(nursery_space *gen); void reset_generation(aging_space *gen); void reset_generation(tenured_space *gen); bool high_fragmentation_p(); bool low_memory_p(); void mark_all_cards(); }; struct data_heap_room { cell nursery_size; cell nursery_occupied; cell nursery_free; cell aging_size; cell aging_occupied; cell aging_free; cell tenured_size; cell tenured_occupied; cell tenured_total_free; cell tenured_contiguous_free; cell tenured_free_block_count; cell cards; cell decks; cell mark_stack; }; }