aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall64.cs
diff options
context:
space:
mode:
authorgdkchan <gab.dark.100@gmail.com>2022-05-03 08:16:31 -0300
committerGitHub <noreply@github.com>2022-05-03 13:16:31 +0200
commit1cbca5eecbb6b7bce94dca864b5cffda4db02d39 (patch)
treeec2149ce096c63bda078b5f912fed7e1a13bf8d0 /Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall64.cs
parent95017b8c66f70406e926b278ecdd6d4ec0a93110 (diff)
Implement code memory syscalls (#2958)1.1.111
* Implement code memory syscalls * Remove owner process validation * Add 32-bit code memory syscalls * Remove unused field
Diffstat (limited to 'Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall64.cs')
-rw-r--r--Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall64.cs30
1 files changed, 25 insertions, 5 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall64.cs b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall64.cs
index 2af736d8..76e85379 100644
--- a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall64.cs
+++ b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall64.cs
@@ -160,6 +160,16 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
return _syscall.CreateTransferMemory(out handle, address, size, permission);
}
+ public KernelResult CreateCodeMemory64([R(1)] ulong address, [R(2)] ulong size, [R(1)] out int handle)
+ {
+ return _syscall.CreateCodeMemory(address, size, out handle);
+ }
+
+ public KernelResult ControlCodeMemory64([R(0)] int handle, [R(1)] CodeMemoryOperation op, [R(2)] ulong address, [R(3)] ulong size, [R(4)] KMemoryPermission permission)
+ {
+ return _syscall.ControlCodeMemory(handle, op, address, size, permission);
+ }
+
public KernelResult MapTransferMemory64([R(0)] int handle, [R(1)] ulong address, [R(2)] ulong size, [R(3)] KMemoryPermission permission)
{
return _syscall.MapTransferMemory(handle, address, size, permission);
@@ -180,6 +190,21 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
return _syscall.UnmapPhysicalMemory(address, size);
}
+ public KernelResult SetProcessMemoryPermission64([R(0)] int handle, [R(1)] ulong src, [R(2)] ulong size, [R(3)] KMemoryPermission permission)
+ {
+ return _syscall.SetProcessMemoryPermission(handle, src, size, permission);
+ }
+
+ public KernelResult MapProcessMemory64([R(0)] ulong dst, [R(1)] int handle, [R(2)] ulong src, [R(3)] ulong size)
+ {
+ return _syscall.MapProcessMemory(dst, handle, src, size);
+ }
+
+ public KernelResult UnmapProcessMemory64([R(0)] ulong dst, [R(1)] int handle, [R(2)] ulong src, [R(3)] ulong size)
+ {
+ return _syscall.UnmapProcessMemory(dst, handle, src, size);
+ }
+
public KernelResult MapProcessCodeMemory64([R(0)] int handle, [R(1)] ulong dst, [R(2)] ulong src, [R(3)] ulong size)
{
return _syscall.MapProcessCodeMemory(handle, dst, src, size);
@@ -190,11 +215,6 @@ namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
return _syscall.UnmapProcessCodeMemory(handle, dst, src, size);
}
- public KernelResult SetProcessMemoryPermission64([R(0)] int handle, [R(1)] ulong src, [R(2)] ulong size, [R(3)] KMemoryPermission permission)
- {
- return _syscall.SetProcessMemoryPermission(handle, src, size, permission);
- }
-
// System
public void ExitProcess64()