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.cs534
1 files changed, 0 insertions, 534 deletions
diff --git a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall32.cs b/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall32.cs
deleted file mode 100644
index 27ff8ef7..00000000
--- a/Ryujinx.HLE/HOS/Kernel/SupervisorCall/Syscall32.cs
+++ /dev/null
@@ -1,534 +0,0 @@
-using Ryujinx.HLE.HOS.Kernel.Common;
-using Ryujinx.HLE.HOS.Kernel.Memory;
-using Ryujinx.HLE.HOS.Kernel.Threading;
-
-namespace Ryujinx.HLE.HOS.Kernel.SupervisorCall
-{
- class Syscall32
- {
- private readonly Syscall _syscall;
-
- public Syscall32(Syscall syscall)
- {
- _syscall = syscall;
- }
-
- // IPC
-
- public KernelResult ConnectToNamedPort32([R(1)] uint namePtr, [R(1)] out int handle)
- {
- return _syscall.ConnectToNamedPort(out handle, namePtr);
- }
-
- public KernelResult SendSyncRequest32([R(0)] int handle)
- {
- return _syscall.SendSyncRequest(handle);
- }
-
- public KernelResult SendSyncRequestWithUserBuffer32([R(0)] uint messagePtr, [R(1)] uint messageSize, [R(2)] int handle)
- {
- return _syscall.SendSyncRequestWithUserBuffer(messagePtr, messageSize, handle);
- }
-
- public KernelResult CreateSession32(
- [R(2)] bool isLight,
- [R(3)] uint namePtr,
- [R(1)] out int serverSessionHandle,
- [R(2)] out int clientSessionHandle)
- {
- return _syscall.CreateSession(out serverSessionHandle, out clientSessionHandle, isLight, namePtr);
- }
-
- public KernelResult AcceptSession32([R(1)] int portHandle, [R(1)] out int sessionHandle)
- {
- return _syscall.AcceptSession(out sessionHandle, portHandle);
- }
-
- public KernelResult ReplyAndReceive32(
- [R(0)] uint timeoutLow,
- [R(1)] uint handlesPtr,
- [R(2)] int handlesCount,
- [R(3)] int replyTargetHandle,
- [R(4)] uint timeoutHigh,
- [R(1)] out int handleIndex)
- {
- long timeout = (long)(timeoutLow | ((ulong)timeoutHigh << 32));
-
- return _syscall.ReplyAndReceive(out handleIndex, handlesPtr, handlesCount, replyTargetHandle, timeout);
- }
-
- public KernelResult CreatePort32(
- [R(0)] uint namePtr,
- [R(2)] int maxSessions,
- [R(3)] bool isLight,
- [R(1)] out int serverPortHandle,
- [R(2)] out int clientPortHandle)
- {
- return _syscall.CreatePort(out serverPortHandle, out clientPortHandle, maxSessions, isLight, namePtr);
- }
-
- public KernelResult ManageNamedPort32([R(1)] uint namePtr, [R(2)] int maxSessions, [R(1)] out int handle)
- {
- return _syscall.ManageNamedPort(out handle, namePtr, maxSessions);
- }
-
- public KernelResult ConnectToPort32([R(1)] int clientPortHandle, [R(1)] out int clientSessionHandle)
- {
- return _syscall.ConnectToPort(out clientSessionHandle, clientPortHandle);
- }
-
- // Memory
-
- public KernelResult SetHeapSize32([R(1)] uint size, [R(1)] out uint address)
- {
- KernelResult result = _syscall.SetHeapSize(out ulong address64, size);
-
- address = (uint)address64;
-
- return result;
- }
-
- public KernelResult SetMemoryPermission32(
- [R(0)] uint address,
- [R(1)] uint size,
- [R(2)] KMemoryPermission permission)
- {
- return _syscall.SetMemoryPermission(address, size, permission);
- }
-
- public KernelResult SetMemoryAttribute32(
- [R(0)] uint address,
- [R(1)] uint size,
- [R(2)] MemoryAttribute attributeMask,
- [R(3)] MemoryAttribute attributeValue)
- {
- return _syscall.SetMemoryAttribute(address, size, attributeMask, attributeValue);
- }
-
- public KernelResult MapMemory32([R(0)] uint dst, [R(1)] uint src, [R(2)] uint size)
- {
- return _syscall.MapMemory(dst, src, size);
- }
-
- public KernelResult UnmapMemory32([R(0)] uint dst, [R(1)] uint src, [R(2)] uint size)
- {
- return _syscall.UnmapMemory(dst, src, size);
- }
-
- public KernelResult QueryMemory32([R(0)] uint infoPtr, [R(1)] uint r1, [R(2)] uint address, [R(1)] out uint pageInfo)
- {
- KernelResult result = _syscall.QueryMemory(infoPtr, out ulong pageInfo64, address);
-
- pageInfo = (uint)pageInfo64;
-
- return result;
- }
-
- public KernelResult MapSharedMemory32([R(0)] int handle, [R(1)] uint address, [R(2)] uint size, [R(3)] KMemoryPermission permission)
- {
- return _syscall.MapSharedMemory(handle, address, size, permission);
- }
-
- public KernelResult UnmapSharedMemory32([R(0)] int handle, [R(1)] uint address, [R(2)] uint size)
- {
- return _syscall.UnmapSharedMemory(handle, address, size);
- }
-
- public KernelResult CreateTransferMemory32(
- [R(1)] uint address,
- [R(2)] uint size,
- [R(3)] KMemoryPermission permission,
- [R(1)] out int handle)
- {
- 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);
- }
-
- public KernelResult UnmapTransferMemory32([R(0)] int handle, [R(1)] uint address, [R(2)] uint size)
- {
- return _syscall.UnmapTransferMemory(handle, address, size);
- }
-
- public KernelResult MapPhysicalMemory32([R(0)] uint address, [R(1)] uint size)
- {
- return _syscall.MapPhysicalMemory(address, size);
- }
-
- public KernelResult UnmapPhysicalMemory32([R(0)] uint address, [R(1)] uint size)
- {
- return _syscall.UnmapPhysicalMemory(address, 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)
- {
- ulong src = srcLow | ((ulong)srcHigh << 32);
- ulong size = sizeLow | ((ulong)sizeHigh << 32);
-
- return _syscall.SetProcessMemoryPermission(handle, src, size, permission);
- }
-
- 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.MapProcessCodeMemory(handle, dst, src, size);
- }
-
- 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.UnmapProcessCodeMemory(handle, dst, src, size);
- }
-
- // System
-
- public void ExitProcess32()
- {
- _syscall.ExitProcess();
- }
-
- public KernelResult TerminateProcess32([R(0)] int handle)
- {
- return _syscall.TerminateProcess(handle);
- }
-
- public KernelResult SignalEvent32([R(0)] int handle)
- {
- return _syscall.SignalEvent(handle);
- }
-
- public KernelResult ClearEvent32([R(0)] int handle)
- {
- return _syscall.ClearEvent(handle);
- }
-
- public KernelResult CloseHandle32([R(0)] int handle)
- {
- return _syscall.CloseHandle(handle);
- }
-
- public KernelResult ResetSignal32([R(0)] int handle)
- {
- return _syscall.ResetSignal(handle);
- }
-
- public void GetSystemTick32([R(0)] out uint resultLow, [R(1)] out uint resultHigh)
- {
- ulong result = _syscall.GetSystemTick();
-
- resultLow = (uint)(result & uint.MaxValue);
- resultHigh = (uint)(result >> 32);
- }
-
- public KernelResult GetProcessId32([R(1)] int handle, [R(1)] out uint pidLow, [R(2)] out uint pidHigh)
- {
- KernelResult result = _syscall.GetProcessId(out ulong pid, handle);
-
- pidLow = (uint)(pid & uint.MaxValue);
- pidHigh = (uint)(pid >> 32);
-
- return result;
- }
-
- public void Break32([R(0)] uint reason, [R(1)] uint r1, [R(2)] uint info)
- {
- _syscall.Break(reason);
- }
-
- public void OutputDebugString32([R(0)] uint strPtr, [R(1)] uint size)
- {
- _syscall.OutputDebugString(strPtr, size);
- }
-
- public KernelResult GetInfo32(
- [R(0)] uint subIdLow,
- [R(1)] InfoType id,
- [R(2)] int handle,
- [R(3)] uint subIdHigh,
- [R(1)] out uint valueLow,
- [R(2)] out uint valueHigh)
- {
- long subId = (long)(subIdLow | ((ulong)subIdHigh << 32));
-
- KernelResult result = _syscall.GetInfo(out ulong value, id, handle, subId);
-
- valueHigh = (uint)(value >> 32);
- valueLow = (uint)(value & uint.MaxValue);
-
- return result;
- }
-
- public KernelResult CreateEvent32([R(1)] out int wEventHandle, [R(2)] out int rEventHandle)
- {
- return _syscall.CreateEvent(out wEventHandle, out rEventHandle);
- }
-
- public KernelResult GetProcessList32([R(1)] ulong address, [R(2)] int maxCount, [R(1)] out int count)
- {
- return _syscall.GetProcessList(out count, address, maxCount);
- }
-
- public KernelResult GetSystemInfo32([R(1)] uint subIdLow, [R(2)] uint id, [R(3)] int handle, [R(3)] uint subIdHigh, [R(1)] out int valueLow, [R(2)] out int valueHigh)
- {
- long subId = (long)(subIdLow | ((ulong)subIdHigh << 32));
-
- KernelResult result = _syscall.GetSystemInfo(out long value, id, handle, subId);
-
- valueHigh = (int)(value >> 32);
- valueLow = (int)(value & uint.MaxValue);
-
- return result;
- }
-
- public KernelResult GetResourceLimitLimitValue32([R(1)] int handle, [R(2)] LimitableResource resource, [R(1)] out int limitValueLow, [R(2)] out int limitValueHigh)
- {
- KernelResult result = _syscall.GetResourceLimitLimitValue(out long limitValue, handle, resource);
-
- limitValueHigh = (int)(limitValue >> 32);
- limitValueLow = (int)(limitValue & uint.MaxValue);
-
- return result;
- }
-
- public KernelResult GetResourceLimitCurrentValue32([R(1)] int handle, [R(2)] LimitableResource resource, [R(1)] out int limitValueLow, [R(2)] out int limitValueHigh)
- {
- KernelResult result = _syscall.GetResourceLimitCurrentValue(out long limitValue, handle, resource);
-
- limitValueHigh = (int)(limitValue >> 32);
- limitValueLow = (int)(limitValue & uint.MaxValue);
-
- return result;
- }
-
- public KernelResult GetResourceLimitPeakValue32([R(1)] int handle, [R(2)] LimitableResource resource, [R(1)] out int peakLow, [R(2)] out int peakHigh)
- {
- KernelResult result = _syscall.GetResourceLimitPeakValue(out long peak, handle, resource);
-
- peakHigh = (int)(peak >> 32);
- peakLow = (int)(peak & uint.MaxValue);
-
- return result;
- }
-
- public KernelResult CreateResourceLimit32([R(1)] out int handle)
- {
- return _syscall.CreateResourceLimit(out handle);
- }
-
- public KernelResult SetResourceLimitLimitValue32([R(0)] int handle, [R(1)] LimitableResource resource, [R(2)] uint limitValueLow, [R(3)] uint limitValueHigh)
- {
- long limitValue = (long)(limitValueLow | ((ulong)limitValueHigh << 32));
-
- return _syscall.SetResourceLimitLimitValue(handle, resource, limitValue);
- }
-
- public KernelResult FlushProcessDataCache32(
- [R(0)] uint processHandle,
- [R(2)] uint addressLow,
- [R(3)] uint addressHigh,
- [R(1)] uint sizeLow,
- [R(4)] uint sizeHigh)
- {
- // FIXME: This needs to be implemented as ARMv7 doesn't have any way to do cache maintenance operations on EL0.
- // As we don't support (and don't actually need) to flush the cache, this is stubbed.
- return KernelResult.Success;
- }
-
- // Thread
-
- public KernelResult CreateThread32(
- [R(1)] uint entrypoint,
- [R(2)] uint argsPtr,
- [R(3)] uint stackTop,
- [R(0)] int priority,
- [R(4)] int cpuCore,
- [R(1)] out int handle)
- {
- return _syscall.CreateThread(out handle, entrypoint, argsPtr, stackTop, priority, cpuCore);
- }
-
- public KernelResult StartThread32([R(0)] int handle)
- {
- return _syscall.StartThread(handle);
- }
-
- public void ExitThread32()
- {
- _syscall.ExitThread();
- }
-
- public void SleepThread32([R(0)] uint timeoutLow, [R(1)] uint timeoutHigh)
- {
- long timeout = (long)(timeoutLow | ((ulong)timeoutHigh << 32));
-
- _syscall.SleepThread(timeout);
- }
-
- public KernelResult GetThreadPriority32([R(1)] int handle, [R(1)] out int priority)
- {
- return _syscall.GetThreadPriority(out priority, handle);
- }
-
- public KernelResult SetThreadPriority32([R(0)] int handle, [R(1)] int priority)
- {
- return _syscall.SetThreadPriority(handle, priority);
- }
-
- public KernelResult GetThreadCoreMask32([R(2)] int handle, [R(1)] out int preferredCore, [R(2)] out uint affinityMaskLow, [R(3)] out uint affinityMaskHigh)
- {
- KernelResult result = _syscall.GetThreadCoreMask(out preferredCore, out ulong affinityMask, handle);
-
- affinityMaskLow = (uint)(affinityMask & uint.MaxValue);
- affinityMaskHigh = (uint)(affinityMask >> 32);
-
- return result;
- }
-
- public KernelResult SetThreadCoreMask32([R(0)] int handle, [R(1)] int preferredCore, [R(2)] uint affinityMaskLow, [R(3)] uint affinityMaskHigh)
- {
- ulong affinityMask = affinityMaskLow | ((ulong)affinityMaskHigh << 32);
-
- return _syscall.SetThreadCoreMask(handle, preferredCore, affinityMask);
- }
-
- public int GetCurrentProcessorNumber32()
- {
- return _syscall.GetCurrentProcessorNumber();
- }
-
- public KernelResult GetThreadId32([R(1)] int handle, [R(1)] out uint threadUidLow, [R(2)] out uint threadUidHigh)
- {
- ulong threadUid;
-
- KernelResult result = _syscall.GetThreadId(out threadUid, handle);
-
- threadUidLow = (uint)(threadUid >> 32);
- threadUidHigh = (uint)(threadUid & uint.MaxValue);
-
- return result;
- }
-
- public KernelResult SetThreadActivity32([R(0)] int handle, [R(1)] bool pause)
- {
- return _syscall.SetThreadActivity(handle, pause);
- }
-
- public KernelResult GetThreadContext332([R(0)] uint address, [R(1)] int handle)
- {
- return _syscall.GetThreadContext3(address, handle);
- }
-
- // Thread synchronization
-
- public KernelResult WaitSynchronization32(
- [R(0)] uint timeoutLow,
- [R(1)] uint handlesPtr,
- [R(2)] int handlesCount,
- [R(3)] uint timeoutHigh,
- [R(1)] out int handleIndex)
- {
- long timeout = (long)(timeoutLow | ((ulong)timeoutHigh << 32));
-
- return _syscall.WaitSynchronization(out handleIndex, handlesPtr, handlesCount, timeout);
- }
-
- public KernelResult CancelSynchronization32([R(0)] int handle)
- {
- return _syscall.CancelSynchronization(handle);
- }
-
-
- public KernelResult ArbitrateLock32([R(0)] int ownerHandle, [R(1)] uint mutexAddress, [R(2)] int requesterHandle)
- {
- return _syscall.ArbitrateLock(ownerHandle, mutexAddress, requesterHandle);
- }
-
- public KernelResult ArbitrateUnlock32([R(0)] uint mutexAddress)
- {
- return _syscall.ArbitrateUnlock(mutexAddress);
- }
-
- public KernelResult WaitProcessWideKeyAtomic32(
- [R(0)] uint mutexAddress,
- [R(1)] uint condVarAddress,
- [R(2)] int handle,
- [R(3)] uint timeoutLow,
- [R(4)] uint timeoutHigh)
- {
- long timeout = (long)(timeoutLow | ((ulong)timeoutHigh << 32));
-
- return _syscall.WaitProcessWideKeyAtomic(mutexAddress, condVarAddress, handle, timeout);
- }
-
- public KernelResult SignalProcessWideKey32([R(0)] uint address, [R(1)] int count)
- {
- return _syscall.SignalProcessWideKey(address, count);
- }
-
- public KernelResult WaitForAddress32([R(0)] uint address, [R(1)] ArbitrationType type, [R(2)] int value, [R(3)] uint timeoutLow, [R(4)] uint timeoutHigh)
- {
- long timeout = (long)(timeoutLow | ((ulong)timeoutHigh << 32));
-
- return _syscall.WaitForAddress(address, type, value, timeout);
- }
-
- public KernelResult SignalToAddress32([R(0)] uint address, [R(1)] SignalType type, [R(2)] int value, [R(3)] int count)
- {
- return _syscall.SignalToAddress(address, type, value, count);
- }
-
- public KernelResult SynchronizePreemptionState32()
- {
- return _syscall.SynchronizePreemptionState();
- }
- }
-}