]> gitweb.factorcode.org Git - factor.git/blobdiff - vm/image.hpp
xmode.marker: more correct faster update-match-group
[factor.git] / vm / image.hpp
index efc0c828561723ca9c874e3e2c01e676b4b1e3e9..8e5d94a68addcf85e1caf6c55ce4322d31332ad0 100644 (file)
@@ -3,6 +3,8 @@ namespace factor {
 static const cell image_magic = 0x0f0e0d0c;
 static const cell image_version = 4;
 
+const size_t STRERROR_BUFFER_SIZE = 1024;
+
 struct embedded_image_footer {
   cell magic;
   cell image_offset;
@@ -11,23 +13,21 @@ struct embedded_image_footer {
 struct image_header {
   cell magic;
   cell version;
-  /* base address of data heap when image was saved */
+  // base address of data heap when image was saved
   cell data_relocation_base;
-  /* size of heap */
+  // size of heap
   cell data_size;
-  /* base address of code heap when image was saved */
+  // base address of code heap when image was saved
   cell code_relocation_base;
-  /* size of code heap */
+  // 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 reserved_1;
+  cell reserved_2;
+  cell reserved_3;
+  cell reserved_4;
+
+  // Initial user environment
   cell special_objects[special_object_count];
 };
 
@@ -43,6 +43,10 @@ struct vm_parameters {
   bool signals;
   cell max_pic_size;
   cell callback_size;
+
+  vm_parameters();
+  ~vm_parameters();
+  void init_from_args(int argc, vm_char** argv);
 };
 
 }