/[cmucl]/src/lisp/x86-validate.h
ViewVC logotype

Contents of /src/lisp/x86-validate.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.25 - (show annotations)
Thu Sep 15 18:26:53 2005 UTC (8 years, 7 months ago) by rtoy
Branch: MAIN
CVS Tags: double-double-array-base, double-double-init-sparc-2, double-double-base, snapshot-2006-11, snapshot-2006-10, double-double-init-sparc, snapshot-2006-12, snapshot-2007-01, snapshot-2007-02, release-19d, double-double-init-ppc, release-19c, release-19c-base, double-double-init-%make-sparc, snapshot-2007-03, double-double-array-checkpoint, double-double-reader-checkpoint-1, release-19d-base, double-double-irrat-end, release-19d-pre2, release-19d-pre1, double-double-init-checkpoint-1, double-double-reader-base, double-double-init-x86, snapshot-2005-11, double-double-sparc-checkpoint-1, snapshot-2005-10, snapshot-2005-12, release-19c-pre1, double-double-irrat-start, snapshot-2006-02, snapshot-2006-03, snapshot-2006-01, snapshot-2006-06, snapshot-2006-07, snapshot-2006-04, snapshot-2006-05, snapshot-2006-08, snapshot-2006-09
Branch point for: double-double-reader-branch, double-double-array-branch, release-19d-branch, double-double-branch, release-19c-branch
Changes since 1.24: +34 -34 lines
File MIME type: text/plain
Indent all source files using GNU indent using the config in
.indent.pro.
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 * $Header: /tiger/var/lib/cvsroots/cmucl/src/lisp/x86-validate.h,v 1.25 2005/09/15 18:26:53 rtoy Exp $
7 *
8 */
9
10 #ifndef _X86_VALIDATE_H_
11 #define _X86_VALIDATE_H_
12
13 /*
14 * Address map:
15 *
16 * FreeBSD:
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 Reserved for shared libraries.
21 * 0x28000000->0x38000000 256M Static Space.
22 * 0x38000000->0x40000000 128M Binding stack growing up.
23 * 0x40000000->0x48000000 128M Control stack growing down.
24 * 0x48000000->0xB0000000 1664M Dynamic Space.
25 * 0xB0000000->0xB1000000 Foreign Linkage Table
26 * 0xE0000000-> 256M C stack - Alien stack.
27 *
28 * OpenBSD:
29 * 0x00000000->0x0E000000 224M C program and memory allocation.
30 * 0x0E000000->0x10000000 32M Foreign segment.
31 * 0x10000000->0x20000000 256M Read-Only Space.
32 * 0x20000000->0x28000000 128M Binding stack growing up.
33 * 0x28000000->0x38000000 256M Static Space.
34 * 0x38000000->0x40000000 128M Control stack growing down.
35 * 0x40000000->0x48000000 128M Reserved for shared libraries.
36 * 0x48000000->0xB0000000 1664M Dynamic Space.
37 * 0xB0000000->0xB1000000 16M Foreign Linkage Table
38 * 0xE0000000-> 256M C stack - Alien stack.
39 *
40 * NetBSD:
41 * 0x00000000->0x0E000000 224M C program and memory allocation.
42 * 0x0E000000->0x10000000 32M Foreign segment.
43 * 0x10000000->0x20000000 256M Read-Only Space.
44 * 0x28000000->0x38000000 256M Static Space.
45 * 0x38000000->0x40000000 128M Binding stack growing up.
46 * 0x40000000->0x48000000 128M Control stack growing down.
47 * 0x48800000->0xB0000000 1656M Dynamic Space.
48 * 0xB0000000->0xB1000000 16M Foreign Linkage Table
49 * 0xE0000000-> 256M C stack - Alien stack.
50 *
51 * Linux:
52 * 0x00000000->0x08000000 128M Unused.
53 * 0x08000000->0x10000000 128M C program and memory allocation.
54 * 0x10000000->0x20000000 256M Read-Only Space.
55 * 0x20000000->0x28000000 128M Binding stack growing up.
56 * 0x28000000->0x38000000 256M Static Space.
57 * 0x38000000->0x40000000 128M Control stack growing down.
58 * 0x40000000->0x48000000 128M Reserved for shared libraries.
59 * 0x58000000->0xBE000000 1632M Dynamic Space.
60 * 0xBE000000->0xBF000000 16M Foreign Linkage Table
61 * 0xBFFF0000->0xC0000000 Unknown Linux mapping
62 *
63 * (Note: 0x58000000 allows us to run on a Linux system on an AMD
64 * x86-64. Hence we have a gap of unused memory starting at
65 * 0x48000000.)
66 */
67
68 #ifdef __FreeBSD__
69 #define READ_ONLY_SPACE_START (0x10000000)
70 #define READ_ONLY_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
71
72 #define STATIC_SPACE_START (0x28f00000)
73 #define STATIC_SPACE_SIZE (0x0f0ff000) /* 241MB - 1 page */
74
75 #define BINDING_STACK_START (0x38000000)
76 #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
77
78 #define CONTROL_STACK_START 0x40000000
79 #define CONTROL_STACK_SIZE 0x07fd8000 /* 128MB - SIGSTKSZ */
80 #define SIGNAL_STACK_START 0x47fd8000
81 #define SIGNAL_STACK_SIZE SIGSTKSZ
82
83 #define DYNAMIC_0_SPACE_START (0x48000000)
84 #ifdef GENCGC
85 #define DYNAMIC_SPACE_SIZE (0x40000000) /* May be up to 2GB */
86 #else
87 #define DYNAMIC_SPACE_SIZE (0x04000000) /* 64MB */
88 #endif
89 #define DEFAULT_DYNAMIC_SPACE_SIZE (0x20000000) /* 512MB */
90 #ifdef LINKAGE_TABLE
91 #define FOREIGN_LINKAGE_SPACE_START ((unsigned long) LinkageSpaceStart)
92 #define FOREIGN_LINKAGE_SPACE_SIZE (0x100000) /* 1MB */
93 #endif
94 #endif /* __FreeBSD__ */
95
96
97 #ifdef __OpenBSD__
98 #define READ_ONLY_SPACE_START (0x10000000)
99 #define READ_ONLY_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
100
101 #define STATIC_SPACE_START (0x28000000)
102 #define STATIC_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
103
104 #define BINDING_STACK_START (0x38000000)
105 #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
106
107 #define CONTROL_STACK_START (0x40000000)
108 #define CONTROL_STACK_SIZE (0x07fd8000) /* 128MB - SIGSTKSZ */
109
110 #define SIGNAL_STACK_START (0x47fd8000)
111 #define SIGNAL_STACK_SIZE SIGSTKSZ
112
113 #define DYNAMIC_0_SPACE_START (0x48000000)
114 #ifdef GENCGC
115 #define DYNAMIC_SPACE_SIZE (0x68000000) /* 1.625GB */
116 #else
117 #define DYNAMIC_SPACE_SIZE (0x04000000) /* 64MB */
118 #endif
119 #define DEFAULT_DYNAMIC_SPACE_SIZE (0x20000000) /* 512MB */
120 #endif
121
122 #ifdef __NetBSD__
123 #define READ_ONLY_SPACE_START (0x10000000)
124 #define READ_ONLY_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
125
126 #define STATIC_SPACE_START (0x28000000)
127 #define STATIC_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
128
129 #define BINDING_STACK_START (0x38000000)
130 #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
131
132 #define CONTROL_STACK_START (0x40000000)
133 #define CONTROL_STACK_SIZE (0x07fd8000) /* 128MB - SIGSTKSZ */
134
135 #define SIGNAL_STACK_START (0x47fd8000)
136 #define SIGNAL_STACK_SIZE SIGSTKSZ
137
138 #define DYNAMIC_0_SPACE_START (0x48800000)
139 #ifdef GENCGC
140 #define DYNAMIC_SPACE_SIZE (0x67800000) /* 1.656GB */
141 #else
142 #define DYNAMIC_SPACE_SIZE (0x04000000) /* 64MB */
143 #endif
144 #define DEFAULT_DYNAMIC_SPACE_SIZE (0x20000000) /* 512MB */
145 #ifdef LINKAGE_TABLE
146 #define FOREIGN_LINKAGE_SPACE_START (0xb0000000)
147 #define FOREIGN_LINKAGE_SPACE_SIZE (0x100000) /* 1MB */
148 #endif
149 #endif
150
151 #ifdef __linux__
152 #define READ_ONLY_SPACE_START (SpaceStart_TargetReadOnly)
153 #define READ_ONLY_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
154
155 #define STATIC_SPACE_START (SpaceStart_TargetStatic)
156 #define STATIC_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
157
158 #define BINDING_STACK_START (0x20000000)
159 #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
160
161 #define CONTROL_STACK_START 0x38000000
162 #define CONTROL_STACK_SIZE (0x07fff000 - 8192)
163 #define SIGNAL_STACK_START CONTROL_STACK_END
164 #define SIGNAL_STACK_SIZE 8192
165
166 #define DYNAMIC_0_SPACE_START (SpaceStart_TargetDynamic)
167
168 #ifdef GENCGC
169 #define DYNAMIC_SPACE_SIZE (0x66000000) /* 1.632GB */
170 #else
171 #define DYNAMIC_SPACE_SIZE (0x04000000) /* 64MB */
172 #endif
173 #define DEFAULT_DYNAMIC_SPACE_SIZE (0x20000000) /* 512MB */
174 #ifdef LINKAGE_TABLE
175 #define FOREIGN_LINKAGE_SPACE_START (LinkageSpaceStart)
176 #define FOREIGN_LINKAGE_SPACE_SIZE (0x100000) /* 1MB */
177 #endif
178 #endif
179
180
181 #define CONTROL_STACK_END (CONTROL_STACK_START + CONTROL_STACK_SIZE)
182
183 /* Note that GENCGC only uses dynamic_space 0. */
184 #define DYNAMIC_1_SPACE_START (DYNAMIC_0_SPACE_START + DYNAMIC_SPACE_SIZE)
185
186 #endif /* _X86_VALIDATE_H_ */

  ViewVC Help
Powered by ViewVC 1.1.5