Finish splitting out x86-validate into separate OS versions.
[projects/cmucl/cmucl.git] / src / lisp / x86-validate-openbsd.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_H_
9 #define _X86_VALIDATE_H_
10
11 /*
12  * Also look in compiler/x86/parms.lisp for some of the parameters.
13  *
14  * Address map:
15  *
16  *  OpenBSD:
17  *      0x00000000->0x0E000000  224M C program and memory allocation.
18  *      0x0E000000->0x10000000   32M Foreign segment.
19  *      0x10000000->0x20000000  256M Read-Only Space.
20  *      0x20000000->0x28000000  128M Binding stack growing up.
21  *      0x28000000->0x38000000  256M Static Space.
22  *      0x38000000->0x40000000  128M Control stack growing down.
23  *      0x40000000->0x48000000  128M Reserved for shared libraries.
24  *      0x48000000->0xB0000000 1664M Dynamic Space.
25  *      0xB0000000->0xB1000000   16M Foreign Linkage Table
26  *      0xE0000000->            256M C stack - Alien stack.
27  *
28  */
29
30 #define READ_ONLY_SPACE_START   (0x10000000)
31 #define READ_ONLY_SPACE_SIZE    (0x0ffff000)    /* 256MB - 1 page */
32
33 #define STATIC_SPACE_START      (0x28000000)
34 #define STATIC_SPACE_SIZE       (0x0ffff000)    /* 256MB - 1 page */
35
36 #define BINDING_STACK_START     (0x38000000)
37 #define BINDING_STACK_SIZE      (0x07fff000)    /* 128MB - 1 page */
38
39 #define CONTROL_STACK_START     (0x40000000)
40 #define CONTROL_STACK_SIZE      (0x07fd8000)    /* 128MB - SIGSTKSZ */
41
42 #define SIGNAL_STACK_START      (0x47fd8000)
43 #define SIGNAL_STACK_SIZE       SIGSTKSZ
44
45 #define DYNAMIC_0_SPACE_START   (0x48000000)
46
47 #ifdef GENCGC
48 #define DYNAMIC_SPACE_SIZE      (0x68000000)    /* 1.625GB */
49 #else
50 #define DYNAMIC_SPACE_SIZE      (0x04000000)    /* 64MB */
51 #endif
52
53 #define DEFAULT_DYNAMIC_SPACE_SIZE      (0x20000000)    /* 512MB */
54
55 #endif