1 /* $Id: aspace.c,v 1.2 2000/04/07 02:24:00 dwelch Exp $
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: ntoskrnl/mm/aspace.c
6 * PURPOSE: Manages address spaces
7 * PROGRAMMER: David Welch (welch@cwcom.net)
12 /* INCLUDES *****************************************************************/
14 #include <ddk/ntddk.h>
15 #include <internal/mm.h>
17 #include <internal/debug.h>
19 /* GLOBALS ******************************************************************/
21 static MADDRESS_SPACE KernelAddressSpace
;
23 /* FUNCTIONS *****************************************************************/
25 VOID
MmLockAddressSpace(PMADDRESS_SPACE AddressSpace
)
27 (VOID
)KeWaitForMutexObject(&AddressSpace
->Lock
,
34 VOID
MmUnlockAddressSpace(PMADDRESS_SPACE AddressSpace
)
36 KeReleaseMutex(&AddressSpace
->Lock
, FALSE
);
39 VOID
MmInitializeKernelAddressSpace(VOID
)
41 MmInitializeAddressSpace(NULL
, &KernelAddressSpace
);
42 KernelAddressSpace
.LowestAddress
= KERNEL_BASE
;
45 PMADDRESS_SPACE
MmGetCurrentAddressSpace(VOID
)
47 return(&PsGetCurrentProcess()->Pcb
.AddressSpace
);
50 PMADDRESS_SPACE
MmGetKernelAddressSpace(VOID
)
52 return(&KernelAddressSpace
);
55 NTSTATUS
MmInitializeAddressSpace(PEPROCESS Process
,
56 PMADDRESS_SPACE AddressSpace
)
58 InitializeListHead(&AddressSpace
->MAreaListHead
);
59 KeInitializeMutex(&AddressSpace
->Lock
, 1);
60 AddressSpace
->LowestAddress
= MM_LOWEST_USER_ADDRESS
;
61 AddressSpace
->Process
= Process
;
62 return(STATUS_SUCCESS
);
65 NTSTATUS
MmDestroyAddressSpace(PMADDRESS_SPACE AddressSpace
)
67 return(STATUS_SUCCESS
);