ReactOS 0.4.16-dev-329-g9223134
|
#include <internal/arch/mm.h>
Go to the source code of this file.
Classes | |
struct | _CACHE_SECTION_PAGE_TABLE |
struct | _MM_REQUIRED_RESOURCES |
Macros | |
#define | MM_SEGMENT_FINALIZE (0x40000000) |
#define | MIN(x, y) (((x)<(y))?(x):(y)) |
#define | MAX(x, y) (((x)>(y))?(x):(y)) |
#define | BALANCER_CAN_EVICT(Consumer) |
#define | SEC_CACHE (0x20000000) |
#define | ENTRIES_PER_ELEMENT 256 |
#define | MiSimpleWrite(F, O, B, L, R) _MiSimpleWrite(F,O,B,L,R,__FILE__,__LINE__) |
#define | MiWriteBackPage(F, O, L, P) _MiWriteBackPage(F,O,L,P,__FILE__,__LINE__) |
#define | MiFlushMappedSection(A, O, S, D) _MiFlushMappedSection(A,O,S,D,__FILE__,__LINE__) |
#define | MiMapViewOfSegment(AddressSpace, Segment, BaseAddress, ViewSize, Protect, ViewOffset, AllocationType) _MiMapViewOfSegment(AddressSpace,Segment,BaseAddress,ViewSize,Protect,ViewOffset,AllocationType,__FILE__,__LINE__) |
#define | MmTryToLockAddressSpace(x) _MmTryToLockAddressSpace(x,__FILE__,__LINE__) |
#define | MiFlushMappedSection(A, O, S, D) _MiFlushMappedSection(A,O,S,D,__FILE__,__LINE__) |
Typedefs | |
typedef struct _CACHE_SECTION_PAGE_TABLE | CACHE_SECTION_PAGE_TABLE |
typedef struct _CACHE_SECTION_PAGE_TABLE * | PCACHE_SECTION_PAGE_TABLE |
typedef NTSTATUS(NTAPI * | AcquireResource) (PMMSUPPORT AddressSpace, struct _MEMORY_AREA *MemoryArea, struct _MM_REQUIRED_RESOURCES *Required) |
typedef NTSTATUS(NTAPI * | NotPresentFaultHandler) (PMMSUPPORT AddressSpace, struct _MEMORY_AREA *MemoryArea, PVOID Address, BOOLEAN Locked, struct _MM_REQUIRED_RESOURCES *Required) |
typedef NTSTATUS(NTAPI * | FaultHandler) (PMMSUPPORT AddressSpace, struct _MEMORY_AREA *MemoryArea, PVOID Address, struct _MM_REQUIRED_RESOURCES *Required) |
typedef struct _MM_REQUIRED_RESOURCES | MM_REQUIRED_RESOURCES |
typedef struct _MM_REQUIRED_RESOURCES * | PMM_REQUIRED_RESOURCES |
typedef VOID(NTAPI * | FREE_SECTION_PAGE_FUN) (PMM_SECTION_SEGMENT Segment, PLARGE_INTEGER Offset) |
#define BALANCER_CAN_EVICT | ( | Consumer | ) |
#define MiMapViewOfSegment | ( | AddressSpace, | |
Segment, | |||
BaseAddress, | |||
ViewSize, | |||
Protect, | |||
ViewOffset, | |||
AllocationType | |||
) | _MiMapViewOfSegment(AddressSpace,Segment,BaseAddress,ViewSize,Protect,ViewOffset,AllocationType,__FILE__,__LINE__) |
#define MmTryToLockAddressSpace | ( | x | ) | _MmTryToLockAddressSpace(x,__FILE__,__LINE__) |
typedef NTSTATUS(NTAPI * AcquireResource) (PMMSUPPORT AddressSpace, struct _MEMORY_AREA *MemoryArea, struct _MM_REQUIRED_RESOURCES *Required) |
typedef NTSTATUS(NTAPI * FaultHandler) (PMMSUPPORT AddressSpace, struct _MEMORY_AREA *MemoryArea, PVOID Address, struct _MM_REQUIRED_RESOURCES *Required) |
typedef VOID(NTAPI * FREE_SECTION_PAGE_FUN) (PMM_SECTION_SEGMENT Segment, PLARGE_INTEGER Offset) |
typedef NTSTATUS(NTAPI * NotPresentFaultHandler) (PMMSUPPORT AddressSpace, struct _MEMORY_AREA *MemoryArea, PVOID Address, BOOLEAN Locked, struct _MM_REQUIRED_RESOURCES *Required) |
_At_ | ( | Required-> | DoAcquisition, |
_Post_notnull_ | |||
) |
NTSTATUS NTAPI _MiFlushMappedSection | ( | PVOID | BaseAddress, |
PLARGE_INTEGER | BaseOffset, | ||
PLARGE_INTEGER | FileSize, | ||
BOOLEAN | Dirty, | ||
const char * | File, | ||
int | Line | ||
) |
NTSTATUS NTAPI _MiMapViewOfSegment | ( | PMMSUPPORT | AddressSpace, |
PMM_SECTION_SEGMENT | Segment, | ||
PVOID * | BaseAddress, | ||
SIZE_T | ViewSize, | ||
ULONG | Protect, | ||
PLARGE_INTEGER | ViewOffset, | ||
ULONG | AllocationType, | ||
const char * | file, | ||
int | line | ||
) |
Referenced by MmMapViewOfSegment().
NTSTATUS NTAPI _MiSimpleWrite | ( | PFILE_OBJECT | FileObject, |
PLARGE_INTEGER | FileOffset, | ||
PVOID | Buffer, | ||
ULONG | Length, | ||
PIO_STATUS_BLOCK | ReadStatus, | ||
const char * | file, | ||
int | line | ||
) |
NTSTATUS NTAPI _MiWriteBackPage | ( | PFILE_OBJECT | FileObject, |
PLARGE_INTEGER | Offset, | ||
ULONG | Length, | ||
PFN_NUMBER | Page, | ||
const char * | File, | ||
int | Line | ||
) |
FORCEINLINE BOOLEAN _MmTryToLockAddressSpace | ( | IN PMMSUPPORT | AddressSpace, |
const char * | file, | ||
int | line | ||
) |
Definition at line 295 of file newmm.h.
_Success_ | ( | 1 | ) | ==STATUS_MORE_PROCESSING_REQUIRED |
ULONG NTAPI MiCacheEvictPages | ( | PMM_SECTION_SEGMENT | Segment, |
ULONG | Target | ||
) |
Definition at line 590 of file swapout.c.
Referenced by MiRosTrimCache().
VOID NTAPI MiFreeSegmentPage | ( | PMM_SECTION_SEGMENT | Segment, |
PLARGE_INTEGER | FileOffset | ||
) |
Definition at line 617 of file data.c.
NTSTATUS NTAPI MiGetOnePage | ( | PMMSUPPORT | AddressSpace, |
PMEMORY_AREA | MemoryArea, | ||
PMM_REQUIRED_RESOURCES | RequiredResources | ||
) |
Definition at line 83 of file reqtools.c.
VOID NTAPI MiInitializeSectionPageTable | ( | PMM_SECTION_SEGMENT | Segment | ) |
Definition at line 165 of file sptab.c.
Referenced by ExeFmtpCreateImageSection(), MmCreateDataFileSection(), and MmCreatePhysicalMemorySection().
NTSTATUS NTAPI MiReadFilePage | ( | PMMSUPPORT | AddressSpace, |
PMEMORY_AREA | MemoryArea, | ||
PMM_REQUIRED_RESOURCES | RequiredResources | ||
) |
Definition at line 133 of file reqtools.c.
Definition at line 633 of file swapout.c.
Referenced by CcShutdownSystem().
NTSTATUS NTAPI MiSimpleRead | ( | PFILE_OBJECT | FileObject, |
PLARGE_INTEGER | FileOffset, | ||
PVOID | Buffer, | ||
ULONG | Length, | ||
BOOLEAN | Paging, | ||
PIO_STATUS_BLOCK | ReadStatus | ||
) |
Definition at line 109 of file io.c.
Referenced by CcZeroData(), and ExeFmtpReadFile().
NTSTATUS NTAPI MiSwapInPage | ( | PMMSUPPORT | AddressSpace, |
PMEMORY_AREA | MemoryArea, | ||
PMM_REQUIRED_RESOURCES | RequiredResources | ||
) |
Definition at line 220 of file reqtools.c.
NTSTATUS NTAPI MiSwapInSectionPage | ( | PMMSUPPORT | AddressSpace, |
PMEMORY_AREA | MemoryArea, | ||
PMM_REQUIRED_RESOURCES | RequiredResources | ||
) |
NTSTATUS NTAPI MiWidenSegment | ( | PMMSUPPORT | AddressSpace, |
PMEMORY_AREA | MemoryArea, | ||
PMM_REQUIRED_RESOURCES | RequiredResources | ||
) |
NTSTATUS NTAPI MiWriteFilePage | ( | PMMSUPPORT | AddressSpace, |
PMEMORY_AREA | MemoryArea, | ||
PMM_REQUIRED_RESOURCES | Resources | ||
) |
NTSTATUS NTAPI MiWriteSwapPage | ( | PMMSUPPORT | AddressSpace, |
PMEMORY_AREA | MemoryArea, | ||
PMM_REQUIRED_RESOURCES | Resources | ||
) |
NTSTATUS NTAPI MmAccessFaultCacheSection | ( | KPROCESSOR_MODE | Mode, |
ULONG_PTR | Address, | ||
BOOLEAN | FromMdl | ||
) |
Referenced by MmpAccessFault().
NTSTATUS NTAPI MmCreateCacheSection | ( | PSECTION * | SectionObject, |
ACCESS_MASK | DesiredAccess, | ||
POBJECT_ATTRIBUTES | ObjectAttributes, | ||
PLARGE_INTEGER | UMaximumSize, | ||
ULONG | SectionPageProtection, | ||
ULONG | AllocationAttributes, | ||
PFILE_OBJECT | FileObject | ||
) |
Referenced by MmCreateSection().
VOID NTAPI MmDeleteSectionAssociation | ( | PFN_NUMBER | Page | ) |
Definition at line 506 of file rmap.c.
Referenced by _MmSetPageEntrySectionSegment().
NTSTATUS NTAPI MmExtendCacheSection | ( | PSECTION | Section, |
PLARGE_INTEGER | NewSize, | ||
BOOLEAN | ExtendFile | ||
) |
Referenced by CcSetFileSizes().
NTSTATUS NTAPI MmFinalizeSectionPageOut | ( | PMM_SECTION_SEGMENT | Segment, |
PLARGE_INTEGER | FileOffset, | ||
PFN_NUMBER | Page, | ||
BOOLEAN | Dirty | ||
) |
Definition at line 165 of file swapout.c.
Referenced by MmpPageOutPhysicalAddress().
VOID NTAPI MmFinalizeSegment | ( | PMM_SECTION_SEGMENT | Segment | ) |
Referenced by MmFinalizeSectionPageOut(), and MmpPageOutPhysicalAddress().
VOID MmFreeCacheSectionPage | ( | PVOID | Context, |
MEMORY_AREA * | MemoryArea, | ||
PVOID | Address, | ||
PFN_NUMBER | Page, | ||
SWAPENTRY | SwapEntry, | ||
BOOLEAN | Dirty | ||
) |
Definition at line 663 of file data.c.
VOID NTAPI MmFreePageTablesSectionSegment | ( | PMM_SECTION_SEGMENT | Segment, |
FREE_SECTION_PAGE_FUN | FreePage | ||
) |
Definition at line 321 of file sptab.c.
Referenced by _When_().
VOID NTAPI MmFreeSectionSegments | ( | PFILE_OBJECT | FileObject | ) |
PVOID NTAPI MmGetSegmentRmap | ( | PFN_NUMBER | Page, |
PULONG | RawOffset | ||
) |
Definition at line 468 of file rmap.c.
Referenced by MmGetSectionAssociation().
NTSTATUS NTAPI MmMapCacheViewInSystemSpaceAtOffset | ( | IN PMM_SECTION_SEGMENT | Segment, |
OUT PVOID * | MappedBase, | ||
IN PLARGE_INTEGER | ViewOffset, | ||
IN OUT PULONG | ViewSize | ||
) |
Referenced by CcpMapData().
NTSTATUS NTAPI MmNotPresentFaultCacheSection | ( | KPROCESSOR_MODE | Mode, |
ULONG_PTR | Address, | ||
BOOLEAN | FromMdl | ||
) |
Referenced by MmNotPresentFault().
NTSTATUS NTAPI MmPageOutPageFileView | ( | PMMSUPPORT | AddressSpace, |
PMEMORY_AREA | MemoryArea, | ||
PVOID | Address, | ||
PMM_REQUIRED_RESOURCES | Required | ||
) |
NTSTATUS NTAPI MmpPageOutPhysicalAddress | ( | PFN_NUMBER | Page | ) |
Definition at line 345 of file swapout.c.
Referenced by MiCacheEvictPages(), and MmPageOutPhysicalAddress().
NTSTATUS NTAPI MmSetSectionAssociation | ( | PFN_NUMBER | Page, |
PMM_SECTION_SEGMENT | Segment, | ||
PLARGE_INTEGER | Offset | ||
) |
Definition at line 400 of file sptab.c.
Referenced by _MmSetPageEntrySectionSegment().
NTSTATUS MmspWaitForFileLock | ( | PFILE_OBJECT | File | ) |
Definition at line 907 of file section.c.
Referenced by MmCreateDataFileSection(), and MmCreateImageSection().
Referenced by CcpDereferenceCache(), and CcpUnmapCache().
NTSTATUS NTAPI MmUnmapViewOfCacheSegment | ( | PMMSUPPORT | AddressSpace, |
PVOID | BaseAddress | ||
) |
Referenced by MiRosCleanupMemoryArea(), and MmUnmapViewOfSegment().
PFN_NUMBER NTAPI MmWithdrawSectionPage | ( | PMM_SECTION_SEGMENT | Segment, |
PLARGE_INTEGER | FileOffset, | ||
BOOLEAN * | Dirty | ||
) |
Definition at line 87 of file swapout.c.
Referenced by MmpPageOutPhysicalAddress().
Definition at line 209 of file newmm.h.
Referenced by BroadcastOpen(), CcPerformReadAhead(), CcRosFlushDirtyPages(), CreateRedirectedFile(), Ext2FastIoWrite(), FsRtlAcknowledgeOplockBreak(), FsRtlRequestExclusiveOplock(), FsRtlRequestOplockII(), FsRtlWaitOnIrp(), CBDASignalStatistics::get_SignalLocked(), LdrAddRefDll(), LdrGetDllHandleEx(), MmAccessFaultSectionView(), MmNotPresentFaultSectionView(), RtlFreeHeap(), RxCommonQueryInformation(), and UDFMountVolume().
_In_ MEMORY_AREA * MemoryArea |
Definition at line 207 of file newmm.h.
Referenced by MiGetFileObjectForVad(), MiInsertNode(), MiProtectVirtualMemory(), MiQueryMemoryBasicInformation(), MiRemoveNode(), MiRosCleanupMemoryArea(), MiRosProtectVirtualMemory(), MiRosUnmapViewOfSection(), MiUnmapViewOfSection(), MmAccessFault(), MmAccessFaultSectionView(), MmAlterViewAttributes(), MmCreateMemoryArea(), MmFreeCacheSectionPage(), MmFreeMemoryArea(), MmFreeSectionPage(), MmLocateMemoryAreaByAddress(), MmLocateMemoryAreaByRegion(), MmNotPresentFault(), MmNotPresentFaultSectionView(), MmpAccessFault(), MmPageOutCacheSection(), MmPageOutPhysicalAddress(), MmpPageOutPhysicalAddress(), MmProtectSectionView(), MmQuerySectionView(), MmUnmapViewInSystemSpace(), MmUnmapViewOfSegment(), NtAllocateVirtualMemory(), and NtFreeVirtualMemory().
_In_ MEMORY_AREA _In_ PVOID _In_ BOOLEAN _Inout_ PMM_REQUIRED_RESOURCES Required |
Definition at line 210 of file newmm.h.
Referenced by MiGetOnePage(), MiWriteFilePage(), MmPageOutCacheSection(), profile_items_callback(), SepPrivilegeCheck(), and START_TEST().