Cygwin: (mostly) drop NT4 and Samba < 3.0 support
[newlib-cygwin.git] / winsup / cygwin / local_includes / memory_layout.h
blobf8ec80bb58db64af2b6d3cf691372e2c68f6ea8c
1 /* memory_layout.h: document all addresses crucial to the fixed memory
2 layout of Cygwin processes.
4 This file is part of Cygwin.
6 This software is a copyrighted work licensed under the terms of the
7 Cygwin license. Please consult the file "CYGWIN_LICENSE" for
8 details. */
10 /* This is where Cygwin executables are loaded to, unless dynamicbase is
11 enabled in the PE/COFF header of the executable file. */
12 #define EXECUTABLE_ADDRESS 0x100400000UL
14 /* Fixed address set by the linker. The Cygwin DLL will have this address set
15 in the DOS header. Keep this area free with ASLR, for the case where
16 dynamicbase is accidentally not set in the PE/COFF header of the DLL. */
17 #define CYGWIN_DLL_ADDRESS 0x180040000UL
19 /* Area for Cygwin-specific shared memory regions. */
20 #define SHARED_REGIONS_ADDRESS_LOW 0x1a0000000UL
21 #define SHARED_REGIONS_ADDRESS_HIGH 0x200000000UL
23 /* Rebased DLLs are located in this 16 Gigs arena. Will be kept for
24 backward compatibility. */
25 #define REBASED_DLL_STORAGE_LOW 0x200000000UL
26 #define REBASED_DLL_STORAGE_HIGH 0x400000000UL
28 /* Auto-image-based DLLs are located in this 16 Gigs arena. This is used
29 by the linker to set a default address for DLLs. */
30 #define AUTOBASED_DLL_STORAGE_LOW 0x400000000UL
31 #define AUTOBASED_DLL_STORAGE_HIGH 0x600000000UL
33 /* Storage area for thread stacks. */
34 #define THREAD_STORAGE_LOW 0x600000000UL
35 #define THREAD_STORAGE_HIGH 0x800000000UL
37 /* That's where the cygheap is located. CYGHEAP_STORAGE_INITIAL defines the
38 end of the initially committed heap area. */
39 #define CYGHEAP_STORAGE_LOW 0x800000000UL
40 #define CYGHEAP_STORAGE_INITIAL 0x800300000UL
41 #define CYGHEAP_STORAGE_HIGH 0xa00000000UL
43 /* This is where the user heap starts. There's no defined end address.
44 The user heap pontentially grows into the mmap arena. However,
45 the user heap grows upwards and the mmap arena grows downwards,
46 so there's not much chance to meet unluckily. */
47 #define USERHEAP_START 0xa00000000UL
49 /* The memory region used for memory maps. Mmaps grow downwards.
50 Set the lowest address to leave ~32 Gigs for heap. */
51 #define MMAP_STORAGE_LOW 0x001000000000UL
52 #define MMAP_STORAGE_HIGH 0x700000000000UL
54 /* Default number of pages used as thread stack guard pages. */
55 #define DEFAULT_GUARD_PAGE_COUNT 3