diff options
| author | gdkchan <gab.dark.100@gmail.com> | 2018-05-07 15:53:23 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-05-07 15:53:23 -0300 |
| commit | 34037701c708cb70bbf44dea71ee0912f7b4102b (patch) | |
| tree | ca4cf2bde85dea48af12033b8d0446f17b611f4f /ChocolArm64/Memory | |
| parent | 4419e8d6b43432eae94a3a9304f7df22b34738a8 (diff) | |
NvServices refactoring (#120)
* Initial implementation of NvMap/NvHostCtrl
* More work on NvHostCtrl
* Refactoring of nvservices, move GPU Vmm, make Vmm per-process, refactor most gpu devices, move Gpu to Core, fix CbBind
* Implement GetGpuTime, support CancelSynchronization, fix issue on InsertWaitingMutex, proper double buffering support (again, not working properly for commercial games, only hb)
* Try to fix perf regression reading/writing textures, moved syncpts and events to a UserCtx class, delete global state when the process exits, other minor tweaks
* Remove now unused code, add comment about probably wrong result codes
Diffstat (limited to 'ChocolArm64/Memory')
| -rw-r--r-- | ChocolArm64/Memory/AMemory.cs | 2 | ||||
| -rw-r--r-- | ChocolArm64/Memory/IAMemory.cs | 37 |
2 files changed, 38 insertions, 1 deletions
diff --git a/ChocolArm64/Memory/AMemory.cs b/ChocolArm64/Memory/AMemory.cs index d7e11189..6625966f 100644 --- a/ChocolArm64/Memory/AMemory.cs +++ b/ChocolArm64/Memory/AMemory.cs @@ -6,7 +6,7 @@ using System.Runtime.InteropServices; namespace ChocolArm64.Memory { - public unsafe class AMemory : IDisposable + public unsafe class AMemory : IAMemory, IDisposable { private const long ErgMask = (4 << AThreadState.ErgSizeLog2) - 1; diff --git a/ChocolArm64/Memory/IAMemory.cs b/ChocolArm64/Memory/IAMemory.cs new file mode 100644 index 00000000..5b7d17bb --- /dev/null +++ b/ChocolArm64/Memory/IAMemory.cs @@ -0,0 +1,37 @@ +namespace ChocolArm64.Memory +{ + public interface IAMemory + { + sbyte ReadSByte(long Position); + + short ReadInt16(long Position); + + int ReadInt32(long Position); + + long ReadInt64(long Position); + + byte ReadByte(long Position); + + ushort ReadUInt16(long Position); + + uint ReadUInt32(long Position); + + ulong ReadUInt64(long Position); + + void WriteSByte(long Position, sbyte Value); + + void WriteInt16(long Position, short Value); + + void WriteInt32(long Position, int Value); + + void WriteInt64(long Position, long Value); + + void WriteByte(long Position, byte Value); + + void WriteUInt16(long Position, ushort Value); + + void WriteUInt32(long Position, uint Value); + + void WriteUInt64(long Position, ulong Value); + } +}
\ No newline at end of file |
