/// <summary> /// Create a new tracking structure for the given "physical" memory block, /// with a given "virtual" memory manager that will provide mappings and virtual memory protection. /// </summary> /// <param name="memoryManager">Virtual memory manager</param> /// <param name="block">Physical memory block</param> /// <param name="pageSize">Page size of the virtual memory space</param> public MemoryTracking(IVirtualMemoryManager memoryManager, int pageSize) { _memoryManager = memoryManager; _pageSize = pageSize; _virtualRegions = new NonOverlappingRangeList <VirtualRegion>(); }
/// <summary> /// Create a new tracking structure for the given "physical" memory block, /// with a given "virtual" memory manager that will provide mappings and virtual memory protection. /// </summary> /// <param name="memoryManager">Virtual memory manager</param> /// <param name="block">Physical memory block</param> /// <param name="pageSize">Page size of the virtual memory space</param> public MemoryTracking(IVirtualMemoryManager memoryManager, int pageSize, InvalidAccessHandler invalidAccessHandler = null) { _memoryManager = memoryManager; _pageSize = pageSize; _invalidAccessHandler = invalidAccessHandler; _virtualRegions = new NonOverlappingRangeList <VirtualRegion>(); }
/// <summary> /// Create a new tracking structure for the given "physical" memory block, /// with a given "virtual" memory manager that will provide mappings and virtual memory protection. /// </summary> /// <param name="memoryManager">Virtual memory manager</param> /// <param name="block">Physical memory block</param> /// <param name="pageSize">Page size of the virtual memory space</param> public MemoryTracking(IVirtualMemoryManager memoryManager, MemoryBlock block, int pageSize) { _memoryManager = memoryManager; _block = block; _pageSize = pageSize; _virtualRegions = new NonOverlappingRangeList <VirtualRegion>(); _physicalRegions = new NonOverlappingRangeList <PhysicalRegion>(); }