3 static const cell image_magic = 0x0f0e0d0c;
4 static const cell image_version = 4;
6 const size_t STRERROR_BUFFER_SIZE = 1024;
8 struct embedded_image_footer {
16 // base address of data heap when image was saved
17 cell data_relocation_base;
18 // <>0 : size of data heap, ==0 : version4_escape
19 union { cell data_size; cell version4_escape; };
20 // base address of code heap when image was saved
21 cell code_relocation_base;
25 union { cell reserved_1; cell escaped_data_size; }; // undefined if data_size <>0, stores size of data heap otherwise
26 cell reserved_2; // undefined if data_size <>0, 0 otherwise
27 cell reserved_3; // undefined if data_size <>0, 0 otherwise
28 cell reserved_4; // undefined if data_size <>0, 0 otherwise
30 // Initial user environment
31 cell special_objects[special_object_count];
34 struct vm_parameters {
36 const vm_char* image_path;
37 const vm_char* executable_path;
38 cell datastack_size, retainstack_size, callstack_size;
39 cell young_size, aging_size, tenured_size;
49 void init_from_args(int argc, vm_char** argv);