| 
									
										
										
										
											2009-05-04 02:46:13 -04:00
										 |  |  | namespace factor | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-04 05:50:24 -04:00
										 |  |  | struct data_heap { | 
					
						
							| 
									
										
										
										
											2009-10-09 12:16:18 -04:00
										 |  |  | 	cell start; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-04 05:50:24 -04:00
										 |  |  | 	cell young_size; | 
					
						
							|  |  |  | 	cell aging_size; | 
					
						
							|  |  |  | 	cell tenured_size; | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-07 12:59:59 -04:00
										 |  |  | 	segment *seg; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-20 23:20:49 -04:00
										 |  |  | 	nursery_space *nursery; | 
					
						
							| 
									
										
										
										
											2009-10-07 16:48:09 -04:00
										 |  |  | 	aging_space *aging; | 
					
						
							|  |  |  | 	aging_space *aging_semispace; | 
					
						
							|  |  |  | 	tenured_space *tenured; | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-09 12:16:18 -04:00
										 |  |  | 	card *cards; | 
					
						
							|  |  |  | 	card *cards_end; | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-09 12:16:18 -04:00
										 |  |  | 	card_deck *decks; | 
					
						
							|  |  |  | 	card_deck *decks_end; | 
					
						
							| 
									
										
										
										
											2009-05-08 16:05:55 -04:00
										 |  |  | 	 | 
					
						
							| 
									
										
										
										
											2009-11-01 04:47:09 -05:00
										 |  |  | 	explicit data_heap(cell young_size, cell aging_size, cell tenured_size); | 
					
						
							| 
									
										
										
										
											2009-09-25 22:17:20 -04:00
										 |  |  | 	~data_heap(); | 
					
						
							| 
									
										
										
										
											2009-10-13 22:16:04 -04:00
										 |  |  | 	data_heap *grow(cell requested_size); | 
					
						
							| 
									
										
										
										
											2009-10-20 14:13:39 -04:00
										 |  |  | 	template<typename Generation> void clear_cards(Generation *gen); | 
					
						
							|  |  |  | 	template<typename Generation> void clear_decks(Generation *gen); | 
					
						
							| 
									
										
										
										
											2009-10-21 20:41:54 -04:00
										 |  |  | 	void reset_generation(nursery_space *gen); | 
					
						
							|  |  |  | 	void reset_generation(aging_space *gen); | 
					
						
							|  |  |  | 	void reset_generation(tenured_space *gen); | 
					
						
							| 
									
										
										
										
											2009-12-05 19:03:53 -05:00
										 |  |  | 	bool high_fragmentation_p(); | 
					
						
							| 
									
										
										
										
											2009-11-03 23:25:22 -05:00
										 |  |  | 	bool low_memory_p(); | 
					
						
							| 
									
										
										
										
											2009-11-05 20:03:51 -05:00
										 |  |  | 	void mark_all_cards(); | 
					
						
							| 
									
										
										
										
											2009-05-02 10:19:09 -04:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-27 04:32:28 -04:00
										 |  |  | 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; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-04 02:46:13 -04:00
										 |  |  | } |