More flexible memory manager (#307)

* Keep track mapped buffers with fixed offsets

* Started rewriting the memory manager

* Initial support for MapPhysicalMemory and UnmapPhysicalMemory, other tweaks

* MapPhysicalMemory/UnmapPhysicalMemory support, other tweaks

* Rebased

* Optimize the map/unmap physical memory svcs

* Integrate shared font support

* Fix address space reserve alignment

* Some fixes related to gpu memory mapping

* Some cleanup

* Only try uploading const buffers that are really used

* Check if memory region is contiguous

* Rebased

* Add missing count increment on IsRegionModified

* Check for reads/writes outside of the address space, optimize translation with a tail call
This commit is contained in:
gdkchan 2018-08-15 15:59:51 -03:00 committed by GitHub
parent 21b668061d
commit 935eef96e8
64 changed files with 3289 additions and 1852 deletions

View file

@ -2,12 +2,12 @@ using System;
namespace ChocolArm64.Exceptions
{
public class VmmOutOfMemoryException : Exception
public class VmmAccessException : Exception
{
private const string ExMsg = "Failed to allocate {0} bytes of memory!";
private const string ExMsg = "Memory region at 0x{0} with size 0x{1} is not contiguous!";
public VmmOutOfMemoryException() { }
public VmmAccessException() { }
public VmmOutOfMemoryException(long Size) : base(string.Format(ExMsg, Size)) { }
public VmmAccessException(long Position, long Size) : base(string.Format(ExMsg, Position, Size)) { }
}
}