aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall32.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall32.cs')
-rw-r--r--Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall32.cs60
1 files changed, 47 insertions, 13 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall32.cs b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall32.cs
index bf4eee79..27ff8ef7 100644
--- a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall32.cs
+++ b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall32.cs
@@ -143,6 +143,26 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
return _syscall.CreateTransferMemory(out handle, address, size, permission);
}
+ public KernelResult CreateCodeMemory32([R(1)] uint address, [R(2)] uint size, [R(1)] out int handle)
+ {
+ return _syscall.CreateCodeMemory(address, size, out handle);
+ }
+
+ public KernelResult ControlCodeMemory32(
+ [R(0)] int handle,
+ [R(1)] CodeMemoryOperation op,
+ [R(2)] uint addressLow,
+ [R(3)] uint addressHigh,
+ [R(4)] uint sizeLow,
+ [R(5)] uint sizeHigh,
+ [R(6)] KMemoryPermission permission)
+ {
+ ulong address = addressLow | ((ulong)addressHigh << 32);
+ ulong size = sizeLow | ((ulong)sizeHigh << 32);
+
+ return _syscall.ControlCodeMemory(handle, op, address, size, permission);
+ }
+
public KernelResult MapTransferMemory32([R(0)] int handle, [R(1)] uint address, [R(2)] uint size, [R(3)] KMemoryPermission permission)
{
return _syscall.MapTransferMemory(handle, address, size, permission);
@@ -163,36 +183,50 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
return _syscall.UnmapPhysicalMemory(address, size);
}
- public KernelResult MapProcessCodeMemory32([R(0)] int handle, [R(1)] uint srcLow, [R(2)] uint dstLow, [R(3)] uint dstHigh, [R(4)] uint srcHigh, [R(5)] uint sizeLow, [R(6)] uint sizeHigh)
+ public KernelResult SetProcessMemoryPermission32(
+ [R(0)] int handle,
+ [R(1)] uint sizeLow,
+ [R(2)] uint srcLow,
+ [R(3)] uint srcHigh,
+ [R(4)] uint sizeHigh,
+ [R(5)] KMemoryPermission permission)
{
ulong src = srcLow | ((ulong)srcHigh << 32);
- ulong dst = dstLow | ((ulong)dstHigh << 32);
ulong size = sizeLow | ((ulong)sizeHigh << 32);
- return _syscall.MapProcessCodeMemory(handle, dst, src, size);
+ return _syscall.SetProcessMemoryPermission(handle, src, size, permission);
}
- public KernelResult UnmapProcessCodeMemory32([R(0)] int handle, [R(1)] uint srcLow, [R(2)] uint dstLow, [R(3)] uint dstHigh, [R(4)] uint srcHigh, [R(5)] uint sizeLow, [R(6)] uint sizeHigh)
+ public KernelResult MapProcessMemory32([R(0)] uint dst, [R(1)] int handle, [R(2)] uint srcLow, [R(3)] uint srcHigh, [R(4)] uint size)
+ {
+ ulong src = srcLow | ((ulong)srcHigh << 32);
+
+ return _syscall.MapProcessMemory(dst, handle, src, size);
+ }
+
+ public KernelResult UnmapProcessMemory32([R(0)] uint dst, [R(1)] int handle, [R(2)] uint srcLow, [R(3)] uint srcHigh, [R(4)] uint size)
+ {
+ ulong src = srcLow | ((ulong)srcHigh << 32);
+
+ return _syscall.UnmapProcessMemory(dst, handle, src, size);
+ }
+
+ public KernelResult MapProcessCodeMemory32([R(0)] int handle, [R(1)] uint srcLow, [R(2)] uint dstLow, [R(3)] uint dstHigh, [R(4)] uint srcHigh, [R(5)] uint sizeLow, [R(6)] uint sizeHigh)
{
ulong src = srcLow | ((ulong)srcHigh << 32);
ulong dst = dstLow | ((ulong)dstHigh << 32);
ulong size = sizeLow | ((ulong)sizeHigh << 32);
- return _syscall.UnmapProcessCodeMemory(handle, dst, src, size);
+ return _syscall.MapProcessCodeMemory(handle, dst, src, size);
}
- public KernelResult SetProcessMemoryPermission32(
- [R(0)] int handle,
- [R(1)] uint sizeLow,
- [R(2)] uint srcLow,
- [R(3)] uint srcHigh,
- [R(4)] uint sizeHigh,
- [R(5)] KMemoryPermission permission)
+ public KernelResult UnmapProcessCodeMemory32([R(0)] int handle, [R(1)] uint srcLow, [R(2)] uint dstLow, [R(3)] uint dstHigh, [R(4)] uint srcHigh, [R(5)] uint sizeLow, [R(6)] uint sizeHigh)
{
ulong src = srcLow | ((ulong)srcHigh << 32);
+ ulong dst = dstLow | ((ulong)dstHigh << 32);
ulong size = sizeLow | ((ulong)sizeHigh << 32);
- return _syscall.SetProcessMemoryPermission(handle, src, size, permission);
+ return _syscall.UnmapProcessCodeMemory(handle, dst, src, size);
}
// System