/* * PROJECT: ReactOS Kernel * LICENSE: BSD - See COPYING.ARM in the top level directory * FILE: ntoskrnl/mm/ARM3/mmsup.c * PURPOSE: ARM Memory Manager Support Routines * PROGRAMMERS: ReactOS Portable Systems Group */ /* INCLUDES *******************************************************************/ #include #define NDEBUG #include #line 15 "ARMĀ³::MMSUP" #define MODULE_INVOLVED_IN_ARM3 #include "../ARM3/miarm.h" /* PUBLIC FUNCTIONS ***********************************************************/ /* * @unimplemented */ NTSTATUS NTAPI MmMapUserAddressesToPage(IN PVOID BaseAddress, IN SIZE_T NumberOfBytes, IN PVOID PageAddress) { UNIMPLEMENTED; return STATUS_NOT_IMPLEMENTED; } /* * @unimplemented */ NTSTATUS NTAPI MmAdjustWorkingSetSize(IN SIZE_T WorkingSetMinimumInBytes, IN SIZE_T WorkingSetMaximumInBytes, IN ULONG SystemCache, IN BOOLEAN IncreaseOkay) { UNIMPLEMENTED; return STATUS_NOT_IMPLEMENTED; } /* * @unimplemented */ BOOLEAN NTAPI MmSetAddressRangeModified(IN PVOID Address, IN SIZE_T Length) { UNIMPLEMENTED; return FALSE; } /* * @implemented */ BOOLEAN NTAPI MmIsAddressValid(IN PVOID VirtualAddress) { #if _MI_PAGING_LEVELS >= 4 /* Check if the PXE is valid */ if (MiAddressToPxe(VirtualAddress)->u.Hard.Valid == 0) return FALSE; #endif #if _MI_PAGING_LEVELS >= 3 /* Check if the PPE is valid */ if (MiAddressToPpe(VirtualAddress)->u.Hard.Valid == 0) return FALSE; #endif #if _MI_PAGING_LEVELS >= 2 /* Check if the PDE is valid */ if (MiAddressToPde(VirtualAddress)->u.Hard.Valid == 0) return FALSE; #endif /* Check if the PTE is valid */ if (MiAddressToPte(VirtualAddress)->u.Hard.Valid == 0) return FALSE; /* This address is valid now, but it will only stay so if the caller holds * the PFN lock */ return TRUE; } /* * @unimplemented */ BOOLEAN NTAPI MmIsNonPagedSystemAddressValid(IN PVOID VirtualAddress) { DPRINT1("WARNING: %s returns bogus result\n", __FUNCTION__); return MmIsAddressValid(VirtualAddress); } /* * @unimplemented */ NTSTATUS NTAPI MmSetBankedSection(IN HANDLE ProcessHandle, IN PVOID VirtualAddress, IN ULONG BankLength, IN BOOLEAN ReadWriteBank, IN PVOID BankRoutine, IN PVOID Context) { UNIMPLEMENTED; return STATUS_NOT_IMPLEMENTED; } /* * @implemented */ BOOLEAN NTAPI MmIsRecursiveIoFault(VOID) { PETHREAD Thread = PsGetCurrentThread(); // // If any of these is true, this is a recursive fault // return ((Thread->DisablePageFaultClustering) | (Thread->ForwardClusterOnly)); } /* * @implemented */ BOOLEAN NTAPI MmIsThisAnNtAsSystem(VOID) { /* Return if this is a server system */ return MmProductType; } /* * @implemented */ MM_SYSTEMSIZE NTAPI MmQuerySystemSize(VOID) { /* Return the low, medium or high memory system type */ return MmSystemSize; } /* EOF */