#ifndef _CORE_H_
#define _CORE_H_
+#include "sbcl.h"
#include "runtime.h"
-#define CORE_PAGESIZE OS_VM_DEFAULT_PAGESIZE
-#define CORE_END 3840
-#define CORE_NDIRECTORY 3861
-#define CORE_VALIDATE 3845
-#define CORE_VERSION 3860
-#define CORE_MACHINE_STATE 3862
-#define CORE_INITIAL_FUNCTION 3863
-
-#define DYNAMIC_SPACE_ID (1)
-#define STATIC_SPACE_ID (2)
-#define READ_ONLY_SPACE_ID (3)
-
struct ndir_entry {
-#ifndef alpha
- long identifier;
- long nwords;
- long data_page;
- long address;
- long page_count;
+#ifndef LISP_FEATURE_ALPHA
+ long identifier;
+ long nwords;
+ long data_page;
+ long address;
+ long page_count;
#else
- u32 identifier;
- u32 nwords;
- u32 data_page;
- u32 address;
- u32 page_count;
+ u32 identifier;
+ u32 nwords;
+ u32 data_page;
+ u32 address;
+ u32 page_count;
#endif
};
-extern lispobj load_core_file(char *file);
+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