From 41911adc3d53f412012632354ade4befc020e15a Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Fri, 19 Jan 2007 15:08:05 +0000 Subject: [PATCH] Move LOADER_HIGH_ZONE definition to a header file (thus removing hardcoded value from meminit.c). NT4 boots with both 16Mb and 32Mb loading sizes. Win2003 doesn't fit into 16Mb, so ~32Mb should be used. svn path=/branches/winldr/; revision=25531 --- include/mm.h | 5 +++++ mm/meminit.c | 2 +- windows/wlmemory.c | 5 ----- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/mm.h b/include/mm.h index 818fc9071b9..86914943c77 100644 --- a/include/mm.h +++ b/include/mm.h @@ -46,6 +46,11 @@ typedef struct #define MM_SIZE_TO_PAGES(a) \ ( ((a) >> MM_PAGE_SHIFT) + ((a) & MM_PAGE_MASK ? 1 : 0) ) +// +// This is the zone which is used by the OS loader +// +#define LOADER_HIGH_ZONE ((16*1024*1024) >> MM_PAGE_SHIFT) //16Mb page + #endif // defined __i386__ or _PPC_ typedef struct diff --git a/mm/meminit.c b/mm/meminit.c index a214a62c17e..bbef9f987ea 100644 --- a/mm/meminit.c +++ b/mm/meminit.c @@ -352,7 +352,7 @@ ULONG MmFindAvailablePages(PVOID PageLookupTable, ULONG TotalPageCount, ULONG Pa if (FromEnd) { /* Allocate "high" (from end) pages */ - for (Index=/*LastFreePageHint-1*/(16*1024*1024>>12)-1; Index>0; Index--) + for (Index=/*LastFreePageHint-1*/LOADER_HIGH_ZONE-1; Index>0; Index--) //for (Index=LastFreePageHint-1; Index>0; Index--) { if (RealPageLookupTable[Index].PageAllocated != LoaderFree) diff --git a/windows/wlmemory.c b/windows/wlmemory.c index 9d01386ee97..10179eb3d44 100644 --- a/windows/wlmemory.c +++ b/windows/wlmemory.c @@ -21,11 +21,6 @@ extern ULONG TotalNLSSize; #undef KIP0PCRADDRESS #define KIP0PCRADDRESS 0xffdff000 -// -// This is the zone which is used by the OS loader -// -#define LOADER_HIGH_ZONE ((16*1024*1024) >> MM_PAGE_SHIFT) //16Mb page - #define HYPER_SPACE_ENTRY 0x300 PCHAR MemTypeDesc[] = {