using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ben.Runtime.Util; namespace Ben.Services.MM { /// /// Paging manager may be replaced by paging , 32 bit and 64 bit memory managers /// As well as NUMA etc .. /// internal interface IPagingManager { MemoryUsage Details { get; } bool ReAllocatesMemory { get; } event EventHandler> MemoryPressureChanged; UIntPtr RequestPages(MemoryAllocationRequest request); void FreePages(Process process); void FreePages(Process process, PageAllocation region); PageEntry QueryPage(UIntPtr page); } internal struct PageAllocation { internal UIntPtr Address; internal uint NumPages; internal PageAllocation(UIntPtr address, uint numPages) { Address = address; NumPages = numPages; } } }