Fix make-array transforms.
[sbcl.git] / src / runtime / core.h
index 385d8a6..594026f 100644 (file)
 #ifndef _CORE_H_
 #define _CORE_H_
 
+#include "sbcl.h"
 #include "runtime.h"
 
 struct ndir_entry {
-#ifndef alpha
-    long identifier;
-    long nwords;
-    long data_page;
-    long address;
-    long page_count;
+#ifndef LISP_FEATURE_ALPHA
+    sword_t identifier;
+    sword_t nwords;
+    sword_t data_page;
+    sword_t address;
+    sword_t page_count;
 #else
     u32 identifier;
     u32 nwords;
@@ -30,6 +31,24 @@ struct ndir_entry {
 #endif
 };
 
-extern lispobj load_core_file(char *file);
+/* Tri-state flag to determine whether we attempt to mark pages
+ * as targets for virtual memory deduplication (ala MADV_MERGEABLE
+ * on Linux).
+ *
+ * 1: Yes
+ * 0: No
+ * -1: default, yes for compressed cores, no otherwise.
+ */
+extern int merge_core_pages;
+
+extern lispobj load_core_file(char *file, os_vm_offset_t offset);
+extern os_vm_offset_t search_for_embedded_core(char *file);
+
+/* arbitrary string identifying this build, embedded in .core files to
+ * prevent people mismatching a runtime built e.g. with :SB-SHOW
+ * against a .core built without :SB-SHOW (or against various grosser
+ * mismatches, e.g. a .core built with an old version of the code
+ * against a runtime with patches which add new C code) */
+extern unsigned char build_id[];
 
 #endif