Author: sir_richard Date: Tue Feb 9 03:14:20 2010 New Revision: 45515
URL: http://svn.reactos.org/svn/reactos?rev=45515&view=rev Log: [NTOS]: Tabula rasa (clean slate) on the old-MM page routines for ARM. Get rid of all of them for now. [NTOS]: Implement MmInitGlobalKernelPageDirectory as the first ARM page function in the new file. That's it for the kernel.
Added: trunk/reactos/ntoskrnl/mm/arm/page.c (with props) Modified: trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild
Added: trunk/reactos/ntoskrnl/mm/arm/page.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/mm/arm/page.c?rev=... ============================================================================== --- trunk/reactos/ntoskrnl/mm/arm/page.c (added) +++ trunk/reactos/ntoskrnl/mm/arm/page.c [iso-8859-1] Tue Feb 9 03:14:20 2010 @@ -1,0 +1,285 @@ +/* + * PROJECT: ReactOS Kernel + * LICENSE: BSD - See COPYING.ARM in the top level directory + * FILE: ntoskrnl/mm/arm/page.c + * PURPOSE: Old-school Page Management + * PROGRAMMERS: ReactOS Portable Systems Group + */ + +/* INCLUDES *******************************************************************/ + +#include <ntoskrnl.h> +#define NDEBUG +#include <debug.h> + +/* GLOBALS ********************************************************************/ + +ULONG MmGlobalKernelPageDirectory[4096]; +//MMPTE MiArmTemplatePte, MiArmTemplatePde; + +/* PRIVATE FUNCTIONS **********************************************************/ + +VOID +NTAPI +MiFlushTlb(IN PMMPTE PointerPte, + IN PVOID Address) +{ + UNIMPLEMENTED; + while (TRUE); +} + +BOOLEAN +NTAPI +MmCreateProcessAddressSpace(IN ULONG MinWs, + IN PEPROCESS Process, + IN PULONG DirectoryTableBase) +{ + UNIMPLEMENTED; + while (TRUE); + return FALSE; +} + +VOID +NTAPI +MmUpdatePageDir(IN PEPROCESS Process, + IN PVOID Address, + IN ULONG Size) +{ + /* Nothing to do */ + return; +} + +NTSTATUS +NTAPI +Mmi386ReleaseMmInfo(IN PEPROCESS Process) +{ + UNIMPLEMENTED; + while (TRUE); + return 0; +} + +NTSTATUS +NTAPI +MmInitializeHandBuiltProcess(IN PEPROCESS Process, + IN PULONG DirectoryTableBase) +{ + UNIMPLEMENTED; + while (TRUE); + return STATUS_SUCCESS; +} + +PULONG +NTAPI +MmGetPageDirectory(VOID) +{ + /* Return the TTB */ + return (PULONG)KeArmTranslationTableRegisterGet().AsUlong; +} + +VOID +NTAPI +MmDisableVirtualMapping(IN PEPROCESS Process, + IN PVOID Address, + OUT PBOOLEAN WasDirty, + OUT PPFN_TYPE Page) +{ + UNIMPLEMENTED; + while (TRUE); +} + +VOID +NTAPI +MmEnableVirtualMapping(IN PEPROCESS Process, + IN PVOID Address) +{ + UNIMPLEMENTED; + while (TRUE); +} + +NTSTATUS +NTAPI +MmCreateVirtualMappingUnsafe(IN PEPROCESS Process, + IN PVOID Address, + IN ULONG Protection, + IN PPFN_TYPE Pages, + IN ULONG PageCount) +{ + UNIMPLEMENTED; + while (TRUE); + return STATUS_SUCCESS; +} + +NTSTATUS +NTAPI +MmCreateVirtualMapping(IN PEPROCESS Process, + IN PVOID Address, + IN ULONG Protection, + IN PPFN_TYPE Pages, + IN ULONG PageCount) +{ + UNIMPLEMENTED; + while (TRUE); + return STATUS_SUCCESS; +} + +VOID +NTAPI +MmRawDeleteVirtualMapping(IN PVOID Address) +{ + UNIMPLEMENTED; + while (TRUE); +} + +VOID +NTAPI +MmDeleteVirtualMapping(IN PEPROCESS Process, + IN PVOID Address, + IN BOOLEAN FreePage, + OUT PBOOLEAN WasDirty, + OUT PPFN_TYPE Page) +{ + UNIMPLEMENTED; + while (TRUE); +} + +VOID +NTAPI +MmDeletePageFileMapping(IN PEPROCESS Process, + IN PVOID Address, + IN SWAPENTRY *SwapEntry) +{ + UNIMPLEMENTED; + while (TRUE); +} + +NTSTATUS +NTAPI +MmCreatePageFileMapping(IN PEPROCESS Process, + IN PVOID Address, + IN SWAPENTRY SwapEntry) +{ + UNIMPLEMENTED; + while (TRUE); + return 0; +} + +PFN_TYPE +NTAPI +MmGetPfnForProcess(IN PEPROCESS Process, + IN PVOID Address) +{ + UNIMPLEMENTED; + while (TRUE); + return 0; +} + +BOOLEAN +NTAPI +MmIsDirtyPage(IN PEPROCESS Process, + IN PVOID Address) +{ + UNIMPLEMENTED; + while (TRUE); + return 0; +} + +VOID +NTAPI +MmSetCleanPage(IN PEPROCESS Process, + IN PVOID Address) +{ + UNIMPLEMENTED; + while (TRUE); +} + +VOID +NTAPI +MmSetDirtyPage(IN PEPROCESS Process, + IN PVOID Address) +{ + UNIMPLEMENTED; + while (TRUE); +} + +BOOLEAN +NTAPI +MmIsPagePresent(IN PEPROCESS Process, + IN PVOID Address) +{ + UNIMPLEMENTED; + while (TRUE); + return FALSE; +} + +BOOLEAN +NTAPI +MmIsPageSwapEntry(IN PEPROCESS Process, + IN PVOID Address) +{ + UNIMPLEMENTED; + while (TRUE); + return FALSE; +} + +ULONG +NTAPI +MmGetPageProtect(IN PEPROCESS Process, + IN PVOID Address) +{ + /* We don't enforce any protection on the pages -- they are all RWX */ + return PAGE_READWRITE; +} + +VOID +NTAPI +MmSetPageProtect(IN PEPROCESS Process, + IN PVOID Address, + IN ULONG Protection) +{ + /* We don't enforce any protection on the pages -- they are all RWX */ + return; +} + +VOID +NTAPI +MmInitGlobalKernelPageDirectory(VOID) +{ + ULONG i; + PULONG CurrentPageDirectory = (PULONG)PDE_BASE; + extern MMPTE HyperTemplatePte; + + /* Setup template */ + HyperTemplatePte.u.Hard.Valid = HyperTemplatePte.u.Hard.Access = 1; + + /* Loop the 2GB of address space which belong to the kernel */ + for (i = MiGetPdeOffset(MmSystemRangeStart); i < 2048; i++) + { + /* Check if we have an entry for this already */ + if ((i != MiGetPdeOffset(PTE_BASE)) && + (i != MiGetPdeOffset(HYPER_SPACE)) && + (!MmGlobalKernelPageDirectory[i]) && + (CurrentPageDirectory[i])) + { + /* We don't, link it in our global page directory */ + MmGlobalKernelPageDirectory[i] = CurrentPageDirectory[i]; + } + } +} + +/* PUBLIC FUNCTIONS ***********************************************************/ + +/* + * @implemented + */ +PHYSICAL_ADDRESS +NTAPI +MmGetPhysicalAddress(IN PVOID Address) +{ + PHYSICAL_ADDRESS PhysicalAddress; + PhysicalAddress.QuadPart = 0; + + UNIMPLEMENTED; + while (TRUE); + + return PhysicalAddress; +}
Propchange: trunk/reactos/ntoskrnl/mm/arm/page.c ------------------------------------------------------------------------------ svn:eol-style = native
Modified: trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ntoskrnl-generic.r... ============================================================================== --- trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/ntoskrnl-generic.rbuild [iso-8859-1] Tue Feb 9 03:14:20 2010 @@ -365,7 +365,7 @@ </if> <if property="ARCH" value="arm"> <directory name="arm"> - <file>stubs.c</file> + <file>page.c</file> </directory> </if> <if property="ARCH" value="powerpc">