| 
									
										
										
										
											2013-05-11 22:05:00 -04:00
										 |  |  | namespace factor { | 
					
						
							| 
									
										
										
										
											2009-05-04 02:46:13 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-08 16:05:55 -04:00
										 |  |  | static const cell image_magic = 0x0f0e0d0c; | 
					
						
							|  |  |  | static const cell image_version = 4; | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-11-18 21:05:23 -05:00
										 |  |  | struct embedded_image_footer { | 
					
						
							| 
									
										
										
										
											2013-05-11 22:05:00 -04:00
										 |  |  |   cell magic; | 
					
						
							|  |  |  |   cell image_offset; | 
					
						
							| 
									
										
										
										
											2011-11-18 21:05:23 -05:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-04 05:50:24 -04:00
										 |  |  | struct image_header { | 
					
						
							| 
									
										
										
										
											2013-05-11 22:05:00 -04:00
										 |  |  |   cell magic; | 
					
						
							|  |  |  |   cell version; | 
					
						
							|  |  |  |   /* base address of data heap when image was saved */ | 
					
						
							|  |  |  |   cell data_relocation_base; | 
					
						
							|  |  |  |   /* size of heap */ | 
					
						
							|  |  |  |   cell data_size; | 
					
						
							|  |  |  |   /* base address of code heap when image was saved */ | 
					
						
							|  |  |  |   cell code_relocation_base; | 
					
						
							|  |  |  |   /* size of code heap */ | 
					
						
							|  |  |  |   cell code_size; | 
					
						
							|  |  |  |   /* tagged pointer to t singleton */ | 
					
						
							|  |  |  |   cell true_object; | 
					
						
							|  |  |  |   /* tagged pointer to bignum 0 */ | 
					
						
							|  |  |  |   cell bignum_zero; | 
					
						
							|  |  |  |   /* tagged pointer to bignum 1 */ | 
					
						
							|  |  |  |   cell bignum_pos_one; | 
					
						
							|  |  |  |   /* tagged pointer to bignum -1 */ | 
					
						
							|  |  |  |   cell bignum_neg_one; | 
					
						
							|  |  |  |   /* Initial user environment */ | 
					
						
							|  |  |  |   cell special_objects[special_object_count]; | 
					
						
							| 
									
										
										
										
											2009-05-02 11:17:05 -04:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-04 05:50:24 -04:00
										 |  |  | struct vm_parameters { | 
					
						
							| 
									
										
										
										
											2013-05-11 22:05:00 -04:00
										 |  |  |   bool embedded_image; | 
					
						
							|  |  |  |   const vm_char* image_path; | 
					
						
							|  |  |  |   const vm_char* executable_path; | 
					
						
							|  |  |  |   cell datastack_size, retainstack_size, callstack_size; | 
					
						
							|  |  |  |   cell young_size, aging_size, tenured_size; | 
					
						
							|  |  |  |   cell code_size; | 
					
						
							|  |  |  |   bool fep; | 
					
						
							|  |  |  |   bool console; | 
					
						
							|  |  |  |   bool signals; | 
					
						
							|  |  |  |   cell max_pic_size; | 
					
						
							|  |  |  |   cell callback_size; | 
					
						
							| 
									
										
										
										
											2009-05-02 11:17:05 -04:00
										 |  |  | }; | 
					
						
							| 
									
										
										
										
											2009-05-02 05:04:19 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-05-04 02:46:13 -04:00
										 |  |  | } |