/[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.10 - (show annotations)
Fri Nov 13 04:39:42 1998 UTC (15 years, 5 months ago) by dtc
Branch: MAIN
Changes since 1.9: +5 -4 lines
File MIME type: text/plain
Reworking of the linux address map to support larger heaps,
and bringing it closer to the FreeBSD map. From Raymond Toy.
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.10 1998/11/13 04:39:42 dtc Exp $
7 *
8 */
9
10 /*
11 * Address map:
12 *
13 * FreeBSD:
14 * 0x00000000->0x0E000000 224M C program and memory allocation.
15 * 0x0E000000->0x10000000 32M Foreign segment.
16 * 0x10000000->0x20000000 256M Read-Only Space.
17 * 0x20000000->0x28000000 128M Reserved for shared libraries.
18 * 0x28000000->0x38000000 256M Static Space.
19 * 0x38000000->0x40000000 128M Binding stack growing up.
20 * 0x40000000->0x48000000 128M Control stack growing down.
21 * 0x48000000->0xC8000000 2GB Dynamic Space.
22 * 0xE0000000-> 256M C stack - Alien stack.
23 *
24 * Linux: Note that this map has some problems and requires some further
25 * development so is not implemented below.
26 * 0x00000000->0x08000000 128M Unused.
27 * 0x08000000->0x10000000 128M C program and memory allocation.
28 * 0x10000000->0x20000000 256M Read-Only Space.
29 * 0x20000000->0x28000000 128M Binding stack growing up.
30 * 0x28000000->0x38000000 256M Static Space.
31 * 0x38000000->0x40000000 128M Control stack growing down.
32 * 0x40000000->0x48000000 128M Reserved for shared libraries.
33 * 0x48000000->0xB8000000 1.75G Dynamic Space.
34 *
35 */
36
37 #ifdef __FreeBSD__
38 #define READ_ONLY_SPACE_START (0x10000000)
39 #define READ_ONLY_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
40
41 #define STATIC_SPACE_START (0x28000000)
42 #define STATIC_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
43
44 #define BINDING_STACK_START (0x38000000)
45 #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
46
47 #define CONTROL_STACK_START (0x40000000)
48 #define CONTROL_STACK_SIZE (0x08000000) /* 128MB */
49
50 #define DYNAMIC_0_SPACE_START (0x48000000)
51 #ifdef GENCGC
52 #define DYNAMIC_SPACE_SIZE (0x40000000) /* May be up to 2GB */
53 #else
54 #define DYNAMIC_SPACE_SIZE (0x04000000) /* 64MB */
55 #endif
56 #endif
57
58
59 #ifdef __linux__
60 #define READ_ONLY_SPACE_START (0x01000000)
61 #define READ_ONLY_SPACE_SIZE (0x02800000) /* 40MB */
62
63 #define STATIC_SPACE_START (0x05000000)
64 #define STATIC_SPACE_SIZE (0x02fff000) /* 48MB - 1 page */
65
66 #define BINDING_STACK_START (0x20000000)
67 #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
68
69 #define CONTROL_STACK_START (0x38000000)
70 #define CONTROL_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
71
72 #define DYNAMIC_0_SPACE_START (0x48000000)
73 #ifdef GENCGC
74 #define DYNAMIC_SPACE_SIZE (0x20000000) /* 512MB */
75 #else
76 #define DYNAMIC_SPACE_SIZE (0x04000000) /* 64MB */
77 #endif
78 #endif
79
80
81 #define CONTROL_STACK_END (CONTROL_STACK_START + CONTROL_STACK_SIZE)
82
83 /* Note that GENCGC only uses dynamic_space 0. */
84 #define DYNAMIC_1_SPACE_START (DYNAMIC_0_SPACE_START + DYNAMIC_SPACE_SIZE)

  ViewVC Help
Powered by ViewVC 1.1.5