From 49df152de7cba665e08a807e5cbc3dea846c88fa Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Wed, 26 Oct 2022 22:04:41 +0200 Subject: [PATCH] Cygwin: memory_layout.h: define absolute MMAP_STORAGE_HIGH values here Use the symbolic values in wincap.cc. Signed-off-by: Corinna Vinschen --- winsup/cygwin/local_includes/memory_layout.h | 14 +++++++---- winsup/cygwin/wincap.cc | 25 ++++++++++---------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/winsup/cygwin/local_includes/memory_layout.h b/winsup/cygwin/local_includes/memory_layout.h index 18e7e4d69..83ccf8f65 100644 --- a/winsup/cygwin/local_includes/memory_layout.h +++ b/winsup/cygwin/local_includes/memory_layout.h @@ -52,8 +52,12 @@ details. */ so there's not much chance to meet unluckily. */ #define USERHEAP_START 0xa00000000UL -/* The memory region used for memory maps. - Up to Win 8 only 44 bit address space, 48 bit starting witrh 8.1, so - the max value is variable. */ -#define MMAP_STORAGE_LOW 0x001000000000L /* Leave ~32 Gigs for heap. */ -#define MMAP_STORAGE_HIGH wincap.mmap_storage_high () +/* The memory region used for memory maps. Mmaps grow downwards. + Set the lowest address to leave ~32 Gigs for heap. + + Up to Win 8 we only have a 44 bit address space, 48 bit address space + starting with 8.1, so the max value is a system-specific variable. */ +#define MMAP_STORAGE_LOW 0x001000000000UL +#define __MMAP_STORAGE_HIGH_LEGACY 0x070000000000UL +#define __MMAP_STORAGE_HIGH 0x700000000000UL +#define MMAP_STORAGE_HIGH wincap.mmap_storage_high () diff --git a/winsup/cygwin/wincap.cc b/winsup/cygwin/wincap.cc index 30da7e1e9..7309516bf 100644 --- a/winsup/cygwin/wincap.cc +++ b/winsup/cygwin/wincap.cc @@ -11,6 +11,7 @@ details. */ #include "miscfuncs.h" #include "security.h" #include "ntdll.h" +#include "memory_layout.h" /* CV, 2008-10-23: All wincapc's have to be in the .cygwin_dll_common section, same as wincap itself. Otherwise the capability changes made in @@ -20,7 +21,7 @@ details. */ wincaps wincap_7 __attribute__((section (".cygwin_dll_common"), shared)) = { def_guard_pages:2, - mmap_storage_high:0x070000000000LL, + mmap_storage_high:__MMAP_STORAGE_HIGH_LEGACY, { is_server:false, needs_query_information:true, @@ -51,7 +52,7 @@ wincaps wincap_7 __attribute__((section (".cygwin_dll_common"), shared)) = { wincaps wincap_8 __attribute__((section (".cygwin_dll_common"), shared)) = { def_guard_pages:3, - mmap_storage_high:0x070000000000LL, + mmap_storage_high:__MMAP_STORAGE_HIGH_LEGACY, { is_server:false, needs_query_information:true, @@ -82,7 +83,7 @@ wincaps wincap_8 __attribute__((section (".cygwin_dll_common"), shared)) = { wincaps wincap_8_1 __attribute__((section (".cygwin_dll_common"), shared)) = { def_guard_pages:3, - mmap_storage_high:0x700000000000LL, + mmap_storage_high:__MMAP_STORAGE_HIGH, { is_server:false, needs_query_information:false, @@ -113,7 +114,7 @@ wincaps wincap_8_1 __attribute__((section (".cygwin_dll_common"), shared)) = { wincaps wincap_10_1507 __attribute__((section (".cygwin_dll_common"), shared)) = { def_guard_pages:3, - mmap_storage_high:0x700000000000LL, + mmap_storage_high:__MMAP_STORAGE_HIGH, { is_server:false, needs_query_information:false, @@ -144,7 +145,7 @@ wincaps wincap_10_1507 __attribute__((section (".cygwin_dll_common"), shared)) wincaps wincap_10_1607 __attribute__((section (".cygwin_dll_common"), shared)) = { def_guard_pages:3, - mmap_storage_high:0x700000000000LL, + mmap_storage_high:__MMAP_STORAGE_HIGH, { is_server:false, needs_query_information:false, @@ -175,7 +176,7 @@ wincaps wincap_10_1607 __attribute__((section (".cygwin_dll_common"), shared)) wincaps wincap_10_1703 __attribute__((section (".cygwin_dll_common"), shared)) = { def_guard_pages:3, - mmap_storage_high:0x700000000000LL, + mmap_storage_high:__MMAP_STORAGE_HIGH, { is_server:false, needs_query_information:false, @@ -206,7 +207,7 @@ wincaps wincap_10_1703 __attribute__((section (".cygwin_dll_common"), shared)) = wincaps wincap_10_1709 __attribute__((section (".cygwin_dll_common"), shared)) = { def_guard_pages:3, - mmap_storage_high:0x700000000000LL, + mmap_storage_high:__MMAP_STORAGE_HIGH, { is_server:false, needs_query_information:false, @@ -237,7 +238,7 @@ wincaps wincap_10_1709 __attribute__((section (".cygwin_dll_common"), shared)) = wincaps wincap_10_1803 __attribute__((section (".cygwin_dll_common"), shared)) = { def_guard_pages:3, - mmap_storage_high:0x700000000000LL, + mmap_storage_high:__MMAP_STORAGE_HIGH, { is_server:false, needs_query_information:false, @@ -268,7 +269,7 @@ wincaps wincap_10_1803 __attribute__((section (".cygwin_dll_common"), shared)) = wincaps wincap_10_1809 __attribute__((section (".cygwin_dll_common"), shared)) = { def_guard_pages:3, - mmap_storage_high:0x700000000000LL, + mmap_storage_high:__MMAP_STORAGE_HIGH, { is_server:false, needs_query_information:false, @@ -299,7 +300,7 @@ wincaps wincap_10_1809 __attribute__((section (".cygwin_dll_common"), shared)) = wincaps wincap_10_1903 __attribute__((section (".cygwin_dll_common"), shared)) = { def_guard_pages:3, - mmap_storage_high:0x700000000000LL, + mmap_storage_high:__MMAP_STORAGE_HIGH, { is_server:false, needs_query_information:false, @@ -330,7 +331,7 @@ wincaps wincap_10_1903 __attribute__((section (".cygwin_dll_common"), shared)) = wincaps wincap_10_2004 __attribute__((section (".cygwin_dll_common"), shared)) = { def_guard_pages:3, - mmap_storage_high:0x700000000000LL, + mmap_storage_high:__MMAP_STORAGE_HIGH, { is_server:false, needs_query_information:false, @@ -361,7 +362,7 @@ wincaps wincap_10_2004 __attribute__((section (".cygwin_dll_common"), shared)) = wincaps wincap_11 __attribute__((section (".cygwin_dll_common"), shared)) = { def_guard_pages:3, - mmap_storage_high:0x700000000000LL, + mmap_storage_high:__MMAP_STORAGE_HIGH, { is_server:false, needs_query_information:false,