/[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 - (hide 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 ram 1.1 /*
2 dtc 1.7 *
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 dtc 1.10 * $Header: /tiger/var/lib/cvsroots/cmucl/src/lisp/x86-validate.h,v 1.10 1998/11/13 04:39:42 dtc Exp $
7 dtc 1.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 dtc 1.9 *
24     * Linux: Note that this map has some problems and requires some further
25     * development so is not implemented below.
26 dtc 1.7 * 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 dtc 1.9 #ifdef __FreeBSD__
38 dtc 1.7 #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 dtc 1.9
47 dtc 1.7 #define CONTROL_STACK_START (0x40000000)
48     #define CONTROL_STACK_SIZE (0x08000000) /* 128MB */
49 dtc 1.9
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 dtc 1.7 #endif
56 dtc 1.9 #endif
57    
58 ram 1.1
59 dtc 1.7 #ifdef __linux__
60 dtc 1.9 #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 dtc 1.10 #define BINDING_STACK_START (0x20000000)
67 dtc 1.7 #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
68 dtc 1.9
69 dtc 1.10 #define CONTROL_STACK_START (0x38000000)
70 dtc 1.7 #define CONTROL_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
71 ram 1.1
72 dtc 1.10 #define DYNAMIC_0_SPACE_START (0x48000000)
73 dtc 1.4 #ifdef GENCGC
74 dtc 1.9 #define DYNAMIC_SPACE_SIZE (0x20000000) /* 512MB */
75 dtc 1.3 #else
76 dtc 1.4 #define DYNAMIC_SPACE_SIZE (0x04000000) /* 64MB */
77 dtc 1.3 #endif
78 dtc 1.9 #endif
79 dtc 1.10
80 ram 1.1
81 dtc 1.9 #define CONTROL_STACK_END (CONTROL_STACK_START + CONTROL_STACK_SIZE)
82    
83     /* Note that GENCGC only uses dynamic_space 0. */
84 dtc 1.7 #define DYNAMIC_1_SPACE_START (DYNAMIC_0_SPACE_START + DYNAMIC_SPACE_SIZE)

  ViewVC Help
Powered by ViewVC 1.1.5