- NDK 0.98, now with versionned headers. Too many changes to list, see the TinyKRNL...
[reactos.git] / reactos / ntoskrnl / mm / aspace.c
index 28f6238..72d0b04 100644 (file)
@@ -1,5 +1,5 @@
 /* $Id$
- * 
+ *
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS kernel
  * FILE:            ntoskrnl/mm/aspace.c
 #include <ntoskrnl.h>
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitializeKernelAddressSpace)
+#endif
+
+
 /* GLOBALS ******************************************************************/
 
 STATIC MADDRESS_SPACE KernelAddressSpace;
 
-#define TAG_PTRC      TAG('P', 'T', 'R', 'C')
-
 /* FUNCTIONS *****************************************************************/
 
 VOID
+NTAPI
 MmLockAddressSpace(PMADDRESS_SPACE AddressSpace)
 {
    /*
@@ -31,10 +35,11 @@ MmLockAddressSpace(PMADDRESS_SPACE AddressSpace)
    {
       return;
    }
-   ExAcquireFastMutex(&AddressSpace->Lock);
+   ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&AddressSpace->Lock);
 }
 
 VOID
+NTAPI
 MmUnlockAddressSpace(PMADDRESS_SPACE AddressSpace)
 {
    /*
@@ -44,27 +49,34 @@ MmUnlockAddressSpace(PMADDRESS_SPACE AddressSpace)
    {
       return;
    }
-   ExReleaseFastMutex(&AddressSpace->Lock);
+   ExReleaseFastMutexUnsafeAndLeaveCriticalRegion(&AddressSpace->Lock);
 }
 
-VOID INIT_FUNCTION
+VOID
+INIT_FUNCTION
+NTAPI
 MmInitializeKernelAddressSpace(VOID)
 {
    MmInitializeAddressSpace(NULL, &KernelAddressSpace);
 }
 
-PMADDRESS_SPACE MmGetCurrentAddressSpace(VOID)
+PMADDRESS_SPACE
+NTAPI
+MmGetCurrentAddressSpace(VOID)
 {
-   return(&PsGetCurrentProcess()->AddressSpace);
+   return(&((PROS_EPROCESS)PsGetCurrentProcess())->AddressSpace);
 }
 
-PMADDRESS_SPACE MmGetKernelAddressSpace(VOID)
+PMADDRESS_SPACE
+NTAPI
+MmGetKernelAddressSpace(VOID)
 {
    return(&KernelAddressSpace);
 }
 
 NTSTATUS
-MmInitializeAddressSpace(PEPROCESS Process,
+NTAPI
+MmInitializeAddressSpace(PROS_EPROCESS Process,
                          PMADDRESS_SPACE AddressSpace)
 {
    AddressSpace->MemoryAreaRoot = NULL;
@@ -75,7 +87,7 @@ MmInitializeAddressSpace(PEPROCESS Process,
    }
    else
    {
-      AddressSpace->LowestAddress = (PVOID)KERNEL_BASE;
+      AddressSpace->LowestAddress = MmSystemRangeStart;
    }
    AddressSpace->Process = Process;
    if (Process != NULL)
@@ -97,6 +109,7 @@ MmInitializeAddressSpace(PEPROCESS Process,
 }
 
 NTSTATUS
+NTAPI
 MmDestroyAddressSpace(PMADDRESS_SPACE AddressSpace)
 {
    if (AddressSpace->PageTableRefCountTable != NULL)