| 123456789101112131415161718192021222324252627 |
- using System;
- using System.Buffers;
- namespace Ryujinx.Memory
- {
- public interface IWritableBlock
- {
- /// <summary>
- /// Writes data to CPU mapped memory, with write tracking.
- /// </summary>
- /// <param name="va">Virtual address to write the data into</param>
- /// <param name="data">Data to be written</param>
- /// <exception cref="InvalidMemoryRegionException">Throw for unhandled invalid or unmapped memory accesses</exception>
- void Write(ulong va, ReadOnlySequence<byte> data)
- {
- foreach (ReadOnlyMemory<byte> segment in data)
- {
- Write(va, segment.Span);
- va += (ulong)segment.Length;
- }
- }
- void Write(ulong va, ReadOnlySpan<byte> data);
- void WriteUntracked(ulong va, ReadOnlySpan<byte> data) => Write(va, data);
- }
- }
|