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.
8 #ifndef _X86_VALIDATE_LINUX_H_
9 #define _X86_VALIDATE_LINUX_H_
12 * Also look in compiler/x86/parms.lisp for some of the parameters.
17 * 0x00000000->0x08000000 128M Unused.
18 * 0x08000000->0x10000000 128M C program and memory allocation.
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 * 0x58000000->0x58100000 16M Foreign Linkage Table
25 * 0x58100000->0xBE000000 1631M Dynamic Space.
26 * 0xBFFF0000->0xC0000000 Unknown Linux mapping
28 * (Note: 0x58000000 allows us to run on a Linux system on an AMD
29 * x86-64. Hence we have a gap of unused memory starting at
33 #define READ_ONLY_SPACE_START (SpaceStart_TargetReadOnly)
34 #define READ_ONLY_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
36 #define STATIC_SPACE_START (SpaceStart_TargetStatic)
37 #define STATIC_SPACE_SIZE (0x0ffff000) /* 256MB - 1 page */
39 #define BINDING_STACK_START (0x20000000)
40 #define BINDING_STACK_SIZE (0x07fff000) /* 128MB - 1 page */
42 #define CONTROL_STACK_START 0x38000000
43 #define CONTROL_STACK_SIZE (0x07fff000 - 8192)
45 #define SIGNAL_STACK_START CONTROL_STACK_END
46 #define SIGNAL_STACK_SIZE SIGSTKSZ
48 #define DYNAMIC_0_SPACE_START (SpaceStart_TargetDynamic)
51 #define DYNAMIC_SPACE_SIZE (0x66000000) /* 1.632GB */
53 #define DYNAMIC_SPACE_SIZE (0x04000000) /* 64MB */
56 #define DEFAULT_DYNAMIC_SPACE_SIZE (0x20000000) /* 512MB */
59 #define FOREIGN_LINKAGE_SPACE_START (LinkageSpaceStart)
60 #define FOREIGN_LINKAGE_SPACE_SIZE (0x100000) /* 1MB */