- NDK 0.98, now with versionned headers. Too many changes to list, see the TinyKRNL...
[reactos.git] / reactos / ntoskrnl / mm / aspace.c
index 5a97b03..72d0b04 100644 (file)
 #include <ntoskrnl.h>
 #include <internal/debug.h>
 
+#if defined (ALLOC_PRAGMA)
+#pragma alloc_text(INIT, MmInitializeKernelAddressSpace)
+#endif
+
+
 /* GLOBALS ******************************************************************/
 
 STATIC MADDRESS_SPACE KernelAddressSpace;
@@ -20,6 +25,7 @@ STATIC MADDRESS_SPACE KernelAddressSpace;
 /* FUNCTIONS *****************************************************************/
 
 VOID
+NTAPI
 MmLockAddressSpace(PMADDRESS_SPACE AddressSpace)
 {
    /*
@@ -29,10 +35,11 @@ MmLockAddressSpace(PMADDRESS_SPACE AddressSpace)
    {
       return;
    }
-   ExAcquireFastMutex(&AddressSpace->Lock);
+   ExEnterCriticalRegionAndAcquireFastMutexUnsafe(&AddressSpace->Lock);
 }
 
 VOID
+NTAPI
 MmUnlockAddressSpace(PMADDRESS_SPACE AddressSpace)
 {
    /*
@@ -42,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;
@@ -73,7 +87,7 @@ MmInitializeAddressSpace(PEPROCESS Process,
    }
    else
    {
-      AddressSpace->LowestAddress = (PVOID)KERNEL_BASE;
+      AddressSpace->LowestAddress = MmSystemRangeStart;
    }
    AddressSpace->Process = Process;
    if (Process != NULL)
@@ -95,6 +109,7 @@ MmInitializeAddressSpace(PEPROCESS Process,
 }
 
 NTSTATUS
+NTAPI
 MmDestroyAddressSpace(PMADDRESS_SPACE AddressSpace)
 {
    if (AddressSpace->PageTableRefCountTable != NULL)