diff options
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/Memory/KPageTableHostMapped.cs')
| -rw-r--r-- | Ryujinx.HLE/HOS/Kernel/Memory/KPageTableHostMapped.cs | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/Memory/KPageTableHostMapped.cs b/Ryujinx.HLE/HOS/Kernel/Memory/KPageTableHostMapped.cs index cd51bab7..29a7b2ed 100644 --- a/Ryujinx.HLE/HOS/Kernel/Memory/KPageTableHostMapped.cs +++ b/Ryujinx.HLE/HOS/Kernel/Memory/KPageTableHostMapped.cs @@ -70,16 +70,30 @@ namespace Ryujinx.HLE.HOS.Kernel.Memory } /// <inheritdoc/> - protected override KernelResult MapPages(ulong dstVa, ulong pagesCount, ulong srcPa, KMemoryPermission permission) + protected override KernelResult MapPages(ulong dstVa, ulong pagesCount, ulong srcPa, KMemoryPermission permission, bool shouldFillPages, byte fillValue) { _cpuMemory.Map(dstVa, 0, pagesCount * PageSize); + + if (shouldFillPages) + { + _cpuMemory.Fill(dstVa, pagesCount * PageSize, fillValue); + } + return KernelResult.Success; } /// <inheritdoc/> - protected override KernelResult MapPages(ulong address, KPageList pageList, KMemoryPermission permission) + protected override KernelResult MapPages(ulong address, KPageList pageList, KMemoryPermission permission, bool shouldFillPages, byte fillValue) { - _cpuMemory.Map(address, 0, pageList.GetPagesCount() * PageSize); + ulong pagesCount = pageList.GetPagesCount(); + + _cpuMemory.Map(address, 0, pagesCount * PageSize); + + if (shouldFillPages) + { + _cpuMemory.Fill(address, pagesCount * PageSize, fillValue); + } + return KernelResult.Success; } |
