ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

mmsup.c
Go to the documentation of this file.
00001 /*
00002  * PROJECT:         ReactOS Kernel
00003  * LICENSE:         BSD - See COPYING.ARM in the top level directory
00004  * FILE:            ntoskrnl/mm/ARM3/mmsup.c
00005  * PURPOSE:         ARM Memory Manager Support Routines
00006  * PROGRAMMERS:     ReactOS Portable Systems Group
00007  */
00008 
00009 /* INCLUDES *******************************************************************/
00010 
00011 #include <ntoskrnl.h>
00012 #define NDEBUG
00013 #include <debug.h>
00014 
00015 #define MODULE_INVOLVED_IN_ARM3
00016 #include "../ARM3/miarm.h"
00017 
00018 /* PUBLIC FUNCTIONS ***********************************************************/
00019 
00020 /*
00021  * @unimplemented
00022  */
00023 NTSTATUS
00024 NTAPI
00025 MmMapUserAddressesToPage(IN PVOID BaseAddress,
00026                          IN SIZE_T NumberOfBytes,
00027                          IN PVOID PageAddress)
00028 {
00029     UNIMPLEMENTED;
00030     return STATUS_NOT_IMPLEMENTED;
00031 }
00032 
00033 /*
00034  * @unimplemented
00035  */
00036 NTSTATUS
00037 NTAPI
00038 MmAdjustWorkingSetSize(IN SIZE_T WorkingSetMinimumInBytes,
00039                        IN SIZE_T WorkingSetMaximumInBytes,
00040                        IN ULONG SystemCache,
00041                        IN BOOLEAN IncreaseOkay)
00042 {
00043     UNIMPLEMENTED;
00044     return STATUS_NOT_IMPLEMENTED;
00045 }
00046 
00047 /*
00048  * @unimplemented
00049  */
00050 BOOLEAN
00051 NTAPI
00052 MmSetAddressRangeModified(IN PVOID Address,
00053                           IN SIZE_T Length)
00054 {
00055    UNIMPLEMENTED;
00056    return FALSE;
00057 }
00058 
00059 /*
00060  * @implemented
00061  */
00062 BOOLEAN
00063 NTAPI
00064 MmIsAddressValid(IN PVOID VirtualAddress)
00065 {
00066 #if _MI_PAGING_LEVELS >= 4
00067     /* Check if the PXE is valid */
00068     if (MiAddressToPxe(VirtualAddress)->u.Hard.Valid == 0) return FALSE;
00069 #endif
00070 
00071 #if _MI_PAGING_LEVELS >= 3
00072     /* Check if the PPE is valid */
00073     if (MiAddressToPpe(VirtualAddress)->u.Hard.Valid == 0) return FALSE;
00074 #endif
00075 
00076 #if _MI_PAGING_LEVELS >= 2
00077     /* Check if the PDE is valid */
00078     if (MiAddressToPde(VirtualAddress)->u.Hard.Valid == 0) return FALSE;
00079 #endif
00080 
00081     /* Check if the PTE is valid */
00082     if (MiAddressToPte(VirtualAddress)->u.Hard.Valid == 0) return FALSE;
00083 
00084     /* This address is valid now, but it will only stay so if the caller holds
00085      * the PFN lock */
00086     return TRUE;
00087 }
00088 
00089 /*
00090  * @unimplemented
00091  */
00092 BOOLEAN
00093 NTAPI
00094 MmIsNonPagedSystemAddressValid(IN PVOID VirtualAddress)
00095 {
00096     DPRINT1("WARNING: %s returns bogus result\n", __FUNCTION__);
00097     return MmIsAddressValid(VirtualAddress);
00098 }
00099 
00100 /*
00101  * @unimplemented
00102  */
00103 NTSTATUS
00104 NTAPI
00105 MmSetBankedSection(IN HANDLE ProcessHandle,
00106                    IN PVOID VirtualAddress,
00107                    IN ULONG BankLength,
00108                    IN BOOLEAN ReadWriteBank,
00109                    IN PVOID BankRoutine,
00110                    IN PVOID Context)
00111 {
00112     UNIMPLEMENTED;
00113     return STATUS_NOT_IMPLEMENTED;
00114 }
00115 
00116 /*
00117  * @implemented
00118  */
00119 BOOLEAN
00120 NTAPI
00121 MmIsRecursiveIoFault(VOID)
00122 {
00123     PETHREAD Thread = PsGetCurrentThread();
00124 
00125     //
00126     // If any of these is true, this is a recursive fault
00127     //
00128     return ((Thread->DisablePageFaultClustering) | (Thread->ForwardClusterOnly));
00129 }
00130 
00131 /*
00132  * @implemented
00133  */
00134 BOOLEAN
00135 NTAPI
00136 MmIsThisAnNtAsSystem(VOID)
00137 {
00138     /* Return if this is a server system */
00139     return MmProductType & 0xFF;
00140 }
00141 
00142 /*
00143  * @implemented
00144  */
00145 MM_SYSTEMSIZE
00146 NTAPI
00147 MmQuerySystemSize(VOID)
00148 {
00149     /* Return the low, medium or high memory system type */
00150     return MmSystemSize;
00151 }
00152 
00153 /* EOF */

Generated on Sat May 26 2012 04:36:22 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.