]> gitweb.factorcode.org Git - factor.git/blob - vm/data_heap.hpp
Merge branch 'new_gc' of git://factorcode.org/git/factor into new_gc
[factor.git] / vm / data_heap.hpp
1 namespace factor
2 {
3
4 struct data_heap {
5         cell start;
6
7         cell young_size;
8         cell aging_size;
9         cell tenured_size;
10
11         segment *seg;
12
13         nursery_space *nursery;
14         aging_space *aging;
15         aging_space *aging_semispace;
16         tenured_space *tenured;
17
18         card *cards;
19         card *cards_end;
20
21         card_deck *decks;
22         card_deck *decks_end;
23         
24         explicit data_heap(cell young_size, cell aging_size, cell tenured_size);
25         ~data_heap();
26         data_heap *grow(cell requested_size);
27         template<typename Generation> void clear_cards(Generation *gen);
28         template<typename Generation> void clear_decks(Generation *gen);
29         void reset_generation(nursery_space *gen);
30         void reset_generation(aging_space *gen);
31         void reset_generation(tenured_space *gen);
32 };
33
34 }