Kernel base address and system space start can be distinct addresses, so
use KERNEL_BASE and MmSystemRangeStart accordingly in the code.
Modified: trunk/reactos/ntoskrnl/include/internal/i386/mm.h
Modified: trunk/reactos/ntoskrnl/include/internal/ke.h
Modified: trunk/reactos/ntoskrnl/ke/i386/exp.c
Modified: trunk/reactos/ntoskrnl/ke/main.c
Modified: trunk/reactos/ntoskrnl/mm/aspace.c
Modified: trunk/reactos/ntoskrnl/mm/i386/page.c
Modified: trunk/reactos/ntoskrnl/mm/i386/pfault.c
Modified: trunk/reactos/ntoskrnl/mm/marea.c
Modified: trunk/reactos/ntoskrnl/mm/mdl.c
Modified: trunk/reactos/ntoskrnl/mm/mm.c
Modified: trunk/reactos/ntoskrnl/mm/rmap.c
Modified: trunk/reactos/ntoskrnl/mm/virtual.c
_____
Modified: trunk/reactos/ntoskrnl/include/internal/i386/mm.h
--- trunk/reactos/ntoskrnl/include/internal/i386/mm.h 2005-07-06
07:54:04 UTC (rev 16446)
+++ trunk/reactos/ntoskrnl/include/internal/i386/mm.h 2005-07-06
08:20:26 UTC (rev 16447)
@@ -22,8 +22,6 @@
#define PA_SYSTEM (0)
#endif
-#define KERNEL_BASE (ULONG)MmSystemRangeStart
-
#if defined(__GNUC__)
#define FLUSH_TLB { \
_____
Modified: trunk/reactos/ntoskrnl/include/internal/ke.h
--- trunk/reactos/ntoskrnl/include/internal/ke.h 2005-07-06
07:54:04 UTC (rev 16446)
+++ trunk/reactos/ntoskrnl/include/internal/ke.h 2005-07-06
08:20:26 UTC (rev 16447)
@@ -308,6 +308,8 @@
/* INITIALIZATION FUNCTIONS
*************************************************/
+extern ULONG_PTR KERNEL_BASE;
+
VOID KeInitExceptions(VOID);
VOID KeInitInterrupts(VOID);
VOID KeInitTimer(VOID);
_____
Modified: trunk/reactos/ntoskrnl/ke/i386/exp.c
--- trunk/reactos/ntoskrnl/ke/i386/exp.c 2005-07-06 07:54:04 UTC
(rev 16446)
+++ trunk/reactos/ntoskrnl/ke/i386/exp.c 2005-07-06 08:20:26 UTC
(rev 16447)
@@ -135,7 +135,7 @@
current_entry = current_entry->Flink;
}
- address = (PVOID)((ULONG_PTR)address & ~KERNEL_BASE);
+ address = (PVOID)((ULONG_PTR)address &
~(ULONG_PTR)MmSystemRangeStart);
} while(++i <= 1);
return(FALSE);
_____
Modified: trunk/reactos/ntoskrnl/ke/main.c
--- trunk/reactos/ntoskrnl/ke/main.c 2005-07-06 07:54:04 UTC (rev
16446)
+++ trunk/reactos/ntoskrnl/ke/main.c 2005-07-06 08:20:26 UTC (rev
16447)
@@ -22,18 +22,6 @@
ULONG NtMajorVersion = 5;
ULONG NtMinorVersion = 0;
ULONG NtOSCSDVersion = BUILD_OSCSDVERSION(6, 0);
-#ifdef __GNUC__
-ULONG EXPORTED NtBuildNumber = KERNEL_VERSION_BUILD;
-ULONG EXPORTED NtGlobalFlag = 0;
-CHAR EXPORTED KeNumberProcessors;
-KAFFINITY EXPORTED KeActiveProcessors;
-LOADER_PARAMETER_BLOCK EXPORTED KeLoaderBlock;
-ULONG EXPORTED KeDcacheFlushCount = 0;
-ULONG EXPORTED KeIcacheFlushCount = 0;
-ULONG EXPORTED KiDmaIoCoherency = 0; /* RISC Architectures only */
-ULONG EXPORTED InitSafeBootMode = 0; /* KB83764 */
-#else
-/* Microsoft-style declarations */
EXPORTED ULONG NtBuildNumber = KERNEL_VERSION_BUILD;
EXPORTED ULONG NtGlobalFlag = 0;
EXPORTED CHAR KeNumberProcessors;
@@ -43,7 +31,6 @@
EXPORTED ULONG KeIcacheFlushCount = 0;
EXPORTED ULONG KiDmaIoCoherency = 0; /* RISC Architectures only */
EXPORTED ULONG InitSafeBootMode = 0; /* KB83764 */
-#endif /* __GNUC__ */
LOADER_MODULE KeLoaderModules[64];
static CHAR KeLoaderModuleStrings[64][256];
@@ -69,6 +56,9 @@
/* Cached modules from the loader block */
PLOADER_MODULE CachedModules[MaximumCachedModuleType];
+extern unsigned int _image_base__;
+ULONG_PTR KERNEL_BASE = (ULONG_PTR)&_image_base__;
+
/* FUNCTIONS
****************************************************************/
/*
_____
Modified: trunk/reactos/ntoskrnl/mm/aspace.c
--- trunk/reactos/ntoskrnl/mm/aspace.c 2005-07-06 07:54:04 UTC (rev
16446)
+++ trunk/reactos/ntoskrnl/mm/aspace.c 2005-07-06 08:20:26 UTC (rev
16447)
@@ -73,7 +73,7 @@
}
else
{
- AddressSpace->LowestAddress = (PVOID)KERNEL_BASE;
+ AddressSpace->LowestAddress = MmSystemRangeStart;
}
AddressSpace->Process = Process;
if (Process != NULL)
_____
Modified: trunk/reactos/ntoskrnl/mm/i386/page.c
--- trunk/reactos/ntoskrnl/mm/i386/page.c 2005-07-06 07:54:04 UTC
(rev 16446)
+++ trunk/reactos/ntoskrnl/mm/i386/page.c 2005-07-06 08:20:26 UTC
(rev 16447)
@@ -105,7 +105,7 @@
MiFlushTlbIpiRoutine(Address);
}
#else
- if ((Pt && MmUnmapPageTable(Pt)) || Address >= (PVOID)KERNEL_BASE)
+ if ((Pt && MmUnmapPageTable(Pt)) || Address >= MmSystemRangeStart)
{
FLUSH_TLB_ONE(Address);
}
@@ -226,7 +226,7 @@
for (i = 0; i < 4; i++)
{
PageDir =
(PULONGLONG)MmCreateHyperspaceMapping(PAE_PTE_TO_PFN(PageDirTable[i]));
- if (i < PAE_ADDR_TO_PDTE_OFFSET(KERNEL_BASE))
+ if (i < PAE_ADDR_TO_PDTE_OFFSET(MmSystemRangeStart))
{
for (j = 0; j < 512; j++)
{
@@ -274,7 +274,7 @@
PULONG Pde;
PULONG PageDir;
PageDir =
MmCreateHyperspaceMapping(PTE_TO_PFN(Process->Pcb.DirectoryTableBase.u.L
owPart));
- for (i = 0; i < ADDR_TO_PDE_OFFSET(KERNEL_BASE); i++)
+ for (i = 0; i < ADDR_TO_PDE_OFFSET(MmSystemRangeStart); i++)
{
if (PageDir[i] != 0)
{
@@ -358,7 +358,7 @@
PageDirTable[i] = PAE_PFN_TO_PTE(Pfn[1+i]) | PA_PRESENT;
}
MmDeleteHyperspaceMapping(PageDirTable);
- for (i = PAE_ADDR_TO_PDTE_OFFSET(KERNEL_BASE); i < 4; i++)
+ for (i = PAE_ADDR_TO_PDTE_OFFSET(MmSystemRangeStart); i < 4; i++)
{
PageDir = (PULONGLONG)MmCreateHyperspaceMapping(Pfn[i+1]);
memcpy(PageDir, &MmGlobalKernelPageDirectoryForPAE[i * 512],
512 * sizeof(ULONGLONG));
@@ -382,9 +382,9 @@
PULONG PageDirectory;
PageDirectory = MmCreateHyperspaceMapping(Pfn[0]);
- memcpy(PageDirectory + ADDR_TO_PDE_OFFSET(KERNEL_BASE),
- MmGlobalKernelPageDirectory +
ADDR_TO_PDE_OFFSET(KERNEL_BASE),
- (1024 - ADDR_TO_PDE_OFFSET(KERNEL_BASE)) * sizeof(ULONG));
+ memcpy(PageDirectory + ADDR_TO_PDE_OFFSET(MmSystemRangeStart),
+ MmGlobalKernelPageDirectory +
ADDR_TO_PDE_OFFSET(MmSystemRangeStart),
+ (1024 - ADDR_TO_PDE_OFFSET(MmSystemRangeStart)) *
sizeof(ULONG));
DPRINT("Addr %x\n",ADDR_TO_PDE_OFFSET(PAGETABLE_MAP));
PageDirectory[ADDR_TO_PDE_OFFSET(PAGETABLE_MAP)] =
PFN_TO_PTE(Pfn[0]) | PA_PRESENT | PA_READWRITE;
@@ -416,7 +416,7 @@
{
*(ADDR_TO_PDE(Address)) = 0;
}
- if (Address >= (PVOID)KERNEL_BASE)
+ if (Address >= MmSystemRangeStart)
{
KEBUGCHECK(0);
// MmGlobalKernelPageDirectory[ADDR_TO_PDE_OFFSET(Address)]
= 0;
@@ -474,7 +474,7 @@
}
MiFlushTlb(NULL, Address);
- if (Address >= (PVOID)KERNEL_BASE)
+ if (Address >= MmSystemRangeStart)
{
// MmGlobalKernelPageDirectory[ADDR_TO_PDE_OFFSET(Address)] =
0;
KEBUGCHECK(0);
@@ -506,7 +506,7 @@
{
KEBUGCHECK(0);
}
- if (Address < (PVOID)KERNEL_BASE && Process && Process !=
PsGetCurrentProcess())
+ if (Address < MmSystemRangeStart && Process && Process !=
PsGetCurrentProcess())
{
PageDirTable =
MmCreateHyperspaceMapping(PAE_PTE_TO_PFN(Process->Pcb.DirectoryTableBase
.QuadPart));
if (PageDirTable == NULL)
@@ -556,7 +556,7 @@
PageDir = PAE_ADDR_TO_PDE(Address);
if (0LL == ExfInterlockedCompareExchange64UL(PageDir, &ZeroEntry,
&ZeroEntry))
{
- if (Address >= (PVOID)KERNEL_BASE)
+ if (Address >= MmSystemRangeStart)
{
if
(MmGlobalKernelPageDirectoryForPAE[PAE_ADDR_TO_PDE_OFFSET(Address)] ==
0LL)
{
@@ -612,7 +612,7 @@
ULONG Entry;
PULONG Pt, PageDir;
- if (Address < (PVOID)KERNEL_BASE && Process && Process !=
PsGetCurrentProcess())
+ if (Address < MmSystemRangeStart && Process && Process !=
PsGetCurrentProcess())
{
PageDir =
MmCreateHyperspaceMapping(PTE_TO_PFN(Process->Pcb.DirectoryTableBase.Qua
dPart));
if (PageDir == NULL)
@@ -653,7 +653,7 @@
PageDir = ADDR_TO_PDE(Address);
if (0 == InterlockedCompareExchangeUL(PageDir, 0, 0))
{
- if (Address >= (PVOID)KERNEL_BASE)
+ if (Address >= MmSystemRangeStart)
{
if (0 ==
InterlockedCompareExchangeUL(&MmGlobalKernelPageDirectory[PdeOffset], 0,
0))
{
@@ -1024,7 +1024,7 @@
*/
if (Process != NULL && WasValid &&
Process->AddressSpace.PageTableRefCountTable != NULL &&
- Address < (PVOID)KERNEL_BASE)
+ Address < MmSystemRangeStart)
{
PUSHORT Ptrc;
ULONG Idx;
@@ -1072,7 +1072,7 @@
*/
if (Process != NULL && Pte &&
Process->AddressSpace.PageTableRefCountTable != NULL &&
- Address < (PVOID)KERNEL_BASE)
+ Address < MmSystemRangeStart)
{
PUSHORT Ptrc;
@@ -1116,7 +1116,7 @@
*/
if (Process != NULL && Pte &&
Process->AddressSpace.PageTableRefCountTable != NULL &&
- Address < (PVOID)KERNEL_BASE)
+ Address < MmSystemRangeStart)
{
PUSHORT Ptrc;
@@ -1193,7 +1193,7 @@
BOOLEAN
MmIsAccessedAndResetAccessPage(PEPROCESS Process, PVOID Address)
{
- if (Address < (PVOID)KERNEL_BASE && Process == NULL)
+ if (Address < MmSystemRangeStart && Process == NULL)
{
DPRINT1("MmIsAccessedAndResetAccessPage is called for user space
without a process.\n");
KEBUGCHECK(0);
@@ -1258,7 +1258,7 @@
VOID MmSetCleanPage(PEPROCESS Process, PVOID Address)
{
- if (Address < (PVOID)KERNEL_BASE && Process == NULL)
+ if (Address < MmSystemRangeStart && Process == NULL)
{
DPRINT1("MmSetCleanPage is called for user space without a
process.\n");
KEBUGCHECK(0);
@@ -1321,7 +1321,7 @@
VOID MmSetDirtyPage(PEPROCESS Process, PVOID Address)
{
- if (Address < (PVOID)KERNEL_BASE && Process == NULL)
+ if (Address < MmSystemRangeStart && Process == NULL)
{
DPRINT1("MmSetDirtyPage is called for user space without a
process.\n");
KEBUGCHECK(0);
@@ -1475,7 +1475,7 @@
DPRINT("MmCreateVirtualMappingForKernel(%x, %x, %x, %d)\n",
Address, flProtect, Pages, PageCount);
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
DPRINT1("MmCreateVirtualMappingForKernel is called for user
space\n");
KEBUGCHECK(0);
@@ -1592,12 +1592,12 @@
PVOID Address,
SWAPENTRY SwapEntry)
{
- if (Process == NULL && Address < (PVOID)KERNEL_BASE)
+ if (Process == NULL && Address < MmSystemRangeStart)
{
DPRINT1("No process\n");
KEBUGCHECK(0);
}
- if (Process != NULL && Address >= (PVOID)KERNEL_BASE)
+ if (Process != NULL && Address >= MmSystemRangeStart)
{
DPRINT1("Setting kernel address with process context\n");
KEBUGCHECK(0);
@@ -1661,7 +1661,7 @@
}
if (Process != NULL &&
Process->AddressSpace.PageTableRefCountTable != NULL &&
- Address < (PVOID)KERNEL_BASE)
+ Address < MmSystemRangeStart)
{
PUSHORT Ptrc;
ULONG Idx;
@@ -1692,7 +1692,7 @@
if (Process == NULL)
{
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
DPRINT1("No process\n");
KEBUGCHECK(0);
@@ -1706,13 +1706,14 @@
}
else
{
- if (Address >= (PVOID)KERNEL_BASE)
+ if (Address >= MmSystemRangeStart)
{
DPRINT1("Setting kernel address with process context\n");
KEBUGCHECK(0);
}
- if (PageCount > KERNEL_BASE / PAGE_SIZE ||
- (ULONG_PTR) Address / PAGE_SIZE + PageCount > KERNEL_BASE /
PAGE_SIZE)
+ if (PageCount > (ULONG_PTR)MmSystemRangeStart / PAGE_SIZE ||
+ (ULONG_PTR) Address / PAGE_SIZE + PageCount >
+ (ULONG_PTR)MmSystemRangeStart / PAGE_SIZE)
{
DPRINT1("Page Count to large\n");
KEBUGCHECK(0);
@@ -1725,7 +1726,7 @@
NoExecute = TRUE;
}
Attributes &= 0xfff;
- if (Address >= (PVOID)KERNEL_BASE)
+ if (Address >= MmSystemRangeStart)
{
Attributes &= ~PA_USER;
if (Ke386GlobalPagesEnabled)
@@ -1786,7 +1787,7 @@
{
MmMarkPageUnmapped(PAE_PTE_TO_PFN((Pte)));
}
- if (Address < (PVOID)KERNEL_BASE &&
+ if (Address < MmSystemRangeStart &&
Process->AddressSpace.PageTableRefCountTable != NULL &&
Attributes & PA_PRESENT)
{
@@ -1798,7 +1799,7 @@
}
if (Pte != 0LL)
{
- if (Address > (PVOID)KERNEL_BASE ||
+ if (Address > MmSystemRangeStart ||
(Pt >= (PULONGLONG)PAGETABLE_MAP && Pt <
(PULONGLONG)PAGETABLE_MAP + 4*512*512))
{
MiFlushTlb((PULONG)Pt, Address);
@@ -1851,7 +1852,7 @@
MmMarkPageUnmapped(PTE_TO_PFN((Pte)));
}
InterlockedExchangeUL(Pt, PFN_TO_PTE(Pages[i]) | Attributes);
- if (Address < (PVOID)KERNEL_BASE &&
+ if (Address < MmSystemRangeStart &&
Process->AddressSpace.PageTableRefCountTable != NULL &&
Attributes & PA_PRESENT)
{
@@ -1863,7 +1864,7 @@
}
if (Pte != 0)
{
- if (Address > (PVOID)KERNEL_BASE ||
+ if (Address > MmSystemRangeStart ||
(Pt >= (PULONG)PAGETABLE_MAP && Pt <
(PULONG)PAGETABLE_MAP + 1024*1024))
{
MiFlushTlb(Pt, Address);
@@ -1963,7 +1964,7 @@
NoExecute = TRUE;
}
Attributes &= 0xfff;
- if (Address >= (PVOID)KERNEL_BASE)
+ if (Address >= MmSystemRangeStart)
{
Attributes &= ~PA_USER;
if (Ke386GlobalPagesEnabled)
@@ -2233,7 +2234,7 @@
{
ULONG StartOffset, EndOffset, Offset;
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
KEBUGCHECK(0);
}
@@ -2322,7 +2323,7 @@
if (Ke386Pae)
{
PULONGLONG CurrentPageDirectory =
(PULONGLONG)PAE_PAGEDIRECTORY_MAP;
- for (i = PAE_ADDR_TO_PDE_OFFSET(KERNEL_BASE); i < 4 * 512; i++)
+ for (i = PAE_ADDR_TO_PDE_OFFSET(MmSystemRangeStart); i < 4 * 512;
i++)
{
if (!(i >= PAE_ADDR_TO_PDE_OFFSET(PAGETABLE_MAP) && i <
PAE_ADDR_TO_PDE_OFFSET(PAGETABLE_MAP) + 4) &&
!(i >= PAE_ADDR_TO_PDE_OFFSET(HYPERSPACE) && i <
PAE_ADDR_TO_PDE_OFFSET(HYPERSPACE) + 2) &&
@@ -2340,7 +2341,7 @@
else
{
PULONG CurrentPageDirectory = (PULONG)PAGEDIRECTORY_MAP;
- for (i = ADDR_TO_PDE_OFFSET(KERNEL_BASE); i < 1024; i++)
+ for (i = ADDR_TO_PDE_OFFSET(MmSystemRangeStart); i < 1024; i++)
{
if (i != ADDR_TO_PDE_OFFSET(PAGETABLE_MAP) &&
i != ADDR_TO_PDE_OFFSET(HYPERSPACE) &&
@@ -2360,7 +2361,7 @@
ULONG
MiGetUserPageDirectoryCount(VOID)
{
- return Ke386Pae ? PAE_ADDR_TO_PDE_OFFSET(KERNEL_BASE) :
ADDR_TO_PDE_OFFSET(KERNEL_BASE);
+ return Ke386Pae ? PAE_ADDR_TO_PDE_OFFSET(MmSystemRangeStart) :
ADDR_TO_PDE_OFFSET(MmSystemRangeStart);
}
VOID INIT_FUNCTION
_____
Modified: trunk/reactos/ntoskrnl/mm/i386/pfault.c
--- trunk/reactos/ntoskrnl/mm/i386/pfault.c 2005-07-06 07:54:04 UTC
(rev 16446)
+++ trunk/reactos/ntoskrnl/mm/i386/pfault.c 2005-07-06 08:20:26 UTC
(rev 16447)
@@ -51,7 +51,7 @@
Mode = KernelMode;
}
- if (Mode == KernelMode && Cr2 >= KERNEL_BASE &&
+ if (Mode == KernelMode && Cr2 >= (ULONG_PTR)MmSystemRangeStart &&
Mmi386MakeKernelPageTableGlobal((PVOID)Cr2))
{
return(STATUS_SUCCESS);
_____
Modified: trunk/reactos/ntoskrnl/mm/marea.c
--- trunk/reactos/ntoskrnl/mm/marea.c 2005-07-06 07:54:04 UTC (rev
16446)
+++ trunk/reactos/ntoskrnl/mm/marea.c 2005-07-06 08:20:26 UTC (rev
16447)
@@ -469,8 +469,8 @@
ULONG_PTR Length,
ULONG_PTR Granularity)
{
- PVOID HighestAddress = AddressSpace->LowestAddress <
(PVOID)KERNEL_BASE ?
- (PVOID)(KERNEL_BASE - 1) :
(PVOID)MAXULONG_PTR;
+ PVOID HighestAddress = AddressSpace->LowestAddress <
MmSystemRangeStart ?
+ (PVOID)((ULONG_PTR)MmSystemRangeStart - 1) :
(PVOID)MAXULONG_PTR;
PVOID AlignedAddress;
PMEMORY_AREA Node;
PMEMORY_AREA FirstNode;
@@ -546,8 +546,8 @@
ULONG_PTR Length,
ULONG_PTR Granularity)
{
- PVOID HighestAddress = AddressSpace->LowestAddress <
(PVOID)KERNEL_BASE ?
- (PVOID)(KERNEL_BASE - 1) :
(PVOID)MAXULONG_PTR;
+ PVOID HighestAddress = AddressSpace->LowestAddress <
MmSystemRangeStart ?
+ (PVOID)((ULONG_PTR)MmSystemRangeStart - 1) :
(PVOID)MAXULONG_PTR;
PVOID AlignedAddress;
PMEMORY_AREA Node;
PMEMORY_AREA PreviousNode;
@@ -645,16 +645,16 @@
{
PMEMORY_AREA Node = AddressSpace->MemoryAreaRoot;
PMEMORY_AREA RightNeighbour = NULL;
- PVOID HighestAddress = AddressSpace->LowestAddress <
(PVOID)KERNEL_BASE ?
- (PVOID)(KERNEL_BASE - 1) :
(PVOID)MAXULONG_PTR;
+ PVOID HighestAddress = AddressSpace->LowestAddress <
MmSystemRangeStart ?
+ (PVOID)((ULONG_PTR)MmSystemRangeStart - 1) :
(PVOID)MAXULONG_PTR;
MmVerifyMemoryAreas(AddressSpace);
Address = MM_ROUND_DOWN(Address, PAGE_SIZE);
- if (AddressSpace->LowestAddress < (PVOID)KERNEL_BASE)
+ if (AddressSpace->LowestAddress < MmSystemRangeStart)
{
- if (Address >= (PVOID)KERNEL_BASE)
+ if (Address >= MmSystemRangeStart)
{
return 0;
}
@@ -970,15 +970,15 @@
- (ULONG_PTR) MM_ROUND_DOWN(*BaseAddress,
Granularity));
*BaseAddress = MM_ROUND_DOWN(*BaseAddress, Granularity);
- if (AddressSpace->LowestAddress == (PVOID)KERNEL_BASE &&
+ if (AddressSpace->LowestAddress == MmSystemRangeStart &&
*BaseAddress < (PVOID)KERNEL_BASE)
{
CHECKPOINT;
return STATUS_ACCESS_VIOLATION;
}
- if (AddressSpace->LowestAddress < (PVOID)KERNEL_BASE &&
- (ULONG_PTR)(*BaseAddress) + tmpLength > KERNEL_BASE)
+ if (AddressSpace->LowestAddress < MmSystemRangeStart &&
+ (ULONG_PTR)(*BaseAddress) + tmpLength >
(ULONG_PTR)MmSystemRangeStart)
{
CHECKPOINT;
return STATUS_ACCESS_VIOLATION;
_____
Modified: trunk/reactos/ntoskrnl/mm/mdl.c
--- trunk/reactos/ntoskrnl/mm/mdl.c 2005-07-06 07:54:04 UTC (rev
16446)
+++ trunk/reactos/ntoskrnl/mm/mdl.c 2005-07-06 08:20:26 UTC (rev
16447)
@@ -217,7 +217,7 @@
* so there is no need to free it
*/
if ((Mdl->MdlFlags & MDL_SOURCE_IS_NONPAGED_POOL) &&
- ((ULONG_PTR)BaseAddress >= KERNEL_BASE))
+ (BaseAddress >= MmSystemRangeStart))
{
return;
}
@@ -242,7 +242,7 @@
NULL);
}
- if ((ULONG_PTR)BaseAddress >= KERNEL_BASE)
+ if (BaseAddress >= MmSystemRangeStart)
{
ASSERT(Mdl->MdlFlags & MDL_MAPPED_TO_SYSTEM_VA);
@@ -377,7 +377,7 @@
ASSERT(NrPages <= (Mdl->Size - sizeof(MDL))/sizeof(PFN_TYPE));
- if (Mdl->StartVa >= (PVOID)KERNEL_BASE &&
+ if (Mdl->StartVa >= MmSystemRangeStart &&
MmGetPfnForProcess(NULL, Mdl->StartVa) >= MmPageArraySize)
{
/* phys addr is not phys memory so this must be io memory */
@@ -392,7 +392,7 @@
}
- if (Mdl->StartVa >= (PVOID)KERNEL_BASE)
+ if (Mdl->StartVa >= MmSystemRangeStart)
{
/* FIXME: why isn't AccessMode used? */
Mode = KernelMode;
@@ -556,7 +556,7 @@
* mdl buffer must (at least) be in kernel space, thou this doesn't
* necesarely mean that the buffer in within _nonpaged_ kernel
space...
*/
- ASSERT((ULONG_PTR)Mdl->StartVa >= KERNEL_BASE);
+ ASSERT(Mdl->StartVa >= MmSystemRangeStart);
PageCount = PAGE_ROUND_UP(Mdl->ByteOffset + Mdl->ByteCount) /
PAGE_SIZE;
MdlPages = (PPFN_TYPE)(Mdl + 1);
_____
Modified: trunk/reactos/ntoskrnl/mm/mm.c
--- trunk/reactos/ntoskrnl/mm/mm.c 2005-07-06 07:54:04 UTC (rev
16446)
+++ trunk/reactos/ntoskrnl/mm/mm.c 2005-07-06 08:20:26 UTC (rev
16447)
@@ -35,7 +35,7 @@
if (ExGetPreviousMode() == UserMode)
{
- if ((ULONG_PTR)Dest >= KERNEL_BASE)
+ if (Dest >= MmSystemRangeStart)
{
return(STATUS_ACCESS_VIOLATION);
}
@@ -56,7 +56,7 @@
if (ExGetPreviousMode() == UserMode)
{
- if ((ULONG_PTR)Src >= KERNEL_BASE)
+ if (Src >= MmSystemRangeStart)
{
return(STATUS_ACCESS_VIOLATION);
}
@@ -158,7 +158,7 @@
MEMORY_AREA* MemoryArea;
PMADDRESS_SPACE AddressSpace;
- if ((ULONG_PTR)VirtualAddress >= KERNEL_BASE)
+ if (VirtualAddress >= MmSystemRangeStart)
{
AddressSpace = MmGetKernelAddressSpace();
}
@@ -205,7 +205,7 @@
/*
* Find the memory area for the faulting address
*/
- if (Address >= KERNEL_BASE)
+ if (Address >= (ULONG_PTR)MmSystemRangeStart)
{
/*
* Check permissions
@@ -325,7 +325,7 @@
* after my init patch anyways
*/
CPRINT("No current process\n");
- if (Address < KERNEL_BASE)
+ if (Address < (ULONG_PTR)MmSystemRangeStart)
{
return(STATUS_UNSUCCESSFUL);
}
@@ -334,7 +334,7 @@
/*
* Find the memory area for the faulting address
*/
- if (Address >= KERNEL_BASE)
+ if (Address >= (ULONG_PTR)MmSystemRangeStart)
{
/*
* Check permissions
_____
Modified: trunk/reactos/ntoskrnl/mm/rmap.c
--- trunk/reactos/ntoskrnl/mm/rmap.c 2005-07-06 07:54:04 UTC (rev
16446)
+++ trunk/reactos/ntoskrnl/mm/rmap.c 2005-07-06 08:20:26 UTC (rev
16447)
@@ -74,7 +74,7 @@
{
KEBUGCHECK(0);
}
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
Status = ObReferenceObjectByPointer(Process, PROCESS_ALL_ACCESS,
NULL, KernelMode);
ExReleaseFastMutex(&RmapListLock);
@@ -100,7 +100,7 @@
if (MemoryArea == NULL || MemoryArea->DeleteInProgress)
{
MmUnlockAddressSpace(AddressSpace);
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
ObDereferenceObject(Process);
}
@@ -122,7 +122,7 @@
if (PageOp == NULL)
{
MmUnlockAddressSpace(AddressSpace);
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
ObDereferenceObject(Process);
}
@@ -142,13 +142,13 @@
}
else if ((Type == MEMORY_AREA_VIRTUAL_MEMORY) || (Type ==
MEMORY_AREA_PEB_OR_TEB))
{
- PageOp = MmGetPageOp(MemoryArea, Address < (PVOID)KERNEL_BASE ?
Process->UniqueProcessId : NULL,
+ PageOp = MmGetPageOp(MemoryArea, Address < MmSystemRangeStart ?
Process->UniqueProcessId : NULL,
Address, NULL, 0, MM_PAGEOP_PAGEOUT, TRUE);
if (PageOp == NULL)
{
MmUnlockAddressSpace(AddressSpace);
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
ObDereferenceObject(Process);
}
@@ -170,7 +170,7 @@
{
KEBUGCHECK(0);
}
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
ObDereferenceObject(Process);
}
@@ -204,7 +204,7 @@
KEBUGCHECK(0);
}
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
Status = ObReferenceObjectByPointer(Process, PROCESS_ALL_ACCESS,
NULL, KernelMode);
ExReleaseFastMutex(&RmapListLock);
@@ -225,7 +225,7 @@
if (MemoryArea == NULL || MemoryArea->DeleteInProgress)
{
MmUnlockAddressSpace(AddressSpace);
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
ObDereferenceObject(Process);
}
@@ -245,7 +245,7 @@
if (PageOp == NULL)
{
MmUnlockAddressSpace(AddressSpace);
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
ObDereferenceObject(Process);
}
@@ -265,12 +265,12 @@
}
else if ((Type == MEMORY_AREA_VIRTUAL_MEMORY) || (Type ==
MEMORY_AREA_PEB_OR_TEB))
{
- PageOp = MmGetPageOp(MemoryArea, Address < (PVOID)KERNEL_BASE ?
Process->UniqueProcessId : NULL,
+ PageOp = MmGetPageOp(MemoryArea, Address < MmSystemRangeStart ?
Process->UniqueProcessId : NULL,
Address, NULL, 0, MM_PAGEOP_PAGEOUT, TRUE);
if (PageOp == NULL)
{
MmUnlockAddressSpace(AddressSpace);
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
ObDereferenceObject(Process);
}
@@ -292,7 +292,7 @@
{
KEBUGCHECK(0);
}
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
ObDereferenceObject(Process);
}
_____
Modified: trunk/reactos/ntoskrnl/mm/virtual.c
--- trunk/reactos/ntoskrnl/mm/virtual.c 2005-07-06 07:54:04 UTC (rev
16446)
+++ trunk/reactos/ntoskrnl/mm/virtual.c 2005-07-06 08:20:26 UTC (rev
16447)
@@ -123,7 +123,7 @@
MEMORY_AREA* MemoryArea;
PMADDRESS_SPACE AddressSpace;
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
Status = ObReferenceObjectByHandle(ProcessHandle,
PROCESS_QUERY_INFORMATION,
@@ -248,7 +248,7 @@
}
MmUnlockAddressSpace(AddressSpace);
- if (Address < (PVOID)KERNEL_BASE)
+ if (Address < MmSystemRangeStart)
{
ObDereferenceObject(Process);
}
@@ -286,7 +286,7 @@
PrevMode = ExGetPreviousMode();
- if (Address >= (PVOID)KERNEL_BASE)
+ if (Address >= MmSystemRangeStart)
{
DPRINT1("Invalid parameter\n");
return STATUS_INVALID_PARAMETER;