Split x86-validate into separate files.
[projects/cmucl/cmucl.git] / src / lisp / x86-validate-solaris.h
1 /*
2  *
3  * This code was written as part of the CMU Common Lisp project at
4  * Carnegie Mellon University, and has been placed in the public domain.
5  *
6  */
7
8 #ifndef _X86_VALIDATE_SOLARIS_H_
9 #define _X86_VALIDATE_SOLARIS_H_
10
11 /*
12  * Also look in compiler/x86/parms.lisp for some of the parameters.
13  *
14  * The memory map for Solaris/x86 looks roughly like
15  *
16  *      0x08045000->0x08050000   C stack?
17  *      0x08050000->             Code + C heap
18  *      0x10000000->0x20000000   256 MB read-only space
19  *      0x20000000->0x28000000   128M Binding stack growing up.
20  *      0x28000000->0x30000000   256M Static Space.
21  *      0x30000000->0x31000000   16M Foreign linkage table
22  *      0x38000000->0x40000000   128M Control stack growing down.
23  *      0x40000000->0xD0000000   2304M Dynamic Space.
24  *
25  * Starting at 0xd0ce0000 there is some mapped anon memory.  libc
26  * seems to start at 0xd0d40000 and other places.  Looks like memory
27  * above 0xd0ffe000 or so is not mapped.
28  */
29
30 #define READ_ONLY_SPACE_START   (SpaceStart_TargetReadOnly)
31 #define READ_ONLY_SPACE_SIZE    (0x0ffff000)    /* 256MB - 1 page */
32
33 #define STATIC_SPACE_START      (SpaceStart_TargetStatic)
34 #define STATIC_SPACE_SIZE       (0x0ffff000)    /* 256MB - 1 page */
35
36 #define BINDING_STACK_START     (0x20000000)
37 #define BINDING_STACK_SIZE      (0x07fff000)    /* 128MB - 1 page */
38
39 #define CONTROL_STACK_START     0x38000000
40 #define CONTROL_STACK_SIZE      (0x07fff000 - 8192)
41 #define SIGNAL_STACK_START      CONTROL_STACK_END
42 #define SIGNAL_STACK_SIZE       SIGSTKSZ
43
44 #define DYNAMIC_0_SPACE_START   (SpaceStart_TargetDynamic)
45
46 #ifdef GENCGC
47 #define DYNAMIC_SPACE_SIZE      (0x90000000)    /* 2.304GB */
48 #else
49 #define DYNAMIC_SPACE_SIZE      (0x04000000)    /* 64MB */
50 #endif
51
52 #define DEFAULT_DYNAMIC_SPACE_SIZE      (0x20000000)    /* 512MB */
53
54 #ifdef LINKAGE_TABLE
55 #define FOREIGN_LINKAGE_SPACE_START (LinkageSpaceStart)
56 #define FOREIGN_LINKAGE_SPACE_SIZE (0x100000)   /* 1MB */
57 #endif
58
59 #endif
60