Reduce pinned object table size, part 1 of 2.
[sbcl.git] / src / runtime / core.h
blob594026f6cc2cec7a0300c9e3318a4cfa9fd9861c
1 /*
2 * This software is part of the SBCL system. See the README file for
3 * more information.
5 * This software is derived from the CMU CL system, which was
6 * written at Carnegie Mellon University and released into the
7 * public domain. The software is in the public domain and is
8 * provided with absolutely no warranty. See the COPYING and CREDITS
9 * files for more information.
12 #ifndef _CORE_H_
13 #define _CORE_H_
15 #include "sbcl.h"
16 #include "runtime.h"
18 struct ndir_entry {
19 #ifndef LISP_FEATURE_ALPHA
20 sword_t identifier;
21 sword_t nwords;
22 sword_t data_page;
23 sword_t address;
24 sword_t page_count;
25 #else
26 u32 identifier;
27 u32 nwords;
28 u32 data_page;
29 u32 address;
30 u32 page_count;
31 #endif
34 /* Tri-state flag to determine whether we attempt to mark pages
35 * as targets for virtual memory deduplication (ala MADV_MERGEABLE
36 * on Linux).
38 * 1: Yes
39 * 0: No
40 * -1: default, yes for compressed cores, no otherwise.
42 extern int merge_core_pages;
44 extern lispobj load_core_file(char *file, os_vm_offset_t offset);
45 extern os_vm_offset_t search_for_embedded_core(char *file);
47 /* arbitrary string identifying this build, embedded in .core files to
48 * prevent people mismatching a runtime built e.g. with :SB-SHOW
49 * against a .core built without :SB-SHOW (or against various grosser
50 * mismatches, e.g. a .core built with an old version of the code
51 * against a runtime with patches which add new C code) */
52 extern unsigned char build_id[];
54 #endif