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